CloudStack云平台的制作方法

文档序号:17355476发布日期:2019-04-09 21:37阅读:721来源:国知局
CloudStack云平台的制作方法

本发明涉及计算机领域,特别涉及一种cloudstack云平台。



背景技术:

图1为一种cloudstack云平台,该cloudstack云平台由一个服务器组成,用户通过该服务器的ip访问cloudstack云平台。如果服务器发生宕机或断网,就会导致该cloudstack云平台不可用,使得该cloudstack云平台的业务服务中断,直至服务器恢复正常。由此可知,图1的cloudstack云平台不具有ha(highavailability)功能。

图2为另一种cloudstack云平台,该cloudstack云平台由两个服务器组成,一个为主服务器,另一个为备用服务器,两台服务器均安装完整的cloudstack软件。但经测试,图2的集群方案有些缺陷,比如云平台ip不能实现故障切换,两个服务器存储的资源不能共享。其原因在于,cloudstack本身就没解决这些问题,作为后台管理平台,其本身并发量并不大,因而也未开发集群功能。因此图2的cloudstack云平台也不具有ha(highavailability)。



技术实现要素:

有鉴于此,本发明提供一种cloudstack云平台,以实现cloudstack云平台的ha功能。

本发明提供一种cloudstack云平台,cloudstack云平台包括主服务器和备用服务器,主服务器和备用服务器上存储的资源互为备份;

在主服务器和备用服务器之间设置keepalived,keepalived生成cloudstack云平台的虚拟ip,当主服务器无故障时,keepalived将虚拟ip连接至主服务器,当主服务器故障后,keepalived启动备用服务器,并将虚拟ip和故障时主服务器的业务切换至备用服务器;

主服务器和备用服务器还包括守护监控进程,守护监控进程用于检测自身服务器是否发生故障,并且在检测到故障后,停止自身服务器上的业务。

本发明的cloudstack云平台可以实现主服务器故障时,备用服务器自动接管,无需人为干预。主服务器和备用服务器自动备份,保障数据安全。故障期间新增数据,待故障恢复后会自动同步。cloudstack+ha方案能解决现有服务器故障造成业务中断的风险。此外,本发明cloudstack+ha方案较普通的ha解决方案做了优化,通过守护监控进程检测自身服务器故障,发现故障即停掉自身业务,避免脑裂引起的系统混乱和数据破坏。

附图说明

图1为现有技术的第一cloudstack云平台;

图2为现有技术的第二cloudstack云平台

图3为本发明的cloudstack云平台第一结构图;

图4为本发明的cloudstack云平台第二结构图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

如图3所示,本发明提供一种cloudstack云平台,包括主服务器和备用服务器,主服务器和备用服务器上存储的资源互为备份;

在主服务器和备用服务器之间设置keepalived,keepalived生成cloudstack云平台的虚拟ip(172.16.60.10),当主服务器无故障时,keepalived将虚拟ip连接至主服务器,当主服务器故障后,keepalived启动备用服务器,并将虚拟ip和故障时主服务器的业务切换至备用服务器;

主服务器和备用服务器还包括守护监控进程(主服务器对应守护监控进程1,备用服务器对应守护监控进程2),守护监控进程用于检测自身服务器是否发生故障,并且在检测到故障后,停止自身服务器上的业务。

故障至少包括宕机或断网。

图3中主服务器和备用服务器上均安装完整的cloudstack软件。虚拟ip(172.16.60.10)对用户可见,主服务器a的ip:172.16.60.15和备用服务器b的ip:172.16.60.16对用户不可见。

keepalived通过对主服务器和备用服务器b进行心跳检测,确认服务器是否发生故障。实现方法包括:在网上下载keepalived安装包,然后在2个服务器上安装keepalived,最后修改keepalived配置文件。

例如打开配置文件(路径/etc/keepalived/keepalived.conf),修改如下参数:priority(权重,决定那一台服务器是主服务器),virtual_ipaddress(虚拟ip,指定本系统用的虚拟ip)。

本发明的cloudstack+ha方案,通过keepalived实现ha功能,通过守护监控进程避免脑裂。

脑裂(split-brain):指在一个高可用(ha)系统中,当联系着的两个节点断开联系时,本来为一个整体的系统,分裂为两个独立节点,这时两个节点开始争抢共享资源,结果会导致系统混乱,数据损坏。对于无状态服务的ha,不会产生脑裂问题;但对有状态服务的ha,必须要严格防止脑裂。

如图4所示,主服务器上还可以设置第一nginx、第一tomac;备用服务器上还可以设置第二nginx、第二tomac;相应地第一nginx为主模式,第二nginx为备用模式,第一tomac为主模式,第二tomac为备用模式;

