自从六年前出道以来,iSCSI已经以疾风暴雨之势占领了存储世界。其支持者通常都专注于其卓越的性价比,但是其成功的秘密却是广为人知的一些实施技巧:iSCSI使用标准的TCP/IP网络连接来传输“块级”数据,所以即使几乎没有存储经验的网络管理员也感到十分轻松。

  事实上,iSCSI易于建立,也容易在建立时出错。根据具体情况的不同,这种差错可导致性能不良或可靠性不高或这两种问题兼而有之。构建一个可以交付企业级性能和可靠性的iSCSI SAN需要进行一些规划,还需要深入了解你选择的SAN平台是如何运行的。

  低级配置带来的灾难

  假设你为一家中小型企业工作,并且有几台Windows服务器,你想将其连接到iSCSI SAN上。这些服务器都是全新的,并拥有四个板载的1Gbps网卡,但是仅有一个网卡连接到了一台交换机,一台低端的不可管理的的千兆交换机。

  乍一看,似乎你能够将SAN插入到交换机中,并为其分配IP地址,在服务器上安装微软的iSCSI initiator,并配置它使其连接到SAN,好象可以高枕无忧了。实际上,你能够从服务器上加载SAN存储器,而且它还可以凑合着运行—只要你并不设法调整它。然而,如果你将实际的负载加到SAN卷上,很快就会发现这种设计的不足之处。

  以这种方式连接iSCSI存储器存在着几个问题。你将没有交换机或网卡的冗余,SAN上没有负载均衡,也没有需要用来优化iSCSI通信流(通过交换机的)的特性,而且,最糟的可能是,存储器将会与前端的客户端通信争夺带宽。

  正确建立iSCSI

  在上面的情形中,缺失的元素是很明显的:一台象样的交换机。一台优良的交换机是iSCSI SAN的关键部分。确实,任何千兆交换机都可用于iSCSI,但是采用低廉的不可管理的交换机会使你遗漏一些重要的特性。

  首先,你需要交换机的畅通而非闭塞,即交换机需要能够在其所有的端口上同时处理全速率的输入和输出;并非所有的交换机都能这样;甚至有些企业级交换机都要在邻近的端口组之间共享带宽(特别是机架式交换机,如思科的Catalyst 4500,当然还有其它种类。)

  其次,你需要能够支持流控制。流控制是一个第二层的以太网协议,它准许一台正在接收的主机向正在发送的主机发出减缓发送数据量的请求。这会防止服务器或SAN发送的数据超过了另一方设备能够接收的能力,这会导致大量的低效TCP重发,并从总体上导致性能降低。

  第三,你希望交换机支持巨型帧,即jumbo framing。典型的以太网交换机仅限于1500字节在,而巨型帧jumbo framing扩展到了9000个字节。这很重要,因为这样做减少了需要通过电缆的数据包的数量,并导致更高的链路效率和更低的延迟。多数现代的交换机都支持此特性,但并非所有的都支持。

  最后一点,你需要一台支持VLAN的交换机。你希望将iSCSI通信隔离到它自己的VLAN上,当然部分原因是因为性能,但最主要地是为了以一种快捷简易的方式确保未授权的主机无法连接到SAN。