ceph之rados设计原理与实现:crush算法

执行命令

shell 复制代码
ceph osd crush dump

可以查看当前集群crush信息

其中会输出可调crush参数"tunables"、规定的若干规则"rules"、以及crush map。

这些规则"rules"可以与存储池绑定,针对特定存储池执行自制的crush算法映射。

"crushmap"包含了数据中心、机架、主机、osd等整个拓扑结构,除了osd都是虚拟的,并且记录了每个osd的weight和reweight,weight和reweight直接影响了随机哈希算法结果,但是由于crush是随机的,所以调整weight、reweight并不能精确控制pg在osd上的分布。

"tunables"大多数参数都不建议调整,如果选不出足够的样本数,那么应该调大全局重试次数,但显然这会增加哈希计算时间。

以上针对crush可以的参数调整,都会导致pg在osd迁移已达到数据分布均衡,但是为了在线平衡不影响业务的性能,每次调整都应该先模拟测试效果,并且做到多次微调。

调整crush只有两个目标,一个是增加crush计算效率,另一个就是数据负载均衡。针对数据重平衡,ceph有reweight、weight-set、umap、balancer。balancer依赖前三种工具,计算osd空间利用率的方差构建评分系统,既可以针对整个集群也可以针对存储池独占的osd,实现自动的评估系统评分,然后决定什么时候调整以及调整多少合适,从而代替了人工实现了自动化。因为针对上述参数的调整都是需要人工干预,都是多次微调实际非常麻烦,并且实际生产环境ceph扩容或者故障导致的pg自动迁移非常频繁,每次pg迁移后之前的调整都付之东流,因此自动化调整应运而生。

相关推荐
一名路过的小码农1 天前
ceph 18.2.4二次开发,docker镜像制作
ceph·docker·容器
墨水\\5 天前
分布式----Ceph应用(下)
分布式·ceph
大G哥5 天前
基于K8S1.28.2实验rook部署ceph
java·ceph·云原生·容器·kubernetes
石兴稳6 天前
Ceph PG(归置组)的状态说明
ceph
石兴稳6 天前
Ceph层次架构分析
ceph
活老鬼6 天前
Ceph分布式存储
linux·运维·服务器·分布式·ceph
石兴稳8 天前
Ceph client 写入osd 数据的两种方式librbd 和kernel rbd
linux·ceph
石兴稳8 天前
Ceph的pool有两种类型
ceph
运维小文8 天前
ceph的集群管理
ceph·对象存储·存储·ceph集群管理·ceph节点管理
石兴稳9 天前
iSCSI 和SCSI的概述
ceph