本文章ceph版本為luminous,作業系統為centos7。7,ceph安裝部署方法可以參考本人其他文章。
[root@ceph1 ceph-install]# ceph -v
ceph version 12。2。13 (584a20eb0237c657dc0567da126be145106aa47e) luminous (stable)
一、執行安裝前的準備工作
首先進行
環境檢查
並在你的 Ceph 物件閘道器節點上執行安裝前的準備工作。特別的,你需要禁用部署 Ceph 叢集所用使用者的 requiretty ,同時設定 SELinux 為 Permissive 以及 Ceph 部署使用者使用 sudo 時無需密碼。對於 Ceph 物件閘道器,在生產環境下你需要開起 Civetweb 所使用的埠。Civetweb預設執行在 7480 埠上。
二、安裝 Ceph 物件閘道器
在你的管理節點的工作目錄下,給 Ceph 物件閘道器節點安裝Ceph物件所需的軟體包。例如:
ceph-deploy install ——rgw
ceph-common 包是它的一個依賴性,所以 ceph-deploy 也將安裝這個包。 ceph 的命令列工具就會為管理員準備好。為了讓你的 Ceph 物件閘道器節點成為管理節點,可以在管理節點的工作目錄下執行以下命令:ceph-deploy admin
步驟如下:
1 在你的管理節點的工作目錄下,使用命令在 Ceph 物件閘道器節點上新建一個 Ceph物件閘道器例項。
ceph-deploy rgw create ceph1
[root@ceph1 ceph-install]# curl http://ceph1:7480
<?xml version=“1。0” encoding=“UTF-8”?>
備註:ceph1為本地,或者可以解釋成IP的主機名或者域名。
檢視開啟rgw服務
[root@ceph1 ceph-install]# ss -ltpn | grep gw
LISTEN 0 128 *:7480 *:* users:((“radosgw”,pid=2457,fd=40))
[root@ceph1 ceph-install]# ps -ef | grep gw
ceph 2457 1 0 12:32 ? 00:00:38 /usr/bin/radosgw -f ——cluster ceph ——name client。rgw。ceph1 ——setuser ceph ——setgroup ceph
root 3694 2352 0 16:00 pts/0 00:00:00 grep ——color=auto gw
檢視rgw自動生成pool
[root@ceph1 ceph-install]# ceph df
GLOBAL:
SIZE AVAIL RAW USED %RAW USED
2。93TiB 2。92TiB 6。05GiB 0。20
POOLS:
NAME ID USED %USED MAX AVAIL OBJECTS
。rgw。root 1 1。09KiB 0 948GiB 4
default。rgw。control 2 0B 0 948GiB 8
default。rgw。meta 3 849B 0 948GiB 5
default。rgw。log 4 0B 0 948GiB 175
default。rgw。buckets。index 5 0B 0 948GiB 1
三 使用閘道器
1 為了使用 REST 介面,首先需要為S3介面建立一個初始 Ceph 物件閘道器使用者。然後,為 Swift 介面建立一個子使用者。然後你需要驗證建立的使用者是否能夠訪問閘道器。
為 S3 訪問建立 RADOSGW 使用者
一個``radosgw`` 使用者需要被新建並被分配許可權。命令 man radosgw-admin 會提供該命令的額外資訊。
為了新建使用者,在 gateway host 上執行下面的命令:
sudo radosgw-admin user create ——uid=“testuser” ——display-name=“First User”
建立如下:
radosgw-admin user create ——uid=“wangjinxiong” ——display-name=“wangjinxiong”
{
“user_id”: “wangjinxiong”,
“display_name”: “wangjinxiong”,
“email”: “”,
“suspended”: 0,
“max_buckets”: 1000,
“auid”: 0,
“subusers”: [],
“keys”: [
{
“user”: “wangjinxiong”,
“access_key”: “NJFWJMCDV4IX966BWYHR”,
“secret_key”: “WWPGCA3s4hk2Frd9GdOS78Pbz2olceDlLUxOura0”
}
],
“swift_keys”: [],
“caps”: [],
“op_mask”: “read, write, delete”,
“default_placement”: “”,
“placement_tags”: [],
“bucket_quota”: {
“enabled”: false,
“check_on_raw”: false,
“max_size”: -1,
“max_size_kb”: 0,
“max_objects”: -1
},
“user_quota”: {
“enabled”: false,
“check_on_raw”: false,
“max_size”: -1,
“max_size_kb”: 0,
“max_objects”: -1
},
“temp_url_keys”: [],
“type”: “rgw”
}
2 新建一個 Swift 使用者
如果你想要使用這種方式訪問叢集,你需要新建一個 Swift 子使用者。建立 Swift 使用者包括兩個步驟。第一步是建立使用者。第二步是建立 secret key。
在``gateway host`` 上執行喜愛按的步驟:
新建 Swift 使用者:
sudo radosgw-admin subuser create ——uid=testuser ——subuser=testuser:swift ——access=full
步驟如下:
# radosgw-admin subuser create ——uid=wangjinxiong ——subuser=wangjinxiong:swift ——access=full
{
“user_id”: “wangjinxiong”,
“display_name”: “wangjinxiong”,
“email”: “”,
“suspended”: 0,
“max_buckets”: 1000,
“auid”: 0,
“subusers”: [
{
“id”: “wangjinxiong:swift”,
“permissions”: “full-control”
}
],
“keys”: [
{
“user”: “wangjinxiong”,
“access_key”: “NJFWJMCDV4IX966BWYHR”,
“secret_key”: “WWPGCA3s4hk2Frd9GdOS78Pbz2olceDlLUxOura0”
}
],
“swift_keys”: [
{
“user”: “wangjinxiong:swift”,
“secret_key”: “UoyOcMgRSzzIUheXHx4oUf4By3cXfwomhskJzSPk”
}
],
“caps”: [],
“op_mask”: “read, write, delete”,
“default_placement”: “”,
“placement_tags”: [],
“bucket_quota”: {
“enabled”: false,
“check_on_raw”: false,
“max_size”: -1,
“max_size_kb”: 0,
“max_objects”: -1
},
“user_quota”: {
“enabled”: false,
“check_on_raw”: false,
“max_size”: -1,
“max_size_kb”: 0,
“max_objects”: -1
},
“temp_url_keys”: [],
“type”: “rgw”
}
新建 secret key:
sudo radosgw-admin key create ——subuser=testuser:swift ——key-type=swift ——gen-secret
步驟如下:
[root@ceph1 ceph-install]# radosgw-admin key create ——subuser=wangjinxiong:swift ——key-type=swift ——gen-secret
{
“user_id”: “wangjinxiong”,
“display_name”: “wangjinxiong”,
“email”: “”,
“suspended”: 0,
“max_buckets”: 1000,
“auid”: 0,
“subusers”: [
{
“id”: “wangjinxiong:swift”,
“permissions”: “full-control”
}
],
“keys”: [
{
“user”: “wangjinxiong”,
“access_key”: “NJFWJMCDV4IX966BWYHR”,
“secret_key”: “WWPGCA3s4hk2Frd9GdOS78Pbz2olceDlLUxOura0”
}
],
“swift_keys”: [
{
“user”: “wangjinxiong:swift”,
“secret_key”: “V4jLCpnztAmiiwIo9fdPAQcpTbRozM2L1wXOQMOW”
}
],
“caps”: [],
“op_mask”: “read, write, delete”,
“default_placement”: “”,
“placement_tags”: [],
“bucket_quota”: {
“enabled”: false,
“check_on_raw”: false,
“max_size”: -1,
“max_size_kb”: 0,
“max_objects”: -1
},
“user_quota”: {
“enabled”: false,
“check_on_raw”: false,
“max_size”: -1,
“max_size_kb”: 0,
“max_objects”: -1
},
“temp_url_keys”: [],
“type”: “rgw”
}
四 訪問驗證
1 測試 swift 訪問
Swift 訪問的驗證則可以使用``swift`` 的命令列客戶端。可以透過命令 man swift 獲取更多命令列選項的更多資訊。
執行下面的命令安裝 swift 客戶端,
sudo yum install python-setuptools sudo easy_install pip sudo pip install ——upgrade setuptools sudo pip install ——upgrade python-swiftclient
步驟如下:
# yum install python-setuptools
# easy_install pip
# pip install ——upgrade setuptools
# pip install ——upgrade python-swiftclient
執行下面的命令驗證 swift 訪問:
swift -A http://{IP ADDRESS}:{port}/auth/1。0 -U testuser:swift -K ‘{swift_secret_key}’ list
使用閘道器伺服器的外網 IP 地址替換其中的 {IP ADDRESS} ,使用新建 swift 使用者時執行的命令 radosgw-admin key create 的輸出替換其中的 {swift_secret_key} 。使用你的 Civetweb 所使用的埠替換其中 {port} ,比如預設是 7480 。如果你不替換這個埠,它的預設值是 80。
舉例如下:
[root@localhost ~]# swift -A http://192。168。3。232:7480/auth/1。0 -U wangjinxiong:swift -K ‘V4jLCpnztAmiiwIo9fdPAQcpTbRozM2L1wXOQMOW’ list
wangjinxiong
檢視容器裡面的檔案
[root@localhost ~]# swift -A http://192。168。3。232:7480/auth/1。0 -U wangjinxiong:swift -K ‘V4jLCpnztAmiiwIo9fdPAQcpTbRozM2L1wXOQMOW’ list wangjinxiong
CentOS-7-x86_64-Minimal-1804。iso
環球都會廣場光纜建設圖。jpg
2 使用S3 windows客戶端軟體 Gladinet下載
軟體下載地址:https://pan。baidu。com/s/1-CZ1m48uAtWuAtIh3fD63A 提取碼:5crs
操作如下:
開啟軟體,點選attach cloud storage
在storage server選擇:Amazon S3 Compatible storage
接著點選下一步
輸入一下資訊,點選下一步完成。
備註:以上地址為ceph rgw的地址。
我的電腦會出現以下圖示:
接著可以跟操作網路盤一樣,隨意上傳,下載,刪除檔案。