11.9. ceph-blustore-tool の使用


ceph-bluestore-tool は、BlueStore インスタンスに対して低レベルの管理操作を実行するユーティリティーです。

ceph-bluestore-tool では以下のコマンドを使用できます。

構文

ceph-bluestore-tool COMMAND [ --dev DEVICE … ] [ -i OSD_ID ] [ --path OSD_PATH ] [ --out-dir DIR ] [ --log-file | -l filename ] [ --deep ]

ceph-bluestore-tool fsck|repair --path OSD_PATH [ --deep ]

ceph-bluestore-tool qfsck --path OSD_PATH

ceph-bluestore-tool allocmap --path OSD_PATH

ceph-bluestore-tool restore_cfb --path OSD_PATH

ceph-bluestore-tool show-label --dev DEVICE …

ceph-bluestore-tool prime-osd-dir --dev DEVICE --path OSD_PATH

ceph-bluestore-tool bluefs-export --path OSD_PATH --out-dir DIR

ceph-bluestore-tool bluefs-bdev-new-wal --path OSD_PATH --dev-target NEW_DEVICE

ceph-bluestore-tool bluefs-bdev-new-db --path OSD_PATH --dev-target NEW_DEVICE

ceph-bluestore-tool bluefs-bdev-migrate --path OSD_PATH --dev-target NEW_DEVICE --devs-source DEVICE1 [--devs-source DEVICE2]

ceph-bluestore-tool free-dump|free-score --path OSD_PATH [ --allocator block/bluefs-wal/bluefs-db/bluefs-slow ]

ceph-bluestore-tool reshard --path OSD_PATH --sharding NEW_SHARDING [ --sharding-ctrl CONTROL_STRING ]

ceph-bluestore-tool show-sharding --path OSD_PATH

すべての BlueStore ブロックデバイスでは、デバイスの先頭に 1 つのブロックラベルがあります。ラベルの内容をダンプするには、以下を実行します。

ceph-bluestore-tool show-label --dev DEVICE

メインデバイスには、以前は OSD データディレクトリー内の小さなファイルに保存されていた情報を含め、多くのメタデータが含まれています。補助デバイス (db および wal) には、必要最小限のフィールド (OSD UUID、size、device type、birth time) のみがあります。

prime-osd-dir コマンドを使用して、BlueStore OSD を起動できる OSD データディレクトリーのコンテンツを生成します。

ceph-bluestore-tool prime-osd-dir --dev MAIN_DEVICE --path /var/lib/ceph/osd/ceph-ID

表11.2 ceph-bluestore-tool コマンド
コマンド説明

help

ヘルプを表示

fsck [--deep]

オプション: onoffyesno10、または truefalse。BlueStore メタデータの一貫性チェックを実行します。--deep が指定されている場合は、すべてのオブジェクトデータも読み取り、チェックサムを検証します。

repair

一貫性チェックを実行し、エラーがあれば修復します。

qfsck

アロケーターデータと ONodes の状態を比較して、BlueStore メタデータの一貫性チェックを実行します。アロケーターデータは、存在する場合は RocksDB CFB から取得され、存在しない場合は allocation-file が使用されます。

allocmap

qfsck によって実行されるチェックと同じチェックを実行し、新しい allocation-file を保存します。このコマンドはデフォルトでは無効になっており、特別なビルドが必要です。

restore_cfb

新しい NCB コードによって (ceph restart を使用して、または allocmap コマンドを実行して) 行われた変更を元に戻し、RocksDB B Column-Family (allocator-map) を復元します。

bluefs-export

BlueFS の内容を出力ディレクトリーにエクスポートします。

bluefs-bdev-sizes --path OSD_PATH

BlueFS が認識するデバイスサイズを stdout に出力します。

bluefs-bdev-expand --path OSD_PATH

BlueFS に、ブロックデバイスのサイズをチェックし、拡張されている場合は追加のスペースを使用するように指示します。十分な空き領域がある場合、BlueFS が作成した新しいファイルのみが指定したブロックデバイスに割り当てられ、低速デバイスにスピルオーバーした既存のファイルは、RocksDB がコンパクションを実行する際に徐々に削除される点に注意してください。つまり、低速デバイスにデータがスピルオーバーした場合、それは時間の経過とともに高速デバイスに移動されます。

bluefs-bdev-new-wal --path OSD_PATH --dev-target NEW_DEVICE

BlueFS に WAL デバイスを追加します。WAL デバイスがすでに存在する場合は失敗します。

bluefs-bdev-new-db --path OSD_PATH --dev-target NEW_DEVICE

BlueFS に DB デバイスを追加します。DB デバイスがすでに存在する場合は失敗します。

bluefs-bdev-migrate --dev-target NEW_DEVICE --devs-source DEVICE1 [--devs-source DEVICE2]

