跳转到主要内容

Barn 0.8.0:恢复更顺畅,镜像更新

接续宿主准备、隔离失败节点、保留虚拟机身份,并更新九月 Debian 与 Ubuntu 镜像。
说明

本文为 0.8.0 历史发布记录。旧版发行附件已下线,安装当前版本请参见安装指南。

Barn 0.8.0 减少了初始化中断和部分节点启动失败后的手工清理工作,并在保留全部历史目录产物与已有虚拟机身份的前提下更新了九月 Debian 与 Ubuntu 镜像。

主要变化

  • 宿主准备自动接续原命令。 交互式 start、restart 与 reload 可自动补齐缺失的宿主工具并恢复未启动的 Barn 网络。macOS 首次配置网络时,会先查找或安装 Homebrew(或下载校验固定归档),随后再请求管理员认证,避免 Homebrew 清空此前获取的 sudo 凭据。
  • 单节点故障不再阻断独立节点。 up 与 start 期间若某个节点的宿主共享目录缺失,仅该节点报错停止,其余健康的已停止节点仍可正常启动。报错信息会同时列出宿主源路径和客机挂载点,不会创建空目录掩盖故障;restart、reload 与 recreate 会在停止运行中虚拟机前预先检查共享目录可达性。
  • 恢复过程保留节点身份。 部署公钥缺失时自动从现有私钥派生;私钥丢失时输出备份恢复指引,避免重新生成新密钥导致已有客机无法登录。macOS socket_vmnet 日志目录恢复时会保留网络归属标记,消除自身网段冲突误报。
  • 失败重试保留完整上下文。 重试提示会保留自定义 -f 清单路径、--repo 仓库参数与原命令名称(start 失败后仍提示重试 start)。宿主初始化与后续重试共享同一个操作 ID;即使尚未生成部署状态,也能写入和读取定长滚动事件日志;查询未缓存的镜像信息不再依赖 qemu-img。
  • 清理汇总准确反映最终状态。 显式删除持久盘或执行 purge 时,结果汇总不再将同一块磁盘同时列为保留和已删除。早先移除单节点遗留的受管磁盘也不再阻断整套实验环境的 destroy。

九月镜像

内置镜像目录 2026092001 包含 9 个系列共 37 个产物(完整保留此前全部 27 个产物),新增以下 amd64 与 arm64 稳定版镜像:

系列 系统版本 镜像目录版本
d12 Debian 12.15 20260909.2596.1
d13 Debian 13.7 20260914.2601.1
u22 Ubuntu 22.04.5 20260913.0.0
u24 Ubuntu 24.04.5 20260911.0.0
u26 Ubuntu 26.04.1 20260918.0.0

Debian 镜像预装离线 XFS 工具并生成 en_US.UTF-8 区域设置(默认仍为 C.UTF-8);Ubuntu 保留 Canonical 官方镜像字节,由 cloud-init 完成部署账户和网络配置。已有虚拟机与显式锁定版本的配置继续使用原基础镜像,仓库与目录更新机制见镜像参考。

安装或升级

curl -fLO https://github.com/pgsty/barn/releases/download/v0.8.0/install.sh
chmod +x install.sh
BARN_VERSION=0.8.0 ./install.sh
export PATH="$HOME/.local/bin:$PATH"
barn version

升级已有实验环境时,先在配置目录运行 barn plan 预览变更,再执行 barn up。start 仅启动已有节点;up 则应用配置变更并重试未完成的客机初始化。数据盘在恢复过程中的自动重建规则见存储指南。

验证与限制

两台 macOS arm64/HVF(m1、m5)与两台 Linux amd64/KVM(m0、m3)宿主完成了七系统 pro 验收,每台宿主同时运行 Rocky Linux 9.8/10.2、Debian 12.15/13.7 与 Ubuntu 22.04.5/24.04.5/26.04.1。基线候选 6d7870e 从局域网仓库完成全新初始化,随后原位升级至运行时候选 1c054a0,依次通过健康状态下重复 up、stop/start、两轮客机 SSH、数据盘读写、Ansible 配置读取与控制节点横向 SSH(两台 Mac 额外通过全部七节点 Ansible ping),全程保持虚拟机 UUID、镜像身份及根盘/数据盘 inode 不变。

验收过程中的单次实测耗时(首次 up 含镜像下载):

宿主 平台 全新首次 up(6d7870e) 健康复跑 up(1c054a0) 已有磁盘 start(1c054a0)
m0 Linux amd64 / KVM 117.915 s 3.924 s 36.944 s
m1 macOS arm64 / HVF 86.309 s 1.745 s 39.639 s
m3 Linux amd64 / KVM 98.443 s 2.169 s 44.068 s
m5 macOS arm64 / HVF 87.946 s 1.467 s 38.162 s

发布标签 v0.8.0(320a32afa8f6fca02592215aa0d5607ca4e852b2)相对受测运行时仅更新文档,已通过本地 make check、源码 CI、打包快照与标签工作流,生成的 20 项发行资产(19 个载荷与 checksums.txt)均已在 GitHub 预发布页完成下载与 SHA-256 校验。早期回归与镜像启动记录归档于 UX 审计与镜像更新记录。

两个官方镜像源均已同步签名目录 2026092001,隔离执行 barn update 均通过签名校验且全部 10 个新增镜像对象返回 HTTP 200。公开安装器已在 macOS arm64 与 Linux amd64 隔离目录完成二进制安装验证,Homebrew 软件源更新也已通过本地检查与 Homebrew CI。

0.8.0 已知限制:

  • 受上游 QEMU 在 Darwin 上的 virtfs 目录文件描述符实现限制,macOS 宿主暂不支持向 Linux 客机挂载共享目录;前置检查现已提前给出诊断提示。
  • 控制节点缺失客机私钥时,即便存在旧 ready 标记也会被检出并报告 control-ssh 限制;恢复节点间免密 SSH 仍需重建控制节点。完整实测矩阵见验证历史。

表格阅读