全稱是object storage device,主要功能包括儲存資料,處理資料的複製、恢復、回補、平衡資料分布,並將一些相關資料提供給ceph monitor
crush
是ceph使用的資料分布演算法,類似一致性雜湊,讓資料分配到預期的地方
map
上面說過,monitor元件負責監視整個集群的執行狀況,如各節點之間的狀態、集群配置資訊,這些資訊由維護集群成員的守護程式來提供,如何存放這些資訊呢,答案就是map,ceph monitor map主要包括如下這幾個
副本
副本是ceph存放資料的份數,可以理解為對乙個檔案備份的份數,ceph預設的副本數是3,即乙個主(primary ),乙個次(secondary),乙個次次(tertiary),只有primary osd的副本才解釋客戶端請求,它將資料寫入其他osd
如下,可以看到這個叫做testpool的pool中有乙個叫做object1的object,他的map資訊獲取後可以看到
這個物件在osd1上面是主,在osd0和osd2上是次和次次,也就是說在副本數為3的情況下,每個osd儲存乙個副本
[root@ceph-1 ~]# ceph osd map testpool object1
osdmap e220 pool 'testpool' (38) object 'object1' -> pg 38.bac5debc (38.0) -> up ([1,0,2], p1) acting ([1,0,2], p1)
其他內容解釋
object
ceph最底層的儲存單元,即物件,每個物件包含元資料和原始資料,當使用者要將資料儲存到ceph集群時,儲存資料會被分為多個物件,每個物件的大小是可以設定的,預設是4mb,可以將object堪稱是ceph儲存的最小單元
pg和pgp
pg是用來存放object的
pgp是相當於pg存放在osd的一種排列組合,他不影響副本個數,只影響副本排列順序
pool
pool是乙個邏輯儲存概念,我們建立pool的時候,需要指定pg和pgp,ceph 的池是乙個用來儲存物件的邏輯分割槽 ,ceph每個池都包含一定數量 pg 進而實現把一定數量的物件對映到集群內部不同 osd
此,因此, 每乙個池都是交叉分布在集群所有節點上的 ,也就是說pool是分布在整個集群上面的,這樣就能夠提供足夠的彈性
object與pg的關係
由於object的數量很多,所以ceph引入了pg的概念用於管理object,每個object最後都會通過crush計算對映到某個pg中,乙個pg可以包含多個object
pg與osd的關係
pg也需要通過crush計算對映到osd中去儲存,如果是三副本的,則每個pg都會對映到三個osd,比如[osd.0,osd.1,osd.2],那麼osd.0是存放該pg的主副本,osd.1和osd.2是存放該pg的從副本,保證了資料的冗餘
pg和pool的關係
pool也是乙個邏輯儲存概念,我們建立儲存池pool的時候,都需要指定pg和pgp的數量,邏輯上來說pg是屬於某個儲存池的,就有點像object是屬於某個pg的
pg和pgp的關係
儲存資料, object, pg,pgp, pool, osd, 儲存磁碟的關係
另外,這裡又另一張圖,是我在別的大佬的文章裡發現的也不錯,就也放到這裡把
ceph 基本概念 原理 架構介紹
1.1 ceph 介面 ceph 支援三種介面 1.2 ceph 核心元件及概念介紹 塊裝置 主要是將裸磁碟空間對映給主機使用,類似於san儲存,使用場景主要是檔案儲存,日誌儲存,虛擬化映象檔案等。檔案儲存 典型代表 ftp nfs 為了克服塊儲存無法共享的問題,所以有了檔案儲存。2.1 ceph ...
SpringCloud的元件和概念介紹
springcloud是基於springboot實現的一套微服務框架,包括eureka ribbon hystrix feign zuul等。eureka 註冊中心 要管理分布式環境下的各個spring boot微服務,必然存在服務的註冊問題。所以我們先從服務的註冊談起。既然是註冊,必然有個管理註冊...
jmeter的元件及介紹
1 thread group 執行緒組 執行緒組是一系列執行緒的集合,是每乙個執行緒代表著乙個正在使用程式的使用者。在jmeter中,每個執行緒組意味模擬乙個真實的使用者想伺服器發起請求。2 samplers 取樣器 jmeter測試中有http ftp等協議 3 listeners 在 jmete...