我有一个在HP刀片系统上运行的VmWare解决scheme,带有一个左手ISCSI SAN。 该环境中目前有两台VmWare主机。
我有两个Debian虚拟机共享一个iSCSI磁盘(与ocfs2),使用open-iscsi直接从san安装。 这一切都很完美,但是昨天,一个客户在试图在共享的ocfs2分区上写入内容时就崩溃了。
我尝试设置一些ISCSI参数更保守的值,无济于事。 只有(v-)将客户端移动到其他VM主机才能解决问题。 今天,将另一个客户端移动到有问题的主机时会引发相同的错误:
connection1:0: ping timeout of 5 secs expired, recv timeout 5, last rx 4294971299, last ping 4294966612, now 4294973799 connection1:0: detected conn error (1011) iscsid: Kernel reported iSCSI connection 1:0 error (1011 - ISCSI_ERR_CONN_FAILED: iSCSI connection failed) state (3) kernel: [ 328.558970] connection1:0: detected conn error (1020) iscsid: connection1:0 is operational after recovery (1 attempts) [repeat until hard reset]
它似乎与该VM主机有关,具有与另一个完全相同的configuration。 作为刀片服务器,他们使用相同的networking硬件,flex-10互连。
有人知道这可能与什么有关吗? 我想find原因,因为这两个VM主机可能会遇到同样的问题(我将不得不切换到networking磁盘,然后,似乎更稳定,不太容易硬重置)。
此错误与写入消息的超时有关。 有人推荐使用vlan来获得更好的吞吐量来传输数据。 所以问题涉及到:主机:IP堆栈,适配器,networking交换机,NetAppnetworking适配器等
你可以做的其他事情是增加磁盘写入超时。
echo 180 > /sys/block/sdX/device/timeout
在我用来configuration的iscsi启动器configuration:
node.session.iscsi.InitialR2T = No
这些参数会增加iscsi日志。 只使用哪些是必要的:
# echo 1 > /sys/module/libiscsi/parameters/debug_libiscsi_session # echo 1 > /sys/module/libiscsi/parameters/debug_libiscsi_eh # echo 1 > /sys/module/libiscsi/parameters/debug_libiscsi_conn # echo 1 > /sys/module/libiscsi_tcp/parameters/debug_libiscsi_tcp # echo 1 > /sys/module/iscsi_tcp/parameters/debug_iscsi_tcp