这是一个典型问题有关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 数据存储区的磁盘上执行“初始化磁盘”,那么您将面临糟糕的一天。