共計 1536 個字符,預計需要花費 4 分鐘才能閱讀完成。
這篇文章主要為大家展示了“PG 如何設置與規劃”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領大家一起研究并學習一下“PG 如何設置與規劃”這篇文章吧。
計算單個 pool 的 PG Count 公式
PoolPGCount=((TargetPGsPerOSD)?(OSDNumber)?(DataPercent) )/PoolSize
參數介紹名稱說明備注 Pool PG Count 單個 Pool 的 PG 數量 Target PGs Per OSD 每個 OSD 的 PGs 數量 a) 如果未來集群的 OSD 數量基本不再增長,Target PGs per OSD =100
b) 如果未來集群的 OSD 數量可能增長到目前規模的 2 倍以內,Target PGs per OSD =200
c) 如果未來集群的 OSD 數量增長規模大于當前 2 倍且小于 3 倍,Target PGs per OSD =300OSD Number 集群 OSD 的總數,默認來講是全部 OSD 的數量如果通過 CRUSH rules 進行了 SSD 和 SATA 設備的規則拆分(比如 SSD 和 SATA 劃分成兩個 zone),需要單獨填寫對應 rule 的 OSD 數量 Data PercentPool 占用所在 OSD 總容量的百分比(預估值) Pool Size 每個 pool 的 replicas size,默認是 3 如果使用 Erasure Coded Pools 簡稱 EC pool,Pool Size = K+ m 關于計算結果取整說明
計算的最終結果應該是一個 2 的冪次方。采用 2 的冪次方是因為了提高 CRUSH 算法的效率。
如果計算出來的結果,找到與這個結果相鄰的兩個 2 次冪數值,如果結果超過較小二次冪數值的 25% 則選擇較大的二次冪作為最終結果,反之則選擇較小的那個 2 次冪數值。
其他說明
設計計算公式的目的是為了確保整個集群擁有足夠多的 PG 從而實現數據均勻分布在各個 OSD 上,同時能夠有效避免在 Recovery 和 Backfill 的時候因為 PG/OSD 比值過高所造成的問題。
如果集群中存在空 pool 或者其他非活躍狀態下的 pool,這些 pool 并不影響現有集群的數據分布,但是這些 pool 仍然會消耗集群的內存和 CPU 資源。
舉例環境介紹:
某集群由 100 個 OSD 組成,其中 40 個 OSD 為 SSD(通過 CRUSH rules 劃分為 SSD zone),60 個 OSD 為 SATA(通過 CRUSH rules 劃分為 SATA zone),集群規模預計未來會增長到當前規模的 2 倍
需求:
整個集群新建 4 個 pool,具體如下:
名稱說明備注 SSD_poolAPool Size=3,預計容量占用比 60%SSD zoneSSD_poolBPool Size=3,預計容量占用比 40%SSD zoneSATA_poolAEC Pools,Pool Size = k+m= 3+2=5,預計容量占用比 80%SATA zoneSATA_poolbPool Size=3,預計容量占用比 20%SATA zone 名稱說明備注 SSD_poolA
PoolPGCount=((200)?(40)?(0.6))/3=1600≈2048
1600 與相鄰的 2 次冪數值分布為 1024 1600 2048SSD_poolB
PoolPGCount=((200)?(40)?(0.4))/3=1066≈1024
SSD zoneSATA_poolA
PoolPGCount=((200)?(60)?(0.8))/5=1920≈2048
SSD zoneSATA_poolB
PoolPGCount=((200)?(60)?(0.2))/3=800≈1024
SSD zone
以上是“PG 如何設置與規劃”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!