深入瞭解iSCSI的2種多路徑訪問機制

 
   
經過數年的發展後,iSCSI已成爲IP SAN的代名詞,大幅促進了存儲局域網絡(SAN)的普及應用。但相較於FC SANiSCSI雖然有建置價格低的優點,但也被認爲存在着許多不足,包括易受***、可用帶寬低,且缺乏高可用性的冗餘訪問機制等。
    事實上,若有適當的環境配合,iSCSI也能實現多路徑I/O(Multi-Path Input/OutputMPIO,多路徑輸入輸出)與多重連結(Multiple Connections per SessionMC/S)兩種多重路徑存取的機制,可建立負載平衡、故障失效切換等帶寬聚合應用,提供更可靠的存儲網絡環境。
SCSI2種多路徑訪問機制
    MPIOMC/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都不支持。
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章