APP下载

OpenStack云计算平台高可用性的研究

2016-03-07欧卫红简碧园

电脑与电信 2016年12期
关键词:宕机可用性集群

欧卫红 简碧园

(广州科技职业技术学院,广东 广州 510550)

OpenStack云计算平台高可用性的研究

欧卫红 简碧园

(广州科技职业技术学院,广东 广州 510550)

随着云计算技术的不断发展,各种云计算平台也逐渐成熟,开源云平台OpenStack也得到了各大IT巨头的关注和支持,发展迅速。本文论述了OpenStack云平台的系统架构和系统的高可用性,着重描述了系统中实现高可用性采用的两种模式::Active/Passive(主备模式)、Active/ Active(双活模式)。并对开放云平台OpenStack中的各层次实现高可用性的实施方案进行了剖析,为搭建OpenStack云平台时提高其可用性提供依据。

高可用性(H A);OpenStack;主备模式;双活模式

1 引言

自2006年云计算概念的提出,云计算就此形成了一个新的IT应用领域,从此云计算技术也逐步在改变我们的应用方式。云计算技术是在网络环境下产生的,因而先天就具有开放性,开源的云计算平台已经成为云计算行业中一股重要的力量。OpenStack云计算平台[1],最开始是由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,并以Apache许可证授权的自由软件和开放源代码项目。由于它的架构功能强大,包含了网络、虚拟化、操作系统、服务器等各个方面,现已成为最炙手可热的开源项目,各大IT巨头都纷纷加入其中,业界普遍认为它将是云数据中心的主要演进方向,并有可能成为云计算产业的事实标准。OpenStack支持目前主流的不同类型的云环境,它实施简单且可大规模扩展,并具有丰富的、标准统一的云计算管理平台,还提供一整套IaaS的解决方案。它主要的组件有:计算、网络、对象存储、块存储、身份认证、镜像服务、门户、测量、部署编排、数据库服务等多个组件。OpenStack云平台具有超大规模、虚拟化、高可靠性、高通用性、高可扩展性、按需服务、高可用性、高性价比等特点,本文主要论述它的高可用性。

2 高可用性

高可用性(High Availability),指的是在本地系统中单个组件发生故障的情况下,能够继续提供应用服务的能力[2]。高可用性是评价一个系统好坏的重要标准之一。高可用性集群的主要功能是提供不间断的服务[3]。暂时的停机会导致数据的丢失和灾难性的后果[4]。网络应用系统最好的可用性就是你有一台服务器宕机了,而使用这些服务的客户却完全感觉不到,客户的服务不会间断、应用数据也没有丢失。当服务器宕机发生后,在该机器上运行的服务肯定得做故障切换,在切换过程中有两个主要指标:RTO(服务恢复时间)和RPO(切换时向前恢复的数据的时间长度)。当RTO=0时就表明是即时恢复,这是最好的情况,当RTO=∞时,这是最坏的情况就是永远也恢复不了;当RPO=0时表示使用同步的数据,没有数据丢失,而RPO>0时就表示有数据丢失。提高系统的高可用性就是使RTO和RPO接近或等于零。高可用性可以用下面的公式进行计算:高可用性(HA)=[1-(宕机时间)/(宕机时间+运行时间)]*100%,也可以换算成具体的宕机时间来表示,如:2个9即99%的可用性,宕机时间=(1-99%)*365天/年=3.65*24小时/年=87.6小时/年;5个9即99.999%可用性,宕机时间=(1-99.999%)*365天/年= 0.0365*24*60分钟/年=5.265分钟/年;现在最好的云计算平台要达到11个9,可以实现至少几年的时间也就宕机几分钟,因此,云计算平台的可用性是非常高的。

目前高可用性都是使用冗余的组件或服务器组成集群来提供服务,根据这种冗余性不同的特点可以将高可用性分为两类:

