Farrow 0.7.0:简化测试环境,自动恢复故障
Farrow 0.7.0 简化测试环境的启动与恢复。重复执行 farrow up 即可继续中断的工作、
重试未完成的客机初始化,并原位更新旧的客机脚本,无需重启正在运行的虚拟机。
主要变化
- 缩短首次使用路径。 交互式
up可以创建默认配置、准备缺少的宿主工具,并恢复 已正确安装但未运行的 Farrow 网络。短检查保持安静,长任务显示进度,完成后给出简洁结果。 - 可用的环境继续运行。 数据盘、共享目录、客机主机名、节点间 SSH 和私网分别初始化。
可选功能失败时明确报告限制,保留可用的管理 SSH;后续
up跳过健康步骤。 - 自动恢复测试数据盘。 可用文件系统直接复用;无法识别或确认损坏的文件系统会被 清空重建并重新挂载,结果明确提示旧数据已丢弃。探测失败、设备暂缺、挂载占用和底层 I/O 故障不会触发格式化。
- 减少手工排障。 不可写的共享目录降级为只读,权限修正后重复
up恢复;已停止 虚拟机的自动 SSH 端口被占用时重新分配。镜像传输支持续传和官方源故障切换,保留摘要校验。 - 精简输出,分离提示与状态。 成功命令给出短摘要,限制按问题分组,JSON/YAML 保留 结构化结果。客机警告单独缓存,不进入 schema-2 虚拟机状态和节点工件目录,旧版本仍可 读取并管理原有环境。
升级说明
数据盘按可丢弃的测试存储处理。up 可能清空损坏的文件系统,包括 persistent 数据盘。
persistent 表示销毁、重建虚拟机时保留盘,不表示在故障恢复时保留损坏内容。有价值的数据
请存放在这些测试盘之外。此次自动清盘不涉及系统盘和宿主机共享目录。
不增加单独的 repair 命令,恢复工作统一由 up 完成。start 继续只启动已有节点,
不应用配置;--no-wait 跳过就绪检查及客机恢复步骤。
管理 SSH 可用、但可选功能受限时返回 0。要求全部功能可用的脚本应检查 JSON/YAML 的
nodes[].warnings;数据盘重置等自动操作写入 nodes[].repairs。回退 CLI 不会恢复已丢弃
的数据,也不会回退已经安装到客机中的脚本。
旧版 0.6.0 初始化中断时,可能在安装前就删除暂存的控制节点 SSH 私钥。up 能恢复
管理访问并继续独立步骤,但密钥缺失时仍报告 control-ssh 限制;原位重试不会重新注入
私钥。需要节点间 SSH 时,先用 farrow plan 查看磁盘影响,再显式重建受影响的控制节点。
安装或升级
提供 macOS/Linux 的 amd64/arm64 归档、Linux DEB/RPM、安装器、校验和、SBOM 和 Homebrew
Formula。沿用 pre-1.0 规则,在 GitHub 标记为 Pre-release,安装时需指定 FARROW_VERSION。
验证范围
发布提交为 9c6d4896d93733d1cb60a7e5d8591e9a06659c9d,通过源码 CI
与独立打包 Snapshot后打 Tag。
Tag 工作流重复门禁并生成 20 个发布资产:
19 个带校验和的载荷及校验清单。检查后,20 个资产均可匿名 HTTP 200 下载,并与检查过的字节一致。
公开 macOS arm64 与 Linux amd64 安装器安装的二进制均与归档一致,并报告版本 0.7.0 与上述提交。
Ubuntu 26.04 amd64、KVM/QEMU 10.2.1、Ubuntu 24.04 Guest 隔离环境实际验证了 ext4/XFS 损坏、持久盘、
探测失败、忙碌挂载、只读共享降级和重复健康 up 保留 VM 进程。公开版 0.6.0 因管理出网探测失败而中断,
0.7.0 在 3.3 秒内接续,探测失败期间已有数据盘和 UUID 保持不变。升级后 0.6.0 二进制仍能执行
status、stop、start 与 destroy。最终 0.7.0 归档新建的 VM 无警告启动;公开安装器还在 3.2 秒内
重置了人为损坏的可丢弃 ext4 数据盘,明确提示数据丢失,同时保留 VM 进程。
特定的 0.6.0 中断现场可能在安装前删除暂存的控制节点 SSH 私钥。此升级路径中管理 SSH 会恢复,
但节点间 SSH 会明确显示 control-ssh 限制,原位重试不会重新注入私钥;需要节点间 SSH 时,先查看
farrow plan 再重建受影响的控制节点。全新 0.7.0 Guest 会正常安装该密钥。
本版本 macOS 验证包括 CLI 冒烟与交叉编译;不宣称新增 HVF Guest 重放、宿主重启、Linux arm64 或完整 Pigsty 安装验收。