Linux下多路径Multipath的简单配置
1、启用Multipath:
(1)启动multipathd服务
#service multipathd start 或者 #/etc/init.d/multipathd start
(2)修改multipath配置文件/etc/multipath.conf:
a 默认情况下所以的设备都在multipath的黑名单中,所以即使启动了multipathd服务并加在了内核模块,multipath也不会对链路进行聚合,找到下面的3行并注释掉(在行首加上#号)
#devnode_blacklist {
# devnode "*"
#}
b 默认情况下multipath生成dm设备之后,会同时在/dev/mapper/下生成以磁盘wwid为名的符号链接指向对应的dm设备。如果想生成mpath设备,则需要打开user_friendly_names选项,将配置文件中下面3行的注释取消(去掉行首的#号)
defaults {
user_friendly_names yes
}
(3)重启multipathd服务(修改multipath.conf文件之后都应该重启multipath服务)
(4)扫描磁盘
#multipath -v2
使用上面命令之后,系统中会出现链路聚合之后的dm设备,同时也会在/dev/mapper/、/dev/mpath/目录下生成相应的设备。
查看multipath拓扑结构
#multipath -ll
另外一个重要的文件是/var/lib/multipath/bindings,这个文件中是磁盘的别名和wwid的对应关系,典型的例子是:
mpath0 3600508b4000c3af700008000002d0000
(5)需要注意的问题,multipath也会为本地的磁盘生成相应的dm设备,所以需要在multipath.conf中将本地磁盘加入到黑名单,配置的方法可以参考下面的示例
devnode_blacklist {
wwid 36005076b08164f4011ae88b23efb95fe
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"
}
如上例所示,可以通过wwid或者设备名将本地磁盘加入到黑名单中。
2、固定multipath设备的命名:
通过wwid和设备别名一一对应的方式固定multipath设备的名称,这些和别名对应的设备会被创建到/dev/mapper/目录下,使用时直接使用这个目录的的设备。
(1)通过/var/lib/multipath/bindings可以获取所有磁盘的wwid,确定每个磁盘的别名之后,在/etc/multipath.conf中的multipaths段中加入相应的配置,如将wwid为3600508b4000c3b910000c00000330000的磁盘命名为etl01,wwid为3600508b4000c3b910000c00000390000的磁盘命名为etl02,配置文件如下所示
multipaths {
multipath {
wwid 3600508b4000c3b910000c00000330000
alias etl01
}
multipath {
wwid 3600508b4000c3b910000c00000390000
alias etl02
}
}
(2)配置完成之后,重启multipathd服务,使用下面的命令清空已有的multipath记录
#multipath -F
然后使用multipath -v2重新扫描设备,这时会在/dev/mapper/目录下生成和别名对应的设备文件。
#ls /dev/mapper/
control etl01 eth02
(3)如果多台服务器的存储链路完全相同,并希望各服务器上同一磁盘的设备名相同,可以在一台服务器上配置好别名绑定之后,将multipaths { }中间的配置复制到其他服务器,这样各台服务器/dev/mapper/下面的设备将会保持一致。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
RHEL6与5在多路径的配置上有一些小区别。scsi_id命令有些参数不再支持。
在RHEL 6中获取磁盘的wwid可以通过–whitelist参数获取:[root@db1 ~]# scsi_id --whitelist /dev/sdg (这个就是查看哪个iscsi磁盘wwid号的,也可以在/etc/multipath 下查看bindings wwids 这两个文件可以看到wwid号)
可以通过一条shell命令,来获取系统所有磁盘的wwid:
# for i in `cat /proc/partitions ¦ awk {'print $4'} ¦grep sd`; do echo "### $i: `scsi_id --whitelist /dev/$i`"; done在RHEL 5中,可以通过如下方式获取磁盘wwid:
# for i in `cat /proc/partitions ¦ awk {'print $4'} ¦grep sd`; do echo "### $i: `scsi_id -g -u -s /block/$i`"; done另外,RHEL 6中,多路径配置文件也出现变化:
配置完了之后,重启multipathd服务,之后通过multipath -ll查看经过多路径软件绑定后的磁盘。
注意,如果要对磁盘进行格式化,请采用/dev/mapper/[alias]这类设备名进行fdisk。
****************************************************第二种*****************************************************
现在的Linux系统中,很多都会使用系统自带的multipath多路径软件,在以前的版本中,我们一般通过multipath+udev或者multipath+rc.local来实现多路径和权限设置,而在redhat 5.3-5.11的版本中multipath就直接可以实现多路径聚合、设备持久化、用户组设置
操作系统版本
[root@rac1 dev]
# uname -r
2.6.39-300.26.1.el5uek
[root@rac1 dev]
# more /etc/issue
Oracle Linux Server release 5.9
Kernel \r on an \m
|
fdisk记录
[root@rac1 dev]
# fdisk -l
…………
Disk
/dev/sdh
: 134.2 GB, 134217728000 bytes
255 heads, 63 sectors
/track
, 16317 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
Disk
/dev/sdi
: 33.5 GB, 33554432000 bytes
64 heads, 32 sectors
/track
, 32000 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
|
multipath包
检查安装multipath相关包(该版本系统默认安装)
[root@rac1 dev]
# rpm -aq|grep mapper
device-mapper-multipath-libs-0.4.9-56.0.3.el5
device-mapper-event-1.02.67-2.el5
device-mapper-1.02.67-2.el5
device-mapper-multipath-0.4.9-56.0.3.el5
|
获取wwid值
[root@rac1 dev]
# /sbin/scsi_id -g -u -s /block/sdh
14f504e46494c45527049754962662d395751372d68356743
[root@rac1 dev]
# /sbin/scsi_id -g -u -s /block/sdi
14f504e46494c4552484d486249782d464471382d354f4b58
|
获取uid和gid
[root@rac1 dev]
# id grid
uid=1100(grid) gid=54321(oinstall)
groups
=54321(oinstall),1020(asmadmin),1021(asmdba)
|
multipath.conf配置
[root@rac1 dev]
# vi /etc/multipath.conf
defaults {
user_friendly_names no
queue_without_daemon no
flush_on_last_del
yes
max_fds max
}
blacklist {
devnode
"^hd[a-z]"
devnode
"^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode
"^cciss.*"
}
devices {
device {
vendor
"OPNFILER "
product
"LUN"
path_grouping_policy group_by_prio
features
"3 queue_if_no_path pg_init_retries 50"
getuid_callout
"/sbin/scsi_id -g -u -s /block/%n"
path_checker tur
path_selector
"round-robin 0"
hardware_handler
"1 alua"
failback immediate
rr_weight uniform
rr_min_io 128
}
}
multipaths {
multipath {
wwid 14f504e46494c45527049754962662d395751372d68356743
#wwid
alias
xifenfei128
uid 1100
#uid
gid 1020
#gid
}
multipath {
wwid 14f504e46494c4552484d486249782d464471382d354f4b58
#wwid
alias
xifenfei32
uid 1100
#uid
gid 1020
#gid
}
}
|
启动multipath
[root@rac1 dev]
# modprobe dm-multipath
[root@rac1 dev]
# modprobe dm-round-robin
[root@rac1 dev]
# chkconfig multipathd on
[root@rac1 dev]
# service multipathd start
Starting multipathd daemon: [ OK ]
[root@rac1 dev]
# multipath -F
[root@rac1 dev]
# multipath -v2
create: xifenfei128 (14f504e46494c45527049754962662d395751372d68356743) undef OPNFILER,VIRTUAL-DISK
size=125G features=
'0'
hwhandler=
'0'
wp=undef
`-+- policy=
'round-robin 0'
prio=1 status=undef
`- 3:0:0:9 sdh 8:112 undef ready running
create: xifenfei32 (14f504e46494c4552484d486249782d464471382d354f4b58) undef OPNFILER,VIRTUAL-DISK
size=31G features=
'0'
hwhandler=
'0'
wp=undef
`-+- policy=
'round-robin 0'
prio=1 status=undef
`- 3:0:0:10 sdi 8:128 undef ready running
|
查看生成多路径设备
注意设备名称、组、用户
[root@rac1 dev]
# ls -l /dev/mapper/xifenfei*
brw-rw---- 1 grid asmadmin 252, 2 Jan 7 21:21
/dev/mapper/xifenfei128
brw-rw---- 1 grid asmadmin 252, 3 Jan 7 21:21
/dev/mapper/xifenfei32
|
补充Linux 6.x中udev设置所属组和权限
对于linux 6.x,multipath不能设置磁盘所属组和权限,可以通过udev进行实现,类似配置如下
[root@bxrac03 mapper]
#cat 99-diskownership.rules
SUBSYSTEM!=
"block"
, GOTO=
"quickexit"
KERNEL!=
"dm-*"
, GOTO=
"quickexit"
PROGRAM==
"/sbin/dmsetup info -c --noheadings -o name -m %m -j %M"
RESULT==
"*ocr*"
, OWNER=
"grid"
, GROUP=
"oinstall"
, MODE=
"0660"
RESULT==
"*oradata"
, OWNER=
"grid"
, GROUP=
"oinstall"
, MODE=
"0660"
RESULT==
"*backup"
, OWNER=
"grid"
, GROUP=
"oinstall"
, MODE=
"0660"
LABEL=
"quickexit"
|
其中RESULT和dm的别名向匹配
#########################################################################################
目录(?)[-]