调整iSCSI存储


29

这是有关iSCSI 的规范问题,我们可以将其用作参考。

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

有此问题的解决方案,具体取决于客户端操作系统,包括修改网络设置。对于以下操作系统列表,最佳的iSCSI客户端配置是什么样的?是否需要更改开关上的设置?那存储呢?

  • VMWare 4和5
  • Windows Hyper-V 2008和2008r2
  • 裸机上的Windows 2003和2008
  • 裸机上的Linux
  • AIX VIO
  • 您碰巧认为其他任何相关的操作系统

iSCSI比这要复杂得多-但就IP堆栈而言,它适用于高吞吐量,低延迟IP连接的所有情况-这里没有什么特别的。
尼尔斯

Answers:


6

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

使用当前的Xenserver配置,我可以:

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

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

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

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

我很高兴地报告说,通过这种配置,Xenserver“集群”可以很好地工作。

附带一提,我确实有Windows 2008服务器,通过iSCSI直接连接到HP SAN(旧文件服务器)。它曾经运行Windows 2003,并且经常会断开连接(即使在重新安装2003之后)。但是,一旦我升级到Windows 2008,它仍然保持连接状态。

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


1
您是否在两个Dell交换机之间使用堆叠电缆?
SpacemanSpiff 2012年

为什么选择iSCSI?为什么不直接连接MD3000上的DRBD?
尼尔斯2012年

@SpacemanSpiff我的开关未堆叠。
史蒂夫

@Nils我没有研究DRBD,尽管我听说过。DRBD将通过iSCSI为我的直接连接的存储提供什么?
史蒂夫

DRBD没有SCSI开销。另一件事是,当iSCSI服务器死机或无法访问时,您将无法摆脱iSCSI客户端进程(后者在您的设置中应该不是问题)。
2012年

3

这还不是答案...。这是通用答案的框架。如果您有时间,请填写所有您知道的信息。关于配置特定的硬件,请为每个供应商发布单独的答案,以便我们可以使这些信息井井有条并相互独立。

端口的QoS配置文件,以及关闭风暴控制,将MTU设置为9000,打开流控制以及将端口置于portfast

吞吐量和延迟

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

MPIO

巨型帧/ 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,网卡绑定控制/监视交通等)简单802.3x流控制任何其他流量应该被使用,因为它的块整个端口和其他非iSCSI通信也将被阻止。以太网流量控制的性能提升通常很小或根本不存在,应在考虑确定是否有任何实际收益的整个OS / NIC /交换机/存储组合上执行realistinc基准测试。

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

TCP拥塞控制(RFC 5681)

TOE(TCP / IP卸载引擎)

iSOE(iSCSI卸载引擎)

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

网络隔离

iSCSI的最佳常规做法是将启动器和目标与其他非存储网络流量隔离。这在安全性,可管理性以及在许多情况下将资源专用于存储流量方面提供了好处。这种隔离可以采取几种形式:

1.)物理隔离-所有启动器都有一个或多个专用于iSCSI流量的NIC。根据所讨论硬件的功能以及给定组织内的特定安全性和操作要求,这可能意味着也可能不是暗示专用网络硬件。

2.)逻辑隔离-启动器通常在速度更快的网络(即10GE)中发现,已将VLAN标记(请参阅802.1q)配置为分隔存储和非存储流量。

在许多组织中,还采用了其他机制来确保iSCSI启动器无法通过这些专用网络相互访问,而且,这些专用网络无法从标准数据网络访问。用于实现此目的的措施包括标准访问控制列表,专用VLAN和防火墙。

这里也涉及底板和交换结构。

QoS(802.1p)

局域网(802.1q)

STP(RSTP,MSTP等)

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

安全

认证与安全

查普

IPSec协议

LUN映射(最佳做法)


在任何设备上都存在针对RFC 5681的可调项吗?如果没有,我们应该删除该部分。
2012年

值得一提的是,iSCSI复制很少支持巨型帧(因为所有中间WAN设备都必须支持它们)吗?
杰里米

@Jeremy肯定-在上面写下。即使在局域网上-如果您在途中忘记了一台设备(或者如果您的外包网络团队确实配置错误),则MTU路径将不支持巨型帧。
尼尔斯2012年

同意杰里米。如果没有可用的TCP-CC,则可能会带来好处和后果,但至少应该概述一下。
克里斯·S

1

您应主观考虑以下方面的一些考虑和研究:

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

2)启动器-您需要根据需求审查软件启动器是否具有足够的性能。许多NIC具有iSCSI卸载功能,可以显着提高吞吐量,但是众所周知,某些较旧的虚拟机管理程序对它们的支持非常恼火。更成熟的产品(ESXi 4.1+)看起来不错。

3)安全性/权限-确保完全审核哪些启动器需要访问哪些LUN ...如果您一台Windows计算机上的管理员在磁盘上创建了“初始化磁盘”,那将是糟糕的一天。确实被另一台服务器用作VMware数据存储。


关于多路径-实际上,您也可以通过不同的网络来实现-与IP-FC(SAN与A / B具有不同硬件结构的概念非常普遍)相比,使用IP的技巧更为棘手。
尼尔斯2012年

我在多路径方面的经验主要是等逻辑的,在这种情况下,通常会为客户端提供一个发现IP地址(组IP),然后与该地址协商实际的目标地址。我想这可以通过不同的网络来完成,并且客户端可以找到该路径,也可以没有,但是如果组IP所在的那个子网消失了,发现就会失败。
SpacemanSpiff 2012年

我在不同VLAN的SLES11上尝试了(本机)多路径。棘手的部分是修改多路径配置,因此将进入同一物理存储的iSCSI目标视为同一设备。
尼尔斯2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.