【移动应用开发技术】部署对象存储服务(swift)_第1页
【移动应用开发技术】部署对象存储服务(swift)_第2页
【移动应用开发技术】部署对象存储服务(swift)_第3页
【移动应用开发技术】部署对象存储服务(swift)_第4页
【移动应用开发技术】部署对象存储服务(swift)_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】部署对象存储服务(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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论