深入了解iSCSI的2种多路径访问机制

 
   
经过数年的发展后,iSCSI已成为IP SAN的代名词,大幅促进了存储局域网络(SAN)的普及应用。但相较于FC SANiSCSI虽然有建置价格低的优点,但也被认为存在着许多不足,包括易受攻击、可用带宽低,且缺乏高可用性的冗余访问机制等。
    事实上,若有适当的环境配合,iSCSI也能实现多路径I/O(Multi-Path Input/OutputMPIO,多路径输入输出)与多重连结(Multiple Connections per SessionMC/S)两种多重路径存取的机制,可建立负载平衡、故障失效切换等带宽聚合应用,提供更可靠的存储网络环境。
SCSI 2种多路径访问机制
    MPIO MC/S都是利用多条实体存取通道,在服务器(iSCSI Initiator)与存储设备(iSCSI Target)之间建立逻辑通道,可透过轮替的存取动作,避免单一实体通道中断时,连带导致存取中断;或是平衡多个实体通道间的传输负载,避免传输负荷集中在单一实体通道上。但2种机制间又有所不同:
多重路径MPIO
    MPIO 可允许1iSCSI Initiator透过多个Session连入同1iSCSI Target设备,以便利用多网卡或iSCSI HBA启用负载平衡与故障失效切换机制,也可称作Multiple Sessions per Initiator
多重连接MC/S
    MC/S 可允许在同一个Session中,在iSCSI InitiatoriSCSI Target间建立多个TCP/IP连接,同样也能让用户利用多张网卡或iSCSI HBA启用负载平衡与故障失效切换机制。
    简而言之,MPIO是在更高的网络堆栈层上运作(即在iSCSI层上的SCSI指令层),且多条存取路径间的负载平衡机制,是针对1个指定的独立逻辑驱动器(LUN)运作;MC/S则是iSCSI RFC中所定义的方法,是在iSCSI层上运作,具有更好的传输验证能力(Error Recovery Levels),另外MC/S的负载平衡是同时针对所有的逻辑驱动器运作,这点也与MPIO不同。
实现多路径存取的3种方式
    iSCSI 的底层是IP与以太网,理论上可直接从网卡实施,利用Port Trunking/Teaming/Link Aggregation的方式,将主机上的多张网卡捆绑在1IP下,再连接到iSCSI存储设备上,搭配iSCSI存储设备传输埠上的对应设定,从而实现实体多路径连接。但问题在于,不是所有网卡都能支持这种方式。
    另外,有一些存储厂商提供的SAN路径管理软件,也能协助用户建立iSCSI多路径存取环境,如EMC PowerPathHDSHitachi Dynamic Link ManagerNetApp SnapDriveInfortrend EonPath等,但这些软件通常都只支持特定厂牌型号的iSCSI设备。
    不过我们也可跳过网卡这一层,亦无须使用路径管理软件,直接利用iSCSI Initiator软件配合iSCSI设备建立多路径存取。要利用这种方式建立MPIO还是MC/S,都必须满足一定条件:
    (1)iSCSI Initiator 端需有多张网卡或网络端口连接到Target端。
    (2)iSCSI Initiator 软件需支持MPIOMC/S
    (3)iSCSI Target 设备需支持MPIOMC/S
    其中第1项是最基本的条件,主机若没有2个以上的网络端口(2张以上网卡/iSCSI HBA)可用,自然谈不上多路径存取,不过目前多数服务器都内建了至少2GbE网络端口,这点通常不会成为太大问题。
    2项条件则视不同环境而定,目前各主要操作系统厂商提供的iSCSI Initiator软件中,目前以Windows的支持较为齐全,如微软的iSCSI Initiator 2.06版以后就能支持MPIOMC/S;Sun则有OpenSolaris MPxIO程序可支持Solaris环境的MPIO;Linux环境同样也能支持MPIO
    而就第3点来说,目前MPIO远比MC/S普及,大多数iSCSI存储设备都能支持MPIO,只要能允许同一个iqn建立的session即可。
    但能支持MC/S的产品就少了许多,在软件式的iSCSI Target方面,目前能支持的也不多,如微软的iSCSI TargetSunSolaris iSCSI Target都不支持。
 
 

你可能感兴趣的:(职场,休闲,网络存储,多路径,ipsan)