用于访问 VM 数据的 NFS 与 iSCSI

NFS 与 iSCSI – 您应该选择哪种协议来存储 VMware VM 文件?当您需要配置共享存储以存储必须在 ESXi 主机之间迁移的虚拟机 (VM)、使用群集功能以及没有空闲插槽用于将物理磁盘连接到服务器时,通常会出现此问题。在大型数据中心部署 VMware vSphere 的组织更喜欢使用光纤通道 (FC) 或以太网光纤通道 (FCoE),它们的成本很高。但是,NFS 和 iSCSI 对用于 VMware vSphere 基础架构的中小型数据中心很有吸引力,因为使用这些共享协议配置文件共享所需的硬件更实惠。这篇博文比较了 NFS 与 iSCSI,重点是在 VMware vSphere 虚拟基础架构中使用它们。

什么是NFS?

网络文件系统 (NFS) 是一种网络协议,它允许您与网络中的其他计算机共享存储在服务器磁盘或磁盘阵列上的文件。NFS 由 SUN Microsystems 开发,第一个版本于 1984 年推出。截至撰写本文时,NFS 的最新实现版本是 4.1。4.2 版正在开发中,尚未用于生产。

每个新版本的 NFS 都添加了新功能和改进,包括对虚拟化存储有用的功能。NFS v4.1 提供了一种机制,允许多个用户共享同一个文件并确保数据一致性(并行访问)。支持多线程操作。

NFS 是在开放系统互连 (OSI) 模型的应用层运行的协议。客户端通过向 NFS 服务器发送远程过程调用 (RPC) 请求来访问文件,以便对 NFS 服务器上的文件和目录进行操作。

RPC 请求传输到 XDR 协议(eXternal Data Representation),该协议工作在表示层,是平台之间数据抽象的标准。XDR 描述了不依赖于计算系统架构的统一和规范的数据表示形式。当客户端传输数据时,RPC 客户端将本地数据转换为规范形式,服务器执行相反的操作。

一旦数据统一完成,客户端的RPC服务保证远程过程的请求及其在服务器上的执行(提供Session层的特性)。到此,NFS 特定层的解释就结束了。接下来,数据被封装成标准的 TCP 或 UDP 数据单元,并传输到 OSI 模型的底层。

OSI 层协议
应用NFS
推介会XDR
会议RPC
运输TCP
网络知识产权
数据链接以太网
身体的

.

NFS 在文件级别共享数据。带有以太网接口和 RJ-45 端口的标准网络适配器可用于实现 NFS 共享存储。

最旧的 NFS 版本通过 IP 网络在 UDP 上工作,而较新的版本(NFS v2 和 v3)可以在 TCP 和 UDP 上工作。NFS 4.0 和 4.1 使用 TCP over IPv4 作为标准。NFS v4 通过防火墙和 Internet 工作。

VMware vSphereESXi 6.0和更高版本的 ESXi 版本支持 NFS 3.0 和 NFS 4.1。ESXi 包含通过 TCP/IP 连接到 NFS 服务器的内置 NFS 客户端。两个不同的 NFS 客户端用于通过 NFS 版本 3.0 和 4.1 进行连接。在创建新的 NFS 数据存储时,您可以选择要使用的 NFS 版本。使用 NFS v.4.1 时,VMware 不支持以下功能:

  • 存储DRS
  • 存储 I/O 控制
  • 站点恢复管理器

在存储用于在虚拟机上安装操作系统的 VM 模板和 ISO 映像时,使用 NFS 数据存储很方便。

什么是 iSCSI?

Internet 小型计算机接口 (iSCSI) 是一种网络协议,可确保网络中的对象(发起方和目标方)交互以共享数据。在客户端配置 iSCSI 启动器,在服务器端配置 iSCSI 目标。

iSCSI 启动器可以基于软件和基于硬件。基于硬件的有助于减轻客户端计算机上的中央处理单元(CPU 或处理器)的负担,并且需要安装硬件主机总线适配器 (HBA)。硬件 iSCSI HBA 是具有以太网接口的网络接口控制器 (NIC)。在 iSCSI 与 NFS 的比较中,我考虑使用基于软件的 iSCSI 启动器。iSCSI 于 2003 年推出,并在 RFC 3720 中进行了描述。

iSCSI 是在 TCP/IP 堆栈之上运行的会话层协议(在 OSI 模型的第 5 层工作)。数据在块级共享,与 NFS 不同,但与 FC 相似。这是 iSCSI 与 NFS 比较中的一个重要点。SCSI 命令封装在 TCP/IP 数据单元中,并使用标准以太网网络传输。因此,一台计算机可以使用网络将 SCSI 命令发送到位于另一台计算机上的存储块设备。

图层描述
应用文件系统、数据库等
SCSISCSI 数据、SCSI 命令、SCSI 状态
iSCSIiSCSI 协议服务、iSCSI Qualified Name (IQN)、Internet Storage Name Service (iSNS)、CHAP 认证等。
TCP
知识产权
以太网

.