Active/Passive(主备模式)高可用性:当集群中只有2个节点或多个节点时,其中有一个是活动主设备而另一个或多个节点是被动的辅助设备,简称主备。在该模式下,系统由主设备向客户提供服务,但同时提供一台或多台冗余的备用设备,其数据与主设备同步,当主设备故障时,备用设备被及时启动来替代主设备提供服务。这种模式存在一定的服务恢复时间,RPO也可能不能为0,可能会丢失一些数据。

Active/Active(双活模式)高可用性:当集群中只有2个节点而此时这两个节点都是活动的主设备称双活,而有多个节点时称为多主。在该模式下,集群中的所有设备都同时向客户提供服务,每个节点上都运行同样的实例,一个节点上的更新会被同步到其它所有节点上。当其中一个节点失效时,其它的活动节点可以继续为客户提供服务。这种模式可以使RTO=0和RPO=0同时实现,做到故障即时恢复和零数据丢失,可提供最高的可用性。

另一方面,高可用服务也有两种:有状态服务,后续对服务的请求依赖于前面已经提供的服务请求;无状态服务,各服务的请求之间没有依赖关系,是完全独立的。

3 OpenStack云环境的高可用性

一个完整的IAAS云平台主要是由3部分组成:计算服务,网络服务,存储服务。在OpenStack中分别由Nova、Neutron、Cinder等相关服务来具体实现,图1是一个OpenStack云架构图。

图1 OpenStack云架构图

OpenStack体系结构的高可用性一般都是从两个维度去划分:在功能服务维度可划分为基础服务(mysql等)高可用性、计算(nova)高可用性、网络(neutron)高可用性、存储(cinder)高可用性;从物理结构上来划分可分为:控制节点高可用性、网络节点高可用性、计算节点高可用性、基础设施(电力、防火设施)高可用性。无论从什么维度去划分,要实现整个系统的高可用性,都需要先保证在每个层面上的高可用性,然后确保在各个层面之间有效地衔接,从而实现整个系统的高可用性。

OpenStack云平台的高可用性实现,一个最基本的方法就是保证各工作节点是冗余的。然后根据不同工作节点上部署的服务特点和相关要求,每个节点可以使用不同的高可用模式进行工作。

(1)控制节点的高可用性

MySQL是OpenStack中controller节点中的一个基础服务,它作为一个开源的数据库管理系统,其各项技术都是非常成熟了,功能也很强大,并且已经形成了一个完整的软件应用生态系统。但它作为一个分布式数据库系统,还是不够成熟的,还需要不断地完善。MySQL在保证系统的高可用性上采用传统的Active/Passive(主备模式)还占相当大的份额,目前在部署应用时用得较多的方式是基于binlog复制的Master-Slave模式进行数据复制,使用频率较高的有MHA(Master High Availability)方案,它可以实现在丢失少量数据的基础上完成一定的分布式容错和计算。淘宝网在数据库方面实现高可用性就是采用它的改进版本TMHA。图2是MHA的架构图。

图2 主备模式高可用性架构图

要完全实现分布式容错和计算,就必须采用Active/Active(双活模式)。MySQL/Gelera方案采用的就是双活模式,MySQL/Galera是一种多主同步集群,但只限于使用MySQL的InnoDB引擎,集群中任意节点的数据库都能进行数据的读和写,数据库之间的复制是基于row的并行复制,比传统的MySQL Replication更加快速、高效[5]。它至少要求3台服务器,图3是由3台服务器搭建成一个Pacemaker Active/Active集群。

图3 双活多主模式控制集群结构图

在上图的集群中每个节点上都运行着API服务、内部组件、RabbitMQ集群和镜像消息队列、Gelera MariaDB多主复制集群、HAProxy、Memcached等应用组件。Pacemaker是一个集群资源管理器,带有一个强大的依赖模式,主要负责表达群集资源之间的关系;API服务包含keystone、glance-registry、neutron-server、nova-novncproxy等服务以及相关API接口服务,由Pacemaker提供虚拟的IP地址(VIP)并实现相互之间的依赖关系;由HAProxy提供负载均衡,并完成到相应节点对应API服务的映射。HAProxy组件实现API、MariaDB和RabbitMQ多活服务的负载均衡,从而保证系统的高可用性。

