Ceph是一个开源的分布式文件系统。因为它还支持块存储、对象存储,所以很自然的被用做云计算框架openstack或cloudstack整个存储后端。当然也可以单独作为存储,例如部署一套集群作为对象存储、SAN存储、NAS存储等。
机器规划
节点名称
外网IP
内网IP
磁盘容量
ceph-node-1-171
192.168.10.171
172.16.1.171
10G 挂载到opt下
ceph-node-2-172
192.168.10.172
172.16.1.172
10G
ceph-node-3-173
192.168.10.173
172.16.1.173
系统环境
基础优化
安装ceph
yum makecache刷新缓存
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CN1EGOzADOwQmMmVGOhhjZ0gTZmVTO3ImYmRzN3UTNh9CXyAzLcdDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL0M3Lc9CX6MHc0RHaiojIsJye.png)
创建工作目录
创建新的集群 集群外部网络地址 集群内部网络地址 将node-1部署为moniter
初始化mon
将node-1节点作为管理节点
lsblk 查看磁盘
需要在加入到节点查看磁盘名称
部署moniter 高可用集群
部署moniter集群基本是奇数数量3、5、7个的数量,会自动仲裁选举管理节点
查看monter状态
直接将节点加入到集群
RBD块设备
公有云上可称为裸设备,可以进行格式化、分区等操作,但是不建议分区
可进行扩容和进行快照
可以随着使用的空间进行慢慢扩容,最大一个块设备可以支持到16EB,支持切片,可快照,可快速克隆,支持云解决方案,支持灾难恢复
pools资源池
创建资源池,包含有64个pgp
查看更多类型字段可以使用帮助进行查看
调度算法
可以根据自己的需求进行调整副本数量
可以根据自己的需求进行调整pg数量,注意也需要调整pgp
创建设备
查看创建的块的详细信息
删除已经创建的块设备
挂载前需要将创建时候的默认特性去除掉,不然会报错
查看特性
去除特性
查看去除特性的结果
rbd -p ceph-demo info rbd-demo.img
挂载设备并查看设备挂载的名称
rbd map ceph-demo/rbd-demo.img
rbd device list
挂载完成后就可以进行分区格式化这些操作
挂载完成后就可以正常的读写操作了
查看设备名称及容量大小后进行扩容
设备扩容后需要在磁盘分区中也进行扩容才会在系统显示扩容后的容量
需要注意,resize2fs 只对ext2/3/4文件系统有效,对xfs文件系统无效
rbd resize ceph-demo/rbd-demo-1.img --size 20G
每个数据写入都会被切割成集群数量的分数进行存储,保证数据的高可用性
一个对象会切割成多个objects,每个都是4M大小
objects会落在不同的pg上
验证objects落在不同的pg上
测试写入数据,实时监控写入增长情况
由97增长到354个
watch -n 1 'rados -p ceph-demo ls | grep rbd_data.134a3db15f91 | wc -l'
代表会自动去生成容量文件,但是不能超出限定的块设备容量大小
ceph警告排查
ceph -s # 列出告警
ceph health detail # 查看告警信息详细内容
如果出现其他的告警
查看某个时间的详情
systemctl status ceph-mgr@node-1
删除误报的告警进行打包
ceph -s && ceph health detail #就看到会正常了