我正在玩Open-iSCSI
,遇到了一些麻烦。当我的启动器和目标之间的网络连接失败时,iscsid
将恢复连接,这很好。但我的挂载坏了,I/O error
直到重新挂载才会恢复。
有没有干净的解决方案可以自动重新安装 lun?比如恢复后挂载或我不知何故错过的配置设置?我试图避免使用轮询脚本或类似的东西 :)
iscsid 日志
Jan 14 08:03:45 localhost iscsid[1415]: iscsid: Kernel reported iSCSI connection 1:0 error (1022 - ISCSI_ERR_NOP_TIMEDOUT: A NOP has timed out) state (3)
Jan 14 08:04:22 localhost iscsid[1415]: iscsid: connect to 10.0.2.100:9999 failed (No route to host)
[...]
Jan 14 08:38:43 localhost iscsid[1415]: iscsid: connect to 10.0.2.100:9999 failed (No route to host)
Jan 14 08:38:47 localhost iscsid[1415]: iscsid: connection1:0 is operational after recovery (195 attempts)
Jan 14 08:39:52 localhost iscsid[1415]: iscsid: Kernel reported iSCSI connection 1:0 error (1020 - ISCSI_ERR_TCP_CONN_CLOSE: TCP connection closed) state (3)
Jan 14 08:40:11 localhost iscsid[1415]: iscsid: connection1:0 is operational after recovery (2 attempts)
文件系统
UUID=cf3d20cd-a8cd-4a9a-acbf-1c61289a37bb /data xfs defaults,_netdev,x-systemd.requires=iscsid.service 0 0
答案1
简而言之,没有神奇的干净解决方案。最干净的恢复方法是重启。
问题是,当连接断开的时间超过 iscsid 时replacement_timeout
,文件系统就会开始出现 I/O 错误。除非您有一个非常特殊的应用程序,否则通常无法从 I/O 错误中恢复。它会对服务造成各种破坏。您几乎总是最好重新启动,而不是试图找出所有程序停止工作的原因。
话虽如此,您可以做的是replacement_timeout
尽可能延长超时时间。您会在网上找到一些参考资料,例如数据库等应用程序建议将超时时间延长一小时(3600 秒),甚至更长。这会将问题推向类似 NFS 硬挂载卡住的情况。如果您需要设计一个系统来应对需要人工干预才能修复的中断,那么延长超时时间是一件好事。系统将一直挂起,直到链接恢复。
您可以在 中设置整个系统的默认值/etc/iscsi/iscsid.conf
。编辑此行:
node.session.timeo.replacement_timeout = 120