一、ceph分存式存儲
1、openstack原理圖
二、塊存儲有兩種方式
1、kernel 這種方式不穩定,不推薦使用
2、librbd 推薦使用
三、ceph的緩存機制
四、ceph存儲原理
五、網絡架構(ceph網絡一定要是萬兆網絡)
Ceph 使用以太網連接內部各存儲節點以及連接 client 和集群。Ceph 推薦使用兩個網絡:
- 前端(北向)網絡( a public (front-side) network):連接客戶端和集群 The public network handles client traffic and communication with Ceph monitors.
- 后端/東西向網絡 (a cluster (back-side) network):連接 Ceph 各存儲節 The cluster (back-side) network handles OSD heartbeats, replication, backfilling and recovery traffic。也叫復制網絡,用來連接所有的集群節點,跟客戶端進行通信,客戶端進行復制數據,必須是萬兆網絡,否則會造成數據復制延時。
網絡原理圖:
三大集群
1、disk
2、osd daemon :幾十個到幾萬個,越多性能越高,disk越多,性能就會越高。
3、monitor daemon :奇數個
安裝一個monitor軟件,節點上有多個osd
原理圖:
cluster map:
1、mon map
2、osd map
3、pg map
4、crush map
六、算法
在paxos算法中,分為4種角色:
Proposer :提議者
Acceptor:決策者
Client:產生議題者
Learner:最終決策學習者
七、PG邏輯概念
rados:可靠的,自動的,分布式,對象存儲
特性:高效性,統一性(文件存儲,塊存儲,對象存儲),可擴展
cluster map :集群視圖, pool id 和 pd id 的映射關系
- pool(池):
1、pg
2、副本數
3、crush規則(pg--->osd:acting set)
4、用戶及權限(賬號密碼和權限)
- pool分兩種類型:
1、復制類型
2、糾錯碼類型 (1、速度慢 2、scrubling,不支持ceph的所有操作)
備注: PG會做垃圾清理操作(會開一個垃圾清理線程),編號就會是舊版本,通過hash校驗,另外一種方式:
- PG的概念:
epoach: 單調遞增的版本號
acting set: osd列表, 第一個為primary(主) osd, replicated(復制) osd列表
up set: acting set 過去的版本
pg tmp(臨時pg):一個主三個人,主掛掉,就會出現臨時的pg組
- PG的狀態:
ceph -s (zabbix監控一個pg的狀態,用的命令ceph -s)
creating :在磁盤上分發一個pg的信息給他,就會進入creating狀態
peering :找認識的組員,沒有拿到分發的數據(沒有拷貝數據給他)
active :找到組員,就會進入active狀態
clean :數據拷貝完成,就進入clean
stable(穩定的): 300s之內,狀態沒有返回
backfilling :新加osd節點(動態調整的狀態)
recovery: 增量拷貝
- osd daemon狀態:默認每2s匯報自己給mon( 同時監控組內其它osd狀態)
1、up:可以提供io
2、down:不能提供io
3、in:有數據
4、out :沒數據了,2s沒有匯報就從組內踢除掉他,就會進入backfilling(填充)
- PG產生的原理圖
八、ceph硬件要求
1、品牌、型號、容量統一即可、SAS接口硬件 300G或600G或更大容量硬盤,需要多塊
2、不用SSD
3、RAID1(兩塊),其它不做raid.