Ceph创建rgw对象存储
1、功能特性
对象存储最基本的功能包括用户,存储桶,对象的增删改查,在此基础之上结合对象存储应用的特征,引申出更多的功能,比如在对象存储应用中,如果对一个存储桶或者对象没有任何访问的限制,该储存桶或对象就会变成公开的资源,任何人都可以访问。因此对存储桶和对象的访问控制变得尤为重要,存储桶和对象的访问功能成为了对象存储的基本功能之一。
2、 创建rgw 集群 (对象存储集群)
2.1、安装
#rgw节点都安装
yum install -y ceph-radosgw
#创建rgw网关 在管理(ceph01)节点添加
ceph-deploy rgw create ceph01 ceph02 ceph03
2.2、ceph -s 出现以下列证明成功
从日志中可以看到 RGW 已经运行起来了,我们来访问以下试下。
修改7480端口(可选)
#将7480端口修改为80端口
# 修改 Ceph 配置文件
$ sudo vim /etc/ceph/ceph.conf
# 在 [global] 节点下增加
[client.rgw.admin]
rgw_frontends = "civetweb port=80"
# 重启 Ceph 对象网关
$ systemctl restart ceph-radosgw.target
3、使用 Ceph 对象网关
3.1、创建rgw对象存储客户认证用户
radosgw-admin user create --uid="rgwuser" --display-name="This is first rgw test user"
注意:记住 access_key 和 secret_key 值,测试访问 S3 接口时需要使用
3.2、如果用户的access_key忘记可通过以下命令查看
[root@ceph01 my-cluster]# radosgw-admin user info --uid rgwuser
3.4 ceph radosgw-admin的操作
https://blog.csdn.net/qq_40017427/article/details/106358210
4、测试访问 S3 接口
#我们需要安装 python-boto 包用于测试
yum install python-boto
4.2、编写 python 测试脚本
[root@ceph03 ~]# vim s3.py
import boto
import boto.s3.connection
access_key = 'ZN8UJ26A7V8CAI6R1BAI' //改为创建用户时所生成的access_key
secret_key = 'KXNbELqaJH0ZsZIqd892vhN6IBNuda9TtGZ1GDw8' //改为创建用户时所生成的secret_key
conn = boto.connect_s3(
aws_access_key_id = access_key,
aws_secret_access_key = secret_key,
host = 'ceph02', port=7480, //改为rgw网关地址
is_secure=False,
calling_format = boto.s3.connection.OrdinaryCallingFormat(),
)
bucket = conn.create_bucket('my-first-s3-bucket')
for bucket in conn.get_all_buckets():
print "{name}\t{created}".format(
name = bucket.name,
created = bucket.creation_date,
)
测试
[root@ceph03 ~]# python s3.py
my-first-s3-bucket 2020-12-24T06:58:44.682Z
测试通过。
5、测试访问Swift接口
5.1、创建 Swift 用户
radosgw-admin subuser create --uid=rgwuser --subuser=rgwuser:swift --access=full
注意:返回的 Json 值中,我们要记住两个 secret_key 因为下边我们测试访问 Swift 接口时需要使用。
5.2、测试访问 Swift 接口
yum -y install python-setuptools
easy_install pip
pip install --upgrade setuptools
pip install --upgrade python-swiftclient
# 访问 Swift 接口
[root@ceph03 ~]# swift -A http://ceph01:7480/auth/1.0 -U rgwuser:swift -K 'iEi7pwkbVeZTaQjELLMlaQ4mtZtOf9SBA0kJp8Tm' list
my-first-s3-bucket
测试成功