当主服务器无故障时,第一nginx用于连接虚拟ip,并将用户的访问请求转发给第一tomac;当主服务器故障时,第二nginx用于连接虚拟ip,并将用户的访问请求转发给第二tomac。

或者主服务器上还设置第一mysql;备用服务器上还设置第二mysql;第一mysql和第二mysql为主主互备模式,用于存储cloudstac云平台的资源。

nginx是第三方开源软件,主要作用是把页面的请求转发给服务器的tomcat。例如,当用户访问的页面是172.16.60.10/client,nginx的作用是把请求转发到172.16.60.10:8080/client,8080就是tomcat的访问端口。其实现方法包括:在网上下载nginx安装包,然后安装在服务器中,最后修改配置文件。例如打开配置文件(路径/etc/nginx/nginx.conf),修改参数如下:location^~/client{proxy_passhttp://127.0.0.1:8080/client;}。

mysql数据库的主主互备模式为mysql的特性,即任一主数据库的改动均可同步到备用数据库,备用数据库的改动也可以同步到主数据库。本发明只需要设置同步的数据库服务器和同步的位置即可。设置接口包括:configmysql(配置数据库主主互备),设置脚本包括:“changemastertomaster_host='$backupserver',master_user='repl_user',master_password='$mysql_passwd',master_port=3306,master_log_file='$binlogname',master_log_pos=$position”。

cloudstack为开源的云平台,主要用java语言开发,运行在tomcatweb应用服务器和mysql数据库服务器上,此部分无需修改。

守护监控进程为本发明开发的程序,用于监控服务器和网络,及检测到异常时停止自身主服务器业务。基于图4的结构,守护监控进程可以对nginx、mysql、tomcat应用程序进行监控。当服务器发生宕机或者断网,或者nginx、mysql、tomcat发生异常时,守护监控进程立即停止自身主服务器业务,然后触发keepalived将虚拟ip切换到另一台服务器,并启动该服务器的cloudstack等业务服务。守护监控进程还检测网络,发现自己断网就自毁(停掉自身业务),以避免系统混乱,数据破坏。网络检测通过以下两个途径实现:(a)ping网关;(b)检测网口状态。

守护监控进程具体监控的接口包括:checknetwork(检测网络:(a).ping网关;(b).检测网口状态),checkkeepalived(检测keepalived),checknginx(检测nginx),checktomcat(检测tomcat),checkmysql(检测mysql),stopnginx(停止nginx),stoptomcat(停止tomcat),stopmysql(停止mysql)。

当主服务器或备用服务器的任何一个节点发生异常并不可恢复的话,cloudstack云平台通过添加新的ha节点(已安装nginx、tomcat、mysql、keepalived和cloudstack)补入缺失的服务器。例如,可在ha节点增设页面轻松添加新的ha节点,基于数据库主主互备,新的ha节点通过数据备份获得云平台的数据。

ha节点增设页面,可以用java语言开发,通过调用脚本添加新的ha节点。脚本的主要接口有:configkeepalived(配置keepalived),confignginx(配置nginx),configmysql(配置数据库主主互备)。

上述本发明cloudstack+ha方案较普通的ha解决方案做了优化,当云平台任何一个服务器节点发生故障,可以添加新的节点为新的ha节点,避免两个ha节点都出现故障的问题。

另外,本方案通过页面配置ha,简化配置流程和避免手动配置人为造成的错误。如果需要添加新的ha节点,亦可在页面轻松添加新的ha节点。

综上,本发明的cloudstack平台具有以下技术优点:

(1)keepalived+守护监控进程让业务永不中断,并避免脑裂问题。

keepalived,对主服务器a和备用服务器b进行心跳检测,但当服务器停止工作或出现突然断电的情况后,主服务器无法通知备用服务器需要做什么操作,keepalived自动将虚拟ip切换至备用服务器,并启动备用服务器的cloudstack等业务服务。

守护监控进程对nginx、mysql、tomcat应用程序进行监控,发生异常时,并自动停止自身服务器的cloudstack等业务服务。普通ha方案具有脑裂问题,本申请通过守护监控进程对服务器和网络状态进行检测,发现自己故障或网络异常就自毁(停掉自身业务),避免系统混乱,数据破坏。

(2)数据库主主互备,能确保备用服务器的数据同步到主服务器,主服务器的数据也能同步到备用服务器,确保ip切换时,任一服务器都能继续提供业务服务。

(3)可轻松添加新的ha节点。

以上所述仅为本发明的较佳实施例而已,并不用以限定本发明的包含范围,凡在本发明技术方案的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1