Ceph 主機管理


列出與集群關聯的主機:

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/ /mgr. , 從容器內部/var/lib/ceph/mgr/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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM