一、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(oid)%pg=pgid Obj -> OSD crush根据当前的mon运行图返回pg内的最新的OSD组合。数据即可开始往主的写然后往副本OSD同步 crush算法针对目的节点的选择: 目前有5种算法来实现节点的选择,包括Uniform、ListTree、Straw、Straw2,早期版本使用的是ceph 项目的发起者发明的算straw,日前已经发展到 straw2版本。1、PG与OSD映射调整
默认情况下,crush算法自行对创建的pool中的PG分配OSD。但是可以手动基于权重设置crush算法分配数据的倾向性,比如1T的磁盘权重是1,2T的就是2,推荐使用相同大小的设备。 # 查看当前状态root@node1:~# ceph osd dfweight表示设备(device)的容量相对值,比如1TB对应1.00,那么500G的OSD的weight 就应该是0.5。weight是基于磁盘空间分配PG的数量,让crush算法尽可能往破盘空间大的OSD多分配PG,往磁盘空间小的OSD分配较少的 PG。 Reweight参数的目的是重新平衡ceph 的CRUSH算法随机分配的PG,默认的分配是概率上的均衡,即使OSD都是一的磁盘空间也会产生些PG分布不均匀的情况,此时可以通过调整reweight参数,让ceph集群立即重新平衡当前磁盘的PG,以达到数据均街分布的目的,REWEIGHT是PG已经分配完成,要在 ceph集群重新平衡PG的分布。 #调整weight,立即生效,pg迁移
root@node1:~# ceph osd crush reweight osd.0 0.003 root@node1:~# ceph osd crush -h#调整reweight
root@node1:~# ceph osd reweight 1 0.9导出运行图并转换为文本文件
root@node1:~# ceph osd getcrushmap -o /tmp/crushmap root@node1:~# apt install ceph-base root@node1:~# crushtool -d /tmp/crushmap > /tmp/crushmap.txt可按需修改后导回到集群,慎重。 标签:crush,进阶,运行图,ceph,PG,node1,OSD From: https://www.cnblogs.com/cmxu/p/17978625