• 欢迎访问V小白网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入V小白 暂无QQ群
  • 欢迎访问V小白网站,这是第二个滚动条

如何在单节点 Ceph 中配置多数据副本

其他分类 admin 2019年6月28日 10:36 862 0 个评论

为了把这件事说清楚,我们需要了解 CRUSH map 一些具体规则,所以先来看一下默认的 CRUSH map。

$ ceph -s
...
  data:
    pools:   1 pools, 64 pgs
    objects: 0 objects, 0 bytes
    usage:   25001 MB used, 130 TB / 130 TB avail
    pgs:     64 active+undersized

2. 修改 CRUSH map

了解到问题所在,接下来就动手修改吧,CRUSH map 支持两种修改方式,一种是命令行,优点是单条命令很简单,缺点是不够直观;第二种是手动修改配置文件,优点是所见即所得,缺点是麻烦一点,需要先导出,解码,修改,最后再编码,导入。这里因为修改的内容颇为具体,所以采用第二种方法。

然后解码,并输出到文件 crush-map-decompiled 中。

$ crushtool -d crush-map -o crush-map-decompiled

将改好的文件编码到文件 crush-map 中。

$ crushtool -c crush-map-decompiled -o crush-map

不过事情没有那么简单,还需要配合 ceph.conf 的修改才行,我们要修改 osd_crush_chooseleaf_type
这个参数每个取值的意义在 Ceph 的官方文档中,有明确的说明,0 是给单节点的 ceph 集群使用的,而 1 是默认值,所以我们需要修改。

#Choose a reasonable crush leaf type.
#0 for a 1-node cluster.
#1 for a multi node cluster in a single rack
#2 for a multi node, multi chassis cluster with multiple hosts in a chassis
#3 for a multi node cluster with hosts across racks, etc.
osd crush chooseleaf type = {n}

4. 动态修改 ceph 配置

至此问题还是没有完全解决,原因是配置文件的变动需要,进程的重启才能生效,不重启有没有办法让改动生效呢?有的,需要使用的 ceph daemon 命令。

sudo ceph daemon mon.rbd-master1 config set osd_pool_default_size 0

V小白 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:如何在单节点 Ceph 中配置多数据副本
喜欢 (1)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到
0个小伙伴在吐槽