RHEL6 配置multipath多路径软件连存储
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参数获取:[[email protected] ~]# 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中,多路径配置文件也出现变化:
- # multipath.conf written by anaconda
- defaults {
- user_friendly_names yes
- }
- blacklist {
- devnode "^(ramrawloopfdmddm-srscdst)[0-9]*"
- devnode "^hd[a-z]"
- devnode "^dcssblk[0-9]*"
- device {
- vendor "DGC"
- product "LUNZ"
- }
- device {
- vendor "IBM"
- product "S/390.*"
- }
- # don't count normal SATA devices as multipaths
- device {
- vendor "ATA"
- }
- # don't count 3ware devices as multipaths
- device {
- vendor "3ware"
- }
- device {
- vendor "AMCC"
- }
- # nor highpoint devices
- device {
- vendor "HPT"
- }
- wwid "20080930-1"
- wwid "20080930-1"
- device {
- vendor Cisco
- product Virtual_CD_DVD
- }
- wwid "*" //其实可以注释这项,这样就不需要单独填写blacklist_exceptions
- }
- blacklist_exceptions { //排除在黑名单之外的wwid
- wwid "360060160a2212f00a67e0b91f2dbe111"
- wwid "360060160a2212f0044a0fc6ef5eae111"
- }
- multipaths {
- multipath {
- uid 0 //磁盘读所属用户uid
- gid 0 //磁盘所属组gid
- wwid "360060160a2212f00a67e0b91f2dbe111" //wwid号
- mode 0600 //磁盘读写权限
- }
- multipath {
- wwid "360060160a2212f0044a0fc6ef5eae111"
- alias data //别名
- }
- ... ... //还可以根据实际情况,配置其它磁盘的别名、uid、gid、mode etc...
- }
配置完了之后,重启multipathd服务,之后通过multipath -ll查看经过多路径软件绑定后的磁盘。
注意,如果要对磁盘进行格式化,请采用/dev/mapper/[alias]这类设备名进行fdisk。
****************************************************第二种*****************************************************
现在的Linux系统中,很多都会使用系统自带的multipath多路径软件,在以前的版本中,我们一般通过multipath+udev或者multipath+rc.local来实现多路径和权限设置,而在redhat 5.3-5.11的版本中multipath就直接可以实现多路径聚合、设备持久化、用户组设置
操作系统版本
fdisk记录
multipath包
检查安装multipath相关包(该版本系统默认安装)
获取wwid值
获取uid和gid
multipath.conf配置
启动multipath
查看生成多路径设备
注意设备名称、组、用户
补充Linux 6.x中udev设置所属组和权限
对于linux 6.x,multipath不能设置磁盘所属组和权限,可以通过udev进行实现,类似配置如下
其中RESULT和dm的别名向匹配
#########################################################################################