一、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.