前言
ceph的组件以及工作流程非常的复杂,是一个庞大的系统,在尝试ceph之前尽量多查阅官方的文档,理解ceph的mon/osd/mds/pg/pool等各组件/Unit的协同工作方式
Ceph官方文档
一、配置规划:
二、部署
1. ntp-server开启ntp服务:
1 | apt-get install ntp ntpdate ntp-doc |
2. ceph node
三台node全部执行如下操作:
磁盘分区规划如顶部表格,按照规划写的磁盘划分脚本,分别在3台node上执行脚本:
1 | # cat ~/parted.sh |
添加 /etc/hosts解析,并scp到3台node上:1
2
3192.168.20.112 h020112
192.168.20.113 h020113
192.168.20.114 h020114
关闭防火墙、selinux,添加定时同步时间计划任务:
1 | sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config |
1 | cd /etc/yum.repos.d |
在node1(192.168.20.112)上执行:
1 | wget https://download.ceph.com/rpm-kraken/el7/noarch/ceph-deploy-1.5.37-0.noarch.rpm |
查看结果:
1 | [root@h20112 ceph]# ceph osd tree |
自定义crush分布式调度规则:
ceph一共有如下层级的管理单位,从上到下层级依次提升,可以灵活地按照物理的逻辑粒度,将osd关联到不同的主机、机位、机架、pdu、机房、区域等管理单位,每一层级的整体权重值等于该层级下所有OSD的权重之和。
1 | type 0 osd |
自定义crush视图:
这里只写操作方法,不作实施,本次操作的环境硬盘数目、硬盘规格、主机位置均一致,暂时不作crush调整
1 | ceph osd crush add-bucket hnc root #添加root层级名为hnc的bucket |
修改配置文件,防止ceph自动更新crushmap1
2echo ‘osd_crush_update_on_start = false‘ >> /etc/ceph/ceph.conf
/etc/init.d/ceph restart
使用如下样例crash(map_new.txt)配置:
1 | -------------------------------------- |
将修改后的crushmap编译并且注入集群中
1 | crushtool -c map_new.txt -o map_new |