2.9. CRUSH マップの編集

通常、Ceph CLI を使用してランタイム時に CRUSH マップを変更すると、CRUSH マップを手動で編集する場合よりも便利です。ただし、デフォルトのバケットタイプの変更や straw2 以外のバケットアルゴリズムの使用など、編集を選択できます。

既存の CRUSH マップを編集するには、以下を実行します。

  1. CRUSH map の取得
  2. CRUSH マップの逆コンパイル
  3. 1 つ以上のデバイス、バケット、およびルールを編集します。
  4. CRUSH マップのコンパイル
  5. 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 マップを指定したファイル名に保存します。