共計 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 行業資訊頻道!