資源描述:
《LINUX下多路徑(詳細(xì))》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、LINUX下多路徑(multi-path)介紹及使用??2013-05-1611:15:34
2、??分類:?openfiler系統(tǒng)+fr
3、舉報
4、字號?訂閱一、什么是多路徑普通的電腦主機都是一個硬盤掛接到一個總線上,這里是一對一的關(guān)系。而到了有光纖組成的SAN環(huán)境,或者由iSCSI組成的IPSAN環(huán)境,由于主機和存儲通過了光纖交換機或者多塊網(wǎng)卡及IP來連接,這樣的話,就構(gòu)成了多對多的關(guān)系。也就是說,主機到存儲可以有多條路徑可以選擇。主機到存儲之間的IO由多條路徑可以選擇。每個主機到所對應(yīng)的存儲可以經(jīng)過幾條不同的路徑,如果是同時使用的話,I/O流量如何分配?其中一條路徑壞掉了,如何處理?還有在操
5、作系統(tǒng)的角度來看,每條路徑,操作系統(tǒng)會認(rèn)為是一個實際存在的物理盤,但實際上只是通向同一個物理盤的不同路徑而已,這樣是在使用的時候,就給用戶帶來了困惑。多路徑軟件就是為了解決上面的問題應(yīng)運而生的。多路徑的主要功能就是和存儲設(shè)備一起配合實現(xiàn)如下功能:?1.故障的切換和恢復(fù)?2.IO流量的負(fù)載均衡?3.磁盤的虛擬化?由于多路徑軟件是需要和存儲在一起配合使用的,不同的廠商基于不同的操作系統(tǒng),都提供了不同的版本。并且有的廠商,軟件和硬件也不是一起賣的,如果要使用多路徑軟件的話,可能還需要向廠商購買license才行。比如EMC公司基于linux下的多路徑軟件,就需要單獨的購買license。好在,R
6、edHat和Suse的2.6的內(nèi)核中都自帶了免費的多路徑軟件包,并且可以免費使用,同時也是一個比較通用的包,可以支持大多數(shù)存儲廠商的設(shè)備,即使是一些不是出名的廠商,通過對配置文件進(jìn)行稍作修改,也是可以支持并運行的很好的。??二、Linux下multipath介紹,需要以下工具包:在CentOS5中,最小安裝系統(tǒng)時multipath已經(jīng)被安裝,查看multipath是否安裝如下:?1、device-mapper-multipath:即multipath-tools。主要提供multipathd和multipath等工具和multipath.conf等配置文件。這些工具通過devicemapp
7、er的ioctr的接口創(chuàng)建和配置multipath設(shè)備(調(diào)用device-mapper的用戶空間庫。創(chuàng)建的多路徑設(shè)備會在/dev/mapper中)。2、device-mapper:主要包括兩大部分:內(nèi)核部分和用戶部分。內(nèi)核部分主要由devicemapper核心(dm.ko)和一些targetdriver(md-multipath.ko)。核心完成設(shè)備的映射,而target根據(jù)映射關(guān)系和自身特點具體處理從mappereddevice下來的i/o。同時,在核心部分,提供了一個接口,用戶通過ioctr可和內(nèi)核部分通信,以指導(dǎo)內(nèi)核驅(qū)動的行為,比如如何創(chuàng)建mappereddevice,這些divec
8、e的屬性等。linuxdevicemapper的用戶空間部分主要包括device-mapper這個包。其中包括dmsetup工具和一些幫助創(chuàng)建和配置mappereddevice的庫。這些庫主要抽象,封裝了與ioctr通信的接口,以便方便創(chuàng)建和配置mappereddevice。multipath-tool的程序中就需要調(diào)用這些庫。?3、dm-multipath.ko和dm.ko:dm.ko是devicemapper驅(qū)動。它是實現(xiàn)multipath的基礎(chǔ)。dm-multipath其實是dm的一個target驅(qū)動。?4、scsi_id:包含在udev程序包中,可以在multipath.conf中
9、配置該程序來獲取scsi設(shè)備的序號。通過序號,便可以判斷多個路徑對應(yīng)了同一設(shè)備。這個是多路徑實現(xiàn)的關(guān)鍵。scsi_id是通過sg驅(qū)動,向設(shè)備發(fā)送EVPDpage80或page83的inquery命令來查詢scsi設(shè)備的標(biāo)識。但一些設(shè)備并不支持EVPD的inquery命令,所以他們無法被用來生成multipath設(shè)備。但可以改寫scsi_id,為不能提供scsi設(shè)備標(biāo)識的設(shè)備虛擬一個標(biāo)識符,并輸出到標(biāo)準(zhǔn)輸出。multipath程序在創(chuàng)建multipath設(shè)備時,會調(diào)用scsi_id,從其標(biāo)準(zhǔn)輸出中獲得該設(shè)備的scsiid。在改寫時,需要修改scsi_id程序的返回值為0。因為在multipa
10、th程序中,會檢查該直來確定scsiid是否已經(jīng)成功得到。?三、multipath在CentOS5中的基本配置過程:?1、安裝和加載多路徑軟件包?#yum–yinstalldevice-mapperdevice-mapper-multipath#chkconfig–level2345multipathdon#設(shè)置成開機自啟動multipathd#lsmod
11、grepdm_multipath#來檢查安裝是否正常??如果模塊