第 5 章 NVDIMM 永続メモリーストレージの使用
5.4. NVDIMM アクセスモード
NVDIMM 名前空間で、以下のいずれかのモードを使用するように設定できます。
sector
ストレージを高速ブロックデバイスとして示します。このモードは、NVDIMM ストレージを使用す るように変更されていない従来のアプリケーションや、デバイスマッパーを含む完全な I/O スタッ クを利用するアプリケーションに役に立ちます。
セクター
セクターデバイスは、システム上のその他のブロックデバイスと同じ方法で使用できます。そこで はパーティションやファイルシステムを作成し、ソフトウェア RAID セットの一部として作成した
り、dm-cache のキャッシュデバイスとして使用できます
このモードのデバイスは、/dev/pmemNs で利用できます。名前空間の作成後に一覧表示される blockdev 値を参照してください。
devdax またはデバイスダイレクトアクセスまたはデバイスダイレクトアクセス (DAX)
「Storage Networking Industry Association (SNIA) 非揮発性メモリー (NVM) プログラミングモデル 仕様」で説明されているように、NVDIMM デバイスがダイレクトアクセスプログラミングに対応し ます。このモードでは、I/O はカーネルのストレージスタックを回避します。したがって、デバイス マッパードライバーは使用できません。
デバイス DAX は、DAX キャラクターデバイスノードを使用して NVDIMM ストレージへの raw アク
セスを提供します。CPU キャッシュのフラッシュ命令とフェンシング命令を使用して、devdax デ バイスのデータを作成できます。特定のデータベースおよび仮想マシンのハイパーバイザーは、こ のモードの利点を得られます。devdax デバイスにファイルシステムを作成することはできません。
このモードのデバイスは、/dev/daxN.M で利用できます。名前空間の作成後に一覧表示される
このモードのデバイスは、/dev/daxN.M で利用できます。名前空間の作成後に一覧表示される chardev 値を参照してください。
fsdax またはファイルシステムダイレクトアクセスまたはファイルシステムダイレクトアクセス (DAX)
「Storage Networking Industry Association (SNIA) 非揮発性メモリー (NVM) プログラミングモデル 仕様」で説明されているように、NVDIMM デバイスがダイレクトアクセスプログラミングに対応し ます。このモードでは、I/O はカーネルのストレージスタックを回避するため、多くのデバイスマッ パードライバーが使用できなくなります。
ファイルシステム DAX デバイスにファイルシステムを作成できます。
このモードのデバイスは、/dev/pmemN で利用できます。名前空間の作成後に一覧表示される blockdev 値を参照してください。
重要 重要
ファイルシステムの DAX テクノロジーはテクノロジープレビューとしてのみ提供さ れるため、Red Hat では対応していません。
raw
DAX に対応していないメモリーディスクを示します。このモードでは、名前空間にいくつかの制限 があるため、使用すべきではありません。
このモードのデバイスは、/dev/pmemN で利用できます。名前空間の作成後に一覧表示される blockdev 値を参照してください。
5.5. ブロックデバイスとして動作する NVDIMM 上のセクター名前空間の作
成
従来のブロックベースのストレージをサポートするため、レガシーモードレガシーモードというセクターモードで
NVDIMM デバイスを設定できます。
次のいずれかになります。
既存の名前空間をセクターモードに再設定
新規セクター名前空間を作成 (利用可能な領域がある場合)
前提条件 前提条件
NVDIMM デバイスがシステムに接続されている。
5.5.1. ndctl のインストール
この手順では、NVDIMM デバイスの設定および監視に使用する ndctl ユーティリティーをインストール します。
手順 手順
ndctl ユーティリティーをインストールするには、次のコマンドを使用します。
# yum install ndctl
5.5.2. 既存の NVDIMM 名前空間のセクターモードへの再設定
この手順では、高速ブロックデバイスとして使用する NVDIMM 名前空間をセクターモードに再構成し ます。
警告 警告
名前空間を再設定すると、名前空間に保存しておいたすべてのデータが削除されま す。
前提条件 前提条件
ndctl ユーティリティーがインストールされている。「ndctl のインストール」を参照してくだ
さい。
手順 手順
1. 選択した名前空間をセクターモードに再設定します。
# ndctl create-namespace \ --force \
--reconfig=namespace-ID \ --mode=sector
例
例5.1 セクターモードでのセクターモードでの namespace1.0 の再設定の再設定 セクター
セクターモードを使用するために namespace1.0 名前空間を再設定するには、次のコマン ドを実行します。
# ndctl create-namespace \ --force \
--reconfig=namespace1.0 \ --mode=sector
{
"dev":"namespace1.0", "mode":"sector",
"size":"11.99 GiB (12.87 GB)",
"uuid":"5805480e-90e6-407e-96a4-23e1cde2ed78", "raw_uuid":"879d9e9f-fd43-4ed5-b64f-3bcd0781391a", "sector_size":4096,
"blockdev":"pmem1s", "numa_node":1 }
2. 再設定した名前空間は、/dev/pmemNs として /dev ディレクトリーで利用できるようになりま す。
関連情報 関連情報
man ページの ndctl-create-namespace(1)
5.5.3. セクターモードでの新たな NVDIMM 名前空間の作成
以下の手順では、NVDIMM デバイスで新しいセクター名前空間を作成し、従来のブロックデバイスと して使用できるようにします。
前提条件 前提条件
ndctl ユーティリティーがインストールされている。「ndctl のインストール」を参照してくだ
さい。
NVDIMM デバイスがラベルに対応している。
手順 手順
1. 利用可能な領域があるシステムの pmem リージョンの一覧を表示します。以下の例で は、region5 リージョンと region4 リージョンの領域が利用できます。
# ndctl list --regions [
{
"dev":"region5", "size":270582939648,
"available_size":270582939648, "type":"pmem",
"iset_id":-7337419320239190016 },
{
"dev":"region4", "size":270582939648,
"available_size":270582939648, "type":"pmem",
"iset_id":-137289417188962304 }
]
2. いずれのリージョンでも、複数の名前空間を割り当てます。
# ndctl create-namespace \ --mode=sector \ --region=regionN \ --size=namespace-size
例
例5.2 リージョンへの名前空間の作成リージョンへの名前空間の作成
以下のコマンドは、region4 に 36 GiB セクターの名前空間を作成します。
# ndctl create-namespace \ --mode=sector \ --region=region4 \
--size=36G
3. 新しい名前空間が、/dev ディレクトリー配下の /dev/pmemNs として利用できます。
関連情報 関連情報
man ページの ndctl-create-namespace(1)