當使用iscsi時,initiator標識的/dev/sdc可能對應不同的磁碟設備。為了讓磁碟設備有一個固定的名字我們不能依靠/dev/sdc這樣的標識。下面描述如何用多路徑讓initiator提供的磁碟有一個固定的名字。
多路徑multipath是每個發行版都有的一個內核的模塊,這個軟體不用編譯安裝,使用起來較其他多路徑軟體容易。
首先看/etc下面有沒有multipath.conf文件,如果沒有
#cp /usr/share/doc/multipath-tools/multipath.conf.synthetic
/etc/multipath.conf
默認是black所有的設備,所有註釋blacklist部分,
#blacklist {
# devnode "*"
#}
重新啟動multipathd後台
#/etc/init.d/multipathd restart
讓multipath初始化
#multipath –v2
#multipath -ll
查看multipath識別出的磁碟
mpath0 (36090a01840b3bc833d6fa4d02f00e016) dm-2 EQLOGIC,100E-00
[size=8.0G][features=0][hwhandler=0]
\_ round-robin 0 [prio=1][active]
\_ 2:0:0:0 sdb 8:16 [active][ready]
上面的36090a01840b3bc833d6fa4d02f00e016是一個卷的uuid,這個uuid從不改變。我們利用這個uuid創建一個別名,這樣這個別名對應一個不變的卷。
再次編輯/etc/multipath.conf文件,像如下:
multipaths {
multipath {
wwid 36090a02830f251891f74744263735281
alias open-iscsi-test
path_grouping_policy multibus
path_checker readsector0
path_selector "round-robin 0"
failback manual
rr_weight priorities
no_path_retry 5
rr_min_io 10
}
multipath {
wwid 36090a01840b31c74e173a4873200a02f
alias svr-vol
}
}
再次初始化multipath
#multipath –v2
查看標識出的磁碟
#multipath –ll
open-iscsi-test (36090a02830f251891f74744263735281) dm-1 EQLOGIC,100E-
00
[size=100G][features=1 queue_if_no_path][hwhandler=0]
\_ round-robin 0 [prio=0][active]
\_ 9:0:0:0 sdc 8:48 [active][ready]
svr-vol (36090a01840b31c74e173a4873200a02f) dm-0 EQLOGIC,100E-00
[size=10G][features=0][hwhandler=0]
\_ round-robin 0 [prio=0][enabled]
\_ 6:0:0:0 sdb 8:16 [active][ready]
#ls -l /dev/mapper
total 0
crw-rw---- 1 root root 10, 63 2007-11-16 17:15 control
brw-rw---- 1 root disk 254, 1 2007-11-19 15:59 open-iscsi-test
brw-rw---- 1 root disk 254, 0 2007-11-19 15:58 svr-vol
當我們查看/dev/mapper,會看到我們創建的別名
#ls -l /dev/mapper
total 0
crw-rw---- 1 root root 10, 63 2007-11-16 17:15 control
brw-rw---- 1 root disk 254, 1 2007-11-19 15:59 open-iscsi-test
brw-rw---- 1 root disk 254, 0 2007-11-19 15:58 svr-vol