在linux和Windows下配置HP FC存儲設備多路徑驅動

  1. 主機安裝HBA卡驅動,一般光纖卡的廠家就是QLogic和Emulex的。


Linux下查看光纖卡驅動模塊是否加載通過

lsmod |grep qla2xxx #查看是否加載了QLogic的光纖卡模塊
lsmod |grep lpfc #查看是否加載了Emulex的光纖卡模塊
modprobe lpfc  #加載相應的光纖卡模塊

Windows下查看設備管理器查看是否加載了驅動(如果沒有的話安裝相應的光纖卡驅動)。


2. 查看光纖卡的WWN號(記錄下來爲存儲設備映射時使用)

Linux

more /sys/class/fc_host/host1/node_name #根據光纖卡端口的數量可能會有host1,host2等。

Windows

wmic /namespace:\\root\wmi path MSFC_FCAdapterHBAAttributes get /value #查看PortWWN號碼,是10進制的,需要轉換到16進制(其實一般只需要把最後的號碼轉換一下,在存儲設備中能夠識別出來是那臺主機即可)

3. 存儲設備映射捲到主機

FC存儲設備是通過WWN號來識別主機的,此處把劃出來的卷分配給相應主機的WWN號碼即可。


4. 安裝多路徑軟件

Linux

yum list |grep device-mapper          #查找多路徑包
yum install device-mapper-multipath   #CentOS下安裝多路徑軟件

suse 通過yast或zypper安裝,Ubuntu 通過 apt-get安裝。兩個包:device-mapper和device-mapper-multipath包。搜索一下安裝這兩個包,名字各版本可能有差別。

Windows 2008以上

服務器管理--功能--添加功能--選擇Multipath IO包安裝。然後選擇管理員工具-MPIO--發現多路徑選項卡--添加即可,重啓後即可看到效果。


5. Linux多路徑配置文件

centos 5.x

修改/etc/multipath.conf

defaults {
	udev_dir		/dev
	polling_interval	10
	selector		"round-robin 0"
	path_grouping_policy	failover
	getuid_callout		"/sbin/scsi_id -g -u -s /block/%n"
	prio_callout		"/bin/true"
	path_checker		tur
	rr_min_io		100
	rr_weight       	uniform
	failback		immediate
	no_path_retry		12
	user_friendly_names	yes
}

blacklist {
	devnode		"^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
	devnode 	"^hd[a-z][[0-9]*]"
}

devices {

device {
	vendor			"HP|COMPAQ"
	product 		"HSV1[01]1 \(C\)COMPAQ|HSV2[01]0|HSV300|HSV4[05]0"
	path_grouping_policy	group_by_prio
        getuid_callout		"/sbin/scsi_id -g -u -s /block/%n"
        path_checker		tur
        path_selector		"round-robin 0"
        prio_callout		"/sbin/mpath_prio_alua /dev/%n"
        rr_weight		uniform
        failback		immediate
	hardware_handler	"0"
        no_path_retry		18
	rr_min_io		100
}

device {
        vendor                  "HP"
        product                 "P2000 G3 FC|P2000G3 FC/iSCSI"
        path_grouping_policy    group_by_prio
        getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
        path_checker            tur
        path_selector           "round-robin 0"
        prio_callout            "/sbin/mpath_prio_alua /dev/%n"
        rr_weight               uniform
        failback                immediate
        hardware_handler        "0"
        no_path_retry           18
        rr_min_io               100
}

device {
        vendor			"HP"
        product			"OPEN-.*"
        path_grouping_policy	multibus
        getuid_callout		"/sbin/scsi_id -g -u -s /block/%n"
	path_selector		"round-robin 0"
        rr_weight		uniform
        path_checker		tur
	hardware_handler	"0"
        failback		immediate
        no_path_retry		18
	rr_min_io		1000
}

device {
        vendor                  "HP"
        product                 "MSA VOLUME*"
        path_grouping_policy    group_by_prio
        getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
        path_checker            tur
        path_selector           "round-robin 0"
        prio_callout            "/sbin/mpath_prio_alua /dev/%n"
        rr_weight               uniform
        failback                immediate
        hardware_handler        "0"
        no_path_retry           18
        rr_min_io               100
}

device {
        vendor                  "HP"
        product                 "MSA2012sa|MSA2312sa|MSA2324sa"
        path_grouping_policy    group_by_prio
        getuid_callout          "/sbin/hp_scsi_id -g -u -n -s /block/%n"
        path_checker            tur
        path_selector           "round-robin 0"
        prio_callout            "/sbin/mpath_prio_alua %d"
        rr_weight               uniform
        failback                immediate
        hardware_handler        "0"
        no_path_retry           18
        rr_min_io               100
}

device {
        vendor                  "HP"
        product                 "MSA2312fc|MSA2324fc|MSA2312i|MSA2324i"
        path_grouping_policy    group_by_prio
        getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
        path_checker            tur
        path_selector           "round-robin 0"
        prio_callout            "/sbin/mpath_prio_alua /dev/%n"
        rr_weight               uniform
        failback                immediate
        hardware_handler        "0"
        no_path_retry           18
        rr_min_io               100
}

device {
        vendor			"HP"
        product			"MSA2[02]12fc|MSA2012i"
        path_grouping_policy	multibus
        getuid_callout		"/sbin/scsi_id -g -u -s /block/%n"
	path_selector		"round-robin 0"
        rr_weight		uniform
        path_checker		tur
	hardware_handler	"0"
        failback		immediate
        no_path_retry		18
	rr_min_io		100
}

}

