快照(Snapshot)是 VPS 在某一时刻的完整磁盘镜像,能够在系统崩溃、误操作或重大变更失败时迅速将系统还原至已知正常状态。搬瓦工 KiwiVM 提供手动快照功能,支持创建、恢复、导出和跨机迁移。本文详细讲解快照的适用场景、操作步骤与最佳实践。
本文要点
- 快照 vs 自动备份的核心区别
- 何时应该创建快照
- KiwiVM 快照创建与恢复的完整步骤
- 将快照导出为文件用于跨机迁移
- 快照占用空间与数量限制说明
快照与自动备份的区别
| 对比项 | 快照 | 自动备份 |
|---|---|---|
| 触发方式 | 手动创建 | 系统每周自动创建 |
| 保留数量 | 通常 1~2 个(视套餐) | 最近 2 份 |
| 用途 | 重大操作前的保护点 | 定期数据保险 |
| 恢复速度 | 约 5~10 分钟 | 约 10~20 分钟 |
| 是否可导出 | 支持导出为文件 | 不支持导出 |
| 是否占用配额 | 占用快照存储空间 | 独立备份空间 |
| 适用场景 | 升级软件、大改配置前 | 日常数据灾备 |
简而言之,快照是主动防御工具,适合在重大操作前手动触发;自动备份是被动保险,定期自动运行,两者互为补充,建议同时启用。
何时应该创建快照
以下情况强烈建议在操作前创建快照:
- 升级内核版本(如从 5.x 升级到 6.x)
- 更换 Web 服务器(如从 Nginx 切换到 Caddy)
- 大规模修改防火墙规则
- 安装未经测试的第三方软件
- 修改
/etc/fstab、/etc/ssh/sshd_config等关键配置文件 - 数据中心迁移前(作为额外保险)
- 执行系统大版本升级(如 Ubuntu 20.04 → 22.04)
快照不是实时同步
快照记录的是创建时刻的磁盘状态,此后的数据变更不会自动更新到快照中。重要数据建议结合数据库定时备份方案,不要完全依赖快照。
创建快照的步骤
- 登录 KiwiVM,在左侧菜单点击 Snapshots
- 查看当前快照数量及剩余配额
- 在 Create Snapshot 区域输入快照备注名(如
before-nginx-upgrade-2026-05-31) - 点击 Create Snapshot 按钮
- 等待进度条完成(VPS 磁盘越大耗时越长,通常 2~10 分钟)
- 刷新页面,确认快照出现在列表中,记录快照 ID
创建期间 VPS 可继续运行
搬瓦工的快照采用写时复制(COW)技术,创建过程中 VPS 可以继续提供服务,但 I/O 性能会有轻微下降,建议在低峰期执行。
恢复快照的步骤
- 在 Snapshots 页面找到目标快照
- 点击对应快照右侧的 Restore 按钮
- 在弹出的确认对话框中点击确认(恢复后当前数据将被覆盖)
- 等待恢复完成,约 5~15 分钟
- 恢复完成后 VPS 会自动重启,检查服务是否正常运行
恢复会覆盖当前数据
快照恢复是破坏性操作,恢复后快照创建时间点之后的所有数据和更改都会丢失。如有最新数据需要保留,请先备份再恢复。
导出快照用于跨机迁移
快照导出功能允许将当前 VPS 的系统状态迁移到另一台搬瓦工 VPS(需为同一账号下)。
- 在 Snapshots 页面,点击快照右侧的 Export 按钮
- 复制生成的导出 Token(有效期通常为 24 小时)
- 登录目标 VPS 的 KiwiVM,进入 Snapshots 页面
- 在 Import Snapshot 区域粘贴 Token,点击导入
- 等待传输与还原完成(取决于磁盘大小,可能需要 10~30 分钟)
- 导入完成后启动目标 VPS,验证服务是否正常
# 导入完成后检查关键服务是否恢复正常
systemctl status nginx
systemctl status mysql
df -h
free -m快照的限制与注意事项
使用快照功能前,需要了解以下限制:
- 数量限制:普通套餐通常只允许保留 1~2 个快照,超出后需删除旧快照才能创建新快照
- 存储占用:快照与 VPS 磁盘共用存储资源,快照越多,可用磁盘空间越少
- 跨套餐迁移:导出快照到目标 VPS 时,目标 VPS 的磁盘容量必须 ≥ 源 VPS
- OVZ 与 KVM:不同虚拟化类型的快照不能跨类型导入
- 过期自动删除:长期不使用的快照可能占用大量存储,建议及时清理
快照的底层实现原理
理解快照的底层原理有助于正确判断其适用边界。搬瓦工的快照采用写时复制(Copy-on-Write,COW)技术:创建快照时,系统记录当前磁盘的块级状态,并不立即复制所有数据;此后,当 VPS 对某个磁盘块执行写操作时,系统先将原始块复制到快照存储,再在原位置写入新数据。这种方式使得快照创建瞬间完成(逻辑上),对 VPS 正常运行的影响极小,但随着 VPS 写入操作增多,快照占用的存储空间会逐渐增大,直到你删除快照为止。
这也解释了为什么快照不是实时同步的备份:快照只保存创建时刻的磁盘状态,以及之后被修改的原始块。快照创建后产生的新数据并不在快照中,恢复快照会丢失这部分数据。
快照容量规划
在使用快照前,了解存储容量的规划方法非常重要。快照的存储用量与以下因素相关:
- 快照创建时磁盘的使用量:磁盘用得越满,初始快照越大
- 快照创建后的写入量:VPS 写入操作越多,快照与当前状态的差异越大,额外存储用量越大
- 同时保存的快照数量:每多保存一份快照,存储开销翻倍
最佳实践是:在磁盘使用量较低时创建快照,操作完成且验证无误后立即删除不再需要的旧快照,保持快照列表简洁,避免占用过多存储资源影响 VPS 正常使用。
快照与数据库一致性
对于运行 MySQL、PostgreSQL 等数据库的 VPS,在创建快照前有一个重要的注意事项:数据库通常将数据缓存在内存中,快照只捕获磁盘状态,内存中尚未写入磁盘的数据会丢失,可能导致恢复后数据库文件处于不一致状态。为避免此问题,可以在创建快照前先执行数据库的刷盘操作:
# MySQL 刷新并锁表(快照期间执行,完成后解锁)
mysql -u root -p -e "FLUSH TABLES WITH READ LOCK;"
# 创建快照完成后
mysql -u root -p -e "UNLOCK TABLES;"或者,对于高一致性要求的生产环境,建议先停止数据库服务再创建快照,确保磁盘数据完全落盘,恢复后直接启动数据库即可正常使用。
小结
快照是 VPS 运维中最重要的安全网之一。养成"大改之前必创快照"的习惯,能够将误操作的风险降到最低。结合搬瓦工的自动备份功能,形成"快照 + 定期备份 + 异地备份"的三层防护体系,确保数据万无一失。
常见问题
快照和备份有什么本质区别?
快照是手动触发的即时磁盘镜像,支持导出迁移,数量有限;备份是系统每周自动创建的定期副本,不支持导出。两者互补,建议同时使用。
快照创建过程中 VPS 会中断服务吗?
不会完全中断,但 I/O 性能会有轻微下降。建议在业务低峰期创建快照,以减少对服务的影响。
快照可以无限期保存吗?
可以保存,但会占用存储配额。当快照数量达到上限时,必须删除旧快照才能创建新的。建议只保留最近的 1~2 个有效快照。
为什么导入快照后系统无法启动?
常见原因:目标 VPS 磁盘容量小于源 VPS;虚拟化类型不匹配(OVZ vs KVM);Token 已过期。请核查上述条件后重试。