跳至內容跳至頁面導覽:上一頁 [access key p]/下一頁 [access key n]
documentation.suse.com / SUSE Enterprise Storage 7 文件 / 部署指南 / 部署 Ceph 叢集 / 使用 cephadm 進行部署
適用範圍 SUSE Enterprise Storage 7

5 使用 cephadm 進行部署

SUSE Enterprise Storage 7 使用基於 Salt 的 ceph-salt 工具在每個參與叢集節點上準備作業系統,以透過 cephadm 進行部署。cephadm 透過 SSH 從 Ceph 管理員精靈連接至主機,以部署和管理 Ceph 叢集。cephadm 管理 Ceph 叢集的整個生命週期。它會首先在單個節點 (一個 MON 和 MGR 服務) 上將一個小型叢集開機,然後使用協調程序介面擴充叢集,以包含所有主機並佈建所有 Ceph 服務。您可以透過 Ceph 指令行介面 (CLI) 或部分透過 Ceph Dashboard (GUI) 執行此操作。

重要
重要

請注意,在初始部署期間,Ceph 社群文件使用 cephadm bootstrap 指令。ceph-salt 會呼叫 cephadm bootstrap 指令,不應直接執行該指令。不支援使用 cephadm bootstrap 進行任何手動 Ceph 叢集部署。

若要使用 cephadm 部署 Ceph 叢集,需要完成以下任務:

  1. 在所有叢集節點上安裝 SUSE Linux Enterprise Server 15 SP2 並執行基礎作業系統的基本組態。

  2. 在所有叢集節點上部署 Salt 基礎架構,以便透過 ceph-salt 執行初始部署準備。

  3. 透過 ceph-salt 設定叢集的基本內容並進行部署。

  4. 為叢集新增新的節點和角色,並使用 cephadm 為其部署服務。

5.1 安裝和設定 SUSE Linux Enterprise Server

  1. 在每個叢集節點上安裝並註冊 SUSE Linux Enterprise Server 15 SP2。在安裝 SUSE Enterprise Storage 期間,需要存取更新儲存庫,因此必須註冊。至少包含以下模組:

    • Basesystem 模組

    • Server Applications Module

    如需如何安裝 SUSE Linux Enterprise Server 的更多詳細資料,請參閱 https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-install.html

  2. 在每個叢集節點上安裝 SUSE Enterprise Storage 7 延伸。

    提示
    提示:將 SUSE Enterprise Storage 與 SUSE Linux Enterprise Server 一併安裝

    您可以在安裝 SUSE Linux Enterprise Server 15 SP2 之後單獨安裝 SUSE Enterprise Storage 7 延伸,也可以在 SUSE Linux Enterprise Server 15 SP2 安裝程序期間新增該延伸。

    如需如何安裝延伸的更多詳細資料,請參閱 https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-register-sle.html

  3. 在每個節點上設定網路設定,包括正確的 DNS 名稱解析。如需設定網路的詳細資訊,請參閱 https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-network.html#sec-network-yast。如需設定 DNS 伺服器的詳細資訊,請參閱 https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-dns.html

5.2 部署 Salt

SUSE Enterprise Storage 使用 Salt 和 ceph-salt 進行初始叢集準備。Salt 可協助您從一個名為 Salt Master 的專屬主機同時針對多個叢集節點設定和執行指令。在部署 Salt 之前,請考慮以下重要事項:

  • Salt Minion 是由一個名為 Salt Master 的專屬節點控制的節點。

  • 如果 Salt Master 主機應屬於 Ceph 叢集的一部分,則它需要執行自己的 Salt Minion,但這不是必須的。

    提示
    提示:每部伺服器共用多個角色

    如果將每個角色都部署在一個獨立節點上,則 Ceph 叢集的效能是最佳的。但實際部署有時會要求多個角色共用一個節點。為避免效能欠佳以及升級程序出現問題,請勿向管理節點部署 Ceph OSD、中繼資料伺服器或 Ceph 監控程式角色。

  • Salt Minion 需要能透過網路正確解析 Salt Master 的主機名稱。依預設,Minion 會尋找 salt 主機名稱,但您可以在 /etc/salt/minion 檔案中指定可透過網路連接的其他任何主機名稱。

  1. 在 Salt Master 節點上安裝 salt-master

    root@master # zypper in salt-master
  2. 檢查 salt-master 服務是否已啟用並啟動,並視需要進行啟用和啟動:

    root@master # systemctl enable salt-master.service
    root@master # systemctl start salt-master.service
  3. 如果您要使用防火牆,請確認 Salt Master 節點是否為所有 Salt Minion 節點開啟了連接埠 4505 和 4506。如果這些連接埠處於關閉狀態,您可以使用 yast2 firewall 指令並透過允許相應區域的 salt-master 服務來開啟這些連接埠。例如,public

  4. 在所有 Minion 節點上安裝 salt-minion 套件。

    root@minion > zypper in salt-minion
  5. 編輯 /etc/salt/minion 並取消註解下行:

    #log_level_logfile: warning

    warning 記錄層級變更為 info

    注意
    注意:log_level_logfilelog_level

    log_level 用於控制螢幕上將顯示的記錄訊息,而 log_level_logfile 用於控制哪些記錄訊息將寫入到 /var/log/salt/minion

    注意
    注意

    請務必變更所有叢集 (Minion) 節點上的記錄層級。

  6. 確定所有其他節點都可以將每個節點的完全合格網域名稱解析為公用叢集網路上的 IP 位址。

  7. 將所有 Minion 設定為連接至 Master。如果無法透過主機名稱 salt 連接 Salt Master,請編輯檔案 /etc/salt/minion,或建立包含以下內容的新檔案 /etc/salt/minion.d/master.conf

    master: host_name_of_salt_master

    如果對上述組態檔案執行了任何變更,請在所有相關的 Salt Minion 上重新啟動 Salt 服務:

    root@minion > systemctl restart salt-minion.service
  8. 檢查所有節點上是否已啟用並啟動 salt-minion 服務。依據需要啟用並啟動該服務:

    root # systemctl enable salt-minion.service
    root # systemctl start salt-minion.service
  9. 確認每個 Salt Minion 的指紋,如果指紋相符,則接受 Salt Master 上的所有 Salt 金鑰。

    注意
    注意

    如果 Salt Minion 指紋傳回空白,請確定 Salt Minion 具有 Salt Master 組態且可與 Salt Master 通訊。

    檢視每個 Minion 的指紋:

    root@minion > salt-call --local key.finger
    local:
    3f:a3:2f:3f:b4:d3:d9:24:49:ca:6b:2c:e1:6c:3f:c3:83:37:f0:aa:87:42:e8:ff...

    收集到所有 Salt Minion 的指紋後,將列出 Salt Master 上所有未接受 Minion 金鑰的指紋:

    root@master # salt-key -F
    [...]
    Unaccepted Keys:
    minion1:
    3f:a3:2f:3f:b4:d3:d9:24:49:ca:6b:2c:e1:6c:3f:c3:83:37:f0:aa:87:42:e8:ff...

    如果 Minion 的指紋相符,則接受這些金鑰:

    root@master # salt-key --accept-all
  10. 驗證是否已接受金鑰:

    root@master # salt-key --list-all
  11. 測試是否所有 Salt Minion 都回應:

    root@master # salt-run manage.status

