问题描述:
在EC中有条带的概念,条带是编码的最小单位,在Ceph中也有stripe_width这个变量表示条带宽度,系统默认的条带宽度是4096,如果我现在想修改为8192,该怎么办呢?
解决方法:
使用参数:osd_pool_erasure_code_stripe_width
有三种方法来修改条带的宽度:
第一种方法:
这是一种永久性的方法,在config_opts.h文件中修改参数的值,重新编译后可以全局生效,且是永久的,例如:
OPTION(osd_pool_erasure_code_stripe_width, OPT_U32, 8192) // in bytes
第二种方式:
这也是一种永久性的方法,在ceph.conf文件中给参数赋值,这种永久性是基于本次配置文件的。修改方式:
在ceph.conf文件的“[global]” 项下加入:
osd pool erasure code stripe width = 8192
第三种方式:
这是一种临时的方式,使用asok文件来进行注入,再次启动集群后就恢复原样了。具体方式如下所示:
ceph tell osd.* injectargs ‘– osd_pool_erasure_code_stripe_width 8192’
//这里是对所有的osd都修改了 对于其它值 也可以针对某个osd进行修改
使用下面的命令查询修改后的值:
ceph daemon osd.1 config get osd_pool_erasure_code_stripe_width