Linux:multipathd(多路径)
这两天公司的服务器捣鼓10g RAC,服务器是HP(惠普)提供的。
安装过程中,在为RAC准备共享存储的时候,存储的多路径上遇到了问题:没有相应的驱动程序。
记得以前做配置的时候HP是提供了相对应的多路径方面的驱动支持的,但是,既然现在没有提供了,就只能使用Linux自己的多路径驱动了。
在RHEL中,原生的多路径支持程序是:multipathd。
它在RHEL的光盘介质中就能找到:
1 2 3 4 |
[root@smmis1 ~]# yum list | grep --color multipath Unable to read consumer identity device-mapper-multipath.x86_64 0.4.7-48.el5 installed [root@smmis1 ~]# |
而且,如上所示,默认情况下,操作系统会自动的安装它。
该服务默认情况下是不开机启动的,由于我打算在RAC中应用该服务,所以我需要它开机启动:
1 2 3 4 |
[root@smmis1 ~]# chkconfig multipathd on [root@smmis1 ~]# chkconfig multipathd --list multipathd 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@smmis1 ~]# |
multipathd的配置文件为:/etc/multipath.conf
默认情况下,multipathd对所有的设备都是禁用的:
1 2 3 4 5 |
# Blacklist all devices by default. Remove this to enable multipathing # on the default devices. blacklist { devnode "*" } |
要打开禁用,需要在配置文件中注释掉黑名单(Black List)中的条目,如下:
1 2 3 4 5 |
# Blacklist all devices by default. Remove this to enable multipathing # on the default devices. blacklist { # devnode "*" } |
默认情况下,多路径的策略也是空的,… 你可以看到/etc/multipath.conf的内容都是“#”被注释的。
多路径策略的设置是与具体的环境相关的。
比如说,在我的环境中,多路径呈现的磁盘为:/dev/sda与/dev/sdb。
它们的状态如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[root@smmis1 ~]# /sbin/scsi_id -g -u -s /block/sda 3600c0ff0001e4c54d367535501000000 [root@smmis1 ~]# /sbin/scsi_id -g -u -s /block/sdb 3600c0ff0001e4c54d367535501000000 [root@smmis1 ~]# [root@smmis1 ~]# cat /sys/block/sda/device/vendor HP [root@smmis1 ~]# cat /sys/block/sda/device/model MSA 1040 SAN [root@smmis1 ~]# [root@smmis1 ~]# cat /sys/block/sdb/device/vendor HP [root@smmis1 ~]# cat /sys/block/sdb/device/model MSA 1040 SAN [root@smmis1 ~]# |
那么,这种情况下,如果我希望将多路径磁盘绑定为别名:oracledisk01的设备,我的多路径策略需要如下设置:
1 2 3 4 |
multipaths { multipath { wwid 3600c0ff0001e4c54d367535501000000 alias oracledisk01 |
设置完成后,重启multipathd服务,生效配置:service multipathd restart。
配置应用成功后,你应该可以在:/dev/mapper中找到记录:
1 2 3 4 5 6 7 8 9 10 |
[root@smmis1 ~]# ll /dev/mapper/ total 0 crw------- 1 root root 10, 60 May 13 18:19 control brw-rw---- 1 root disk 253, 2 May 13 19:10 oracledisk01 brw-rw---- 1 root disk 253, 3 May 13 19:10 oracledisk01p1 brw-rw---- 1 root disk 253, 4 May 13 19:10 oracledisk01p2 brw-rw---- 1 root disk 253, 5 May 13 19:10 oracledisk01p3 brw-rw---- 1 root disk 253, 0 May 13 18:19 VolGroup01-LogVol00 brw-rw---- 1 root disk 253, 1 May 13 18:19 VolGroup01-LogVol01 [root@smmis1 ~]# |
你也可以通过“multipath”的命令查看当前的多路径状态:
1 2 3 4 5 6 7 |
[root@smmis1 ~]# multipath -ll oracledisk01 (3600c0ff0001e4c54d367535501000000) dm-2 HP,MSA 1040 SAN [size=1.1T][features=0][hwhandler=0][rw] \_ round-robin 0 [prio=2][active] \_ 3:0:0:0 sda 8:0 [active][ready] \_ 4:0:0:0 sdb 8:16 [active][ready] [root@smmis1 ~]# |
——————————————————————————————————
Done。