07. VM105 迁移与 7 天观察期

VM105 是什么

VM105 是 2024 年装的飞牛 NAS (fnOS) 虚拟机:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
VMID: 105
名字: myNas
OS: fnOS (基于 Debian 的 NAS 系统)
CPU: 4 cores
RAM: 8GB
磁盘:
  - SSD_1TB/vm-105-disk-0  64GB   ← boot
  - SSD_1TB/vm-105-disk-1  500GB  ← data (RAID 1)
  - HHD_3TB/vm-105-disk-0  1TB    ← extra
网络: 192.168.31.233, vmbr0

VM105 同时承担:

  • Syncthing 同步中心(主要)
  • 飞牛 NAS 自带服务(相册、SMB、WebUI 等)
  • DLNA (没人用)

为什么想换掉

问题 1: GUI 经常挂

飞牛 NAS 自带 Syncthing 是 docker 部署的,web UI 经常连不上,但后台进程健康。

排查日志没找到根本原因,可能是 fnOS 自动更新破坏了 docker 卷。

问题 2: 资源占用高

8GB RAM、空闲时 2GB,Syncthing docker 占大头。

问题 3: 飞牛 NAS 用不上

装了飞牛 NAS 后只用了 Syncthing,相册 / SMB / DLNA 从没用过

问题 4: 备份策略复杂

飞牛 NAS 的 500GB RAID 备份需要在 PBS 之外另搞一套。

方案演进

方案 A: 直接删 VM105,数据移到 CT111

风险:

  • VM105 删了,如果 CT111 sync 出问题,数据全没
  • 没观察期

方案 B: VM105 + CT111 并行,7 天观察

采用这个方案

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
┌─────────────────────────────────────┐
│ 阶段 1 (2026-09-02 ~ 2026-09-09)  │
│   VM105 (主) → CT111 (新,观察)     │
│   两边都活,数据双向同步           │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ 阶段 2 (2026-09-09)               │
│   7 天稳定,确认无误              │
│   ↓                                │
│   从 CT111 folder shares 移除 VM105│
│   ↓                                │
│   停止 VM105,等 1 天再删           │
│   ↓                                │
│   删除 VM105,释放 500GB + 64GB    │
└─────────────────────────────────────┘

为什么 7 天?

  • 跨完整工作周期:周一写 → 周五看回环 → 周末观察
  • 覆盖各种同步场景:大文件、小文件、文件夹重命名、删除
  • 足够发现 subtle bug:比如某特定文件类型不同步

阶段 1:并行同步

VM105 端不需要改

VM105 飞牛 NAS 上的 Syncthing 已经:

  • 添加了所有 6 个设备
  • 三个文件夹都已 share with CT111 (myNas-ct)
  • 自动开始 sync

CT111 端

详见 04-CT111-Syncthing-LXC部署06-16379个permission-denied排查

当前 sync 状态

1
2
3
共享文件夹:           ✅ inSync  (1GB)
服务、物资对账单:     ✅ inSync  (40GB)
工作学习:            🔄 syncing (51%, 16GB)

阶段 2:关闭 VM105

Step 1: 移除 VM105 设备从 CT111 folder shares

1
2
3
4
5
# CT111 端
API_KEY=$(...)

# 通过 XML 移除 VM105 (myNas) 从所有 folder
# 或通过 Syncthing GUI 操作

或者直接 GUI 操作:

  1. CT111 web UI → Edit folder “工作学习”
  2. 移除 myNas 设备
  3. 同样处理其他两个 folder

Step 2: 停 VM105

1
2
3
# PVE 端
qm stop 105
# 等几小时,看 CT111 是不是仍然稳定

Step 3: 删 VM105 + 释放存储

1
2
qm destroy 105
# 自动删 zvols

释放:

  • SSD_1TB/vm-105-disk-0 (64GB)
  • SSD_1TB/vm-105-disk-1 (500GB)
  • HHD_3TB/vm-105-disk-0 (1TB)
  • 共 ~1.5TB

观察期 checklist

每天 [ ] 做的事:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 1. 三个文件夹都 sync 完毕?
curl -H "X-API-Key: $KEY" http://127.0.0.1:8384/rest/db/status?folder=nsylc-yh8lq | jq .state
curl -H "X-API-Key: $KEY" http://127.0.0.1:8384/rest/db/status?folder=h7vua-f9uv7 | jq .state
curl -H "X-API-Key: $KEY" http://127.0.0.1:8384/rest/db/status?folder=74gcj-hxstt | jq .state

# 2. 错误数?
curl -H "X-API-Key: $KEY" http://127.0.0.1:8384/rest/db/status?folder=nsylc-yh8lq | jq .pullErrors

# 3. 所有设备 connected?
curl -H "X-API-Key: $KEY" http://127.0.0.1:8384/system/connections | jq 'map(select(.connected == false))'

# 4. 公司电脑 / 家里的电脑有没有自动加进来?

# 5. 写一个文件,看 round trip 怎么样

关键问题预判

Q: VM105 数据如果 7 天内没全 sync 完怎么办?

A: 延后删除。等 sync 完毕。

Q: 观察期内 CT111 挂了怎么办?

A: VM105 还是主数据源,降级不影响。

Q: 用户删了 VM105 上的文件,CT111 也会跟着删吗?

A: 是的,Syncthing 双向同步会传播删除。这是个风险,但 7 天观察期就是为了发现这种情况。

如果想避免,可以临时把 CT111 的 folder 改成 type="receiveonly",只接收不发送。

Q: 家里的电脑没加进 CT111,会不会错过数据?

A: 如果家里的电脑只和 VM105 sync,删 VM105 后它就孤立了。

应该: 观察期内,把家里的电脑也加到 CT111。

决策记录

日期决策理由
2026-09-01CT111 + Tailscale 替代 VM105 角色VM105 经常 GUI 挂
2026-09-027 天观察期,不立刻删数据安全优先
2026-09-02保留 VM105 跑 7 天兜底,如果 CT111 故障

飞牛 NAS 整体退役

不是只删 Syncthing 部分,如果 7 天观察期结束没问题,飞牛 NAS 整套退役。

替代方案:

  • 飞牛 NAS 相册: 早就没用
  • 飞牛 NAS SMB: 早就没用
  • 飞牛 NAS DLNA: 早就没用
  • Syncthing: 由 CT111 接管

结论:VM105 整个退役,只保留 CT111

教训

教训 1: 重要迁移一定要有过渡期

任何"主备切换"或"数据迁移",不要一刀切

并行运行 → 观察 → 切换 → 退役 是最稳的路径。

教训 2: 数据无价,观察期成本低

7 天不操作 VM105 的成本:

  • 500GB 多存 7 天(~几分钱电费)
  • 一个 VM 的 RAM (8GB,~几分钱电费)

对比一刀切删 VM105 数据全没:观察期必须做

教训 3: 决策要写下来

写了表格记录决策理由,回看时一目了然。下次有人问"为什么 7 天观察期",有据可查。

状态追踪

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
[2026-09-02] 阶段 1 启动
  - 三个文件夹: 共享✅ 服务物资✅ 工作学习🔄51%
  - VM105 健康

[2026-09-02 ~ 09-09] 每日观察
  - 持续中...

[2026-09-09] 决策点
  - 全部稳定 → 移除 VM105 → 停 VM105 → 删 VM105
  - 有问题 → 延后,排查

下一篇

08. 调试方法论 →