5.3 部署 Ceph 叢集

本節將引導您完成部署基本 Ceph 叢集的程序。請仔細閱讀下面的小節,並依給定的順序執行所包含的指令。

5.3.1 安裝 ceph-salt

ceph-salt 提供了用於部署由 cephadm 管理的 Ceph 叢集的工具。ceph-salt 使用 Salt 基礎架構來執行作業系統管理 (例如,軟體更新或時間同步),並為 Salt Minion 定義角色。

在 Salt Master 上,安裝 ceph-salt 套件:

root@master # zypper install ceph-salt

以上指令將做為相依項安裝 ceph-salt-formula ,它透過在 /etc/salt/master.d 目錄中插入額外檔案來修改 Salt Master 組態。若要套用變更,請重新啟動 salt-master.service 並同步 Salt 模組:

root@master # systemctl restart salt-master.service
root@master # salt \* saltutil.sync_all

5.3.2 設定叢集內容

使用 ceph-salt config 指令可設定叢集的基本內容。

重要
重要

/etc/ceph/ceph.conf 檔案由 cephadm 管理,使用者不得編輯該檔案。應使用新的 ceph config 指令設定 Ceph 組態參數。如需詳細資訊,請參閱第 28.2 節 「組態資料庫」

5.3.2.1 使用 ceph-salt 外圍程序

如果在不附帶任何路徑或子指令的情況下執行 ceph-salt config,您將進入互動 ceph-salt 外圍程序。如果您需要在一個批次中設定多個內容,並且不想輸入完整的指令語法,使用外圍程序會非常方便。

root@master # ceph-salt config
/> ls
o- / ............................................................... [...]
  o- ceph_cluster .................................................. [...]
  | o- minions .............................................. [no minions]
  | o- roles ....................................................... [...]
  |   o- admin .............................................. [no minions]
  |   o- bootstrap ........................................... [no minion]
  |   o- cephadm ............................................ [no minions]
  |   o- tuned ..................................................... [...]
  |     o- latency .......................................... [no minions]
  |     o- throughput ....................................... [no minions]
  o- cephadm_bootstrap ............................................. [...]
  | o- advanced .................................................... [...]
  | o- ceph_conf ................................................... [...]
  | o- ceph_image_path .................................. [ no image path]
  | o- dashboard ................................................... [...]
  | | o- force_password_update ................................. [enabled]
  | | o- password ................................................ [admin]
  | | o- ssl_certificate ....................................... [not set]
  | | o- ssl_certificate_key ................................... [not set]
  | | o- username ................................................ [admin]
  | o- mon_ip .................................................. [not set]
  o- containers .................................................... [...]
  | o- registries_conf ......................................... [enabled]
  | | o- registries .............................................. [empty]
  | o- registry_auth ............................................... [...]
  |   o- password .............................................. [not set]
  |   o- registry .............................................. [not set]
  |   o- username .............................................. [not set]
  o- ssh ............................................... [no key pair set]
  | o- private_key .................................. [no private key set]
  | o- public_key .................................... [no public key set]
  o- time_server ........................... [enabled, no server host set]
    o- external_servers .......................................... [empty]
    o- servers ................................................... [empty]
    o- subnet .................................................. [not set]

ceph-saltls 指令輸出中您會看到,叢集組態以樹狀結構組織。若要在 ceph-salt 外圍程序中設定叢集的特定內容,可使用以下兩個選項:

  • 從目前位置執行指令,並輸入內容的絕對路徑做為第一個引數:

    /> /cephadm_bootstrap/dashboard ls
    o- dashboard ....................................................... [...]
      o- force_password_update ..................................... [enabled]
      o- password .................................................... [admin]
      o- ssl_certificate ........................................... [not set]
      o- ssl_certificate_key ....................................... [not set]
      o- username .................................................... [admin]
    /> /cephadm_bootstrap/dashboard/username set ceph-admin
    Value set.
  • 變更為需要設定的內容的路徑,並執行指令:

    /> cd /cephadm_bootstrap/dashboard/
    /ceph_cluster/minions> ls
    o- dashboard ....................................................... [...]
      o- force_password_update ..................................... [enabled]
      o- password .................................................... [admin]
      o- ssl_certificate ........................................... [not set]
      o- ssl_certificate_key ....................................... [not set]
      o- username ................................................[ceph-admin]
提示
提示:自動完成組態程式碼片段

ceph-salt 外圍程序中,您可以使用類似於一般 Linux 外圍程序 (Bash) 自動完成的自動完成功能。它可以完成組態路徑、子指令或 Salt Minion 名稱。自動完成組態路徑時,可使用以下兩個選項:

  • 若要讓外圍程序完成您目前位置的相對路徑,請按 TAB 鍵 →| 兩次。

  • 若要讓外圍程序完成絕對路徑,請輸入 / 並按 TAB 鍵 →| 兩次。

提示
提示:使用游標鍵導覽

如果從 ceph-salt 外圍程序輸入 cd 而不附帶任何路徑,則該指令將列印叢集組態的樹狀結構,其中目前路徑對應的行處於使用中狀態。您可以使用向上和向下游標鍵在各行之間導覽。按一下 Enter 進行確認後,組態路徑將變更為最後一個使用中路徑。

重要
重要:基本規則

為了保持文件的一致性,我們將使用單一指令語法,而不輸入 ceph-salt 外圍程序。例如,您可以使用以下指令列出叢集組態樹:

root@master # ceph-salt config ls

5.3.2.2 新增 Salt Minion

將我們在第 5.2 節 「部署 Salt」中部署並接受的所有或部分 Salt Minion 包含到 Ceph 叢集組態中。您可以透過其全名指定 Salt Minion,也可以使用 glob 運算式「*」和「?」一次包含多個 Salt Minion。在 /ceph_cluster/minions 路徑下使用 add 子指令。以下指令包含所有已接受的 Salt Minion:

root@master # ceph-salt config /ceph_cluster/minions add '*'

確認是否新增了指定的 Salt Minion:

root@master # ceph-salt config /ceph_cluster/minions ls
o- minions ................................................. [Minions: 5]
  o- ses-master.example.com .................................. [no roles]
  o- ses-min1.example.com .................................... [no roles]
  o- ses-min2.example.com .................................... [no roles]
  o- ses-min3.example.com .................................... [no roles]
  o- ses-min4.example.com .................................... [no roles]

5.3.2.3 指定由 cephadm 管理的 Salt Minion

指定哪些節點將屬於 Ceph 叢集並由 cephadm 管理。包含將執行 Ceph 服務的所有節點以及管理節點:

root@master # ceph-salt config /ceph_cluster/roles/cephadm add '*'

5.3.2.4 指定管理節點

管理節點是安裝 ceph.conf 組態檔案和 Ceph 管理金鑰圈的節點。您通常會在管理節點上執行與 Ceph 相關的指令。

提示
提示:Salt Master 和管理節點位於同一節點

在所有或大多數主機都屬於 SUSE Enterprise Storage 的同質環境中,建議您將管理節點與 Salt Master 置於同一主機。

而對於一個 Salt 基礎架構代管多個叢集 (例如 SUSE Enterprise Storage 和 SUSE Manager) 的異質環境,請將管理節點與 Salt Master 置於同一主機。

若要指定管理節點,請執行以下指令:

root@master # ceph-salt config /ceph_cluster/roles/admin add ses-master.example.com
1 minion added.
root@master # ceph-salt config /ceph_cluster/roles/admin ls
o- admin ................................................... [Minions: 1]
  o- ses-master.example.com ...................... [Other roles: cephadm]
提示
提示:在多個節點上安裝 ceph.conf 和管理金鑰圈

如果是部署所需,您可以在多個節點上安裝 Ceph 組態檔案和管理金鑰圈。出於安全原因,請避免將其安裝在叢集的所有節點上。

5.3.2.5 指定第一個 MON/MGR 節點

您需要指定將叢集開機的叢集 Salt Minion。此 Minion 將成為第一個執行 Ceph 監控程式和 Ceph 管理員服務的 Minion。

root@master # ceph-salt config /ceph_cluster/roles/bootstrap set ses-min1.example.com
Value set.
root@master # ceph-salt config /ceph_cluster/roles/bootstrap ls
o- bootstrap ..................................... [ses-min1.example.com]

此外,您還需要在公用網路上指定開機 MON 的 IP 位址,以確定 public_network 參數設定正確,例如:

root@master # ceph-salt config /cephadm_bootstrap/mon_ip set 192.168.10.20

5.3.2.6 指定調整的設定檔

您需要指定叢集的哪些 Minion 具有主動調整的設定檔。為此,請使用以下指令明確新增這些角色:

注意
注意

一個 Minion 不能同時擁有 latencythroughput 角色。

root@master # ceph-salt config /ceph_cluster/roles/tuned/latency add ses-min1.example.com
Adding ses-min1.example.com...
1 minion added.
root@master # ceph-salt config /ceph_cluster/roles/tuned/throughput add ses-min2.example.com
Adding ses-min2.example.com...
1 minion added.

5.3.2.7 產生 SSH 金鑰組

cephadm 使用 SSH 通訊協定與叢集節點通訊。將自動建立名為 cephadm 的使用者帳戶並用於 SSH 通訊。

您需要產生 SSH 金鑰組的私人和公用部分:

root@master # ceph-salt config /ssh generate
Key pair generated.
root@master # ceph-salt config /ssh ls
o- ssh .................................................. [Key Pair set]
  o- private_key ..... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83]
  o- public_key ...... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83]

5.3.2.8 設定時間伺服器

所有叢集節點都需要與可靠的時間來源進行時間同步。有以下幾種方案可以實現時間同步:

  • 如果所有叢集節點都已設定為使用所選 NTP 服務同步其時間,請完全停用時間伺服器處理:

    root@master # ceph-salt config /time_server disable
  • 如果您的站台已有單一時間來源,請指定時間來源的主機名稱:

     root@master # ceph-salt config /time_server/servers add time-server.example.com
  • 另外,ceph-salt 可以設定一個 Salt Minion 來充當叢集其餘 Minion 的時間伺服器。有時,它被稱為「內部時間伺服器」。在此方案中,ceph-salt 將設定內部時間伺服器 (應為其中一個 Salt Minion) 以使其時間與外部時間伺服器 (例如 pool.ntp.org) 同步,並將所有其他 Minion 設定為從內部時間伺服器獲取時間。可透過以下指令來實現:

    root@master # ceph-salt config /time_server/servers add ses-master.example.com
    root@master # ceph-salt config /time_server/external_servers add pool.ntp.org

    /time_server/subnet 選項指定允許 NTP 用戶端透過其存取 NTP 伺服器的子網路。當您指定 /time_server/servers 時,會自動設定該選項。如果需要變更該選項或手動指定,請執行:

    root@master # ceph-salt config /time_server/subnet set 10.20.6.0/24

檢查時間伺服器設定:

root@master # ceph-salt config /time_server ls
o- time_server ................................................ [enabled]
  o- external_servers ............................................... [1]
  | o- pool.ntp.org ............................................... [...]
  o- servers ........................................................ [1]
  | o- ses-master.example.com ..................................... [...]
  o- subnet .............................................. [10.20.6.0/24]

如需設定時間同步的詳細資訊,請參閱 https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-ntp.html#sec-ntp-yast

5.3.2.9 設定 Ceph Dashboard 登入身分證明

部署基本叢集後便可使用 Ceph Dashboard。若要存取 Ceph Dashboard,您需要設定有效的使用者名稱和密碼,例如:

