代写教育教学论文常见问题 | 代写教育教学论文在线留言教师论文网是权威的教育教学论文发表,教育教学论文代写平台,欢迎咨询教育教学论文代写和毕业论文代写事宜!
您的位置: 教师论文网 -> 通信学论文 -> 文章内容

教师论文网导航

赞助商链接

中小企业OpenStack云平台高可用技术研究与实现

作者:jiaoshilw.com 更新时间:2018/6/29 10:01:59

 随着网络技术的快速发展,中小企业私有化云平台建设日益迫切,用户对云平台在稳定方面提出了更高的要求。保证云服务的高可用性,就是保证用户业务的连续性。企业自身的私有云出现问题,则会导致公司运营瘫痪,损失将会更大。中小企业的私有云更需要稳定可靠,对私有云高可用研究更加迫切。
  近年来,针对不同OpenStack云平台提出了多种系统高可用解决方案。有控制节点采用Keepalived+haproxy实现平台的双活模式高可用[1],也有采用pacemaker+corosysnc实现主从模式高可用[2]。这些方案虽然实现了云平台控制节点的高可用,但是在物理网络方面和存储方面的高可用有很多不足。对于中小企业来说,后期运维成本过高。
  为了实现OpenStack云平台的高可用性,从硬件、软件和策略等多方面进行分析和设计,提出了一套基于Keepalived+多网卡绑的解决方案提高OpenStack云平台的高可用性。
  1 云平台高可用性基本原理
  云计算分为SaaS,PaaS,IaaS三大服务模式,即软件即服务、平台即服务和基础即服务。OpenStack是由RackSpace和NASA共同开发的云计算平台,帮助服务商和企业内部实现类似亚马逊EC2和S3的云基础架构服務,属于IAAS服务模式。
  高可用性(High Availability,HA)用来描述一个系统经过专门的设计,以减少停工时间,而保持其服务的高度可用性[3]。
  HA分为两类:(1) Active/Passive HA,称为主备集群模式,备用节点处于监听和备份模式,故障发生时及时切换,替代主设备提供服务。(2) Active/Active HA,称为双主集群模式,集群中节点互备互援,每个节点都提供服务[4]。
  2 高可用云平台设计与实现
  控制节点高可用集群提供控制节点中各个服务的高可用性,保障对整个集群管理能力的正常运行。
  2.1 控制节点高可用集群
  控制节点中所运行的OpenStack服务都是无状态的,各个组件之间只依赖消息队列进行通信[3]。OpenStack的keystone,glance,nova,neutron和horizon通过keealived提供虚拟IP (VIP)来实现高可用,并对外提供服务。Mariadb和Rabbitmq直接在两台控制节点上搭建双主集群。故对控制节点高可用集群采用双机热备模式。
  2.1.1 Keepalived
  Keepalived是一个实现多机热备的软件。通过利用Keepalived所提供的的浮动IP功能,就可以简单实现一个多机热备高可用功能。主节点和备节点对外表现为一个虚拟IP,主节点会发送特定的消息给备节点,当备节点收不到这个消息时(此时主节点不可用),备节点会接管虚拟IP继续提供服务[5]。
  首先,在主节点和备节点安装Keepalived软件及相关依赖包。在两个节点中的Keepalived.conf文件中添加和修改选项,确定VIP。格式如下:
  virtual_ipaddress {VIP的具体IP地址)
  在主节点中确定主节点和优先级,在备用节点中确定备用节点和优先级,格式如下:
  vrrp_instance VI_1{
  state MASTER(备用节点改为:BACKUP)
  priority 100(备用节点改为:90)
  )
  完成配置之后,在数据库和消息队列集群搭建完成之后,在配置文件加入关于数据库和消息队列的配置选项。
  2.1.2 数据库和消息队列的双主集群
  Mariadb双活集群中的每一台节点既是Master,又是另一节点的Slave。这样,任何一方所做的变更,都会通过复制应用到另外一方的数据库中。在两个节点的配置文件中修改或者增加这些配置:server-id;启用中继日志和二进制日志;修改起始值和步长,以避免在Mariadb自动为INSERT语句选择互相冲突的值;在Mariadb的命令行中执行如下命令:创建有复制权限的用户。当上述配置完成后,相互指定对方为自己的主服务器,并启动服务器复制进程。
  Rabbitmq集群模式大概分为3种:单一模式、普通模式和镜像模式。本设计中的集群模式采用镜像模式,可以解决普通模式出现的问题(当主节点出现故障,功能就无法实现)。同时与普通模式的不同之处在于消息实体会主动在镜像节点间同步,而不是用户取数据时临时拉取。
  集群中分为两类节点:内存节点和磁盘节点。内存节点,一般只保存状态到内存中,这样执行效率高,但是不易保存。磁盘节点,保存状态到内存和磁盘中,这样更可靠。本设计采用节点为磁盘节点的镜像模式集群。
  2.2 物理网络的高可用
  平台系统中的物理网络是由网卡、网线和交换机等构成的。网卡作为节点之间数据交换的唯一出口,节点上的网卡损坏、网卡失效、网络电缆中断,都会导致节点之间的连接失败,造成云平台系统瘫痪。多网卡链路绑定策略(Mulitiple Network Channel Bonding,MNCB)能够提高物理网络的高可用性。通过网卡绑定,将多块网卡虚拟成一块逻辑网卡进行工作,自动分担负载。将各网卡合成在一起为各个网段共同提供高带宽的服务。当其中一块物理网卡出现故障时,其他物理网卡可以快速承担故障网卡的工作,保障整个工作流程的延续,既可以提升主机的网络吞吐量,又提供了网络的高可用性[6]。
  2.3 测试
  本文采用2台控制节点,2台计算节点。各节点配置双网卡,管理网络为192.168.0.0/24。所有节点安装的操作系统为Centos7.1-Server,OpenStack版本为Kilo。
  对该云平台的高可用性性能进行测试,具体测试步骤及结果如下。
  (1)关闭任意一台控制节点,测试确认控制节点相关服务组件、mariadb和rabbitmq均能提供正常服务,然后测试计算节点和存储节点。
  (2)断开云平台任一节点的任意一条网线,此时OpenStack云平台能正常工作。
  通过以上2个实验得出,此高可用性方案可以对单点故障进行检测和处理,实现了OpenStack云平台的高可用服务。
  3 结语
  采用了Ke ep alived模式设计的控制节点集群为OpenStack云平台实现服务的高可用提供便利。随着公司的业务发展,OpenStack云平台规模也会扩大,其中的虚拟机量和数据量都会增加。如果加入Ceph集群的高扩展性并在后期增加osd和节点,可以更好地提高OpenStack云平台的高可用性。
  [参考文献]
  [1]李兴,罗华永,陈星.基于OpenStack架构上的高可用实现[J]电脑编程技巧与维护,2016 (21):38-40,56.
  [2]罗兵,谯英,符晓.OpenStack云平台的高可用设计与实现[J].计算机科学,2017 (6):608-612.
  [3]邹仁明,彭隽,李军.OpenStack开源云平台高可用架构的设计与实现[J].计算机科学,2014 (10):396-400.
  [4]张龙兴,朱志祥,梁小江.一种基于云计算的高可用性集群设计与实现[J]西安文理学院学报(自然科学版),2014 (3):9-13.
  [5]钱景辉,廖锂.基于Keepalived的动态浮动IP集群实现[J].化工自动化及仪表,2012 (7):926-928.