您好,登錄后才能下訂單哦!
小編給大家分享一下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-deploy install --rgw <gateway-node1> [<gateway-node2> ...]
由于我們環境中只有一個RGW,所以執行命令:
$ ceph-deploy install –-rgw node4
Ceph CLI工具需要在管理員模式下運行,因此需要執行以下命令:
$ ceph-deploy admin node4
執行命令:
$ ceph-deploy rgw create node4
一旦RGW開始運行,我們就可以通過端口7480(如果沒有修改的話)來訪問。如:
http://node4:7480
如果RGW運行正常,它應該返回類似的信息:
<ListAllMyBucketsResult> <Owner> <ID>anonymous</ID> <DisplayName/> </Owner> <Buckets/> </ListAllMyBucketsResult>
注意:剩下的創建用戶的步驟都應該在RGW節點上運行。
想正常的訪問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用戶是作為子用戶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接口訪問確認。
需要創建一個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
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如何搭建”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。