一、Ceph集群狀態
Ceph是一個分布式、自我治理的存儲系統,可以通過使用普通服務器和網絡。Ceph集群可以通過簡單的命令行工具或Web界面輕鬆設置和管理。在Ceph集群中,節點和設備的故障是常見的。為了確保整個集群的持久性和可用性,Ceph使用數據複製和數據擦除來防止數據丟失和硬件故障。
Ceph集群中的兩個重要組件是OSD(Object Storage Daemon)和Monitor。 OSD是Ceph使用的對象存儲守護進程,它負責實際存儲和檢索數據。Monitor監視節點的狀態,為客戶端和OSD提供有關存儲集群的信息。
要檢查Ceph集群的狀態,請使用以下命令:
ceph status
此命令將列出群集的健康狀況,例如健康度、PG總數以及存儲使用情況。
二、Ceph集群部署
在開始部署Ceph集群之前,需要確定如何部署OSD,因為它們是Ceph存儲的主要組件。OSD可以跨多個物理服務器分布,這意味着它們可以運行在不同的服務器上,或者在同一服務器的不同磁盤上。與此同時,將RADOS監視器運行在單獨的服務器上,以避免在OSD停止運行時出現單一故障點。
Ceph是基於Linux的開源系統,可以在幾乎所有主流Linux發行版中使用。與其他存儲系統不同,Ceph支持文件級和塊級存儲。此外,它可以與AWS、OpenStack和其他雲和虛擬化平台無縫集成。
在CentOS7上,使用以下命令來安裝Ceph:
sudo yum install epel-release sudo yum install ceph -y
一旦Ceph安裝完成,運行以下命令來創建並啟動初始Ceph環境:
sudo ceph-deploy new {MONITOR-HOSTNAME} sudo ceph-deploy install {MONITOR-HOSTNAME} sudo ceph-deploy mon create-initial
請注意,這需要在與Master節點不同的主機上進行,在此示例中為“MONITOR-HOSTNAME”。
三、Ceph集群延遲
在Ceph中,延遲是一個常見的問題,它會影響整個系統的性能和可用性。為了避免延遲,Ceph使用了各種技術,例如從緩存中讀取數據、使用固態硬盤和數據分片。要檢查Ceph集群的延遲,請使用以下命令:
ceph osd latency
此命令將返回每個OSD的讀/寫延遲和吞吐量數據。
四、Ceph集群維護
Ceph集群需要持續維護,以確保其性能和可用性。在Ceph的“健康度”框架下,Ceph會為管理員提供有關係統狀態和性能的實時統計信息。要檢查Ceph集群的狀態,請運行以下命令:
ceph health
此命令將返回一個健康度報告,指示是否出現故障、複製和恢復狀況以及OSD和Monitor的狀態。
當需要進行維護操作時,最好在Ceph集群上停止所有活動,並在開始之前備份所有數據。為了停止Ceph集群,請使用以下命令:
ceph osd down {osd-num} ceph osd out {osd-num}
注意,這將關閉指定的OSD,將其從群集中移除並將其標記為下線。然後可以執行其他維護操作。
五、Ceph集群最少需要幾台
Ceph集群建議使用5台或更多服務器,以最大程度地提高系統的可靠性。由於Ceph存儲系統提供高度可用的數據存儲,因此至少需要3台運行Monitor,以避免單點故障。在單節點上實施Ceph集群不是一個好主意。
六、Ceph集群編碼
Ceph集群使用軟件編碼技術來防止數據丟失和硬件故障。軟件編碼允許數據在多個磁盤和節點上進行複製,從而增加了數據的可用性和持久性。要在Ceph集群中設置編碼,請使用以下命令:
ceph osd erasure-code-profile set {profile-name} k={k} m={m}
注意:{profile-name}是編碼配置文件的名稱;{k}指定數據片數量;{m}指定糾錯碼片數量。例如,以下代碼將創建名為”my-ec-profile”的編碼配置文件,其中k = 2,m = 1:
ceph osd erasure-code-profile set my-ec-profile k=2 m=1
七、Ceph集群搭建方案
一個Ceph集群包括多個節點,每個節點包括OSD和MON。為了建立Ceph集群,需要執行以下步驟:
- 創建一個Ceph集群的Monitor。
- 將OSD添加到Ceph cluster中。
- 確保數據平衡。
- 執行數據恢復和重構。
要創建Ceph集群,請運行以下命令:
ceph-deploy new {cluster-name} ceph-deploy install {node-name} ceph-deploy mon create-initial
“cluster-name”指定要使用的群集名稱,“node-name”指定要添加OSD和MON信息的節點名稱。
八、Ceph集群搭建
在搭建Ceph集群之前,請確保已設置正確的網絡。每個節點都應該在同一網絡下,並且它們應該能夠彼此訪問。要創建Ceph集群,請按照以下步驟進行操作:
- 確保群集中的每個節點均安裝有Ceph。
- 為Ceph節點配置主機名。
- 創建一個初始配置文件並在群集中的每個節點上分發該文件。
- 創建和部署Ceph Monitor。
- 為每個節點添加OSD設備。
- 確保Ceph存儲系統的數據平衡。
要創建Ceph集群,請運行以下命令:
ceph-deploy new {cluster-name} ceph-deploy install {node-name} ceph-deploy mon create-initial
“cluster-name”指定要使用的群集名稱,“node-name”指定要添加OSD和MON信息的節點名稱。
九、Ceph集群刪除pg
要在Ceph集群中刪除未使用的PG,請使用以下命令:
ceph pg dump | grep inactive | awk '{print $1}' | xargs -I {} ceph pg rm {} # 1 ceph pg dump_stuck inactive | awk '{print $1}' | xargs -I {} ceph pg rm {} # 2
請注意,這些命令將刪除未使用的PG,以釋放未使用的存儲空間。
十、Ceph集群網絡選取
在Ceph集群中,為了獲得最佳的網絡性能和可用性,應選擇適合Ceph集群的網絡。這應該是一個低延遲、高吞吐量的網絡,並且必須在每個節點之間提供良好的帶寬。
在進行網絡規劃時,請考慮以下幾個因素:
- 節點到節點之間的距離和帶寬。
- 緩存、塊層和對象層之間的帶寬。
- 為操作系統和Ceph(例如RADOS)保留的帶寬。
為了確保網絡滿足Ceph集群的性能需求,可以使用像fio、Bonnie++、dd、iperf3等工具來測試網絡吞吐量、帶寬和延遲。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/239974.html