Barn 0.8.0:恢复更顺畅,镜像更新
本文为 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 完成部署账户和网络配置。已有虚拟机与显式锁定版本的配置继续使用原基础镜像,仓库与目录更新机制见镜像参考。
安装或升级
升级已有实验环境时,先在配置目录运行 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 仍需重建控制节点。完整实测矩阵见验证历史。