9.ceph crush进阶
ceph 集群中由mon服务器维护的五种运行图:
Monitor map #监视器运行图
OSD map #OSD运行图
PG map #PG运行图
Crush map #(Controllers replication under scalable hashing) #可控的、可复制的、可伸缩的一致性hash算法。
crush运行图,当新建存储池时会基于OSD map创建出新的PG组合列表用于存储数据
MDS map #cephfs metadata运行图
obj --> pg hash(old)%pg=pgid
Obj --> OSD crush根据当前的mon运行图返回pg内的最新的OSD组合,数据即可开始往主的写然后往副本OSD同步
crush算法针对目的节点的选择:
目前有5种算法实现节点的选择,包括Uniform、List、Tree、Straw、Straw2,早期版本使用的是ceph项目的发起者发明的算法straw,目前已经发展到straw2版本。
9.1 PG与OSD映射调整
默认情况下crush算法自行对创建的pool中的PG分配OSD,但是可以手动基于权重设置crush算法分配数据的倾向性,比如1T的磁盘权重是去,2T的就是2,推荐使用相同大小的设备。
9.1.1 查看当前状态
weight 表示设备(device)的容量相对值,比如1TB对应1.00,那么500G的OSD的weight就应该是0.5,weight是基于磁盘空间分配PG的数量