Suspend / Resume
有时候须要长时间暂停 instance , 能够经过 Suspend 操做将instance 的状态保存到宿主机的磁盘上。须要恢复的时候,执行 Resume操做从磁盘读回 instance 的状态,而后继续运行。
这里对 Suspend 和 Pause 作个对比:
相同点:都是暂停 instance 的运行,保存状态,须要恢复的时候执行 resume 恢复以前状态。
不一样点:
一、Suspend 将 instance 状态保存在磁盘上;Pause 是保存在内存中,因此 Pause 恢复的要快
二、instance 被 Suspend 后,状态为 shutdown ,而 Pause 的 instance 状态是 Paused
三、虽然都是经过 Resume 操做恢复,Pause 对应的Resume 在 OpenStack 内部叫作 Unpause ; Suspend 对应的Resume 才是真正的 Resume,这个在日志中能体现出来。
操做流程和前面的练习是同样的,这里就不详细分析了
Rescue / Unrescue
这节开始咱们将讨论几种 instance 故障恢复的方法,不一样方法适用于不一样的场景。首先咱们考虑操做系统故障。
有时候因为误操做或者忽然断电,操做系统重启后起不来了。为了更大限度挽救数据,咱们一般会使用一张系统盘将系统引导起来,而后再尝试恢复。问题若是不太严重,彻底能够经过这种方式让系统从新运行起来,好比某个系统文件被意外删除,root密码遗忘等。Nova也提供这种故障恢复机制,叫Rescue。咱们来看下Rescue的说明:
stack@DevStack-Controller:~$ nova help rescue
usage: nova rescue [--password <password>] [--image <image>] <server>
Reboots a server into rescue mode, which starts the machine from either the
initial image or a specified image, attaching the current boot disk as
secondary.
# 重启系统从启动盘的初始状态或者是一个指定的启动盘文件启动,进入救援模式,并添加故障的启动盘位第二硬盘。
Positional arguments:
<server> Name or ID of server.
Optional arguments:
--password <password> The admin password to be set in the rescue environment. # 设置救援模式中admin的密码
--image <image> The image to rescue with. # 指定一个其余的启动盘文件
目前 Rescue 操做只能在命令行中执行,当系统修复完毕后,使用 Unrescue 将 instance恢复至正常状态。
stack@DevStack-Controller:~$ nova help unrescue
usage: nova unrescue <server>
Restart the server from normal boot disk again.
Positional arguments:
<server> Name or ID of server.
该操做的实现流程与以前的练习同样,这里再也不作详细分析