2026/4/18 11:42:09
网站建设
项目流程
网站建设设计风格如何与色彩搭配,贵阳工程建设招聘信息网站,建设网站如何选择服务器,南皮网站建设当集群系统变得复杂时#xff0c;我们往往需要多种策略来存放不同类型的数据#xff1b;例如#xff0c;将热数据存放于SSD中#xff0c;而将冷数据放在HDD中。CRUSH rule就是定义了一种选择策略#xff0c;Ceph中每个逻辑池都必须对应一条合法的rule才能正常工作。还是以…当集群系统变得复杂时我们往往需要多种策略来存放不同类型的数据例如将热数据存放于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副本的池均可采用此条ruleLine 6-9: 具体的选择步骤take: 直接选中一项item一般用于指定选择算法的起点本例中名为default的root类型bucket即为起点chooseleaf firstn 0 type host: 选择策略这个是重点后面细述emit: 返回结果1: choose/chooseleafchoose表示选择结果类型为故障域由4指定chooseleaf表示在确定故障域后还必须选出该域下面的OSD节点即leaf2: firstn/indepfirstn: 适用于副本池选择结果中repreplica指一份副本或者EC中的一个分块下同位置无明显意义indep: 适用于EC池选择结果中rep位置不可随意变动举例来说副本池中每份副本保存的是完全相同的数据因此选择结果为[0, 1, 2]数字代表OSD编号与[0, 2, 1]并无大的不同。但是EC池不一样在21的配比下前两份是数据块最后一份是校验块后两份rep位置一交换就会导致数据出错。3: num_reps这个整数值指定需要选择的rep数目可以是正值负值或0。正整数值即代表要选择的副本数非常直观0表示的是与实际逻辑池的size相等也就是说如果2副本池用了这个rule0就代表了2如果3副本池用了此rule0就相当于3负整数值代表与实际逻辑池size的差值如果3副本池使用此rule将该值设为了-1那边该策略只会选择出2个reps4: failure domain指定故障域类型CRUSH确保同一故障域最多只会被选中一次。step take default step choose firstn3typehost step choose firstn1typeosd step emit新增的一步会在上述基础上再以每个选中的host为起点在host下选择1个OSD。另一个更方便的方案是