4、ceph-crush进阶
一、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 df

weight表示设备(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
可按需修改后导回到集群,慎重。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)