29 Ceph 管理員模組 #
Ceph 管理員的架構 (請參閱第 1.2.3 節 「Ceph 節點和精靈」中的簡短介紹) 允許您透過「儀表板」(請參閱第 I 部分 「Ceph Dashboard」)、「prometheus」(請參閱第 16 章 「監控和警示」) 或「平衡器」等模組來延伸其功能。
若要列出所有可用的模組,請執行:
cephuser@adm >
ceph mgr module ls
{
"enabled_modules": [
"restful",
"status"
],
"disabled_modules": [
"dashboard"
]
}
若要啟用或停用特定模組,請執行:
cephuser@adm >
ceph mgr module enable MODULE-NAME
例如:
cephuser@adm >
ceph mgr module disable dashboard
若要列出已啟用模組所提供的服務,請執行:
cephuser@adm >
ceph mgr services
{
"dashboard": "http://myserver.com:7789/",
"restful": "https://myserver.com:8789/"
}
29.1 平衡器 #
平衡器模組可最佳化各 OSD 之間的放置群組 (PG) 分佈,以實現更平衡的部署。儘管預設會啟用該模組,但它將處於非使用中狀態。它支援 crush-compat
和 upmap
這兩種模式。
若要檢視目前的平衡器狀態和組態資訊,請執行:
cephuser@adm >
ceph balancer status
29.1.1 「crush-compat」模式 #
在「crush-compat」模式下,平衡器會調整 OSD 的重設權數集,以改進資料分佈。它會將 PG 在 OSD 之間移動,因此會暫時出現由 PG 錯放所導致的 HEALTH_WARN
叢集狀態。
儘管「crush-compat」為預設模式,但我們仍建議明確將其啟用:
cephuser@adm >
ceph balancer mode crush-compat
29.1.2 資料平衡的規劃和執行 #
您可以使用平衡器模組建立資料平衡計畫。隨後,您可以手動執行該計畫,或讓平衡器持續平衡 PG。
若要決定是以手動還是自動模式來執行平衡器,需要考慮諸如目前資料的不平衡情況、叢集大小、PG 計數或 I/O 活動等多項因素。我們建議選擇在叢集中的 I/O 負載較低時建立和執行初始計畫。原因是初始的不平衡情況可能會非常嚴重,因此最好將對用戶端的影響保持在較低程度。初始的手動執行完成後,建議您啟用自動模式,並監控正常 I/O 負載下的重新平衡流量。需要對照平衡器所導致的重新平衡流量來權衡 PG 分佈的改進。
在平衡過程中,平衡器模組會節流 PG 的移動,以便僅移動可設定的 PG 部分。該部分預設為 5%,您可透過執行以下指令調整該部分 (例如,調整為 9%):
cephuser@adm >
ceph config set mgr target_max_misplaced_ratio .09
若要建立和執行平衡計畫,請執行以下步驟:
檢查目前的叢集分數:
cephuser@adm >
ceph balancer eval建立計畫,例如「great_plan」:
cephuser@adm >
ceph balancer optimize great_plan查看「great_plan」將引發的變更:
cephuser@adm >
ceph balancer show great_plan檢查潛在的叢集分數 (如果您決定套用「great_plan」):
cephuser@adm >
ceph balancer eval great_plan執行「great_plan」一次:
cephuser@adm >
ceph balancer execute great_plan使用
ceph -s
指令觀察叢集平衡情況。如果您對結果滿意,請啟用自動平衡:cephuser@adm >
ceph balancer on如果您稍後決定停用自動平衡,請執行:
cephuser@adm >
ceph balancer off
您可以不執行初始計畫,直接啟用自動平衡。在此情況下,放置群組的重新平衡用時可能會非常長。
29.2 啟用遙測模組 #
遙測外掛程式可傳送有關執行其的叢集的 Ceph 專案匿名資料。
此 (選擇加入) 元件包含有關叢集部署方式、Ceph 版本、主機分佈,以及其他有助於專案更好地瞭解 Ceph 使用方式的參數的計數器和統計資料。它不包含任何諸如池名稱、物件名稱、物件內容或主機名稱等敏感性資料。
遙測模組用於為開發人員提供自動化回饋迴路,以協助其量化採用率、追蹤情況,或指出為避免出現不良後果而需在組態期間以更佳方式進行解釋或驗證的內容。
遙測模組需要 Ceph 管理員節點能夠透過 HTTPS 將資料推入至上游伺服器。請確定您的企業防火牆允許此動作。
若要啟用遙測模組,請執行以下指令:
cephuser@adm >
ceph mgr module enable telemetry注意此指令只能讓您在本地檢視您的資料。它並不會將您的資料與 Ceph 社群共用。
若要允許遙測模組開始共用資料,請執行以下指令:
cephuser@adm >
ceph telemetry on若要停用遙測資料共用,請執行以下指令:
cephuser@adm >
ceph telemetry off若要產生可列印的 JSON 報告,請執行以下指令:
cephuser@adm >
ceph telemetry show若要新增聯絡資訊和描述至報告,請執行以下指令:
cephuser@adm >
ceph config set mgr mgr/telemetry/contact John Doe john.doe@example.comcephuser@adm >
ceph config set mgr mgr/telemetry/description 'My first Ceph cluster'該模組預設每 24 小時編譯並傳送一次新報告。若要調整此間隔,請執行以下指令:
cephuser@adm >
ceph config set mgr mgr/telemetry/interval HOURS