root@master # ceph-salt config /cephadm_bootstrap/dashboard/username set admin
root@master # ceph-salt config /cephadm_bootstrap/dashboard/password set PWD
提示
提示:強制密碼更新

依預設,系統將強制第一位儀表板使用者在首次登入儀表板時變更其密碼。若要停用此功能,請執行以下指令:

root@master # ceph-salt config /cephadm_bootstrap/dashboard/force_password_update disable

5.3.2.10 設定容器影像的路徑

cephadm 需要知道將在部署步驟中使用的容器影像的有效 URI 路徑。確認是否設定了預設路徑:

root@master # ceph-salt config /cephadm_bootstrap/ceph_image_path ls

如果未設定預設路徑或者您的部署需要特定路徑,請使用以下指令新增該路徑:

root@master # ceph-salt config /cephadm_bootstrap/ceph_image_path set registry.suse.com/ses/7/ceph/ceph
注意
注意

對於監控堆疊,需要更多的容器影像。對於實體隔離部署以及從本地登錄的部署,此時您可能想要獲取這些影像,以便相應地準備您的本地登錄。

請注意,ceph-salt 不會將這些容器影像用於部署。而只是為後面的步驟做準備,在後面的步驟中將使用 cephadm 來部署或移轉監控元件。

如需有關監控堆疊所使用的影像以及如何自訂這些影像的詳細資訊,請瀏覽第 16.1 節 「設定自訂或本地影像」頁面。

5.3.2.11 設定容器登錄

(選擇性) 您可以設定本地容器登錄。它將充當 registry.suse.com 登錄的鏡像。請記住,每當 registry.suse.com 中提供了新的更新容器,就需要重新同步本地登錄。

在以下情況下,建立本地登錄非常有用:

  • 您有許多叢集節點,希望透過建立容器影像的本地鏡像來節省下載時間和頻寬。

  • 您的叢集無法存取線上登錄 (實體隔離部署),您需要一個本地鏡像來從中提取容器影像。

  • 如果因組態或網路問題而阻止您的叢集透過安全連結存取遠端登錄,則您需要一個本地的未加密登錄。

重要
重要

若要在支援的系統上部署程式暫時修復 (PTF),您需要部署本地容器登錄。

若要設定本地登錄 URL 以及存取身分證明,請執行以下操作:

  1. 設定本地登錄的 URL:

    cephuser@adm > ceph-salt config /containers/registry_auth/registry set REGISTRY_URL
  2. 設定使用者名稱和密碼以存取本地登錄:

    cephuser@adm > ceph-salt config /containers/registry_auth/username set REGISTRY_USERNAME
    cephuser@adm > ceph-salt config /containers/registry_auth/password set REGISTRY_PASSWORD
  3. 執行 ceph-salt apply 以更新所有 Minion 上的 Salt pillar。

提示
提示:登錄快取

若要避免在出現新的更新容器時重新同步本地登錄,您可以設定登錄快取

雲端原生應用程式開發和傳遞方法需要一個登錄和一個 CI/CD (連續整合/傳遞) 例項來開發和生產容器影像。在此例項中,您可以使用私人登錄。

5.3.2.12 啟用資料傳輸中加密 (msgr2)

Messenger v2 通訊協定 (MSGR2) 是 Ceph 的線上傳輸通訊協定。它提供了一種可對正在透過網路傳輸的所有資料進行加密的安全模式,封裝了驗證封包內容,並支援未來整合新的驗證模式 (例如 Kerberos)。

重要
重要

Linux 核心 Ceph 用戶端 (例如 CephFS 和 RADOS 區塊裝置) 目前不支援 msgr2。

Ceph 精靈可以結合到多個連接埠,以便讓舊 Ceph 用戶端和支援 v2 的新用戶端能夠連接至同一叢集。依預設,針對新的 v2 通訊協定,MON 現在會結合到 IANA 指定的新連接埠 3300 (CE4h 或 0xCE4),而針對舊版 v1 通訊協定,則會結合到舊的預設連接埠 6789。

v2 通訊協定 (MSGR2) 支援以下兩種連接模式:

crc 模式

建立連接時進行強初始驗證和 CRC32C 完整性檢查。

secure 模式

建立連接時進行強初始驗證,並對所有驗證後流量進行完全加密,包括加密完整性檢查。

對於大多數連接,有一些選項可以控制使用哪種模式:

ms_cluster_mode

用於 Ceph 精靈之間的叢集內通訊的連接模式 (或允許的模式)。如果列出了多種模式,則偏好最先列出的模式。

ms_service_mode

連接至叢集時允許用戶端使用的模式清單。

ms_client_mode

與 Ceph 叢集通訊時,供用戶端使用 (或允許) 的連接模式清單,依偏好設定排序。

有一組專用於監控程式的平行選項集,可讓管理員設定與監控程式通訊的不同 (通常更安全) 要求。

ms_mon_cluster_mode

在監控程式之間使用的連接模式 (或允許的模式)。

ms_mon_service_mode

連接至監控程式時,供用戶端或其他 Ceph 精靈使用的允許模式清單。

ms_mon_client_mode

連接至監控程式時,供用戶端或非監控程式精靈使用的連接模式的清單,依偏好設定排序。

若要在部署期間啟用 MSGR2 加密模式,您需要在執行 ceph-salt apply 之前向 ceph-salt 組態新增一些組態選項。

若要使用 secure 模式,請執行以下指令。

ceph-salt 組態工具中的 ceph_conf 新增全域區段。

root@master # ceph-salt config /cephadm_bootstrap/ceph_conf add global

設定下列選項:

root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_cluster_mode "secure crc"
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_service_mode "secure crc"
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_client_mode "secure crc"
注意
注意

確定 secure 先於 crc

若要強制使用 secure 模式,請執行以下指令:

root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_cluster_mode secure
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_service_mode secure
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_client_mode secure
提示
提示:更新設定

如果您要變更上述任何設定,請在監控程式組態儲存中設定組態變更。可使用 ceph config set 指令實現。

root@master # ceph config set global CONNECTION_OPTION CONNECTION_MODE [--force]

例如:

root@master # ceph config set global ms_cluster_mode "secure crc"

如果要檢查目前值 (包括預設值),請執行以下指令:

root@master # ceph config get CEPH_COMPONENT CONNECTION_OPTION

例如,若要獲取 OSD 的 ms_cluster_mode,請執行:

root@master # ceph config get osd ms_cluster_mode

