ISCSI存储连接方式

我们分析了iSCSI存储的系统结构,下面来看iSCSI是如何与服务器、工作站等主机设备来连接的,也就是我们如何建立一个iSCSI网络存储系统。

iSCSI设备的主机接口一般默认都是IP接口,可以直接与以太网络交换机和iSCSI交换机连接,形成一个存储区域网络。根据主机端HBA卡、网络交换机的不同,iSCSI设备与主机之间有三种连接方式。

第一种:以太网卡+initiator软件方式。

服务器、工作站等主机使用标准的以太网卡,通过以太网线直接与以太网交换机连接,iSCSI存储也通过以太网线连接到以太网交换机上,或直接连接到主机的以太网卡上。在主机上安装Initiator软件。

安装Initiator软件后,Initiator软件可以将以太网卡虚拟为iSCSI卡,接受和发送iSCSI数据报文,从而实现主机和iSCSI设备之间的iSCSI协议和TCP/IP协议传输功能。

这种方式由于采用普通的标准以太网卡和以太网交换机,无需额外配置适配器,因此硬件成本最低。缺点是进行ISCSI包文和TCP/IP包文转换要点主机端的一部分资源。不过在低I/O和低带宽性能要求的应用环境中和完全满足数据访问要求。

目前很多最新版本的常用操作系统都提供免费的Initiator软件,建立一个存储系统除了存储设备本身外,基本上不需要投入更多的资金来,因此在三种系统连接方式中其建设成本是最低的。

第二种:硬件TOE网卡+initiator软件方式。

第一种方式由于采用普通以太网卡和以太网交换机,无需额外配置适配器,或专用的网络设备,因此硬件成本最低。但由于进行ISCSI包文和TCP/IP包文的打包和解包全部需要主机主处理器CPU来进行运算,数据传输率直接受到主机当前运行状态和可用资源的影响和限制,因此一般无法提供高带宽和高IOPS性能。

具有TOE(TCP Offload Engine)功能的智能以太网卡可以将网络数据流量的处理工作全部转到网卡上的集成硬件中进行,把系统主处理器CPU从忙于协议处理的繁重的内核中断服务中解脱出来,主机只承担TCP/IP控制信息的处理任务。

与第一种方式相比,采用TOE卡可以大幅度提高数据的传输速率。TCP/IP协议栈功能由TOE卡完成,而iSCSI层的功能仍旧由主机来完成。

由于TOE卡也采用TCP/IP协议,相当于一块高性能的以太网卡,所以第二种方式也可以看做是第一种连接方式的特殊情况。

第三种:iSCSI HBA卡连接方式。

在主机上安装专业的iSCSI HBA适配卡,从而实现主机与交换机之间、主机与存储之间的高效数据交换。

与前两种方式相比,第三种连接方式中采用了iSCSI HBA卡,因此数据传输性能最好,价格也最高。

后两种方式都需要在主机上安装专门的硬件板卡,由于目前TOE网卡和iSCSI HBA的市场价格都比较贵。如果网络中主机数量比较多,那么网络总资金投入不见得会比FC-SAN存储系统低很多,网络的带宽和性能却相比FC-SAN存储系统差了很多。

有的读者可能会问,为什么这三种方式中都没有采用iSCSI交换机?

实际上,我们能在市场上看到的iSCSI交换机都不是真正意义上交换机,所谓的iSCSI交换机应该称之为iSCSI协议转换器、或者iSCSI桥接器。一部分端口用来连接主机的iSCSI HBA卡,另一部分端口用来连接FC存储或SCSI存储,只能实现存储设备与主机之间的FC-iSCSI(或SCSI-iSCSI)协议连接,不能实现iSCSI-iSCSI协议连接,其工作方式完全不同于以太网交换机或FC交换机那样,实现某一个协议内的互联互通。

因此iSCSI交换机一般都用作iSCSI存储内的控制器,而不是iSCSI存储与主机之间网络连接设备。

ISCSI存储使用模式:

1、DAS使用方式

ISCSI存储设备和SCSI存储和FC存储一样,可以直接通过连接线缆与主机上的HBA连接,作为主机的DAS直接连接存储来使用,如下图:

ISCSI存储设备的卷由服务器或NAS网关来管理和使用,其它的工作站通过服务器和NAS网关来访问iSCSI存储上数据。整个系统安装调试简单方便,服务器和NAS网关很容易实现数据的网络化共享访问。但服务器和NAS网关直接影响整体存储网络系统的性能,低配置的服务器和NAS网关及有可能成为整个系统的性能瓶颈。

2、SAN使用方式

ISCSI和FC存储一样具有良好的网络扩展性,可通过网络交换设备与多台主机连接。通过网络交换设备连接时,iSCSI存储上的LUN对于主机来讲相当于裸设备,因而需要注意文件系统的管理问题。

A、存储设备层共享

ISCSI设备上创建多个LUN,不同的LUN制定给不同的主机。各主机分别管理和访问自己的LUN。相当于将多个主机的本地磁盘集中放置在一个网络化的设备中,各主机之间仅实现硬件设备层的共享。如下图:

B、集群共享

系统中有多个数据库系统和WEB集群系统,每两台服务器之间需要管理和使用相同的LUN,主机之间通过MSCS或RAC等软件实现集群共享功能。如下图:

每一个卷仅在两台主机之间共享,两台主机通过集群软件共同对同一个文件系统进行管理。

C、网络存储共享

在许多大型的高性能计算系统、广电非线性编辑制作系统、IPTV发布系统中,应用需要多台主机能同时访问同一个文件系统(同一个卷)中的数据,可能会是同一个数据。如下图:

为了保证同一个文件系统可以同时被多台主机访问,且不会因为并发访问而引起文件系统管理冲突,常规的做法是在所有需要文件系统共享的主机上安装SAN网络存储共享管理软件,并设置一台或多台主机为管理软件的服务器端。该服务器负责管理主机之间的元数据交换,因此被成为MDC,即Metadata Controller。

关于SAN网络存储共享管理软件的功能介绍请参看SAN网络存储共享管理软件全攻略