注意关于 iSCSI 如何用于VMware VM 恢复有一个有趣的事实。例如,当您在 NAKIVO Backup & Replication 中使用 Instant VM Recovery 时,直接从备份在 ESXi 主机上运行 VM 时,将在选定的 ESXi 主机上创建 VM,并使用 iSCSI 协议将虚拟磁盘挂载到 VM作为虚拟兼容模式下的 RDM 磁盘。

VMware NFS 与 iSCSI – 主要区别

NFS 和 iSCSI 都可以在使用铜线部署的 1 Gb 和 10 Gb 以太网网络(1GbE 和 10GbE)中工作。网速越高越好。阅读有关网络拓扑的更多信息。在 VMware vSphere 中使用共享数据存储来存储 VM 文件时,两种实现(NFS 和 iSCSI)均可用于 VM 实时迁移、负载平衡以及数据存储之间的 VM 迁移。由于 TCP/IP 网络上的多层数据封装机制,这两种共享协议都有很大的开销。

大多数供应商的 NAS 设备都支持 NFS,例如SynologyQNAP。不过,现在选择支持iSCSI的NAS并不难。

让我们更详细地回顾一下 VMware NFS 与 iSCSI 的比较。

负载均衡

当一个网络路径出现故障或过载时,如果有多个路径,多路径提供了在服务器和存储之间进行负载平衡的能力。

如果服务器上的会话中继可用(但客户端 ID 中继不可用),则 NFS 4.1 支持多路径。因此,您可以从多个 IP 地址访问单个 NFS 卷。如果您使用 NFS v3,请使用 DNS 循环进行网络负载平衡。

在 VMware vSphere 中,iSCSI 多路径在 VMkernel 网络适配器级别工作。对于 vSphere 中的 iSCSI 负载平衡,您可以使用端口绑定。

缓存

使用 NFS 时,具有文件系统缓存的文件系统位于 NFS 服务器上,客户端计算机应始终检查 NFS 服务器上的元数据。NFS v3 和 v4 支持异步数据写入,但元数据更新是同步的。

使用 iSCSI 时,客户端设备在访问块级别的共享存储后创建文件系统(对于 VMware vSphere,ESXi 主机在 iSCSI LUN 上创建 VMFS 文件系统)。缓存策略由 iSCSI 共享存储的文件系统定义,文件系统缓存位于客户端。例如,如果您使用 iSCSI 作为共享协议并使用 ext3 作为文件系统,您将拥有用于数据和元数据更新的完整写回缓存。

大多数现代文件系统使用异步元数据更新和基于日志的日志记录用于数据恢复。一般来说,与同步更新(例如 NFS 中使用的同步更新)相比,异步数据更新(用于 iSCSI)在数据和元数据持久性方面不太可靠。

可靠性

NFS。NIC 组合可用于防止网络故障。如果一个 NIC 出现故障,另一个 NIC 可以继续工作。

iSCSI。VMware Pluggable Storage Architecture (PSA) 在使用 iSCSI 阵列时使用存储阵列类型插件来实现故障转移。iSCSI 绑定需要将不同子网上的多个 iSCSI 目标映射到 iSCSI 启动器。

由于 iSCSI 和 NFS 都使用 TCP 进行封装,因此在网络级别检查数据传递。

如果您为 VM存储精简配置的虚拟磁盘,则 iSCSI 存储上的 VMFS 可能很脆弱。电源故障会使卷无法恢复。NFS 数据存储在这种情况下的行为稍微可靠一些。如果您执行常规VMware 备份,则可以缓解这些问题。

安全

iSCSI 流量一般不会加密,但这并不意味着您无法保护 iSCSI 流量。支持使用名称和密码对 iSCSI 共享进行身份验证。质询握手身份验证协议 (CHAP) 允许服务器和客户端确保彼此信任。

NFS 使用基于主机的身份验证。NFS 的默认配置不提供加密 (sys=system),但是在启用 Kerberos 的情况下使用 NFSv4 (sec=krb5p) 时,连接是安全的。在 NFS 服务器配置中,您必须定义允许访问 NFS 共享的主机的 IP 地址。您还可以定义多个主机或整个子网。例如,广为人知的基于 SMB 文件的共享协议依赖于基于用户的身份验证。

配置专用 VLAN 或使用单独(专用)物理网络是在 VMware vSphere 中使用共享 iSCSI 和 NFS 存储的推荐做法。这种方法允许您将存储流量与其他类型的流量隔离开来。NFS v3 没有类似于 NFS v4.1 中的安全功能。ESXi 服务器挂载具有 root 访问权限的 NFS 共享(不使用 Kerberos 时)。因此,在进行安全配置时请记住这一点。另请阅读有关VLAN 和 VXLAN 的信息

除了数据加密标准 (DES) 之外,NFS v.4.1 还支持使用加密机制的 Kerberos 身份验证。Kerberos 中的加密算法可防止未经授权的用户访问 NFS 流量。ESXi 支持 Kerberos 的 krb5 和 krb5i 实现。ESXi 7.0支持 NFS 4.1 Kerberos 加密和 AUTH_SYS 安全机制(但不是同时支持)。

VMware NFS 与 iSCSI - 原始设备映射

使用 iSCSI 作为共享存储时,您可以为 VM 配置原始设备映射。原始设备映射 (RDM) 是一项功能,允许您将整个物理磁盘或 iSCSI LUN 作为设备直接附加到 VM(而不是在 VM 配置中附加虚拟磁盘)。当您在 LUN(逻辑单元号)上创建数据存储、创建 VMFS 文件系统并将 VM 使用的虚拟磁盘存储在该数据存储上时,基于 RDM 的方法与传统方法不同。使用 iSCSI 时 RDM 是可能的,因为 iSCSI 共享在块级别工作,并且 VM 可以使用安装在 VM 上的来宾操作系统使用的自定义文件系统格式化附加的块 RDM 磁盘。

对于 NFS,不支持使用 NFS 共享作为 RDM 磁盘附加,因为 NFS 共享在文件级别工作,并且 RDM 需要将块设备附加到 VM。使用 NFS 共享,您只能创建 NFS 数据存储并在数据存储上存储 VMDK 虚拟磁盘文件。如果来宾操作系统具有 NFS 客户端或 iSCSI 启动器,您可以在来宾操作系统级别挂载 NFS 共享和 iSCSI 共享。因此,在 VMware iSCSI 与 NFS 比较的原始设备映射类别中,赢家是 iSCSI。

iSCSI 与 NFS 性能

在软件 iSCSI 实现中,性能略高,但客户端主机上的 CPU 负载也更高。iSCSI 还会给网络带来更高的负载。iSCSI 会产生更多的网络流量和网络负载,而使用 NFS 则更流畅、更可预测。当执行大量写入操作时,您可能会注意到 NFS 共享的性能下降。

在 vSphere 中使用 NFS 时,最好在存储端使用支持 vStorage API for Array Integration (VAAI) 的 NFS。VAAI 允许您在 NFS 数据存储上创建厚配置虚拟磁盘。默认情况下,在 NFS 数据存储上创建精简配置磁盘。NFS 和 iSCSI 都支持 Jumbo 帧以提高网络性能。

在 iSCSI 与 NFS 速度比较的最后,应该提到性能还取决于存储阵列供应商。

并发访问

iSCSI 不支持对块设备的并发或并行数据访问。数据需要在两跳之间共享。但是,在支持并行访问文件的文件系统级别(例如,VMFS 或 GFS)允许并行访问。在 VMware vSphere 中使用 iSCSI 共享时,可确保在 VMFS 级别对共享进行并发访问。

NFS 通过使用锁定机制和关闭到打开的一致性机制来支持对共享文件的并发访问,以避免冲突并保持数据一致性。NFS v3 和 NFS v4.1 使用不同的机制。NFS v3 可以使用网络锁管理器协议 (NLM),而 NFS v4.1 使用本机协议指定的锁定。如果在 VMware ESXi 上使用 NFS v3 来访问文件共享,则 ESXi 不使用 NLM 协议,因为在这种情况下 VMware 提供了自己的锁定协议。锁定文件命名为 .在 VMware vSphere 中使用 NFS v3 共享时,在文件共享上创建lck-file_id

NFS v4.1 使用保留来锁定文件以进行并发访问。如果创建 NFS 文件共享,则所有客户端都必须使用相同版本的 NFS 协议(例如,所有 ESXi 主机都通过 NFS v.4.1 连接到共享)。如果两个不兼容的客户端在 NFS 服务器上使用不同版本的 NFS 访问文件,则可能会出现不一致的行为和数据损坏。

配置难度

使用 NFS 时,更容易配置服务器和客户端。使用 iSCSI 配置共享存储更加困难。您需要为存储和主机配置 IQN;对 iSCSI 服务、LUN 和掩码进行配置;并出于安全原因配置多个 VLAN(隔离用于 iSCSI 通信的网段以提供更高的安全级别)。

了解可用于存储 VM 数据的VMware 虚拟卷

VMware vSphere 中的 NFS 与 iSCSI – 汇总表

让我们在汇总表中突出显示 iSCSI 与 NFS VMware 比较中每个数据共享协议的主要功能。

iSCSINFS
数据共享块级文件级
VM 的原始设备映射是的
配置难度中等的简单
从 SAN 引导是的
错误检查是的是的
安全功能CHAPKerberos
存储 vMotion是的是的
存储 DRS是的是的

结论

这篇博文比较了 NFS 与 iSCSI,以确定协议之间的异同,并确定哪一种更适合在 VMware 环境中使用。这两种共享协议都足够成熟,可以在 VMware vSphere 中使用。iSCSI 和 NFS 的主要区别在于 iSCSI 在块级别共享数据,而 NFS 在文件级别共享数据。性能几乎相同,但在某些情况下,iSCSI 可以提供更好的结果。VM 的 RDM 磁盘可用于 iSCSI,但不能用于 NFS。

两种网络共享协议都是可靠的。但是,您仍然需要使用第三方数据保护解决方案来避免数据丢失和停机。避免电源故障和其他硬件故障,以避免共享存储上的数据丢失。使用不间断电源装置并定期备份。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值