- 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的分配關系
- Linux系統架構與運維實戰
- Puppet實戰
- Kubernetes網絡權威指南:基礎、原理與實踐
- 高性能Linux服務器構建實戰:運維監控、性能調優與集群應用
- 嵌入式Linux應用開發菜鳥進階
- Linux自動化運維:Shell與Ansible(微課版)
- 突破平面3ds Max動畫設計與制作
- Learning BeagleBone
- Learn SwiftUI
- Drupal 7 Cookbook
- Office 365 User Guide
- Raspberry Pi入門指南
- VMware Horizon Mirage Essentials
- Linux指令從初學到精通
- SQL Server on Azure Virtual Machines