天天看點

監控叢集

一旦你有一個運作的叢集,你可能會使用CEPH工具來監控叢集狀态。監控叢集一般包含對OSD狀态、MONITORS狀态、PLACEMENT GROUP狀态和METADATA SERVER狀态的監控。

直接運作ceph指令,可以進入互動模式,例如:

在啟動叢集後、開始讀寫前,需要首先檢查叢集健康狀态。可以通過以下指令檢查叢集健康狀态:

如果沒有指定預設配置檔案或者keyring的,需要手動指定:

剛啟動ceph叢集時,該指令可能會傳回類似“ <code>HEALTH_WARN XXX num placement groups stale</code>”。這些情況下需要等待一段時間再進行檢查。等叢集狀态正常了,該指令應該傳回“HEALTH_OK“。此時可以正常使用叢集。

為了觀察叢集不停重新整理的日志,可以使用以下指令:

ceph會輸出每個日志,例如:

輸出包含以下資訊:

Cluster ID 叢集ID

Cluster health status   叢集健康狀态

The monitor map epoch and the status of the monitor quorum

The OSD map epoch and the status of OSDs

The placement group map version       palcement group版本 :v41338

pg數量和pools

名義上總使用存儲空間和存儲的對象數量

總資料存儲空間

Ceph如何統計空間

used值反映了實際使用的原生存儲空間。xxx GB / xxx GB小的值反映了叢集所有可用空間的值。概念數(notional number ,這裡是17130 MB data)指的是資料沒有被複制、克隆、快照的大小。此外,ceph存儲資料實際使用空間遠超過概念數空間,因為ceph會建立資料副本并且可能會進行克隆和快照。

可以使用df選項檢查資料使用情況:ceph df 

輸出示範:

其中GLOBAL章節輸出的是叢集總使用情況:

SIZE:叢集總空間

AVAIL:叢集可用空間

RAW USED:存儲已用空間

%RAW UESD:已用空間百分比。可以使用full radio和near full radio來保證不達到存儲的上限。

POOLS章節出書的是所有POOL和該POOL使用的概念數空。這個輸出不包含複制、克隆和快照。例如,這裡顯示存儲一個對象使用了1M,notional使用顯示為1M,但是實際使用空間會是2M或者更多(根據副本、克隆、快照的數量決定)。

NAME:pool的名稱

ID:pool的id

USED:notional已經使用的空間

%USED:notional已經使用空間的百分比

Objects:notional存儲的對象數量

注意 在POOLS中的數量是概念性的,他們不包含複制、快照或者克隆。這樣的結果是USED和%USED的總數隻和是和GLOBAL中RAW USED和%RAW USED不一緻的。

為了檢查叢集狀态,執行以下指令:

或者:

在互動模式下,可以使用status:

Ceph會傳回狀态結果. 一個僅有1個monitor和2個OSDs的傳回值是:

可以通過以下指令監控OSD狀态:

你可以根據OSD在CRUSH map中的位置檢查他們:

Ceph會傳回host中CRUSH樹和OSDs的狀态、權重:

更多資訊,請參考 Monitoring OSDs and Placement Groups.

如果叢集有多個MON,在叢集開啟後、讀寫資料前,需要檢查monitor quorum status(叢集仲裁狀态)。當有多個monitors節點時,仲裁是必須要有的。應該定期檢查monitor狀态。

執行以下指令進行檢查monitor:

Or:

檢查仲裁:

Ceph會傳回仲裁狀态。例如,一個有三個monitors組成的叢集可能會傳回:

Metadata servers provide metadata services for Ceph FS. Metadata servers have two sets of states: up | down and active | inactive. To ensure your metadata servers are up and active, execute the following:

To display details of the metadata cluster, execute the following:

PG會将對象對應到OSDs。當你監控pgs,你會希望他們都處于active+clean狀态。更多資訊請參考: Monitoring OSDs and Placement Groups.

Ceph admin socket允許你通過socket接口查詢一個程序。預設情況下,Ceph的sockets檔案的路徑是/var/run/ceph。為了通過socket擷取程序資訊,需要登入到運作程序的主機并且運作以下指令:

例如,以下操作是相同的:

使用以下指令檢視可以使用的管理socket資訊:

管理socket允許你在程序運作的時候顯示和配置它。檢視Viewing a Configuration at Runtime擷取更詳細的資訊。另外,你可以在程序運作的時候直接設定參數。

繼續閱讀