ESXi 与 iSCSI SAN 配合使用时,请遵循 VMware 提供的建议以避免出现问题。

请咨询存储代表,以确定存储系统是否支持 Storage API - Array Integration 硬件加速功能。如果支持硬件加速,请参阅供应商文档以在存储系统端启用硬件加速支持。有关详细信息,请参见vSphere中的存储硬件加速

防止出现 iSCSI SAN 问题

ESXi 与 SAN 一起使用时,必须依照特定准则才能避免 SAN 问题。

请遵循以下提示:

  • 每个 LUN 上仅放置一个 VMFS 数据存储。
  • 不要更改系统为您设置的路径策略,除非您了解做出此类更改的影响。
  • 将所有信息记录在案。其中包括涉及以下项目的信息:配置、访问控制、存储、交换机、服务器和 iSCSI HBA 配置、软件和固件版本以及存储线缆布局。
  • 对故障情况进行规划:
    • 制作多个拓扑映射副本。考虑每一元素发生故障时可能对 SAN 带来的影响。
    • 除去不同链路、交换机、HBA 和其他元素,确保未遗漏设计中的关键故障点。
  • 请确保根据插槽和总线速度将 iSCSI HBA 安装到 ESXi 主机中的正确插槽。在服务器中的可用总线之间平衡 PCI 总线负载。
  • 在所有可见点(包括 ESXi 性能图表、以太网交换机统计信息及存储性能统计信息)熟悉存储网络中的各个监控点。
  • 仅当 LUN 上部署的 VMFS 数据存储没有正在运行的虚拟机时,才能更改 LUN ID。如果您更改此 ID,则 VMFS 数据存储上运行的虚拟机可能会发生故障。

    更改 LUN 的 ID 后,必须重新扫描您的存储以在主机上重置 ID。有关使用重新扫描的信息,请参见ESXi 存储的重扫描操作

  • 如果更改 iSCSI 适配器的默认 iSCSI 名称,请确保输入的名称在整个环境中唯一且其格式正确。为了避免存储访问问题,即使在不同的主机上,也绝不将相同的 iSCSI 名称分配给不同的适配器。

优化 iSCSI SAN 存储器性能

要优化典型 SAN 环境,需要考虑多个因素。

如果正确配置了网络环境,则 iSCSI 组件将为 iSCSI 启动器和目标提供足够的吞吐量及足够短的延迟。如果网络拥塞,并且链接、交换机或路由器处于饱和状态,则 iSCSI 性能会下降,不能满足 ESXi 环境的需求。

存储系统性能

存储系统性能是影响整个 iSCSI 环境性能的主要因素之一。

如果存储系统性能出现问题,请参阅存储系统供应商文档以获取任何相关信息。

分配 LUN 时,请记住,您可以通过多台主机访问每个共享的 LUN,而且每台主机上都可运行多台虚拟机。由 ESXi 主机使用的一个 LUN 可向运行于不同操作系统的多个不同应用程序提供 I/O 服务。由于此工作负载并非恒定不变,ESXi LUN 所在的 RAID 组不应包括其他主机所使用的 LUN,这些主机上未运行 ESXi 用于 I/O 密集型应用程序。

启用读缓存和写缓存。

负载平衡的过程即是将服务器 I/O 请求分散于所有可用 SP 及其关联的主机服务器路径。目的是针对吞吐量(每秒 I/O 流量、每秒兆字节数或响应时间)实现最佳性能。

需要不断对 SAN 存储系统进行重新设计和调试,以确保所有存储系统路径间的 I/O 负载平衡。为满足此要求,请在所有 SP 间分发指向 LUN 的路径以提供最佳负载平衡效果。密切监控可指示何时需要手动重新平衡 LUN 的分发。

调试静态平衡存储系统即是监控特定性能统计信息(例如每秒 I/O 操作数、每秒块数及响应时间)并通过分发 LUN 工作负载将工作负载分散到所有 SP。

iSCSI 服务器性能

要确保获得最佳 ESXi 主机性能,请考虑以下几个因素。

各服务器应用程序访问其指定存储时必须满足以下条件:

  • 高 I/O 速率(每秒 I/O 操作数)
  • 高吞吐量(每秒兆字节数)
  • 最小延迟(响应时间)

由于各应用程序的要求不尽相同,您可以选择存储系统上的适当 RAID 组来实现上述目标。

要实现性能目标,请遵循以下准则:

  • 将每个 LUN 置于提供必要性能级别的 RAID 组。监控分配的 RAID 组中其他 LUN 的活动及资源使用情况。对于高性能 RAID 组,因有过多应用程序对其执行 I/O 操作,它可能无法满足 ESXi 主机上运行的应用程序所需的性能目标。
  • 要在高峰期为主机上的所有应用程序实现最大吞吐量,则安装足够的网络适配器或 iSCSI 硬件适配器。将 I/O 分散到多个端口可为各应用程序提供更快的吞吐量及更短的延迟。
  • 要提供软件 iSCSI 的冗余,请确保启动器连接到用于 iSCSI 连接的所有网络适配器。
  • ESXi 系统分配 LUN 或 RAID 组时,请注意多个操作系统将使用和共享该资源。ESXi 主机所需的 LUN 性能可能远高于使用常规物理机时所需的 LUN 性能。例如,如果计划运行四个 I/O 密集型应用程序,请为 ESXi LUN 分配四倍大小的性能容量。
  • vCenter Server 一起使用多个 ESXi 系统时,存储性能要求会提高。
  • ESXi 系统上运行的应用程序所需的未完成 I/O 数必须与 SAN 能够处理的 I/O 数匹配。

