10.8. Ceph BlueStore BlueFS
BlueStore ブロックデータベースは、メタデータを RocksDB データベースのキーと値のペアとして格納します。ブロックデータベースは、ストレージデバイス上の小さな BlueFS パーティションに存在します。BlueFS は、RocksDB ファイルを保持するように設計された最小限のファイルシステムです。
BlueFS ファイル
RocksDB が生成するファイルには、次の 3 種類があります。
-
CURRENT、IDENTITY、MANIFEST-000011などの制御ファイル。 -
004112.sstなどの DB テーブルファイル。 -
000038.logなどの先読みログ。
さらに、ディレクトリー構造、ファイルマッピング、および操作ログとして機能する、BlueFS リプレイログ ino 1 として機能する内部の隠しファイルがあります。
フォールバック階層
BlueFS を使用すると、任意のファイルを任意のデバイスに配置できます。ファイルの一部は、WAL、DB、SLOW などの異なるデバイスに存在する場合もあります。BlueFS がファイルを置く場所には順序があります。ファイルは、1 次ストレージがなくなってから 2 次ストレージに、2 次ストレージがなくなってから 3 次ストレージに配置されます。
特定のファイルの順序は次のとおりです。
- ログ先行書き込み: WAL、DB、SLOW
-
リプレイログ
ino 1: DB、SLOW 制御および DB ファイル: DB、SLOW
スペース不足時の制御と DB ファイルの順序: SLOW
重要制御および DB ファイルの順序には例外があります。RocksDB は、DB ファイルのスペースが不足していることを検出すると、ファイルを SLOW デバイスに配置するように直接通知します。
10.8.1. bluefs_buffered_io 設定の表示 リンクのコピーリンクがクリップボードにコピーされました!
ストレージ管理者は、bluefs_buffered_io パラメーターの現在の設定を表示できます。
Red Hat Ceph Storage では、オプション bluefs_buffered_io はデフォルトで True に設定されます。このオプションにより、場合によっては BlueFS はバッファー読み取りを実行できるようになり、カーネルページキャッシュが RocksDB ブロック読み取りなどの読み取りのセカンダリーキャッシュとして機能できるようになります。
bluefs_buffered_io の値を変更することは推奨されません。bluefs_buffered_io パラメーターを変更する前に、Red Hat サポートアカウントチームにお問い合わせください。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Monitor ノードへの root レベルのアクセス。
手順
Cephadm シェルにログインします。
例
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
bluefs_buffered_ioパラメーターの現在値は、3 つの方法で表示することができます。
方法 1
設定データベースに保存されている値を表示します。
例
[ceph: root@host01 /]# ceph config get osd bluefs_buffered_io
[ceph: root@host01 /]# ceph config get osd bluefs_buffered_ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow
方法 2
特定の OSD の設定データベースに保存されている値を表示します。
構文
ceph config get OSD_ID bluefs_buffered_io
ceph config get OSD_ID bluefs_buffered_ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph config get osd.2 bluefs_buffered_io
[ceph: root@host01 /]# ceph config get osd.2 bluefs_buffered_ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow
方法 3
実行値が設定データベースに保存されている値と異なる OSD の実行値を表示します。
構文
ceph config show OSD_ID bluefs_buffered_io
ceph config show OSD_ID bluefs_buffered_ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph config show osd.3 bluefs_buffered_io
[ceph: root@host01 /]# ceph config show osd.3 bluefs_buffered_ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow
10.8.2. Ceph OSD の Ceph BlueFS 統計の表示 リンクのコピーリンクがクリップボードにコピーされました!
bluefs stats コマンドを使用して、コロケーションされた Ceph OSD およびコロケーションされていない Ceph OSD に関する BluesFS 関連情報を表示します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- オブジェクトストア が BlueStore として設定されている。
- OSD ノードへのルートレベルのアクセス。
手順
Cephadm シェルにログインします。
例
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow BlueStore OSD 統計を表示します。
構文
ceph daemon osd.OSD_ID bluefs stats
ceph daemon osd.OSD_ID bluefs statsCopy to Clipboard Copied! Toggle word wrap Toggle overflow コロケーションされた OSD の例
[ceph: root@host01 /]# ceph daemon osd.1 bluefs stats 1 : device size 0x3bfc00000 : using 0x1a428000(420 MiB) wal_total:0, db_total:15296836403, slow_total:0
[ceph: root@host01 /]# ceph daemon osd.1 bluefs stats 1 : device size 0x3bfc00000 : using 0x1a428000(420 MiB) wal_total:0, db_total:15296836403, slow_total:0Copy to Clipboard Copied! Toggle word wrap Toggle overflow コロケーションされていない OSD の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
0: これは専用の WAL デバイス、つまりblock.walを参照します。1: これは、専用の DB デバイス、つまりblock.dbを指します。2: これは、blockまたはslowであるメインブロックデバイスを指します。device size: デバイスの実際のサイズを表します。using: 総使用量を表します。これは BlueFS に限定されません。注記DB および WAL デバイスは、BlueFS によってのみ使用されます。メインデバイスの場合には、保存された BlueStore データからの使用も含まれます。上記の例では、
2.3 MiBが BlueStore からのデータです。wal_total、db_total、slow_total: これらの値は、上記のデバイスの値を繰り返します。db_avail: この値は、必要に応じて SLOW デバイスから取得できるバイト数を表します。使用マトリックス-
WAL、DB、SLOWの行: 特定のファイルが配置される予定だった場所を記述します。 -
LOGの行: BlueFS リプレイログino 1について記述します。 -
WAL、DB、SLOWの列: データが実際に置かれる場所を記述します。値は割り当て単位です。WAL と DB は、パフォーマンス上の理由上、割り当ての単位が大きくなっています。 -
*/*の列:ceph-bluestore-toolに使用される仮想デバイスnew-dbおよびnew-walに関連します。常に0 Bと表示されます。 -
REALの列: 実際の使用量をバイト単位で示します。 -
FILESの列: ファイルの数を示します。
-
MAXIMUMS: このテーブルは、使用マトリックスから各エントリーの最大値を取得します。