openstack控制节点高可用性调研
通常的开发环境控制节点都是用all-in-one的形式安装的,既方便又节省资源。
控制节点一般包含的服务有数据库、消息队列、memcached和openstack的一些服务。
对控制节点的HA即是对以上各个服务的HA。下面说说各自的HA方案:
数据库一般采用mysql,其HA方案可参见官方的HA方案,这里不赘述。
消息队列一般采用rabbitmq,其HA方案openstack官网中提供了:https://docs.openstack.org/ha-guide/shared-messaging.html
openstack在控制节点的服务:
这是我们需要重点研究的内容,openstack各个模块通过提供api的形式提供服务,虽然形式多样,但HA方案中只提供了通过http访问的方法。那么HA方案就比较容易了,为apis提供负载均衡即可。
控制节点除了apis还有一些调度等服务,比如nova-scheduler。类似服务于其api之间是用mq来沟通的,而且其自身是无状态的,因此可以部署多套,多活。不管是哪个节点的服务去执行命令都可以。
下面是openstack提供的部署结构图:

A/A - active/active
A/P - active/passive
- 其中我们需要部署的服务都是A/A多活的
- memcache本身支持HA,在openstack对应配置处直接配置多节点即可
下面是官方各服务分离的部署结构图:
