18.7. NVDIMM でのファイルシステム DAX 名前空間の作成
システムに接続されている NVDIMM デバイスをファイルシステム DAX モードで設定して、ダイレクトアクセス機能を備えたファイルシステムをサポートします。
これを行うには、次の選択肢を検討してください。
- ファイルシステムの DAX モードに既存の名前空間を再設定する。
- 新しいファイルシステムの DAX 名前空間を作成する (利用可能な領域がある場合)。
18.7.1. ファイルシステムの直接アクセスモードの NVDIMM リンクのコピーリンクがクリップボードにコピーされました!
NVDIMM デバイスがファイルシステムダイレクトアクセス (ファイルシステム DAX、fsdax) モードで設定されている場合、その上にファイルシステムを作成できます。このファイルシステムのファイルで mmap() 操作を実行するアプリケーションは、ストレージに直接アクセスします。これにより、NVDIMM 上のプログラミングモデルに直接アクセスできます。
次の新しい -o dax オプションが利用できるようになりました。必要に応じて、ファイル属性を介して直接アクセスの動作を制御できます。
-o dax=inodeこれは、ファイルシステムのマウント時に dax オプションを指定しない場合のデフォルトオプションです。このオプションを使用すると、ファイルに属性フラグを設定して、dax モードをアクティブにできるかどうかを制御できます。必要に応じて、個々のファイルにこのフラグを設定できます。
このフラグをディレクトリーに設定することもでき、そのディレクトリー内のすべてのファイルが同じフラグで作成されます。この属性フラグは、
xfs_io -c 'chattr +x'directory-name コマンドを使用して設定できます。-o dax=never-
このオプションを使用すると、dax フラグが
inodeモードに設定されていても、dax モードは有効になりません。これは、inode ごとの dax 属性フラグが無視され、このフラグが設定されたファイルは直接アクセスが有効にならないことを意味します。 -o dax=alwaysこのオプションは、古い
-o daxの動作と同等です。このオプションを使用すると、dax 属性フラグに関係なく、ファイルシステム上の任意のファイルに対して直接アクセスモードを有効にできます。警告今後のリリースでは、
-o daxがサポートされなくなる可能性があります。必要に応じて、代わりに-o dax=alwaysを使用できます。このモードでは、すべてのファイルが直接アクセスモードになる可能性があります。- ページごとのメタデータ割り当て
このモードでは、システム DRAM または NVDIMM デバイス自体でページごとのメタデータを割り当てる必要があります。このデータ構造のオーバーヘッドは、4 KiB ページごとに 64 バイトです。
- 小さいデバイスでは、問題なく DRAM に収まるのに十分なオーバーヘッド量があります。たとえば、16 GiB の名前空間では、ページ構造に必要なのは 256 MiB だけです。NVDIMM デバイスは通常小さくて高価であるため、ページトラッキングデータ構造を DRAM に格納することが推奨されます。
テラバイト以上のサイズの NVDIMM デバイスの場合は、ページトラッキングデータ構造の格納に必要なメモリーの量がシステム内の DRAM の量を超える可能性があります。NVDIMM の 1 TiB に対して、ページ構造だけで 16 GiB が必要です。したがって、このような場合には、NVDIMM 自体にデータ構造を保存することが推奨されます。
名前空間の設定時に
--mapオプションを使用して、ページごとのメタデータを保存する場所を設定できます。-
システム RAM に割り当てるには、
--map=memを使用します。 -
NVDIMM に割り当てるには、
--map=devを使用します。