(2)网络服务的高可用性

Openstack结构中网络节点中主要的组件及服务有:L3Agent、DHCP Agent、DHCP server和Virtual Router服务。DHCP实现高可用性是比较简单的,其服务本身就支持多DHCP服务器,因此可以在多个节点上运行DHCP Agent从而实现DHCP server并行,然后将客户的私有网络的DHCP放在上面就行了;而Router服务,要实现路由和外网的接入,这里的情况就要复杂得多,因此引入了VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议),用一组实现了VRRP的路由器向客户的私有网络提供具有高可用性的虚拟路由器。

(3)存储控制节点的高可用性

在Openstack结构中存储可以有多种形式,如对象存储、块存储。cinder是Openstack中块存储管理模块,它为运行实例提供稳定的数据块存储服务。在使用共享存储时,cinder服务只能实现Active/Passive(主备模式)高可用性。如要实现更高的可用性Active/Active(双活)模式则只能借助第三方软件,目前主要是利用Pacemaker来实现。

4 总结

高可用性对于一个云平台来说是至关重要的,Openstack云计算平台在高可用性设计上可以整合出多种行之有效的组合,客户在搭建自己的Openstack云计算平台时可以根据自身的物理结构和技术特长来选择。目前,相当多的社区和IT企业还在不断努力进行改进和优化,新技术新方法也会不断出现。随着新版本的升级,Openstack的高可用性也会得到进一步加强和完善。

[1]Documentation of Openstack[EB/OL].http://docs.openstack.org,2013-7-20.

[2]唐攀,朱志祥.基于OpenStack Sahara集群的高可用性的设计与实[J].西安文理学院学报:自然科学版1008-5564(2015)02-0055-06:55-60.

[3]张德育,张晶,刘治国.高可用性集群互连结构研究[J].火力与指挥控制,2008,33(8):115-116,120.

[4]刘彦锋.基于Linux下的高可用集群系统[D].吉林:吉林大学,2004.

[5]杨军,彭兴,闫格.基于OpenStack私有云平台构建及高可用实现[J].绥化学院学报,2015(12):145-148。

Research on HighAvailability of OpenStack Cloud Computing Platform

Ou Weihong Jian Biyuan
(Guangzhou Vocational College of Science and Technology,Guangzhou 510550,Guangdong)

With the continuous development of cloud computing technology,a variety of cloud computing platforms are gradually mature.The open source cloud platform OpenStack has also gained the major IT giant's attention and support,which develops rapidly.This paper discusses the system architecture of the OpenStack cloud platform and the system's high availability,and focuses on the two modes of achieving high availability of the system:Active/Passive,Active/Active.And the implementation of the high availability of OpenStack is analyzed,providing a basis for improving the availability in the construction of the OpenStack cloud platform.

high availability(HA);OpenStack;main standby mode;double living mode

TP311.52

A

1008-6609(2016)12-0016-03

欧卫红(19 76-),男,湖南衡阳人,硕士,高级工程师,研究方向为计算机网络技术、云计算技术和网络编程。

广东省高等教育学会高职高专云计算与大数据专业委员会科研课题,项目编号:No.G D Y JSK T 16-16。

猜你喜欢

宕机可用性集群
关于无锡地铁梅园站计轴宕机的研究
基于辐射传输模型的GOCI晨昏时段数据的可用性分析
岛内人口普查刚启动就遇“宕机”
海上小型无人机集群的反制装备需求与应对之策研究
从可用性角度分析精密空调的配电形式
一种无人机集群发射回收装置的控制系统设计
基于集中采购的分布式系统的设计与实现
Python与Spark集群在收费数据分析中的应用
一起民航气象数据库系统进程频繁宕机故障分析及处理方法
医疗器械的可用性工程浅析