centos 6.x-7.0

mpathconf --enable --with_multipathd y #簡化了配置,同樣也可以使用5.x的配置文件

suse

defaults {
	udev_dir		/dev
	polling_interval	10
	selector		"round-robin 0"
	path_grouping_policy	failover
	getuid_callout		"/lib/udev/scsi_id -g -u /dev/%n"
	prio			const
	path_checker		tur
	rr_min_io		100
	rr_weight       	uniform
	failback		immediate
	no_path_retry		12
	user_friendly_names	yes
}

blacklist {
	devnode		"^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
	devnode 	"^hd[a-z][[0-9]*]"
}

devices {

device {
	vendor			"HP|COMPAQ"
      	product			"HSV1[01]1 \(C\)COMPAQ|HSV2[01]0|HSV300|HSV4[05]0"
	path_grouping_policy	group_by_prio
	getuid_callout          "/lib/udev/scsi_id -g -u /dev/%n"
	path_checker		tur
        path_selector		"round-robin 0"
	prio			alua
        rr_weight		uniform
        failback		immediate
	hardware_handler	"0"
        no_path_retry		18
	rr_min_io		100
}

device {
        vendor                  "HP"
        product                 "P2000 G3 FC|P2000G3 FC/iSCSI"
        path_grouping_policy    group_by_prio
        getuid_callout          "/lib/udev/scsi_id -g -u /dev/%n"
        path_checker            tur
        path_selector           "round-robin 0"
        prio                    alua
        rr_weight               uniform
        failback                immediate
        hardware_handler        "0"
        no_path_retry           18
        rr_min_io               100
}

device {
        vendor			"HP"
        product			"OPEN-.*"
        path_grouping_policy	multibus
	getuid_callout          "/lib/udev/scsi_id -g -u /dev/%n"
	path_selector		"round-robin 0"
        rr_weight		uniform
        path_checker		tur
	hardware_handler	"0"
        failback		immediate
        no_path_retry		18
	rr_min_io		1000
}

device {
        vendor                  "HP"
        product                 "MSA VOLUME*"
        path_grouping_policy    group_by_prio
	getuid_callout          "/lib/udev/scsi_id -g -u /dev/%n"
	path_checker            tur
        path_selector           "round-robin 0"
        prio			alua
        rr_weight               uniform
        failback                immediate
        hardware_handler        "0"
        no_path_retry           18
        rr_min_io               100
}

device {
        vendor                  "HP"
        product                 "MSA2312fc|MSA2324fc|MSA2312i|MSA2324i|MSA2012sa|MSA2312sa|MSA2324sa|MSA2000s VOLUME"
        path_grouping_policy    group_by_prio
        getuid_callout          "/lib/udev/scsi_id -g -u /dev/%n"
        path_checker            tur
        path_selector           "round-robin 0"
        prio                    alua
        rr_weight               uniform
        failback                immediate
        hardware_handler        "0"
        no_path_retry           18
        rr_min_io               100
}

device {
        vendor			"HP"
        product			"MSA2[02]12fc|MSA2012i"
        path_grouping_policy	multibus
        getuid_callout          "/lib/udev/scsi_id -g -u /dev/%n"
	path_selector		"round-robin 0"
        rr_weight		uniform
        path_checker		tur
	hardware_handler	"0"
        failback		immediate
        no_path_retry		18
	rr_min_io		100
}

}

ubuntu

defaults {
        udev_dir                /dev
        polling_interval        10
        selector                "round-robin 0"
        path_grouping_policy    failover
        getuid_callout          "/lib/udev/scsi_id -g -u /block/%n"
        prio_callout            "/bin/true"
        path_checker            tur
        rr_min_io               100
        rr_weight               uniform
        failback                immediate
        no_path_retry           12
        user_friendly_names     yes
}

blacklist {
        devnode         "^(ram|raw|loop|fd|md|dm-|sr|scd|st|sda)[0-9]*"
        devnode         "^hd[a-z][[0-9]*]"
        devnode         "^cciss!c[0-9]d[0-9]*"
}

