Ceph集群詳解

一、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集群,需要執行以下步驟:

  1. 創建一個Ceph集群的Monitor。
  2. 將OSD添加到Ceph cluster中。
  3. 確保數據平衡。
  4. 執行數據恢復和重構。

要創建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集群,請按照以下步驟進行操作:

  1. 確保群集中的每個節點均安裝有Ceph。
  2. 為Ceph節點配置主機名。
  3. 創建一個初始配置文件並在群集中的每個節點上分發該文件。
  4. 創建和部署Ceph Monitor。
  5. 為每個節點添加OSD設備。
  6. 確保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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:19
下一篇 2024-12-12 12:19

相關推薦

  • 使用Go-Redis獲取Redis集群內存使用率

    本文旨在介紹如何使用Go-Redis獲取Redis集群的內存使用率。 一、Go-Redis簡介 Go-Redis是一個用於連接Redis服務器的Golang客戶端。它支持Redis…

    編程 2025-04-28
  • Redis5.0集群擴容用法介紹

    Redis是一個內存數據庫,越來越受到開發者的歡迎。在開發中,我們經常需要考慮Redis集群的擴容問題。而Redis5.0針對集群擴容方面進行了多項優化和改進,本文將從多個方面詳細…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁盤中。在執行sync之前,所有的文件系統更新將不會立即寫入磁盤,而是先緩存在內存…

    編程 2025-04-25
  • 神經網絡代碼詳解

    神經網絡作為一種人工智能技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網絡的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網絡模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web服務器。nginx是一個高性能的反向代理web服務器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分布式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • Python安裝OS庫詳解

    一、OS簡介 OS庫是Python標準庫的一部分,它提供了跨平台的操作系統功能,使得Python可以進行文件操作、進程管理、環境變量讀取等系統級操作。 OS庫中包含了大量的文件和目…

    編程 2025-04-25

發表回復

登錄後才能評論