无状态与有状态服务¶
OpenStack 组件可以分为三类
OpenStack APIs:用 Python 编写的 HTTP(s) 无状态服务 API,易于复制且大多易于负载均衡。
SQL 关系数据库服务器提供其他组件使用的有状态类型。支持的数据库包括 MySQL、MariaDB 和 PostgreSQL。使 SQL 数据库冗余化比较复杂。
高级消息队列协议 (AMQP) 提供 OpenStack 内部有状态通信服务。
无状态服务¶
一种在收到您的请求后提供响应,然后无需进一步关注的服务。要使无状态服务具有高可用性,您需要提供冗余实例并对其进行负载均衡。
无状态 OpenStack 服务¶
无状态的 OpenStack 服务包括 nova-api、nova-conductor、glance-api、keystone-api、neutron-api 和 nova-scheduler。
有状态服务¶
一种后续请求依赖于第一个请求结果的服务。有状态服务更难管理,因为单个操作通常涉及多个请求。提供额外的实例和负载均衡并不能解决问题。例如,如果 horizon 用户界面每次您转到新页面时都重置,它将没有用处。有状态的 OpenStack 服务包括 OpenStack 数据库和消息队列。使有状态服务具有高可用性取决于您选择主动/被动或主动/主动配置。