典型的 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 和网络的其他虚拟分区提供了逻辑设计网络的方法,但不能更改交换机之间链接和中继的物理功能。当存储流量和其他网络流量最终要共享物理连接时,就像 VPN 一样,可能出现超额预定和丢失数据包的现象。此情况也适用于共享交换机间中继的 VLAN。设计 SAN 的性能时,必须考虑网络的物理限制而不是逻辑分配。