Longhorn项目中v2卷与后备镜像挂载问题的分析与解决
2025-06-01 09:37:24作者:管翌锬
问题背景
在Longhorn分布式存储系统的测试过程中,发现了一个与v2数据引擎相关的重要问题:当使用后备镜像(backing image)创建v2卷时,在某些特定场景下会出现卷无法正常挂载的情况。这个问题在系统升级测试过程中被发现,表现为卷状态持续停留在"Attaching"状态,无法完成挂载操作。
问题现象
具体表现为:
- 创建一个v2卷并成功挂载
- 为该卷创建v2后备镜像
- 删除v2卷的一个副本以触发副本重建
- 在副本重建完成后,尝试创建并挂载另一个使用相同后备镜像的v2卷
- 此时新卷会卡在"Attaching"状态,无法完成挂载
在系统日志中可以观察到如下错误信息:
error sending message, id 44367, method bdev_get_bdevs, params {Name:block-disk/bi-bi-v2-disk-e6563e88-e33e-48ca-b746-fb565e8a5ecd Timeout:0}: {"code": -19,"message": "No such device"}
问题根源分析
经过技术团队深入分析,发现问题的根本原因在于v2副本重建过程中的资源清理逻辑存在缺陷。具体流程如下:
- 当v2卷的副本被删除并触发重建时,系统会在SPDK服务器上执行清理操作
- 这个清理过程错误地将与后备镜像相关的逻辑卷(lvol)也一并删除
- 如果此时后备镜像尚未完全同步到其他磁盘节点,就会导致系统中不再存在可用的健康后备镜像副本
- 后续尝试创建使用该后备镜像的新卷时,系统无法找到有效的后备镜像资源,从而导致挂载失败
解决方案
技术团队针对此问题提出了修复方案,主要修改点包括:
- 优化v2副本重建过程中的资源清理逻辑,确保不会误删后备镜像相关的逻辑卷
- 加强对后备镜像状态的检查机制,确保在删除操作前进行充分验证
- 改进错误处理流程,提供更清晰的错误信息以便于问题诊断
验证结果
修复方案经过多轮严格测试验证:
- 使用修复后的实例管理器镜像(jackfantasy/longhorn-instance-manager:finalrun1)进行测试
- 连续10次执行原问题复现测试用例,均未再出现相同问题
- 在合并修复代码后的master分支上,执行完整的升级测试流程5次,全部通过
技术影响与建议
这个问题揭示了在分布式存储系统中,资源生命周期管理的重要性。特别是在涉及多层资源依赖(v2卷依赖后备镜像)的场景下,需要特别注意:
- 资源清理操作必须精确控制作用范围,避免级联影响
- 对于关键资源(如后备镜像),应实现更严格的保护机制
- 系统状态检查应该成为操作执行前的必要步骤
对于Longhorn用户,建议在升级到包含此修复的版本后,特别注意:
- 监控v2卷与后备镜像的关联状态
- 在涉及副本重建操作时,观察后备镜像的同步状态
- 遇到类似问题时,检查系统日志中的SPDK相关错误信息
此问题的解决不仅修复了一个具体缺陷,也为Longhorn系统在v2数据引擎方向的稳定性提升奠定了基础。技术团队将继续关注相关领域的改进,为用户提供更可靠的分布式存储解决方案。
登录后查看全文
热门项目推荐
相关项目推荐
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
热门内容推荐
最新内容推荐
Degrees of Lewdity中文汉化终极指南:零基础玩家必看的完整教程Unity游戏翻译神器:XUnity Auto Translator 完整使用指南PythonWin7终极指南:在Windows 7上轻松安装Python 3.9+终极macOS键盘定制指南:用Karabiner-Elements提升10倍效率Pandas数据分析实战指南:从零基础到数据处理高手 Qwen3-235B-FP8震撼升级:256K上下文+22B激活参数7步搞定机械键盘PCB设计:从零开始打造你的专属键盘终极WeMod专业版解锁指南:3步免费获取完整高级功能DeepSeek-R1-Distill-Qwen-32B技术揭秘:小模型如何实现大模型性能突破音频修复终极指南:让每一段受损声音重获新生
项目优选
收起
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
538
3.76 K
Ascend Extension for PyTorch
Python
343
410
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
886
602
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
337
181
暂无简介
Dart
775
192
deepin linux kernel
C
27
11
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.34 K
757
React Native鸿蒙化仓库
JavaScript
303
356
openJiuwen agent-studio提供零码、低码可视化开发和工作流编排,模型、知识库、插件等各资源管理能力
TSX
987
252
仓颉编译器源码及 cjdb 调试工具。
C++
154
895