linux多线程冗余,Linux  下的路径冗余

首先要确认是否安装了device-mapper-multipathing的RPM包

[root@localhost ~]# rpm -qa |grep device

device-mapper-1.02.07-4.0.RHEL4

device-mapper-multipath-0.4.5-16.1.RHEL4

然后在进行以下的配置:

编辑文件/etc/multipath.conf。在文件头部注释掉如下内容:

devnode_blacklist {

devnode "*"

}

注释完如下:

#devnode_blacklist {

#  devnode "*"

#}

取消文件 /etc/multipath.conf中这段的注释,这段内容可以让 device-mapper multipathing

不用扫描所有的设备。 /etc/multipath.conf

file:

defaults {

multipath_tool "/sbin/multipath -v0"

udev_dir /dev

polling_interval 10

default_selector "round-robin 0"

default_path_grouping_policy multibus

default_getuid_callout "/sbin/scsi_id -g -u -s /block/%n"

default_prio_callout "/bin/true"

default_features "0"

rr_wmin_io 100

failback immediate

}

devnode_blacklist {

wwid 26353900f02796769

devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"

devnode "^hd[a-z][[0-9]*]"

devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]"

}

这段设置了默认的 device-mapper

的动作,并且去出了通常不会有多路径的设备,如IDE硬盘和软盘。默认的hd*设备的黑名单存在这一个排印错误。需要修改。

devnode "^hd[a-z][[0-9]*]"把上行修改为如下:devnode "^hd[a-z][0-9]*"为了实现简单的failover功能,下例中,defaults 组中的默认的 default_path_grouping_policy 选项被设置成为 failover。defaults {

multipath_tool "/sbin/multipath -v0"

udev_dir /dev

polling_interval 10

default_selector "round-robin 0"

default_path_grouping_policy failover

default_getuid_callout "/sbin/scsi_id -g -u -s /block/%n"

default_prio_callout "/bin/true"

default_features "0"

rr_wmin_io 100

failback immediate

}退出编辑并保存设置,执行如下命令:modprobe dm-multipath

modprobe dm-round-robin

service multipathd start

multipath -v2命令 multipath -v2 可以显示多路径,从而可以知道那些设备工作在多路径下。如果没有任何输出,确认所有的SAN连接被正确的设置,系统有没有正确的开启多路径功能。

设备的设备名会被生成,/dev/dm-#,#指代的是多路径组,如果/dev/sda是唯一的多路径设备,/dev/dm-0将会是/dev/sda和

/dev/sdb的多路径设备。注意:fdisk不能用于设备/dev/dm-#,

使用fdisk只能操作基础磁盘,要在设备映射多路径映射设备上创建/dev/dm-#分区的操作.

执行一下命令。

kpartx -a /dev/dm-#

以上基本就是device-mapper-mutipath的基本设置了

如果要在设置中忽略本地硬盘则应该:首先确认哪块磁盘是本地磁盘, 然后把该硬盘标记到黑名单中。 在加入黑名单之前,留意multipath -v2命令显示的多路径映射下的本地磁盘。

[root@rh4cluster1 ~]# multipath -v2

create: SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1

[size=33 GB][features="0"][hwhandler="0"]

\_ round-robin 0

\_ 0:0:0:0 sda 8:0

device-mapper ioctl cmd 9 failed: Invalid argument

device-mapper ioctl cmd 14 failed: No such device or address

create: 3600a0b80001327d80000006d43621677

[size=12 GB][features="0"][hwhandler="0"]

\_ round-robin 0

\_ 2:0:0:0 sdb 8:16

\_ 3:0:0:0 sdf 8:80

create: 3600a0b80001327510000009a436215ec

[size=12 GB][features="0"][hwhandler="0"]

\_ round-robin 0

\_ 2:0:0:1 sdc 8:32

\_ 3:0:0:1 sdg 8:96

create: 3600a0b80001327d800000070436216b3

[size=12 GB][features="0"][hwhandler="0"]

\_ round-robin 0

\_ 2:0:0:2 sdd 8:48

\_ 3:0:0:2 sdh 8:112

create: 3600a0b80001327510000009b4362163e

[size=12 GB][features="0"][hwhandler="0"]

\_ round-robin 0

\_ 2:0:0:3 sde 8:64

\_ 3:0:0:3 sdi 8:128

在如上部分, 设备映射完成了/dev/sda的设备映射。 为了阻止被映射。 可以编辑文件/etc/multipath.conf。 下面的是该文件被修改的部分。

devnode_blacklist {

wwid 26353900f02796769

devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"

devnode "^hd[a-z][0-9]*"

devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]"

}添加本地磁盘到黑名单中, 如本例, sda是内置硬盘, 文件内容如下。

devnode_blacklist {

wwid 26353900f02796769

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]*[p[0-9]*]"

执行命令:

multipath -F

multipath -v2

本地磁盘就不会出现在命令的输出了

[root@rh4cluster1 ~]# multipath -F

[root@rh4cluster1 ~]# multipath -v2

create: 3600a0b80001327d80000006d43621677

[size=12 GB][features="0"][hwhandler="0"]

\_ round-robin 0

\_ 2:0:0:0 sdb 8:16

\_ 3:0:0:0 sdf 8:80

create: 3600a0b80001327510000009a436215ec

[size=12 GB][features="0"][hwhandler="0"]

\_ round-robin 0

\_ 2:0:0:1 sdc 8:32

\_ 3:0:0:1 sdg 8:96

create: 3600a0b80001327d800000070436216b3

[size=12 GB][features="0"][hwhandler="0"]

\_ round-robin 0

\_ 2:0:0:2 sdd 8:48

\_ 3:0:0:2 sdh 8:112

create: 3600a0b80001327510000009b4362163e

[size=12 GB][features="0"][hwhandler="0"]

\_ round-robin 0

\_ 2:0:0:3 sde 8:64

\_ 3:0:0:3 sdi 8:128我如何知道在/dev目录下的什么设备和系统的一个多路径设备是对应的?

解决方法:

这个问题适合Red Hat Enterprise Linux 4 Update 2

(U2)

为了找到哪个设备映射实体对应系统的多路径设备,执行下面的命令:

1.在命令行中执行multipath -ll ,选项是2个小写的字母L.

2.决定哪个长的数字是设备映射实体所需要的.

3.执行dmsetup ls --target multipath,这个命令将会返回一个长的数字。

你会看到一个>类似(255, #)的输出,其中的#就是设备映射号。

这个数字可以用来对照哪个dm设备对应系统的多路径设备,例如/dev/dm3.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值