Skip to main content
ONTAP SAN Host Utilities
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

配置 Proxmox VE 9.x 以支持 FCP 和 iSCSI 以及ONTAP存储

贡献者 netapp-pcarriga netapp-sarajane

配置 Proxmox VE 9.x 以实现多路径,并为与ONTAP存储的 FCP 和 iSCSI 协议操作设置特定的参数和设置。

FCP 和 iSCSI 与 Proxmox VE 9.x 存在以下已知限制:

  • Linux 主机实用程序不支持 Proxmox VE 9.x 操作系统。

  • 不支持 SAN 启动配置。

步骤 1:确认主机的多路径配置

您可以使用 Proxmox VE 9.x 的多路径功能来管理ONTAP LUN。

要确保为主机正确配置了多路径、请验证是否已定义此 `/etc/multipath.conf`文件、以及是否已为ONTAP LUN配置了NetApp建议的设置。

步骤
  1. 验证文件是否 `/etc/multipath.conf`退出。如果此文件不存在、请创建一个空的零字节文件:

    touch /etc/multipath.conf
  2. 首次创建文件时 multipath.conf、您可能需要启用并启动多路径服务以加载建议的设置:

    systemctl enable multipathd
    systemctl start multipathd
  3. 每次启动主机时、空的 `/etc/multipath.conf`零字节文件都会自动加载NetApp建议的主机多路径参数作为默认设置。您无需更改 `/etc/multipath.conf`主机的文件、因为操作系统使用可正确识别和管理ONTAP LUN的多路径参数进行编译。

    下表显示了ONTAP LUN的Linux操作系统本机编译多路径参数设置。

    显示参数设置
    参数 正在设置 …​

    detect_prio

    是的。

    dev_los_TMO

    " 无限 "

    故障恢复

    即时

    fast_io_fail_sMO

    5.

    features

    "2 pG_INIT_retries 50"

    flush_on_last_del

    “总是”

    硬件处理程序

    “1”

    no_path_retry

    队列

    path_checker

    "TUR"

    path_grouping_policy

    "Group_by-prio"

    path_selector

    " 服务时间 0"

    Polling interval

    5.

    PRIO

    ONTAP

    产品

    LUN

    Retain Attached Hw_handler

    是的。

    rr_weight

    " 统一 "

    user_friendly_names

    供应商

    NetApp

  4. (可选)覆盖默认值 `find_multipaths`用于确保 multipathd 正确发现和管理ONTAP LUN 的参数:

    1. find_multipaths`在默认值部分设置为“否” `/etc/multipath.conf

      defaults {
          find_multipaths "no"
      }
    2. 重新加载多路径服务:

      systemctl reload multipathd
    备注 默认情况下,Proxmox OS 原生多路径配置集 `find_multipaths`设置为“严格”,并带有空零字节 `/etc/multipath.conf`每次启动主机时都会运行配置文件。这可以防止主机发现新出现的ONTAP LUN 作为多路径设备,这意味着它们不会自动出现在多路径控制之下。每次重启后,现有的ONTAP LUN 仍保持被发现状态并处于多路径控制之下。
  5. 验证ONTAP LUN的参数设置和路径状态:

    multipath -ll

    默认多路径参数支持ASA、AFF和FAS配置。在这些配置中、一个ONTAP LUN不应需要超过四个路径。如果路径数超过四个、则可能会在存储故障期间导致路径出现问题。

    以下示例输出显示了ASA、AFF或FAS配置中ONTAP LUN的正确参数设置和路径状态。

    ASA配置

    ASA配置可优化指向给定LUN的所有路径、使其保持活动状态。这样可以同时通过所有路径提供I/O操作、从而提高性能。

    显示示例
    multipath -ll
    3600a098038315071592b59713261566d dm-38 NETAPP,LUN C-Mode
    size=100G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
    `-+- policy='service-time 0' prio=50 status=active
      |- 8:0:0:7 sdbv 68:144 active ready running
      |- 9:0:0:7 sdbx 68:176 active ready running
      |- 6:0:0:7 sdbr 68:80  active ready running
      `- 7:0:0:7 sdbt 68:112 active ready running
    AFF或FAS配置

    AFF或FAS配置应具有两组优先级较高和较低的路径。优先级较高的主动/优化路径由聚合所在的控制器提供。优先级较低的路径处于活动状态、但未进行优化、因为它们由其他控制器提供服务。只有在优化路径不可用时、才会使用非优化路径。

    以下示例显示了具有两条活动/优化路径和两条活动/非优化路径的ONTAP LUN 的输出:

    显示示例
    multipath -ll
    3600a0980383149764b5d567257516273 dm-0 NETAPP,LUN C-Mode
    size=150G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
    |-+- policy='service-time 0' prio=50 status=active
    | |- 16:0:3:0  sdcg 69:64  active ready running
    | `- 10:0:0:0  sdb  8:16   active ready running
    `-+- policy='service-time 0' prio=10 status=enabled
      |- 10:0:1:0  sdc  8:32   active ready running
      `- 16:0:2:0  sdcf 69:48  active ready running

步骤 2:确认主机的 iSCSI 配置

请确保为主机正确配置 iSCSI。

关于此任务

在 iSCSI 主机上执行以下步骤。

步骤
  1. 验证是否已安装 iSCSI 启动程序包 (open-iscsi):

    $apt list |grep open-iscsi

    您应该会看到类似于以下示例的输出:

    open-iscsi/noble-updates,noble-updates,now 2.1.9-3ubuntu5.4 amd64
  2. 验证位于 /etc/iscsi/initiatorname.iscsi 文件中的 iSCSI 启动程序节点名称:

    InitiatorName=iqn.YYYY-MM.com.<vendor>:<host_name>
  3. 配置位于 /etc/iscsi/iscsid.conf 文件中的 iSCSI 会话超时参数:

    node.session.timeo.replacement_timeout = 5

    iSCSI replacement_timeout 参数控制 iSCSI 层在其上的任何命令失败之前应等待超时路径或会话自行重新建立多长时间。您应在 iSCSI 配置文件中将 replacement_timeout 的值设置为 5。

  4. 启用 iSCSI 服务:

    $systemctl enable iscsid
  5. 启动 iSCSI 服务:

    $systemctl start iscsid
  6. 验证 iSCSI 服务是否正在运行:

    $systemctl status iscsid
    显示示例
    ●iscsid.service - iSCSI initiator daemon (iscsid)
         Loaded: loaded (/usr/lib/systemd/system/iscsid.service; enabled; preset: disabled)
         Active: active (running) since Mon 2026-01-12 12:53:18 IST; 2 days ago
    TriggeredBy: ● iscsid.socket
           Docs: man:iscsid(8)
       Main PID: 1127419 (iscsid)
          Tasks: 2 (limit: 76557)
         Memory: 4.3M (peak: 8.8M)
            CPU: 1.657s
         CGroup: /system.slice/iscsid.service
                 ├─1127418 /usr/sbin/iscsid
                 └─1127419 /usr/sbin/iscsid
  7. 发现 iSCSI 目标:

    $iscsiadm --mode discovery --op update --type sendtargets --portal <target_IP>
    显示示例
    iscsiadm --mode discovery --op update --type sendtargets --portal  192.168.100.197
    192.168.100.197:3260,1046 iqn.1992-08.com.netapp:sn.7cd154a7d35411f0a25ed039eaa95f59:vs.8
    192.168.200.199:3260,1049 iqn.1992-08.com.netapp:sn.7cd154a7d35411f0a25ed039eaa95f59:vs.8
    192.168.100.199:3260,1048 iqn.1992-08.com.netapp:sn.7cd154a7d35411f0a25ed039eaa95f59:vs.8
    192.168.200.197:3260,1047 iqn.1992-08.com.netapp:sn.7cd154a7d35411f0a25ed039eaa95f59:vs.8
  8. 登录到目标:

    $iscsiadm --mode node -l all
  9. 将 iSCSI 设置为在主机启动时自动登录:

    $iscsiadm --mode node -T <target_name> -p <ip:port> -o update -n node.startup -v automatic

    您应该会看到类似于以下示例的输出:

    iscsiadm --mode node -T iqn.1992-08.com.netapp:sn.7cd154a7d35411f0a25ed039eaa95f59:vs.8 -p 192.168.100.197:3260 -o update -n node.startup -v automatic
  10. 验证 iSCSI 会话:

    $iscsiadm --mode session
    显示示例
    iscsiadm --mode session
    tcp: [1] 192.168.200.197:3260,1047 iqn.1992-08.com.netapp:sn.7cd154a7d35411f0a25ed039eaa95f59:vs.8 (non-flash)
    tcp: [2] 192.168.100.197:3260,1046 iqn.1992-08.com.netapp:sn.7cd154a7d35411f0a25ed039eaa95f59:vs.8 (non-flash)
    tcp: [3] 192.168.100.199:3260,1048 iqn.1992-08.com.netapp:sn.7cd154a7d35411f0a25ed039eaa95f59:vs.8 (non-flash)
    tcp: [4] 192.168.200.199:3260,1049 iqn.1992-08.com.netapp:sn.7cd154a7d35411f0a25ed039eaa95f59:vs.8 (non-flash)

步骤 3:(可选)从多路径中排除设备

如果需要、您可以将不需要的设备的WWID添加到文件的"黑名单"部分、从而将该设备从多路径中排除 multipath.conf

步骤
  1. 确定WWID:

    /lib/udev/scsi_id -gud /dev/sda

    "sa"是要添加到黑名单中的本地SCSI磁盘。

    例如,WWID为 360030057024d0730239134810c0cb833

  2. 将WWID添加到"黑名单"部分:

    blacklist {
    	     wwid   360030057024d0730239134810c0cb833
            devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
            devnode "^hd[a-z]"
            devnode "^cciss.*"
    }

步骤 4:自定义ONTAP LUN 的多路径参数

如果您的主机连接到其他供应商的LUN、并且任何多路径参数设置被覆盖、则您需要稍后在文件中添加专门适用于ONTAP LUN的zas来更正这些设置 multipath.conf。否则、ONTAP LUN可能无法按预期运行。

请检查 `/etc/multipath.conf`文件,特别是默认值部分中的设置,以了解可能覆盖的设置多路径参数的默认设置

注意 您不应覆盖ONTAP LUN的建议参数设置。要获得最佳主机配置性能、需要使用这些设置。有关详细信息、请联系NetApp支持部门、您的操作系统供应商或这两者。

以下示例显示了如何更正被覆盖的默认值。在此示例中、 multipath.conf`文件为和定义了与 `no_path_retry`ONTAP LUN不兼容的值 `path_checker、您无法删除这些参数、因为ONTAP存储阵列仍连接到主机。而是通过向专门应用于ONTAP LUN的文件添加设备段来 multipath.conf`更正和 `no_path_retry`的值 `path_checker

显示示例
defaults {
   path_checker      readsector0
   no_path_retry     fail
}

devices {
   device {
      vendor          "NETAPP"
      product         "LUN"
      no_path_retry   queue
      path_checker    tur
   }
}

步骤 5:查看已知问题

没有已知问题。