翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Linux 用 NVMeのTCPプロビジョニング
FSx for は、 TCP (NVMe/TCP) ブロックストレージプロトコルを介した不揮発性メモリエクスプレスONTAPをサポートします。NVMe/ ではTCP、 を使用して名前空間とサブシステムONTAPCLIをプロビジョニングし、その名前空間をサブシステムにマッピングします。これは、i のイニシエータグループ (igroups) にLUNsプロビジョニングおよびマッピングする方法と同様ですSCSI。NVMe/TCP プロトコルは、高可用性 (HA) ペア が 6 つ以下の第 2 世代ファイルシステムで使用できます。
注記
FSx for ONTAP ファイルシステムでは、iSCSI と NVMe/ SVMTCP ブロックストレージプロトコルの両方に の iSCSI エンドポイントを使用します。
Amazon FSx for で NVMe/TCP を設定するには NetApp ONTAP、主に 3 つのステップがあります。これらのステップについては、次の手順で説明します。
Linux ホストにNVMeクライアントをインストールして設定します。
ファイルシステムの NVMeで を設定しますSVM。
NVMe 名前空間を作成します。
NVMe サブシステムを作成します。
名前空間をサブシステムにマッピングします。
クライアントをサブシステムNQNに追加します。
Linux クライアントにNVMeデバイスをマウントします。
開始する前に
ファイルシステムを NVMe/ に設定するプロセスを開始する前にTCP、次の項目を完了する必要があります。
ONTAP ファイルシステムの FSx を作成します。詳細については、「ファイルシステムの作成」を参照してください。
Red Hat Enterprise Linux (RHEL) 9.3 を実行するEC2インスタンスをファイルシステムVPCと同じ に作成します。これは Linux 用 NVMe/TCP を使用してファイルデータを設定NVMeしてアクセスする Linux ホストです。
これらの手順の範囲を超えて、ホストが別の にある場合はVPC、VPCピアリングまたは を使用して、ボリュームの iSCSI エンドポイントへの他のVPCsアクセス AWS Transit Gateway を許可できます。詳細については、「デプロイの外部からデータにアクセスする VPC」を参照してください。
の説明に従って、インバウンドトラフィックとアウトバウンドトラフィックを許可するように Linux ホストVPCのセキュリティグループを設定しますAmazon によるファイルシステムのアクセスコントロール VPC。
へのアクセスに使用する
fsxadmin
権限を持つONTAPユーザーの認証情報を取得しますONTAPCLI。詳細については、「ONTAP ロールとユーザー」を参照してください。FSx ONTAP ファイルシステムの にアクセスするために設定NVMeし、使用する Linux ホストは、同じ VPCと にあります AWS アカウント。
EC2 インスタンスは、ファイルシステムの優先サブネットと同じアベイラビリティーゾーンに配置することをお勧めします。
EC2 インスタンスが 9.3 AMIとは異なる Linux RHEL を実行している場合、これらの手順や例で使用されているユーティリティの一部が既にインストールされている可能性があり、別のコマンドを使用して必要なパッケージをインストールできます。パッケージのインストールを除き、このセクションで使用されるコマンドは他の EC2 Linux で有効ですAMIs。
Linux ホストNVMeに をインストールして設定する
NVMe クライアントをインストールするには
-
SSH クライアントを使用して Linux インスタンスに接続します。詳細については、「 を使用して Linux または macOS から Linux インスタンスに接続するSSH」を参照してください。
-
次のコマンドを使用して
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
後のステップで使用するレスポンスを記録します。
ONTAP ファイルシステムの FSx NVMeで を設定する
NVMe ファイルシステムで を設定するには
NVMe デバイスを作成する予定の NetApp ONTAPCLIFSxONTAPファイルシステムの に接続します (複数可)。
にアクセスするには NetApp ONTAPCLI、次のコマンドを実行して、Amazon FSx for NetApp ONTAP ファイルシステムの管理ポートで SSH セッションを確立します。
をファイルシステムの管理ポートの IP アドレスに置き換えます。management_endpoint_ip
[~]$
ssh fsxadmin@
management_endpoint_ip
詳細については、「CLI ONTAP を使用したファイルシステムの管理」を参照してください。
-
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 コマンド ns_1
を使用してNVMe名前空間を作成します。名前空間はイニシエータ (クライアント) にマッピングされ、どのイニシエータ (クライアント) が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
このサブシステムにマッピングされたデバイスを複数のホストで使用できるようにする場合は、カンマ区切りのリストで複数のイニシエータ名を指定できます。詳細については、「 Docs」の「 vserver nvme サブシステムホストの追加
NetApp ONTAP」を参照してください。 -
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 Gb/秒 (~625 MB/秒) よりも高いスループットを実現するには、Linux EC2インスタンス用 Amazon Elastic Compute Cloud ユーザーガイドの「Amazon インスタンスのネットワーク帯域幅」に記載されている手順に従って、追加のセッションを確立します。
-
コントローラーの損失タイムアウトが 1,800 秒以上のターゲットイニシエータにログインし、再度
iscsi_1
の IP アドレスを使用します。
および のクライアントの IP アドレスiscsi_1_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名前空間round-robin
の負荷分散iopolicy
が に設定されていることを確認します。~$
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デバイスをマウントするには
-
ディレクトリを作成する
directory_path
を Linux インスタンス上のファイルシステムのマウントポイントとして使用します。~$
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デバイスが正常に作成およびマウントされました。