拯救实例¶
实例拯救提供了一种访问机制,即使镜像导致实例无法访问。目前提供了两种拯救模式。
实例拯救¶
默认情况下,实例从提供的拯救镜像或原始实例镜像的全新副本启动(如果未提供拯救镜像)。根磁盘和可选的重新生成的 config drive 也附加到实例以便恢复数据。
注意
使用此模式不支持拯救基于卷的实例。
稳定设备实例拯救¶
从 21.0.0 (Ussuri) 开始,提供了一种额外的稳定设备拯救模式。此模式现在支持拯救基于卷的实例。
此模式在拯救期间将所有设备(本地和远程)都以其原始顺序附加到实例,同时从提供的拯救镜像启动。此模式通过提供的拯救镜像上的 hw_rescue_device 或 hw_rescue_bus 镜像属性的存在来启用和控制。
顾名思义,这些属性控制拯救设备类型 (cdrom、disk 或 floppy) 和总线类型 (scsi、virtio、ide 或 usb),这些类型在将拯救镜像附加到实例时使用。
对 hw_rescue_device 和 hw_rescue_bus 镜像属性的每种组合的支持取决于所使用的底层 hypervisor 和平台。例如,IDE 总线在基于 POWER KVM 的计算主机上不可用。
用法¶
注意
当实例在拯救模式下运行时,不允许暂停、挂起和停止操作,因为触发这些操作会导致原始实例状态丢失,并使取消拯救实例变得不可能。
要执行实例拯救,请使用 openstack server rescue 命令
$ openstack server rescue SERVER
注意
在运行 openstack server rescue 命令时,实例首先执行软关机。这意味着客户操作系统有机会在实例被关闭之前执行受控关机。关机行为由 shutdown_timeout 参数配置,该参数可以在 nova.conf 文件中设置。其值代表客户操作系统完成关机允许的总体时间(以秒为单位)。
可以通过 os_shutdown_timeout 来覆盖每个镜像的超时值,这是一个镜像元数据设置,允许不同类型的操作系统指定完成干净关机所需的时间。
要拯救从卷启动的实例,需要使用 2.87 微版本或更高版本。
$ openstack --os-compute-api-version 2.87 server rescue SERVER
如果您想使用特定的镜像来拯救实例,而不是默认镜像,请使用 --image 参数
$ openstack server rescue --image IMAGE_ID SERVER
要从正常的启动磁盘重新启动实例,请运行以下命令
$ openstack server unrescue SERVER