news 2026/4/23 11:09:20

ceph中的crush map

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ceph中的crush map

当集群系统变得复杂时,我们往往需要多种策略来存放不同类型的数据;例如,将热数据存放于SSD中,而将冷数据放在HDD中。CRUSH rule就是定义了一种选择策略,Ceph中每个逻辑池都必须对应一条合法的rule才能正常工作。还是以上面链接中的crushmap为例,分析一下rule的具体含义。

1rule replicated_ruleset{2ruleset03typereplicated4min_size15max_size106step take default7step chooseleaf firstn0typehost8step emit9}
  • Line 1-2: rule的名称和编号
  • Line 3: rule类型;replicated代表适用于副本池,erasure代表适用于EC池
  • Line 4-5: rule适用的池size大小;本例表示1副本到10副本的池均可采用此条rule
  • Line 6-9: 具体的选择步骤
    • take: 直接选中一项item,一般用于指定选择算法的起点;本例中名为default的root类型bucket即为起点
    • chooseleaf firstn 0 type host: 选择策略,这个是重点,后面细述
    • emit: 返回结果

<1>: choose/chooseleaf

  • choose表示选择结果类型为故障域(由<4>指定)
  • chooseleaf表示在确定故障域后,还必须选出该域下面的OSD节点(即leaf)

<2>: firstn/indep

  • firstn: 适用于副本池,选择结果中rep(replica,指一份副本或者EC中的一个分块,下同)位置无明显意义
  • indep: 适用于EC池,选择结果中rep位置不可随意变动

举例来说,副本池中每份副本保存的是完全相同的数据,因此选择结果为[0, 1, 2](数字代表OSD编号)与[0, 2, 1]并无大的不同。但是EC池不一样,在2+1的配比下前两份是数据块,最后一份是校验块,后两份rep位置一交换就会导致数据出错。

<3>: num_reps

这个整数值指定需要选择的rep数目,可以是正值负值或0。

  • 正整数值即代表要选择的副本数,非常直观
  • 0表示的是与实际逻辑池的size相等;也就是说,如果2副本池用了这个rule,0就代表了2;如果3副本池用了此rule,0就相当于3
  • 负整数值代表与实际逻辑池size的差值;如果3副本池使用此rule将该值设为了-1,那边该策略只会选择出2个reps

<4>: failure domain

指定故障域类型;CRUSH确保同一故障域最多只会被选中一次。

step take default step choose firstn3typehost step choose firstn1typeosd step emit

新增的一步会在上述基础上,再以每个选中的host为起点,在host下选择1个OSD。另一个更方便的方案是:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 17:45:20

服务器数据恢复—Raid5阵列热备盘上线同步数据失败如何恢复数据?

服务器数据恢复环境&故障&#xff1a; 华为某型号服务器&#xff0c;中有一组由24块硬盘组建的raid5阵列&#xff0c;其中一块盘为热备盘。 服务器raid5阵列中一块硬盘离线&#xff0c;热备盘激活后开始同步数据&#xff0c;在同步数据过程中又有一块硬盘离线&#xff0c;服…

作者头像 李华
网站建设 2026/4/23 10:48:04

19、Awk编程:数组操作与实用程序开发

Awk编程:数组操作与实用程序开发 1. 日期处理与数组索引 在处理日期输入时,如果输入解析失败,我们会认为输入无效并退出程序。若成功解析输入, date[1] 会包含月份的数字。不过在使用 date[1] 作为数组 month 的索引之前,需要对其进行类型转换,通过加 0 来实现。…

作者头像 李华
网站建设 2026/4/13 20:39:01

20、Awk函数全解析:从算术到字符串处理

Awk函数全解析:从算术到字符串处理 1. 函数概述 函数是一种自包含的计算单元,它接受若干参数作为输入并返回一个值。Awk拥有两类内置函数:算术函数和字符串函数,同时也支持用户自定义函数,这使得我们可以通过编写自己的函数来扩展内置函数的功能。 2. 算术函数 Awk中有…

作者头像 李华
网站建设 2026/4/19 12:15:55

文献学期末论文写作指南:理论方法与实践技巧研究

你是不是也这样&#xff1a;下载的PDF堆满文件夹&#xff0c;想找的时候死活记不住名字&#xff1b;读文献时灵感一闪&#xff0c;回头却找不到记在哪了&#xff1b;写论文时&#xff0c;调整一个引用格式就要折腾半小时…文献管理不是小事&#xff0c;它直接决定了你的研究效率…

作者头像 李华
网站建设 2026/4/23 10:46:56

XLeRobot YOLO集成终极指南:机器人视觉控制完整实战

还在为机器人如何精准识别物体并实现智能控制而困惑吗&#xff1f;这场技术探索将带你从零开始&#xff0c;掌握XLeRobot与YOLO物体检测的无缝集成技术。通过本指南&#xff0c;你将解锁机器人视觉感知与机械臂控制的完整能力阶梯&#xff0c;实现从基础检测到智能跟随的全面进…

作者头像 李华
网站建设 2026/4/23 10:48:48

【量子计算调度革命】:为什么90%的团队都忽略了Agent的协同决策机制?

第一章&#xff1a;量子计算调度革命的背景与挑战随着量子计算硬件的快速发展&#xff0c;传统经典计算中的任务调度机制已难以满足量子处理器独特的运行需求。量子比特的相干时间短、门操作顺序敏感以及测量塌缩等特性&#xff0c;使得任务调度不仅需要考虑执行效率&#xff0…

作者头像 李华