一种故障计算机自动切换方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别涉及一种故障计算机自动切换方法及装置。
【背景技术】
[0002]云计算是一种革新的IT运用模式,它透过硬件的虚拟化将大量的服务器硬件抽象成为一个巨大的资源池,可以动态的为用户提供基础设施、平台和应用三种形式的服务。
[0003]私有云是建立在企业自有设施的基础之上的,是为一个企业客户单独使用而构建的,因而能够提供对数据、安全性和服务质量的最有效控制。企业拥有基础设施,并可以控制在此基础设施上部署应用程序的方式。更重要的是,很多企业在建立私有云之前,已经建立了较为完善的硬件设施,虽然硬件设施性能、特性各异,但只要进行必要的升级和改造,这些硬件资源是可以在私有云的建设中被充分利用起来的。
[0004]在私有云环境中,计算机设备未必都是同批次采购,品牌、型号等也各不相同。这势必带来一些差异,比如:部分计算机拥有很好的10处理能力,但计算能力未必很高;部分计算机拥有高性能网卡,但硬盘容量不容乐观;部分计算机拥有GPU(Graphic ProcessingUnit,图形处理器)加速能力,但不适合高并发网络连接等等。
[0005]当私有云中某台计算机宕机(即死机)之后,需要将宕机计算机上运行的应用程序迀移到其他正常运行的计算机上,即进行故障设备的切换。目前采用的故障设备切换方案为:
[0006](1)在私有云环境中所有正常运行的计算机中随机选择一台空闲的计算机,将宕机计算机上的应用程序迀移到该随机选择的空闲计算机上。
[0007](2)人工在私有云环境中选择符合需要迀移的应用程序对计算机特性要求的计算机,比如:推流服务器应用需要运行在拥有万兆网卡的计算机上,则通过人工在私有云环境中选择拥有万兆网卡且空闲的计算机,并将推流服务器应用迀移到该计算机上。
[0008]但是,上述两种设备切换方案分别存在以下缺陷:方案(1)由于随机选择计算机,无法保证能够选择出符合需要迀移的应用程序对计算机特性需求的计算机,例如推流服务器应用需要运行在拥有万兆网卡的计算机上,若随机选择的计算机只拥有普通的网卡,则势必会影响应用服务质量。方案(2)由于需要人工选择计算机,不仅在增加运维难度的同时浪费人力,也势必增大宕机计算机上应用服务中断的时间。
【发明内容】
[0009]本发明实施例提供了一种故障计算机自动切换方法,能够选择出符合需求的计算机;无需人工选择计算机,减少了运维难度,节省了人力,减少了宕机计算机上应用服务中断的时间。
[0010]该故障计算机自动切换方法包括:
[0011]根据计算机上运行的应用程序所需的计算机性能和/或计算机特性,对私有云环境中的所有计算机进行分组,得到多个主机组;
[0012]实时监测私有云环境中所有计算机的运行状态;
[0013]当监测到宕机计算机时,在宕机计算机所属的主机组中查找空闲计算机,将宕机计算机上运行的应用程序迀移到空闲计算机上运行。
[0014]在一个实施例中,该故障计算机自动切换方法还包括:
[0015]当监测到宕机计算机时,发送宕机告警。
[0016]在一个实施例中,所述在宕机计算机所属的主机组中查找空闲计算机,将宕机计算机上运行的应用程序迀移到空闲计算机上运行具体包括:
[0017]若宕机计算机属于单一主机组,则:
[0018]当在宕机计算机所属主机组中查找到一台空闲计算机时,将宕机计算机上运行的应用程序迀移到该台空闲计算机上运行;
[0019]当在宕机计算机所属主机组中查找到多台空闲计算机时,按照空闲计算机所属的主机组数进行排序,将宕机计算机上运行的应用程序迀移到所属主机组数最少的空闲计算机上运行。
[0020]在一个实施例中,所述在宕机计算机所属的主机组中查找空闲计算机,将宕机计算机上运行的应用程序迀移到空闲计算机上运行具体包括:
[0021 ]若宕机计算机属于多个主机组,则:
[0022]在宕机计算机所属的多个主机组共有的计算机中查找空闲计算机,若找到一台空闲的计算机,将宕机计算机上运行的应用程序迀移到该台空闲计算机上运行;
[0023]若找到多台空闲计算机,按照空闲计算机所属的主机组数进行排序,将宕机计算机上运行的应用程序迀移到所属主机组数最少的空闲计算机上运行。
[0024]在一个实施例中,该故障计算机自动切换方法还包括:
[0025]实时记录私有云环境中各个计算机上运行的全部应用程序;
[0026]当监测到宕机计算机时,在实时记录中查找宕机计算机在宕机时刻运行的应用程序;在宕机计算机所属的主机组中查找空闲计算机,将宕机计算机在宕机时刻运行的应用程序迀移到空闲计算机上运行。
[0027]本发明实施例还提供了一种故障计算机自动切换装置,能够选择出符合需求的计算机;无需人工选择计算机,减少了运维难度,节省了人力,减少了宕机计算机上应用程序服务中断的时间。
[0028]该故障计算机自动切换装置包括:
[0029]计算机分组模块,用于根据计算机上运行的应用程序所需的计算机性能和/或计算机特性,对私有云环境中的所有计算机进行分组,得到多个个主机组;
[0030]计算机运行状态监测模块,用于实时监测私有云环境中所有计算机的运行状态;
[0031]计算机查找替换模块,用于当监测到宕机计算机时,在宕机计算机所属的主机组中查找空闲计算机,将宕机计算机上运行的应用程序迀移到空闲计算机上运行。
[0032]在一个实施例中,该故障计算机自动切换装置还包括:
[0033]告警模块,用于当监测到宕机计算机时,发送宕机告警。
[0034]在一个实施例中,所述计算机查找替换模块具体用于:
[0035]若宕机计算机属于单一主机组,则:
[0036]当在宕机计算机所属主机组中查找到一台空闲计算机时,将宕机计算机上运行的应用程序迀移到该台空闲计算机上运行;
[0037]当在宕机计算机所属主机组中查找到多台空闲计算机时,按照空闲计算机所属的主机组数进行排序,将宕机计算机上运行的应用程序迀移到所属主机组数最少的空闲计算机上运行。
[0038]在一个实施例中,所述计算机查找替换模块具体用于:
[0039]若宕机计算机属于多个主机组,则:
[0040]在宕机计算机所属的多个主机组共有的计算机中查找空闲计算机,若找到一台空闲的计算机,将宕机计算机上运行的应用程序迀移到该台空闲计算机上运行;
[0041]若找到多台空闲计算机,按照空闲计算机所属的主机组数进行排序,将宕机计算机上运行的应用程序迀移到所属主机组数最少的空闲计算机上运行。
[0042]在一个实施例中,该故障计算机自动切换装置还包括:
[0043]记录模块,用于实时记录私有云环境中各个计算机上运行的全部应用程序;
[0044]所述计算机查找替换模块还用于当监测到宕机计算机时,在实时记录中查找宕机计算机在宕机时刻运行的应用程序;在宕机计算机所属的主机组中查找空闲计算机,将宕机计算机在宕机时刻运行的应用程序迀移到空闲计算机上运行。
[0045]在本发明实施例中,根据计算机上运行的应用程序所需的计算机性能,对私有云环境中的所有计算机进行分组,得到多个个主机组;在宕机计算机所属的主机组中查找空闲计算机,将宕机计算机上运行的应用程序迀移到空闲计算机上运行,这样就能够选择出符合需求的计算机;上述对空闲计算机的选择无需人工进行操作,减少了运维难度,节省了人力;上述选择空闲计算机用时少,减少了宕机计算机上应用服务中断的时间。
【附图说明】
[0046]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
[0047]图1是本发明实施例提供的一种故障计算机自动切换方法流程图;
[0048]图2是本发明实施例提供的一种查找空闲计算机方法示意图;
[0049]图3是本发明实施例提供的一种查找空闲计算机方法示意图;
[0050]图4是本发明实施例提供的一种查找空闲计算机方法示意图;
[0051]图5是本发明实施例提供的一种查找空闲计算机方法示意图;
[0052]图6是本发
明实施例提供的一种故障计算机自动切换装置结构示意图。
【具体实施方式】
[0053]为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
[0054]现有的对宕机计算机的切换方法包括:1)在私有云环境中所有正常运行的计算机中随机选择一台空闲的计算机,该方法由于随机选择计算机,无法保证能够选择出符合需要迀移的应用程序对计算机特性需求的计算机;2)人工在私有云环境中选择符合需要迀移的应用程序对计算机特性要求的计算机,该方法由于需要人工选择计算机,不仅在增加运维难度的同时浪费人力,也势必增大宕机计算机上应用服务中断的时间。如果是有针对性的选择替换计算机,且不用人工来选择,这样就能够解决上述现有技术中存在的问题。基于此,本发明提出一种故障计算机自动切换方法及装置。
[0055]图1是本发明实施例提供的一种故障计算机自动切换方法流程图,如图1所示,该故障计算机自动切换方法具体包括:
[0056]步骤101:根据计算机上运行的应用程序所需的计算机性能和/或计算机特性,对私有云环境中的所有计算机进行分组,得到多个主机组;
[0057]步骤102:实时监测私有云环境中所有计算机的运行状态;
[0058]步骤103:当监测到宕机计算机时,在宕机计算机所属的主机组中查找空闲计算机,将宕机计算机上运行的应用程序迀移到空闲计算机上运行。
[0059]具体实施时,计算机上运行的应用程序都需要一定的计算机性能,比如某种应用程序需要计算机拥有很好的10处理能力;某种应用程序需要计算机拥有高性能网卡;某种应用程序需要计算机拥有GPU(Graphic Processing Unit,图形处理器)加速能力,等等。某些计算机具有一定的特性,比如:具有被外网访问的能力等。因此,可以按照计算机特性和/或计算机上运行的应用程序所需的计算机性能,来对私有云环境中的所有计算机进行分组,获得多个主机组,其中一个计算机相当于一个主机。例如,可以将配置有万兆网卡的计算机分为一组,为万兆网卡主机组;将配置有SSD (固态硬盘)的计算机分为一组,为SSD主机组;将可对公网用户提供服务的计算机分为一组,为可对公网用户提供服务主机组;将配置有GPU的计算机分为一组,为GPU主机组;将配置有RAID(Redundant Arrays ofIndependent Disks,独立磁盘冗余阵列)的计算机分为一组,为RAID主机组等等。
[0060]在实际对计算机进行配置时,每台计算机可能不只包括一种计算机性能和/或计算机特性,因此,一台计算机可能属于多个主机组。比如,某台计算机配置有万兆网卡,还可对公网用户提供服务,则该台计算机既属于万兆网卡主机组,又属于可对公网用户提供服务主机组。某台计算机配置有SSD,配置有GPU,还配置有RAID,则该台计算机同时属于SSD主机组、GPU主机组和RAID主机组。上述说明主机组之间允许重合。
[0061]具体实施时,私有云管理平台会实时记录私有云环境中所有计算机上运行的应用程序,同时实时监控私有云环境中所有计算机的运行状态。当私有云管理平台监测到某计算机宕机时,就发送计算机宕机告警,同时在实时记录中查找宕机时刻在宕机计算机上运行的应用程序,在宕机计算机所属的主机组中查找空闲计算机,将宕机计算机上运行的应用程序迀移到空闲计算机上继续运行。
[0062]具体的,在宕机计算机所属的主机组中查找空闲计算机包括以下两种:
[0063]第一种:当宕机计算机只属于单一主机组时:若在宕机计算机所属的主机组中未查找到空闲计算机,则发送未找到空闲计算机告警,通知运维人员处理;若查找到一台空闲计算机,则选择该计算机来替换宕机计算机;若查找到多台计算机,按照计算机所属的主机组数进行排序,优先选择主机组数最少的计算机。
[0064]例如,Server6属于万兆网卡主机组,属于单一主机组。某应用程序运行在Server6上,该应用程序运行时需要万兆网卡。当Server6宕机时,查找与Server6处于相同组内的(即万兆网卡主机组)、空闲的计算机,得到结果为Serverf,则将Servere上运行的应用程序,重新在Server2之上运行。
[0065]如图2所示,Server3属于GPU主机组,属于单一主机组。某应用程序运行在Server3上,该应用程序运行时需要GPU加速处理。当Server3宕机时,查找与Server3处于相同组内的(即GPU加速主机组)、空闲的计算机,得到结果为Server2和Server5,由于Server5对应一个主机组中,而Server2对应两个主机组中,Server2所属的主机组数多于Server5所属的主机组数,则优先选择Server5。将Server3上运行的应用程序,重新在Server5之上运行。
[0066]如图3所示,Server3属于GPU主机组,属于单一主机组。某应用程序运行在Server3上,该应用程序需要GPU加速处理。当Server3宕机时,查找与Server3处于相同组内的(即GPU主机组)、空闲的计算机,得到结果为Server 1、Server4和Server5,由于Server4和Server5分别对应一个主机组中,而Server 1对应两个主机组中,则Server 1所属的主机组数多于Server4和Server5所属的主机组数,优先选择Server4和Server5。最终,在Server4和Server5中随机选取一台计算机,重新运行Server3上的应用程序。
[0067]第二种:当宕机计算机属于多个主机组时,此时表示宕机计算机处于多个主机组的重合部分。若在这些主机组共有的计算机中(就是说重合部分),未查找到空闲计算机,则发送未找到空闲计算机告警,通知运维人员处理;若查找到一台空闲计算机,则选择该计算机来替换宕机计算机;若查找到多台计算机,按照计算机所属的主机组数进行排序,优先选择主机组数最少的计算机。
[0068]例如,如图4所不,Server 1属于万兆网卡主机组和GPU主机组,Server 1处于万兆网卡主机组和GPU主机组的重合部分。某应用程序运行在Serverl上,该应用程序运行时需要GPU加速及万兆网卡。当Serverl宕机时,查找与Serverl处于相同组内的(即GPU加速主机组、万兆网卡主机组)、空闲的计算机,得到结果为Serverf,则将Serverl上运行的应用程序,重新在Server2之上运行。
[0069]如图5所不,Serverl属于万兆网卡主机组和GPU主机组,Serverl处于万兆网卡主机组和GPU主机组的重合部分。某应用程序运行在Serverl上,该应用程序运行时需要GPU加速及万兆网卡。当Serverl宕机时,查找与Serverl处于相同组内的(即GPU加速主机组、万兆网卡主机组)、空闲的计算机,得到结果为Server2、Server9和ServerlO,由于Server2对应两个主机组中,而361^6的和361^61'10分别对应三个主机组中,361^6的和361^61'10所属的主机组数多于Server2所属的主机组数,则优先选择Server2。将Server3上的应用程序,重新在Server2之上运行。
[0070]具体实施时,在替换宕机计算机时,如果空闲计算机上存在宕机计算机在宕机时刻运行的所有应用程序,则直接启动运行这些应用程序即可。如果空闲计算机上只有一部分应用程序与宕机计算机在宕机时刻运行的应用程序相同,则需要首先连接应用仓库,从应用仓库中下载空闲计算机上缺少的对应宕机计算机在宕机前运行的应用程序,下载完成之后,启动应用程序。
[0071]基于同一发明构思,本发明实施例中还提供了一种故障计算机自动切换装置,如下面的实施例所述。由于故障计算机自动切换装置解决问题的原理与故障计算机自动切换方法相似,因此故障计算机自动切换装置的实施可以参见故障计算机自动切换方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0072]图6是本发明实施例中提出的一种故障计算机自动切换装置结构示意图,如图6所示,该故障计算机自动切换装置包括:
[0073]计算机
分组模块601,用于根据计算机上运行的应用程序所需的计算机性能和/或计算机特性,对私有云环境中的所有计算机进行分组,得到多个主机组;
[0074]计算机运行状态监测模块602,用于实时监测私有云环境中所有计算机的运行状态;
[0075]计算机查找替换模块603,用于当监测到宕机计算机时,在宕机计算机所属的主机组中查找空闲计算机,将宕机计算机上运行的应用程序迀移到空闲计算机上运行。
[0076]在一个实施例中,该故障计算机自动切换装置还包括:
[0077]告警模块,用于当监测到宕机计算机时,发送宕机告警。
[0078]在一个实施例中,所述计算机查找替换模块603具体用于:
[0079]若宕机计算机属于单一主机组,则:
[0080]当在宕机计算机所属主机组中查找到一台空闲计算机时,将宕机计算机上运行的应用程序迀移到该台空闲计算机上运行;
[0081]当在宕机计算机所属主机组中查找到多台空闲计算机时,按照空闲计算机所属的主机组数进行排序,将宕机计算机上运行的应用程序迀移到所属主机组数最少的空闲计算机上运行。
[0082]在一个实施例中,所述计算机查找替换模块603具体用于:
[0083]若宕机计算机属于多个主机组,则:
[0084]在宕机计算机所属的多个主机组共有的计算机中查找空闲计算机,若找到一台空闲的计算机,将宕机计算机上运行的应用程序迀移到该台空闲计算机上运行;
[0085]若找到多台空闲计算机,按照空闲计算机所属的主机组数进行排序,将宕机计算机上运行的应用程序迀移到所属主机组数最少的空闲计算机上运行。
[0086]在一个实施例中,该故障计算机自动切换装置还包括:
[0087]记录模块,用于实时记录私有云环境中各个计算机上运行的全部应用程序;
[0088]所述计算机查找替换模块603还用于当监测到宕机计算机时,在实时记录中查找宕机计算机在宕机时刻运行的应用程序;在宕机计算机所属的主机组中查找空闲计算机,将宕机计算机在宕机时刻运行的应用程序迀移到空闲计算机上运行。
[0089]综上所述,本发明提出的故障计算机自动切换方法及装置,根据计算机上运行的应用程序所需的计算机性能和/或计算机特性,对私有云环境中的所有计算机进行分组,得到多个主机组;在宕机计算机所属的主机组中查找空闲计算机,将宕机计算机上运行的应用程序迀移到空闲计算机上运行,这样就能够选择出符合需求的计算机;上述对空闲计算机的选择无需人工进行操作,减少了运维难度,节省了人力;上述选择空闲计算机用时少,减少了宕机计算机上应用服务中断的时间。
[0090]显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
[0091]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种故障计算机自动切换方法,其特征在于,包括: 根据计算机上运行的应用程序所需的计算机性能和/或计算机特性,对私有云环境中的所有计算机进行分组,得到多个主机组; 实时监测私有云环境中所有计算机的运行状态; 当监测到宕机计算机时,在宕机计算机所属的主机组中查找空闲计算机,将宕机计算机上运行的应用程序迀移到空闲计算机上运行。2.如权利要求1所述的故障计算机自动切换方法,其特征在于,还包括: 当监测到宕机计算机时,发送宕机告警。3.如权利要求1所述的故障计算机自动切换方法,其特征在于,所述在宕机计算机所属的主机组中查找空闲计算机,将宕机计算机上运行的应用程序迀移到空闲计算机上运行具体包括: 若宕机计算机属于单一主机组,则: 当在宕机计算机所属主机组中查找到一台空闲计算机时,将宕机计算机上运行的应用程序迀移到该台空闲计算机上运行; 当在宕机计算机所属主机组中查找到多台空闲计算机时,按照空闲计算机所属的主机组数进行排序,将宕机计算机上运行的应用程序迀移到所属主机组数最少的空闲计算机上运行。4.如权利要求1所述的故障计算机自动切换方法,其特征在于,所述在宕机计算机所属的主机组中查找空闲计算机,将宕机计算机上运行的应用程序迀移到空闲计算机上运行具体包括: 若宕机计算机属于多个主机组,则: 在宕机计算机所属的多个主机组共有的计算机中查找空闲计算机,若找到一台空闲的计算机,将宕机计算机上运行的应用程序迀移到该台空闲计算机上运行; 若找到多台空闲计算机,按照空闲计算机所属的主机组数进行排序,将宕机计算机上运行的应用程序迀移到所属主机组数最少的空闲计算机上运行。5.如权利要求1所述的故障计算机自动切换方法,其特征在于,还包括: 实时记录私有云环境中各个计算机上运行的全部应用程序; 当监测到宕机计算机时,在实时记录中查找宕机计算机在宕机时刻运行的应用程序;在宕机计算机所属的主机组中查找空闲计算机,将宕机计算机在宕机时刻运行的应用程序迀移到空闲计算机上运行。6.一种故障计算机自动切换装置,其特征在于,包括: 计算机分组模块,用于根据计算机上运行的应用程序所需的计算机性能和/或计算机特性,对私有云环境中的所有计算机进行分组,得到多个主机组; 计算机运行状态监测模块,用于实时监测私有云环境中所有计算机的运行状态; 计算机查找替换模块,用于当监测到宕机计算机时,在宕机计算机所属的主机组中查找空闲计算机,将宕机计算机上运行的应用程序迀移到空闲计算机上运行。7.如权利要求6所述的故障计算机自动切换装置,其特征在于,还包括: 告警模块,用于当监测到宕机计算机时,发送宕机告警。8.如权利要求6所述的故障计算机自动切换装置,其特征在于,所述计算机查找替换模块具体用于: 若宕机计算机属于单一主机组,则: 当在宕机计算机所属主机组中查找到一台空闲计算机时,将宕机计算机上运行的应用程序迀移到该台空闲计算机上运行; 当在宕机计算机所属主机组中查找到多台空闲计算机时,按照空闲计算机所属的主机组数进行排序,将宕机计算机上运行的应用程序迀移到所属主机组数最少的空闲计算机上运行。9.如权利要求6所述的故障计算机自动切换装置,其特征在于,所述计算机查找替换模块具体用于: 若宕机计算机属于多个主机组,则: 在宕机计算机所属的多个主机组共有的计算机中查找空闲计算机,若找到一台空闲的计算机,将宕机计算机上运行的应用程序迀移到该台空闲计算机上运行; 若找到多台空闲计算机,按照空闲计算机所属的主机组数进行排序,将宕机计算机上运行的应用程序迀移到所属主机组数最少的空闲计算机上运行。10.如权利要求6所述的故障计算机自动切换装置,其特征在于,还包括: 记录模块,用于实时记录私有云环境中各个计算机上运行的全部应用程序; 所述计算机查找替换模块还用于当监测到宕机计算机时,在实时记录中查找宕机计算机在宕机时刻运行的应用程序;在宕机计算机所属的主机组中查找空闲计算机,将宕机计算机在宕机时刻运行的应用程序迀移到空闲计算机上运行。
【专利摘要】本发明提供一种故障计算机自动切换方法及装置,其中,该方法包括以下步骤:根据计算机上运行的应用程序所需的计算机性能和/或计算机特性,对私有云环境中的所有计算机进行分组,得到多个个主机组;实时监测私有云环境中所有计算机的运行状态;当监测到宕机计算机时,在宕机计算机所属的主机组中查找空闲计算机,将宕机计算机上运行的应用程序迁移到空闲计算机上运行。使用本发明方法进行故障计算机切换,能够选择出符合需求的计算机;无需人工选择计算机,减少了运维难度,节省了人力,减少了宕机计算机上应用程序服务中断的时间。
【IPC分类】G06F11/20
【公开号】CN105487946
【申请号】CN201510856843
【发明人】来振宇, 张亮
【申请人】北京四达时代软件技术股份有限公司
【公开日】2016年4月13日
【申请日】2015年11月30日