跳至内容

如何使用基于 TCP 的 NVMe 在 EC2 Linux 实例上挂载 FSx for ONTAP 文件系统?

3 分钟阅读
0

我想在我的 Amazon Elastic Compute Cloud (Amazon EC2) Linux 实例上挂载 Amazon FSx for NetApp ONTAP 文件系统。我想使用基于 TCP (NVMe/TCP) 的 Non-volatile Memory Express (NVMe)。

解决方案

**注意:**以下解决方案适用于运行 Red Hat Enterprise Linux (RHEL) 9.3 的 EC2 实例。

先决条件:

使用 NVMe/TCP 将您的文件系统挂载到 RHEL 实例上

完成以下步骤:

  1. 要安装所需的软件包,请在实例上运行以下命令:

    sudo yum install -y nvme-cli
  2. 要加载 NVMe/TCP 内核模块,请在实例上运行以下命令:

    sudo modprobe nvme-tcp
  3. 检索您在其中创建 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.
  4. 要识别 NVMe 子系统,请在实例上运行以下命令:

    sudo nvme discover -t tcp -w client_IP -a iscsi_1_IP

    **注意:**将 iscsi_1_IP 替换为您的 iscsi_1 IP 地址,将 client_IP 替换为客户端 IP 地址。

  5. 要连接到 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 地址。

  6. 要验证连接是否按预期运行,请在实例上运行以下命令:

    sudo nvme list

    在输出中,检查 /dev/nvmeXnyModel(型号)列。

  7. (可选)要创建文件系统,请在实例上运行以下命令:

    sudo mkfs.xfs /dev/nvmeXnY

    **注意:**要查找 /dev/nvmeXnY,请检查 nvme list 命令的输出。找到包含 NetApp ONTAP 控制器值的 Model(型号)列。

  8. 要创建并挂载到挂载点,请在实例上运行以下命令:

    sudo mkdir /mnt/fsx-nvme
    sudo mount /dev/nvmeXnY /mnt/fsx-nvme

    **注意:**将 /mtn/fsx-nvme 替换为您的目录路径。

  9. (可选)要配置启动期间的自动挂载,请将以下行添加到 /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
  10. 要激活该服务,请运行以下命令:

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

为 ONTAP 服务器配置 FSx

要验证 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 共享?

如何使用 iSCSI 在 EC2 Linux 实例上挂载 FSx for ONTAP iSCSI LUN?

AWS 官方已更新 5 个月前