Ceph分布式存儲(chǔ)集群Pool資源池簡(jiǎn)介及使用小結(jié)
1.Pool資源池的概念
Pool資源池的官方文檔:https://docs.ceph.com/en/pacific/rados/operations/pools/#create-a-pool
Pool資源池是Ceph存儲(chǔ)數(shù)據(jù)的邏輯分區(qū),起到Namespace命名空間的作用,不同的客戶端可以去使用不同的Pool資源池存儲(chǔ)數(shù)據(jù),Pool除了可以隔離數(shù)據(jù)之外,還可以針對(duì)不同的Pool資源池設(shè)置不同的優(yōu)化策略,比如副本數(shù)、數(shù)據(jù)清洗次數(shù)、數(shù)據(jù)塊及對(duì)象大小等等。
在Pool資源池中會(huì)包含一定數(shù)量的PG,PG里的對(duì)象會(huì)被存儲(chǔ)在不同的OSD中,Pool資源上也是分布到整個(gè)集群的
一個(gè)文件將數(shù)據(jù)寫入到Pool資源池的過(guò)程:
首先客戶端會(huì)從Cluster Map中讀取到集群各節(jié)點(diǎn)的信息,要寫入存儲(chǔ)的文件會(huì)被拆分成多個(gè)Object對(duì)象,這些Object對(duì)象都會(huì)被寫入到Pool資源池中,PG是建立在Pool資源池中的,一個(gè)Pool資源池中會(huì)有多個(gè)PG載體,Object對(duì)象文件最終會(huì)被存放在Pool資源池的PG目錄中,最后再通過(guò)CRUSH Rule算法將數(shù)據(jù)文件寫入到不同的OSD中。
Pool資源池與PG載體的關(guān)系:
在前面說(shuō)到過(guò)Object對(duì)象文件都是存儲(chǔ)在OSD中的PG目錄中,主要是為了故障遷移時(shí),直接遷移目錄會(huì)非常方便。
在這里提到了Pool資源池的概念,客戶端想要將數(shù)據(jù)寫入到Ceph存儲(chǔ)中,首先Ceph需要準(zhǔn)備一個(gè)Pool資源池,為不同的客戶端提供不同的資源池,不同的資源池也可以設(shè)置不同的策略。
Pool資源池是建立在OSD之上的邏輯分區(qū),PG載體是建立在Pool資源池中的,一個(gè)Pool資源池中有幾十個(gè)甚至幾百個(gè)PG載體,還有PGP。
客戶端寫入的文件被拆分成多個(gè)Object對(duì)象后,首先會(huì)存儲(chǔ)在PG載體中,而PG載體是在Pool資源池中,最后通過(guò)CRUSH算法寫入到OSD中。
File—>Objec—>PG—>Pool—>OSD
Pool資源池中PG與PGP的關(guān)系:
PG是用來(lái)存放Object對(duì)象的,PGP相當(dāng)于是PG存放在OSD的一種排列組合。
例如集群中有三個(gè)OSD,分別是OSD-1、OSD-2、OSD-3,如果Pool的副本數(shù)為2,PGP的數(shù)量為1,那么所有的PG存放在OSD組合就只有一種情況,例如[OSD-1,OSD-2],此時(shí)所有的PG主從副本都會(huì)分別存放在OSD-1和OSD-2中,如果PGP的數(shù)量為2,那么PG存放在OSD中的組合就會(huì)有兩種情況,例如[OSD-1,OSD-2]和[OSD-1,OSD-3]。
PG的數(shù)量要和PGP的數(shù)量保持一致。
2.Pool資源池的基本操作
2.1.創(chuàng)建一個(gè)Pool資源池
命令格式:ceph osd create pool ${pool-name} ${pg_num} ${pgp_num}
[root@ceph-node-1 ~]# ceph osd pool create ceph-pool-1 64 64 pool 'ceph-pool-1' created
在創(chuàng)建Pool資源池的時(shí)候一定要指定pg_num和pgp_num參數(shù),因?yàn)镃eph集群不能自動(dòng)計(jì)算PG的數(shù)量。
官方建議的PG使用數(shù)量:
- 集群中小于5個(gè)OSD,則設(shè)置PG的數(shù)量為128。
- 集群有5-10個(gè)OSD時(shí),設(shè)置PG的數(shù)量為512。
- 集群中有10-50個(gè)OSD時(shí),設(shè)置PG的數(shù)量為1024.
當(dāng)集群中超過(guò)50個(gè)OSD時(shí),需要權(quán)衡PG的數(shù)量,有一種公式:
? (osd_number * 100)
pg_num = ------------------------------
? pool size
例如集群有90個(gè)OSD,Pool設(shè)置的副本數(shù)為3:(90*100)÷3=3000
PGP的數(shù)量要和PG的數(shù)量保持一致。
注意這個(gè)PG數(shù)量是集群所能承擔(dān)的總PG數(shù)量,每個(gè)資源池分配多個(gè)PG,還需要通過(guò)總的PG數(shù)乘以資源池占整個(gè)集群數(shù)據(jù)比例,最終拿到一個(gè)資源池應(yīng)該分配多少個(gè)PG的數(shù)量。
2.2.為資源池設(shè)置應(yīng)用模式
其實(shí)就是為資源池設(shè)置一個(gè)分類,有rbd、rgw、cephfs三種。
命令格式:ceph osd pool application enable {pool_name} rbd
[root@ceph-node-1 ~]# ceph osd pool application enable ceph-pool-1 rbd enabled application 'rbd' on pool 'ceph-pool-1'
2.3.查看資源池設(shè)置的應(yīng)用模式
[root@ceph-node-1 ~]# ceph osd pool application get ceph-rbd-data { "rbd": {} }
2.4.查看OSD所有的資源池
[root@ceph-node-1 ~]# ceph osd lspools 1 ceph-pool-1
2.5.查看資源池的PG數(shù)量和PGP數(shù)量
查看Pool資源池屬性的命令格式;ceph osd pool get {poll_name} [parameter]
查看pg的數(shù)量 [root@ceph-node-1 ~]# ceph osd pool get ceph-pool-1 pg_num pg_num: 64 查看pgp的數(shù)量 [root@ceph-node-1 ~]# ceph osd pool get ceph-pool-1 pgp_num pgp_num: 64
2.6.查看資源池的副本數(shù)量
副本數(shù)量默認(rèn)為3個(gè)。
[root@ceph-node-1 ~]# ceph osd pool get ceph-pool-1 size size: 3
2.7.查看資源池的類型
默認(rèn)類型為replicated_rule(復(fù)制類型)。
[root@ceph-node-1 ~]# ceph osd pool get ceph-pool-2 crush_rule crush_rule: replicated_rule
2.8.設(shè)置資源池的PG數(shù)量以及PGP數(shù)量
修改Pool資源池屬性的命令格式;ceph osd pool set {poll_name} [parameter]
[root@ceph-node-1 ~]# ceph osd pool set ceph-pool-1 pg_num 128 set pool 1 pg_num to 128 [root@ceph-node-1 ~]# ceph osd pool set ceph-pool-1 pgp_num 128 set pool 1 pgp_num to 128
2.9.設(shè)置資源池的副本數(shù)量
[root@ceph-node-1 ~]# ceph osd pool set ceph-pool-1 size 2 set pool 1 size to 2
2.10.設(shè)置資源池的最大object對(duì)象數(shù)量
命令格式:ceph osd pool set-quota {pool_name} [max_objects {obj-count}] [max_bytes {bytes}]
[root@ceph-node-1 ~]# ceph osd pool set-quota ceph-pool-1 max_objects 10000 set-quota max_objects = 10000 for pool ceph-pool-1
2.11.重命名資源池
命令格式:ceph osd pool rename {current-pool-name} {new-pool-name}
[root@ceph-node-1 ~]# ceph osd pool rename ceph-pool-1 ceph-pool-2 pool 'ceph-pool-1' renamed to 'ceph-pool-2'
2.12.查看資源池的統(tǒng)計(jì)信息
[root@ceph-node-1 ~]# ceph df RAW STORAGE: CLASS SIZE AVAIL USED RAW USED %RAW USED hdd 30 GiB 27 GiB 10 MiB 3.0 GiB 10.04 TOTAL 30 GiB 27 GiB 10 MiB 3.0 GiB 10.04 POOLS: POOL ID PGS STORED OBJECTS USED %USED MAX AVAIL ceph-pool-2 1 128 0 B 0 0 B 0 13 GiB
2.13.查看資源池的利用率
[root@ceph-node-1 ~]# rados df POOL_NAME USED OBJECTS CLONES COPIES MISSING_ON_PRIMARY UNFOUND DEGRADED RD_OPS RD WR_OPS WR USED COMPR UNDER COMPR ceph-pool-2 0 B 0 0 0 0 0 0 0 0 B 0 0 B 0 B 0 B total_objects 0 total_used 3.0 GiB total_avail 27 GiB total_space 30 GiB
2.14.刪除資源池
[root@ceph-node-1 ~]# ceph osd pool delete ceph-pool-2 --yes-i-really-really-mean-it
到此這篇關(guān)于Ceph分布式存儲(chǔ)集群Pool資源池的概念以及使用的文章就介紹到這了,更多相關(guān)Ceph分布式存儲(chǔ)集群內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在CODEIGNITER中 在CI中引入外部的JS與CSS呢
其實(shí)不管是在用CI還是ZF都有同樣一個(gè)問(wèn)題,就是路徑的問(wèn)題。前期,我在用ZF做CMS時(shí),我在.htaccess文件中設(shè)置了如遇到j(luò)s,css,img等資源文件都不重定向。2009-07-07Kali?Linux?2022.1安裝和相關(guān)配置教程(圖文詳解)
這篇文章主要介紹了KaliLinux?2022.1安裝和相關(guān)配置,包括安裝系統(tǒng)和設(shè)置中文的方法,永久調(diào)節(jié)分辨率的相關(guān)技巧,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05git版本庫(kù)介紹及本地創(chuàng)建的三種場(chǎng)景方式
這篇文章主要為大家介紹了git版本庫(kù)以及本地創(chuàng)建的三種場(chǎng)景方式圖文教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04Deepin20安裝開發(fā)環(huán)境的超詳細(xì)教程
這篇文章主要介紹了Deepin20安裝開發(fā)環(huán)境的步驟詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10VS2019中scanf返回值被忽略的問(wèn)題及其解決方法
這篇文章主要介紹了VS2019中scanf返回值被忽略的問(wèn)題及其解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04