ZFSのメタデータ専用キャッシュを有効化する

こんにちは、コミュニティのみなさん。

QTS hero には「SSDキャッシュ」オプションがあります。内部的には、これは一般的に ZFS の L2arc と呼ばれるしくみを利用しています。

ここでは、HDDプールを1台のSSDでリードキャッシュとしてサポートしているイメージです。

「全てのI/O」か「ランダムI/O」を選択できます。「ランダムI/O」を選ぶと、しきい値が発生します。要求サイズがあるkB数を超えるとHDDから読み取り、そうでない場合はSSDから読み取ります。

なぜZFSの「メタデータのみ」フラグを活用できるオプションがないのでしょうか?

メタデータのみキャッシュの仕組み:

ファイルの全内容をキャッシュするのではなく、ZFSやファイルのメタデータだけをキャッシュします。例えばフォルダ構造の閲覧はSSDだけで高速に行えます。ファイルを開く場合、SSDにはHDD上のデータ位置情報があり、HDDは実際のデータのみを配信します。

メタデータの検索は小さなランダムI/Oなので、メタデータキャッシュによる効果はかなり高いです。

実際のデータをキャッシュしないことで、ストレージディスクの容量を大幅に節約できます。SSDキャッシュは、プール全体サイズの100分の1程度でも十分です。それでもプールの全メタデータは保持できます。また、データを書き込まないためSSDの消耗も下がります。SSDがいっぱいになることがないため、「古い」けれどまだ有効なキャッシュが失われることもありません。長期間アクセスしていないディレクトリでも、素早く閲覧できます。

この機能はすでにシステムで動作しており、手動でL2ARCをメタデータのみモードに切り替えれば普通に使えます。

みなさんのご意見をお聞かせください。

BR

Florian Aigner

ご提案ありがとうございます!このリクエストは社内の担当チームに回して、調査してもらいます。