如何实现对OpenStack高可用性的构建

如题所述

第1个回答  2015-02-04
控制节点的高可靠性是主要问题,而且对于不同的组件都有自己的高可靠性需求和方案。
  (1)由于CotrolNode只有1个,且负责整个系统的管理和控制,因此当Cotrol Node不能提供正常服务时,怎么办?这就是常见的单节点故障(SPoF,single point of failure)问题。

  高可用性基本上是没办法通过一台来达到目标的,更多的时候是设计方案确保在出问题的时候尽快接管故障机器,当然这要付出更大的成本。

  对于单点问题,解决的方案一般是采用冗余设备或者热备,因为硬件的错误或者人为的原因,总是有可能造成单个或多个节点的失效,有时做节点的维护或者升级,也需要暂时停止某些节点,所以一个可靠的系统必须能承受单个或多个节点的停止。

  常见的部署模式有:Active-passive主备模式,Active-active双主动模式,集群模式。

  (2)那么如何构建冗余的控制节点?或者什么其它方法实现高可靠的控制?

  很多人可能想到实现active-passive模式,使用心跳机制或者类似的方法进行备份,通过故障转移来实现高可靠性。Openstack是没有多个控制节点的,Pacemaker需要多种服务各自实现这种备份、监听和切换。
仔细分析控制节点提供的服务,主要就是nova-api、nova-network、nova-schedule、nova-volume,以及
glance、keysonte和数据库mysql等,这些服务是分开提供的。nova-api、nova-network、glance等可以分别在每
个计算节点上工作,RabbitMQ可以工作在主备模式,mysql可以使用冗余的高可用集群。
第2个回答  推荐于2016-10-12
  OpenStack的镜像可以使用swift存储,glance可以运行在多个主机。Integrating OpenStack ImageService (Glance) with Swift 介绍了glance使用swift存储。  
  集群管理工具 Pacemaker 是强大的高可用性解决方案,能够管理多节点集群,实现服务切换和转移,可与Corosync 和 Heartbeat等配套使用。Pacemaker 能够较为灵活的实现主备、N+1 、N-N 等多种模式。  
  bringing-high-availability-openstack-keystone-and-glance介绍了如何通过Pacemaker实现keystone和glance的高可靠。在每个节点安装OCF代理后,它能够告诉一个节点另一个节点是否正常运行glance和keysone服务,从而帮助Pacemaker开启、停止和监测这些服务。
  一般情况下,OpenStack的分布式对象存储系统Swift的HA是不需要自己添加的。因为,Swift设计时就是分布式(没有主控节点)、容错、冗余机制、数据恢复机制、可扩展和高可靠的。转载,仅供参考。本回答被提问者和网友采纳
相似回答