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的访问应用

相关内容

热门资讯

一艘越南籍渔船在南沙遇险,29... 新华社三沙7月25日电(记者赵颖全)记者从三沙海上搜救中心获悉,25日傍晚,一艘越南籍渔船在南沙永暑...
成都如何耕好新型工业化“试验田... 7月24日,APEC数字周城市侧配套活动——制造强国建设专家研讨暨新型工业化推进交流会举行,院士专家...
活力中国调研行丨检测设备“长腿... 从排放控制的细分龙头到智能装备的新入局者,凯龙高科的转型路径,为观察传统制造业如何切入新赛道提供了一...
原创 别... 别被顶级奖项光环忽悠透了!拿菲尔兹奖的王虹,道出基础科研最现实的人间落差 开篇:大众脑补的名利双收,...
温州划龙桥惠耳——如何应对老年... 年近古稀的老人,近来时常出现耳鸣。周日,孩子们来了,跟她说话,声音小了她听不清,声音大了她嫌吵得慌,...
民调:包括共和党人在内,美国人... 据美国有线电视新闻网(CNN)当地时间24日报道,多项最新民调结果显示,包括许多共和党人在内,美国民...
一个人害得全县买不了榴莲,恶意... 作者:何涛 责编:任绍敏据央视报道,近日,湖南衡山县人民法院审结一起案件:当地一男子用AI伪造榴莲、...
“红霞”已加强为强台风,中央气... 今年第12号台风“红霞”已于今天晚上10时由台风级加强为强台风级,中央气象台发布今年首个台风红色预警...
携程为何被处51.79亿元重罚... 今天(25日),市场监管总局依法对携程集团有限公司滥用市场支配地位实施垄断行为作出行政处罚,罚没款合...
山西一学生在黄土崩塌中遇难:中... 据央视新闻:7月24日18时49分,山西省洪洞县好义村发生黄土崩塌,造成一户民宅被掩埋,造成5人死亡...