共計 6308 個字符,預計需要花費 16 分鐘才能閱讀完成。
這篇文章主要介紹 ceph 中 mds 與 cephx 有什么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
在 CEPH 中,塊和對象是不用 MDS 的,在其文件系統中,元數據服務器 MDS 才是必不可少的。Ceph MDS 為基于 POSIX 文件系統的用戶提供了一些基礎命令,例如 ls、find 等命令。Ceph FS(Ceph File System)中引入了 MDS(Metadata Server),主要是為兼容 POSIX 文件系統提供元數據,一般都是當做文件系統來掛載。
對于完全分布式的系統,數據遷移和擴容是值得關注的痛點,那么 Metadata Server 是很需要避免單點故障和數據瓶頸的問題。
Ceph cephx 認證配置
認證
注:當更新的時候,建議把認證的注解掉,然后在升級,一旦升級接收就激活認證。
默認情況下 cephx 協議是打開的,同時認證服務是要一定的計算資源的,如果你的網絡環境很安全,你不想使用認證,你也可以把它關掉,但是不建議關掉。如果關閉認證,你就很有可能受到中間人 *** 篡改 client/server 消息,這會導致嚴重的安全問題。
部署情景:
有兩種主要的部署方式,一個是使用 ceph-deploy 工具,第一次部署最普遍使用的方式,也是最簡單的,另一個是使用第三方的部署工具(chef,juju,puppet,etc。。。)在這個中情況下你就需要手動的執行或者配置你的部署工具來引導 monitors。
Ceph-deploy
使用 ceph-deploy 部署集群,你不需要手動引導 monitors 或者創建 client.admin 用戶或者鑰匙環。這些在你執行 ceph-deploy 的時候都會幫你創建好的。
當你執行 ceph-deploy new {initial-monitors},ceph 會幫你創建 monitor 鑰匙環和生成一個 ceph 配置文件,里面有認證設置,默認是啟用的。:
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
當執行 ceph-deploy mon create-initial,ceph 會引導初始化 monitors,為 client.admin 用戶檢索包含 key 的 ceph.client.admin.keyring 文件。另外它也會檢索給 ceph-deploy 和 ceph-disk 使用程序預備和激活 osds 和 metadata 服務的鑰匙環。
當執行 ceph-deploy admin {node-name}(ceph 必須在此之前安裝)它會把配置文件和 ceph.client.admin.keyring 文件推送到每個節點的 /etc/ceph 目錄下。這樣你就可以在節點的命令行上以 root 用戶執行 ceph 管理員的功能。
Manual deploy
當你手動部署集群的時候,你需要手動的引導 monitors 和創建用戶和鑰匙環。這里不做詳細。
啟用 / 禁用 cephx
使用 cephx 認證就需要你為 monitors,osd 和 metadata server 提供一個 key。如果你只是做啟用或者禁用 cephx 的操作,則就沒有必要重復引導過程。
啟用 cephx,ceph 就會在默認的路徑下尋找 keyring,/etc/ceph/cluster.name.keyring. 可以在配置文件 ceph.conf 的 [global] 部分的使用 keyring 選項來更改這個地址。但是不建議這么做。
執行下面的程序可以把 cephx 從禁用狀態轉到啟用狀態。如果你已經有 key 了,可以跳過創建 key 的步驟。
1. 創建用戶 client.admin 的 key,并為客戶端保存 key 的副本
Ceph auth get-or-create client.admin mon‘allow ’mds‘allow ’osd‘allow *’–o /etc/ceph/ceph.client.admin.keyring
注:如果 /etc/ceph/ceph.client.admin.keyring 已經存在,就不要再執行這一步。
2. 為 monitors 集群產生一個 keyring,并生成一個 monitors 秘鑰。
ceph-authtool –create-keyring /tmp/ceph.mon.keyring –gen-key –n mon. –cap mon‘allow *’
3. 把 keyring 拷貝到每一個 mon data 路徑下,如:拷貝到 mon.a 路徑下:
cp /tmp/ceph.mon.keyring /var/lib/ceph/mon/ceph-a/keyring
4. 為每個 osd 生成一個 key,{id}時 osd 的編號。
ceph auth get-or-create osd.{id} mon‘allow rwx’osd‘allow *’–o /var/lib/ceph/osd/ceph-{id}/keyring
5. 為每個 mds 生成一個 key,{id}是 mds 的號
ceph auth get-or-create mds.{id} mon ‘allow rwx’ osd ‘allow *’ mds ‘allow *’ –o /var/lib/ceph/mds/ceph-{id}/keyring
6. 通過設置 [global] 下的這幾個選項來啟用 cephx.
Auth cluster required =cephx
auth service require = cephx
Auth client required = cephx
7. 啟動或者重啟 ceph 集群。
禁用 cephx
禁用 cephx 認證時非常簡單的。
1. 禁用 cephx,在配置文件 ceph.conf 中的 [global] 部分設置下面幾個參數。
auth cluster required = none
auth service required =none
auth client required =none
2. 啟動或者重啟 ceph 集群
Keys
Key 是用于集群中用戶認證的。如果啟用了 cephx 認證系統,就需要 key;否則,不需要。一般 key 的默認保存路徑在 /etc/ceph 目錄下。給管理員或者 client 提供 key 的普遍方式是把可包含在 /etc/ceph/ 目錄下的 keyring 文件中(對于使用 ceph-deploy 部署工具)。文件格式通常是 $cluster.client.admin.keyring; 如果放在 /etc/ceph 目錄下,則就不需要再在 ceph 的配置文件中指定 keyring 參數,如果沒有則需要在 ceph 配置文件中指定 keyring 參數。
注:確保 keyring 文件的權限合適。
你可以在 ceph 配置文件中指定 key,或者使用 keyring 指定 key 的路徑。
參數:
Keyring:keyring 文件的路徑
Key:key 的值
Keyfile:key 文件路徑
進程 keyring
管理員用戶或者部署工具(ceph-deploy)也會跟普通用戶生成 keyring 方式一樣,生成一個守護進程 keyring。一般情況下,守護進程的 keyring 是在他們數據目錄里面。默認 Keyring 位置和 capabilities 對于守護進程的功能來說是必須的。
ceph-mon
Location: mondata/keyringCapabilities:mon‘allow′cephosdLocation:osd_data/keyring
Capabilities: mon‘allow profile osd’osd‘allow *’
ceph-mds
Location: mdsdata/keyringCapabilities:mds‘allow′mon‘allowprofilemds′osd‘allowrwx′radosgwLocation:rgw_data/keyring
Capabilities: mon‘allow rwx’osd‘allow rwx’
守護進程的默認數據路徑格式是:
/var/lib/ceph/type/cluster-$id
簽名
在 ceph Bobtail 和以后的版本中我們都傾向于對所有的消息使用簽名,使用 session key 來建立初始話認證,然而 Ceph Argonaut 和更早的版本確沒有對消息做認證,為了保持兼容性,消息簽名默認是關閉的。如果你是 Bobtail 或者更新的版本可以打開。
在認證上,Ceph 提供了細粒度的控制,所以你可以在 client 和 ceph 的消息上啟用或者禁用簽名,也可以在對 ceph 進程之間的消息做啟用或者禁用消息簽名,這些可以使用下面的參數來配置:
cephx requite signatures : 決定是否對 client 和 ceph storage cluster,及 ceph 的守護進程之間的消息做數字簽名, 默認是 false。
cephx cluster require signatures: 決定是否對 ceph 的進程之間的消息簽名,默認是 false。
cephx service require signature : 決定是否對 client 和 ceph storage cluster 之間的消息做認證,默認是 false。
cephx sign messegs: 如果 ceph 的版本支持消息簽名,ceph 將對所有的消息簽名,默認是 true。
存活時間
auth service ticket ttl:當 ceph storage cluster 發送給 client 一個 ticket,這個選項用來定義這個 ticket 的存活時間(有效時間),默認是 60*60。
Ceph 集群中如何摘除一個包含 mon、osd 和 mds 的節點
步驟如下:
1、摘除 mon
[root@bgw-os-node153 ~]# ceph mon remove bgw-os-node153
removed mon.bgw-os-node153 at 10.240.216.153:6789/0, there are now 2 monitors
2、摘除此節點上所有的 osd
1)、查看此節點的 osd
[root@bgw-os-node153 ~]# ceph osd tree
-4 1.08 host bgw-os-node153
8 0.27 osd.8 up 1
9 0.27 osd.9 up 1
10 0.27 osd.10 up 1
11 0.27 osd.11 up 1
2)、把上面的節點的 osd 進程停掉
[root@bgw-os-node153 ~]# /etc/init.d/ceph stop osd
=== osd.10 ===
Stopping Ceph osd.10 on bgw-os-node153…kill 2251…done
=== osd.9 ===
Stopping Ceph osd.9 on bgw-os-node153…kill 2023…kill 2023…done
=== osd.8 ===
Stopping Ceph osd.8 on bgw-os-node153…kill 1724…kill 1724…done
=== osd.11 ===
Stopping Ceph osd.11 on bgw-os-node153…kill 1501…done
3)、再次查看 ceph osd 狀態
[root@bgw-os-node153 ~]# ceph osd tree
-4 1.08 host bgw-os-node153
8 0.27 osd.8 down 1
9 0.27 osd.9 down 1
10 0.27 osd.10 down 1
11 0.27 osd.11 down 1
4)、刪除所有的 osd
[root@bgw-os-node153 ~]# ceph osd rm 8
removed osd.8
[root@bgw-os-node153 ~]# ceph osd rm 9
removed osd.9
[root@bgw-os-node153 ~]# ceph osd rm 10
^[[Aremoved osd.10
[root@bgw-os-node153 ~]# ceph osd rm 11
removed osd.11
5)、刪除所有 osd 的 crush map
[root@bgw-os-node153 ~]# ceph osd crush rm osd.8
removed item id 8 name osd.8 from crush map
[root@bgw-os-node153 ~]# ceph osd crush rm osd.9
removed item id 9 name osd.9 from crush map
[root@bgw-os-node153 ~]# ceph osd crush rm osd.10
^[[Aremoved item id 10 name osd.10 from crush map
[root@bgw-os-node153 ~]# ceph osd crush rm osd.11
removed item id 11 name osd.11 from crush map
6)、刪除所有 osd 的認證
[root@bgw-os-node153 ~]# ceph auth del osd.8
updated
[root@bgw-os-node153 ~]# ceph auth del osd.9
updated
[root@bgw-os-node153 ~]# ceph auth del osd.10
updated
[root@bgw-os-node153 ~]# ceph auth del osd.11
updated
7)、在 ceph osd tree 中刪除此機器 host 的 crush map
[root@bgw-os-node153 ~]# ceph osd crush rm bgw-os-node153
removed item id -4 name bgw-os-node153 from crush map
8)、卸載所有掛載在 osd 的硬盤
[root@bgw-os-node153 ~]# umount /var/lib/ceph/osd/ceph-8
[root@bgw-os-node153 ~]# umount /var/lib/ceph/osd/ceph-9
[root@bgw-os-node153 ~]# umount /var/lib/ceph/osd/ceph-10
[root@bgw-os-node153 ~]# umount /var/lib/ceph/osd/ceph-11
3、摘掉 mds
1、直接關閉此節點的 mds 進程
[root@bgw-os-node153 ~]# /etc/init.d/ceph stop mds
=== mds.bgw-os-node153 ===
Stopping Ceph mds.bgw-os-node153 on bgw-os-node153…kill 4981…done
[root@bgw-os-node153 ~]#
2、刪除此 mds 的認證
[root@bgw-os-node153 ~]# ceph auth del mds.bgw-os-node153
updated
以上是“ceph 中 mds 與 cephx 有什么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業資訊頻道!