Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
admin
2023-03-05 02:01:31
0
                     **Ceph分布式radosgw对象存储融合Swift 、S3的访问应用**

Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
确保集群状态正常:前半部分配置参照 https://blog.51cto.com/jdonghong/244175 上半部分配置。
安装RGW实例
[root@master idc-cluster]# ceph-deploy install --rgw client1 client2 client3
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用

[root@master idc-cluster]# ceph-deploy rgw create client{1..3}
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
添加管理节点权限
[root@master idc-cluster]# ceph-deploy admin client{1..3}
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
创建S3用户
[root@client1 ceph]# radosgw-admin user create --uid="testuser" --display-name="idc jerry"
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
[root@client1 ceph]# radosgw-admin user create --uid="testuser" --display-name="idc jerry"
{
"user_id": "testuser",
"display_name": "idc jerry",
"email": "",
"suspended": 0,
"max_buckets": 1000,
"auid": 0,
"subusers": [],
"keys": [
{
"user": "testuser",
"access_key": "VWWLX9UP2T9185XLXPF6",
"secret_key": "nwbZ9ufh4tWU8j8XtAoEdVv7WkMAkpRNms9Q39p5j"
}
],
"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": []
}
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
[root@master idc-cluster]# curl http://client1:7480 -v
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
查看所有用户
[root@client1 ceph]# radosgw-admin metadata list user
[
"testuser"
]

查看用户信息
[root@client1 ceph]# radosgw-admin user info --uid=testuser
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
查看所有桶
[root@client1 ceph]# radosgw-admin bucket list
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
查看桶内对象
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
查看池
[root@client1 ceph]# rados lspools
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
测试S3接口
[root@BDDB ceph]# yum install python-boto
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
创建测试DEMO
[root@BDDB ceph]# cat s3_test.py
import boto.s3.connection
access_key = 'VWWLX9UP2T9185XLXPF6'
secret_key = 'nwbZ9ufh4tWU8j8XtAoEdVv7WkMAkpRNms9Q39p5j'
conn = boto.connect_s3(
aws_access_key_id=access_key,
aws_secret_access_key=secret_key,
host='client1', port=7480,
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,
)
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
执行测试
[root@BDDB ceph]# python s3_test.py
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
创建Swift用户
要通过 Swift 访问对象网关,需要 Swift 用户,我们创建subuser作为子用户。使用命令

