深度分析iSCSI的2种多路径访问mpio协议与mc/s协议的区别

www.net130.com     日期:2012-6-26    浏览次数:
出处:数据中心天空
order-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class=Apple-style-span>

我在前面的文章中《深度分析ESX/ESXi mutipath功能和配置》有分析ESXi多路径策略,但是这篇文章主要是讲述了MPIO的多路径访问机制。今天就分析一下iSCSI的另一种多路径访问机制,同时分析一下两种机制的区别。

iSCSI协议的2种多路径访问机制相同点如下:
MPIO(Multi-Path Input/Output,多路径输入输出)与MC/S(Multiple Connections per Session,MC/S)都是利用多条实体存取通道,在服务器(iSCSI Initiator段)与存储设备(iSCSI Target端)之间建立逻辑通道,通过round robin的调度策略对进行存取操作,这样的多路径可以实现网络冗余,避免当其中一条路径出现故障时,导致所有的网络都瘫痪;同时多路径策略还可以网络负载通过round robin的方式负载均衡到不同的链路上,避免出现所有的负载都传输到一条路径中,导致其中一条路径负载过重的现像。
iSCSI也能实现多路径I/O(Multi-Path Input/Output,MPIO,多路径输入输出)与多重连接(Multiple Connections per Session,MC/S)两种多重路径存取的机制,可建立负载平衡、故障失效切换等带宽聚合应用,提供更可靠的存储网络环境。

2种机制间不同点如下:
MPIO:
MPIO可允许1个iSCSI Initiator透过多个Session连入同1个iSCSI Target设备,以便利用多网卡或iSCSI HBA启用负载平衡与故障失效切换机制,也可称作Multiple Sessions per Initiator。
MC/S:
MC/S可允许在同一个Session中,在iSCSI Initiator与iSCSI Target间建立多个TCP/IP连接,同样也能让用户利用多张网卡或iSCSI HBA启用负载平衡与故障失效切换机制。
MPIO是在更高的网络堆栈层上运作(即在iSCSI层上的SCSI指令层),且多条存取路径间的负载平衡机制,是针对1个指定的独立逻辑驱动器(LUN)运作;而MC/S则是iSCSI RFC中所定义的方法,是在iSCSI层上运作,具有更好的传输验证能力(Error Recovery Levels),另外MC/S的负载平衡是“同时”针对所有的逻辑驱动器运作,这点也与MPIO不同。
从普及度上看,MPIO明显比MC/S要更为普及。大多数iSCSI存储设备都能支持MPIO,只要能允许同一个iqn建立的session即可。但能支持MC/S的产商就少了许多,在软件式的iSCSI Target方面,目前能支持的也不多,如微软的iSCSI Target、Sun的Solaris iSCSI Target都不支持。

实现多路径要满足以下三个条件:
(1)iSCSI Initiator端需有大于两个网络端口连接到Target端。
(2)iSCSI Initiator软件需支持MPIO或MC/S。
(3)iSCSI Target设备需支持MPIO或MC/S。
其中第1项是最基本的条件,如没有两个以上的端口何谈多路径。Initiator和Target端要满足第2,3个条件才能保证多路径生效,如果不支持MPIO或MC/S功能那就没有必要说做多路径了。

iSCSI的底层是IP与以太网,理论上可直接从网卡实施,利用Port Trunking/Teaming/Link Aggregation的方式,将主机上的多张网卡捆绑在1个IP下,再连接到iSCSI存储设备上,搭配iSCSI存储设备传输埠上的对应设定,从而实现实体多路径连接。只要网卡端支持网卡绑定就可以实施。

注:在ESXI4.0以下版本并不支持以上两个多路径策略,是在4.0以后的版本的才开始支持这两种多路径策略。

分享道
相关新闻