- Ceph企業級分布式存儲:原理與工程實踐
- 景顯強 龔向宇 黃軍寶
- 720字
- 2021-11-05 10:18:53
3.4.3 PG和PGP的區別
在創建存儲池的時候通過命令行要輸入兩個參數:pg_num和pgp_num。通常,這兩個參數的值是一樣的。那么,這兩個參數到底有什么區別呢?
參數pg_num表示前面講到的放置組的數量。該值會影響每個放置組內存放的對象數。比如,有10000個對象要關聯到存儲池,此存儲池一共定義了100個放置組,那么每個放置組內平均有100個對象(通常不是平均分配的,這里只是舉個例子)。如果把放置組數調整到200,那么平均每個放置組內的對象數量就降到50。因此,pg_num可決定放置組數,影響放置組內存放對象的數量。
PGP(Placement Group for Placement Purpose)決定了對象分布在哪些OSD上。參數pgp_num表示PGP的可操作值。如果增大PGP值,放置組內的對象會重新計算,集群中的數據將開始做重新分布。
首先創建一個存儲池并設置pg_num=1。pgp_num=1即只有一個放置組和一個PGP,PG內有100個對象。假設做了3副本的數據冗余,數據會分布在3個OSD上,設這三個OSD編號為1、3、8。那么,這些數據的位置在創建存儲池的時候都會被固定。隨后調整pg_num=2,pgp_num=1不變,這時候會發現新增了一個放置組,而且這個放置組內分割了原有放置組內的一部分對象,也就是說兩個放置組共同存儲了100個對象。然而觀察放置組的分布,發現這兩個放置組對象的OSD編號仍然是1、3、8,也就是說增加放置組的數量不改變原有的OSD映射關系。而調整pgp_num=2(即增加一個PGP),放置組內的對象并沒有發生變化,只是其中一個放置組中對象的OSD編號發生了變化,變成了2、4、9。這時,集群中的數據開始從OSD 1、3、8向OSD 2、4、9遷移。
總結如下:
·pg_num是存儲池中存儲對象的目錄數,pgp_num是存儲池中放置組內的OSD分布組合個數。
·pg_num的增加會引起放置組內的對象的分裂,即分裂到相同的OSD上新生成的放置組中。
·pgp_num的增加會引起部分放置組在OSD上的分布變化,但是不會引起放置組內對象的變動。
- 鴻蒙生態:開啟萬物互聯的智慧新時代
- Mobile-first Bootstrap
- Hands-On DevOps with Vagrant
- Learning Android Intents
- Java EE 8 Design Patterns and Best Practices
- 巧學活用Windows 7
- Linux基礎使用與案例
- 統信UOS應用開發進階教程
- VMware vSphere 5.1 Cookbook
- 鴻蒙入門:HarmonyOS應用開發
- Getting Started with UDK
- Mastering AWS CloudFormation
- Windows Azure實戰
- Administering ArcGIS for Server
- Linux網絡操作系統項目教程(RHEL 6.4/CentOS 6.4)(第2版)