第11章 BlueStore
BlueStore は OSD デーモンのバックエンドオブジェクトストアであり、オブジェクトをブロックデバイスに直接配置します。
重要
BlueStore は、本番環境で OSD デーモン向けに高パフォーマンスのバックエンドを提供します。デフォルトでは、BlueStore はセルフチューニングするように設定されています。BlueStore を手動でチューニングした方が環境のパフォーマンスが良いと判断された場合は、Red Hat サポート に連絡して設定の詳細を共有し、自動チューニングのケイパビリティーを改善する支援を受けるようにしてください。Red Hat は、フィードバックをお待ちしており、お客様の提案に感謝いたします。
11.1. Ceph BlueStore
以下は、BlueStore を使用する主な機能の一部です。
- ストレージデバイスの直接管理
- BlueStore は raw ブロックデバイスまたはパーティションを使用します。これにより、XFS などのローカルファイルシステムなど、抽象化の層が回避され、パフォーマンスの制限や複雑さの増加が発生する可能性があります。
- RocksDB を使用したメタデータ管理
- BlueStore は、ディスク上の場所をブロックするオブジェクト名からのマッピングなど、内部メタデータの管理に RocksDB のキーと値データベースを使用します。
- 完全なデータおよびメタデータのチェックサム
- デフォルトでは、BlueStore に書き込まれたすべてのデータおよびメタデータは、1 つ以上のチェックサムによって保護されます。検証せずにディスクから読み取られたり、ユーザーに返されたデータやメタデータはありません。
- インライン圧縮
- データは、ディスクに書き込まれる前に圧縮できます。
- 効率的なコピーオンライト
- Ceph Block Device および Ceph File System のスナップショットは、BlueStore に効率的に実装されるコピーオンライトのクローンメカニズムに依存します。これにより、通常のスナップショットと、効率的な 2 フェーズコミットを実装するためにクローン作成に依存するイレイジャーコーディングプールの両方で効率的な I/O が実現します。
- 大きな二重書き込みなし
- BlueStore は、まずブロックデバイス上の未割り当ての領域に新しいデータを書き込み、次にディスクの新しい領域を参照するためにオブジェクトのメタデータを更新する RocksDB トランザクションをコミットします。書き込み操作が設定可能なサイズしきい値を下回る場合にのみ、書き込み優先ジャーナリング方式にフォールバックします。
- マルチデバイスのサポート
- BlueStore は、複数のブロックデバイスを使用して異なるデータを保存できます。たとえば、データ用のハードディスクドライブ (HDD)、メタデータ用のソリッドステートドライブ (SSD)、不揮発性メモリー (NVM) や不揮発性ランダムアクセスメモリー (NVRAM)、RocksDB のライトアヘッドログ (WAL) 用の永続メモリーなどです。詳細は、Ceph BlueStore デバイス を参照してください。
- ブロックデバイスの効率的な使用方法
- BlueStore はファイルシステムを使用しないため、ストレージデバイスキャッシュを削除する必要が最小限に抑えられます。
- 割り当てメタデータ
-
割り当てメタデータは RocksDB のスタンドアロンオブジェクトを使用しなくなりました。割り当て情報は、RocksDB にすでに保存されているシステム内の全 onode の集約割り当て状態から推測できます。BlueStore V3 コードは、割り当て時に RocksDB の更新をスキップし、
umount
中にすべての OSD 割り当て状態でアロケーターオブジェクトの完全なステージを実行します。これにより、IOPS が 25% になり、ランダム書き込みのワークロードが小さくなり、レイテンシーが短縮されます。ただし、割り当てメタデータを再作成するためにすべての onode を繰り返し処理する必要があるため、通常はリカバリー時間が数分長くなります。 - キャッシュの age bin
- Red Hat Ceph Storage は、さまざまなキャッシュ内の項目を「age bins」に関連付け、すべてのキャッシュ項目の想定的な有効期限が表示されます。