存儲多路徑

一、多路徑簡介

普通電腦都是將硬盤掛接到主板上。直連式存儲DAS直接將存儲設施通過SCSI連接到服務器。這兩種方式都是將存儲於服務器建立一一對應的關係。在現代數據中心的SAN或者IPSAN環境中,主機和存儲通過光纖或者以太網進行連接,大多數情況下都會做鏈路冗餘。這樣,存儲與服務器間的連接就不再是唯一的路徑。如果所有路徑同時啓用,這就會帶來服務器訪問存儲時的路徑選擇問題。實現冗餘IO路徑的方式通常有兩種:由存儲的控制器固件提供的AVT/ADT (Auto Volume Transfer/Auto Disk Transfer) 功能以及由服務器系統提供的多路徑(multipath)驅動。

二、原理

Linux系統中,多路徑技術Device Mapper技術密不可分。Device MapperLinux 2.6內核中通用的設備映射機制。Device Mapper技術也被用於Linux中邏輯卷管理的映射機制。Device Mapper的內核結構如下圖

wKiom1MTNTbD9CGqAAEoG0GOuL0855.jpg

(圖片來源:Linux 內核中的 DeviceMapper 機制[1]

   Device Mapper通過path selectors進行路徑選擇,並映射爲系統所使用的設備,並在/dev/下仍保有全部的物理路徑,如/dev/dm-0等。

   每一個multipath設備都有一個WWID(World Wide Identifier),這個id是唯一且不可更改的。默認情況下,multipath設備的名稱被設置爲它的WWID。也可以在配置文件中使用_friendly_names選項,爲設備取一個別名,別名爲mpath*,位於/dev/mapper下。

三、應用

當多路徑被配置爲主動/主動方式時,可以實現動態負載均衡;當採用主動/被動模式時,可以實現冗餘鏈路,從而在I/O路徑中發生故障時切換到備用路徑。

多路徑主要功能就是故障切換或者提高性能。同時,配合存儲設施一起,可以實現磁盤虛擬化等。其原理是將同一LUN通過多條鏈路進行共享,從而實現多條訪問路徑。

wKiom1MTNWujxFL_AAFz6_zimMg477.jpg

(圖片來源:紅帽企業版Linux 6 文檔[2]


如上圖所示,兩個RAID控制器到RAID之間使用了多條路徑。每個RAID都通過兩個控制器接入兩個不同的SAN。對服務器而言,在訪問任一存儲時,都有兩條路徑可以選擇。這樣就可以使用多路徑技術對兩條路徑進行調度。

當存儲的一個控制器損壞乃至一個SAN損壞時,由於使用多路徑技術,服務器扔能通過另一條路徑訪問全部設備。能夠顯著降低宕機時間,增加了服務的可持續性。


[1] http://www.ibm.com/developerworks/cn/linux/l-devmapper/

[2] https://access.redhat.com/site/documentation/zh-CN/Red_Hat_Enterprise_Linux/6/html-single/DM_Multipath/index.html




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章