主机维护策略¶
https://blueprints.launchpad.net/watcher/+spec/cluster-maintaining
问题描述¶
有时我们需要维护计算节点,更新硬件或软件等,而不会中断用户的应用程序。
用例¶
作为 OpenStack 操作员,有时我希望维护一个计算节点,而不会中断用户的应用程序。
提议的变更¶
将会有关于集群维护的新目标和策略。
添加一个新的目标 - “集群维护”
为该目标添加一个新的策略 - “主机维护”
新的策略执行如下
首先,获取需要维护的计算节点。此输入参数由管理员提供。调用 change_nova_service_state 操作,将维护节点设置为“维护中”状态(使用 disable_reason ‘watcher_maintaining’ 禁用)。
然后,调用 migrate 操作,将维护节点上的所有实例迁移到其他节点。迁移活动实例使用“live-migrate”,其他实例使用“cold-migrate”。计算节点的空闲 CPU/内存/磁盘,以确定一个实例或维护节点上的所有实例是否可以迁移到。该策略仅考虑如何迁移维护节点上的所有实例,进一步的优化依赖于其他策略。有两种方法可以迁移维护节点上的实例:方法一,将维护节点上的所有实例集中迁移到一个未使用的主机。‘未使用’主机对 Watcher 而言是指禁用但未关机的节点。如果有多个“未使用”主机,则从中随机选择一个。(此方法不会导致其他主机之间发生更多 VM 迁移。)方法二,将维护节点上的所有实例分散迁移到其他节点。方法一优先级更高。只有当方法一失败时,才会执行方法二。如果两种方法都失败,则审计失败并引发异常,不产生解决方案。
维护完成后,管理员需要通过 cli ‘nova service-enable’ 激活维护节点,将节点的状态从“维护中”手动更改为“启用”,这将使计算节点重新加入到计算资源中。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
主要负责人:sue
工作项¶
添加集群_维护的策略和目标
更新 change_nova_service_state 操作,使其能够维护一个计算节点。
依赖项¶
https://blueprints.launchpad.net/watcher/+spec/extend-node-status
测试¶
单元测试
文档影响¶
一份解释如何使用这个新的优化策略的文档。
参考资料¶
无
历史¶
无