G06F11/14 G06F9/455
1.一种虚拟机的管理方法,其特征在于,包括:
若主服务器确定第一虚拟机无法正常工作,则创建第二虚拟机,所述第一虚拟机所属 的第一服务器与所述第二虚拟机所属的第二服务器不同,所述第二虚拟机为用于替代所述 第一虚拟机的灾备虚拟机;
所述主服务器指示所述第二服务器向所述第一虚拟机对应的存储服务器申请注册,使 所述第二虚拟机获得所述第一虚拟机对应的存储资源的访问权限;
所述主服务器启动所述第二虚拟机,并在启动所述第二虚拟机时向所述存储服务器抢 占所述第二虚拟机能够单独访问所述存储资源的访问权限。
2.根据权利要求1所述的方法,其特征在于,所述主服务器指示所述第二服务器向所述 第一虚拟机对应的存储服务器申请注册,使所述第二虚拟机获得所述第一虚拟机对应的存 储资源的访问权限包括:
所述主服务器向所述第二服务器发送第一指示信息,所述第一指示信息用于指示所述 第二服务器向所述第一虚拟机对应的存储服务器申请注册,使所述存储服务器为所述第二 虚拟机分配存储资源,且所述第二虚拟机分配的存储资源为所述第一虚拟机对应的存储资 源,使所述第二虚拟机获得所述第一虚拟机对应的存储资源的访问权限。
3.根据权利要求1或2所述的方法,其特征在于,所述在启动所述第二虚拟机时向所述 存储服务器抢占所述第二虚拟机能够单独访问所述存储资源的访问权限包括:
所述主服务器在启动所述第二虚拟机时,所述主服务器向所述第二服务器发送第二指 示信息,所述第二指示信息用于指示所述第二服务器向所述存储服务器发送抢占终止命 令,所述抢占终止命令携带所述存储资源的存储地址,所述抢占终止命令用于使所述存储 服务器为所述第二虚拟机抢占所述第二虚拟机能够单独访问所述存储资源的访问权限,以 终止除所述第二虚拟机以外的其它虚拟机访问所述存储资源的访问权限。
4.根据权利要求1-3任一项所述的方法,其特征在于,在所述主服务器确定第一虚拟机 无法正常工作之前,所述方法还包括:
所述主服务器创建所述第一虚拟机;
所述主服务器确定所述第一虚拟机的所述存储服务器时,所述主服务器指示所述第一 服务器向所述存储服务器申请注册,使所述第一虚拟机获得访问所述存储资源的访问权 限;
所述服务器启动所述第一虚拟机。
5.根据权利要求4所述的方法,其特征在于,
在启动所述第一虚拟机之前,所述方法还包括:
所述主服务器为所述第一虚拟机申请第一计算资源和第一网络资源;
在启动所述第二虚拟机之前,所述方法还包括:
所述主服务器为所述第二虚拟机申请第二计算资源和第二网络资源。
6.一种主服务器,其特征在于,包括:
创建单元,用于若确定第一虚拟机无法正常工作,则创建第二虚拟机,所述第一虚拟机 所属的第一服务器与所述第二虚拟机所属的第二服务器不同,所述第二虚拟机为用于替代 所述第一虚拟机的灾备虚拟机;
指示单元,用于指示所述第二服务器向所述第一虚拟机对应的存储服务器申请注册, 使所述第二虚拟机获得所述第一虚拟机对应的存储资源的访问权限;
启动单元,用于启动所述第二虚拟机,并在启动所述第二虚拟机时向所述存储服务器 抢占所述第二虚拟机能够单独访问所述存储资源的访问权限。
7.根据权利要求6所述的主服务器,其特征在于,所述指示单元用于:
向所述第二服务器发送第一指示信息,所述第一指示信息用于指示所述第二服务器向 所述第一虚拟机对应的存储服务器申请注册,使所述存储服务器为所述第二虚拟机分配存 储资源,且所述第二虚拟机分配的存储资源为所述第一虚拟机对应的存储资源,使所述第 二虚拟机获得所述第一虚拟机对应的存储资源的访问权限。
8.根据权利要求6或7所述的主服务器,其特征在于,所述启动单元用于:
在启动所述第二虚拟机时,所述主服务器向所述第二服务器发送第二指示信息,所述 第二指示信息用于指示所述第二服务器向所述存储服务器发送抢占终止命令,所述抢占终 止命令携带所述存储资源的存储地址,所述抢占终止命令用于使所述存储服务器为所述第 二虚拟机抢占所述第二虚拟机能够单独访问所述存储资源的访问权限,以终止除所述第二 虚拟机以外的其它虚拟机访问所述存储资源的访问权限。
9.根据权利要求6-8任一项所述的主服务器,其特征在于,
所述创建单元还用于:
创建所述第一虚拟机;
所述指示单元还用于:确定所述第一虚拟机的所述存储服务器时,指示所述第一服务 器向所述存储服务申请注册,使所述第一虚拟机获得访问所述存储资源的访问权限;
所述启动单元还用于:启动所述第一虚拟机。
10.根据权利要求9所述的主服务器,其特征在于,还包括申请单元,用于:
为所述第一虚拟机申请第一计算资源和第一网络资源;
为所述第二虚拟机申请第二计算资源和第二网络资源。
11.一种云计算系统,包括主服务器、第一服务器、第二服务器和存储服务器,其特征在 于,其中:
所述主服务器,用于若确定第一虚拟机无法正常工作,所述第一虚拟机创建在所述第 一服务器中,则所述主服务器在所述第二服务器上创建第二虚拟机,所述第二虚拟机为用 于替代所述第一虚拟机的灾备虚拟机;
所述主服务器,用于指示所述第二服务器向所述第一虚拟机对应的存储服务器申请注 册,使所述第二虚拟机获得所述第一虚拟机对应的存储资源的访问权限;
所述第二服务器,用于根据所述主服务器的指示向所述存储服务器申请注册;
所述主服务器,还用于在确定所述第二服务器申请注册完成后启动所述第二虚拟机, 并在启动所述第二虚拟机时向所述存储服务器抢占所述第二虚拟机能够单独访问所述存 储资源的访问权限。
12.根据权利要求11所述的云计算系统,其特征在于,所述主服务器用于:向所述第二 服务器发送第一指示信息,所述第一指示信息用于指示所述第二服务器向所述第一虚拟机 对应的存储服务器申请注册,使所述第二虚拟机获得所述第一虚拟机对应的存储资源的访 问权限;
所述第二服务器用于:在接收到所述主服务器发送的所述第一指示信息时,向所述第 一虚拟机对应的存储服务器申请注册;
所述存储服务器用于:为所述第二虚拟机分配存储资源,且所述第二虚拟机分配的存 储资源为所述第一虚拟机对应的存储资源。
13.根据权利要求11或12所述的云计算系统,其特征在于,所述主服务器用于:在启动 所述第二虚拟机时,向所述第二服务器发送第二指示信息,所述第二指示信息用于指示所 述第二服务器向所述存储服务器发送抢占终止命令,所述抢占终止命令携带所述存储资源 的存储地址,所述抢占终止命令用于使所述存储服务器为所述第二虚拟机抢占所述第二虚 拟机能够单独访问所述存储资源的访问权限;
所述第二服务器用于:在接收到所述主服务器发送的所述第二指示信息时,向所述存 储服务器发送抢占终止命令;
所述存储服务器用于:在接收到所述第二服务器发送的所述抢占终止命令时,为所述 第二虚拟机设置所述第二虚拟机能够单独访问所述存储资源的访问权限,以终止除所述第 二虚拟机以外的其它虚拟机访问所述存储资源的访问权限。
本申请涉及云计算技术领域,尤其涉及一种虚拟机的管理方法和服务器。
在计算机中,虚拟化(Virtualization)是一种资源管理技术,是将计算机的各种 实体资源,如计算、网络、及存储等,抽象整合为资源池,打破实体结构间的资源隔离,使用 户可以以更灵活的方式应用这些资源。在虚拟化场景下,一个服务器中可以运行至少一个 虚拟机(Virtual Machine,VM)。VM指由虚拟化平台模拟出来的一台虚拟的计算机,也即逻 辑上的一台计算机。VM所需要的计算资源、存储资源以及网络资源等可以由虚拟化资源管 理(Virtual resource management,VRM)统一管理。
如图1所示,VRM可以创建于服务器集的其中一个服务器中,VRM可以通过管理平 面来管理所有物理服务器上的VM以及VM对应的资源。其中,存储集通过存储平面对外统 一提供存储资源,VRM通过存储平面,可以将VM与存储资源关联起来。当VRM检测到管理平 面、存储平面、服务器重启或其他原因等导致当前VM1无法正常工作时,VRM可以选择在新的 服务器上启动与该VM1相同规格的灾备虚拟机VM1-HA,可以使得VM1的使用者在不感知VM1 发生故障的情况下,将业务从VM1迁移到VM1-HA,实现VM1的高可靠性(High-Availability, HA)。同时,VRM还可以周期性地删除无法正常工作的残留VM。
在VM1-HA创建成功替代VM1后,如果VM1没有被及时删除,可能出现VM1和VM1-HA同 时可以读写VM1对应的存储资源(如图1中的volumes-VM1)的可能性,即产生VM脑裂问题。例 如VM1和VM-HA同时对volumes-VM1进行写入时,可能造成数据破坏,进而使得客户操作系统 (Guest Operate System,Guest OS)存在行为不正常的可能。
本申请实施例提供一种虚拟机的管理方法和服务器,能够解决新创建灾备VM之 后,在存储平面恢复时如果先前的VM未被及时删除导致的VM脑裂问题。
第一方面,提供一种虚拟机的管理方法,包括:若主服务器确定第一虚拟机无法正 常工作,则创建第二虚拟机,第一虚拟机所属的第一服务器与第二虚拟机所属的第二服务 器不同;第二虚拟机为用于替代第一虚拟机的灾备虚拟机;主服务器指示第二服务器向第 一虚拟机对应的存储服务器申请注册,使第二虚拟机获得第一虚拟机对应的存储资源的访 问权限;主服务器启动第二虚拟机,并在启动第二虚拟机时向存储服务器抢占第二虚拟机 能够单独访问存储资源的访问权限。这样,在第一虚拟机所属的服务器与主服务器之间的 管理平面以及第一虚拟机所属的服务器与存储集之间的存储平面出现故障,导致第一虚 拟机无法正常工作时,在创建了与第一虚拟机相同规格的第二虚拟机后,对于存储平面后 又恢复正常的情况,如果第一虚拟机未被及时删除,第一虚拟机和第二虚拟机可能同时访 问第一虚拟机对应的存储资源,由于本申请也将第一虚拟机对应的存储资源的访问权限也 开放给了第二虚拟机,且在第二虚拟机启动过程中抢占了该存储资源被第二虚拟机单独访 问的权限,那么即使第一虚拟机也访问该存储资源时,不被该存储资源的存储服务器响应, 从而避免了第一虚拟机和第二虚拟机同时访问该存储资源时出现的脑裂问题。
在一种可能的设计中,主服务器指示第二服务器向第一虚拟机对应的存储服务器 申请注册,使第二虚拟机获得第一虚拟机对应的存储资源的访问权限包括:主服务器向第 二服务器发送第一指示信息,第一指示信息用于指示第二服务器向第一虚拟机对应的存储 服务器发送申请注册,使存储服务器为第二虚拟机分配存储资源,且第二虚拟机分配的存 储资源为第一虚拟机对应的存储资源,使第二虚拟机获得第一虚拟机对应的存储资源的访 问权限。主服务器可以通过VRM向第二服务器发送第一指示信息,第二服务器向存储服务器 发送第一申请注册命令,由于存储服务器已经为第一虚拟机分配了存储资源,在接收到第 一申请注册命令时,存储服务器便可以根据命令中的标识,将第一虚拟机对应的存储资源 也分配给第二虚拟机,使得第二虚拟机也得到存储资源的访问权限,便于新创建的第二虚 拟机延续第一虚拟机中的业务的不间断。
在一种可能的设计中,在启动第二虚拟机时向存储服务器抢占第二虚拟机能够单 独访问存储资源的访问权限包括:主服务器在启动第二虚拟机时,主服务器向第二服务器 发送第二指示信息,第二指示信息用于指示第二服务器向存储服务器发送抢占终止命令, 抢占终止命令携带存储资源的存储地址,抢占终止命令用于使存储服务器为第二虚拟机抢 占第二虚拟机能够单独访问存储资源的访问权限,以终止除第二虚拟机以外的其它虚拟机 访问存储资源的访问权限。这样,由于将第一虚拟机的存储资源的访问权限也开放给了第 二虚拟机,第一虚拟机与主服务器之间的管理平面故障导致第一虚拟机可能不被及时删 除,出现第一虚拟机和第二虚拟机同时对存储资源进行写操作,因此,在第二虚拟机启动过 程中就可以为第二虚拟机抢占该存储资源被第二虚拟机单独访问的权限,使得除第二虚拟 机以外的其他虚拟机不能访问到该存储资源。
在一种可能的设计中,在主服务器确定第一虚拟机无法正常工作之前,该方法还 包括:主服务器创建第一虚拟机;主服务器确定第一虚拟机的存储服务器时,主服务器指示 第一服务器向存储服务器申请注册,使第一虚拟机获得访问存储资源的访问权限;服务器 启动第一虚拟机。这样在创建第一虚拟机时,为了防止后续第一虚拟机不能正常工作,需要 创建第二虚拟机以为第二虚拟机抢占存储资源的访问权限,在为第一虚拟机申请存储资源 后,就可以为第一虚拟机先申请注册,以为第一虚拟机将该存储资源的访问权限进行标记, 以便后续新创建第二虚拟机时对第二虚拟机进行申请注册能够被存储服务器识别,存储服 务器将存储资源的访问权限开放给第二虚拟机。
在一种可能的设计中,在启动第一虚拟机之前,该方法还包括:主服务器为第一虚 拟机申请第一计算资源和第一网络资源;在启动第二虚拟机之前,该方法还包括:主服务器 为第二虚拟机申请第二计算资源和第二网络资源。计算资源可以虚拟机运行时的所需的中 央处理器(Central Processing Unit,CPU)资源、内存(memory)以及输入/输出(Input/ Output,I/O)端口等硬件资源,网络资源可以包括虚拟机运行时所需的网卡以及交换机等 相关的硬件资源,以便虚拟机根据存储资源、计算资源和网络资源等正常运行。
第二方面,提供一种主服务器,包括:创建单元,用于若确定第一虚拟机无法正常 工作,则创建第二虚拟机,第一虚拟机所属的第一服务器与第二虚拟机所属的第二服务器 不同,第二虚拟机为用于替代第一虚拟机的灾备虚拟机;指示单元,用于指示第二服务器向 第一虚拟机对应的存储服务器申请注册,使第二虚拟机获得第一虚拟机对应的存储资源的 访问权限;启动单元,用于启动第二虚拟机,并在启动第二虚拟机时向存储服务器抢占第二 虚拟机能够单独访问存储资源的访问权限。
在一种可能的设计中,指示单元用于:向第二服务器发送第一指示信息,第一指示 信息用于指示第二服务器向第一虚拟机对应的存储服务器申请注册,使存储服务器为第二 虚拟机分配存储资源,且第二虚拟机分配的存储资源为第一虚拟机对应的存储资源,使第 二虚拟机获得第一虚拟机对应的存储资源的访问权限。
在一种可能的设计中,启动单元用于:在启动第二虚拟机时,主服务器向第二服务 器发送第二指示信息,第二指示信息用于指示第二服务器向存储服务器发送抢占终止命 令,抢占终止命令携带存储资源的存储地址,抢占终止命令用于使存储服务器为第二虚拟 机抢占第二虚拟机能够单独访问存储资源的访问权限,以终止除第二虚拟机以外的其它虚 拟机访问存储资源的访问权限。
在一种可能的设计中,创建单元还用于:创建第一虚拟机;指示单元还用于:确定 第一虚拟机的存储服务器时,指示第一服务器向存储服务器申请注册,使第一虚拟机获得 访问存储资源的访问权限;启动单元还用于:启动第一虚拟机。
在一种可能的设计中,还包括申请单元,用于:为第一虚拟机申请第一计算资源和 第一网络资源;为第二虚拟机申请第二计算资源和第二网络资源。
又一方面,提供一种云计算系统,包括主服务器、第一服务器、第二服务器和存储 服务器,其中:主服务器,用于若确定第一虚拟机无法正常工作,第一虚拟机创建在第一服 务器中,则主服务器在第二服务器上创建第二虚拟机,第二虚拟机为用于替代第一虚拟机 的灾备虚拟机;主服务器,用于指示第二服务器向第一虚拟机对应的存储服务器申请注册, 使第二虚拟机获得第一虚拟机对应的存储资源的访问权限;第二服务器,用于根据主服务 器的指示向存储服务器申请注册;主服务器,还用于在确定第二服务器申请注册完成后启 动第二虚拟机,并在启动第二虚拟机时向存储服务器抢占第二虚拟机能够单独访问存储资 源的访问权限。
在一种可能的设计中,主服务器用于:向第二服务器发送第一指示信息,第一指示 信息用于指示第二服务器向第一虚拟机对应的存储服务器申请注册,使第二虚拟机获得第 一虚拟机对应的存储资源的访问权限;第二服务器用于:在接收到主服务器发送的第一指 示信息时,向第一虚拟机对应的存储服务器申请注册;存储服务器用于:为第二虚拟机分配 存储资源,且第二虚拟机分配的存储资源为第一虚拟机对应的存储资源。
在一种可能的设计中,主服务器用于:在启动第二虚拟机时,向第二服务器发送第 二指示信息,第二指示信息用于指示第二服务器向存储服务器发送抢占终止命令,抢占终 止命令携带存储资源的存储地址,抢占终止命令用于使存储服务器为第二虚拟机抢占第二 虚拟机能够单独访问存储资源的访问权限;第二服务器用于:在接收到主服务器发送的第 二指示信息时,向存储服务器发送抢占终止命令;存储服务器用于:在接收到第二服务器发 送的抢占终止命令时,为第二虚拟机设置第二虚拟机能够单独访问存储资源的访问权限, 以终止除第二虚拟机以外的其它虚拟机访问存储资源的访问权限。
又一方面,本申请实施例提供了一种计算机存储介质,用于储存为上述主服务器 所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
又一方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机 上运行时,使得计算机执行上述各方面所述的方法。
本申请实施例提供一种虚拟机的管理方法和服务器,若主服务器确定第一虚拟机 无法正常工作,则创建第二虚拟机,第二虚拟机为用于替代第一虚拟机的灾备虚拟机,第一 虚拟机所属的第一服务器与第二虚拟机所属的第二服务器不同;主服务器指示第二服务器 向第一虚拟机对应的存储服务器申请注册,使第二虚拟机获得第一虚拟机对应的存储资源 的访问权限;主服务器启动第二虚拟机,并在启动第二虚拟机时向存储服务器抢占第二虚 拟机能够单独访问存储资源的访问权限。这样,在第一虚拟机所属的服务器与主服务器之 间的管理平面以及第一虚拟机所属的服务器与存储集之间的存储平面出现故障,导致第 一虚拟机无法正常工作时,在创建了与第一虚拟机相同规格的第二虚拟机后,对于存储平 面后又恢复正常的情况,如果第一虚拟机未被及时删除,第一虚拟机和第二虚拟机可能同 时访问第一虚拟机对应的存储资源,由于本申请也将第一虚拟机对应的存储资源的访问权 限也开放给了第二虚拟机,且在第二虚拟机启动过程中抢占了该存储资源被第二虚拟机单 独访问的权限,那么即使第一虚拟机也访问该存储资源时,不被该存储资源的存储服务器 响应,从而避免了第一虚拟机和第二虚拟机同时访问该存储资源时出现的脑裂问题。
图1为本申请实施例提供的一种虚拟化结构的原理示意图;
图2为本申请实施例提供的一种网络架构的示意图;
图3为本申请实施例提供的一种虚拟机的管理方法的流程示意图;
图4为本申请实施例提供的一种虚拟机的管理方法的信号交互图;
图5为本申请实施例提供的一种主服务器的结构示意图;
图6为本申请实施例提供的一种主服务器的结构示意图;
图7为本申请实施例提供的一种主服务器的结构示意图。
本申请实施例可以用于在虚拟化场景下,为虚拟机分配存储资源,使得虚拟机获 得存储资源的访问权限的过程。
为了便于理解,示例地给出了部分与本申请相关概念的说明以供参考。如下所示:
VRM:位于服务器集的主服务器中,可以实现对VM的管理,管理虚拟化资源,包括 VM所需要的计算资源、存储资源以及网络资源等,能够通过既定的规则来限定VM对资源的 访问。
HA:VRM检测到管理平面、或存储平面、或服务器重启或其他原因导致当前VM无法 正常工作时,VRM可以选择在新的服务器上启动相同规格的VM,实现VM的高可靠性。
存储平面:存储资源所使用的网络区域,网络区域可以理解为网段。
管理平面:管理虚拟化资源所使用的网络区域。
小型计算机接口(Small Computer System Interface,SCSI):一种用于计算机和 智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。SCSI是 一种智能的通用接口标准。在SCSI母线上可以连接主机适配器和八个SCSI外设控制器,外 设可以包括磁盘、磁带、可擦写光盘驱动器、打印机、扫描仪和通讯设备等。SCSI可以包括多 种类型,例如SCSI-1、SCSI-2以及SCSI-3等。
SCSI-3,也可以称为UItraSCSI,为一种协议,其数据传输率可以达到20MB/s,同步 传输频率可以达到20MB/s,数据传输率高。SCSI-3具备68针的接口,主要应用在硬盘上。 SCSI-3的典型特点是将总线频率大大地提高,并降低信号的干扰,以此来增强其稳定性。
客户操作系统(Guest Operate System,Guest OS),是指一个安装在虚拟机上的 操作系统。在虚拟化场景中,一台电脑可以同时运行多个操作系统,并且客户操作系统可以 和主机操作系统不同。
本申请的网络架构可以如图2所示,包括服务器集和存储集,服务器集中可 以包括多台服务器,每台服务器中可以运行多个VM。建立服务器集主要是考虑到,在虚拟 化技术中,一台服务器上可以设置有多种操作系统,以适应用户复杂和多样化的需求。但是 多种系统整合在一台服务器中,会面临一个问题,即一旦服务器出现硬件故障,其上运行的 多个VM将会停止运行,因此,可以利用服务器集来管理VM,其中一台主服务器可以管理多 台服务器,例如图2中的服务器20,可以管理服务器集中其余的服务器21、服务器22以及 服务器23。在每台服务器上可以运行多个VM。服务器集可以实现任一台服务器上运行的 VM无法正常共工作时,可以主动将VM从一个服务器迁移到另外一个服务器,即在另外一个 服务器上启动相同规格的VM,以实现VM的高可靠性。存储集也可以包括多台服务器,每台 服务器中包括多个磁盘用于资源存储,以实现VM存储资源的集存储。集存储是通过将 数据分布到集中各节点的存储方式,并提供统一的使用接口与界面,用户可以方便地对 所有数据进行统一使用与管理。
其中,服务器集中的服务器上运行的VM可以在存储集中被分配有相应的存储 空间,任一VM的存储资源可以包括存储集中一个或多个存储服务器上的磁盘,在本申请 中,VM1对应的存储资源可以为记为卷(Volumes)-VM1,VM2对应的存储资源可以为记为 Volumes-VM2,VM3对应的存储资源可以为记为Volumes-VM3等。
示例性的,当管理平面和存储平面均故障时,VM1无法正常工作,VRM启动灾备虚拟 机VM1-HA。在VM1-HA创建成功后,如果存储平面恢复正常且管理平面仍然处于故障状态, VM1可能没有被及时删除,就会出现VM1和VM1-HA同时读写相同存储资源的情况,产生VM脑 裂问题。
本申请为了避免出现虚拟机脑裂的问题,即避免两个虚拟机同时访问一个虚拟机 对应的Volumes的问题,通过运用对存储资源的申请注册和抢占,例如通过运用SCSI- 3persistent reservations机制实现对储资源的申请注册和抢占,可以确保分配给一个VM 的Volumes在同一时间只有一个VM占用,从而解决虚拟机脑裂的问题。下面对本申请的方案 具体进行说明。
本申请提供一种虚拟机的管理方法,如图3所示,该方法可以包括:
301、若主服务器确定第一虚拟机无法正常工作,则创建第二虚拟机,第一虚拟机 所属的第一服务器与第二虚拟机所属的第二服务器不同。
这里可能由于管理平面、存储平面或服务器重启等种种原因导致主服务器确定第 一虚拟机无法正常工作,检测不到第一虚拟机的状态,这时可以按照预设的方法选定第二 服务器,在第二服务器上创建与第一虚拟机相同规格的第二虚拟机,第二虚拟机为用于替 代第一虚拟机的灾备虚拟机,可以使得用户不感知虚拟机所在的故障,实现虚拟机的HA。
302、主服务器指示第二服务器向第一虚拟机对应的存储服务器申请注册,使第二 虚拟机获得第一虚拟机对应的存储资源的访问权限。
由于主服务器在创建第一虚拟机时为第一虚拟机申请了存储资源,该存储资源位 于存储集的某一个或多个存储服务器的磁盘上,如果按照第一虚拟机的规格创建了第二 虚拟机,为了使得虚拟机业务不中断,需要将第一虚拟机的存储资源也开放给第二虚拟机, 使得第二虚拟机获得第一虚拟机的存储资源的访问权限。
303、主服务器启动第二虚拟机,并在启动第二虚拟机时向存储服务器抢占第二虚 拟机能够单独访问存储资源的访问权限。
如果由于管理平面和存储平面均故障导致主服务器确定第一虚拟机无法正常工 作,那么在将第一虚拟机的存储资源的访问权限开放给第二虚拟机后,一旦第二虚拟机启 动,存储平面有可能又恢复正常,但是管理平面还处于故障状态使得第一虚拟机不能及时 被删除,可能出现第一虚拟机和第二虚拟机同时访问该存储资源,造成存储资源中的数据 破坏,出现虚拟机脑裂,因此,在第二虚拟机启动过程中,可以向存储服务器抢占第二虚拟 机能够单独访问存储资源的访问权限,这样即使第一虚拟机也访问该存储资源,但是该访 问不被存储服务器响应,从而避免虚拟机脑裂问题。
下面对本申请实施例进一步进行说明。
本申请提供一种虚拟机的管理方法,如图4所示,该方法可以包括:
401、主服务器创建第一虚拟机。
该主服务器可以相当于图1中的服务器0,也以相当于图2中的服务器20。该主服务 器中的VRM可以按照一定的计算规则,在服务器集中的其他服务器上创建VM,一台服务器 上可以创建至少一个VM。创建VM可以通过主服务器中的VRM实现。
下面以第一虚拟机为VM1进行说明,并假设VM1创建于第一服务器,例如服务器21 上。
402、主服务器指示第一服务器为第一虚拟机申请存储资源。
主服务器可以通过VRM指示服务器21可以向存储集发送资源请求,该资源请求 用于请求存储集为服务器21中的VM1分配存储资源。
403、存储服务器向第一服务器反馈第一虚拟机的存储资源。
将VM1的存储资源记为Volumes-VM1,例如所分配的Volumes-VM1为存储集中的 存储服务器31中的某几个磁盘,存储服务器31可以将磁盘的SCSI标识(Identity,ID)反馈 给VM1所在的服务器21。
404、第一服务器将第一虚拟机的存储资源反馈给主服务器。
服务器21可以将分配的存储资源的磁盘对应的SCSI ID反馈给主服务器,以便主 服务器获知为VM1分配的存储资源,将该VM1与SCSI ID的对应关系存入数据库中,当VM1需 要读写数据时,VRM可以根据该对应关系对Volumes-VM1进行读写。
405、主服务器指示第一服务器向存储服务器申请注册,使第一虚拟机获得访问存 储资源的访问权限。
主服务器20可以向服务器21发送指示信息,指示信息中包括VM1的标识,指示服务 器21向存储服务器30申请注册VM1访问Volumes-VM1的权限。服务器21可以通过SCSI- 3persistent reservations机制,即通过SCSI-3协议中的persistent reservations机制, 向VM1的存储资源所在的存储服务器31申请注册,以使得存储服务器31对VM1的存储资源 Volumes-VM1进行标记,也可以理解为将Volumes-VM1对VM1进行锁定。
SCSI-3persistent reservations机制可以理解为SCSI锁。这是由于存储集相 当于一个共享存储,在共享存储下,多台服务器可能会同时访问同一台存储服务器,如果此 时多台服务器在同一时间对一个磁盘进行写操作,那么该磁盘将会不知道哪个数据先写, 哪个数据后写,发生脑裂。为了防止这种情况发生而导致数据损坏,于是可通过该机制来进 行SCSI锁的操作。如果一台服务器针对存储集的一个磁盘使用了该机制,该磁盘对于其 他服务器就处于锁定状态。如果有其他服务器给已经给锁定的磁盘发送读写请求,则会接 收到报错信息。如果有服务器崩溃,或者其他服务器给磁盘发送解除命令,例如break reservation命令或者reset target命令,可以用于解除SCSI锁。而后,如果另一服务器向 存储集发送访问请求之前需要重新通过SCSI-3Persistent Reservation机制锁定该磁 盘。
406、主服务器为第一虚拟机申请第一计算资源、第一网络资源以及其他资源。
服务器20通过VRM在为VM1向存储集申请存储资源时,还需要向VM1所在的服务 器21为VM1申请第一计算资源、第一网络资源以及其他资源。第一计算资源可以包括VM1运 行时所需的中央处理器(Central Processing Unit,CPU)资源、内存(memory)以及输入/输 出(Input/Output,I/O)端口等硬件资源,第一网络资源可以包括VM1运行时所需的网卡以 及交换机等相关的硬件资源,其他资源可以包括图像处理器(Graphics Processing Unit, GPU)资源以及通用串行总线(Universal Serial Bus,USB)等资源。
服务器20在为VM1申请完所需的资源后,便可以启动该VM1。VM1在运行时,可以对 锁定的磁盘进行读写。
407、主服务器启动第一虚拟机。
408、若主服务器确定第一虚拟机无法正常工作,则创建第二虚拟机,第一虚拟机 所属的服务器与第二虚拟机所属的服务器不同。
服务器20可以通过VRM周期性地查询VM1的工作状态,若服务器20中的VRM检测到 VM1无法正常工作,则可以通过HA性能选取另一服务器,在另一服务器上创建与VM1相同规 格的第二虚拟机VM1-HA,假设VM1创建在服务器21上,VM1-HA创建在第二服务器,例如服务 器23上。
导致服务器20通过VRM检测到VM1无法正常工作可能的原因可以有多种,例如,服 务器20通过VRM检测到服务器20与VM1之间的管理平面出现故障,例如服务器20与VM1之间 的网段出现问题,比如网卡或操作系统故障,服务器20接收不到VM1发送的信息;或者,服务 器20通过VRM检测到VM1的存储平面出现故障,例如VM1与存储集之间,VM1用于访问存储 集的网段出现故障,比如VM1与存储集之间交换机故障,使得VM1不能正常对锁定的磁 盘进行读写;或者,服务器20通过VRM检测到VM1所属的服务器21宕机后重启等。
409、主服务器向第二服务器发送第一指示信息,第一指示信息用于指示第二服务 器向第一虚拟机对应的存储服务器申请注册第二虚拟机访问存储资源的访问权限。
服务器20通过VRM向服务器23发送第一指示信息,第一指示信息中包括VM1的标识 和VM1-HA的标识,第一指示信息用于指示服务器23向VM1对应的存储服务器31申请注册,即 通过SCSI-3persistent reservations机制,指示存储服务器31为VM1-HA分配存储资源,且 VM1-HA分配的存储资源为VM1对应的存储资源,使VM1-HA获得VM1对应的存储资源的访问权 限。
410、第二服务器向存储服务器申请注册第二虚拟机访问存储资源的访问权限。
服务器23向VM1对应的存储服务器31申请注册,用于申请注册的注册消息中可以 包括用于申请注册的指示、控制信息以及VM1的标识和VM1-HA的标识等,该控制信息表征可 对volumes-VM1进行只读、或只写或读写等。例如按照上述SCSI-3persistent reservations机制,使VM1-HA获得VM1对应的存储资源的访问权限。存储服务器31将VM1对 应的volumes-VM1也分配给VM1-HA使用,使得VM1-HA获得volumes-VM1的访问权限。
对于存储服务器31来说,存储服务器31在接收到包括VM1的标识和VM1-HA的标识 时,由于存储集中已经给VM1分配了volumes-VM1的存储资源,存储服务器31可以将该 volumes-VM1分配给VM1-HA,例如存储服务器31标记volumes-VM1可被VM1-HA访问,使得 VM1-HA获得volumes-VM1的访问权限。
411、主服务器为第二虚拟机申请第二计算资源、第二网络资源以及其他资源。
服务器20在为VM1-HA申请存储资源的同时,也需要为VM1-HA向服务器23申请第二 计算资源、第二网络资源以及其他资源。如上所述,第二计算资源可以包括VM1-HA运行时所 需的CPU资源、内存以及I/O端口等硬件资源,第二网络资源可以包括VM1-HA运行时所需的 网卡以及交换机等相关的硬件资源,其他资源可以包括GPU资源以及USB等资源。
412、主服务器启动第二虚拟机,并在启动第二虚拟机时向存储集抢占第二虚拟 机能够单独访问存储资源的访问权限。
假设之前导致VM1无法正常工作是由于管理平面和存储平面均故障,存储平面后 又恢复正常,那么在VM1-HA在启动后,由于管理平面故障未恢复时,服务器20中的VRM不能 及时删除VM1,有可能出现VM1和VM1-HA同时对volumes-VM1进行写入,从而出现上述脑裂问 题,为了避免该问题,在服务器20在启动VM1-HA的过程中,可以通过VRM向第二服务器,即服 务器23发送第二指示信息,第二指示信息用于指示服务器23可以向存储服务器31发送抢占 终止命令,抢占终止命令用于使存储服务器31为VM1-HA抢占VM1-HA能够单独访问volumes- VM1的访问权限,以终止除VM1-HA以外的其它虚拟机访问VM1-HA的访问权限。其中,该抢占 终止命令可以包括用于抢占存储资源的指示、volumes-VM1的地址信息以及控制信息,该控 制信息可以指示volumes-VM1只能被VM1-HA单独只读、或只写、或读写。存储服务器31在接 收到该抢占终止命令时,可以进行硬件响应,对volumes-VM1加锁,以使得volumes-VM1只能 被VM1-HA单独访问。
该抢占终止命令可以为SCSI-3preempt and abort命令,即通过SCSI-3协议向存 储服务器31发送preempt and abort命令。这样,即使VM1在存储平面恢复后向volumes-VM1 进行写入操作,由于存储服务器31已经设置volumes-VM1只能被VM1-HA访问,那么VM1的写 入操作不被响应,从而解决了VM1和VM1-HA同时对volumes-VM1进行写入操作而出现的脑裂 问题。
于是,在服务器集和存储集下,由于管理平面和存储平面故障,使得服务器集 中任一服务器上的虚拟机1无法正常工作时,可以在其他服务器中重新创建一相同规格 的虚拟机2,并将虚拟机1的存储资源的访问权限转移至虚拟机2,使得虚拟机2获得单独访 问存储资源的访问权限,以避免在虚拟机1没有被及时删除时与虚拟机2可能同时访问存储 资源出现的脑裂问题。
上述主要从各个网元之间交互的角度对本申请实施例提供的方案进行了介绍。可 以理解的是,各个网元,例如主服务器、存储服务器等为了实现上述功能,其包含了执行各 个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所 公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的 结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技 术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法 来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对主服务器进行功能模块的划分,例如,可 以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块 中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需 要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实 现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图5示出了上述实施例中所涉 及的主服务器的一种可能的结构示意图,主服务器50包括:创建单元501,指示单元502、启 动单元503以及申请单元504。创建单元501用于支持主服务器执行图4中的过程401,408,指 示单元502用于支持主服务器执行图4中的过程402、405、409,申请单元504用于支持主服务 器执行图4中的过程406、411,启动单元503于支持主服务器执行图4中的过程407以及412。 在本申请实施例中,创建单元501,可以用于若确定第一虚拟机无法正常工作,则创建第二 虚拟机,第一虚拟机所属的第一服务器与第二虚拟机所属的第二服务器不同,第二虚拟机 为用于替代第一虚拟机的灾备虚拟机;指示单元502,可以用于指示第二服务器向第一虚拟 机对应的存储服务器申请注册,使第二虚拟机获得第一虚拟机对应的存储资源的访问权 限;启动单元503,可以用于启动第二虚拟机,并在启动第二虚拟机时向存储服务器抢占第 二虚拟机能够单独访问存储资源的访问权限。
在本申请实施例中,可选的,指示单元502用于:向第二服务器发送第一指示信息, 第一指示信息用于指示第二服务器向第一虚拟机对应的存储服务器申请注册,使存储服务 器为第二虚拟机分配存储资源,且第二虚拟机分配的存储资源为第一虚拟机对应的存储资 源,使第二虚拟机获得第一虚拟机对应的存储资源的访问权限。
在本申请实施例中,可选的,启动单元503用于:在启动第二虚拟机时,主服务器向 第二服务器发送第二指示信息,第二指示信息用于指示第二服务器向存储服务器发送抢占 终止命令,抢占终止命令用于使存储服务器为第二虚拟机抢占第二虚拟机能够单独访问存 储资源的访问权限,以终止除第二虚拟机以外的其它虚拟机访问存储资源的访问权限。
在本申请实施例中,可选的,创建单元501还用于:创建第一虚拟机;指示单元402 还用于:确定第一虚拟机的存储服务器时,指示第一服务器向存储服务器申请注册,使第一 虚拟机获得访问存储资源的访问权限;启动单元503还用于:启动第一虚拟机。
在本申请实施例中,可选的,还包括申请单元504,用于:为第一虚拟机申请第一计 算资源和第一网络资源;为第二虚拟机申请第二计算资源和第二网络资源。
在采用集成的单元的情况下,图6示出了上述实施例中所涉及的主服务器的一种 可能的结构示意图。主服务器60包括:处理模块602和通信模块603。处理模块602用于对主 服务器的动作进行控制管理,例如,处理模块602用于支持主服务器执行图4中的过程401、 402、405、406、407、408、411以及412,和/或用于本文所描述的技术的其它过程。通信模块 603用于支持主服务器与其他网络实体的通信,例如与图1和图2中示出的存储集的通信。 主服务器还可以包括存储模块601,用于存储主服务器的程序代码和数据。
其中,处理模块602可以是处理器或控制器,例如可以是中央处理器(Central Processing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP), 专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列 (Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬 件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻 辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处 理器组合,DSP和微处理器的组合等等。通信模块503可以是收发器、收发电路或通信接口 等。存储模块601可以是存储器。
当处理模块602为处理器,通信模块603为收发器,存储模块601为存储器时,本申 请实施例所涉及的主服务器可以为图7所示的主服务器。
参阅图7所示,该主服务器70包括:处理器712、收发器713、存储器711以及总线 714。其中,收发器713、处理器712以及存储器711通过总线714相互连接;总线714可以是外 设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构 (Extended Industry Standard Architecture,EISA)总线等。所述总线可以分为地址总 线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总 线或一种类型的总线。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可 以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模 块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可 擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘 (CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处 理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储 介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位 于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设 备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功 能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能 存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。 计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另 一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何 可用介质。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步 详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请 的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应 包括在本申请的保护范围之内。
本文发布于:2023-04-15 04:11:29,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/3/87041.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |