3. 虚拟化存储协议选型

在 VMware 虚拟化环境中,ONTAP 可以同时通过块协议和文件协议对外提供存储。块协议包括 iSCSI、FC、NVMe over Fabrics(NVMe-oF),文件协议包括 NFS。VMware 侧对应的数据存储类型则有 VMFS、NFS 数据存储和 NVMe-oF 数据存储。选型的本质不是比较“哪个协议更快”,而是判断当前业务对延迟、并发、运维复杂度、多路径、快照集成和扩展性的真实需求,再匹配 ONTAP 上对应的 LUN、卷、LIF、igroup 或导出策略等对象。

四种协议在 VMware 与 ONTAP 之间的对应关系

VMFS 是 VMware 的集群文件系统,运行在块设备之上。ONTAP 侧需要创建 LUN,将 LUN 映射给 ESXi 主机的 iSCSI 或 FC igroup,ESXi 再把 LUN 格式化为 VMFS 数据存储。它的优势是成熟稳定、支持多主机共享同一数据存储、支持 VAAI 硬件加速原语(如 ATS、XCOPY、WRITE SAME),适合传统企业虚拟化集群和需要共享块存储的场景。

NFS 数据存储由 ONTAP 直接通过 NFSv3 或 NFSv4.1 导出卷,ESXi 主机挂载后直接存放 VMDK。它不需要 LUN 和 VMFS 格式化,文件级管理更灵活,ONTAP 的快照、FlexClone、SnapMirror 可以直接作用于 VMDK 文件。NFS 适合对运维简洁性要求高、需要快速克隆和备份集成的场景,也是许多 VMware 与 ONTAP 集成环境的首选。

iSCSI 是块协议中部署成本最低的一种,利用标准以太网和软件或硬件 iSCSI 适配器即可接入。ONTAP 侧需要配置 SVM 的 iSCSI 服务、创建 LUN、建立 igroup 并映射。它适合中小规模集群、预算有限或已有成熟以太网架构的环境。需要注意的是,iSCSI 对网络质量敏感,建议使用独立 VLAN、巨帧和专用物理上行链路。

NVMe over Fabrics 是面向低延迟和高并发的新一代块协议。ONTAP 支持 NVMe/TCP 和 NVMe/FC,VMware ESXi 通过 NVMe-oF 适配器接入后,数据存储以 NVMe 命名空间形式呈现。它适合对延迟极度敏感的关键业务,如高频交易、实时数据库和 AI 推理。NVMe-oF 在 ONTAP 上需要启用 NVMe 服务、创建 NVMe 命名空间和子系统,并配置对应的 LIF。

VMware 数据存储协议选型与 ONTAP 对象映射 块协议(VMFS / iSCSI / NVMe-oF)与文件协议(NFS)在 ONTAP 上的配置路径差异 VMware ESXi 侧 VMFS 数据存储 NFS 数据存储 iSCSI 数据存储 NVMe-oF 数据存储 FC / iSCSI NFSv3 / NFSv4.1 iSCSI NVMe/TCP / NVMe/FC NetApp ONTAP 侧 块协议路径 SVM + iSCSI/FC 服务 创建 LUN igroup 映射 LIF + 多路径 文件协议路径 SVM + NFS 服务 创建卷 导出策略 数据 LIF iSCSI 路径 SVM + iSCSI 服务 创建 LUN igroup(IQN) iSCSI LIF NVMe-oF 路径 SVM + NVMe 服务 创建命名空间 NVMe 子系统 NVMe LIF 选型判断要点 VMFS 成熟共享块存储 VAAI 加速 NFS 运维简洁 快照/克隆集成 iSCSI 以太网低成本 中小规模集群 NVMe-oF 极低延迟 高并发关键业务

ONTAP 配置要点与关键差异

无论选择哪种协议,第一步都是在 ONTAP 上创建 SVM,并为 SVM 分配数据 LIF。块协议和文件协议在 LIF 服务策略上有区别:iSCSI 需要启用 iscsi 服务,NVMe-oF 需要启用 nvme-tcp 或 nvme-fc 服务,NFS 则需要启用 nfs 服务。一个 SVM 可以同时承载多种协议,但生产环境通常按协议或业务域划分 SVM,便于权限隔离和故障域控制。

对于 VMFS 和 iSCSI,核心对象是 LUN 和 igroup。igroup 中记录 ESXi 主机的 iSCSI IQN 或 FC WWPN。创建 LUN 后必须通过 lun mapping 将 LUN 映射给对应 igroup,ESXi 才能识别。LUN 的容量、精简配置、空间保留和 QoS 策略需要根据业务写入模式设定。VMFS 数据存储建议开启 VAAI,ONTAP 侧对应的是硬件加速相关设置,可显著提升克隆和置零操作的效率。

对于 NFS,核心对象是卷和导出策略。导出策略决定哪些 ESXi 主机可以挂载该卷,以及读写权限。NFS 数据存储不需要 LUN 和 igroup,但需要确保 ESXi 主机与 ONTAP 数据 LIF 之间网络可达,且 NFS 版本一致。ONTAP 的 NFS 数据存储可以直接利用卷级快照,VMware 侧通过快照集成实现一致性快照。对于需要频繁克隆的测试环境,NFS 配合 FlexClone 可以在数秒内生成大量 VMDK 副本。

对于 NVMe-oF,核心对象是命名空间和 NVMe 子系统。命名空间相当于块设备,NVMe 子系统负责主机接入控制。ESXi 主机通过 NVMe-oF 适配器发现并连接子系统后,命名空间以设备形式出现。NVMe-oF 对网络和队列深度有更高要求,建议使用专用网络、低延迟交换机和足够的队列资源。ONTAP 侧需要确认平台和 ONTAP 版本支持 NVMe-oF,并正确配置 NVMe LIF。

选型决策与典型场景

如果环境以传统企业虚拟化为主,需要多主机共享块存储且已有 FC 或 iSCSI 网络,VMFS 是稳妥选择。如果希望简化运维、快速克隆、深度集成 ONTAP 快照和复制,NFS 往往更合适。如果预算有限、已有成熟以太网且规模不大,iSCSI 是性价比最高的块协议方案。如果业务对延迟和并发极度敏感,且平台和网络条件具备,NVMe-oF 能提供更低的协议开销和更高的队列并发。

实际选型时还应考虑 VMware 侧的限制。例如,VMFS 数据存储有 64TB 等容量上限,NFS 数据存储的容量上限取决于 ONTAP 卷大小和 ESXi 版本,NVMe-oF 数据存储对 ESXi 版本和适配器有明确要求。此外,备份、复制、监控和自动化工具对四种协议的支持程度不同,选型时应把运维链路一并纳入评估。

在混合环境中,可以同时使用 NFS 和 iSCSI:将通用虚拟机放在 NFS 数据存储上,将需要独立块设备或特定集群软件的业务放在 iSCSI 或 VMFS 数据存储上。ONTAP 的统一架构允许在同一 SVM 或不同 SVM 中并行提供多种协议,关键是做好网络分区、权限隔离和性能监控。

配置示例:在 ONTAP 上为 iSCSI 数据存储准备 LUN

以下示例展示在 ONTAP 上创建 SVM、启用 iSCSI、创建 LUN 并映射给 ESXi 主机的关键命令。示例参数为教学假设值,实际部署时需替换为真实 IQN、IP 地址和容量。

# 创建 SVM(假设已存在集群和聚合)
vserver create -vserver svm_iscsi -subtype default -rootvolume svm_iscsi_root -aggregate aggr1 -rootvolume-security-style unix

# 启用 iSCSI 服务
vserver iscsi create -vserver svm_iscsi

# 创建数据 LIF
network interface create -vserver svm_iscsi -lif lif_iscsi_01 -role data -data-protocol iscsi -home-node node01 -home-port e0c -address 192.168.10.21 -netmask 255.255.255.0

# 创建 LUN
volume create -vserver svm_iscsi -volume vol_vmfs01 -aggregate aggr1 -size 2TB -junction-path /vol_vmfs01
lun create -vserver svm_iscsi -volume vol_vmfs01 -lun lun_vmfs01 -size 1.8TB -ostype vmware -space-reserve disabled

# 创建 igroup 并映射 LUN
igroup create -vserver svm_iscsi -igroup ig_esxi01 -protocol iscsi -ostype vmware -initiator iqn.1998-01.com.vmware:esxi01-abc123
lun mapping create -vserver svm_iscsi -volume vol_vmfs01 -lun lun_vmfs01 -igroup ig_esxi01

执行完成后,在 ESXi 主机的 iSCSI 适配器上添加 ONTAP 数据 LIF 的 IP 地址,重新扫描存储适配器,即可看到新 LUN。将其格式化为 VMFS 数据存储后,即可创建虚拟机。验证时重点检查:LUN 是否在 ESXi 存储设备列表中可见、多路径策略是否为“循环”或“最少队列”、VMFS 数据存储容量是否与 LUN 容量匹配。

结果判断与常见排障方向

如果 ESXi 看不到 LUN,首先检查 igroup 中的 IQN 是否与 ESXi 实际 IQN 完全一致,再确认 LUN mapping 是否存在,以及 iSCSI LIF 是否可达。如果 NFS 数据存储挂载失败,检查导出策略是否允许该 ESXi 主机 IP、NFS 服务是否启用、数据 LIF 是否与 ESXi 在同一可达网络。如果 NVMe-oF 命名空间不可见,检查 NVMe 子系统是否包含主机 NQN、NVMe LIF 是否启用、ESXi 版本和适配器是否支持。

性能层面,VMFS 和 iSCSI 应关注 LUN 队列深度和多路径状态,NFS 应关注网络延迟和 NFS 操作统计,NVMe-oF 应关注队列深度、中断和网络丢包。ONTAP 侧可通过 QoS 策略组限制单个数据存储的吞吐上限,避免某一业务占用过多后端资源。选型不是一次性决定,随着业务变化,可以在同一 ONTAP 平台上逐步引入新协议,而不必推翻已有架构。