吞吐量和延迟

吞吐量和延迟

这是一个典型问题有关iSCSI我们可以作为参考。

iSCSI 是一种将 SCSI 命令作为有效载荷放入 TCP 网络数据包的协议。因此,它面临的问题与光纤通道等协议不同。例如,如果链路拥塞且交换机的缓冲区已满,以太网将默认丢弃帧,而不是告诉主机减速。这会导致重新传输,从而导致一小部分存储流量出现高延迟。

这个问题有多种解决方案,具体取决于客户端操作系统,包括修改网络设置。对于以下操作系统列表,最佳 iSCSI 客户端配置是什么样的?是否涉及更改交换机上的设置?存储呢?

  • VMWare 4 和 5
  • Windows Hyper-V 2008 和 2008r2
  • 裸机上的 Windows 2003 和 2008
  • 裸机上的 Linux
  • 艾克斯维欧
  • 您认为相关的任何其他操作系统

答案1

我不熟悉 VMWare,但我确实使用 Xenserver 并且使用过 Hyper-V (R2)。

使用我当前的 Xenserver 配置,我有:

  • 8 台 Dell Poweredge 29xx 服务器
  • 2 个 Dell Powerconnect 6248 交换机
  • 2 个戴尔 MD3000i SAN(iSCSI)

我已在多路径配置中设置了我的交换机,并通过以下方式针对 iSCSI 进行了优化:

  • 将我的交换机分成 3 个 VLAN(2 个用于 iSCSI 流量,1 个用于管理)
  • 使用 JumboFrames
  • 应用 powerconnect 的“iSCSI”优化

每台服务器都有多个网卡,用于连接每台交换机,从而通过服务器和 iSCSI SAN 之间的多路径提供冗余。iSCSI VLAN 不包含除 iSCSI 之外的其他流量。

我很高兴地报告,通过这种配置,Xenserver“集群”运行良好。

顺便提一下,我确实有一台通过 iSCSI 直接连接到 HP SAN(旧文件服务器)的 Windows 2008 服务器。它以前运行的是 Windows 2003,经常会断开连接(即使重新安装了 2003 也是如此);但是,只要我升级到 Windows 2008,它就会保持连接。

我很乐意回答有关我的设置的任何问题。

答案2

这还不是答案……这是通用答案的框架。如果您有时间,请填写您所知道的任何内容。关于配置特定硬件,请为每个供应商发布单独的答案,以便我们可以将这些信息组织起来并分开。

QoS 配置文件到端口,以及关闭风暴控制、将 MTU 设置为 9000、打开流量控制以及将端口置于快速端口状态

吞吐量和延迟

更新固件、驱动程序和其他系统

多线程IO

巨型帧/MTU

随着网络链接速度的提高,可能生成的数据包数量也会增加。这会导致生成数据包所花费的 CPU/中断时间越来越多,这不仅会给传输系统带来过度负担,还会因分帧而占用过多的链接带宽。

所谓的“巨型”帧是超出标准 1518 字节限制的以太网帧。虽然数字可能因交换机供应商、操作系统和 NIC 而异,但最典型的巨型数据包大小为 9000 和 9216 字节(后者最常见)。考虑到可以将大约 6 倍的数据放入 9K 帧中,主机上的实际数据包(和中断)数量会减少类似的量。这些增益在发送大量数据(即 iSCSI)的高速(即 10GE)链路上尤其明显。

启用巨型帧需要配置主机和以太网交换机,并且在实施之前应格外小心。应遵循以下几条准则:

1.) 在给定的以太网段 (VLAN) 内,所有主机和路由器都应配置相同的 MTU。未正确配置的设备会将较大的帧视为链路错误(特别是“巨型帧”)并丢弃它们。

2.) 在 IP 协议中,两个具有不同帧大小的主机需要某种机制来协商适当的通用帧大小。对于 TCP,这是路径 MTU (PMTU) 发现,并依赖于 ICMP 不可达数据包的传输。确保所有系统上都启用了 PMTU,并且任何 ACL 或防火墙规则都允许这些数据包。

以太网流量控制 (802.3x)

尽管一些 iSCSI 供应商建议使用简单的 802.3x 以太网流量控制,但不是在大多数环境中都无法启用,除非所有交换机端口、网卡和链路都完全专用于 iSCSI 流量仅此而已。如果链接上有任何其他流量(例如 SMB 或 NFS 文件共享、集群存储或 VMware 的心跳、NIC 组合控制/监控流量等),则简单的 802.3x 流量控制应该不是因为它会阻塞整个端口,并且其他非 iSCSI 流量也将被阻塞。以太网流量控制的性能提升通常很小或不存在,因此应该对正在考虑的整个 OS/NIC/交换机/存储组合进行现实基准测试,以确定是否有任何实际好处。

从服务器角度来看,实际的问题是:如果我的 NIC 或网络超载,我是否应该停止网络流量,还是开始丢弃并重新传输数据包?打开流量控制将允许在接收方清空 NIC 缓冲区,但会给发送方的缓冲区带来压力(通常网络设备会在此处缓冲)。

TCP 拥塞控制 (RFC 5681)

TOE(TCP/IP 卸载引擎)

iSOE(iSCSI 卸载引擎)

LSO(TCP 分段/大量发送卸载)

网络隔离

iSCSI 的常见最佳实践是将启动器和目标与其他非存储网络流量隔离。这在安全性、可管理性方面具有优势,而且在许多情况下,还可以将资源专用于存储流量。这种隔离可能采取以下几种形式:

1.) 物理隔离 - 所有启动器都有一个或多个专用于 iSCSI 流量的 NIC。这可能(也可能不)意味着专用网络硬件,具体取决于相关硬件的功能以及给定组织内的特定安全和操作要求。

2.) 逻辑隔离 - 主要见于更快(即 10GE)的网络中,发起者具有 VLAN 标记(参见 802.1q)配置以分离存储和非存储流量。

许多组织还采用附加机制来确保 iSCSI 发起者无法通过这些专用网络相互访问,并且这些专用网络无法通过标准数据网络访问。实现此目的的措施包括标准访问控制列表、专用 VLAN 和防火墙。

这里也有一些关于背板和交换结构的内容。

服务质量 (802.1p)

虚拟局域网 (802.1q)

STP(RSTP、MSTP 等)

流量抑制(风暴控制、多播/广播控制)

安全

身份验证和安全

第一章

IPSec

LUN 映射(最佳实践)

答案3

您应该考虑和研究主观上关于:

1) 多路径 - 您的 SAN 解决方案和操作系统(无论是虚拟机管理程序还是裸机操作系统)都可能需要特定于供应商的软件才能正常运行。

2) 启动器 - 您需要根据需求检查软件启动器的性能是否足够。许多 NIC 都具有 iSCSI 卸载功能,可以显著提高吞吐量,但某些较旧的虚拟机管理程序在支持方面表现不佳。更成熟的产品(ESXi 4.1+)似乎表现不错。

3) 安全/权限 - 务必彻底审查哪些启动器需要访问哪些 LUN...如果您的一台 Windows 计算机上的管理员在另一台服务器实际用作 VMware 数据存储区的磁盘上执行“初始化磁盘”,那么您将面临糟糕的一天。

相关内容