我有一个在 HP bladesystem 上运行的 VmWare 解决方案,该解决方案带有 Lefthand ISCSI san。该环境中目前有两个 VmWare 主机。
我有两个 Debian VM 共享一个 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 主机相关,后者的配置与另一个完全相同。作为刀片,它们使用相同的网络硬件,即 flex-10 互连。
有人知道这可能与什么有关吗?我想找到原因,因为两个 VM 主机最终都可能遇到相同的问题(那么我必须切换到网络磁盘,似乎更稳定,更不容易发生硬重置)。
答案1
此错误与写入消息超时有关。有人建议使用 vlan 来获得更好的数据传输吞吐量。因此问题涉及:主机:IP 堆栈、适配器、网络交换机、NetApp 网络适配器等。
您可以做的另一件事是增加磁盘写入的超时时间。
echo 180 > /sys/block/sdX/device/timeout
在 iscsi 启动器配置中我曾经配置:
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