1、Linux下multipath介紹,須要如下工具包:node
在CentOS 5中,最小安裝系統時multipath已經被安裝,查看multipath是否安裝以下:linux
1、device-mapper-multipath:即multipath-tools。主要提供multipathd和multipath等工具和 multipath.conf等配置文件。這些工具經過device mapper的ioctr的接口建立和配置multipath設備(調用device-mapper的用戶空間庫。建立的多路徑設備會在/dev /mapper中)。vim
2、 device-mapper:主要包括兩大部分:內核部分和用戶部分。內核部分主要由device mapper核心(dm.ko)和一些target driver(md-multipath.ko)。核心完成設備的映射,而target根據映射關係和自身特色具體處理從mappered device 下來的i/o。同時,在覈心部分,提供了一個接口,用戶經過ioctr可和內核部分通訊,以指導內核驅動的行爲,好比如何建立mappered device,這些divece的屬性等。linux device mapper的用戶空間部分主要包括device-mapper這個包。其中包括dmsetup工具和一些幫助建立和配置mappered device的庫。這些庫主要抽象,封裝了與ioctr通訊的接口,以便方便建立和配置mappered device。multipath-tool的程序中就須要調用這些庫。
app
3、dm-multipath.ko和dm.ko:dm.ko是device mapper驅動。它是實現multipath的基礎。dm-multipath實際上是dm的一個target驅動。
工具
4、scsi_id: 包含在udev程序包中,能夠在multipath.conf中配置該程序來獲取scsi設備的序號。經過序號,即可以判斷多個路徑對應了同一設備。這個是多路徑實現的關鍵。scsi_id是經過sg驅動,向設備發送EVPD page80或page83 的inquery命令來查詢scsi設備的標識。但一些設備並不支持EVPD 的inquery命令,因此他們沒法被用來生成multipath設備。但能夠改寫scsi_id,爲不能提供scsi設備標識的設備虛擬一個標識符,並輸出到標準輸出。multipath程序在建立multipath設備時,會調用scsi_id,從其標準輸出中得到該設備的scsi id。在改寫時,須要修改scsi_id程序的返回值爲0。由於在multipath程序中,會檢查該直來肯定scsi id是否已經成功獲得。 rest
2、multipath在CentOS 5中的基本配置過程:
1、安裝和加載多路徑軟件包
# yum –y install device-mapper device-mapper-multipathblog
若是沒法安裝,請查看是否接外網和DNS設置接口
#vi /etc/sysconfig/network-scrips/ficfg-bond0ip
# chkconfig –level 2345 multipathd on #設置成開機自啓動multipathdget
#chkconfig multpathd on
# lsmod |grep dm_multipath #來檢查安裝是否正常
# service multipathd start
# multipath –v2
#multipath –ll
若是不行,就重啓系統
2、配置multipath:
Multipath的配置文件是/etc/multipath.conf , 如須要multipath正常工做只須要以下配置便可:(若是須要更加詳細的配置,請看本文後續的介紹)
blacklist {
devnode "^sda"
}
defaults {
user_friendly_names yes
path_grouping_policy multibus
failback immediate
no_path_retry fail
}
# vi /etc/multipath.conf
三、multipath基本操做命令
# /etc/init.d/multipathd start #開啓mulitipath服務
# multipath -F #刪除現有路徑
# multipath -v2 #格式化路徑
# multipath -ll #查看多路徑
若是配置正確的話就會在/dev/mapper/目錄下多出mpatha、mpath0等之類設備。
用fdisk -l命令能夠看到多路徑軟件建立的磁盤,以下圖中的/dev/dm-[0-3]
四、multipath磁盤的基本操做
要對多路徑軟件生成的磁盤進行操做直接操做/dev/mapper/目錄下的磁盤就行.
在對多路徑軟件生成的磁盤進行分區以前最好運行一下pvcreate命令:
# pvcreate /dev/mapper/mpath0
# fdisk /dev/mapper/mpath0
# pvcreate /dev/mapper/mpatha
# fdisk /dev/mapper/mpatha
用fdisk對多路徑軟件生成的磁盤進行分區保存時會有一個報錯,此報錯不用理會。
fdisk對多路徑軟件生成的磁盤進行分區以後,所生成的磁盤分區並無立刻添加到/dev/目錄下,此時咱們要重啓IPSAN或者FCSAN的驅動,若是是用iscsi-initiator來鏈接IPSAN的重啓ISCSI服務就能夠發現所生成的磁盤分區了
# service iscsi restart
# ls -l /dev/mapper/
如上圖中的mpath0p1和mpath1p1就是咱們對multipath磁盤進行的分區
# mkfs.ext3 /dev/mapper/mpath0p1 #對mpath1p1分區格式化成ext3文件系統
# mount /dev/mapper/mpath0p1 /ipsan/ #掛載mpath1p1分區
5、Oracle 集羣環境綁定LUN的別名
綁定別名,防止設備重啓後別名變化。若是是集羣環境,全部的機器必須一致。
在/etc/multipath.conf中有設定各wwid 別名。
#vim /etc/multipath/bindings