Longhorn v1.6.4 版本解读:稳定性修复、NFS 检测优化与 Kubernetes 升级实践指南
发布时间:2026/9/28 21:01:38 锦皓数字建站

云原生存储高可用容器编排【免费下载链接】longhornCloud-Native distributed storage built on and for Kubernetes项目地址https://gitcode.com/gh_mirrors/lo/longhorn点击查看免费下载导读本文基于 Longhorn 官方仓库中的 CHANGELOG-1.6.4.md 展开系统梳理 v1.6.4 这一维护版本在系统质量、韧性与稳定性上的全部改进、Bug 修复与构建收尾工作并结合仓库中的配置模板、CRD 定义与部署清单进行源码级印证。读完本文你将掌握 v1.6.4 的安装/升级前提、8 项核心改进与 17 项关键缺陷修复的技术细节能够评估并规划自己的集群向该版本或后续版本迁移的路径。Longhorn v1.6.4 是 1.6.x 分支上的一个维护版本patch release。与 1.6.3 相比它不再包含新 Feature1.6.3 曾引入 ServiceMonitor 的额外监控设置而是集中火力解决 1.6.x 分支上暴露出来的共享存储RWX/Share Manager、备份目标NFS/S3、卷生命周期与节点驱逐等场景下的稳定性问题同时处理了 CVE 与基础镜像安全等收尾工作。绝大多数变更以[BACKPORT]形式从更高分支v1.7.x / v1.8.x回溯合入保证了 1.6.x 用户在功能行为上与主线保持一致。一、版本定位与发布概况从 CHANGELOG-1.6.4.md 的 Resolved Issues 列表可以看到本版本共包含三类变更Improvement8 项日志能力JSON 格式、日志级别配置、删除原因记录、NFS 版本检测方式、卷扩容卡死预防、strict-local 与 RWX 组合校验、误导性错误信息降级、构建提速与 OpenShift 镜像清理Bug17 项覆盖 Share Manager 重启循环、Webhook 初始化阻塞、备份恢复参数缺失、S3 备份目标回退、DR 卷重挂载失败、RWX PVC 扩容失败、kubectl drain被孤儿进程阻塞等高频生产问题Misc3 项CVE 修复、基础镜像升级到 15.6、构建期安装最新grpc_health_probe。这些修复共同指向一个主题让长时间运行的 Longhorn 集群在节点故障、网络抖动、备份目标异常等真实场景下更加坚韧。二、安装与升级前提Kubernetes v1.21版本说明中对安装与升级给出了同样一条硬性前提确保集群运行 Kubernetes v1.21 或更高版本后再安装 Longhorn v1.6.4。从 Longhorn v1.5.x 或 v1.6.x低于 v1.6.4升级到 v1.6.4 同样要求 Kubernetes v1.21。这一点与 Longhorn 官方一贯的仅支持从受支持版本升级策略一致——Longhorn 只允许在受支持的升级路径内进行升级跨大版本跳级或从不支持的旧版本直接升级都会被拒绝。当前仓库的 support-versions.txt 显示受支持版本已推进到 v1.11.3 / v1.12.1说明 v1.6.4 属于较早期分支的维护补丁生产环境应结合自身节奏规划向受支持版本的迁移。安装方式方面Longhorn 支持 Rancher、Kubectl、Helm 等多种工具。仓库中对应的清单与模板分别是一键部署清单deploy/longhorn.yamlKubectl 方式与 deploy/longhorn-okd.yamlOKD 方式Helm Chartchart/Chart.yaml、chart/values.yaml模板位于 chart/templates卸载脚本uninstall/uninstall.yaml。三、核心改进项详解3.1 为 UI 与 driver 组件增加 JSON 日志格式支持#10080v1.6.4 为 Longhorn 的 UI 和 driverCSI driver组件引入了 JSON 日志格式的配置能力。对于将日志接入 Elasticsearch、Loki 等结构化日志平台的团队JSON 格式日志可以免去客户端解析的开销直接完成字段映射与告警规则配置是运维可观测性建设的基础设施级改进。从仓库的日志级别设置实现可以看到Longhorn 的日志体系是集中可配的chart/templates/default-setting.yaml中通过log-level字段下发日志级别见 default-setting.yamlchart/README.md 记录该设置支持Panic、Fatal、Error、Warn、Info、Debug、Trace七个级别默认值为Info。JSON 格式开关与此同属组件日志配置范畴两者配合可以实现日志的级别可调 格式统一。3.2 通过 longhorn-manager 设置统一管控组件日志级别#9618Longhorn 集群中存在两类日志来源一类是 Longhorn 系统自管组件manager、instance-manager、UI、CSI driver 等另一类是用户自行管理、但日志会被 Longhorn 消费的组件典型如 NFS 客户端、iscsi 相关工具链。v1.6.4 允许通过 longhorn-manager 的 Setting 统一配置这些组件的日志级别避免了在多个节点、多个容器里分别手工调整的繁琐操作。对应到仓库该设置由chart/values.yaml的defaultSettings段暴露logLevel字段见 values.yaml并通过 questions.yaml 在 Rancher 等 UI 安装界面中开放给用户填写最终渲染进 default-setting.yaml 成为 ConfigMap 的一部分。这意味着无论是 Helm 安装还是 Rancher 安装都能在安装期或运行期统一调节日志冗长度排查问题时临时调到Debug、稳定后再回落Info。3.3 NFS 版本检测改读 /etc/nfsmount.conf#9832这是本版本最有细节感的改进之一。Longhorn 在挂载 NFS 备份目标时需要确认客户端支持的最低 NFS 协议版本旧实现依赖的检测途径在某些发行版尤其是内核与 nfs-utils 版本组合特殊的系统上会得到错误结论导致版本校验失败或误判。v1.6.4 改为直接读取/etc/nfsmount.conf中的 NFS 版本配置以系统实际声明的协议能力为准。这一改动直接关系到备份目标可用性NFS 备份目标在 Longhorn 中通过 URL 形式配置仓库示例可见 examples/storageclass.yaml 中的backupTarget相关字段并在 NFS 断连重连场景下承担数据完整性责任见下文 4.5 节 #9543。版本检测更准确意味着 NFS 挂载参数的协商更可靠备份与恢复路径在真实网络环境下更稳定。3.4 防止卷扩容卡死#9913卷扩容Volume Resize是存储系统的敏感操作先要扩展引擎与副本的块设备大小再要通过文件系统层完成 resize。v1.6.4 修复了扩容流程中可能出现的卡死状态——即卷停留在扩容中间态既不完成也不失败后续的挂载、快照等操作全部被阻塞。该改进与 #9737RWX PVC 在文件系统扩容阶段失败同属一条修复主线保证扩容状态机在每个步骤都有明确退出条件避免卷陷入不可收敛的状态。3.5 拒绝 strict-local RWX 卷组合#9931这是 v1.6.4 引入的一条前置校验创建卷时若同时设置了strict-local数据本地性data locality与 RWXReadWriteMany访问模式则直接拒绝创建。从部署清单看dataLocality是卷级配置项默认值disabled见 deploy/longhorn.yaml。其背后的技术冲突是strict-local 要求副本必须与引擎位于同一节点而 RWX 卷依赖部署在节点上的共享 NFS ServerShare Manager对外提供多节点读写。两种约束在调度与运行层面相互矛盾过去这种组合会产生无法满足的调度诉求导致卷长时间处于异常状态。现在通过准入校验把静默的坏组合提前变成明确的创建错误用户立刻就能感知并修正参数。3.6 记录 instance-manager Pod 被删除的原因#9888instance-manager 是承载引擎/副本进程的守护 Pod它的非预期重建会直接造成卷 I/O 中断。此前运维人员发现 IM Pod 消失时往往只能从结果反推原因。v1.6.4 要求在删除 IM Pod 时明确记录删除原因驱逐、故障、缩容还是手动操作让日志能够直接回答为什么这个 Pod 被删了。这与 1.6.3 修复的instance-manager 卡在 starting 状态#8678缺少 selector labels#9472属于同一个组件生命周期课题v1.6.4 在此基础上补齐了可解释性使 IM 的异常行为不再是无迹可寻的黑盒。3.7 误导性错误信息降级为 Warning#9918部分场景下 Longhorn 会输出看起来是错误、实际可自动恢复的日志例如节点短暂不可达期间的探活失败、副本同步过程中的瞬时冲突旧版本以 Error 级别输出容易触发告警疲劳并掩盖真正的故障。v1.6.4 将这些误导性信息降级为 Warning 级别让监控系统的 Error 告警回归其应有的语义。3.8 构建与镜像清理提速 移除 OpenShift 镜像#9694 / #9599两项面向工程效率的改进longhorn-manager 构建耗时优化#9694通过改进构建流程减少 CI 与本地构建的时间成本移除镜像的 OpenShift 镜像#9599不再为 OpenShift 单独维护镜像副本统一镜像来源降低镜像仓库体积与发布负担OKD 部署仍可通过 deploy/longhorn-okd.yaml 进行只是不再依赖独立镜像。四、关键 Bug 修复深度解析4.1 Share Manager 生命周期稳定性#10096 / #9855Share Manager 是 RWX 卷的核心组件为卷提供 NFS 共享服务本版本一次性修复了它的两类严重问题Share Manager Pod 持续重启#10096此前在特定状态迁移下Share Manager 会陷入启动-失败-重启的循环RWX 卷表现为间歇性不可用节点关机后 Share Manager 永久卡在 stopping/error#9855这是更严重的场景——若 Share Manager Pod 所在节点被直接关机Share Manager 会永久卡在stopping或error状态导致该 RWX PVC无法再被任何新节点挂载相当于卷级故障。v1.6.4 修复了状态机的恢复路径使节点故障后 RWX 卷仍能被重新调度。结合仓库中的架构文档RWX 卷依赖专用的 recovery backend 与 NFS Server 高可用设计见 enhancements/20220727-dedicated-recovery-backend-for-rwx-volume-nfs-server.mdv1.6.4 的这两项修复正是对该设计在实际故障注入下的补强。4.2 Webhook 服务器初始化阻塞 longhorn-manager#10067Longhorn 的准入控制Volume/Snapshot/Node 等资源的 webhook与 manager 主流程在同一进程内。此前若 webhook 服务器初始化失败或卡住会拖累整个 longhorn-manager 无法正常启动——这属于典型的旁路组件阻塞主链路问题。v1.6.4 将 webhook 初始化与 manager 主循环解耦/加固确保 webhook 异常不会阻塞控制器主流程。4.3 多文件恢复时 API 请求丢失 fromBackup 参数#10065fromBackup是 Longhorn 卷的数据源字段用于从备份恢复卷字段定义见 chart/templates/crds.yamlStorageClass 参数示例见 examples/storageclass.yaml。当用户在 UI 的备份列表中选择多个备份文件逐个恢复时部分请求会丢失fromBackup参数导致恢复出的卷没有正确绑定备份数据源。v1.6.4 修复了该参数在多次恢复请求间的传递逻辑保证每次恢复都携带正确的备份引用。4.4 iSCSI 突发连接错误与 IM Pod 重启导致的卷断连#9890v1 数据引擎基于 iSCSI 的 legacy engine场景下短时间内的 iSCSI 连接错误爆发可能触发 instance-manager Pod 重启进而造成卷 I/O 断连。v1.6.4 修复了错误处理路径使突发性 iSCSI 错误不再轻易演变为 IM Pod 重启级别的故障。4.5 备份目标与备份数据完整性#9589 / #9730 / #9792 / #9543 / #9704 / #10070本版本对备份链路的修复最为密集覆盖了备份目标的配置、清理、进度统计与数据可见性S3 备份目标随机回退到旧值#9589运行过程中 S3 备份目标配置可能被意外重置为之前的取值导致后续备份写入错误的桶。v1.6.4 修复了该配置的持久化与读取竞争问题超时后旧备份未被清理#9730备份清理流程在超时条件下会中断遗留旧备份占用备份存储空间备份进度统计把上传失败的块计入成功数#9792进度显示与实际成功块不一致误导用户对备份状态的判断v1.6.4 修正了计数口径NFS 断连重连后所有备份丢失#9543这是最严重的一项——NFS 服务短暂断开再恢复后备份目标中的全部备份记录可能从 Longhorn 视角消失。v1.6.4 修复了 NFS 会话重连后的备份枚举/索引重建逻辑带 options 的 NFS 备份目标无法检查备份 BackingImage 信息#9704当 NFS URL 携带挂载选项时BackingImage 备份信息检查失败卷备份详情页出现错误通知#10070UI 层在备份详情展示时产生误导性的错误提示。这些修复共同说明备份目标NFS/S3的异常恢复能力是 v1.6.4 的重点打磨方向。结合 1.6.3 已修复的备份卡在 17% 进度#9399与无效 backuptarget 导致卸载失败#87931.6.x 分支在备份链路上的稳定性已形成完整闭环。4.6 节点驱逐、DR 卷与副本调度#9809 / #9802 / #9867 / #9625节点驱逐期间卷卡在 attached 状态#9809驱逐节点时卷应完成 detach 以允许副本迁移此前特定时序下卷会卡在 attached驱逐被阻塞增量恢复期间节点停启导致 DR 卷重挂载失败并 faulted#9802DRDisaster Recovery卷在增量恢复过程中若遭遇节点停启会陷入 faulted 且无法重挂直接威胁容灾可用性驱逐测试用例无法在卷 detach 后重调度副本#9867对应 e2e 测试的失败暴露了调度路径缺陷本版本一并修复已删除节点上的停止副本被计为健康副本#9625驱逐统计口径错误可能让调度器误判副本健康度做出错误的重建决策。4.7 RWX PVC 在文件系统扩容阶段失败#9737卷扩容是先块设备、后文件系统的两段式流程。v1.6.4 修复了 RWX 卷经 Share Manager 挂载在文件系统扩容阶段失败的问题使 RWX 卷的在线扩容与 3.4 节提到的防卡死改进#9913配套生效。4.8 kubectl drain 被孤儿 engine 进程阻塞#9443节点维护时的kubectl drain依赖 Longhorn 卷的驱逐完成。此前节点上可能残留孤儿 engine 进程进程已运行但其 CR 状态与节点不一致导致 drain 永久等待。v1.6.4 修复了孤儿 engine 进程的清理逻辑让节点驱逐流程不再被悬空进程卡住。这一问题在 1.6.3#9446中已部分处理本版本继续补强了剩余路径。4.9 节点删除后重新添加时无法添加块设备磁盘#10041节点从集群删除再重新加入例如节点重置后复用时磁盘管理状态可能残留旧节点的痕迹导致新块设备磁盘无法被添加。v1.6.4 修复了节点重建场景下的磁盘状态收敛问题。4.10 其他修复#9644 / #9918 相关 / #9890 相关Pre-upgrade Pod 应记录失败原因#9644升级前检查 Pod 失败时输出明确的事件原因而不是静默失败为升级排障提供第一手信息实例管理器相关日志与状态与 3.6、3.7 节呼应让运维能从日志层面定位 IM 行为。五、安全与构建收尾Misc 任务修复 v1.6.4 相关 CVE#9898对组件镜像中已知 CVE 进行修复基础镜像升级到 15.6#10073统一升级基础镜像版本随 CVE 修复一起交付构建期安装最新 grpc_health_probe#9716grpc_health_probe是 Longhorn 组件健康检查liveness/readiness probe使用的探针工具改为构建期拉取最新版本避免镜像内探针版本过旧导致健康检查行为异常1.6.3 曾出现 v2 卷 instance-manager 因 liveness 探针失败被杀的问题见 #8808。六、仓库证据与设置项对照v1.6.4 涉及的关键配置项可以在当前仓库中逐一找到对应实现配置/特性仓库证据位置说明日志级别设置#9618chart/values.yaml、chart/templates/default-setting.yaml、chart/README.mddefaultSettings.logLevel默认Info可选 Panic/Fatal/Error/Warn/Info/Debug/TracedataLocality / strict-local#9931deploy/longhorn.yaml、enhancements/20221123-local-volume.md卷级dataLocality默认disabledstrict-local 组合校验在 webhook 层实施fromBackup 数据源#10065chart/templates/crds.yaml、examples/storageclass.yaml卷 CRD 的spec.fromBackup字段恢复卷的唯一数据源入口RWX / Share Managerexamples/rwx/storageclass-migratable.yaml、enhancements/20220727-dedicated-recovery-backend-for-rwx-volume-nfs-server.md共享卷的架构与恢复后端设计安装/升级清单deploy/longhorn.yaml、chart/Chart.yaml、uninstall/uninstall.yamlKubectl/Helm 两种部署入口受支持版本support-versions.txt当前支持 v1.11.3 / v1.12.1升级前请核对路径七、升级路线与运维建议核对前置条件升级前确认集群 Kubernetes 版本 ≥ v1.21且当前 Longhorn 版本属于受支持的升级来源v1.5.x / v1.6.x。关注升级检查 Podv1.6.4 已让 pre-upgrade Pod 明确输出失败原因#9644升级失败时应先查看该 Pod 的事件与日志。RWX 卷用户重点验证本版本对 Share Manager#10096、#9855与 RWX 扩容#9737做了集中修复升级后应针对 RWX 工作负载执行节点关机-卷重挂载与在线扩容的回归验证。备份链路回归涉及 NFS/S3 备份目标的用户建议升级后验证备份列表枚举、恢复含多文件恢复验证fromBackup传递、清理与断连重连场景确认 #9543、#9730、#9589 的修复在生产行为中生效。规划后续版本v1.6.4 是 1.6.x 分支的维护收尾版本受支持版本列表已推进至 v1.11.x / v1.12.x见 support-versions.txt建议结合升级路径约束尽早规划向受支持主线的迁移持续获得新功能与安全修复。结语Longhorn v1.6.4 没有引入炫目的新功能它的价值恰恰在于把 1.6.x 分支在真实生产环境中暴露的每一个痛点逐一钉死从 RWX 共享卷的状态机韧性、备份目标的断连自愈到节点驱逐、卷扩容与组件日志的可观测性。对于仍在 1.6.x 上运行的生产集群这是一个值得纳入升级计划的稳定版本对于评估 Longhorn 的新用户理解这些修复背后的故障场景也能更准确地判断 Longhorn 在自身工作负载下的适配边界。赞分享云原生存储高可用容器编排【免费下载链接】longhornCloud-Native distributed storage built on and for Kubernetes项目地址https://gitcode.com/gh_mirrors/lo/longhorn点击查看免费下载相关推荐Longhorn v1.6.2 补丁版本解读稳定性修复、升级路径与部署实践Longhorn v1.6.2 补丁版本解读稳定性修复、升级路径与部署实践 Longhorn v1.6.2 是 v1.6 系列的一个补丁patch版本聚云原生存储高可用容器编排Longhorn v1.4.1 版本发布详解稳定性修复、性能优化与安装升级指南Longhorn v1.4.1 版本发布详解稳定性修复、性能优化与安装升级指南 导读 本文以 Longhorn v1.4.1 官方 Release Note云原生存储高可用容器编排Longhorn v1.11.3 补丁版本深度解读稳定性修复、升级约束与源码印证Longhorn v1.11.3 补丁版本深度解读稳定性修复、升级约束与源码印证 Longhorn 1.11.3 是面向 v1.11 系列的一个补丁发布pa云原生存储高可用容器编排创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。