[root@client1 ~]# radosgw-admin user create --uid="jerry" --subuser="jerry":swift --display-name="idc_jerry" --access=full --email=jwenshan@163.com
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
[root@client1 ~]# radosgw-admin user create --uid="jerry" --subuser="jerry":swift --display-name="idc_jerry" --access=full --email=jwenshan@163.com
{
"user_id": "jerry",
"display_name": "idc_jerry",
"email": "jwenshan@163.com",
"suspended": 0,
"max_buckets": 1000,
"auid": 0,
"subusers": [
{
"id": "jerry:swift",
"permissions": "full-control"
}
],
"keys": [
{
"user": "jerry",
"access_key": "L709JEL05ID5NU2N08TY",
"secret_key": "8XhbwWsWiLylOO9lahYI7WUJ3RpBpQAjmaXUUevp"
}
],
"swift_keys": [
{
"user": "jerry:swift",
"secret_key": "lePlwWwWk6enUqJXhM5hAAq7bI96EyBEDaRLyypG"
}
],
"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": []
}
创建密钥(这步省略因为上面通过一条命令直接一起创建了)
[root@client1 ~]# radosgw-admin key create --subuser=jerry:swift --key-type=swift --gen-secret
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
{
"user_id": "jerry",
"display_name": "idc_jerry--access=full",
"email": "",
"suspended": 0,
"max_buckets": 1000,
"auid": 0,
"subusers": [
{
"id": "jerry:swift",
"permissions": ""
}
],
"keys": [
{
"user": "jerry",
"access_key": "R97T9XMKI9FBYBSQ3C55",
"secret_key": "UgDVkoHRW9f8vGxAVGCS9smyUPn6YooxdNC04V83"
}
],
"swift_keys": [
{
"user": "jerry:swift",
"secret_key": "eQK89OYXPGIjFtI1Yk4gjABaO7PYph4HeJjbaDYO"
}
],
"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接口(另找一个客户端结点测试)
需要测试SWIFT客户端安装依赖包
yum install python-setuptools
easy_install pip
pip install python-swiftclient
前提:记得先创建桶,不然不方便后续观察和应用(执行脚本)
[root@BDDB ceph]# cat s3_test.py
import boto.s3.connection
access_key = "L709JEL05ID5NU2N08TY"
secret_key = "8XhbwWsWiLylOO9lahYI7WUJ3RpBpQAjmaXUUevp"
conn = boto.connect_s3(
aws_access_key_id=access_key,
aws_secret_access_key=secret_key,
host='client2', port=7480,
is_secure=False, calling_format=boto.s3.connection.OrdinaryCallingFormat(),
)
bucket = conn.create_bucket('isc_tong') #本例执行了两次脚本创建了两个桶idc_tong和isc_tong
for bucket in conn.get_all_buckets():
print "{name} {created}".format(
name=bucket.name,
created=bucket.creation_date,
)
执行测试:
[root@BDDB ceph]# swift -A http://client2:7480/auth/1.0 -U jerry:swift -K "lePlwWwWk6enUqJXhM5hAAq7bI96EyBEDaRLyypG" list
idc_tong

Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
[root@BDDB ceph]# swift -A http://client2:7480/auth/1.0 -U jerry:swift -K "lePlwWwWk6enUqJXhM5hAAq7bI96EyBEDaRLyypG" stat
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
[root@BDDB ceph]# swift -A http://client2:7480/auth/1.0 -U jerry:swift -K "lePlwWwWk6enUqJXhM5hAAq7bI96EyBEDaRLyypG" list
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
测试swift接口访问对象存储成功。
附引入环境变量方式配置(方便管理配置):
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
[root@BDDB ceph]# export ST_USER=jerry:swift
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
[root@BDDB ceph]# export ST_AUTH=http://client1:7480/auth/1.0
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
[root@BDDB ceph]# export ST_KEY="lePlwWwWk6enUqJXhM5hAAq7bI96EyBEDaRLyypG"
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
[root@BDDB ceph]# swift stat idc_tong
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
上传文件到tong:
[root@BDDB ceph]# swift upload idc_tong ceph.conf

Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
[root@BDDB ceph]# swift stat idc_tong
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
[root@BDDB ceph]# swift stat idc_tong
Account: v1
Container: idc_tong
Objects: 1
Bytes: 369
Read ACL:
Write ACL:
Sync To:
Sync Key:
X-Timestamp: 1567152118.91934
X-Container-Bytes-Used-Actual: 4096
X-Storage-Policy: default-placement
X-Trans-Id: tx00000000000000000001a-005d68e068-d368-default
Accept-Ranges: bytes
Content-Type: text/plain; charset=utf-8
效果展示:

Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
查看桶中存储内容:
[root@BDDB ceph]# swift list idc_tong

Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
[root@BDDB ceph]# ls
ceph.client.admin.keyring ceph.conf rbdmap s3_test.py tmpGnDYcT
[root@BDDB ceph]# swift upload idc_tong s3_test.py
s3_test.py
[root@BDDB ceph]# swift list idc_tong
ceph.conf
s3_test.py
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用
下载(Using the download Command)
[root@BDDB data]# swift download idc_tong ceph.conf
Ceph分布式radosgw对象存储融合Swift 、S3的访问应用

相关内容

热门资讯

汉坦病毒疫情带动概念股上涨,有... 澎湃新闻首席记者 李潇潇5月8日,A股病毒防治概念股上涨明显。“国产分子诊断第一股”达安基因(002...
先拨一百万研究研究:美国空军探... 【文/观察者网 山猫】作为美国空军战略轰炸机“三驾马车”之一的B-52,自1952年首飞至今已有74...
中国也曾有汉坦病毒致死病例,张... 作者:钱童心据央视网5月8日消息,日前中国台北出现一例汉坦病毒致死病例,与老鼠携带病毒有关。这也引发...
“CIA错了”,伊朗外长亮出导... 战争爆发至今,伊朗究竟还拥有多少导弹?伊朗外长宣称导弹库存已恢复至战前的120%,并警告美方不要再肆...
红场阅兵在即:首次取消展示重型... 澎湃新闻记者 薛晶俄罗斯将于5月9日在莫斯科举行卫国战争胜利日阅兵活动。据新华社报道,5月7日,俄罗...
吉林化工园区推动产业转型升级抢... 进入生产旺季,吉林化工园区美思德(吉林)新材料有限公司生产线满负荷运转。在数字化车间内,巨大的信息屏...
我国首台双核原子量子计算机“汉... IT之家 5 月 8 日消息,据央视新闻今日消息,由中国科学院牵头,联合武汉大学、华中科技大学和武汉...
台军前高官怒轰M1A2T战车“... 海峡导报综合报道 民进党当局对美采购108辆M1A2T战车,但台陆军前司令李翔宙怒轰,采购M1A2T...
爆火的“平替游”,正在撕开谁的... 【文/观察者网 邓军 编辑/赵乾坤】受中东地缘局势不确定性及国际油价波动等因素影响,今年“五一”假期...
8名网贷设计者,揭秘大厂如何“... 00后李明,是老同学眼中“别人家的孩子”。他在重点大学读着自己梦想的心理学专业,还计划念博士。每次和...