Имеем:Сервер1 (отдаёт диск по iscsi двумя путями):
CentOS 5.5 i686, scsi-target-utils-0.0-6.20091205snap.el5_5.3
# cat /etc/tgt/targets.conf | grep -v \# | sed '/^$/d'
default-driver iscsi
<target iqn.2010-09.sss.mpath-storage:iscsi.target1>
backing-store /dev/sdb
incominguser user1 pass1
initiator-address 192.168.1.2
initiator-address 192.168.2.2
</target>
ip адреса на сервере:
eth0 192.168.1.1
eth1 192.168.2.1
Сервер2 (клиент):
CentOs 5.5 i686,device-mapper-multipath-0.4.7-34.el5_5.4
ip адреса:
eth0 - 192.168.1.2
eth1 - 192.168.2.2
# cat /etc/iscsi/iscsid.conf | grep -v \# | sed '/^$/d'
node.startup = automatic
node.session.timeo.replacement_timeout = 86400
node.conn[0].timeo.login_timeout = 15
node.conn[0].timeo.logout_timeout = 15
node.conn[0].timeo.noop_out_interval = 0
node.conn[0].timeo.noop_out_timeout = 0
node.session.err_timeo.abort_timeout = 15
node.session.err_timeo.lu_reset_timeout = 20
node.session.initial_login_retry_max = 8
node.session.cmds_max = 128
node.session.queue_depth = 32
node.session.iscsi.InitialR2T = No
node.session.iscsi.ImmediateData = Yes
node.session.iscsi.FirstBurstLength = 262144
node.session.iscsi.MaxBurstLength = 16776192
node.conn[0].iscsi.MaxRecvDataSegmentLength = 262144
discovery.sendtargets.iscsi.MaxRecvDataSegmentLength = 32768
node.conn[0].iscsi.HeaderDigest = None
node.session.iscsi.FastAbort = Yes
# cat /etc/multipath.conf | grep -v \# | sed '/^$/d'
defaults {
user_friendly_names yes
polling_interval 2
features "1 queue_if_no_path"
failback immediate
no_path_retry fail
flush_on_last_del yes
queue_without_daemon no
}
multipaths {
multipath {
wwid 1IET_00010001
alias iscsi-disk-1
}
}
на диске /dev/mapper/iscsi-disk-1 создана LVM группа, в ней логический диск, который смонтирован в /a1
# multipath -l
iscsi-disk-1 (1IET_00010001) dm-2 IET,VIRTUAL-DISK
[size=2.0G][features=0][hwhandler=0][rw]
\_ round-robin 0 [prio=0][active]
\_ 1:0:0:1 sdb 8:16 [active][undef]
\_ round-robin 0 [prio=0][enabled]
\_ 2:0:0:1 sdc 8:32 [active][undef]
Теперь само действо:
теперь на сервере2 даём команду:
# dd if=/dev/zero bs=1k count=1200000 | pv -s 1200000k -N dd | dd of=/a1/file.dat
Убедившись, что процесс пошёл, на сервере1 говорим ifconfig eth0 down. Запись dd останавливается на ~180 секунд!!!
и только когда мультипасс зафиксировал падение:
# multipath -l
iscsi-disk-1 (1IET_00010001) dm-2 IET,VIRTUAL-DISK
[size=2.0G][features=0][hwhandler=0][rw]
\_ round-robin 0 [prio=0][enabled]
\_ 1:0:0:1 sdb 8:16 [failed][undef]
\_ round-robin 0 [prio=0][active]
\_ 2:0:0:1 sdc 8:32 [active][undef]
dd продолжаем работу.
в настройках /etc/iscsi/iscsid.conf я пробывал ставить ненулевые node.conn[0].timeo.noop_out_interval и node.conn[0].timeo.noop_out_timeout - не помогло.
как сделать так, чтобы multipath фиксировал падение пути хотя бы в интервал 5 сек?