Amazon FSx for NetApp ONTAP ファイルシステムを Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスにマウントしたいと考えています。不揮発性メモリエクスプレス (NVMe) を TCP (NVMe/TCP) 経由で使用したいです。
解決策
注: 次の解決策は、Red Hat Enterprise Linux (RHEL) 9.3 を実行する EC2 インスタンスに適用されます。
前提条件:
NVMe/TCP を使用してファイルシステムを RHEL インスタンスにマウントする
次の手順を実行します。
-
必要なパッケージをインストールするには、インスタンスで次のコマンドを実行します。
sudo yum install -y nvme-cli
-
NVMe/TCP カーネルモジュールをロードするには、インスタンスで次のコマンドを実行します。
sudo modprobe nvme-tcp
-
NVMe デバイスを作成したストレージ仮想マシン (SVM) のブロックストレージインターフェイスのアドレスを取得します。ONTAP サーバーで次のコマンドを実行します。
network interface show -vserver svm_name -data-protocol nvme-tcp
注: svm_name を実際の SVM 名に置き換えてください。iSCSI と NVMe/TCP は、どちらも iscsi_1 という Logical Interchange Format (LIF) を使用します。
出力例:
Logical Status Network Current Current Is
Vserver Interface Admin/Oper Address/Mask Node Port Home
----------- ---------- ---------- ------------------ ------------- ------- ----
svm_name
iscsi_1 up/up iscsi_1_IP/X FSxId0123456789abcdef8-01 e0e true
iscsi_2 up/up iscsi_2_IP/X FSxId0123456789abcdef8-02 e0e true
2 entries were displayed.
-
NVMe サブシステムを識別するには、インスタンスで次のコマンドを実行します。
sudo nvme discover -t tcp -w client_IP -a iscsi_1_IP
注: iscsi_1_IP を iscsi_1 の IP アドレスに、client_IP をクライアントの IP アドレスに置き換えてください。
-
NVMe サブシステムに接続するには、インスタンスで次のコマンドを実行します。
sudo nvme connect-all -t tcp -w client_IP -a iscsi_1_IP -l 1800
注: iscsi_1_IP を iscsi_1 の IP アドレスに、client_IP をクライアントの IP アドレスに置き換えてください。
-
想定通りに接続できることを確認するには、インスタンスで次のコマンドを実行します。
sudo nvme list
出力において、/dev/nvmeXny の Model 列を参照します。
-
(オプション) ファイルシステムを作成する場合は、インスタンスで次のコマンドを実行します。
sudo mkfs.xfs /dev/nvmeXnY
注: /dev/nvmeXnY を見つけるには、nvme list コマンドの出力を確認してください。NetApp ONTAP Controller という値を含む Model 列を特定します。
-
マウントポイントを作成し、そのポイントにマウントするには、インスタンスで次のコマンドを実行します。
sudo mkdir /mnt/fsx-nvme
sudo mount /dev/nvmeXnY /mnt/fsx-nvme
注: /mtn/fsx-nvme を実際のディレクトリパスに置き換えてください。
-
(オプション) 起動時の自動マウントを構成する場合は、/etc/fstab ファイルに次の行を追加します。
/dev/nvmeXnY /mnt/fsx-nvme xfs _netdev,x-systemd.automount,x-systemd.requires=network-online.target 0 0
注: nvmeXnY を NVMe 名に、/mnt/fsx-nvme を実際のファイルパスに置き換えてください。
次に、ファイルパス /etc/systemd/system/ に NVMe 接続用の systemd サービスを作成します。
ファイル例:
[Unit]
Description=NVMe connection to FSx
After=network.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/nvme connect -t tcp -n "nqn.1992-08.com.netapp:sn.abcde" -w port -a fs-ABCDE.fsx.region.amazonaws.com -s 4420
ExecStop=/usr/sbin/nvme disconnect -n "nqn.1992-08.com.netapp:sn.abcde"
[Install]
WantedBy=multi-user.target
-
サービスを有効にするには、次のコマンドを実行します。
sudo systemctl enable nvme-fsx.service
NVMe/TCP のマウントに関する問題のトラブルシューティング
重要: NetApp でのアカウント作成をおすすめします。NetApp のトラブルシューティングドキュメントにアクセスするには、NetApp アカウントが必要です。
ファイルシステムのマウント時に問題が発生した場合は、次のトラブルシューティング手順を実行します。
-
必要なポートへの接続を確認するには、次のコマンドを実行します。
telnet fs-ABCDE.fsx.region.amazonaws.com 4420
注: fs-ABCDE をファイルシステム名に、region を使用する AWS リージョンに置き換えてください。
-
NVMe の検出が想定通りに動作するかどうかを確認するには、次のコマンドを実行します。
sudo nvme discover -t tcp -w port -a fs-ABCDE.fsx.region.amazonaws.com -s 4420
注: 実際のケースに合わせ、port をポートに、fs-ABCDE をファイルシステム名に、region をリージョンに置き換えてください。
-
NVMe 接続に問題がないかを確認するには、次のコマンドを実行します。
sudo nvme list
-
ログにエラーがないかを確認するには、次のコマンドを実行します。
dmesg | grep nvme or journalctl -u nvme-fsx
FSx for ONTAP サーバーを構成する
NVMe サービスが実行中であることを確認するには、次のコマンドを実行します。
vserver nvme show
vserver nvme subsystem show
名前空間が正しく設定されていることを確認するには、次のコマンドを実行します。
vserver nvme namespace show
NVMe サブシステムにホストの NVMe 修飾名 (NQN) が追加されているかどうかを確認するには、次のコマンドを実行します。
vserver nvme subsystem host show
名前空間とサブシステム間のマッピングが適切かどうかを確認するには、次のコマンドを実行します。
vserver nvme subsystem map show
関連情報
NFS を使用して EC2 Linux インスタンスに FSX for ONTAP ボリュームをマウントする方法を教えてください
Active Directory に参加していない Linux EC2 インスタンスに FSx for ONTAP CIFS 共有をマウントする方法を教えてください
iSCSI を使用して FSx for ONTAP iSCSI LUN を EC2 Linux インスタンスにマウントする方法を教えてください