本篇主要介绍convert这个工具
$ crush convert -h
usage: crush convert [-h] --in-path IN_PATH
[--in-format {txt,json,python-json,crush}] --out-path
OUT_PATH [--out-format {txt,json,python-json,crush}]
The Ceph crushmap can be stored in three formats:
- JSON, the output of *ceph osd crush dump* or *ceph report*
- txt, the output of *crushtool -d*
- binary, the output of *crushtool -c* or *ceph getcrushmap*
The JSON used is different from the python-crush format documented at
http://crush.readthedocs.io/en/latest/api.html#crush.Crush.parse.
It supports any of the existing Ceph formats and is
compatible with Luminous and below. It converts the
crushmap into the python-crush format and display the
result on the standard output.
optional arguments:
-h, --help show this help message and exit
--in-path IN_PATH path of the input file
--in-format {txt,json,python-json,crush}
format of the input file
--out-path OUT_PATH path of the output file
--out-format {txt,json,python-json,crush}
format of the output file
Examples:
Convert a Ceph JSON crushmap into a python-crush crushmap:
- crush convert --in-path crushmap-ceph.json --out-path crushmap.json
Convert a Ceph text crushmap into a python-crush crushmap:
- crush convert --in-path crushmap.txt --out-path crushmap.json
Convert a binary crushmap to python-crush crushmap:
- crush convert --in-path crushmap.bin --out-path crushmap.json
Convert a python-crush crushmap to Ceph text crushmap
- crush convert --in-path crushmap.json \
--out-path crushmap.json --out-format txt