5.3.2.13 設定叢集網路

(選擇性) 如果執行的是獨立的叢集網路,則可能需要設定叢集網路 IP 位址並後接斜線符號及子網路遮罩部分,例如 192.168.10.22/24

執行以下指令可啟用 cluster_network

root@master # ceph-salt config /cephadm_bootstrap/ceph_conf add global
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set cluster_network NETWORK_ADDR

5.3.2.14 確認叢集組態

最低叢集組態已完成。請檢查是否存在明顯錯誤:

root@master # ceph-salt config ls
o- / ............................................................... [...]
  o- ceph_cluster .................................................. [...]
  | o- minions .............................................. [Minions: 5]
  | | o- ses-master.example.com .................................. [admin]
  | | o- ses-min1.example.com ......................... [bootstrap, admin]
  | | o- ses-min2.example.com ................................. [no roles]
  | | o- ses-min3.example.com ................................. [no roles]
  | | o- ses-min4.example.com ................................. [no roles]
  | o- roles ....................................................... [...]
  |   o- admin .............................................. [Minions: 2]
  |   | o- ses-master.example.com ....................... [no other roles]
  |   | o- ses-min1.example.com ................. [other roles: bootstrap]
  |   o- bootstrap ................................ [ses-min1.example.com]
  |   o- cephadm ............................................ [Minions: 5]
  |   o- tuned ..................................................... [...]
  |     o- latency .......................................... [no minions]
  |     o- throughput ....................................... [no minions]
  o- cephadm_bootstrap ............................................. [...]
  | o- advanced .................................................... [...]
  | o- ceph_conf ................................................... [...]
  | o- ceph_image_path ............... [registry.suse.com/ses/7/ceph/ceph]
  | o- dashboard ................................................... [...]
  |   o- force_password_update ................................. [enabled]
  |   o- password ................................... [randomly generated]
  |   o- username ................................................ [admin]
  | o- mon_ip ............................................ [192.168.10.20]
  o- containers .................................................... [...]
  | o- registries_conf ......................................... [enabled]
  | | o- registries .............................................. [empty]
  | o- registry_auth ............................................... [...]
  |   o- password .............................................. [not set]
  |   o- registry .............................................. [not set]
  |   o- username .............................................. [not set]
  o- ssh .................................................. [Key Pair set]
  | o- private_key ..... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83]
  | o- public_key ...... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83]
  o- time_server ............................................... [enabled]
    o- external_servers .............................................. [1]
    | o- 0.pt.pool.ntp.org ......................................... [...]
    o- servers ....................................................... [1]
    | o- ses-master.example.com .................................... [...]
    o- subnet ............................................. [10.20.6.0/24]
提示
提示:叢集組態的狀態

您可以透過執行以下指令檢查叢集的組態是否有效:

root@master # ceph-salt status
cluster: 5 minions, 0 hosts managed by cephadm
config: OK

5.3.2.15 輸出叢集組態

在設定了基本叢集並且確認其組態有效之後,最好將其組態輸出至檔案中:

root@master # ceph-salt export > cluster.json
警告
警告

ceph-salt export 的輸出中包含 SSH 私密金鑰。如果您擔心安全問題,請不要在未採取適當預防措施的情況下執行此指令。

如果叢集組態損毀並需要復原到備份狀態,請執行:

root@master # ceph-salt import cluster.json

5.3.3 更新節點並將最小叢集開機

部署叢集之前,請更新所有節點上的所有軟體套件:

root@master # ceph-salt update

如果節點在更新期間報告 Reboot is needed,則表示重要的作業系統套件 (例如核心) 已更新至更新版本,您需要將節點重新開機才能套用變更。

若要將所有需要重新開機的節點重新開機,請附加 --reboot 選項

root@master # ceph-salt update --reboot

或者在單獨的步驟中將這些節點重新開機:

root@master # ceph-salt reboot
重要
重要

永遠不會透過 ceph-salt update --rebootceph-salt reboot 指令將 Salt Master 重新開機。如果 Salt Master 需要重新開機,您需要手動進行重新開機。

更新節點後,請將最小叢集開機:

root@master # ceph-salt apply
注意
注意

開機完成後,叢集將擁有一個 Ceph 監控程式和一個 Ceph 管理員。

以上指令將開啟一個互動使用者介面,其中會顯示每個 Minion 的目前進度。

部署最小叢集
圖 5.1︰ 部署最小叢集
提示
提示:非互動模式

如果您需要從程序檔套用組態,還有一種非互動的部署模式。此模式在從遠端機器部署叢集時也很有用,因為透過網路不斷更新螢幕上的進度資訊可能會對使用者造成干擾:

root@master # ceph-salt apply --non-interactive

5.3.4 檢視最後的步驟

ceph-salt apply 指令完成後,您便應該會擁有一個 Ceph 監控程式和一個 Ceph 管理員。您應該能夠在任何以 root 身分或使用 sudocephadm 使用者身分被授予 admin 角色的 Minion 上成功執行 ceph status 指令。

後續步驟包括使用 cephadm 部署額外的 Ceph 監控程式、Ceph 管理員、OSD、監控堆疊和閘道。

繼續之前,請檢視新叢集的網路設定。此時,已依據在 ceph-salt 組態中針對 /cephadm_bootstrap/mon_ip 輸入的值填入了 public_network 設定。不過,此設定僅適用於 Ceph 監控程式。您可以使用以下指令檢視此設定:

root@master # ceph config get mon public_network

這是 Ceph 正常工作所需的最低設定,但還是建議您將此 public_network 設定為 global,這表示它將套用於所有類型的 Ceph 精靈,而不僅套用於 MON:

root@master # ceph config set global public_network "$(ceph config get mon public_network)"
注意
注意

此步驟不是必需的。但如果不使用此設定,Ceph OSD 和其他精靈 (Ceph 監控程式除外) 將監聽所有位址

如果您希望在各 OSD 之間使用完全獨立的網路進行通訊,請執行以下指令:

root@master # ceph config set global cluster_network "cluster_network_in_cidr_notation"

執行此指令將確保您部署中所建立的 OSD 從一開始就使用預期的叢集網路。

