gushiren

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

pause/unpause

短时间暂停instance,通过Pause操作将instance的状态保存到宿主机的内存中。当需要恢复的时候,执行unpause操作,从内存中读回instance的状态,然后继续运行instance。

对虚机进行pause操作后,通过`ps -ef | grep qemu`查看,依然有该虚机的qemu进程存在,资源并没有得到释放,同时也可以通过查看nova-compute的日志,资源上报的自动任务中的资源使用状况并没有减少。

suspend/resume

如果需要长时间暂停instance,可以通过Suspend操作将instance的状态保存到宿主机的磁盘上。需要恢复的时候,执行Resume操作,从磁盘读回instance的状态,然后继续运行。

执行suspend操作后,同样的通过ps -ef | grep qemu查看,虚机的qemu进程已经消失了,释放了宿主机的资源,但是通过nova-compute日志,资源上报中的资源使用情况依然没有发生改变。

虽然pause和suspend都是暂停虚机,然后保存虚机的状态,但是二者还是有明显的区别:

  • suspend操作将虚机的状态保存在内存中,而pause保存在磁盘中,所以虚机状态恢复的时间是不同的;
  • suspend操作后会释放虚机使用的资源,但是对于OpenStack平台来说该虚机依然占有资源(通过nova-compute的资源上报可以查看),而pause操作不会。
  • 虽然都是通过Resume操作恢复,Pause对应的 Resume在OpenStack内部被叫作“Unpause”;Suspend 对应的Resume才是真正的“Resume”。

shelve/unshelve

虚机执行shelve操作可以将虚机的资源彻底的释放出来,并且shelve会将instance作为image保存到glance中,然后再删除该虚机释放资源。可以通过unshelve操作恢复虚机,并且在恢复成功之后删除基于该虚机创建的镜像。需要注意的是,通过unshelve操作之后的虚机可能和shelve之前的虚机不在一个计算节点上,因为unshelve操作是基于shelve操作创建的镜像重新创建虚机,所以会重新选择计算节点。

rescue/unrescue

当虚机出现故障时(操作系统无法启动),我们可以通过rescue操作,暂时的使用一张系统盘将系统启动起来,然后进行一些补救措施。

rescue操作会使用一张系统盘将系统引导起来,然后将虚机原先的系统盘作为第二块磁盘挂在到操作系统上。

使用rescue恢复虚机。

soft reboot/hard reboot

soft reboot 与 hard reboot 的区别在于:

  • soft reboot 只是重启操作系统,整个过程中,instance 依然处于运行状态。相当于在 linux 中执行 reboot 命令
  • hard reboot 是重启 instance,相当于关机之后再开机

snapshot/rebuild

snapshot是对instance的镜像文件(系统盘)进行全量备份,生成一个类型为 snapshot的image,然后将其保存到Glance上。

如果 instance 损坏了,可以通过snapshot恢复,这个恢复的操作就是 Rebuild。

Rebuild 会用 snapshot 替换 instance 当前的镜像文件,同时保持 instance 的其他诸如网络,资源分配属性不变。

posted on 2018-09-13 18:37  gushiren  阅读(543)  评论(0编辑  收藏  举报