如何使用 NVMe over TCP 在 EC2 Linux 執行個體上掛載 FSx for ONTAP 檔案系統?
我想在 Amazon Elastic Compute Cloud (Amazon EC2) Linux 執行個體上掛載 Amazon FSx for NetApp ONTAP 檔案系統。我想使用透過 TCP 的非揮發性記憶體快速傳輸 (NVMe) (NVMe/TCP)。
解決方法
**注意:**以下解決方案適用於執行 Red Hat Enterprise Linux (RHEL) 9.3 的 EC2 執行個體。
先決條件:
- 此執行個體允許 TCP 連接埠 4420 上的傳出流量。
- NetApp ONTAP 檔案系統允許 TCP 連接埠 4420 上的傳入流量。
- 使用 NVMe/TCP 設定 FSx for ONTAP 檔案系統。
**注意:**如需使用 NVMe/TCP 設定檔系統之前必須執行的步驟,請參閱開始之前。 - 使用具有六個或更少高可用性 (HA) 對的第二代檔案系統。
使用 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 邏輯交換格式 (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在輸出中,檢查 Model (模型) 欄中是否顯示 /dev/nvmeXny。
-
(選用) 若要建立檔案系統,請在執行個體上執行下列命令:
sudo mkfs.xfs /dev/nvmeXnY**注意:**若要找出 /dev/nvmeXnY,請查看 nvme list 命令的輸出。找到 Model (模型) 欄中顯示為 NetApp ONTAP Controller 值的項目。
-
若要建立並掛載到掛載點,請在執行個體上執行下列命令:
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 限定名稱 (NQN) 新增至 NVMe 子系統,請執行下列命令:
vserver nvme subsystem host show
若要確認命名空間和子系統之間的對應是否正確,請執行下列命令:
vserver nvme subsystem map show
相關資訊
如何使用 NFS 在 EC2 Linux 執行個體上掛載 FSX for ONTAP 磁碟區?
如何在未加入 Active Directory 的 Linux EC2 執行個體上掛載 FSx for ONTAP CIFS 共用?
相關內容
- 已提問 1 年前
- 已提問 1 年前
- 已提問 2 年前
- 已提問 1 年前
