RescueMode
- Launchpad 条目: NovaSpec:rescue-mode
- 创建: 2010-09-01
- 贡献者: JesseAndrews
总结
实例的文件系统可能会损坏。救援模式提供了一种即使虚拟机镜像导致实例无法访问时也能访问它的机制。
发布说明
OpenStack 计算服务中添加了一种方法,可以将虚拟机重启到救援模式。会启动一个救援虚拟机,允许用户修复他们的虚拟机(通过使用新的 root 密码访问)。
原理
Rackspace/Slicehost 对等性
用户故事
用户在重启后发现他们删除了启动虚拟机所需的关键文件。用户能够重启到救援模式并恢复原始文件。
前提条件
- 救援虚拟机获得与真实虚拟机相同的网络配置
- 生成一个新的 root 用户名/密码
- 由于 Cloud Servers Developer Guide (API v1) 不包含救援模式,因此需要一个新的 API 方法
- 将提供一个救援镜像(镜像 ID 将是一个 nova 配置选项)
设计
当调用 API 方法时
- 虚拟机标记为救援模式
- 虚拟机被关闭
- 创建一个具有相同网络配置但具有新 root 密码的新虚拟机
- 新虚拟机将救援镜像作为主文件系统,并将原始虚拟机的原始文件系统作为辅助文件系统
添加一个完成救援的 API 方法
- 救援机器关闭,原始虚拟机以任何更改重新启动
状态转换
- ACTIVE → QUEUE_RESCUE → PREP_RESCUE → RESCUE → VERIFY_RESCUE
- ACTIVE → QUEUE_RESCUE → ACTIVE (出错时)
参考 RS 云
- 当机器处于救援模式时,诸如销毁之类的操作是不可能的。
实现
参考 /server/:id/action 方法来设计 API。