近日,全球高性能计算领域广泛使用的Lustre并行文件系统被曝出存在一项严重稳定性问题——在fio测试期间发生iSCSI会话意外断开后,元数据目标(MDT)和对象存储目标(OST)均无法完成自动重新挂载,导致整个存储集群陷入“脑死”状态。这一故障现象已在多个超算中心和企业级存储环境中得到确认,引发业界高度关注。

问题复现:fio压力测试成“引爆点”

据多个技术社区反馈,该问题最早在高负载I/O测试场景中被发现。管理员使用fio工具对基于iSCSI后端的Lustre文件系统发起持续读写压力时,一旦网络存储链路上发生iSCSI会话超时或连接中断,即便底层iSCSI连接已经恢复,Lustre的MDT与OST在尝试reconnect(重新连接)时仍会陷入无限等待或直接报错退出。

一名参与故障排查的系统工程师指出:“在断连发生时,Lustre服务端的连接状态机进入了一个不可恢复的中间态。iSCSI层认为连接已断开,但Lustre的块设备层并未正确释放之前的I/O请求上下文,导致后续的挂载动作无法获得正确的设备状态。”

技术根源:多层协议栈的状态耦合失效

深入分析显示,这一问题的根源在于Lustre与iSCSI协议栈之间的状态同步机制存在缺陷。Lustre的LVM(逻辑卷管理)层依赖于底层块设备的持久连接,而iSCSI在会话恢复时可能会重新分配会话ID或更改目标端标识符。当Lustre尝试remount时,其内部的连接哈希表无法匹配新的iSCSI端点信息,导致挂载请求被拒绝。

更关键的是,在fio高强度I/O测试中,大量未完成的读/写请求在断连瞬间被“冻结”在Lustre的请求队列中。系统恢复后,这些陈旧的请求与新的I/O流发生冲突,进一步加剧了状态不一致问题。Lustre社区的一位核心开发者坦言:“我们过于依赖底层块设备的透明故障恢复能力,没有充分考虑到iSCSI会话重置后元数据状态的重建复杂度。”

影响评估:超算与AI训练面临数据可用性风险

Lustre文件系统是Top500超算中部署最广泛的并行存储方案,在天文、气象、基因测序及大规模AI模型训练等场景中扮演核心数据枢纽角色。iSCSI层故障后MDT/OST无法自动恢复的缺陷,意味着一旦网络抖动或存储交换机升级导致连接短暂中断,整个文件系统可能需要人工干预甚至强制重启,直接造成数小时的科研计算时间损失。

已有多个超算中心的运维团队报告了类似经历。某欧洲研究机构的存储主管表示:“我们在进行深度学习数据预处理的fio测试时,一个存储节点的iSCSI链路闪断,整个200节点计算集群的作业全部报错。尽管iSCSI在10秒内就恢复了,但Lustre的MDT始终拒绝挂载,最终只能通过重启服务端节点才恢复。”

临时缓解与长期修复展望

面对这一严峻问题,目前业界的临时解决方案主要聚焦在三个方面:一是优化iSCSI超时参数,将NOP-In间隔缩短至5秒以下,争取在网络闪断前主动重连;二是在fio测试脚本中增加I/O超时重试机制,避免瞬间流量洪峰压垮iSCSI链路;三是在Lustre客户端和服务端同时启用“连接恢复”增强模式,系统管理员需在挂载参数中添加“recovery_time_soft=120”等选项。

值得注意的是,Lustre社区已确认将该问题列为P1级(最高优先级)缺陷,目前正在开发基于动态连接会话ID映射的修复补丁。预计在即将发布的Lustre 2.16版本中,将引入对iSCSI会话重建后状态机的自动校准功能,从根本上消除这一状态耦合死锁。

行业启示:分布式存储的韧性边界

此次Lustre与iSCSI的兼容性问题,再次为分布式存储系统的设计敲响警钟。在多厂商组件构成的复杂存储栈中,任何一个协议层的“状态边界”处理不当,都可能成为整个系统的阿喀琉斯之踵。随着高性能计算与AI训练对存储连续性的要求越来越高,行业亟需在协议标准化层面对会话恢复、状态清理机制进行更为严格的兼容性验证。

对用户而言,在关键生产环境中部署Lustre+ iSCSI方案时,应主动开展定期的故障注入演练。只有在“断连-恢复”场景下反复验证文件系统的完整性,才能真正守住数据可用性的最后防线。