linux多线程冗余,Linux 下的路径冗余
首先要確認(rèn)是否安裝了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
然后在進(jìn)行以下的配置:
編輯文件/etc/multipath.conf。在文件頭部注釋掉如下內(nèi)容:
devnode_blacklist {
devnode "*"
}
注釋完如下:
#devnode_blacklist {
# ?devnode "*"
#}
取消文件 /etc/multipath.conf中這段的注釋,這段內(nèi)容可以讓 device-mapper multipathing
不用掃描所有的設(shè)備。 /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]*]"
}
這段設(shè)置了默認(rèn)的 device-mapper
的動作,并且去出了通常不會有多路徑的設(shè)備,如IDE硬盤和軟盤。默認(rèn)的hd*設(shè)備的黑名單存在這一個排印錯誤。需要修改。
devnode "^hd[a-z][[0-9]*]"把上行修改為如下:devnode "^hd[a-z][0-9]*"為了實(shí)現(xiàn)簡單的failover功能,下例中,defaults 組中的默認(rèn)的 default_path_grouping_policy 選項(xiàng)被設(shè)置成為 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
}退出編輯并保存設(shè)置,執(zhí)行如下命令:modprobe dm-multipath
modprobe dm-round-robin
service multipathd start
multipath -v2命令 multipath -v2 可以顯示多路徑,從而可以知道那些設(shè)備工作在多路徑下。如果沒有任何輸出,確認(rèn)所有的SAN連接被正確的設(shè)置,系統(tǒng)有沒有正確的開啟多路徑功能。
設(shè)備的設(shè)備名會被生成,/dev/dm-#,#指代的是多路徑組,如果/dev/sda是唯一的多路徑設(shè)備,/dev/dm-0將會是/dev/sda和
/dev/sdb的多路徑設(shè)備。注意:fdisk不能用于設(shè)備/dev/dm-#,
使用fdisk只能操作基礎(chǔ)磁盤,要在設(shè)備映射多路徑映射設(shè)備上創(chuàng)建/dev/dm-#分區(qū)的操作.
執(zhí)行一下命令。
kpartx -a /dev/dm-#
以上基本就是device-mapper-mutipath的基本設(shè)置了
如果要在設(shè)置中忽略本地硬盤則應(yīng)該:首先確認(rèn)哪塊磁盤是本地磁盤, 然后把該硬盤標(biāo)記到黑名單中。 在加入黑名單之前,留意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
在如上部分, 設(shè)備映射完成了/dev/sda的設(shè)備映射。 為了阻止被映射。 可以編輯文件/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是內(nèi)置硬盤, 文件內(nèi)容如下。
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]*]"
}
執(zhí)行命令:
multipath -F
multipath -v2
本地磁盤就不會出現(xiàn)在命令的輸出了
[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目錄下的什么設(shè)備和系統(tǒng)的一個多路徑設(shè)備是對應(yīng)的?
解決方法:
這個問題適合Red Hat Enterprise Linux 4 Update 2
(U2)
為了找到哪個設(shè)備映射實(shí)體對應(yīng)系統(tǒng)的多路徑設(shè)備,執(zhí)行下面的命令:
1.在命令行中執(zhí)行multipath -ll ,選項(xiàng)是2個小寫的字母L.
2.決定哪個長的數(shù)字是設(shè)備映射實(shí)體所需要的.
3.執(zhí)行dmsetup ls --target multipath,這個命令將會返回一個長的數(shù)字。
你會看到一個>類似(255, #)的輸出,其中的#就是設(shè)備映射號。
這個數(shù)字可以用來對照哪個dm設(shè)備對應(yīng)系統(tǒng)的多路徑設(shè)備,例如/dev/dm3.
總結(jié)
以上是生活随笔為你收集整理的linux多线程冗余,Linux 下的路径冗余的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Caffe 学习笔记1
- 下一篇: Caffe学习笔记2