快照(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)

快照不是实时同步

快照记录的是创建时刻的磁盘状态,此后的数据变更不会自动更新到快照中。重要数据建议结合数据库定时备份方案,不要完全依赖快照。

创建快照的步骤

  1. 登录 KiwiVM,在左侧菜单点击 Snapshots
  2. 查看当前快照数量及剩余配额
  3. Create Snapshot 区域输入快照备注名(如 before-nginx-upgrade-2026-05-31
  4. 点击 Create Snapshot 按钮
  5. 等待进度条完成(VPS 磁盘越大耗时越长,通常 2~10 分钟)
  6. 刷新页面,确认快照出现在列表中,记录快照 ID

创建期间 VPS 可继续运行

搬瓦工的快照采用写时复制(COW)技术,创建过程中 VPS 可以继续提供服务,但 I/O 性能会有轻微下降,建议在低峰期执行。

恢复快照的步骤

  1. Snapshots 页面找到目标快照
  2. 点击对应快照右侧的 Restore 按钮
  3. 在弹出的确认对话框中点击确认(恢复后当前数据将被覆盖)
  4. 等待恢复完成,约 5~15 分钟
  5. 恢复完成后 VPS 会自动重启,检查服务是否正常运行

恢复会覆盖当前数据

快照恢复是破坏性操作,恢复后快照创建时间点之后的所有数据和更改都会丢失。如有最新数据需要保留,请先备份再恢复。

导出快照用于跨机迁移

快照导出功能允许将当前 VPS 的系统状态迁移到另一台搬瓦工 VPS(需为同一账号下)。

  1. Snapshots 页面,点击快照右侧的 Export 按钮
  2. 复制生成的导出 Token(有效期通常为 24 小时)
  3. 登录目标 VPS 的 KiwiVM,进入 Snapshots 页面
  4. Import Snapshot 区域粘贴 Token,点击导入
  5. 等待传输与还原完成(取决于磁盘大小,可能需要 10~30 分钟)
  6. 导入完成后启动目标 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 已过期。请核查上述条件后重试。