3.7. RADOS ブロックデバイス (RBD)
librbd
SSD ベースの永続的なライトバックキャッシュがレイテンシーを削減し、完全にサポートされるようになりました。
このリリースでは、pwl_cache
librbd プラグインが、SSD デバイスを対象としたログ構造のライトバックキャッシュを提供します。PMEM デバイスを対象とした、すでに提供されているログ構造のライトバックキャッシュと同様に、イメージへの更新はバッチ処理され、順番にフラッシュされ、実際のイメージはクラッシュコンシステント状態に保持されます。利点と使用例は変わりませんが、ユーザーはそれらを利用するために高価な PMEM デバイスを調達する必要がなくなりました。
librbd の librbd compare-and-write 操作が改善され、新しい rbd_aio_compare_and_writev
API メソッドが導入されました。
librbd compare-and-write C++ API のセマンティクスが C API のセマンティクスと一致するようになりました。
以前のリリースは、compare-and-write C++ API、つまり
Image::compare_and_write
メソッドとImage::aio_compare_and_write
メソッドは、比較バッファーのサイズまで比較していました。これにより、ストライプユニットの境界をまたぐと破損が発生する可能性があります。今回のリリースでは、compare-and-write C++ API は C API のセマンティクスと一致し、それぞれのバッファーが大きい場合でも、比較ステップと書き込みステップの両方が
len
バイトでのみ動作します。compare-and-write 操作は 512 バイトのセクターに制限されなくなりました。
今回のリリースでは、アクセスが適切に調整されている場合に、compare-and-write はストライプユニット上で動作できます。ストライプ単位はデフォルトで 4 MB です。
新しい
rbd_aio_compare_and_writev
API メソッドが利用できるようになりました。今回のリリースでは、比較バッファーと書き込みバッファーの両方で scatter/gather をサポートするための
rbd_aio_compare_and_writev
API メソッドが組み込まれており、既存のrbd_aio_readv
およびrbd_aio_writev
メソッドを補完します。
階層化されたクライアント側暗号化がサポートされるようになりました。
今回のリリースでは、クローンイメージをそれぞれ独自の暗号化形式とパスフレーズで暗号化できるので、それらが親イメージとは異なる可能性があります。フォーマットされていない通常のクローンイメージに使用される、効率的な copy-on-write セマンティクスは保持されます。