管理虚拟机的装置、系统和方法 【技术领域】
本发明涉及计算机领域,更具体地说,涉及用于管理虚拟机的装置、系统和方法。
背景技术
在虚拟化环境下,在每个物理机上通过虚拟层提供多个虚拟机。典型的虚拟化架构如图1所示。虚拟层直接运行于物理层上。通过虚拟层提供了4个虚拟机,在每个虚拟机上分别运行不同的应用。虚拟机对于应用来说是不可见的。也就是说,从应用的角度来看,运行在虚拟机上和直接运行在物理机上完全一样。虚拟层对物理资源进行管理,向应用提供“模拟”的物理资源接口。由于应用所面对的“物理资源接口”都是虚拟层模拟出来的,因此在部署应用时不用考虑实际的物理资源细节,从而大大增加了部署应用的灵活性。
如果需要对承载虚拟机的物理机进行硬件维护,比如更换硬盘,增加内存等,就必须停止物理机的运转;如果要求应用不能停止运行,就需要将待停止的源物理机上的虚拟机迁移到另一台物理机即目的物理机。迁移虚拟机属于系统级操作,而硬件维护属于硬件级操作。在大型的信息管理系统中,系统级操作由系统管理员在系统控制台完成,硬件级操作由硬件工程师在机房完成。系统控制台和机房可能处于有较大时差的距离相当远的物理位置。或者为了安全考虑系统管理员只能进入系统控制台而不能进入机房,硬件工程师只能进入机房而不能进入系统控制台。在这些情况下,硬件维护流程可能包括:系统管理员进行系统级操作,将虚拟机从源物理机迁移到目的物理机;系统管理员通知硬件工程师可以开始对源物理机进行维护;硬件工程师断开源物理机的电源,进行硬件维护;硬件工程师通知系统工程师维护完毕;系统工程师将虚拟机从目的物理机迁移回源物理机。由此可见,必须要系统管理员和硬件工程师协作才能完成一次完整的硬件维护流程。这使得硬件维护的人力成本变大。此外,特别地,如果控制台和机房所处的物理位置之间有较大的时差,这一硬件维护流程可能需要以天记的时间,这削弱了系统应对突发事件的能力。
【发明内容】
有鉴于此,本发明提供了管理虚拟机的装置、系统和方法,从而简化虚拟化环境下进行硬件维护的流程。
根据本发明实施例的用于管理虚拟机的系统包括一现场管理装置,该现场管理装置通过专用物理电气连接连接到至少两台物理机,其中至少一台物理机上的虚拟机需要迁移到至少一台目的物理机,该装置包括:输入模块,用于接收外部输入;操作模块,被配置为根据通过所述输入模块的现场外部输入确定源物理机,并进一步目的物理机,以便控制迁移模块的工作;和迁移模块,被配置为将虚拟机从源物理机迁移到目的物理机。
根据本发明实施例的另一种管理虚拟机的系统特别地是刀片服务器系统和机架式服务器系统中的任意一种,该系统包括至少两台物理机,其中至少一台物理机上的虚拟机需要迁移到至少一台目的物理机;和连接到至少两台物理机的用于管理虚拟机的装置。该装置包括:输入模块,用于接收外部输入;操作模块,被配置为根据通过所述输入模块的现场外部输入确定源物理机,并进一步确定目的物理机,以便控制迁移模块的工作;和迁移模块,被配置为将虚拟机从源物理机迁移到目的物理机。
根据本发明实施例的在刀片服务器系统中管理虚拟机的方法,所述刀片服务器系统包括至少两台物理机,该方法包括:确定源物理机和目的物理机;和通过专用物理电气连接控制所述源物理机上和所述目的物理机,从而将所述源物理机上的虚拟机迁移到所述目的物理机上。
按照本发明实施例的技术方案,在复杂的信息管理系统中,硬件工程师可以在机房内自行将需要进行硬件维护的源物理机上的虚拟机迁移到目的物理机,然后对已经不对外提供服务的源物理机断电以便进行硬件维护。整个过程无需系统管理员参与。这样,可以减少维护系统硬件的人力成本,还可以更快地对系统的硬件问题作出响应。同时,由于硬件工程师只能对物理机进行虚拟机迁移,而并不能访问物理机中的任何数据,更不能访问由物理机中的虚拟机所封装地数据,从而不会降低信息管理系统的安全性。
【附图说明】
图1是典型的虚拟化架构的示意图。
图2(A)是根据本发明实施例的用于管理虚拟机的装置用于刀片服务器系统时的示意图。
图2(B)示出了包含根据本发明实施例的现场管理装置的刀片服务器系统的外观图。
图2(C)是根据本发明实施例的用于管理虚拟机的装置的框图。
图3是根据本发明实施例的用于管理虚拟机的方法的流程图。
【具体实施方式】
以下参照附图说明本发明提供的管理虚拟机的装置、系统和方法的具体实施方式。在以下描述中,一台物理机表示一个独立的计算机系统,比如刀片服务器系统中的每个刀片主机或机架式服务器系统中的每个主机。一定数目的物理机安装于一个刀片机箱(chassis)或机架(rack)中。需要强调的是,当第一元件被描述为与第二元件相连时,第一元件不仅可以直接与第二元件相连,而且还可以借助第三元件间接地与第二元件相连。进一步地,为了清楚,省略了对完全理解本发明不必要的一些元件。
根据本发明实施例的用于管理虚拟机的现场管理装置可以位于刀片服务器系统的机箱或机架式服务器的机架上,管理安装于该机箱中或该机架上的各物理机中的虚拟机。如果若干机架组成一个集群,那么所述现场管理装置也可以作为机房内的一个独立的装置,其连接到集群中的各物理机,管理该集群中各物理机中的虚拟机。
所述连接可以是专用的物理电气连接。所述物理电气连接可以独立于背板而单独存在。例如,可以用串行通信线路、通用串行总线或并行通信线路等作为物理电气连接将各物理机连接到所述现场管理装置。相应地,所述接口可以是串行线路接口,通用串行总线接口或者并行线路接口。特别地,如果该现场管理装置位于刀片服务器系统的机箱上,也可以在刀片服务器系统的背板上设置物理电气连接,并且在背板和刀片主机上设置彼此匹配的专用接口。这样,当各物理机安装到机箱中时,就能够通过该接口连接到背板上的该物理电气连接。现场管理装置也通过类似的接口连接到该物理电气连接,这样各物理机和现场管理装置就通过该物理电气连接连接起来。背板上的所述物理电气连接可以采用串行通信线路、通用串行总线和并行通信线路中的任意一种的电气标准来设置,也可以采用任何其他的电气标准来设置。在这种情况下,所述现场管理装置可以被集成在刀片服务器系统的背板上,例如由集成电路芯片和外围模块实现。可以采用适合于短距离通信的电气标准来设置所述专用物理电气连接,这是因为这样实现的专用物理电气连接以及其上所承载的数据连接通常比较简单,易于实现,而且足以满足硬件工程师在机房现场进行操作的需要。
作为替换,也可以通过通用的网络线路将各物理机连接到现场管理装置。此时物理机和现场管理装置只需要包括通用的网卡即可。再一次,对于刀片服务器系统,所述通用网络线路优选地位于刀片服务器系统的机箱内部,例如位于该刀片服务器系统的背板上。对于机架式服务器系统,所述通用网络线路也优选地位于该机架式服务器器系统的机架内部。
显然,所述现场管理装置必然连接到至少两台物理机。本领域技术人员可以理解,所述连接到至少两台物理机并不表示同时连接到至少两台物理机。
图2(A)示出了根据本发明实施例的现场管理装置用于刀片服务器系统时的示意图。
图2(B)示出了包含根据本发明实施例的现场管理装置的刀片服务器系统的外观图。
图2(C)示出了根据本发明实施例的现场管理装置200的方框图,该装置包括获取模块201、操作模块202、指示模块203、迁移模块204和输入模块205。
获取模块201,用于获取所连接的物理机上与虚拟机有关的状态参数。所述状态参数例如该物理机上有多少个虚拟机,该物理机当前的负载率是多少,每个虚拟机分配了多少物理资源等等。
如上所述,所述现场管理装置200连接到各物理机,而连接的方式有多种,因此获取模块201可以通过多种手段从物理机获取与该物理机上与虚拟机有关的状态参数。本领域技术人员在确定将以上任意一种连接方式作为所述现场管理装置到所述各物理机之间的物理电气连接后,可以很容易地设计出满足不同需要的通信协议,来实现现场管理装置和物理机之间的数据连接。
一般来说,物理机上的虚拟层提供应用服务供外部装置调用以便与物理机建立数据连接。在建立了数据连接之后,现场管理装置相当于终端,而物理机上相当于服务器。一种最常用的应用服务就是通过由网卡和网线等组成的通用网络线路提供与外部装置之间的数据连接。在该装置通过网线与物理机相连的情况下,可以将所连接的各物理机的IP地址预先存放在该装置中。对应于每个IP地址,即对应于每台物理机,可以进一步存放相应的用户名、密码以及端口号等。这样,该现场管理装置通过IP地址、用户名、密码以及端口号就可以调用该应用服务从而建立数据连接。现场管理装置利用该数据连接经由网线向物理机发送查询所述状态参数的命令,物理机上的虚拟层通过网卡接收到该命令,则再次经由网线将所述状态参数发送给现场管理装置200。
又例如,该装置通过专用的线路连接到物理机上的专用接口,经由专用物理电气连接向物理机发送查询所述状态参数的命令,物理机上的虚拟层通过该专用接口接收到该命令,则再次经由该专用物理电气连接将所述状态参数发送给现场管理装置200。特别地,在采用串行通信线路作为物理电气连接的情况下,所述现场管理装置和物理机之间可以通过远程登录协议(telnet)建立数据连接。这是因为,一般的物理机均配置有管理卡,该管理卡包括串口。相应地,物理机上的虚拟层通过该管理卡上的串口提供远程登录的应用服务。现场管理装置通过远程登录协议登录到该物理机上之后,相当于在该物理机的本地操作物理机,自然可以获得该物理机上的所述状态参数。由于串行通信线路的通信距离受到限制,因此在采用串行通信线路作为物理电气连接的情况下,所述现场管理装置优选地只连接到刀片服务器系统内部的各物理机或机架式服务器系统内部的各物理机。
对于以其他物理电气连接,例如通用串行总线、并行通信线路或者刀片服务器系统背板上专门设置的物理电气连接,将物理机和所述现场管理装置连接起来的情况,需要在物理机的虚拟层中加入相应的驱动程序,以便虚拟层可以响应和处理通过对应的接口收到的命令或数据。本领域技术人员可以很容易地设计出所述驱动程序,因此在此不再赘述。
获取模块201可以定期地获取物理机的状态参数,也可以根据从操作模块202接收到的获取指令来获取物理机的所述状态参数。一般来说,可以获取现场管理装置200所连接的所有物理机的状态参数;在所述获取指令的指令格式支持指定物理机的情况下,也可以根据所述获取指令获取一部分物理机的状态参数。
所述获取模块201所获取的状态参数发送给操作模块202。
操作模块202,用于根据所述状态参数控制指示模块的工作,并且确定源物理机和目的物理机以控制迁移模块的工作。
操作模块202基于现场输入确定源物理机,所述现场外部输入即硬件工程师在机房内通过位于该现场管理装置外壳上的输入模块205的输入。可以提供任意类型的输入接口作为所述输入模块205,例如鼠标、键盘、触摸屏等,以便接收硬件工程师的输入。作为替换地,如果所述现场管理装置被实现为刀片服务器系统背板上的芯片和外围模块,则所述外壳指的是刀片服务器系统的机箱,输入模块作为外围模块之一位于刀片服务器系统的机箱上。
在一个实施例中,由操作模块202接收硬件工程师对源物理机和目的物理机的指定,则操作模块202控制指示模块203显示所述状态参数以便硬件工程师可以根据所述状态参数决定目的物理机;操作模块202进一步接收对目的物理机的指定。在确定了源物理机和目的物理机之后,操作模块202向迁移模块204发送迁移指令,所述迁移指令包括源物理机标识、虚拟机标识及与该虚拟机对应的目的物理机标识。需要说明的是,对目的物理机的指定可以是针对源物理机上的所有虚拟机的,这种特殊情况下所述迁移指令可以仅包括源物理机标识和目的物理机标识。
在另一个实施例中,硬件工程师仅指定源物理机,现场管理装置200自行决定目的物理机。操作模块202根据所述状态参数决定目的物理机,并且向迁移模块204发送包括源物理机标识、虚拟机标识及与该虚拟机对应的目的物理机标识的迁移指令。同样,操作模块202所决定的目的物理机可能对源物理机上的所有虚拟机均相同,这种特殊情况下所述迁移指令可以仅包括源物理机标识和目的物理机标识。
需要说明的是,无论所述现场管理装置通过何种方式与物理机建立数据连接,硬件工程师仅仅能通过操作模块进行指定源物理机和/或目的物理机,而不能进行其他操作。这是因为,从数据安全的角度考虑,硬件工程师不应该能够通过所述现场管理装置访问物理机上的数据。这可以通过采用命令过滤技术让操作模块204仅接受对源物理机和/或目的物理机的指定,而不接受其他任何命令来实现。
指示模块203,用于在操作模块202的控制下指示源物理机上的虚拟机是否已经全部迁移。
在由硬件工程师指定目的物理机的实施例中,所述指示模块203显示获取模块201所获取的状态参数。如上所述,状态参数包括源物理机上有多少个虚拟机,因此通过显示状态参数自然就可以指示源物理机上的虚拟机是否已经全部迁移到其他物理机。在本实施例中,指示模块203可以包括小块的显示屏,用于显示所连接的各物理机中与虚拟机有关的状态参数,以便硬件工程师可以根据这些状态参数决定如何将源物理机上的虚拟机迁移到目的物理机。该显示屏由操作模块202根据所述状态参数控制。
在现场管理装置200自行决定目的物理机的实施例中。所述指示模块203可以只包括简单的指示器例如发光二极管或者发声元件,用于告知硬件工程师源物理机上的虚拟机已经全部迁移,可以对源物理机进行硬件维护。该指示器也由操作模块202根据所述状态参数控制。
当然,为了进一步简单起见,可以不提供指示模块。硬件工程师根据经验,在等待足够长时间后将该物理机断电以便进行硬件维护。此时,如果由硬件工程师指定源物理机和目的物理机,那么可以进一步省略获取模块。作为对所述指示模块的替代,可以增加自动断电模块,操作模块202控制该自动断电模块的方式与控制上述指示器的方式类似。
指示模块位于所述现场管理装置的外壳上。作为替换地,如果所述现场管理装置被实现为刀片服务器系统背板上的芯片和外围模块,则所述外壳指的是刀片服务器系统的机箱,指示模块作为外围模块之一位于刀片服务器系统的机箱上。
迁移模块204,用于在操作模块202的控制下将虚拟机从源物理机迁移到目的物理机。
如上所述,现场管理装置200通过通用网络线路或专用物理电气连接连接到各物理机,迁移模块204通过该通用网络线路或专用物理电气连接,分别与源物理机和目的物理机上的虚拟层通信,从而完成虚拟机的迁移。这种实现方法的优点是现场管理装置可以完全掌握迁移过程从而掌握迁移何时完成;缺点是需要现场管理装置有比较强的处理能力。
在一个实施例中,物理机上的虚拟层之间可以彼此通信自行完成虚拟机迁移。在这种情况下,迁移模块204根据所述迁移指令,将目标物理机的标识发送给源物理机,由源物理机的虚拟层直接与目的物理机通信开始虚拟机迁移。这种实现方法的优点是现场管理装置只负责启动迁移,对处理能力的要求较低;缺点是现场管理装置需要通过对所述状态参数的获取来确定迁移是否完成。
无论是以上哪种情况,由于该迁移只涉及到虚拟层,因此各虚拟机上的应用不会发现进行了虚拟机迁移,从而保持连续的运行。源物理机和目的物理机之间的数据交换可以通过上述专用物理电气连接或通用网络线路进行。
除了以上模块以外,所述现场管理装置200还可以具备验证模块,该模块被配置为验证当前操作者是否有权执行虚拟机迁移。如上所述,由于现场管理装置200位于机房内,而机房本身往往已经有相应的验证装置,因此现场管理装置200可以不用再次进行验证,从而省略所述验证模块。
图3是根据本发明实施例的用于管理虚拟机的方法的流程图。
步骤301,现场管理装置通过从外部接收对源物理机的指定来确定源物理机。
在步骤301之前,可以进一步包括验证当前操作者是否有权执行虚拟机迁移的步骤,只有在验证结果为是时,才进行步骤301。
步骤302,现场管理装置获取各物理机上与虚拟机有关的状态参数。
步骤303,现场管理装置确定目的物理机,并且将源物理机上的虚拟机迁移到目的物理机。
可以通过接收对目的物理机的指定来确定目的物理机标识,也可以是根据所述状态参数确定目的物理机。以下详细描述根据所述状态参数确定目的物理机的过程。
首先从现场管理装置所管理的所有物理机中除了源物理机以外的其他物理机中选择一部分物理机作为候选目的物理机。例如,在现场管理装置位于机架上的情况下,从机架中除了源物理机以外的其他物理机中选择一部分作为候选目的物理机。之所以要先进行候选目的物理机的选择,是因为目的物理机在接收虚拟机时需要消耗比较大的计算和存储资源,如果一台物理机的当前负载率过高,则原则上来讲不适于作为目的物理机。可以根据步骤302中所获取的状态参数,判断某台物理机的当前负载率是否低于第一阈值。如果某台物理机的当前负载率低于第一阈值,则将该物理机作为候选目的物理机。但是由于物理机负载率是随着时间变化的,因此当前负载率并非选择目的物理机的决定因素。在现场管理装置所管理的物理机较少的情况下,可以不用考虑当前的物理机负载率,或者说除源物理机以外的其他物理机均为候选目的物理机,即本步骤是可以省略的。
在确定了候选目的物理机之后,根据步骤302中所获取的状态参数,判断任意一台候选目的物理机是否能够向源物理机上的任意一个虚拟机提供足够多的资源。如上所述,状态参数包括向虚拟机分配了多少硬件资源。现场管理装置通过来自源物理机的状态参数,可以确定源物理机上为各待迁移虚拟机分配了多少硬件资源;现场管理装置还可以通过某候选目的物理机的状态参数确定当前候选目的物理机上已经存在的虚拟机已经占用了多少硬件资源,从而确定该候选目的物理机上是否有足够多的剩余硬件资源分配给当前待迁移虚拟机。如果该候选目的物理机能够向该虚拟机提供足够的硬件资源,则将该候选目的物理机作为实际的目的物理机,将该虚拟机迁移到该目的物理机上。
在候选物理机数量较大的情况下,现场管理装置可以采取不同的策略来优化虚拟机的迁移。比如说,综合考虑各待迁移虚拟机所要求占用的资源和各候选目的物理机上已经被占用的资源,让迁移完成后各目的物理机上的资源占用比例比较均衡。又比如说,首先选择已经被占用的资源比例最小的候选目的物理机作为实际的目的物理机,并且向该目的物理机上迁移尽可能多的虚拟机,直到所剩余的硬件资源不足够分配给源物理机上任意一个剩余的虚拟机为止。
步骤304,现场管理装置指示源物理机上的虚拟机已经迁移完毕,可以对源物理机进行硬件维护。
虽然已经图示和描述了本发明的若干示例性实施例,不过本领域技术人员可以理解的是,在不偏离本发明原则和精神的前提下,可以对这些实施例进行改变,本发明的范围由权利要求书及其等价变换所限定。