一种HA预警方法及虚拟资源管理器
技术领域
本发明涉及通信领域,尤其涉及一种HA(highavailability,高可用性)预警方法及虚拟资源管理器。
背景技术
在云计算中采用虚拟化技术,可以允许一个服务器可以同时为多个虚拟机提供服务,并且每一个虚拟机都可以独立运行而互不影响,从而显著提高工作效率。针对某一个有多台服务器的集群,管理员可以提前假定该集群中会有任意N台服务器(N为大于零的正整数)出现故障,系统会进行HA预警计算,即计算剩余的正常服务器的资源,并检测剩余的正常服务器的资源是否可以承载集群下所有虚拟机的正常运行,如果不能承载集群下所有虚拟机的正常运行则产生HA预警。这样管理员就可以据HA预警对集群进行扩容或者减容操作。
现有技术中的一种HA预警方法是,假定资源最多的N台服务器出现故障,统计剩余的预设正常服务器的CPU资源总和及内存资源总和,统计集群中的虚拟机的CPU资源总和及内存资源总和。如果剩余的预设正常服务器的CPU资源总和小于虚拟机CPU资源总和,或剩余的预设正常服务器的内存总和小于虚拟机的内存总和,就会产生HA预警。示例的,可以用aUbG的形式表示服务器和虚拟机的规格,其中U代表CPU,G代表内存,假设一个集群中有三台规格都为1U1G服务器和一个规格为2U2G的虚拟机,预设N等于1,这时剩余的预设正常服务器的CPU资源总和及内存资源总和为2U2G,根据上述算法是可以承载该集群下规格为2U2G的虚拟机的正常运行,不应产生HA预警;但事实上一个规格为2U2G的虚拟机是不能被两个规格为1U1G的服务器承载的,即此时集群中正常服务器是不能够承载集群下所有虚拟机的正常运行的,应该产生HA预警。故按照上述的HA预警方法存在误差。
还存在一种HA预警方法,检测集群下虚拟机CPU资源和内存资源的最大值,将这两个最大值预设为虚拟机标准规格,假定资源最多的N台服务器出现故障,然后统计剩余的预设正常服务器中CPU资源、内存资源均大于或等于虚拟机标准规格中的CPU资源和内存资源的服务器数量X,统计集群中虚拟机的总数量Y。当X小于Y时产生HA预警。示例的,假设集群中有三台服务器且规格分别为3U3G,各服务器下的虚拟机规格分别为2U1G、1U2G、1U1G,预设N等于1;根据上述算法确定出的虚拟机标准规格为2U2G,这时剩余的2台服务器均有3U大于2U、3G大于2G,所以X等于2,而Y等于3,由于2小于3所以产生HA预警。事实上剩余的2台规格为3U3G的服务器可以承载上述三种规格的虚拟机的正常运行,不需要产生HA预警,所以这种HA预警方法也存在误差。
发明内容
本发明的实施例提供的一种HA预警方法及虚拟资源管理器,可以在产生HA预警时减少误差,提高HA预警准确度。
第一方面,公开了一种HA预警方法,包括:
确定虚拟机标准规格,其中,所述虚拟机标准规格为所述服务器集群中同一规格个数最多的虚拟机的CPU资源和内存资源;
选择所述服务器集群中的N个CPU资源最大的服务器为预设故障服务器,剩余服务器为预设正常服务器,所述N为大于0的整数,所述资源包括CPU资源和内存资源;
针对每一台所述预设正常服务器,计算所述预设正常服务器的状态值,所述预设正常服务器的状态值为所述预设正常服务器的资源与所述虚拟机标准规格中的资源的比值中的最小值;
将各个所述预设正常服务器的所述状态值相加,获得服务器状态值总和;
针对所述服务器集群中的每一台虚拟机,计算所述虚拟机的状态值,所述虚拟机的状态值为所述虚拟机的资源与所述虚拟机标准规格中的资源的比值中的最大值;
将各个所述虚拟机的状态值相加,获得虚拟机状态值总和;
比较所述虚拟机状态值总和是否大于所述服务器状态值总和;
若大于,则发出HA预警,若小于等于,则不发出HA预警。
结合第一方面,在第一种可能的实现方式中,所述选择所述服务器集群中的N个CPU资源最大的服务器为预设故障服务器,包括:
将所有所述服务器按照CPU资源从大到小的顺序排序,若所述服务器的CPU资源相同,则按照内存资源从大到小的顺序排序,获得服务器资源顺序表;
选择所述服务器资源顺序表中的前N台服务器为预设故障服务器。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在获得所述服务器资源顺序表时,若所述服务器的CPU资源和内存资源均相同,则按照服务器的索引号从小到大排序。
结合第一方面、第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第三种可能的实现方式中,若所述服务器集群承载的业务为普通业务,则所述N为1或2;若所述服务器集群承载的业务为重要业务,则所述N为所述服务器集群中服务器的个数的50%。
结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式和第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述预设正常服务器的状态值为:所述预设正常服务器的CPU资源除以所述虚拟机标准规格中的CPU资源后向下取整得到的值,以及所述预设正常服务器的内存资源除以所述虚拟机标准规格中的内存资源后向下取整得到的值,中的最小值。
结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式和第一方面的第三种可能的实现方式,在第四种可能的实现方式中,在所述虚拟机的CPU资源和内存资源均小于等于所述虚拟机标准规格中的CPU资源和内存资源时,所述虚拟机的状态值为1;在所述虚拟机的CPU资源大于所述虚拟机标准规格中的CPU资源,或所述虚拟机的内存资源大于所述虚拟机标准规格中的内存资源时,所述虚拟机的状态值为:所述虚拟机的CPU资源除以所述虚拟机标准规格中的CPU资源后向上取整得到的值,以及所述虚拟机的内存资源除以所述虚拟机标准规格中的内存资源后向上取整得到的值,中的最大值。
结合第一方面,在第六种可能的实现方式中,所述针对每一台所述预设正常服务器,计算所述预设正常服务器的状态值,还包括:
若所述预设正常服务器出现异常,则将出现异常的预设正常服务器的状态值设置为0。
结合第一方面,在第七种可能的实现方式中,所述针对每一台所述虚拟机,计算所述虚拟机的状态值,还包括:
若所述虚拟机出现异常,则将出现异常的虚拟机的状态值设置为0。
第二方面,公开了一种虚拟资源管理器,包括:
确定单元,用于确定虚拟机标准规格,其中,所述虚拟机标准规格为所述服务器集群中同一规格个数最多的虚拟机的CPU资源和内存资源;
选择单元,用于选择所述服务器集群中的N个CPU资源最大的服务器为预设故障服务器,剩余服务器为预设正常服务器,所述N为大于0的整数,所述资源包括CPU资源和内存资源;
计算单元,用于针对每一台所述预设正常服务器,计算所述预设正常服务器的状态值,所述预设正常服务器的状态值为所述预设正常服务器的资源与所述虚拟机标准规格中的资源的比值中的最小值;
所述计算单元还用于,将各个所述预设正常服务器的所述状态值相加,获得服务器状态值总和;
所述计算单元还用于,针对所述服务器集群中的每一台虚拟机,计算所述虚拟机的状态值,所述虚拟机的状态值为所述虚拟机的资源与所述虚拟机标准规格中的资源的比值中的最大值;
所述计算单元还用于,将各个所述虚拟机的状态值相加,获得虚拟机状态值总和;
比较单元,用于比较所述计算单元获得的所述虚拟机状态值总和是否大于所述计算单元获得的所述服务器状态值总和;
预警单元,用于在所述比较单元比较出所述虚拟机状态值总和大于所述服务器状态值总和时发出HA预警;在所述比较单元比较出所述虚拟机状态值总和小于等于所述服务器状态值总和时不发出HA预警。
结合第二方面,在第一种可能的实现方式中,所述选择单元具体用于,将所有所述服务器按照CPU资源从大到小的顺序排序,若所述服务器的CPU资源相同,则按照内存资源从大到小的顺序排序,获得服务器资源顺序表;并选择所述服务器资源顺序表中的前N台服务器为预设故障服务器。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述选择单元还用于,在获得所述服务器资源顺序表时,若所述服务器的CPU资源和内存资源均相同,则按照服务器的索引号从小到大排序。
结合第二方面、第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式,在第三种可能的实现方式中,若所述服务器集群承载的业务为普通业务,则所述N为1或2;若所述服务器集群承载的业务为重要业务,则所述N为所述服务器集群中服务器的个数的50%。
结合第二方面、第二方的第一种可能的实现方式、第二方面的第二种可能的实现方式和第二方的第三种可能的实现方式,在第四种可能的实现方式中,所述预设正常服务器的状态值为:所述预设正常服务器的CPU资源除以所述虚拟机标准规格中的CPU资源后向下取整得到的值,以及所述预设正常服务器的内存资源除以所述虚拟机标准规格中的内存资源后向下取整得到的值,中的最小值。
结合第二方面、第二方面的第一种可能的实现方式、第二方面的第二种可能的实现方式和第二方面的第三种可能的实现方式,在第五种可能的实现方式中,在所述虚拟机的CPU资源和内存资源均小于等于所述虚拟机标准规格中的CPU资源和内存资源时,所述虚拟机的状态值为1;在所述虚拟机的CPU资源大于所述虚拟机标准规格中的CPU资源,或所述虚拟机的内存资源大于所述虚拟机标准规格中的内存资源时,所述虚拟机的状态值为:所述虚拟机的CPU资源除以所述虚拟机标准规格中的CPU资源后向上取整得到的值,以及所述虚拟机的内存资源除以所述虚拟机标准规格中的内存资源后向上取整得到的值,中的最大值。
结合第二方面,在第六种可能的实现方式中,所述计算单元还用于,在所述预设正常服务器出现异常时,将出现异常的预设正常服务器的状态值设置为0。
结合第二方面,在第七种可能的实现方式中,所述计算单元还用于,在所述虚拟机出现异常时,将出现异常的虚拟机的状态值设置为0。
本发明实施例提供的HA预警方法及虚拟资源管理器,将服务器集群中同一规格个数最多的虚拟机的CPU资源和内存资源,作为虚拟机标准规格,计算集群中各个预设正常服务器的状态值和各个虚拟机的状态值,然后将各个预设正常服务器的状态值相加获得预设正常服务器状态值总和,将各个虚拟机的状态值相加获得,比较所述虚拟机状态值总和是否大于所述预设正常服务器状态值总和,若大于,则产生HA预警。与现有技术中仅比较预设正常服务器总资源和虚拟机总资源,或将所有虚拟机中CPU资源和内存资源的最大值作为虚拟机标准规格的CPU资源和内存资源,导致HA预警出现误差相比,本发明提供的HA预警方法,将虚拟机的标准规格修订为众数,代表了数据的一般水平,故可以在产生HA预警时减少误差,提高HA预警准确度。
附图说明
图1为本发明实施例1提供的一种HA预警方法的流程示意图;
图2为本发明实施例2提供的一种虚拟资源管理器的结构框图;
图3为本发明实施例3提供的一种虚拟资源管理器的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
本发明实施例提供了一种HA预警方法,应用于一个服务器集群,如图1所示,所述方法包括以下步骤:
101、确定虚拟机标准规格。
其中,所述虚拟机标准规格为所述服务器集群中同一规格个数最多的虚拟机的规格,所述虚拟机的规格包括CPU资源和内存资源。
众数是一组数据中出现次数最多的数值,代表数据的一般水平。将所述服务器集群中同一规格个数最多的虚拟机的CPU资源和内存资源作为虚拟机标准规格中的CPU资源和内存资源,可以表示集群中虚拟机规格的普遍情况,进而提高HA预警的准确性。
示例的,若集群A中有1台2U1G虚拟机、1台1U2G虚拟机、2台1U1G虚拟机,其中1U1G虚拟机是个数最多的虚拟机,所以在该集群中,确定的虚拟机标准规格为1U1G。
102、选择所述服务器集群中的N个CPU资源最大的服务器为预设故障服务器,剩余服务器为预设正常服务器,所述N为大于0的整数。
针对某一个有多台服务器的集群,管理员可以提前假定该集群中会有任意N台服务器(N为大于零的正整数)出现故障,系统会进行HA预警计算,即计算剩余的正常服务器的资源,并检测剩余的正常服务器的资源是否可以承载集群下所有虚拟机的正常运行,如果不能承载集群下所有虚拟机的正常运行则产生HA预警。这样管理员就可以据HA预警对集群进行扩容或者减容操作。
这里,选择所述服务器集群中的N个资源最大的服务器为预设故障服务器的方法主要包括:将所有所述服务器按照CPU资源从大到小的顺序排序,,若所述服务器的CPU资源相同,则按照内存资源从大到小的顺序排序,获得服务器资源顺序表,其中若所述服务器的CPU资源和内存资源均相同,则按照服务器的索引号从小到大排序。选择所述服务器资源顺序表中的前N台服务器为预设故障服务器。
若服务器集群当前承载的业务为普通业务,在进行HA预警时,首先将所述N设置为1-2台。若服务器集群当前承载的业务为重要业务,则将N设置为集群中服务器个数50%。示例的,在集群A中有2台2U1G服务器、1台3U3G服务器、1台4U2G。若当前业务为普通业务,则将N设置为1(或2),这时在集群A中,获得的服务器资源顺序表中的前1台为规格为4U2G的服务器,故将这台服务器设置为预设故障服务器,则剩余的2台2U1G服务器、1台3U3G服务器均为预设正常服务器。
103、针对每一台所述预设正常服务器,计算所述预设正常服务器的状态值。
其中,所述预设正常服务器的状态值为所述预设正常服务器的资源与所述虚拟机标准规格中的资源的比值中的最小值。所述预设正常服务器的状态值的具体为:所述预设正常服务器的CPU资源除以所述虚拟机标准规格中的CPU资源后向下取整得到的值,以及所述预设正常服务器的内存资源除以所述虚拟机标准规格中的内存资源后向下取整得到的值,中的最小值。
计算所述预设正常服务器的状态值,在所述预设正常服务器出现异常时,针对该预设正常服务器进行上述计算步骤,可以获得准确的HA预警结果。
或者,在所述预设正常服务器出现异常时,将该预设正常服务器的状态值设置为0,可以得到更为准确的HA预警结果。这里所述预设正常服务器出现异常包括:如果某一台服务器下电后,该服务器的管理节点会将该服务器属性设置为False,进而在计算所述预设正常服务器的状态值时,若该服务器属性为False,则不计算该服务器的状态值。在进行HA预警之前,会将集群下的服务器的属性设置为Ture,并将所述服务器资源顺序表中的前N台服务器的属性设置为False,通常剩余的服务器的属性应均为Ture,但如果某服务器出现异常,例如某一台服务器下电,则剩余的服务器中就会出现属性为False的预设正常服务器。
示例的,有步骤101可知,集群A中虚拟机标准规格为1U1G。针对集群A中的所有预设正常服务器,计算所述预设正常服务器的状态值。对于2台2U1G服务器均有rounddown(2U/1U)=2,rounddown(1G/1G)=1,即CPU资源2U除以虚拟机标准规格中的CPU资源1U,得到2向下取整得到2。内存资源1G除以虚拟机标准规格中的CPU资源1G,得到1向下取整得到1。由于1小于2,所以2台2U1G服务器的状态值均为1。这里rounddown在数学公式中表示向下取整,在计算过程中,如果得到的结果不是整数,如1.6,向下取整得到的结果就是1。
同理,对于1台3U3G服务器均有,rounddown(3U/1U)=3,rounddown(3G/1G)=3,所以3台3U3G服务器的状态值为3。
104、将各个所述预设正常服务器的所述状态值相加,获得服务器状态值总和。
示例的,在集群A中计算获得2U1G服务器和3U3G服务器的所述预设正常服务器的状态值分别为1、3,由于集群A所述预设正常服务器有2台2U1G服务器和1台3U3G服务器和,1×2+3×1=5,得到所述服务器状态值总和为5。
105、针对所述服务器集群中的每一台虚拟机,计算所述虚拟机的状态值。
其中,所述虚拟机的状态值为所述虚拟机的资源与所述虚拟机标准规格中的资源的比值中的最大值。所述虚拟机的状态值具体包括:在所述虚拟机的CPU资源和内存资源均小于等于所述虚拟机标准规格中的CPU资源和内存资源时,所述虚拟机的状态值为1;在所述虚拟机的CPU资源大于所述虚拟机标准规格中的CPU资源,或所述虚拟机的内存资源大于所述虚拟机标准规格中的内存资源时,所述虚拟机的状态值为:所述虚拟机的CPU资源除以所述虚拟机标准规格中的CPU资源后向上取整得到的值,以及所述虚拟机的内存资源除以所述虚拟机标准规格中的内存资源后向上取整得到的值,中的最大值。
计算所述虚拟机的状态值,在所述虚拟机出现异常时,针对该虚拟机进行上述计算步骤,可以获得准确的HA预警结果。
或者,在所述虚拟机出现异常时,将该虚拟机的状态值设置为0,可以得到更为准确的HA预警结果。这里,所述虚拟机出现异常包括:虚拟机时HA属性为False,进而在计算所述虚拟机的状态值时,不计算该虚拟机的状态值。在进行HA预警之前,会将集群下虚拟机的HA属性设置为True或False,不设置的虚拟机HA属性默认为False。
示例的,有步骤101可知,集群A中虚拟机标准规格为1U1G。针对集群A中的所有虚拟机,计算所述虚拟机的状态值。对于1台2U1G虚拟机有roundup(2U/1U)=2,roundup(1G/1G)=1,即CPU资源2U除以虚拟机标准规格中的CPU资源1U,得到2向上取整得到2。内存资源1G除以虚拟机标准规格中的CPU资源1G,得到1向上取整得到1。由于2大于1,所以这台2U1G虚拟机的状态值为2。roundup,在数学公式中表示向上取整,在计算过程中,如果得到的结果不是整数,如1.4,向上取整得到的结果就是2。
同理,对于1台1U2G虚拟机均有roundup(1U/1U)=1,roundup(2G/1G)=2,2大于1,所以这台1U2G虚拟机的状态值为2。对于2台1U1G虚拟机均有roundup(1U/1U)=1,roundup(1G/1G)=1,所以这3台1U1G虚拟机的状态值均为1。
106、将各个所述虚拟机的状态值相加,获得虚拟机状态值总和。
示例的,在集群A中计算获得2U1G虚拟机、1U2G虚拟机和1U1G虚拟机的所述虚拟机的状态值分别为2、2、1,由于集群A中有1台2U1G虚拟机、1台1U2G虚拟机和2台1U1G虚拟机,2×1+2×1+1×2=6得到所述服务器状态值总和为6。
107、比较所述虚拟机状态值总和是否大于所述服务器状态值总和。
若大于,则进行步骤108。
示例的,集群A中,所述虚拟机状态值总和为6,所述服务器状态值总和为5,5小于6,所以进行步骤108。这里,若步骤106获得的所述虚拟机状态值总和不大于步骤104获得的所述服务器状态值总和,则不会进行步骤108。
108、发出HA预警。
发出所述HA预警后,管理员就可以根据所述HA预警对集群进行扩容或减容的操作。
若一个集群中有3台1U1G服务器和1台2U2G虚拟机,预设N等于1,则应用现有技术中的第一种方法,最终的结果是不产生HA预警,但事实上此时集群中正常服务器是不能够承载集群下所有虚拟机的正常运行的,应该产生HA预警。而应用本发明提供的方法,首先将2U2G确定为所述虚拟机标准规格。对于2台预设正常服务器,均有rounddown(1U/2U)=0,rounddown(1G/2G)=0,所以2台1U1G服务器的状态值为0,因此所述正常服务器状态值总和为0。对于1台2U2G虚拟机有roundup(2U/2U)=1,roundup(2G/2G)=1,所以这台2U2G虚拟机的状态值均为1,所以所述虚拟机状态值总和为1。又因为,1大于0,最终产生HA预警,故,本发明提供的方法与现有技术的第一种方法相比更加准确。
若集群中有3台3U3G服务器,各服务器下的虚拟机规格分别为2U1G、1U2G、1U1G,预设N等于1,则应用现有技术中的第二种方法,最终的结果是产生HA预警,但事实上此时集群中正常服务器是能够承载集群下所有虚拟机的正常运行的,不应该产生HA预警。而应用本发明提供的方法,这三种规格的虚拟机均有一台,将任意一台的规格作为虚拟机的标准规格,可确定所述虚拟机标准规格为1U1G。排除1台3U3G服务器,对于剩余的2台3U3G服务器均有rounddown(3U/1U)=3,rounddown(3G/1G)=3,所以2台3U3G服务器的状态值均为3,所述正常服务器状态总值为6。对于2U1G虚拟机,roundup(2U/1U)=2,roundup(1G/1G)=1,2大于1,所以2U1G虚拟机的状态值为2。对于1U2G虚拟机,roundup(1U/1U)=1,roundup(2G/1G)=2,2大于1,所以1U2G虚拟机的状态值为2。对于1U1G虚拟机,roundup(1U/1U)=1,roundup(1G/1G)=1,所以1U1G虚拟机的状态值为1。故所述虚拟机状态值总和为2+2+1=5。又因为5不大于6,最终不产生HA预警,故,本发明提供的方法与现有技术的第二种方法相比更加准确。
本发明实施例提供的HA预警方法,将服务器集群中同一规格个数最多的虚拟机的CPU资源和内存资源,作为虚拟机标准规格,计算集群中各个预设正常服务器的状态值和各个虚拟机的状态值,然后将各个预设正常服务器的状态值相加获得预设正常服务器状态值总和,将各个虚拟机的状态值相加获得,比较所述虚拟机状态值总和是否大于所述预设正常服务器状态值总和,若大于,则产生HA预警。与现有技术中仅比较预设正常服务器总资源和虚拟机总资源,或将所有虚拟机中CPU资源和内存资源的最大值作为虚拟机标准规格的CPU资源和内存资源,导致HA预警出现误差相比,本发明提供的HA预警方法,将虚拟机的标准规格修订为众数,代表了数据的一般水平,故可以在产生HA预警时减少误差,提高HA预警准确度。
实施例2:
本发明实施例提供了一种虚拟资源管理器,如图2所示,包括:确定单元201、选择单元202、计算单元203、比较单元204和预警单元205。
确定单元201,用于确定虚拟机标准规格,其中,所述虚拟机标准规格为所述服务器集群中同一规格个数最多的虚拟机的CPU资源和内存资源。
选择单元202,用于选择所述服务器集群中的N个CPU资源最大的服务器为预设故障服务器,剩余服务器为预设正常服务器,所述N为大于0的整数,所述资源包括CPU资源和内存资源。
计算单元203,用于针对每一台所述预设正常服务器,计算所述预设正常服务器的状态值,所述预设正常服务器的状态值为所述预设正常服务器的资源与所述虚拟机标准规格中的资源的比值中的最小值。所述计算单元203还用于,将各个所述预设正常服务器的所述状态值相加,获得服务器状态值总和。
所述计算单元203还用于,针对所述服务器集群中的每一台虚拟机,计算所述虚拟机的状态值,所述虚拟机的状态值为所述虚拟机的资源与所述虚拟机标准规格中的资源的比值中的最大值。所述计算单元203还用于,将各个所述虚拟机的状态值相加,获得虚拟机状态值总和。
比较单元204,用于比较所述计算单元获得的所述虚拟机状态值总和是否大于所述计算单元获得的所述服务器状态值总和;
预警单元205,用于在所述比较单元204比较出所述虚拟机状态值总和大于所述服务器状态值总和时发出HA预警;在所述比较单元204比较出所述虚拟机状态值总和小于等于所述服务器状态值总和时不发出HA预警。
所述选择单元202具体用于,将所有所述服务器按照CPU资源从大到小的顺序排序,若所述服务器的CPU资源相同,则按照内存资源从大到小的顺序排序,获得服务器资源顺序表;选择所述服务器资源顺序表中的前N台服务器为预设故障服务器。
所述选择单元202还用于,在获得所述服务器资源顺序表时,若所述服务器的CPU资源和内存资源均相同,则按照服务器的索引号从小到大排序。
所述选择单元202具体用于,在所述服务器集群承载的业务为普通业务时,将所述N设置为1或2;在所述服务器集群承载的业务为重要业务时,将所述N设置为所述服务器集群中服务器的个数的50%。
这里,所述预设正常服务器的状态值为:所述预设正常服务器的CPU资源除以所述确定单元201确定的所述虚拟机标准规格中的CPU资源后向下取整得到的值,以及所述预设正常服务器的内存资源除以所述确定单元201确定的所述虚拟机标准规格中的内存资源后向下取整得到的值,中的最小值。
所述虚拟机的状态值具体包括:在所述虚拟机的CPU资源和内存资源均小于等于所述确定单元201确定的所述虚拟机标准规格中的CPU资源和内存资源时,所述虚拟机的状态值为1;在所述虚拟机的CPU资源大于所述确定单元201确定的所述虚拟机标准规格中的CPU资源,或所述虚拟机的内存资源大于所述虚拟机标准规格中的内存资源时,所述虚拟机的状态值为:所述虚拟机的CPU资源除以所述虚拟机标准规格中的CPU资源后向上取整得到的值,以及所述虚拟机的内存资源除以所述虚拟机标准规格中的内存资源后向上取整得到的值,中的最大值。
所述计算单元203还用于,在所述预设正常服务器出现异常时,将出现异常的预设正常服务器的状态值设置为0。
所述计算单元203还用于,在所述虚拟机出现异常时,将出现异常的虚拟机的状态值设置为0。
本发明实施例提供的虚拟资源管理器,将服务器集群中同一规格个数最多的虚拟机的CPU资源和内存资源,作为虚拟机标准规格,计算集群中各个预设正常服务器的状态值和各个虚拟机的状态值,然后将各个预设正常服务器的状态值相加获得预设正常服务器状态值总和,将各个虚拟机的状态值相加获得,比较所述虚拟机状态值总和是否大于所述预设正常服务器状态值总和,若大于,则产生HA预警。与现有技术中仅比较预设正常服务器总资源和虚拟机总资源,或将所有虚拟机中CPU资源和内存资源的最大值作为虚拟机标准规格的CPU资源和内存资源,导致HA预警出现误差相比,本发明提供的HA预警方法,将虚拟机的标准规格修订为众数,代表了数据的一般水平,故可以在产生HA预警时减少误差,提高HA预警准确度。
实施例3:
本发明实施例提供了一种虚拟资源管理器,如图3所示,所述NAS设备包括:存储器301以及与存储器301连接的处理器302。其中,存储器303中存储一组程序代码,且处理器302用于调用存储器301中存储的程序代码,用于执行以下操作:
处理器302,用于确定虚拟机标准规格,其中,所述虚拟机标准规格为所述服务器集群中同一规格个数最多的虚拟机的CPU资源和内存资源。
所述处理器302,用于选择所述服务器集群中的N个资源最大的服务器为预设故障服务器,剩余服务器为预设正常服务器,所述N为大于0的整数,所述资源包括CPU资源和内存资源。
所述处理器302,用于针对每一台所述预设正常服务器,计算所述预设正常服务器的状态值,所述预设正常服务器的状态值为所述预设正常服务器的资源与所述虚拟机标准规格中的资源的比值中的最小值。所述处理器302,还用于,将各个所述预设正常服务器的所述状态值相加,获得服务器状态值总和。
所述处理器302还用于,针对所述服务器集群中的每一台虚拟机,计算所述虚拟机的状态值,所述虚拟机的状态值为所述虚拟机的资源与所述虚拟机标准规格中的资源的比值中的最大值。所述处理器302还用于,将各个所述虚拟机的状态值相加,获得虚拟机状态值总和。
所述处理器302,用于比较获得的所述虚拟机状态值总和是否大于获得的所述服务器状态值总和。
所述处理器302,用于在比较出所述虚拟机状态值总和大于所述服务器状态值总和时发出HA预警;在比较出所述虚拟机状态值总和小于等于所述服务器状态值总和时不发出HA预警。
所述处理器302,具体用于将所有所述服务器按照CPU资源从大到小的顺序排序,若所述服务器的CPU资源相同,则按照内存资源从大到小的顺序排序,获得服务器资源顺序表;选择所述服务器资源顺序表中的前N台服务器为预设故障服务器。
所述处理器302还用于,在获得所述服务器资源顺序表时,若所述服务器的CPU资源和内存资源均相同,则按照服务器的索引号从小到大排序。
所述处理器302具体用于,在所述服务器集群承载的业务为普通业务时,将所述N设置为1或2;在所述服务器集群承载的业务为重要业务时,将所述N设置为所述服务器集群中服务器的个数的50%。
这里,所述预设正常服务器的状态值为:所述预设正常服务器的CPU资源除以所述虚拟机标准规格中的CPU资源后向下取整得到的值,以及所述预设正常服务器的内存资源除以确定的所述虚拟机标准规格中的内存资源后向下取整得到的值,中的最小值。
所述虚拟机的状态值具体包括:在所述虚拟机的CPU资源和内存资源均小于等于所述虚拟机标准规格中的CPU资源和内存资源时,所述虚拟机的状态值为1;在所述虚拟机的CPU资源大于所述虚拟机标准规格中的CPU资源,或所述虚拟机的内存资源大于所述虚拟机标准规格中的内存资源时,所述虚拟机的状态值为:所述虚拟机的CPU资源除以所述虚拟机标准规格中的CPU资源后向上取整得到的值,以及所述虚拟机的内存资源除以所述虚拟机标准规格中的内存资源后向上取整得到的值,中的最大值。
所述处理器302还用于,在所述预设正常服务器出现异常时,将出现异常的预设正常服务器的状态值设置为0。
所述处理器302还用于,在所述虚拟机出现异常时,将出现异常的虚拟机的状态值设置为0。
本发明实施例提供的虚拟资源管理器,将服务器集群中同一规格个数最多的虚拟机的CPU资源和内存资源,作为虚拟机标准规格,计算集群中各个预设正常服务器的状态值和各个虚拟机的状态值,然后将各个预设正常服务器的状态值相加获得预设正常服务器状态值总和,将各个虚拟机的状态值相加获得,比较所述虚拟机状态值总和是否大于所述预设正常服务器状态值总和,若大于,则产生HA预警。与现有技术中仅比较预设正常服务器总资源和虚拟机总资源,或将所有虚拟机中CPU资源和内存资源的最大值作为虚拟机标准规格的CPU资源和内存资源,导致HA预警出现误差相比,本发明提供的HA预警方法,将虚拟机的标准规格修订为众数,代表了数据的一般水平,故可以在产生HA预警时减少误差,提高HA预警准确度。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。