官术网_书友最值得收藏!

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的分配關系

主站蜘蛛池模板: 桂阳县| 田阳县| 连州市| 淳安县| 堆龙德庆县| 建阳市| 五大连池市| 依兰县| 尉氏县| 出国| 新竹县| 渝北区| 平罗县| 休宁县| 玛多县| 齐河县| 凌源市| 兴安县| 柳林县| 贺州市| 贵州省| 武乡县| 丽水市| 上蔡县| 中卫市| 密山市| 明光市| 汶上县| 宣恩县| 崇明县| 竹溪县| 东平县| 吕梁市| 大庆市| 石家庄市| 女性| 小金县| 遂平县| 朝阳区| 伊宁县| 通州市|