如果您的叢集設定為具有密集節點 (每個主機有超過 62 個 OSD),請確保為 Ceph OSD 指定足夠的連接埠。預設範圍 (6800-7300) 目前允許每個主機有不超過 62 個 OSD。對於具有密集節點的叢集,請將設定 ms_bind_port_max 調整到適當的值。每個 OSD 將使用 8 個額外的連接埠。例如,如果一部主機設定為執行 96 個 OSD,則需要 768 個連接埠。透過執行以下指令,應將 ms_bind_port_max 至少設定為 7568:

root@master # ceph config set osd.* ms_bind_port_max 7568

您需要相應地調整防火牆設定才能使其正常工作。如需詳細資訊,請參閱第 13.7 節 「Firewall settings for Ceph」

5.4 部署服務和閘道

部署基本 Ceph 叢集之後,請將核心服務部署到更多叢集節點。為使用戶端能夠存取叢集資料,還需要部署額外的服務。

目前,我們支援使用 Ceph orchestrator (ceph orch 子指令) 在指令行上部署 Ceph 服務。

5.4.1 ceph orch 指令

Ceph orchestrator 指令 ceph orch 是 cephadm 模組的介面,它負責列出叢集元件並在新的叢集節點上部署 Ceph 服務。

5.4.1.1 顯示 orchestrator 狀態

以下指令會顯示目前模式和 Ceph orchestrator 的狀態。

cephuser@adm > ceph orch status

5.4.1.2 列出裝置、服務和精靈

若要列出所有磁碟裝置,請執行以下指令:

cephuser@adm > ceph orch device ls
Hostname   Path      Type  Serial  Size   Health   Ident  Fault  Available
ses-master /dev/vdb  hdd   0d8a... 10.7G  Unknown  N/A    N/A    No
ses-min1   /dev/vdc  hdd   8304... 10.7G  Unknown  N/A    N/A    No
ses-min1   /dev/vdd  hdd   7b81... 10.7G  Unknown  N/A    N/A    No
[...]
提示
提示:服務和精靈

服務是表示特定類型的 Ceph 服務的一般術語,例如 Ceph 管理員。

精靈表示服務的特定例項,例如在名為 ses-min1 的節點上執行的程序 mgr.ses-min1.gdlcik

若要列出 cephadm 已知的所有服務,請執行:

cephuser@adm > ceph orch ls
NAME  RUNNING  REFRESHED  AGE  PLACEMENT  IMAGE NAME                  IMAGE ID
mgr       1/0  5m ago     -    <no spec>  registry.example.com/[...]  5bf12403d0bd
mon       1/0  5m ago     -    <no spec>  registry.example.com/[...]  5bf12403d0bd
提示
提示

您可以使用選擇性的 -–host 參數將清單限制為某個特定節點上的服務,也可使用選擇性的 --service-type 參數 (可接受的類型包括 monosdmgrmdsrgw) 將清單限制為某種特定類型的服務。

若要列出由 cephadm 部署的所有執行中精靈,請執行:

cephuser@adm > ceph orch ps
NAME            HOST     STATUS   REFRESHED AGE VERSION    IMAGE ID     CONTAINER ID
mgr.ses-min1.gd ses-min1 running) 8m ago    12d 15.2.0.108 5bf12403d0bd b8104e09814c
mon.ses-min1    ses-min1 running) 8m ago    12d 15.2.0.108 5bf12403d0bd a719e0087369
提示
提示

若要查詢某個特定精靈的狀態,請使用 --daemon_type--daemon_id。對於 OSD,ID 為數字 OSD ID。對於 MDS,ID 為檔案系統名稱:

cephuser@adm > ceph orch ps --daemon_type osd --daemon_id 0
cephuser@adm > ceph orch ps --daemon_type mds --daemon_id my_cephfs

5.4.2 服務和放置規格

指定 Ceph 服務部署的推薦方法是建立一個 YAML 格式的檔案,其中包含所要部署服務的規格。

5.4.2.1 建立服務規格

您可以為每種類型的服務建立單獨的規格檔案,例如:

root@master # cat nfs.yml
service_type: nfs
service_id: EXAMPLE_NFS
placement:
  hosts:
  - ses-min1
  - ses-min2
spec:
  pool: EXAMPLE_POOL
  namespace: EXAMPLE_NAMESPACE

或者,您可以在一個描述哪些節點將執行特定服務的檔案 (例如 cluster.yml) 中指定多個 (或所有) 服務類型。請記得使用三個破折號 (---) 分隔各個服務類型:

cephuser@adm > cat cluster.yml
service_type: nfs
service_id: EXAMPLE_NFS
placement:
  hosts:
  - ses-min1
  - ses-min2
spec:
  pool: EXAMPLE_POOL
  namespace: EXAMPLE_NAMESPACE
---
service_type: rgw
service_id: REALM_NAME.ZONE_NAME
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3
---
[...]

上述內容的含義如下:

service_type

服務的類型。它可以是 Ceph 服務 (monmgrmdscrashosdrbd-mirror)、閘道 (nfsrgw) 或部分監控堆疊 (alertmanagergrafananode-exporterprometheus)。

service_id

服務的名稱。monmgralertmanagergrafananode-exporterprometheus 類型的規格不需要 service_id 內容。

placement

指定哪些節點將執行服務。如需更多詳細資料,請參閱第 5.4.2.2 節 「建立放置規格」

spec

與服務類型相關的其他規格。

提示
提示:套用特定服務

Ceph 叢集服務通常具有許多專屬內容。如需各個服務規格的範例和詳細資料,請參閱第 5.4.3 節 「部署 Ceph 服務」

5.4.2.2 建立放置規格

若要部署 Ceph 服務,cephadm 需要知道要在其上部署這些服務的節點。請使用 placement 內容並列出要套用服務的節點的主機簡短名稱:

cephuser@adm > cat cluster.yml
[...]
placement:
  hosts:
  - host1
  - host2
  - host3
[...]

5.4.2.3 套用叢集規格

建立包含所有服務及其放置的規格的完整 cluster.yml 檔案後,您便可透過執行以下指令來套用叢集:

cephuser@adm > ceph orch apply -i cluster.yml

若要檢視叢集的狀態,請執行 ceph orch status 指令。如需詳細資訊,請參閱第 5.4.1.1 節 「顯示 orchestrator 狀態」

5.4.2.4 輸出執行中叢集的規格

雖然您使用第 5.4.2 節 「服務和放置規格」中所述的規格檔案將服務部署到 Ceph 叢集,但在實際操作期間,叢集的組態可能會偏離原始規格。另外,您也可能會無意間移除規格檔案。

