目录
ceph的组件和功能
ceph的数据读写流程
ceph存储池学习
ceph的组件和功能
Ceph OSD:功能是存储数据,处理数据的复制、恢复、平衡数据分布,并将一些相关数据提供给Ceph Monitor,。
Ceph Monitor: 功能是维护整个集群健康状态,提供一致性的决策,包含了Monitor map、OSD map、PG(Placement Group)map和CRUSH map。
Ceph MDS:功能是保存的是Ceph文件系统的元数据。Ceph MDS为基于POSIX文件系统的用户提供一些基础命令。例如:ls、find等命令
ceph的数据读写流程
数据首先通过客户端,先在本地完成寻址,将数据切片变为object,然后找出存储该object的一组osd,该组osd包含三个osd,其中分为一个主osd和其他的osd,然后先和主osd进行通信,再接着和其他的osd通信,当其他的osd已经完成请求后,会先向主osd发送确认,主osd也完成自己的操作后,向客户端回送确认。
ceph存储池学习
首先配置环境,部署好最少三个节点,一个客户端的ceph集群,部署成功后进行下列检查,弹出HEALTH_OK则配置成功。
[root@node4 ~]# ceph health
HEALTH_OK
创建一个存储池,存储池的名称为testpool
[root@node4 ~]# ceph osd pool create testpool 128 # 创建命令,指定PG值为128
pool 'testpool' created
[root@node4 ~]# ceph osd lspools # 查看此时存储池信息
1 device_health_metrics
2 rbd
3 testpool
上传一个对象到testpool存储池,对象的名称为testobject
[root@node4 ~]# ceph osd pool application enable testpool testpool
enabled application 'testpool' on pool 'testpool'
[root@node4 ~]# rados put testobject joshua.txt -p testpool
[root@node4 ~]# rados ls -p testpool
testobject
创建一个RBD的名称为testimage的image,大小为100M
[root@node4 ~]# rbd create testpool/testimage --image-feature layering --size 100M
[root@node4 ~]# rbd -p testpool ls
testimage
将testimage映射为块设备
[root@node4 ~]# rbd map testpool/testimage --id admin
/dev/rbd1
删除testpool存储池(ceph不支持,所以需要开启这个删除功能)
[root@node4 ~]# ceph osd pool delete testpool testpool --yes-i-really-really-mean-it
[root@node4 ~]# ceph osd lspools
1 device_health_metrics
2 rbd
[root@node4 ~]#