




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】部署对象存储服务(swift)
此文章是看RedHat的文章进行了一下简单的翻译,有很多地方不多的,请多多指教!原文地址:/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/2/html/Getting_Started_Guide/ch08s05.html创建swiftring文件;配置keystone认证;配置swiftproxy代理;配置swiftstroagenodes存储节点测试swift1个swiftproxy节点6个swiftstorage节点包括(accounts,objects,container)3个zone区域每份数据复制3份,也就是一份数据保存到3个swiftstroage节点,作为存储对象的一个副本;第一步先安装swift软件包;$
sudo
yum
install
-y
openstack-swift
openstack-swift-proxy
\openstack-swift-account
openstack-swift-container
openstack-swift-object
\openstack-utils
memcached
python-keystone创建swiftring文件需要创建三个ring文件包含所有的存储设备细节,这些都是用来推断一个特定的数据存储。在这个列子中创建partpower为12,那么ring分区就可以达到4096个,具体的分区大小可根据你的生产环境来分配;2**12=40962**18=262144更多的信息请查看:/developer/swift/deployment_guide.html(这个是官方的文档)本文主要介绍swift的安装和部署,假设keystone的部署和配置一完成,并已配置好authentication认证用户文件keystone_admin$
source
~/keystonerc_admin$
sudo
swift-ring-builder
/etc/swift/account.builder
create
12
3
1
$
sudo
swift-ring-builder
/etc/swift/container.builder
create
12
3
1
$
sudo
swift-ring-builder
/etc/swift/object.builder
create
12
3
1####1231解释:12就是ring的分区是2的12次方,3是保存数据为3份,1是1个小时检测一次ring;注意:这个过程中注意端口别搞错了!!!!一旦创建ring文件存储设备需要添加到每个ring,从账户中。使用的IP地址swift对象存储服务器的帐户标识符$
sudo
swift-ring-builder
/etc/swift/account.builder
add
z1-0:6002/z1d1
100
$
sudo
swift-ring-builder
/etc/swift/account.builder
add
z1-0:6002/z1d2
100
$
sudo
swift-ring-builder
/etc/swift/account.builder
add
z2-0:6002/z2d1
100
$
sudo
swift-ring-builder
/etc/swift/account.builder
add
z2-0:6002/z2d2
100
$
sudo
swift-ring-builder
/etc/swift/account.builder
add
z3-0:6002/z3d1
100
$
sudo
swift-ring-builder
/etc/swift/account.builder
add
z3-0:6002/z3d2
100然后是容器(container)$
sudo
swift-ring-builder
/etc/swift/object.builder
add
z1-0:6000/z1d1
100
$
sudo
swift-ring-builder
/etc/swift/object.builder
add
z1-0:6000/z1d2
100
$
sudo
swift-ring-builder
/etc/swift/object.builder
add
z2-0:6000/z2d1
100
$
sudo
swift-ring-builder
/etc/swift/object.builder
add
z2-0:6000/z2d2
100
$
sudo
swift-ring-builder
/etc/swift/object.builder
add
z3-0:6000/z3d1
100
$
sudo
swift-ring-builder
/etc/swift/object.builder
add
z3-0:6000/z3d2
100发送让整个ring重新负载,输入以下命令$
sudo
swift-ring-builder
/etc/swift/account.builder
rebalance
$
sudo
swift-ring-builder
/etc/swift/container.builder
rebalance
$
sudo
swift-ring-builder
/etc/swift/object.builder
rebalance检查一下你现在有3个ring文件,在目录/etc/swift/,使用以下命令:$
ls
/etc/swift/*gz应该显示:/etc/swift/account.ring.gz
/etc/swift/container.ring.gz
/etc/swift/object.ring.gz确保/etc/swift/目录中的所有文件包括那些您刚刚创建属于root用户和所属swift组$
sudo
chown
-R
root:swift
/etc/swift您还需要创建一个私有hashkey对于swifthash算法$
sudo
openstack-config
--set
/etc/swift/swift.conf
swift-hash
\
swift_hash_path_suffix
$(openssl
rand
-hex
10)2.配置keystone认证:在这个例子中假设我们已经创建了admin用户,我们需要创建一个services的租户(如果不存在的话),一个名为swiftand来作为swift用户和拥有admin角色通过admin来访问:$
source
~/keystonerc_admin检查services租户$
keystone
tenant-list如果不存在,创建:$
keystone
tenant-create
--name
services创建swift用户,设置密码PASSWORD$
keystone
user-create
--name
swift
--pass
PASSWORD查询admin角色的uuid$
keystone
role-list
|
grep
admin如果没有admin角色,创建$
keystone
role-create
--name
admin添加swift用户到service租户中,并给予admin角色的权限;$
keystone
user-role-add
--role-id
<roleid>
--tenant-id
<tenantid>
--user-id
<userid>创建swift端点,在keystone$
keystone
service-list如果没有swiftendpoint,然后创建;$
keystone
service-create
--name
swift
--type
object-store
\
--description
"Swift
Storage
Service"$
keystone
endpoint-create
--service_id
<serviceid>
\
--publicurl
"0:8080/v1/AUTH_\$(tenant_id)s"
\
--adminurl
"0:8080/v1/AUTH_\$(tenant_id)s"
\
--internalurl
"0:8080/v1/AUTH_\$(tenant_id)s"确保publicurl、adminurlinternalurl参数包括正确的IP地址swift对象存储服务器。3,配置swiftproxy代理更新配置文件从swift使用正确的身份验证代理服务器为适当的重点用户详细信息。$
openstack-config
--set
/etc/swift/proxy-server.conf
\
filter:authtoken
admin_tenant_name
services
$
openstack-config
--set
/etc/swift/proxy-server.conf
\
filter:authtoken
admin_user
swift
$
openstack-config
--set
/etc/swift/proxy-server.conf
\
filter:authtoken
admin_password
PASSWORD开启memcached和openstack-swift-proxy服务,使用service命令;$
sudo
service
memcached
start
$
sudo
service
openstack-swift-proxy
startmemcached和openstack-swift-proxy服务,加入到开机启动$
sudo
chkconfig
memcached
on
$
sudo
chkconfig
openstack-swift-proxy
on运行访问swiftproxyserver,添加防火墙规则在/etc/sysconfig/iptables配置文件中:-A
INPUT
-p
tcp
-m
multiport
--dports
8080
-j
ACCEPT这条规则运行从远程主机访问swiftproxy的8080端口,其它更加安全的信息请参考redhatenterprise6securityguide.(红帽企业6安全指南)使用service命令重新启动iptables,使刚添加的规则生效;$
sudo
service
iptables
restart4.配置swiftstoragenodes存储节点对象存储必须支持磁盘存储卷,提供足够的备份存储空间到目前为止在本文中需要6个存储节点。如果你有足够多的资源可用用来安装此服务,在本文都是安装在了/srv/node的目录下这段不翻译了!Ifyoudonothaveenoughphysicaldevicesavailabletosupportthis
setupbutstillwishtotesttheobjectstoragefacilitiesprovidedby
OpenStackthenitispossibletocreatetestdevicesusingtheloopback
facility.Thisisnotrecommendedforproductionenvironments创建对象存储设备使用loopback(回环)这个列子脚本创建了3个区域和2个设备支持loopback设备给每个区域,总共6个设备,卷镜像创建在/data目录下和挂载到/srv/node目录下使用回环设备每个设备是50GB大小,你也许希望这个数字低点;这个脚本需要用root用户执行;#!/bin/sh
#
Device
size
in
GB
SIZE=50
DATA=/data
MOUNT=/srv/node
mkdir
${DATA}
for
ZONE
in
1
2
3;
do
for
DEVICE
in
1
2;
do
truncate
${DATA}/swift-z${ZONE}d${DEVICE}
--size
${SIZE}G
LOOPDEVICE=`losetup
--show
-f
${DATA}/swift-z${ZONE}d${DEVICE}`
mkfs.ext4
-I
1024
${LOOPDEVICE}
mkdir
-p
${MOUNT}/z${ZONE}d${DEVICE}
mount
-o
noatime,nodiratime,nobarrier,user_xattr
${LOOPDEVICE}
\
${MOUNT}/z${ZONE}d${DEVICE}
done
done这个例子设置对象存储只是作为一种快速而简单的方法尝试持久卷在一个测试环境,这种方法不能用于生产环境。对象存储中创建这种方式并不会自动保存在系统需要重新启动恢复对象存储从文件创建这个过程后,必须重新启动使用losetup创建loopback回环/data/目录使用mount挂载loopback回环/srv/node/目录使用service命令重启
openstack-swift-account,openstack-swift-container,andopenstack-swift-object服务在生产环境中推荐,把挂载目录这些添加到/etc/fstab,并加入到开机自动挂载项中。RedHatEnterpriseLinux系统默认有八个(8)环回设备可供使用如果您已经在使用这些设备,那么你可能会遇到的一些运行脚本时返回的消息:mount:
could
not
find
any
free
loop
device如果在这种情况下运行lostetup-a命令来列出所有loopback设备的状态,然后可以使用umount命令来释放一下设备,losetup-d命令或改变脚本需要更少的设备。sudo
chown
-R
swift:swift
/srv/node/使用restorecon命令确保incron目录中的所有文件都正确的SELinux安全上下文的定义。$
sudo
restorecon
-R
/srv未能正确设置安全上下文将导致AVC否认被记录时迅速试图访问的数据存储在/srv/目录。启动帐户,容器和对象存储服务:$
sudo
service
openstack-swift-account
start
$
sudo
service
openstack-swift-container
start
$
sudo
service
openstack-swift-object
start加入开机启动$
sudo
chkconfig
openstack-sw
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 以人为本提升医护团队工作效率与质量的研究报告
- 医疗AI的隐私保护与法规要求
- 医疗健康管理中的个性化服务设计与实施
- AI临床决策支持系统的科技发展及其挑战
- 人性化医疗服务的国际比较与借鉴
- 企业内部健康管理探索员工对新型医疗科技的接受度
- 学校体育教师的工作总结模版
- 看开学第一课心得体会模版
- 医疗AI在公共卫生领域的伦理应用探讨
- 业务撮合合同范例
- 《心电图机操作与应用》课件
- 2024年烟台龙口市卫生健康局所属事业单位招聘工作人员笔试真题
- 输变电工程建设管理纲要
- 全球化背景下高中历史家国情怀教育的策略
- 租地临时建房合同协议
- 中央2024年市场监管总局直属事业单位招聘笔试历年参考题库附带答案详解
- 四川达州钢铁集团招聘笔试题库2025
- 2025年FRM金融风险管理师考试专业试卷(金融风险管理案例分析)
- 护士法律法规知识培训课件
- 检验科质量安全制度和流程
- 多尺度矢量数据融合-全面剖析
评论
0/150
提交评论