构建OpenStack的高可用性(HA,High Availability)

1) CAP 理论给出了3个基本要素:

一致性 ( Consistency) :任何一个读操作总是能读取到之前完成的写操作结果; 可用性 ( Availability) :每一个操作总是能够在确定的时间内返回; 分区可容忍性 (Tolerance of network Partition) :在出现网络分区的情况下,仍然能够满足一致性和可用性;

CAP 理论指出,三者不能同时满足。对这个理论有不少异议,但是它的参考价值依然巨大。

    这个理论并不能为不满足这3个基本要求的设计提供借口,只是说明理论上3者不可绝对的满足,而且工程上从来不要求绝对的一致性或者可用性,但是必须寻求一种平衡和最优。

    对于分布式数据系统,分区容忍性是基本要求。因此设计分布式数据系统,很多时候是在一致性和可用性(可靠性)之间寻求一个平衡。更多的系统性能和架构的讨论也是围绕一致性和可用性展开。


2) OpenStack、Swift与CAP的工程实践

对照CAP理论,OpenStack的分布式对象存储系统Swift满足了可用性和分区容忍性,没有保证一致性(可选的),只是实现了最终一致性。Swift如果GET操作没有在请求头中包含’X-Newest’头,那么这次读取有可能读到的不是最新的object,在一致性窗口时间内object没有被更新,那么后续GET操作读取的object将是最新的,保证了最终一致性;反之包含了’X-Newest’头,GET操作始终能读取到最新的obejct,就是一致的。

在OpenStack架构中,对于高可用性需要进行很多工作来保证。因此,下面将对OpenStack结构中的可用性进行讨论:构建OpenStack的高可用性(HA,High Availability) (大家可以在这里讨论)


2、OpenStack的高可用性OpenStack HA

    要弄清楚怎么实现高可靠性,就需要知道哪些服务容易出现不可靠。首先了解一些OpenStack的大致结构。

    OpenStack由5大组件组成(计算nova,身份管理keystone,镜像管理glance,前端管理dashboard和对象存储swift)。

    nova是计算、控制的核心组件,它又包括nova-compute、nova-scheduler、nova-volume、nova-network和nova-api等服务。借用的以下这幅图了解OpenStack的5大组件和功能:

OpenStack Essex Conceptual Integration





下面这幅图描述了各个组件的功能和服务结构:

OpenStack Essex Logical Architecture



 

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/02dfe0f55d30f91e9f2c4cd5caec689f.html