devices {

device {
        vendor                  "HP|COMPAQ"
        product                 "HSV1[01]1 \(C\)COMPAQ|HSV2[01]0|HSV3[046]0|HSV4[05]0"
        path_grouping_policy    group_by_prio
        getuid_callout          "/lib/udev/scsi_id -g -u /block/%n"
        path_checker            tur
        path_selector           "round-robin 0"
        prio_callout            "mpath_prio_alua /dev/%n"
        rr_weight               uniform
        failback                immediate
        hardware_handler        "0"
        no_path_retry           18
        rr_min_io               100
}

device {
        vendor                  "HP"
        product                 "P2000 G3 FC|P2000G3 FC/iSCSI"
        path_grouping_policy    group_by_prio
        getuid_callout          "/lib/udev/scsi_id -g -u /block/%n"
        path_checker            tur
        path_selector           "round-robin 0"
        prio_callout            "mpath_prio_alua /dev/%n"
        rr_weight               uniform
        failback                immediate
        hardware_handler        "0"
        no_path_retry           18
        rr_min_io               100
}

device {
        vendor                  "HP"
        product                 "OPEN-.*"
        path_grouping_policy    multibus
        getuid_callout          "/lib/udev/scsi_id -g -u /block/%n"
        path_selector           "round-robin 0"
        rr_weight               uniform
        path_checker            tur
        hardware_handler        "0"
        failback                immediate
        no_path_retry           18
        rr_min_io               1000
}

device {
        vendor                  "HP"
        product                 "MSA VOLUME*"
        path_grouping_policy    group_by_prio
        getuid_callout          "/lib/udev/scsi_id -g -u /block/%n"
        path_checker            tur
        path_selector           "round-robin 0"
        prio_callout            "mpath_prio_alua /dev/%n"
        rr_weight               uniform
        failback                immediate
        hardware_handler        "0"
        no_path_retry           18
        rr_min_io               100
}

device {
        vendor                  "HP"
        product                 "MSA2012sa|MSA2312sa|MSA2324sa"
        path_grouping_policy    group_by_prio
        getuid_callout          "/lib/udev/hp_scsi_id -g -u -n /block/%n"
        path_checker            tur
        path_selector           "round-robin 0"
        prio_callout            "mpath_prio_alua %d"
        rr_weight               uniform
        failback                immediate
        hardware_handler        "0"
        no_path_retry           18
        rr_min_io               100
}

device {
        vendor                  "HP"
        product                 "MSA2312fc|MSA2324fc|MSA2312i|MSA2324i"
        path_grouping_policy    group_by_prio
        getuid_callout          "/lib/udev/scsi_id -g -u /block/%n"
        path_checker            tur
        path_selector           "round-robin 0"
        prio_callout            "mpath_prio_alua /dev/%n"
        rr_weight               uniform
        failback                immediate
        hardware_handler        "0"
        no_path_retry           18
        rr_min_io               100
}

device {
        vendor                  "HP"
        product                 "MSA2[02]12fc|MSA2012i"
        path_grouping_policy    multibus
        getuid_callout          "/lib/udev/scsi_id -g -u /block/%n"
        path_selector           "round-robin 0"
        rr_weight               uniform
        path_checker            tur
        hardware_handler        "0"
        failback                immediate
        no_path_retry           18
        rr_min_io               100
}

}

其實各Linux發行版都是使用Redhat開發的multipath包,只是有些命令的位置不同而已。修改一下就可以適用與各linux系統。

具體的配置參數信息請參考:

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/


6. Linux 配置多路徑命令

centos 5.x

chkconfig --list|grep multipathd #查看多路徑服務是否開機啓動
chkconfig multipathd on #開機打開多路徑服務
service multipathd start #打開多路徑服務
multipath  #配置多路徑 -vn n爲數字,可以顯示更多信息
multipath -ll #查看多路徑設備和信息

其他

multipath 
multipath -ll

在啓用了user_friendly_names配置後設備名爲 /dev/mapper/mpathn,其中n爲字母,這個是在系統啓動時就已經創建的,可以直接使用。不要直接操作 /dev/dm-n(內部使用) 或是 /dev/mpath/mpathn(udev創建,啓動中無法使用),因爲它們爲系統所使用。


7. 排錯

multipathd -k #進入交互模式,具體請查看 man multipathd
>list|show config
>reconfigure
>list|show path


小技巧:當存儲添加了新的映射時,我們可以使用下面的命令讓系統重新識別設備而無需重啓。

echo 1 >/sys/class/fc_host/host0/issue_lip
echo 1 >/sys/class/fc_host/host1/issue_lip
echo "- - -" >/sys/class/scsi_host/host0/scan
echo "- - -" >/sys/class/scsi_host/host1/scan


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