2.9. 编辑 CRUSH map
通常,使用 Ceph CLI 修改 CRUSH map 比手动编辑 CRUSH map 更方便。但是,在有些情况下,您可以选择编辑它,如更改默认存储桶类型,或使用 straw2
以外的存储桶算法。
编辑现有 CRUSH map:
- 获取 CRUSH map.
- 解译 CRUSH map.
- 至少编辑其中一个设备,以及存储桶和规则。
- 编译 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 将输出(-o)编译的 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 解译(-d)编译的 CRUSH map,并将输出(-o)发送到您指定的文件名。
2.9.3. 设置 CRUSH map 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
要为集群设置 CRUSH 映射,请执行以下操作:
语法
ceph osd setcrushmap -i COMPILED_CRUSHMAP_FILENAME
ceph osd setcrushmap -i COMPILED_CRUSHMAP_FILENAME
Ceph 输入您指定为集群的 CRUSH 映射的文件名的编译 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 存储到您指定的文件名。