若要擷取執行中叢集的完整規格,請執行:

cephuser@adm > ceph orch ls --export
placement:
  hosts:
  - hostname: ses-min1
    name: ''
    network: ''
service_id: my_cephfs
service_name: mds.my_cephfs
service_type: mds
---
placement:
  count: 2
service_name: mgr
service_type: mgr
---
[...]
提示
提示

您可以附加 --format 選項以變更預設的 yaml 輸出格式。您可以從 jsonjson-prettyyaml 中進行選取。例如:

ceph orch ls --export --format json

5.4.3 部署 Ceph 服務

在執行基本叢集之後,您可以將 Ceph 服務部署到其他節點。

5.4.3.1 部署 Ceph 監控程式和 Ceph 管理員

Ceph 叢集的不同節點之間部署了三個或五個 MON。如果叢集中有五個或更多節點,則建議部署五個 MON。好的做法是,將 MGR 部署在與 MON 相同的節點上。

重要
重要:包含開機 MON

在部署 MON 和 MGR 時,請記得包含在第 5.3.2.5 節 「指定第一個 MON/MGR 節點」中設定基本叢集時新增的第一個 MON。

若要部署 MON,請套用以下規格:

service_type: mon
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3
注意
注意

如果需要新增另一個節點,請在同一 YAML 清單中附加主機名稱。例如:

service_type: mon
placement:
 hosts:
 - ses-min1
 - ses-min2
 - ses-min3
 - ses-min4

同樣,若要部署 MGR,請套用以下規格:

重要
重要

確定您的部署在每個部署中至少具有三個 Ceph 管理員。

service_type: mgr
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3
提示
提示

如果 MON 或 MGR 在同一子網路中,則需要附加子網路位址。例如:

service_type: mon
placement:
  hosts:
  - ses-min1:10.1.2.0/24
  - ses-min2:10.1.5.0/24
  - ses-min3:10.1.10.0/24

5.4.3.2 部署 Ceph OSD

重要
重要:當儲存裝置可用時

如果滿足以下所有條件,則儲存裝置將被視為可用

  • 裝置沒有分割區。

  • 裝置沒有任何 LVM 狀態。

  • 裝置未掛接。

  • 裝置不包含檔案系統。

  • 裝置不包含 BlueStore OSD。

  • 裝置大於 5 GB。

如果不滿足上述條件,Ceph 將拒絕佈建此類 OSD。

可以使用以下兩種方式來部署 OSD:

  • 告知 Ceph 使用所有可用和未使用的儲存裝置:

    cephuser@adm > ceph orch apply osd --all-available-devices
  • 使用 DriveGroups (參閱第 13.4.3 節 「使用 DriveGroups 規格新增 OSD。」) 建立 OSD 規格,該規格描述了將依據裝置內容 (例如裝置類型 (SSD 或 HDD)、裝置型號名稱、大小或裝置所在的節點) 部署的裝置。然後透過執行以下指令套用規格:

    cephuser@adm > ceph orch apply osd -i drive_groups.yml

5.4.3.3 部署中繼資料伺服器

CephFS 需要一或多個中繼資料伺服器 (MDS) 服務。若要建立 CephFS,首先要透過套用以下規格來建立 MDS 伺服器:

注意
注意

在套用以下規格之前,請確定至少建立了兩個池,一個用於儲存 CephFS 資料,另一個用於儲存 CephFS 中繼資料。

service_type: mds
service_id: CEPHFS_NAME
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3

MDS 正常執行後,建立 CephFS:

ceph fs new CEPHFS_NAME metadata_pool data_pool

5.4.3.4 部署物件閘道

cephadm 會將物件閘道部署為管理特定領域區域的精靈的集合。

您可以將物件閘道服務與現有的領域和區域相關聯 (如需更多詳細資料,請參閱第 21.13 節 「多站台物件閘道」),也可以指定不存在的 REALM_NAMEZONE_NAME,套用以下組態後會自動建立相應領域和區域:

service_type: rgw
service_id: REALM_NAME.ZONE_NAME
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3
spec:
  rgw_realm: RGW_REALM
  rgw_zone: RGW_ZONE
5.4.3.4.1 使用安全 SSL 存取

若要使用連接至物件閘道的安全 SSL 連接,您需要一組有效的 SSL 證書和金鑰檔案 (如需更多詳細資料,請參閱第 21.7 節 「為物件閘道啟用 HTTPS/SSL」)。您需要啟用 SSL,指定 SSL 連接的連接埠號碼以及 SSL 證書和金鑰檔案。

若要啟用 SSL 並指定連接埠號碼,請在規格中包含以下內容:

spec:
  ssl: true
  rgw_frontend_port: 443

若要指定 SSL 證書和金鑰,可以將其內容直接貼至 YAML 規格檔案中。行末的縱線符號 (|) 告知剖析程式預期的值為多行字串。例如:

spec:
  ssl: true
  rgw_frontend_port: 443
  rgw_frontend_ssl_certificate: |
   -----BEGIN CERTIFICATE-----
   MIIFmjCCA4KgAwIBAgIJAIZ2n35bmwXTMA0GCSqGSIb3DQEBCwUAMGIxCzAJBgNV
   BAYTAkFVMQwwCgYDVQQIDANOU1cxHTAbBgNVBAoMFEV4YW1wbGUgUkdXIFNTTCBp
   [...]
   -----END CERTIFICATE-----
   rgw_frontend_ssl_key: |
   -----BEGIN PRIVATE KEY-----
   MIIJRAIBADANBgkqhkiG9w0BAQEFAASCCS4wggkqAgEAAoICAQDLtFwg6LLl2j4Z
   BDV+iL4AO7VZ9KbmWIt37Ml2W6y2YeKX3Qwf+3eBz7TVHR1dm6iPpCpqpQjXUsT9
   [...]
   -----END PRIVATE KEY-----
提示
提示

您可以省略 rgw_frontend_ssl_certificate:rgw_frontend_ssl_key: 關鍵字,並將它們上傳到組態資料庫,而不是粘貼 SSL 證書和金鑰檔案的內容:

cephuser@adm > ceph config-key set rgw/cert/REALM_NAME/ZONE_NAME.crt \
 -i SSL_CERT_FILE
cephuser@adm > ceph config-key set rgw/cert/REALM_NAME/ZONE_NAME.key \
 -i SSL_KEY_FILE
