列出與集群關聯的主機:
ceph orch host ls [--format yaml] [--host-pattern <name>] [--label <label>] [--host-status <status>]
其中可選參數“host-pattern”、“label”和“host-status”用於過濾。“host-pattern”是一個正則表達式,它將與主機名匹配,並且只返回匹配的主機。“label”將只返回具有給定標簽的主機。“host-status”將只返回具有給定狀態的主機(當前為“離線”或“維護”)。這些過濾標志的任何組合都是有效的。您可以同時過濾主機名、標簽和/或狀態。
添加主機
主機必須安裝這些要求。沒有所有必要要求的主機將無法添加到集群中。
要將每個新主機添加到集群,請執行兩個步驟:
1.在新主機的 root 用戶authorized_keys文件中安裝集群的公共 SSH 密鑰:
ssh-copy-id -f -i /etc/ceph/ceph.pub root@*<new-host>*
例如:
ssh-copy-id -f -i /etc/ceph/ceph.pub root@host2
ssh-copy-id -f -i /etc/ceph/ceph.pub root@host3
2.告訴 Ceph 新節點是集群的一部分:
ceph orch host add *<newhost>* [*<ip>*] [*<label1> ...*]
例如:
ceph orch host add host2 10.10.0.102
ceph orch host add host3 10.10.0.103
最好明確提供主機 IP 地址。如果未提供 IP,則主機名將立即通過 DNS 解析並使用該 IP。
還可以包含一個或多個標簽以立即標記新主機。例如,默認情況下,_admin標簽將使 cephadm 在/etc/ceph目錄中維護ceph.conf文件的副本和 client.admin密鑰環文件:
ceph orch host add host4 10.10.0.104 --labels _admin
刪除主機
一旦從集群中刪除所有守護程序,就可以安全地從集群中刪除主機。
要從主機中刪除所有守護程序,請執行以下操作:
ceph orch host drain *<host>*
'_no_schedule' 標簽將應用於主機。請參閱特殊主機標簽
主機上的所有 osd 都將被安排刪除。您可以使用以下命令檢查 osd 刪除進度:
ceph orch osd rm status
有關 osd 刪除的更多詳細信息,請參閱刪除 OSD
您可以使用以下方法檢查主機上是否沒有守護進程:
ceph orch ps <host>
刪除所有守護程序后,您可以使用以下命令刪除主機:
ceph orch host rm <host>
離線主機移除
如果主機處於脫機狀態且無法恢復,仍可以通過以下方式將其從集群中刪除:
ceph orch host rm <host> --offline --force
這可能會導致數據丟失,因為每個 osd 將通過調用 osd purge-actual 來強制從集群中清除。仍包含此主機的服務規范應手動更新。
主機標簽
編排器支持為主機分配標簽。標簽是自由形式的,本身沒有特殊含義,每個主機可以有多個標簽。它們可用於指定守護程序的位置。請參見按標簽放置
添加帶有--labels標志的主機時可以添加標簽:
ceph orch host add my_hostname --labels=my_label1
ceph orch host add my_hostname --labels=my_label1,my_label2
要為現有主機添加標簽,請運行:
ceph orch host label add my_hostname my_label
要刪除標簽,請運行:
ceph orch host label rm my_hostname my_label
特殊主機標簽
以下主機標簽對 cephadm 具有特殊含義。一切以_開頭:
- _no_schedule:不要在此主機上安排或部署守護進程。
這個標簽防止 cephadm 在這個主機上部署守護進程。如果它被添加到已經包含 Ceph 守護進程的現有主機,它將導致 cephadm 將這些守護進程移動到其他地方(OSD 除外,它們不會自動刪除)。
- _no_autotune_memory:不要在這台主機上自動調整內存。
即使為該主機上的一個或多個守護程序啟用osd_memory_target_autotune或類似選項,此標簽也將阻止調整守護程序內存。
- _admin:將 client.admin 和 ceph.conf 分發到這個主機。
默認情況下,將_admin標簽應用於集群中的第一台主機(最初運行引導程序的地方),並且將client.admin密鑰設置為通過該ceph orch client-keyring ...函數分發給該主機。將此標簽添加到其他主機通常會導致 cephadm 將配置和密鑰環文件部署到/etc/ceph.
維護模式
使主機進入和退出維護模式(停止主機上的所有 Ceph 守護進程):
ceph orch host maintenance enter <hostname> [--force]
ceph orch host maintenance exit <hostname>
進入維護時的強制標志允許用戶繞過警告(但不是警報)
另請參閱完全限定域名與裸主機名。
一次創建多個主機
通過ceph orch apply -i提交多文檔 YAML 文件可以一次添加多個主機 :
service_type: host
hostname: node-00
addr: 192.168.0.10
labels:
- example1
- example2
---
service_type: host
hostname: node-01
addr: 192.168.0.11
labels:
- grafana
---
service_type: host
hostname: node-02
addr: 192.168.0.12
這可以與服務規范(如下)相結合,以創建一個集群規范文件,以便在一個命令中部署整個集群。另請參閱cephadm bootstrap --apply-spec在引導期間執行此操作。必須先將集群 SSH 密鑰復制到主機,然后再添加它們。
設置主機初始 CRUSH 位置
主機可以包含一個location標識符,它將指示 cephadm 創建一個位於指定層次結構中的新 CRUSH 主機。
service_type: host
hostname: node-00
addr: 192.168.0.10
location:
rack: rack1
筆記:該location屬性只會影響初始 CRUSH 位置。屬性的后續更改location將被忽略。此外,刪除主機不會刪除任何 CRUSH 存儲桶。
另請參閱類型和存儲桶。
https://docs.ceph.com/en/pacific/rados/operations/crush-map/#crush-map-default-types
SSH 配置
Cephadm 使用 SSH 連接到遠程主機。SSH 使用密鑰以安全的方式對這些主機進行身份驗證。
默認行為
Cephadm 在監視器中存儲一個 SSH 密鑰,用於連接到遠程主機。集群啟動時,會自動生成此 SSH 密鑰,無需額外配置。
可以使用以下命令生成新的 SSH密鑰:
ceph cephadm generate-key
可以通過以下方式檢索 SSH 密鑰的公共部分:
ceph cephadm get-pub-key
當前存儲的 SSH 密鑰可以通過以下方式刪除:
ceph cephadm clear-key
您可以通過以下方式直接導入現有密鑰來使用它:
ceph config-key set mgr/cephadm/ssh_identity_key -i <key>
ceph config-key set mgr/cephadm/ssh_identity_pub -i <pub>
然后,您將需要重新啟動 mgr 守護程序以重新加載配置:
ceph mgr fail
配置不同的 SSH 用戶
Cephadm 必須能夠以具有足夠權限的用戶身份登錄所有 Ceph 集群節點,從而無需提示輸入密碼即可下載容器鏡像、啟動容器和執行命令。如果您不想使用“root”用戶(cephadm 中的默認選項),則必須為 cephadm 提供將用於執行所有 cephadm 操作的用戶名。使用命令:
ceph cephadm set-user <user>
在運行此之前,需要將集群 ssh 密鑰添加到此用戶的 authorized_keys 文件中,並且非 root 用戶必須具有無密碼的 sudo 訪問權限。
自定義 SSH 配置
Cephadm 生成一個適當的ssh_config文件,用於連接到遠程主機。此配置如下所示:
Host *
User root
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
有兩種方法可以為您的環境自定義此配置:
1.導入將由監視器存儲的自定義配置文件:
ceph cephadm set-ssh-config -i <ssh_config_file>
要刪除自定義的 SSH 配置並恢復為默認行為:
ceph cephadm clear-ssh-config
2.您可以使用以下命令配置 SSH 配置文件的文件位置:
ceph config set mgr mgr/cephadm/ssh_config_file <path>
我們不推薦這種方法。路徑名必須對任何mgr 守護進程可見,並且 cephadm 將所有守護進程作為容器運行。這意味着該文件要么需要放置在您的部署的自定義容器映像中,要么手動分發到 mgr 數據目錄(在主機上/var/lib/ceph/
完全限定域名與裸主機名
筆記:cephadm 要求ceph orch host add給出的主機名等於遠程主機上hostname的輸出。
否則 cephadm 無法確定ceph * metadata返回的名稱與 cephadm 已知的主機匹配。這可能會導致CEPHADM_STRAY_HOST警告。
配置新主機時,有兩種有效的方法來設置 hostname主機的屬性:
1.使用裸主機名。在這種情況下:
-
hostname返回裸主機名。
-
hostname -f返回 FQDN。
2.使用完全限定域名作為主機名。在這種情況下:
-
hostname返回 FQDN
-
hostname -s返回裸主機名
請注意,man hostname建議使用hostname返回裸主機名:
系統的 FQDN(完全限定域名)是 resolver(3) 為主機名返回的名稱,例如 ursula.example.com。它通常是主機名后跟 DNS 域名(第一個點之后的部分)。您可以使用 hostname --fqdn 檢查 FQDN或使用dnsdomainname。
您不能使用主機名或 dnsdomainname 更改 FQDN。設置 FQDN 的推薦方法是使用 /etc/hosts、DNS 或新信息系統。 例如,如果主機名是“ursula”,則可能有/etc/hosts 中的一行內容為:
127.0.1.1 ursula.example.com ursula
這意味着,man hostname建議hostname返回裸主機名。這反過來意味着 Ceph 將在執行ceph * metadata時返回裸主機名。這反過來意味着 cephadm 在將主機添加到集群時也需要裸主機名: ceph orch host add