翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Linux 用の NVMe/TCP のプロビジョニング
FSx for ONTAP は、TCP (NVMe/TCP) ブロックストレージプロトコルによる非揮発性メモリエクスプレスをサポートしています。NVMe/TCP では、ONTAP CLI を使用して名前空間とサブシステムをプロビジョニングし、LUN のプロビジョニング方法や iSCSI のイニシエータグループ (igroup) へのマッピング方法と同様に、名前空間をサブシステムにマッピングします。NVMe/TCP プロトコルは、高可用性 (HA) ペアが 6 つ以下の第 2 世代ファイルシステムで使用できます。
注記
FSx for ONTAP ファイルシステムは、iSCSI と NVMe/TCP ブロックストレージプロトコルの両方で SVM の iSCSI エンドポイントを使用します。
Amazon FSx for NetApp ONTAP で NVMe/TCP を設定するプロセスには、主に 3 つのステップがあります。これらのステップについては、次の手順で説明します。
Linux ホストの NVMe クライアントをインストールおよび設定します。
ファイルシステムの SVM で NVMe を設定します。
NVMe 名前空間を作成します。
NVMe サブシステムを作成します。
名前空間をサブシステムにマッピングします。
クライアント NQN をサブシステムに追加します。
Linux クライアントに NVMe デバイスをマウントします。
[開始する前に]
ファイルシステムを NVMe/TCP に設定するプロセスを開始する前に、次の項目を完了しておく必要があります。
FSx for ONTAP ファイルシステムを作成します。詳細については、「ファイルシステムの作成」を参照してください。
Red Hat Enterprise Linux (RHEL) 9.3 を実行する EC2 インスタンスをファイルシステムと同じ VPC に作成します。これは、NVMe を設定し、NVMe/TCP for Linux を使用してファイルデータにアクセスする NVMe ホストです。
これらの手順の範囲を超えて、ホストが別の VPC にある場合は、VPC ピアリングまたは を使用して、ボリュームの iSCSI エンドポイントへのアクセス権 AWS Transit Gateway を他の VPCs に付与できます。詳細については、「デプロイ用の VPC の外部からのデータへのアクセス」を参照してください。
Amazon VPC によるファイルシステムアクセスコントロール で説明されているように、インバウンドトラフィックとアウトバウンドトラフィックを許可するように Linux ホストの VPC セキュリティグループを設定します。
ONTAP CLI へのアクセスに使用する
fsxadmin
権限を持つ ONTAP ユーザーの認証情報を取得します。詳細については、「ONTAP ロールとユーザー」を参照してください。NVMe 向けに設定し、FSx for ONTAP ファイルシステムにアクセスするために使用する Linux ホストは、同じ VPC と AWS アカウントにあります。
EC2インスタンスはファイルシステムの優先サブネットと同じアベイラビリティーゾーンにあることをお勧めします。
EC2 インスタンスが RHEL 9.3 とは異なる Linux AMI を実行している場合、これらの手順や例で使用されるユーティリティの一部がすでにインストールされている可能性があり、異なるコマンドを使用して必要なパッケージをインストールできます。パッケージのインストールを除いて、このセクションで使用されるコマンドは他の EC2 Linux AMI で有効です。
Linux ホストに NVMe をインストールして設定する
NVMe クライアントをインストールするには
-
SSH クライアントを使用して Linux インスタンスに接続します。詳細については、「SSH を使用して Linux または macOS から Linux インスタンスに接続する」を参照してください。
-
次のコマンドを使用して
nvme-cli
をインストールします。~$
sudo yum install -y nvme-cli -
nvme-tcp
モジュールをホストにロードします。$
sudo modprobe nvme-tcp
-
次のコマンドを使用して、Linux ホストの NVMe 修飾名 (NQN) を取得します。
$
cat /etc/nvme/hostnqn
nqn.2014-08.org.nvmexpress:uuid:9ed5b327-b9fc-4cf5-97b3-1b5d986345d1
後のステップで使用するレスポンスを記録します。
FSx for ONTAP ファイルシステムで NVMe を設定する
ファイルシステムで NVMe を設定するには
NVMe デバイス (複数可) を作成する予定の FSx for ONTAP ファイルシステムの NetApp ONTAP CLI に接続します。
ONTAP CLI にアクセスするには、次のコマンドを実行して、Amazon FSx for NetApp ONTAP ファイルシステムの管理ポートで SSH セッションを確立します。
をファイルシステムの管理ポートの IP アドレスに置き換えます。management_endpoint_ip
[~]$
ssh fsxadmin@
management_endpoint_ip
詳細については、「ONTAP CLI を使用したファイルシステムの管理」を参照してください。
-
NVMe インターフェイスへのアクセスに使用する SVM に新しいボリュームを作成します。
::>
vol create -vserver fsx -volume nvme_vol1 -aggregate aggr1 -size 1t
[Job 597] Job succeeded: Successful
vserver nvme namespace create
NetApp ONTAP CLI コマンドを使用して NVMe 名前空間 ns_1
を作成します。名前空間はイニシエータ (クライアント) にマッピングされ、どのイニシエータ (クライアント) が NVMe デバイスにアクセスできるかを制御します。::>
vserver nvme namespace create -vserver fsx -path /vol/nvme_vol1/ns_1 -size 100g -ostype linux
Created a namespace of size 100GB (107374182400).
-
vserver nvme subsystem create
NetApp ONTAP CLI コマンドを使用して NVMe サブシステムを作成します。 ~$
vserver nvme subsystem create -vserver fsx -subsystem sub_1 -ostype linux
-
作成したサブシステムに名前空間をマッピングします。
::>
vserver nvme subsystem map add -vserver fsx -subsystem sub_1 -path /vol/nvme_vol1/ns_1
以前に取得した NQN を使用して、クライアントをサブシステムに追加します。
::>
vserver nvme subsystem host add -subsystem sub_1 -host-nqn nqn.2014-08.org.nvmexpress:uuid:ec21b083-1860-d690-1f29-44528e4f4e0e -vserver fsx
このサブシステムにマッピングされたデバイスを複数のホストで使用できるようにする場合は、コンマ区切りのリストで複数のイニシエーター名を指定できます。詳細については、NetApp ONTAP Docs の「vserver nvme サブシステムホスト追加
」を参照してください。 -
vserver nvme namespace show
コマンドを使用して、名前空間が存在することを確認します。 ::>
vserver nvme namespace show -vserver fsx -instance
Vserver Name: fsx Namespace Path: /vol/nvme_vol1/ns_1 Size: 100GB Size Used: 90.59GB OS Type: linux Comment: Block Size: 4KB State: online Space Reservation: false Space Reservations Honored: false Is Read Only: false Creation Time: 5/20/2024 17:03:08 Namespace UUID: c51793c0-8840-4a77-903a-c869186e74e3 Vdisk ID: 80d42c6f00000000187cca9 Restore Inaccessible: false Inconsistent Filesystem: false Inconsistent Blocks: false NVFail: false Node Hosting the Namespace: FsxId062e9bb6e05143fcb-01 Volume Name: nvme_vol1 Qtree Name: Mapped Subsystem: sub_1 Subsystem UUID: db526ec7-16ca-11ef-a612-d320bd5b74a9 Namespace ID: 00000001h ANA Group ID: 00000001h Vserver UUID: 656d410a-1460-11ef-a612-d320bd5b74a9 Vserver ID: 3 Volume MSID: 2161388655 Volume DSID: 1029 Aggregate: aggr1 Aggregate UUID: cfa8e6ee-145f-11ef-a612-d320bd5b74a9 Namespace Container State: online Autodelete Enabled: false Application UUID: - Application: - Has Metadata Provisioned: true 1 entries were displayed.
network interface show -vserver
コマンドを使用して、NVMe デバイスを作成した SVM のブロックストレージインターフェイスのアドレスを取得します。 ::>
network interface show -vserver
svm_name
-data-protocol nvme-tcpLogical Status Network Current Current Is Vserver Interface Admin/Oper Address/Mask Node Port Home ----------- ---------- ---------- ------------------ ------------- ------- ----
svm_name
iscsi_1 up/up 172.31.16.19/20 FSxId0123456789abcdef8-01 e0e true iscsi_2 up/up 172.31.26.134/20 FSxId0123456789abcdef8-02 e0e true 2 entries were displayed.注記
iscsi_1
LIF は iSCSI と NVMe/TCP の両方に使用されます。この例では、iscsi_1 の IP アドレスは 172.31.16.19、iscsi_2 は 172.31.26.134 です。
Linux クライアントに NVMe デバイスをマウントする
Linux クライアントに NVMe デバイスをマウントするプロセスには、次の 3 つのステップがあります。
NVMe ノードの検出
NVMe デバイスのパーティション分割
クライアントへの NVMe デバイスのマウント
これらについては、以下の手順で説明します。
ターゲット NVMe ノードを検出するには
Linux クライアントで、次のコマンドを使用して、ターゲット NVMe ノードを検出します。
をiscsi_1_IP
iscsi_1
の IP アドレスに、
をクライアントの IP アドレスに置き換えます。client_IP
注記
iscsi_1
およびiscsi_2
LIFsは、iSCSI ストレージと NVMe ストレージの両方に使用されます。~$
sudo nvme discover -t tcp -w
client_IP
-aiscsi_1_IP
Discovery Log Number of Records 4, Generation counter 11 =====Discovery Log Entry 0====== trtype: tcp adrfam: ipv4 subtype: current discovery subsystem treq: not specified portid: 0 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.656d410a146011efa612d320bd5b74a9:discovery traddr: 172.31.26.134 eflags: explicit discovery connections, duplicate discovery information sectype: none =====Discovery Log Entry 1====== trtype: tcp adrfam: ipv4 subtype: current discovery subsystem treq: not specified portid: 1 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.656d410a146011efa612d320bd5b74a9:discovery traddr: 172.31.16.19 eflags: explicit discovery connections, duplicate discovery information sectype: none
-
(オプション) ファイル NVMe デバイスに対して Amazon EC2 単一クライアントの最大 5 Gbps (~625 MBps) よりも高いスループットを実現するには、Linux インスタンス用 Amazon Elastic Compute Cloud ユーザーガイドの「Amazon EC2 インスタンスのネットワーク帯域幅」に記載されている手順に従って、追加のセッションを確立します。
-
コントローラ損失タイムアウトが 1800 秒以上のターゲットイニシエータにログインします。この場合も、
のiscsi_1_IP
iscsi_1
の IP アドレスと
のクライアントの IP アドレスを使用します。NVMe デバイスは使用可能なディスクとして表示されます。client_IP
~$
sudo nvme connect-all -t tcp -w
client_IP
-aiscsi_1
-l 1800 次のコマンドを使用して、NVMe スタックが複数のセッションを識別してマージし、マルチパスを設定済みであることを確認します。設定が正常に完了すると、コマンドが
Y
を返します。~$
cat /sys/module/nvme_core/parameters/multipath
Y次のコマンドを使用して、NVMe-oF 設定
model
がNetApp ONTAP Controller
に設定され、使用可能なすべてのパスで I/O を分散するために、各 ONTAP 名前空間の負荷分散iopolicy
がround-robin
に設定されていることを確認します。~$
cat /sys/class/nvme-subsystem/nvme-subsys*/model
Amazon Elastic Block Store NetApp ONTAP Controller
~$
cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicy
numa round-robin
次のコマンドを使用して、名前空間が作成され、ホストで正しく検出されていることを確認します。
~$
sudo nvme list
Node Generic SN Model Namespace Usage Format FW Rev --------------------- --------------------- -------------------- ---------------------------------------- ---------- -------------------------- ---------------- -------- /dev/nvme0n1 /dev/ng0n1 vol05955547c003f0580 Amazon Elastic Block Store 0x1 25.77 GB / 25.77 GB 512 B + 0 B 1.0 /dev/nvme2n1 /dev/ng2n1 lWB12JWY/XLKAAAAAAAC NetApp ONTAP Controller 0x1 107.37 GB / 107.37 GB 4 KiB + 0 B FFFFFFFF
出力の新しいデバイスは
/dev/nvme2n1
です。この命名スキームは、Linux のインストールによって異なる場合があります。各パスのコントローラの状態がライブで、適切な非対称名前空間アクセス (ANA) マルチパスステータスであることを確認します。
~$
nvme list-subsys /dev/nvme2n1
nvme-subsys2 - NQN=nqn.1992-08.com.netapp:sn.656d410a146011efa612d320bd5b74a9:subsystem.rhel hostnqn=nqn.2014-08.org.nvmexpress:uuid:ec2a70bf-3ab2-6cb0-f997-8730057ceb24 iopolicy=round-robin \ +- nvme2 tcp traddr=172.31.26.134,trsvcid=4420,host_traddr=172.31.25.143,src_addr=172.31.25.143 live non-optimized +- nvme3 tcp traddr=172.31.16.19,trsvcid=4420,host_traddr=172.31.25.143,src_addr=172.31.25.143 live optimized
この例では、NVMe スタックはファイルシステムの代替 LIF、
iscsi_2
、172.31.26.134 を自動的に検出しました。-
NetApp プラグインが各 ONTAP 名前空間デバイスに正しい値を表示していることを確認します。
~$
sudo nvme netapp ontapdevices -o column
Device Vserver Namespace Path NSID UUID Size ---------------- ------------------------- -------------------------------------------------- ---- -------------------------------------- --------- /dev/nvme2n1 fsx /vol/nvme_vol1/ns_1 1 0441c609-3db1-4b0b-aa83-790d0d448ece 107.37GB
デバイスをパーティション分割するには
-
次のコマンドを使用して、device_name
nvme2n1
へのパスが存在することを確認します。~$
ls /dev/mapper/nvme2n1
/dev/nvme2n1
fdisk
を使用してディスクをパーティション分割します。インタラクティブなプロンプトを入力します。表示されている順序でオプションを入力します。最後のセクター (この例では20971519
) よりも小さい値を使用して、複数のパーティションを作成できます。注記
Last sector
値は、NVMe デバイスのサイズ (この例では 100 GiB) によって異なります。~$
sudo fdisk /dev/mapper/nvme2n1
fsdisk
インタラクティブプロンプトが起動します。Welcome to fdisk (util-linux 2.37.4). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0x66595cb0. Command (m for help):
n
Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p):
p
Partition number (1-4, default 1):
1
First sector (256-26214399, default 256): Last sector, +sectors or +size{K,M,G,T,P} (256-26214399, default 26214399):
20971519
Created a new partition 1 of type 'Linux' and of size 100 GiB. Command (m for help):
w
The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
w
を入力すると、新しいパーティション/dev/nvme2n1
が使用可能になります。partition_name
の形式は<device_name>
<partition_number>
です。前のステップのfdisk
コマンドのパーティション番号として、1
が使用されました。-
パスとして
/dev/nvme2n1
を使用してファイルシステムを作成します。~$
sudo mkfs.ext4 /dev/nvme2n1
システムは次の出力でレスポンスします。
mke2fs 1.46.5 (30-Dec-2021) Found a dos partition table in /dev/nvme2n1 Proceed anyway? (y,N)
y
Creating filesystem with 26214400 4k blocks and 6553600 inodes Filesystem UUID: 372fb2fd-ae0e-4e74-ac06-3eb3eabd55fb Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Allocating group tables: done Writing inode tables: done Creating journal (131072 blocks): done Writing superblocks and filesystem accounting information: done
Linux クライアントに NVMe をマウントするには
-
Linux インスタンスのファイルシステムのマウントポイントとしてディレクトリ
directory_path
を作成します。~$
sudo mkdir /
directory_path
/mount_point
-
次のコマンドを使用してファイルシステムをマウントします。
~$
sudo mount -t ext4 /dev/nvme2n1 /
directory_path
/mount_point
-
(オプション) マウントディレクトリの特定のユーザーに所有権を付与する場合は、
を所有者のユーザー名に置き換えます。username
~$
sudo chown
username
:username
/directory_path
/mount_point
-
(オプション) ファイルシステムとの間でデータの読み取りと書き込みができることを確認します。
~$
echo "Hello world!" > /
directory_path
/mount_point
/HelloWorld.txt~$
cat
directory_path
/HelloWorld.txtHello world!
これで、Linux クライアントに NVMe デバイスが正常に作成されてマウントされました。