容器 E02:checkpoint 和 restore 能保存哪些进程状态
保存对象必须与外部世界对齐
一个进程的内存映射、寄存器、打开 FD、namespace 关系和网络连接可能都参与恢复;磁盘卷的内容、对端 TCP 状态、文件路径与宿主内核功能却未必随检查点一起搬迁。因此先固定 kernel/CRIU 版本、进程树、挂载和网络,记录快照时刻的业务状态。恢复时检查 PID 对照、应用计数、FD 指向的文件和 /ready,不是仅看 CRIU 返回 0。
正常实验在专用 VM 中对自编简单循环进程做 checkpoint/restore,比较恢复前后的进度;边界例增加打开的自有文件或连接到自建 HTTP 端点,记录不支持的对象和精确失败条件,避免把尝试失败硬写为“透明迁移”。恢复前提和清理入口、自编探针源码可独立取得。本云端未安装 CRIU、无恢复环境,正反案例和跨主机迁移全部 NOT_RUN。
| 现象 | 查什么 | 不可推出 |
|---|---|---|
| 恢复命令成功 | 进度/FD/请求及数据 | 原 TCP 对端也恢复 |
| FD 恢复失败 | 路径、权限与挂载 | checkpoint 文件坏 |
| PID 数字改变 | namespace 和进程关系 | 业务状态必丢 |
练习
- 先预测简单计数进程与持有网络连接的进程恢复条件有什么不同,在专用 VM 分两轮实测并保存错误信息。
- 预测只拷贝 checkpoint 文件、不搬移卷中状态会产生什么后果,比较恢复后文件内容与应用状态。
先修:16:数据写入、21:停止。下一篇:E03:事件归属。
系列总目录:从进程隔离到运行时与编排。
参考资料
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.





