共计 3710 个字符,预计需要花费 10 分钟才能阅读完成。
丸趣 TV 小编给大家分享一下 Ceph 部署中 RGW 如何搭建,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
部署 Ceph RGW
进入上文所述的 my-cluster 目录。
$ cd my-cluster
修改默认端口(可选的)
RGW 默认使用 Civetweb 作为其 Web Sevice,而 Civetweb 默认使用端口 7480 提供服务,如果想修改端口(如 80 端口),就需要修改 Ceph 的配置文件。在配置文件中增加一个 section[client.rgw. gateway-node],其中 gateway-node 需要修改为 RGW 的 hostname。如下:
[client.rgw.node4]
rgw_frontends = civetweb port=80
然后再将配置文件推送到 RGW 节点。
$ ceph-deploy --overwrite-conf config push node4
安装 CEPH OBJECT GATEWAY
格式为:
$ ceph-deploy install --rgw gateway-node1 [gateway-node2 ...]
由于我们环境中只有一个 RGW,所以执行命令:
$ ceph-deploy install –-rgw node4
管理 RGW 节点
Ceph CLI 工具需要在管理员模式下运行,因此需要执行以下命令:
$ ceph-deploy admin node4
安装 RGW 实例
执行命令:
$ ceph-deploy rgw create node4
一旦 RGW 开始运行,我们就可以通过端口 7480(如果没有修改的话)来访问。如:
http://node4:7480
如果 RGW 运行正常,它应该返回类似的信息:
ListAllMyBucketsResult
Owner
ID anonymous /ID
DisplayName/
/Owner
Buckets/
/ListAllMyBucketsResult
注意:剩下的创建用户的步骤都应该在 RGW 节点上运行。
创建 S3 用户
想正常的访问 RGW,需要创建相应的 RGW 用户,并赋予相应的权限,radosgw-admin 命令实现了这些功能。
执行下面命令,来创建一个名为 testuser 的用户:
$ radosgw-admin user create --uid= testuser --display-name= First User
命令的输出大致如下:
{
user_id : testuser ,
display_name : First User ,
email : ,
suspended : 0,
max_buckets : 1000,
auid : 0,
subusers : [],
keys : [{
user : testuser ,
access_key : I0PJDPCIYZ665MW88W9R ,
secret_key : dxaXZ8U90SXydYzyS5ivamEP20hkLSUViiaR+ZDA
}],
swift_keys : [],
caps : [],
op_mask : read, write, delete ,
default_placement : ,
placement_tags : [],
bucket_quota : {
enabled : false,
max_size_kb : -1,
max_objects : -1
},
user_quota : {
enabled : false,
max_size_kb : -1,
max_objects : -1
},
temp_url_keys : []}
注意:需要记住返回结果中 keys- access_key 和 keys- secret_key 的值,用于 S3 接口访问确认。
创建 Swift 用户
Swift 用户是作为子用户 subuser 被创建的,执行以下命令:
$ radosgw-admin subuser create --uid=testuser --subuser=testuser:swift --access=full
输出结果大致如下:
user_id : testuser ,
display_name : First User ,
email : ,
suspended : 0,
max_buckets : 1000,
auid : 0,
subusers : [{
id : testuser:swift ,
permissions : full-control
}],
keys : [{
user : testuser:swift ,
access_key : 3Y1LNW4Q6X0Y53A52DET ,
secret_key :
}, {
user : testuser ,
access_key : I0PJDPCIYZ665MW88W9R ,
secret_key : dxaXZ8U90SXydYzyS5ivamEP20hkLSUViiaR+ZDA
}],
swift_keys : [{
user : testuser:swift ,
secret_key : 244+fz2gSqoHwR3lYtSbIyomyPHf3i7rgSJrF\/IA
}],
caps : [],
op_mask : read, write, delete ,
default_placement : ,
placement_tags : [],
bucket_quota : {
enabled : false,
max_size_kb : -1,
max_objects : -1
},
user_quota : {
enabled : false,
max_size_kb : -1,
max_objects : -1
},
temp_url_keys : []
注意:需要记住返回结果中 swift_keys- secret_key 的值,用于 Swift 接口访问确认。
测试 S3 接口
需要创建一个 Python 测试脚本来测试 S3 访问。该脚本会连接 RGW,创建一个 bucket 并列出所有的 bucket。其中,变量 access_key 和 secret_access 的值,来自于创建 S3 用户命令时,radosgw-admin 命令返回的 keys- access_key 和 keys- secret_key。
执行以下步骤,首先安装 python-boto 库,该库用于连接 S3:
$ apt-get install python-boto
创建并编辑 Python 脚本:
$ vi s3test.py
import boto.s3.connection
access_key = I0PJDPCIYZ665MW88W9R
secret_key = dxaXZ8U90SXydYzyS5ivamEP20hkLSUViiaR+ZDA
conn = boto.connect_s3(
aws_access_key_id=access_key,
aws_secret_access_key=secret_key,
host= {hostname} , port={port},
is_secure=False, calling_format=boto.s3.connection.OrdinaryCallingFormat(),
)
bucket = conn.create_bucket(my-new-bucket
)
for bucket in conn.get_all_buckets():
print {name} {created} .format(
name=bucket.name,
created=bucket.creation_date,
)
替换 {hostname}、{port} 为真实环境的 hostname(或者 ip)和 RGW 的端口。执行命令进行测试:
$ python s3test.py
输出应该类似如下:
my-new-bucket
-2 2017-02-19T04:34:17.530Z
5.4.8 测试 Swift 接口
Swfit 的访问可以通过命令行。首先安装相关软件包:
$ apt-get install python-setuptools
$ apt-get install python-swiftclient
执行下列命令,范文 Swift 接口:
$ swift -A http://{IP ADDRESS}:{port}/auth/1.0 -U testuser:swift -K {swift_secret_key} list
替换 {IP ADDRESS}、{port}、{swift_secret_key} 等相关参数,其中 {swift_secret_key} 为创建 Swift 用户时,radosgw-admin 命令返回的 swift_keys- secret_key 的值。正常的输出应该为:
my-new-bucket
以上是“Ceph 部署中 RGW 如何搭建”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!