5.4.3.4.2 使用子叢集部署

子叢集可協助您組織叢集中的節點,以隔離工作負載,讓彈性縮放更輕鬆。如果使用子叢集進行部署,請套用以下組態:

service_type: rgw
service_id: REALM_NAME.ZONE_NAME.SUBCLUSTER
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3
spec:
  rgw_realm: RGW_REALM
  rgw_zone: RGW_ZONE
  subcluster: SUBCLUSTER

5.4.3.5 部署 iSCSI 閘道

cephadm 可部署 iSCSI 閘道,它是一種儲存區域網路 (SAN) 通訊協定,可讓用戶端 (稱為啟動器) 將 SCSI 指令傳送至遠端伺服器上的 SCSI 儲存裝置 (目標)。

套用以下組態進行部署。確定 trusted_ip_list 包含所有 iSCSI 閘道和 Ceph 管理員節點的 IP 位址 (請參閱下面的輸出範例)。

注意
注意

請確定在套用以下規格之前建立池。

service_type: iscsi
service_id: EXAMPLE_ISCSI
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3
spec:
  pool: EXAMPLE_POOL
  api_user: EXAMPLE_USER
  api_password: EXAMPLE_PASSWORD
  trusted_ip_list: "IP_ADDRESS_1,IP_ADDRESS_2"
注意
注意

請確定針對 trusted_ip_list 列出的 IP 在逗號分隔後沒有空白。

5.4.3.5.1 安全 SSL 組態

若要在 Ceph Dashboard 和 iSCSI 目標 API 之間使用安全 SSL 連接,您需要一組有效的 SSL 證書和金鑰檔案。它們可以是 CA 核發的,也可以是自行簽署的 (參閱第 10.1.1 節 「建立自行簽署的證書」)。若要啟用 SSL,請在您的規格檔案中包含 api_secure: true 設定:

spec:
  api_secure: true

若要指定 SSL 證書和金鑰,可以將其內容直接貼至 YAML 規格檔案中。行末的縱線符號 (|) 告知剖析程式預期的值為多行字串。例如:

spec:
  pool: EXAMPLE_POOL
  api_user: EXAMPLE_USER
  api_password: EXAMPLE_PASSWORD
  trusted_ip_list: "IP_ADDRESS_1,IP_ADDRESS_2"
  api_secure: true
  ssl_cert: |
    -----BEGIN CERTIFICATE-----
    MIIDtTCCAp2gAwIBAgIYMC4xNzc1NDQxNjEzMzc2MjMyXzxvQ7EcMA0GCSqGSIb3
    DQEBCwUAMG0xCzAJBgNVBAYTAlVTMQ0wCwYDVQQIDARVdGFoMRcwFQYDVQQHDA5T
    [...]
    -----END CERTIFICATE-----
  ssl_key: |
    -----BEGIN PRIVATE KEY-----
    MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC5jdYbjtNTAKW4
    /CwQr/7wOiLGzVxChn3mmCIF3DwbL/qvTFTX2d8bDf6LjGwLYloXHscRfxszX/4h
    [...]
    -----END PRIVATE KEY-----

5.4.3.6 部署 NFS Ganesha

cephadm 可使用預先定義的 RADOS 池和選擇性的名稱空間來部署 NFS Ganesha。若要部署 NFS Ganesha,請套用以下規格:

注意
注意

您需要有一個預先定義的 RADOS 池,否則 ceph orch apply 操作將失敗。如需建立池的詳細資訊,請參閱第 18.1 節 「建立池」

service_type: nfs
service_id: EXAMPLE_NFS
placement:
  hosts:
  - ses-min1
  - ses-min2
spec:
  pool: EXAMPLE_POOL
  namespace: EXAMPLE_NAMESPACE
  • EXAMPLE_NFS,包含用於識別 NFS 輸出項的任意字串。

  • EXAMPLE_POOL,包含將要儲存 NFS Ganesha RADOS 組態物件的池的名稱。

  • EXAMPLE_NAMESPACE (選擇性),包含所需的物件閘道 NFS 名稱空間 (例如,ganesha)。

5.4.3.7 部署 rbd-mirror

rbd-mirror 服務負責在兩個 Ceph 叢集之間同步 RADOS 區塊裝置影像 (如需更多詳細資料,請參閱第 20.4 節 「RBD 影像鏡像」)。若要部署 rbd-mirror,請使用以下規格:

service_type: rbd-mirror
service_id: EXAMPLE_RBD_MIRROR
placement:
  hosts:
  - ses-min3

5.4.3.8 部署監控堆疊

監控堆疊包含 Prometheus、Prometheus 輸出程式、Prometheus 警示管理員和 Grafana。Ceph Dashboard 使用這些元件來儲存並直觀呈現有關叢集使用率和效能的詳細度量。

提示
提示

如果您的部署需要監控堆疊服務的自訂或本地提供的容器影像,請參閱第 16.1 節 「設定自訂或本地影像」

若要部署監控堆疊,請執行以下步驟:

  1. 在 Ceph 管理員精靈中啟用 prometheus 模組。這將公開內部 Ceph 度量,以便 Prometheus 可以讀取這些資訊:

    cephuser@adm > ceph mgr module enable prometheus
    注意
    注意

    請確定在部署 Prometheus 之前執行此指令。如果部署前未執行該指令,則必須重新部署 Prometheus 才能更新 Prometheus 的組態:

    cephuser@adm > ceph orch redeploy prometheus
  2. 建立包含如下內容的規格檔案 (例如 monitoring.yaml):

    service_type: prometheus
    placement:
      hosts:
      - ses-min2
    ---
    service_type: node-exporter
    ---
    service_type: alertmanager
    placement:
      hosts:
      - ses-min4
    ---
    service_type: grafana
    placement:
      hosts:
      - ses-min3
  3. 透過執行以下指令套用監控服務:

    cephuser@adm > ceph orch apply -i monitoring.yaml

    部署監控服務可能需要一到兩分鐘。

重要
重要

Prometheus、Grafana 和 Ceph Dashboard 全都會自動設定為相互通訊,因此如上述般進行部署時,Ceph Dashboard 中將實現功能完整的 Grafana 整合。

但使用 RBD 影像進行監控時不適用於此規則。如需詳細資訊,請參閱第 16.5.4 節 「啟用 RBD 影像監控」