版权声明:本文为博主原创文章,可以转载但必须注明出处。 https://blog.csdn.net/nirendao/article/details/80684950
参考文献:
http://docs.ceph.com/docs/master/rados/operations/crush-map-edits/
原来,在一个Ceph集群的CRUSH Map中,hosts都叫做 node-1, node-2, node-3, 现在想把它们都重新命名为 c12-node1, c12-node2, c12-node3.
Step 1. 获得CRUSH Map
ceph osd getcrushmap -o 1.file
以上命令将crush map输出到1.file. 注意,这个1.file是一个二进制文件,还不能编辑。
Step 2. 反编译crushmap文件
crushtool -d 1.file -o 1.txt
以上命令将1.file反编译为文本文件1.txt.
Step 3. 编辑反编译的文本文件
vim 1.txt
将其中所有的node-1更新为 c12-node1 , 依次类推。
Step 4. 编译文本文件为crushmap文件
crushtool -c 1.txt -o 1.new
以上命令以1.txt为基础,编译出1.new这个crushmap文件。
Step 5. 设置crush map
ceph osd setcrushmap -i 1.new
以上命令根据1.new这个crushmap文件来设置新的crush map.
最后,验证一下:
ceph osd crush tree
会发现,原来叫做node-1,node-2,node-3的hosts都更名为 c12-node1, c12-node2, c12-node3 了。