2.9. 编辑 CRUSH map
通常,使用 Ceph CLI 修改 CRUSH map 比手动编辑 CRUSH map 更方便。但是,有时您可能需要对其进行编辑,如更改默认存储桶类型,或使用 straw2 以外的存储桶算法。
编辑现有的 CRUSH map:
- 获取 CRUSH map.
- 解译 CRUSH map。
- 至少编辑其中一个设备,以及 bucket 和规则。
- 编译 CRUSH map
- 设置 CRUSH map.
若要激活特定池的 CRUSH map 规则,可识别常见的规则编号,并在创建池时指定池的规则编号。
2.9.1. 获取 CRUSH map 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
要获取集群的 CRUSH 映射,请执行以下操作:
语法
ceph osd getcrushmap -o COMPILED_CRUSHMAP_FILENAME
ceph osd getcrushmap -o COMPILED_CRUSHMAP_FILENAME
Ceph 会将已编译的 CRUSH map 输出到您指定的文件名。由于 CRUSH map 采用编译的形式,您必须先编译它,然后才能编辑它。
2.9.2. 解译 CRUSH map 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
要解译 CRUSH map,请执行以下操作:
语法
crushtool -d COMPILED_CRUSHMAP_FILENAME -o DECOMPILED_CRUSHMAP_FILENAME
crushtool -d COMPILED_CRUSHMAP_FILENAME -o DECOMPILED_CRUSHMAP_FILENAME
Ceph 将编译的 CRUSH map 解译(-d),并将输出(-o)发送到您指定的文件名。
2.9.3. 设置 CRUSH map 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
要为集群设置 CRUSH 映射,请执行以下操作:
语法
ceph osd setcrushmap -i COMPILED_CRUSHMAP_FILENAME
ceph osd setcrushmap -i COMPILED_CRUSHMAP_FILENAME
Ceph 输入您指定为集群 CRUSH map 的文件名的编译 CRUSH map。
2.9.4. 编译 CRUSH map 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
要编译 CRUSH map,请执行以下操作:
语法
crushtool -c DECOMPILED_CRUSHMAP_FILENAME -o COMPILED_CRUSHMAP_FILENAME
crushtool -c DECOMPILED_CRUSHMAP_FILENAME -o COMPILED_CRUSHMAP_FILENAME
Ceph 会将编译的 CRUSH map 存储到您指定的文件名。