BlueFS データをソースデバイスからターゲットデバイスに移動します。成功すると、ソースデバイス (メインデバイスを除く) は削除されます。ターゲットデバイスは、すでに接続されているデバイスでも、新しいデバイスでもかまいません。後者の場合、ソースデバイスの 1 つを置き換えて OSD に追加されます。次の置換ルールが適用されます (優先される順に表示、一致するとそこで止まります)。(1) ソースリストに DB ボリュームがある場合、ターゲットデバイスがそれを置き換えます。(2) ソースリストに WAL ボリュームがある場合、ターゲットデバイスがそれを置き換えます。(3) ソースリストに低速ボリュームしかない場合、操作は許可されず、new-db/new-wal コマンドを実行して明示的に割り当てる必要があります。

show-label --dev DEVICE […]

デバイスラベルを表示します。

free-dump --path OSD_PATH [ --allocator block/bluefs-wal/bluefs-db/bluefs-slow ]

アロケーター内のすべての空きリージョンをダンプします。

free-score --path OSD_PATH [ --allocator block/bluefs-wal/bluefs-db/bluefs-slow ]

アロケーター内の断片化の品質を表す [0-1] の数値を指定します。0 は、すべての空き領域が 1 つのチャンク内にあることを表します。1 は、最悪の断片化を表します。

reshard --path OSD_PATH --sharding NEW_SHARDING [ --resharding-ctrl CONTROL_STRING ]

BlueStore の RocksDB のシャーディングを変更します。シャーディングは RocksDB 列ファミリーの上に構築されます。このオプションを使用すると、OSD を再デプロイすることなく、新しいシャーディングのパフォーマンスをテストできます。通常、リシャーディングは長いプロセスで、RocksDB キー空間全体を走査し、その一部を別の列ファミリーに移動することも含まれています。--resharding-ctrl オプションは、リシャーディングプロセスのパフォーマンスを制御します。リシャーディングが中断されると、OSD の実行が妨げられます。リシャーディングの中断によりデータが破損することはありません。以前のリシャーディングを続行することも、元のシャーディングスキームに戻すスキームを含め、他のシャーディングスキームを選択することもできます。リシャーディングの詳細は、BlueStore 管理ツールを使用して RocksDB データベースをリシャーディングするOSD を手動でリシャーディングする セクションを参照してください。

show-sharding --path OSD_PATH

BlueStore の RocksDB に現在適用されているシャーディングを表示します。

表11.3 ceph-bluestore-tool コマンドオプション
コマンドオプション説明

--dev DEVICE

対象デバイスのリストに デバイス を追加します。

-i OSD_ID

OSD OSD_ID として動作します。OSD 固有のオプションについてはモニターに接続します。モニターが利用できない場合は、代わりに --no-mon-config を追加して ceph.conf から読み取ります。

--devs-source DEVICE

移行のソースとして検討するデバイスのリストに デバイス を追加します。

--dev-target DEVICE

新しい DB/WAL を追加するため、ターゲット デバイスの移行操作、または追加するデバイスを指定します。

--path OSD_PATH

OSD パスを指定します。ほとんどの場合、デバイスリストは、osd パスに存在するシンボリックリンクから推測されます。これは通常、--dev を使用してデバイスを明示的に指定するよりも簡単です。-i osd_id が指定されている場合、このオプションは必要ありません。

--out-dir DIR

bluefs-export の出力ディレクトリー。

-l, --log-file LOG_FILE

ログを記録するファイル。

--log-level NUM

デバッグログレベル。デフォルトは 30 (非常に詳細)、20 はとても詳細、10 は詳細、1 はあまり詳細ではありません。

--deep

ディープスクラブ/修復 (メタデータだけでなく、オブジェクトデータに対しても読み取りと検証を実行)。

--allocator NAME

free-dump や free-score のアクションに役立ちます。アロケーターを選択します。

--resharding-ctrl CONTROL_STRING

リシャーディングプロセスを制御します。RocksDB イテレーターの更新頻度と、RocksDB にコミットする前のコミットバッチのサイズを指定します。オプション形式: <iterator_refresh_bytes>/<iterator_refresh_keys>/<batch_commit_bytes>/<batch_commit_keys>

デフォルト: 10000000/10000/1000000/1000

手順

  1. ceph-bluestore-tool を使用する前に OSD を停止します。

    構文

    ceph orch daemon stop osd.ID

    [ceph: root@host01 /]# ceph orch daemon stop osd.2

  2. OSD ノードから、ターゲット OSD コンテナーにログインします。

    構文

    cephadm shell --name osd.ID

    [ceph: root@host01 /]# ceph shell --name osd.2

  3. 必要なコマンドを実行します。

    [ceph: root@host01 /]# ceph-bluestore-tool bluefs-bdev-new-wal --dev-target /dev/test/newdb --path /var/lib/ceph/osd/ceph-0

    注記

    この例では、新しい wal デバイスを追加する方法を示します。

  4. cephadm シェルから OSD を再起動します。

    構文

    ceph orch daemon start osd.ID

    [ceph: root@host01 /]# ceph orch daemon start osd.2

関連情報

BlueStore 設定オプションの詳細は、BlueStore 設定オプション を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.