Ceph部署中RGW如何搭建

86次阅读
没有评论

共计 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 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计3710字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)