- Ceph企業級分布式存儲:原理與工程實踐
- 景顯強 龔向宇 黃軍寶
- 695字
- 2021-11-05 10:18:52
3.4.1 PG基本概念
Ceph集群中存儲了數百萬個對象,如果分別對對象進行管理會占用大量資源。因此,Ceph使用放置組來提高管理大量對象的效率。放置組是存儲池的子集,是對象的集合。Ceph將一個存儲池劃分為一系列放置組,每一個客戶端對象都會分配給一個放置組,然后將該放置組分配給一個主OSD。由于Ceph通過設置副本數量或糾刪碼級別對數據進行保護,因此Ceph會根據副本數或者糾刪碼中校驗盤的數量選擇OSD,并將主OSD中的放置組復制到從OSD。如果主OSD發生故障或集群做了數據重新平衡,Ceph可以對集群中現有非主OSD上保存的放置組數據進行復制或移動。因為有了放置組,對象所在的OSD位置就清楚了。即便是OSD有損壞,你也不必為每個對象單獨尋址。CRUSH算法會結合Cluster Map和集群的狀態將放置組均勻、偽隨機地分配給集群中的OSD(包括主OSD和從OSD)。
如圖3-2所示,CRUSH算法將對象分配給PG 5,并且將PG 5分配給OSD 3,讓OSD 3作為主OSD。CRUSH算法計算出OSD 1和OSD 6是PG 5的從OSD,則主OSD 3將PG 5內容數據復制到OSD 1和OSD 6。這就是放置組在OSD間復制,保證集群數據安全的方法。
當系統管理員創建一個存儲池時,CRUSH算法為該存儲池創建用戶定義數量的放置組。通常,放置組的數量要設置得合理。例如,每個存儲池分配100個放置組,意味著每個放置組大約包含存儲池中1%的數據。當Ceph需要將放置組從一個OSD移至另一個OSD時,放置組的數量會對性能產生影響。如果存儲池中的放置組太少,每個放置組分配的存儲池中的數據比例將很大,移動放置組則意味著Ceph集群中要同時移動大量數據,并且網絡負載也會變高,從而對集群的性能產生不利影響。如果存儲池中的放置組過多,Ceph在移動少量數據時會占用過多的CPU和RAM,從而對集群的性能產生不利影響。

圖3-2 放置組和OSD的分配關系
- Implementing Cisco UCS Solutions
- Linux系統架構與運維實戰
- Puppet實戰
- 阿里云數字新基建系列:云原生操作系統Kubernetes
- Installing and Configuring Windows 10:70-698 Exam Guide
- 新手學電腦從入門到精通(Windows 10+Office 2016版)
- 零基礎學鴻蒙PC:新一代國產操作系統
- Windows 7中文版從入門到精通(修訂版)
- 云原生落地:產品、架構與商業模式
- Linux內核分析及應用
- Linux指令從初學到精通
- SQL Server on Azure Virtual Machines
- 庖丁解牛Linux操作系統分析
- 你必須掌握的Windows 8技巧
- CentOS 7系統管理與運維實戰