2.9. CRUSH マップの編集
通常、Ceph CLI を使用してランタイム時に CRUSH マップを変更すると、CRUSH マップを手動で編集する場合よりも便利です。ただし、デフォルトのバケットタイプの変更や straw2
以外のバケットアルゴリズムの使用など、編集を選択できます。
既存の CRUSH マップを編集するには、以下を実行します。
- CRUSH map の取得。
- CRUSH マップの逆コンパイル
- 1 つ以上のデバイス、バケット、およびルールを編集します。
- CRUSH マップのコンパイル
- CRUSH マップの設定
特定のプールの CRUSH マップルールを有効にするには、共通ルール番号を特定し、プールの作成時にそのプールのルール番号を指定します。
2.9.1. CRUSH マップの取得
クラスターの CRUSH マップを取得するには、以下を実行します。
構文
ceph osd getcrushmap -o COMPILED_CRUSHMAP_FILENAME
Ceph は、コンパイルされた CRUSH マップを指定したファイル名に出力 (-o) します。CRUSH マップはコンパイルフォームにあるため、これを編集する前に先にコンパイルする必要があります。
2.9.2. CRUSH マップの逆コンパイル
CRUSH マップをコンパイルするには、以下を実行します。
構文
crushtool -d COMPILED_CRUSHMAP_FILENAME -o DECOMPILED_CRUSHMAP_FILENAME
Ceph は、コンパイルされた CRUSH マップを逆コンパイル (-d) し、指定したファイル名に出力 (-o) を送信します。
2.9.3. CRUSH マップの設定
クラスターに CRUSH マップを設定するには、以下を実行します。
構文
ceph osd setcrushmap -i COMPILED_CRUSHMAP_FILENAME
Ceph は、クラスターの CRUSH マップとして指定したファイル名のコンパイル済み CRUSH マップを入力します。
2.9.4. CRUSH マップのコンパイル
CRUSH マップをコンパイルするには、以下を実行します。
構文
crushtool -c DECOMPILED_CRUSHMAP_FILENAME -o COMPILED_CRUSHMAP_FILENAME
Ceph は、コンパイルされた CRUSH マップを指定したファイル名に保存します。