首页/云/云平台与虚拟化速查/virsh suspend / save 挂起与保存
虚拟化操作94 条

virsh suspend / save 挂起与保存

suspend 暂停域(内存留在宿主内存中),save/restore 则把完整内存镜像写入文件、进程退出以释放资源,之后可原样恢复运行状态。

云平台与虚拟化速查云更新于 2026-10-13

是什么

挂起与保存是两种不同的暂停方式。挂起只把虚机执行暂停,内存内容仍留在宿主的物理内存里,恢复瞬间完成,但资源一直占着。保存则把完整内存状态写进文件、虚机进程退出,资源释放出来,之后可以从文件恢复到暂停前的运行状态。宿主需要重启或需要腾出内存时,用保存更合适。

基本信息

暂停暂停虚机执行,内存留在宿主内存中,恢复很快
恢复让暂停的虚机继续运行
保存把内存状态写入指定的状态文件,虚机进程退出
从文件恢复读取状态文件,把虚机恢复到保存时刻的运行状态
托管保存由虚拟化管理程序托管的保存方式,随管理操作自动触发

典型使用场景

  • 宿主维护前腾出内存:把批次虚机保存到文件,维护完成再恢复
  • 临时让出资源:把非关键虚机挂起,给关键业务留出余量
  • 状态定格:保留问题现场的运行状态,便于后续分析
  • 版本切换准备:保存当前状态作为可回退点,再执行变更
  • 成本控制:把长期不用的测试虚机保存下来释放内存

暂停与保存

暂停与保存
virsh suspend vm1 && virsh resume vm1     # 暂停后立即恢复,验证可用性
state_dir=/var/lib/libvirt/save
virsh save vm1 $state_dir/vm1-$(date +%F).save   # 保存内存状态并释放资源
virsh list --all                          # 保存后虚机状态应显示为已保存
virsh restore $state_dir/vm1-2026-10-13.save     # 从状态文件恢复运行
ls -lh $state_dir && chmod 600 $state_dir/*.save  # 状态文件含内存数据,限制权限

两种方式对比

维度挂起保存
内存占用继续占用宿主内存写入文件,内存释放
恢复速度瞬间恢复需要读回状态文件,时间取决于文件大小
跨宿主不能迁移,绑定当前宿主文件可搬移,但目标宿主版本与配置需兼容
适用场景短时间让出处理器长时间让出内存或宿主维护
风险点长期挂起占用内存,影响其他虚机状态文件含内存快照,权限与存放位置要受控
保存与恢复最好在同一宿主、同一版本上使用:状态文件包含设备与内存布局信息,跨大版本恢复可能失败,跨宿主恢复要确认配置兼容。
状态文件包含虚机内存的全部内容,可能含口令与会话密钥,要按敏感数据处理:限制文件权限、放在受控目录,并纳入清理策略。

易错点

  • 把保存与快照混为一谈:保存是内存状态,快照是磁盘状态,作用不同
  • 状态文件权限过宽,内存中的凭据信息暴露给本机其他用户
  • 长期挂起大量虚机,宿主内存被占满,其他虚机无法启动
  • 把状态文件搬到版本差异较大的宿主上恢复,恢复失败且无回退方案

数据来源与参考

  • libvirt 文档:virsh save / restore / suspend
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