网络性能

典型的 SAN 包括通过交换机网络连接到一组存储系统的一组计算机。多台计算机通常访问的是同一存储。

下图显示了通过以太网交换机连接到存储系统的多个计算机系统。在此配置中,每个系统都通过单个以太网链路连接到交换机。交换机通过单个以太网链路连接到存储系统。

图 1. 单个以太网链路与存储的连接
图中显示了通过单个以太网交换机连接到存储系统的多个系统。

系统从存储读取数据时,存储在响应时会发送足够的数据来填充存储系统与以太网交换机之间的链路。任何单个系统或虚拟机都不可能充分利用网络速度。但是,在许多系统共享一个存储设备时可能会发生这种情况。

将数据写入存储时,多个系统或虚拟机可能会尝试填充其链路。因此,系统与存储系统之间的交换机可能会丢弃网络数据包。之所以可能发生丢弃数据的情况,是因为交换机要发送至存储系统的流量超过了单个链路所能承载的流量。交换机可传输的数据量受到交换机与存储系统间的链路速度的限制。

图 2. 丢弃的数据包
图中显示了在服务器和存储系统之间的丢弃了数据的交换机。

恢复丢弃的网络数据包会导致性能明显降低。除了花时间确定数据已丢弃,重新传输操作还需使用本可用于当前事务的网络带宽。

iSCSI 流量通过传输控制协议 (Transmission Control Protocol, TCP) 进行网络传输。TCP 是一个可靠的传输协议,可确保重试丢弃的数据包并使其最终到达目标位置。TCP 旨在恢复并快速、无缝地重新传输丢弃的数据包。但是,如果交换机定期丢弃数据包,网络吞吐量将降低。网络会因重新发送数据的请求以及已重新发送的数据包而变得拥堵。传输的数据量少于网络未拥堵时的数据量。

大多数以太网交换机可缓冲或存储数据。此方法为每个尝试发送数据的设备提供到达目标位置的同等机会。缓冲部分传输数据的功能与限制未完成命令数目的许多系统相结合,可以将传输数据缩减为小型突发。多个系统中的突发可以依次发送至存储系统。

如果事务较大,且多台服务器正通过单个交换机端口发送数据,则可能会超出缓冲能力。在这种情况下,交换机会丢弃无法发送的数据,且存储系统必须请求重新传输丢弃的数据包。例如,如果以太网交换机可缓冲 32 KB,但服务器发送到存储设备 256 KB,则会丢弃一些数据。

大多数受管交换机都会提供有关所丢弃数据包的信息,类似以下形式:

*: interface is up
IHQ: pkts in input hold queue     IQD: pkts dropped from input queue
OHQ: pkts in output hold queue    OQD: pkts dropped from output queue
RXBS: rx rate (bits/sec)          RXPS: rx rate (pkts/sec)
TXBS: tx rate (bits/sec)          TXPS: tx rate (pkts/sec)
TRTL: throttle count
表 1. 交换机信息示例
界面 IHQ IQD OHQ OQD RXBS RXPS TXBS TXPS TRTL
* GigabitEthernet0/1 3 9922 0 0 476303000 62273 477840000 63677 0

在此 Cisco 交换机示例中,使用的带宽为 476303000 位/秒,低于线速的一半。端口缓冲入站数据包,但丢弃了一些数据包。此界面摘要最后一行的 IQD 列表示该端口已丢弃近 10,000 个入站数据包。

为避免此问题而对配置进行更改时需确保多个输入以太网链路不缩减为一个输出链路,否则会导致链路超额预定。如果在几乎满载时进行传输的多个链路切换为更少数量的链路,则可能发生超额预定情况。

通常,向存储写入大量数据的应用程序或系统必须避免共享存储设备的以太网链路。与存储设备存在多个连接时,这些类型的应用程序可实现最佳性能。

“交换机与存储的多个连接”显示了交换机与存储的多个连接。

图 3. 交换机与存储的多个连接
此图显示了交换机与存储的多个连接。

使用 VLAN 或 VPN 不能针对共享配置中的链路超额预定问题提供合适的解决方案。VLAN 和网络的其他虚拟分区提供了按逻辑设计网络的方法。但是,它们不会更改交换机之间链路和中继的物理功能。当存储流量和其他网络流量共享物理连接时,可能会出现超额预定和丢失数据包的现象。此情况也适用于共享交换机间中继的 VLAN。设计 SAN 的性能时,必须考虑网络的物理限制而不是逻辑分配。

检查以太网交换机统计信息

许多以太网交换机提供了监控交换机状况的不同方法。

如果端口经常都需要处理接近最大值的吞吐量,则交换机无法提供最佳性能。如果 iSCSI SAN 中的端口需要处理接近最大值的吞吐量,请减少负载。如果端口与 ESXi 系统或 iSCSI 存储器连接,则可使用手动负载平衡来减少负载。

如果端口与多个交换机或路由器连接,请考虑在这些组件间安装更多链接以处理更大的负载。以太网交换机通常还提供有关传输错误、排队的数据包和丢弃的以太网数据包的信息。如果交换机定期报告用于 iSCSI 流量的端口上的上述任何状况,iSCSI SAN 的性能将受影响。