溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用

發(fā)布時間:2020-07-18 21:43:17 來源:網(wǎng)絡(luò) 閱讀:705 作者:jwenshan 欄目:系統(tǒng)運維
                     **Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用**

Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
確保集群狀態(tài)正常:前半部分配置參照 https://blog.51cto.com/jdonghong/244175 上半部分配置。
安裝RGW實例
[root@master idc-cluster]# ceph-deploy install --rgw client1 client2 client3
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用

[root@master idc-cluster]# ceph-deploy rgw create client{1..3}
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
添加管理節(jié)點權(quán)限
[root@master idc-cluster]# ceph-deploy admin client{1..3}
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
創(chuàng)建S3用戶
[root@client1 ceph]# radosgw-admin user create --uid="testuser" --display-name="idc jerry"
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
[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的訪問應(yīng)用
[root@master idc-cluster]# curl http://client1:7480 -v
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
查看所有用戶
[root@client1 ceph]# radosgw-admin metadata list user
[
"testuser"
]

查看用戶信息
[root@client1 ceph]# radosgw-admin user info --uid=testuser
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
查看所有桶
[root@client1 ceph]# radosgw-admin bucket list
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
查看桶內(nèi)對象
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
查看池
[root@client1 ceph]# rados lspools
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
測試S3接口
[root@BDDB ceph]# yum install python-boto
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
創(chuàng)建測試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的訪問應(yīng)用
執(zhí)行測試
[root@BDDB ceph]# python s3_test.py
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
創(chuàng)建Swift用戶
要通過 Swift 訪問對象網(wǎng)關(guān),需要 Swift 用戶,我們創(chuàng)建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的訪問應(yīng)用
[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": []
}
創(chuàng)建密鑰(這步省略因為上面通過一條命令直接一起創(chuàng)建了)
[root@client1 ~]# radosgw-admin key create --subuser=jerry:swift --key-type=swift --gen-secret
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
{
"user_id": "jerry",
"display_name": "idc_jerry--access=full",
"email": "",
"suspended": 0,
"max_buckets": 1000,
"auid": 0,
"subusers": [
{
"id": "jerry:swift",
"permissions": "<none>"
}
],
"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接口(另找一個客戶端結(jié)點測試)
需要測試SWIFT客戶端安裝依賴包
yum install python-setuptools
easy_install pip
pip install python-swiftclient
前提:記得先創(chuàng)建桶,不然不方便后續(xù)觀察和應(yīng)用(執(zhí)行腳本)
[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') #本例執(zhí)行了兩次腳本創(chuàng)建了兩個桶idc_tong和isc_tong
for bucket in conn.get_all_buckets():
print "{name} {created}".format(
name=bucket.name,
created=bucket.creation_date,
)
執(zhí)行測試:
[root@BDDB ceph]# swift -A http://client2:7480/auth/1.0 -U jerry:swift -K "lePlwWwWk6enUqJXhM5hAAq7bI96EyBEDaRLyypG" list
idc_tong

Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
[root@BDDB ceph]# swift -A http://client2:7480/auth/1.0 -U jerry:swift -K "lePlwWwWk6enUqJXhM5hAAq7bI96EyBEDaRLyypG" stat
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
[root@BDDB ceph]# swift -A http://client2:7480/auth/1.0 -U jerry:swift -K "lePlwWwWk6enUqJXhM5hAAq7bI96EyBEDaRLyypG" list
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
測試swift接口訪問對象存儲成功。
附引入環(huán)境變量方式配置(方便管理配置):
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
[root@BDDB ceph]# export ST_USER=jerry:swift
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
[root@BDDB ceph]# export ST_AUTH=http://client1:7480/auth/1.0
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
[root@BDDB ceph]# export ST_KEY="lePlwWwWk6enUqJXhM5hAAq7bI96EyBEDaRLyypG"
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
[root@BDDB ceph]# swift stat idc_tong
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
上傳文件到tong:
[root@BDDB ceph]# swift upload idc_tong ceph.conf

Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
[root@BDDB ceph]# swift stat idc_tong
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
[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的訪問應(yīng)用
查看桶中存儲內(nèi)容:
[root@BDDB ceph]# swift list idc_tong

Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用
[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的訪問應(yīng)用
下載(Using the download Command)
[root@BDDB data]# swift download idc_tong ceph.conf
Ceph分布式radosgw對象存儲融合Swift 、S3的訪問應(yīng)用

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI