计算机系统和虚拟机迁移方法

文档序号:6350537阅读:248来源:国知局
专利名称:计算机系统和虚拟机迁移方法
技术领域
本发明涉及计算机系统和虚拟机的迁移方法,更具体地说,涉及一种计算机系统, 其在实施网络环境和IT环境的整合管理时可能进行虚拟机的迁移。
背景技术
在最近几年,通过运行在单物理服务器中的多个虚拟机,使得更灵活的系统配置变得可能。在这种系统中,系统负荷分配、故障避免等等可通过迁移技术来实现,该迁移技术中不需要停止运行的虚拟机,运行的虚拟机可被迁移到另外一物理服务器和一内存区域。作为迁移技术,已知的有例如W02005/083569(专利文献1),JP2009-146106A(专利文献2、,JP2004-78465A (专利文献3)。专利文献1揭示一网络系统,其提供了一连接控制器和运行服务器的交换控制器,将连接目的地从包含主服务器的目标网络切换到包含备份服务器的切换目的地目标网络。在这种配置中,在专利文献1中揭示的系统可能实施迁移操作而没有对用户的服务停止和通信的重设。专利文献2揭示一存储系统,在该存储系统中,通过切换作为虚拟端口的附加目的地的物理端口到另外一物理端口,并且基于切换目的地的物理端口的标识数据更新交换机单元的路由表,来改变到相同存储器的接入路由。专利文献3揭示一技术,在该技术在进程迁移处理中的迁移对象进程的停止时间被减少。在一计算机系统中,其中多个计算机通过一个网络连接,通常单独地需要管理网络的网络管理者和管理计算机的IT (信息技术)管理者。IT管理者考虑到在计算机侧的负载(例如CPU和内存的使用率),但是没有考虑到在网络侧的负载,来实施虚拟机的迁移。 当迁移虚拟机的内存映像时,有一种情况是数据的传输通过网络来进行。在这个时期,不考虑在网络侧的内存映像的迁移,对虚拟机的访问继续着。所以担心出现随虚拟机的迁移而出现的流量会阻碍迁移对象虚拟机和另一虚拟机的通信。引用列表[专利文献 l]W02005/083569[专利文献 2] JP2OO9-H6IO6A
[专利文献 3] JP2004-78465A

发明内容
以这种方式,因为计算机系统在网络侧和IT侧被独立地管理,所以虚拟机迁移的设置在网络侧和IT侧被单独地实施。但是,为了执行虚拟机的迁移,考虑到在网络侧和 IT(计算机)侧的影响,需要实施在网络侧和IT侧的集成管理。本发明的一个目的是提供一计算机系统,其中虚拟机的迁移可以通过集成地控制网络侧和计算机侧而实施。为了得到上述的目的,本发明使用下述的方案。本发明的计算机系统提供有VM管理装置、Openflow控制器和交换机。VM管理装置被配置为指令运行在物理服务器上的虚拟机迁移到管理所述虚拟机的虚拟机监控器和迁移目的地虚拟机监控器。当来自迁移已经完成的虚拟机的分组数据与设置到该交换机中的流所示的规则不相适应时,交换机向OpenFlow控制器通告包含在分组数据中的MAC地址。OpenFlow控制器设置用于迁移目的地VM的通信流,该通信流是根据向交换机通告的 MAC地址生成的。交换机基于用于迁移目的地VM的通信流所示的行动,传输遵循用于所述迁移目的地VM的通信流所示出的规则的所述虚拟机的分组数据到迁移目的地虚拟机。本发明的虚拟机迁移方法包括VM管理装置指令运行在物理服务器上的虚拟机迁移到管理所述虚拟机的虚拟机监控器和迁移目的地虚拟机监控器;当来自迁移已经完成的虚拟机的分组数据与设置到交换机中的流所示的规则不相适应时,向OpenFlow控制器通告分组数据的MAC地址;OpenFlow控制器设置用于迁移目的地VM的通信流到交换机,该通信流根据通告到所述交换机的MAC地址而生成;所述交换机根据用于迁移目的地VM的通信流所示的行动,传输遵循用于所述迁移目的地VM的通信流所示出的规则的所述虚拟机的分组数据到迁移目的地虚拟机。如上所述,根据本发明,通过设置根据所接收的第一个分组的MAC地址的流到交换机,与迁移对象虚拟机的通信可以被切换到迁移目的地虚拟机。通过至少设置虚拟机的迁移目的地到虚拟机管理装置,可以对虚拟机的内存映像的传输和与迁移目的地虚拟机的通信进行切换。而且,在本发明中,因为交换机目的地的切换是通过OpenFlow控制器设置的流来实施的,所以从网络侧来看伴随着虚拟机的迁移,虚拟机停止的时间可以被减少。根据本发明,虚拟机的迁移可以通过集成控制网络侧和像源的计算机侧来进行。而且,可减少在虚拟机的迁移中的分组损失。


结合附图,依据示范性实施例的描述,本发明的目的、效果和特征将变得更加清楚图1为示出了依据本发明的第一和第二示范性实施例的计算机系统结构的图。图2为示出了本发明的虚拟机管理装置的结构的图。图3为示出了本发明的OpenFlow控制器的结构的图。图4为示出了本发明的OpenFlow控制器中流表的结构例子的图。图5为示出了本发明的OpenFlow控制器中拓扑数据的例子的图。图6为示出了本发明的OpenFlow控制器中通信路由数据的例子的图。图7为示出了依据本发明的OpenFlow交换机的结构的图。图8为示出了本发明的交换机中流表的例子的图。图9为示出了依据本发明的OpenFlow控制的图。图10为示出了第一示范性实施例中虚拟机在迁移操作中的准备流程的序列图。图11为示出了第一和第二示范性实施例中虚拟机在迁移操作中的内存映像传输流程的序列图。
图12为示出了第一示范性实施例中虚拟机在迁移操作中的访问目的地改变流程的序列图。图13为示出了第二示范性实施例中虚拟机在迁移操作中的准备流程的序列图。图14为示出了第二示范性实施例中虚拟机在迁移操作中的访问目的地改变流程的序列图。图15为示出了依据本发明第三示范性实施例的计算机系统的结构的图。图16为示出了第三示范性实施例中虚拟机在迁移操作中的访问目的地改变流程的序列图。图17为示出了依据本发明第四示范性实施例的计算机系统的结构的图。
具体实施例方式在下文中,将参照附图,描述本发明的示范性实施例。在附图中,相同和相似的参考数字表示相同和相似的组件。第一示范性实施例计算机系统的结构参考图1-图9,将描述根据本发明第一示范性实施例的计算机系统的结构。图 1为示出根据本发明第一和第二示范性实施例的计算机系统的结构的方块图。本发明的计算机系统提供有一集成管理装置1、虚拟机管理装置2(下文中称为VM管理装置2)、 OpenFlow (开流)控制器3 (下文中称为0FC3)、交换机组4 (下文中称为OpenFlow交换机 (OFS)组4)、物理服务器5和6和例如共享磁盘的存储单元7。物理服务器5和6通过具有至少一个OpenFlow交换机的OFS组4相互地连接。而且,物理服务器5和6通过OFS组4,与例如因特网的外部网络8相连接。要注意的是,在本示范性实施例中,两个物理服务器5和6被描述了,但是物理服务器的数量不限于是两个。物理服务器5和6是计算机,各个计算机提供了 CPU和RAM,并运行存储在物理服务器5和6中或者在存储单元7中相互分开存储的程序。所以,实现了至少一个虚拟机。详细来说,物理服务器5提供有虚拟机IOl-IOn (其中η为自然数),这些虚拟机通过逻辑地或者物理地划分CPU(未示出)和存储单元7的使用区域来实现。或者,通过使用运行在客户操作系统(GOS)上软件程序或者运行在于主机操作系统上模拟的GOS中的软件程序,可实现虚拟机101到IOn。虚拟机101到IOn通过虚拟机监控器10 (在下文中,称为VMM)而被管理,其中虚拟机监控器10通过使用CPU(未示出)执行存储在存储单元7中的程序来实现。物理服务器6提供有至少一个虚拟机201到20m(m为自然数),像物理服务器5那样, 这些虚拟机201到20m由VMM20来管理。需要由虚拟机101到10η,201到20m所使用的磁盘映像(内存映像)被存储在共享的磁盘中。例如,所述共享磁盘被描述为磁盘阵列、NAS(网络附属存储)和数据库服务器,等等,它们通过FC (光纤通道)和以太(注册商标)网络连接一种使用VMM10管理虚拟机101到IOn的方法,和一种使用VMM20管理虚拟机201 到20m的方法是与常规现有技术相同的。例如,VMM10管理由虚拟机101到IOn所使用内存映像,VMM20管理由虚拟机201到20m所使用内存映像。虚拟机101到IOn中的每个虚拟机,经物理NIC (未示出)和由VMM10管理的虚拟交换机11,发送数据到另一单元并接收来自另一单元(例如,外部网络8中的计算机或者另一物理服务器6中的虚拟机)的数据。在本示范性实施例中,作为例子,分组传输是基于 TCP/IP (传输控制协议/互联网协议)来实施的。以相同的方式,虚拟机201到20m中的每个虚拟机经虚拟交换机21,发送数据到另一单元并接收来自另一单元的数据。而且,在相同物理服务器中的虚拟机之间的通信经虚拟交换机11或21而实施。假设即使虚拟机101到10η、虚拟机201到20m根据本发明迁移到不同的VMM或者物理服务器,MAC地址不发生改变。而且,虚拟交换机11和21可通过于后描述的OpenFlow 技术而被控制,并且可实施常规技术中的交换操作(层2)。将描述一个在下述示范性实施例中的虚拟交换机11和21处理OpenFlow技术的例子。而且,在虚拟机101到IOn和201 到20m中,以及物理服务器的外部单元中实施桥连接。也就是说,通过使用虚拟机101到 IOn和虚拟机201到20m的MAC地址和IP地址,可以直接向外部实施通信。VM管理装置2管理运行在物理服务器5和6中的虚拟机101到IOn和虚拟机201 到20m。图2是示出本发明的VM管理装置2的结构的图。需要VM管理装置2通过一提供有CPU和存储单元的计算机来实现。在VM管理装置2中,通过CPU(未示出)运行保存在存储单元中的程序,实现如图2所示的VM迁移控制部321和VM管理部322中的功能。VM迁移控制部321控制虚拟机的迁移。详细地说,基于存储在存储单元中的VMM 管理数据323,VM迁移控制部321指明一虚拟机作为迁移目标,一虚拟机监控器作为迁移目的地,并且指令虚拟机到作为迁移源和迁移目的地的虚拟机监控器的迁移。因此,在被指令过的虚拟机监控器之间,实施虚拟机的迁移。VMM管理部322管理受管理的虚拟交换机和虚拟机监控器的数据(VMM管理数据 323)。VMM管理数据323包含各个虚拟机监控器的标识和由虚拟机监控器管理的虚拟机的标识的数据(即VMM数据324) ;VMM管理数据323还包含像虚拟交换机的标识和与虚拟交换机相连的虚拟机的标识这样的数据(VSW数据32 。需要VMM数据3M和VSW数据325 与各个管理虚拟交换机的虚拟机监控器相关联。VMM管理数据323可以被事先保存在存储单元中,并可以在可选的时间点或者周期性地从VMMlO和VMM20获取。当从VMMlO和VMM20获取VMM管理数据323时,需要响应于来自VMM管理部322的指令,从VMMlO和VMM20处获取VMM管理数据323,并且基于所获取的数据,更新在存储单元中的VMM管理数据323。因此,变得有可能在虚拟机迁移之后,监控虚拟交换机的被改变后的连接目的地和虚拟机的被改变后的迁移目的地。0FC3通过OpenFlow技术控制在系统中的通信。在OpenFlow技术中,根据路由策略(流规则+行动),控制器(在本例子中的OFO)设置在流单元中的多层单元的路由数据到交换机,以便实施路由控制和节点控制。这样,路由控制功能被与路由器和交换机相分隔开,通过控制器实现的集中控制,最佳路由和流量控制变得可能。应用了 OpenFlow技术的交换机(0FS组4)将通信作为端对端的流,该端对端的流不是以常规路由器和交换机的分组和帧为单位。详细地说,通过设置各个交换机或者节点的流(规则+行动),0FC3控制交换机和节点的运作(例如,分组数据的中继操作)。在本例子中,由0FC3控制的交换机被举例示为 OFS组4,虚拟交换机11和21等。由0FC3控制的节点被举例示为虚拟机101到10n,201 到20m, VMM10和20,物理服务器5和6,存储单元7等。
图3为示出了本发明0FC3的结构的图。需要0FC3通过提供有CPU和存储单元的计算机来实现。在0FC3中,通过CPU执行存储在存储单元中的程序,实现在图3中示出的交换机控制部331、流管理部332、流生成部333的功能。所以,根据流表格334,交换机控制部331实施各个交换机或者节点的流(规则+ 行动)的设置或删除。根据本发明,交换机和节点参考设置的流,并根据接收分组的头数据,执行对应于规则的行动(例如,中继和丢弃分组数据)。所述规则和行动的细节将稍后描述。图4为示出了由本发明的0FC3所保存的流表格334的结构例子的图。参见图4, 在流表格334中,用于指明流的流标识441、用于指明流的设置对象(交换机和节点)的标识(对象单元44 、路由数据443、规则444、行动数据445和设置数据446相互关联并被存储。到所有交换机和节点的流(规则444+行动数据44 (是0FC3的控制目标)被设置到流表格334。在流表格334中,可以定义处理通信的方法,例如编码各个流和Qos的数据。在规则441中,例如,定义了标识与OSI (开放式系统互联)参考模型中层1到层4 的地址的结合体,并且其被包含在TCP/IP协议的分组数据的头数据中。例如,层1的物理端口、层2的MAC地址、层3的IP地址、层4的端口号和VLAN标签的结合体被设置为规则 444,如图9所示。这里,端口号的地址和标识的预定范围可被设置到规则444。而且,需要在规则444中标识和设置目的地地址和源地址。例如,在规则444中设置有MAC目的地地址的范围、指明了连接目的地的应用的目的地端口号的范围、指明了连接源的应用的源端口号的范围。此外,标明了数据传输协议的标识可以被设置为规则444。例如,在行动数据445中规定了处理TCP/IP分组数据的方法。例如,设置了显示是否中继接收分组数据,以及在中继时的发送目的地的数据。并且,指令丢弃的数据和分组数据的复制件可以被设置在行动数据445中。路由数据443是用于指明路由的数据,其中流(规则444+行动数据445)被用于所述路由。这是一个与通信路径数据336相关的标识,该通信路径数据336将在后面被描述。设置数据446包含显示是否当前流(规则444+行动数据44 被设置到通信路径、交换机等的数据(“已经设置”或者“没有设置”)。而且,因为设置数据446与对象单元 442和路径数据443相关联,有可能确认是否流被设置到了通信路径,以及有可能确认是否流被设置到了在通信路径中的各个交换机和节点。而且,设置数据446包括显示是否产生的流是在可使用(合法)的状态或者是在不可使用(非法)的状态的数据。交换机控制部 331参考设置数据446,以仅设置合法流到交换机(OF。和节点,并且不设置非法流。流管理部332参考流表格334,以提取出对应于交换机和节点所通告的第一分组数据的头数据的流(规则444+行动数据44 ,并通告该提取出的流到交换机控制部331。 而且,流管理部332将流标识441和由流产生部333产生的流(规则444+行动数据445) 相关联,并将它们保存在存储单元中。这时,流被使用的通信路径的标识(路由数据443)、 流被使用的交换机或者节点的标识(对象单元44 被加入到流(规则444+行动数据445) 中并被保存。流产生部333通过使用拓扑数据335计算通信路径,并将计算结果作为通信路由数据336保存到存储单元中。在这个例子中,设置了通信路由末端的节点,以及通信路由上的交换机和节点。而且,基于通信路由数据336,流产生部333产生流(规则444+行动数据 445),该流被设置到通信路由上的交换机和节点。拓扑数据335包含交换机(例如,OFS组4,虚拟交换机11和21等)、节点(例如, 虚拟机101到10η,虚拟机201到20m, VMMlO和VMM20,物理服务器5和6和存储单元7)和外部网络(例如,因特网)的连接状态的数据。特别地,指明了交换机或者节点(单元)的单元标识451与单元中的端口数452和端口连接目的地数据453相关联,并且它们作为拓扑数据335存储在存储单元中。端口连接目的地数据453包含连接类型(交换机/节点/ 外部网络),该连接类型指明连接对端和指明了连接的目的地的数据(在是交换机时,为交换机ID ;在是节点时,为MAC地址;在是外部网络时,为外部网络ID)。通信路由数据336为用于指明通信路由的数据。详细地说,作为通信路由数据 336,指明一组节点(例如,虚拟机101到10η,虚拟机201到20m, VMMlO和20,物理服务器 5和6,存储单元7等)或者作为端点的外部网络接口的端点数据461、指明通道交换机(例如,OFS组4,虚拟交换机11和21等)和端口对组的通道交换机数据462、附属数据463 被关联在一起,并被保存在存储单元中。例如,当通信路由连接外部网络和节点时,外部网络ID和节点的MAC地址作为端点数据461保存。或者,当通信路由连接于节点之间时,一对作为端点的节点的MAC地址作为端点数据461保存。通道交换机数据462包含交换机 (OpenFlow交换机和虚拟交换机)的标识,该交换机被提供在端点之间的通信路由中,其中所述端点由端点数据461所示出。而且,通道交换机数据462可包含用于关联被设置到交换机的流(规则444+行动数据44 和交换机的数据。在端点被改变之后,附属数据463 包含在路由上的交换机(通道交换机)的数据。本发明的流管理部332响应于虚拟机的迁移指令(迁移准备指令)控制流产生部 333,产生用于传输内存映像的流(内存映像传输流),并控制交换机控制部331以设置内存映像传输流到在内存映像传输路径上OFS和节点。而且,本发明的流管理部332响应于虚拟机的迁移指令(迁移准备指令)控制流产生部333,以产生在迁移后访问虚拟机的流 (用于迁移目的地VM的通信流),并控制交换机控制部331以将用于迁移目的地VM的通信流设置到迁移目的地VM的通信路由上的OFS组和节点。OFS组4被提供有至少一个OpenFlow交换机41到4i (i是自然数)。图7为示出了依据本发明的OpenFlow交换机4i (于下称作0FS4i)的结构的图。所以,0FS4i根据由 0FC3设置的流表格343决定接收分组的处理方法(行动)。0FS4i提供有传输处理部341 和流管理部342。传输处理部341和流管理部342可以被配置为硬件,并可实现为由CPU执行的软件程序。图8所示的流表格343被设置在0FS4i的存储单元中。流管理部342设置从0FC3 获取的流(规则444+行动数据44 到流表格343。而且,当由传输处理部341接收的接收分组的头数据与存储在流表格343中的规则444相匹配(相一致)时,流管理部342向传输处理部341通告对应于规则444的行动数据445。另一方面,当由传输处理部341接收的接收分组的头数据与存储在流表格;343中的规则444不相匹配(相一致)时,流管理部 342向0FC3通告接收到了第一分组,并且发送头数据到0FC3。传输处理部341根据所述接收分组的头数据实施传输操作。详细地说,传输处理部341从所接收的分组数据中提取头数据,并向流管理部342通告该头数据。当从流管理部342接收行动数据445时,传输处理部341根据行动数据445实施处理。例如,传输处理部341传输所述接收分组数据到行动数据445所示的目的地节点。而且,当接收分组数据不具有在流表格343中规定的规则444时,传输处理部341在预定时间内保留分组数据,并且等待直到流被从0FC3所设置(流表格343被更新)。具体地说,设置有流的0FS4i的运作将被描述,其中规则444 :“A1_A3”的MAC发送源地址(L2),“B1-B3,,的IP目的地地址(L3),“HTTP”的协议,“C1-C3”的目的地端口号 (L4);和行动数据445:“中继到物理服务器5的虚拟机101”是相关联的。当接收的分组具有“Al”的MAC源地址(L2)、“B2”的IP目的地地址(L3)、“HTTP”的协议、“C3”的目的地端口号(L4),0FS4i决定头数据匹配规则444,并且发送所接收的分组数据到虚拟机101。另一方面,当接收的分组具有“A5”的MAC源地址(L2)、“B2”的IP目的地地址(L3)、“HTTP” 的协议、“C4”的目的地端口号(L4),0FS4i决定头数据不匹配规则444,并且通告0FC3接收到了该第一分组,并发送所述头数据到0FC3。0FC3从流表格334提取对应于所接收头数据的流(规则444+行动数据44 ,并将其发送到0FS4i。要注意的是在流表格334中没有合适的流时,可新产生一个流。0FS4i设置所发送的流到其自己的流表格343,并根据流表格 343执行接收分组的中继操作。如前所提及的,OpenFlow技术(称为可编程流技术)被运用到本发明的计算机系统中。要注意的是,除了 OFS组4,虚拟交换机11和21可以提供有一流表格,其中像0FS4i 那样0FC3设置所述流表格中的流。在这种情形下,像OFS组4那样0FC3可控制虚拟交换机11和21的运行。在第一示范性实施例中的计算机系统提供有集成管理装置1,该装置控制VM管理装置2和0FC3。可取的是集成管理装置1通过提供有CPU和存储单元的计算机来实现。集成管理装置1可取地具有输入单元(例如键盘和鼠标)、显示单元(例如显示器和打印机) 其可视地显示各种类型的从VM管理装置2或者0FC3传输来的数据。用户(管理者)通过使用集成管理装置1控制VM管理装置2和0FC3,并执行虚拟机的迁移。集成管理装置1、VM管理装置2和0FC3中的每一个可以被提供在同一个计算机中或者分别地在不同的计算机中。虚拟机的迁移接着参见图10-图12,描述了依据本发明的第一示范性实施例的虚拟机的迁移操作。图10为显示了在虚拟机进行迁移操作时本发明第一示范性实施例中的准备处理的序列图。管理者操作输入单元(未示出)以指令集成管理装置1来控制虚拟机的迁移(以下,称作VM迁移)。在这时,迁移虚拟机(于下,称为迁移对象VM)运行于其上的物理服务器(或者虚拟机监控器)、迁移对象VM和作为迁移目的地的物理服务器(或者虚拟机监控器)被指明。集成管理装置1响应于VM迁移指令,发布数据通告指令到VM管理装置2 (步骤S101)。这里,集成管理装置1发布一指令,以通告迁移源和迁移目的地的物理服务器的虚拟机监控器的数据。VM管理装置2传输迁移源和迁移目的地的物理服务器的VMM管理数据323到集成管理装置1 (步骤S102)。因此,集成管理装置1获取迁移源的虚拟机监控器 (于下,称为迁移源VMM)的数据、迁移对象VM的数据、迁移目的地的虚拟机监控器(于下, 称为迁移目的地VMM)的数据和迁移目的地的虚拟交换机(于下,称为迁移目的地VSW)。
当获取VMM管理数据323时,集成管理装置1发布迁移准备指令到0FC3 (步骤 S103)。在这时,集成管理装置1基于VMM管理数据323向0FC3指明迁移源VMM、迁移对象 VM、迁移目的地VMM和迁移目的地VSW。当接收所述迁移准备指令时,0FC3首先针对内存映像迁移设置通信路由和流。 0FC3基于拓扑数据335计算通信路由(内存映像传输路由)以在迁移源VMM和迁移目的地 VMM之间传输迁移对象VM的内存映像(步骤S104)。这里,在迁移前迁移对象VM的内存映像保存于其中的区域,和在迁移后迁移对象VM的内存映像保存于其中的区域被设置为两个端点,并被用于计算内存映像传输路由。所述被计算的内存映像传输路由的数据作为通信路由数据336进行保存。0FC3产生应当被设置到各个0FS4i中的流(内存映像传输流)(步骤105),其中所述各个0FS4i处在于步骤S104中计算的内存映像传输路由上。针对各个0FS4i所产生的内存映像传输的流(规则444+行动数据44 与各个0FS4i相关联,并且被注册在流表格334中。在这时,内存映像传输流的设置数据446被设置为“未设置”和“非法”。0FC3设置内存映像传输流到各个0FS4i或者节点(步骤S106到步骤S108)。详细地说,0FC3指令在通信路由上的对应的0FS4i,以设置内存映像传输流(步骤106)。已经下指令设置流的0FS4i设置所发送的流(规则444+行动数据44 到其自己的流表格 343 (步骤S107)。完成了流设置的0FS4i向0FC3报告流设置完成(步骤S108)。这里,除了 0FS4i,内存映像传输流被设置到了内存映像传输路由上的节点。而且,当虚拟交换机具有对应于OpenFlow技术的结构时,内存映像传输流被设置到内存映像传输路由上的虚拟交换机。设置到0FS4i和虚拟交换机的内存映像传输流的设置数据446被设置为“设置”和 “合法”。 接着,0FC3设置通信路径,和用于在VM迁移后访问迁移对象VM(于下,称为迁移目的地VM)的流。首先,0FC3计算通信路由(用于迁移目的地VM的通信路由)(步骤S109)。 详细地说,0FC3从预先保存的合法通信路由数据336选择有关迁移对象VM的通信路由的通信路由数据336。这里,合法通信路由(合法通信路由数据336)显示流可能设置到0FS4i 的通信路由存在。通过将所选择的通信路由的一端由迁移对象VM改变为与迁移目的地VM 相连接的虚拟交换机,0FC3使用拓扑数据335更正通信路由,并且计算作为迁移目的地VM 的通信路由。所计算的迁移目的地VM的通信路由的数据被作为通信路由数据336进行保存。0FC3产生设置到各个0FS4i的流(用于迁移目的地VM的通信流)(步骤Sl 10), 其中所述各个0FS4i是处于在步骤S109中计算的迁移目的地VM的通信路由上的。针对各个0FS4i所产生的迁移目的地VM的通信流(规则444+行动数据445)与各个0FS4i相关联,并被注册在流表格334中。在这时,迁移目的地VM的通信流的设置数据446被设为“未设置”和“非法”。当产生用于迁移目的地VM的通信流时,0FC3向集成管理装置1报告迁移准备完成(步骤S111)。如前所提及,在本示范性实施例中的准备流程中实施了 计算迁移对象VM的内存映像的传输路由;为进行迁移控制的流设置;计算为访问迁移目的地VM的通信路由;产生用于通信控制的流。在第一示范性实施例中,当设置内存映像传输流到0FS4i完成,并且产生用于迁移目的地VM的通信流完成后,迁移准备就结束了。图11是示出了依据虚拟机的第一示范性实施例在迁移处理时内存映像传输处理的序列图。参见图11,当接收到迁移准备完成的报告时,集成管理装置1发布迁移指令到VM 管理装置2 (步骤S201)。VM管理装置2发布迁移指令到迁移源VMM (在本例子中为VMM10) 和迁移目的地VMM (在本例子中为VMM20),其中迁移源VMM和迁移目的地VMM在准备处理中被指明(步骤S202和步骤S203)。这时,VM管理装置2通告迁移对象VM到VMMlO和20。 要注意的是,在步骤S201中的迁移指令中,可指明迁移源VMM和迁移目的地VMM。响应于从VM管理装置2来的迁移指令,在VMMlO和VMM20之间实施虚拟机的内存映像传输(步骤S204到S212)。详细地说,在迁移目的地VMM (于下,迁移目的地VMM20) 中产生由VM管理装置2指明的VM(步骤S204)。响应于由迁移目的地VMM20通告的VM产生结束报告,迁移源VMM(在本例子中为迁移源VMM10)传输迁移对象VM的内存映像(步骤 S205到步骤S207)。迁移源VMMlO发送内存映像到在步骤S204中产生的VM。经过在步骤 S104到步骤S107中设置的内存映像传输路径,内存映像被传输。在这时,根据在步骤S107 中设置的内存映像传输流,在内存映像传输路由上的0FS4i传输所述内存映像。在传输内存映像期间,当访问(例如数据传输)另一虚拟机,除了迁移对象VM之夕卜,的情形出现时,与所述访问相关的0FS4i根据设置在其流表格343中的流,执行对应于接收分组的头数据的行动(例如,数据中继处理)。通过设置内存映像传输路由,以至不会阻碍对与迁移无关的另一虚拟机的访问,这样就变得可能迁移迁移对象VM,而不阻碍与另一虚拟机的通信。另一方面,在传输内存映像期间(例如,当用于迁移对象VM的数据被传输时),当访问迁移对象VM的情形出现时,到迁移对象VM的通信路由上的0FS4i根据设置在其流表格343中的流,执行对应于接收分组的头数据的行动(例如,数据中继处理)。这里,因为流是在假设迁移对象VM是运行在VMMlO上时而进行设置的,用于迁移对象VM的数据被传输到在物理服务器5上的迁移对象VM。迁移源VMMlO记录被指派给迁移对象VM的数据到迁移对象VM的内存页中。在传输内存映像时,由于对迁移对象VM的处理和对指派给迁移对象VM的数据传输的处理,存在内存页被修改或者被更新的情形。被改变的内存页作为一复制对象被保存在保存单元的改变页记录区域(步骤S208)。可取的是,改变页的记录处理被实施一直到迁移目的地VM开始。当与迁移对象VM相关的所有内存映像的传输完成时,迁移源VMMlO通过在步骤 S104到S107中设置的内存映像传输路由,传输改变的页到迁移目的地VMM20(步骤S209)。 但是,可取的是当在与迁移对象VM相关的所有内存映像的传输完成时记录的改变页的数量等于或者小于预定的数目时,在步骤S209中的对改变页的传输处理被省略去。而且,在步骤S209中改变页的传输处理时,存在一种内存页被修改的情形。所以,在步骤S209中, 迁移源VMMlO在更多另一区域中保存保存在改变页记录区域中的改变页,并且在清除改变页记录区域之后,传输所述改变页到迁移目的地VMM20。当与迁移对象VM相关的所有内存映像的传输(包含改变页的传输)完成时,运行在迁移源VMMlO上的迁移对象VM(于下,称为迁移源VM)的操作被停止(步骤S210)。在这时,迁移源VM的虚拟网络接口也被停止。要注意可取的是通过重复在步骤S209中的改变页的传输和改变页的记录,在改变页的数量等于或者小于预定的数量的情况下,迁移源 VMMlO停止迁移源VM。在迁移源VM停止后,迁移源VMMlO通过如步骤S104到步骤S107中的内存映像传输路由,传输改变页到迁移目的地VMM20 (S211)。因此,从迁移源VMMlO到迁移目的地VMM的内存映像的传输完成。在迁移目的地VMM20上产生的VM(于下,称为迁移目的地VM)可开始运行,但是可取的是实施在迁移源VM和迁移目的地VM中的内存映像的匹配判断。详细地说,迁移源VMMlO确认迁移源VM的停止,并发布传输确认指令到迁移目的地VMM20 (步骤S2U)。响应于传输确认指令,迁移目的地VMM20通过在步骤S104到步骤S107中设置的内存映像传输路由,传输迁移目的地VM的内存映像到迁移源VMMlO (步骤 S213)。迁移源VMMlO判断从迁移目的地VMM20传输来的内存映像与迁移源VM的内存映像是否相互匹配(步骤S214)。当在步骤S214迁移目的地VM的内存映像与迁移源VM的内存映像相匹配被确认时,迁移源VMMlO通告迁移目的地VMM20 —匹配确认完成报告(步骤S2M)。迁移目的地 VMM20接收所述匹配确认完成报告,并控制迁移目的地VM运作(步骤S216)。在这时,迁移目的地VM的虚拟网络接口变成运行状态。在另一方面,在步骤S214中,当迁移目的地VM的内存映像与迁移源VM的内存映像不相匹配时,实施不匹配的内存页的传输处理(未示出)。如前所提及的,通过使用由集成管理装置1指明的路由(内存映像传输路由),实施VM的内存映像的传输。在这时,根据在迁移前被设置到OFS组4的流,实施对迁移源VM 的访问。因此,VM的内存映像可以被传输而不停止到迁移源VM的通信。而且,因为内存映像传输路由可由集成管理装置1可选地进行设置,所以路由可被选择以不阻碍到另一虚拟机的通信。因此,不影响通信到其它虚拟机的内存映像传输变得可能。通常,当物理服务器属于相同子网时,在物理服务器之间的数据传输通过层2的交换机而实施。但是,当物理服务器属于不同的子网时,需要在物理服务器之间提供层3交换机。在另一方面,在本发明中通过使用OpenFlow技术传输内存映像,其中在OpenFlow技术中基于从层1到层4的标识和地址的组合确定行动(例如中继操作)。所以,即使当物理服务器5和6属于不同的子网时,仅仅通过改变流的设置,在物理服务器之间的数据传输变得可能。图12为示出了第一示范性实施例的虚拟机的迁移操作中的访问目的地切换操作的序列图。这里,将描述在于步骤S218中开始的迁移目的地VM被涉及为VM20m的条件下,从迁移源VM到迁移目的地VM20m的访问目的地切换操作。参见图12,当在迁移目的地 VMM20中产生的VM20m变为运行状态时,VM20m实施RARP (反向地址解析协议)传输(步骤S301)。RARP被虚拟交换机21所检测到,并被传输到0FS4i。0FS4i检测到RARP,并向 0FC3通告所检测到的RARP (步骤S3(^)。详细地说,因为0FS4i通过RARP传输从变成运行状态的迁移目的地VM接收分组数据,并且适合于分组数据的流(规则)没有被设置,0FS4i 向0FC3通告第一分组的接收。在这时,0FS4i向0FC3通告分组数据或者含在分组数据中的MAC地址。0FC3选择对应于所通告的MAC地址的通信路由作为迁移目的地VM的通信路由,并选择出用于迁移目的地VM的通信流,该通信流是被设置到在所选择的用于迁移目的地VM的通信路由上的交换机的。这里,RARP的分组数据从0FS4i被传输,并且0FC3获取在RARP中被传输的VM20m的MAC地址。
14
0FC3选择被保存的合法通信路由数据336中对应于在步骤S302中通告的 RARP (MAC地址)的通信路由(通信路由数据336)(步骤30 。这里,传递RARP (MAC地址) 的通信路由被从用于迁移目的地VM的通信路由中选出,其中所述用于迁移目的地VM的通信路由是在步骤S109中计算的。接着,0FC3设置在步骤SllO中产生的用于迁移目的地VM 的通信流到0FS4i和所选择通信路由上的节点(步骤S304到步骤S307)。详细地说,0FC3 从通信路由数据336和拓扑数据335中,提取出在所选择的用于迁移目的地VM的通信路由上的节点和0FS4i,并且选择对应于每个的迁移目的地VM的通信流(步骤S304)。接着, 0FC3发布针对各个0FS4i选择的迁移目的地VM的通信流的设置指令(步骤S305)。响应于用于迁移目的地VM的通信流的设置指令,0FS4i设置传输的迁移目的地VM的通信流到其流表格343 (步骤S306)。0FS4i结束流的设置,并向0FC3通告流设置结束报告(步骤S307)。 被设置到0FS4i的迁移目的地VM的通信流的设置数据446被设置为“已经设置”或者“合法,,·0FC3设置用于迁移目的地VM的通信流到用于迁移目的地VM的通信路由上的节点和0FS4i,并且在确认设置完成时,通过使用拓扑数据335产生用于在迁移目的地VM和虚拟交换机21之间连接的流(步骤S308),其中所述节点和0FS4i在上。0FC3设置产生的流到虚拟交换机21 (步骤S309和S310)。详细地说,0FC3发布对在步骤S308处产生的流的设置指令到虚拟交换机21 (步骤S309)。响应于流的设置指令,虚拟交换机21设置从0FC3 发送来的流到其自己的流表格343 (步骤S310)。虚拟交换机21结束流的设置,并向0FC3 通告流设置完成报告(步骤S311)。设置到了虚拟交换机21的迁移目的地VM的通信流的设置数据446被设置为“已经设置”和“合法”。当0FC3确认在迁移目的地VM20m和虚拟交换机21之间连接的流的设置完成时, 0FC3选择用于迁移源VM的流,并发布流的删除指令(步骤S312和S313)。0FS4i和节点删除用于迁移源VM的流或者设置该流到不使用状态(步骤S314)。0FS4i和节点结束流的删除,接着向0FC3通告流删除完成报告(步骤S315)。当确认了在用于迁移源VM的通信路由上的节点和0FS4i中的流的删除时,0FC3设置用于迁移目的地VM的通信流为当前使用的流,并且设置用于迁移源VM的通信流为不使用的流(步骤S316)。这里,显示“使用”或者“不使用”(合法或者非法)的数据被设置在对应于各个流(规则444+行动数据445)的设置数据446中。这时,用于迁移源VM的没被使用的通信流可以从流表格334中删除。但是,通过改变设置数据446而不删除不使用的流来设置流的使用或者不使用(合法或者非法),这样当迁移的虚拟机被返回到初始物理服务器或者VMM时,流可以被再次设置而不需要产生流。于下,根据设置到各个0FS4i的迁移目的地VM的通信流,向运行于物理服务器6 上的VMM20执行迁移目的地VM20m的通信。如前所述,根据本发明的迁移方法,虚拟机的迁移变得可能而不打断与虚拟机的通信。在本示范性实施例中,在不同物理服务器之间的迁移作为一个例子已经进行了描述, 但是可以以相似的方法实现在相同物理服务器中的迁移。而且,根据本发明,可以通过集成管理装置1实施用于内存映像传输的设置和用于与迁移目的地VM通信的设置。也就是说,通过一个管理部来控制虚拟机迁移是所希望的。所以,根据本发明,由网络管理者和IT管理者分别管理的计算机系统变得可有一个管理部来管理和操作。要注意的是,当虚拟交换机21为实施了常规交换(层2)操作的虚拟交换机时,步骤S308到S311的处理将被省略去。第二示范性实施例接着,参见图11、图13和图14,将描述依据本发明第二示范性实施例在计算机系统中的虚拟机的迁移方法。因为在第二示范性实施例中的计算机的结构与第一示范性实施例中的相同,所以其描述被省略。不同于第一示范性实施例的操作将被描述。而且,通过添加相同的数字符号描述与第一示范性实施例的相同的操作。在第二示范性实施例中的虚拟机的迁移方法中,在迁移准备处理阶段,用于迁移目的地VM的通信流被设置到0FS4i。所以,用于迁移对象VM的分组数据被复制并被传输到迁移源VM和迁移目的地VM。在第一示范性实施例中,因为在传输了迁移对象VM的内存映像之后,用于迁移目的地VM的通信流被设置了,所以有一种情形是在从迁移对象VM的停止到对用于迁移目的地VM的通信流进行设置(切换访问目的地到迁移对象VM)的这段期间,出现分组丢失。但是,在第二示范性实施例中,因为在迁移准备阶段用于迁移源VM的流和用于迁移目的地VM的流都被设置了,所以在切换访问目的地到迁移目的地VM的场合,可以防止分组丢失的出现。图13为示出了在第二示范性实施例中在虚拟机进行迁移处理时准备处理的序列图。参见图13,在第二示范性实施例的准备处理中,像第一示范性实施例那样,首先实施步骤SlOl到SllO中的处理。在第二示范性实施例中,在迁移准备步骤中0FC3设置用于迁移目的地VM的通信流到各个0FS4i (步骤S401到S40!3)。详细地说,0FC3提取在用于迁移目的地VM的通信路由上节点和0FS4i,并且选择用于对应迁移目的地VM的通信流,其中所述通信路由是基于通信路由数据336和拓扑数据335而选择的。接着,0FC3发布用于迁移目的地VM的通信流的设置指令(步骤S401),其中所述通信流是为各个0FS4i而选择的。响应于用于迁移目的地VM的通信流的设置指令,0FS4i设置传输的用于迁移目的地VM的通信流到其流表格343(步骤S402)。当流设置结束时,0FS4i向0FC3通告流设置结束报告(步骤S403)。设置到0FS4i的迁移目的地VM的通信流的设置数据446被设置为“已经设置” 或者“合法”状态。当用于迁移目的地VM的通信流的设置完成时,0FC3向集成管理装置1通告迁移准备的完成(步骤S405)。如前所述,在本示范性实施例的准备流程中,实施了对迁移对象VM的内存映像的传输路由以及对控制迁移的流的设置,以及对用于访问迁移目的地VM的通信路由以及对控制通信的流的设置。在第二示范性实施例中,当对0FS4i进行内存映像传输流设置和用于迁移目的地VM的通信流设置结束时,迁移准备结束。参见图11,在第二示范性实施例的映像传输处理中,像第一示范性实施例那样,首先执行在步骤S201到S207中的处理(内存映像的传输处理)。在内存映像的传输期间, 当出现对任何一除迁移对象VM之外的其它虚拟机的访问(例如数据传输)时,与访问相关的0FS4i根据设置在其自身中的流表格343中的流,执行对应于接收分组的头数据的动作 (例如,数据的中继处理)。在这种情况下,通过设置内存映像传输路由而不阻碍对其它与迁移不相关虚拟机的访问,迁移对象VM可以被传输而不阻止与其它虚拟机的通信。
另一方面,在内存映像的传输期间(例如当用于迁移对象VM的数据被传输时)出现对迁移对象VM的访问时,在到迁移对象VM的通信路由上的0FS4i,根据设置在其自己的流表格343中的流,执行对应于接收分组的头数据的动作(例如,数据的中继操作)。在本示范性实施例中,因为流是在假设迁移对象VM是运行在VMMlO或者VMM20上而设置的,所以用于迁移对象VM的数据被拷贝并被传输到在物理服务器5上的迁移对象VM (迁移源VM) 和在物理服务器6上的迁移目的地VM。迁移源VMMlO记录为迁移对象VM而传输的数据在迁移对象VM的内存页中。在这时,为迁移对象VM而传输的数据被存储在迁移目的地VMM20 的迁移目的地VM的内存页中。在内存映像的传输期间,有一种情况存在通过在进程处理中的迁移对象VM,基于为迁移对象VM而传输的数据内存页被改变了。被改变的内存页被作为复制对象而存储在存储单元的被改变页记录区域(步骤S208)。可取的是实施被改变页的记录处理,直到迁移目的地VM开始运行。自从那之后,从被改变页(步骤S208)的记录到迁移目的地VM的运行(步骤 S216),实施像第一示范性实施例那样的处理。如前所提及,在第二示范性实施例的迁移方法中,像第一示范性实施例那样,通过使用由集成管理装置1指定的路由(内存映像传输路由),实施VM的内存映像的传输。在这时,因为依据在迁移之前设置到OFS组4的流,实施对迁移源VM的访问,VM的内存映像可以被传输到迁移源VM而不停止通信。而且,因为内存映像传输路由可通过集成管理装置 1随意地设置,一路由可被选择以不阻碍到另一虚拟机的通信。通过这样,不影响与其它虚拟机通信的内存映像的传输变得可能。图14为示出了第二示范性实施例中在虚拟机迁移处理时访问目的地切换处理的序列图。参见图14,在第二示范性实施例的访问目的地切换处理中,像在第一示范性实施例中那样,首先实施步骤S301到步骤S303的通信路由选择处理。接着,如在第一示范性实施例中所实施的那样,在迁移准备处理时,实施用于迁移目的地VM的通信流设置到0FS4i的处理(步骤S304到S307)。所以,所述描述被省略。从那以后,像第一示范性实施例那样,实施从用于在迁移目的地VM和虚拟交换机 21之间进行连接的流生成处理(步骤S308)到流设置处理(步骤S316)的流程。如前所提及,在第二示范性实施例中,在准备处理中,用于迁移源VM的流和用于迁移目的地VM的流被设置。所以,在从步骤S213中的迁移源VM停止到步骤S316中的流设置期间,用于迁移对象VM而传输的数据到达迁移目的地VM而不被丢弃。这样,在本示范性实施例的计算机系统中,在虚拟机的迁移中可以防止分组丢失。而且,不会从外部网络8 侧故意进行虚拟机迁移。而且,在本示范性实施例中,在VM的迁移之后,对应于新通信路由(用于迁移目的地VM的通信路由)的流(用于迁移目的地VM的通信流)在迁移准备处理步骤中被设置。 因此,与第一示范性实施例中的新通信路由是在检测到VM迁移之后建立相比,在本示范性实施例中建立新通信路由所需时间缩短了。第三示范性实施例接着,将参考图15和图16,描述在依据本发明的第三示范性实施例的计算机系统中的虚拟机迁移方法。图15是示出了依据本发明的第三示范性实施例的计算机系统的配置的图。参见图15,在第三示范性实施例中的计算机系统具有一结构,在该结构中集成管理装置1被从第一示范性实施例中的计算机系统中排除出去。于下,将描述与第一示范性实施例不同的操作。而且,通过使用相同的参考数字,描述与第一示范性实施例相同的操作。在第三示范性实施例中的虚拟机的迁移方法中,VM迁移的设置仅被实施到VM管理装置2,并且0FC3检测到虚拟机的迁移目的地,并实施流设置以改变数据传输目的地。所以,在第三示范性实施例中,通过集成管理装置1对VM管理装置2和0FC3的控制没有实施。 也就是说,在第三示范性实施例中,不实施在VM管理装置2和0FC3之间的合作。所以,在第三示范性实施例的虚拟机的迁移方法中,不像第一示范性实施例和第二示范性实施例那样,不实施迁移准备流程。在内存映像的传输处理之前,管理者操作输入单元(未示出)并指令VM管理装置 2来执行VM迁移。在这时,其中有迁移对象VM运行的物理服务器(或者虚拟机监控器)、 迁移对象VM和作为迁移目的地的物理服务器(或者虚拟机监控器)被指明。不像第一和第二示范性实施例,VM管理装置2响应于管理者的操作(指令)发布迁移指令到VMMlO和 VMM20。此后,像常规技术那样,实施迁移对象VM的内存映像的传输处理。也就是说,实施在迁移目的地VMM中的VM生成流程,和到迁移目的地VM的迁移对象VM的内存映像的传输流程。在这时,通过与传统技术相同的方法,实施在传输中被改变的内存页记录、所述改变等。当内存映像的传输完成时,如果在内存映像的传输期间被改变的内存页的数量等于或者小于预定的数值,实施迁移源VM和迁移目的地VM的内存映像的匹配判决。当相互匹配时,迁移源VM停止,并且迁移目的地VM变到运行状态。在另一方面,当被改变的内存页的数量大于预定的数量时,实施被改变页的重新发送,直到被改变页的数量变得等于或者小于预定的数量。图16是示出了第三示范性实施例中虚拟机的迁移操作时访问目的地切换流程的序列图。这里,将描述从迁移源VM到迁移目的地VM20m的访问目的地切换操作,并假设运行迁移目的地VM是VM20m。参见图16,当产生在迁移目的地VMM20上的VM20m进入运行状态时,VM20m首先实施RARP(反向地址解析协议)传输(步骤S501)。RARP被虚拟交换机21检测并被传输到0FS4i。0FS4i检测到所述RARP并向0FC3通告被检测的RARP(步骤 S502)。详细地说,所以0FS4i经RARP传输从进入运行状态的迁移目的地接收分组数据,并向0FC3通告第一分组的接收,原因是与分组数据相合适的流(规则)没有被设置。在这时,0FS4i向0FC3通告包含在分组数据中的MAC地址或者分组数据。0FC3选择对应于被通告MAC地址的通信路由作为用于迁移目的地VM的通信路由,并产生用于迁移目的地VM的通信流。这里,分组数据经RARP传输被从0FS4i所传输,并且经RARP传输而传输的VM20m 的MAC地址被0FC3所获取。基于来自虚拟交换机21 (或者0FS4i)的RARP通告,0FC3检测到开始操作的虚拟机的连接目的地(迁移目的地VM20m)的改变(步骤S503)。详细地说,0FC3从保存的合法通信路由数据336中,查询(提取)出对应于在步骤S502中被通告的RARP通告的通信路由(通信路由数据336)。明确地说,0FC3提取出带有包含在被通告的RARP中的MAC地址作为一端点的通信路由(通信路由数据336)。接着,0FC3检测到在被查询(提取)出的通信路由上的作为端点的VM(或者物理服务器)的连接目的地不同于接收RARP传输的虚拟交换机21(或者0FS4i)。因此,0FC3可以检测到在运行状态的虚拟机(迁移目的地VM20m)的连接目的地改变了。要注意的是,当物理服务器5和6被连接到相同的0FS4i时,0FS4i 被连接至各个服务器的端口是不同的。所以,通过检测作为在0FC3中查询(提取)到的通信路由上的端点的物理服务器的连接目的地端口与接收RARP传输的交换机的连接目的地端口不同,虚拟机的迁移可以被检测出来。当检测到迁移目的地VM20m的连接目的地的改变时,0FC3在迁移目的地VM20m中复制与迁移源VM相关的通信路由(步骤S504到S516)。详细地说,通过使用拓扑数据335, 0FC3计算一通信路由(用于迁移目的地VM的通信路由)(步骤S504),该通信路由是在不同于在步骤S503中查询到的通信路由上的VM—侧的端点与在步骤S502中检测到RARP传输的端点之间的。计算出来的用于迁移目的地VM的通信路由的数据被保存为通信路由数据336。0FC3产生被设置到各个0FS4i的流(用于迁移目的地VM的通信流)(步骤S505), 其中所述各个0FS4i是在于步骤S504中计算出来的迁移目的地VM的通信路由上的。用于迁移目的地VM的通信流(规则444+行动数据445)针对各个0FS4i而产生,并被关联到各个0FS4i,且保存在流表格334中。在这时,用于迁移目的地VM的通信流的设置数据446被设置为“未设置”和“无效”状态。接着,0FC3设置在步骤S505处产生的迁移目的地VM的通信流,到在步骤S504中计算的通信路由上的虚拟交换机21和0FS4i (步骤S506到步骤S511)。详细地说,0FC3提取在从通信路由数据336和拓扑数据335计算而来的迁移目的地VM的通信路由上的虚拟交换机21和0FS4i,并且0FC3发布对应于0FS4i和虚拟交换机21的迁移目的地VM的通信流的设置指令(步骤S506和S507)。0FS4i和虚拟交换机21,响应于用于迁移目的地VM的通信流的设置指令,设置传输的用于迁移目的地VM的通信流到其自己的流表格343 (步骤 S508和步骤S510)。接着,0FS4i结束流的设置,并且虚拟交换机21向0FC3通告流设置完成报告(步骤S509和S511)。设置到0FS4i和虚拟交换机21的迁移目的地VM的通信流的设置数据446被设置为“已经设置”和“合法”状态。当确认了迁移目的地VM的通信流到0FS4i和虚拟交换机21的设置完成时,0FC3 选择用于迁移源VM的流,并发布流的删除指令(步骤S512和S513)。0FS4i和虚拟交换机 21设置对用于迁移源VM的流的删除,以及设置使用不可能状态(步骤S514)。当流的删除结束时,0FS4i和虚拟交换机21向0FC3通告流删除完成报告(步骤S515)。当确认了用于迁移源VM的通信路由上的0FS4i和节点中的用于迁移源VM的流被删除时,0FC3设置用于迁移目的地VM的通信流为当前使用流,并设置用于迁移源VM的通信流为不使用的流(步骤S516)。这里,显示了使用或者没有使用的状态的数据被设置到对应各个流(规则444+ 行动数据44 的设置数据446。这时,没有被使用的用于迁移源VM的通信流也可以从流表格334中删除。但是,通过改变设置数据446来设置流的使用或者不使用而不删除不使用的流,这样在迁移虚拟机被迁移到初始物理服务器或者VMM时,可以设置流而不再产生流。如前所述,在第三示范性实施例中,不可能通过0FC3控制内存页的传输路由。但是,通过设置迁移对象VM和迁移目的地VMM仅到VM管理装置2,这可能控制虚拟机的迁移和迁移目的地VM的访问目的地的改变。也就是说,即使在第三示范性实施例的计算机系统中,VM迁移可以经一管理部被集成地控制。在第三示范性实施例中,根据RARP传输,实施用于迁移目的地VM的通信路由的计算和流生成。但是,可以根据在VMM之间的通信状态,实施通信路由的计算和流生成。在这
19种情形下,0FC3监控在VMM之间的通信,并计算响应于内存页的传输开始,变得合法的迁移目的地VM的通信路由,并产生将被设置到各个0FS4i和虚拟交换机21的流(规则444+行动数据445)。因此,在图16中示出的步骤S501到S511的流程可以被删除去。而且,因为从迁移源VM的停止到用于迁移目的地VM的通信流的设置的时间周期可以被缩减去,所以在上述时间周期中的分组丢失量可以被减少。第四示范性实施例图17为示出了第四示范性实施例中的计算机系统的结构的图。除了在第一和第二示范性实施例中的计算机系统,在第四示范性实施例中的计算机系统被进一步提供了一负载均衡器9,其被提供在外部网络8和OFS组4之间。负载均衡器9在物理服务器5和6中实施VMMlOl到VMMlOn,VMM201到VMM20m的负载分配。在第四示范性实施例中的计算机系统中,像第一到第三示范性实施例中的任意一个那样实施VM迁移。但是,在第四示范性实施例中,集成管理装置1或者VM管理装置2 发布一指令到负载均衡器9,以便在VM迁移的执行被指令的步骤中不产生迁移源VM的处理(访问)。以这种方式,因为被改变页的记录和传输被省略去,而且处理量被降低,VM迁移的时间被减少。而且,在迁移对象VM的内存页的传输期间,迁移源VM的负载减少了。已经详细地描述了本发明的示范性实施例。但是,所述的结构不限于是上述示范性实施例中的结构,在不超出本发明范围的范围内修改是被包含在本发明中的。例如,在第一、二、四示范性实施例中的VM迁移方法中,内存映像传输路由的QoS(服务质量)可以被设置为比其它通信具有更高的优先权。因此,用于VM迁移所需的时间被减少。或者,内存映像传输路由的QoS可以被设置为比其它通信具有更低的优先权。在这种情形下,VM迁移对其它通信的影响可以被减少。此外,在第一、二、四示范性实施例中的VM迁移的初步准备中(迁移准备处理),用于迁移目的地VM的通信路由的计算和用于迁移目的地VM的通信流的生成可以与内存映像的传输同时实施。因此,从网络侧的迁移准备处理时间可以被减少, 并且VM迁移的处理时间也被减少。0FC3通过使用由RARP传输所通告的MAC地址,实施“用于迁移目的地VM的通信路由的选择”和“迁移目的地VM的改变的确认”。但是,本发明不是限于此的。例如,0FS4i 接收在迁移后、进入运行状态的迁移目的地VM所传输的分组数据,并向0FC3通告第一分组的接收,原因是与所接收分组数据相适用的流(规则)没有被设置。在这时,0FS4i向0FC3 通告分组数据的MAC地址。0FC3选择对应于所通告的MAC地址的通信路由作为用于迁移目的地VM的通信路由,并且生成用于迁移目的地VM的通信流。或者,以相同的方式,0FC3提取出具有经第一分组的通告所获取的MAC地址作为一端点的通信路由,并检测出通信路由上作为端点的VM的连接目的地和接收分组数据的交换机不相同。因此,接收的连接目的地的改变可以被确认。这个专利申请主张基于申请号为JP2009-222857的日本专利申请的优先权。其揭示通过引用被合并于此。
权利要求
1.一种计算机系统,包括VM管理装置,其被配置为指令运行在物理服务器上的虚拟机迁移到管理所述虚拟机的虚拟机监控器和迁移目的地虚拟机监控器;控制器,其被配置为生成用于迁移目的地VM的通信流,作为控制用于所述迁移目的地虚拟机控制器的通信的通信流;和交换机,其被配置为当来自迁移已经完成的虚拟机的分组数据与设置到该交换机中的流所示的规则不相适应时,向所述控制器通告包含在分组数据中的第一数据;其中所述交换机基于用于迁移目的地VM的通信流所示的行动,传输遵循用于所述迁移目的地VM的通信流所示出的规则的所述虚拟机的分组数据到迁移目的地虚拟机。
2.根据权利要求1所述的计算机系统,其中,所述控制器设置对应于迁移对象的虚拟机的内存映像的传输路由的内存映像传输流,到所述交换机;并且其中所述交换机基于内存映像传输流所示的行动,传输遵循了由内存映像传输流示出的规则的内存映像到所述迁移目的地虚拟机。
3.根据权利要求2所述的计算机系统,进一步包括集成管理装置,其配置为指明迁移对象虚拟机、所述迁移源虚拟机监控器和所述迁移目的地虚拟机监控器,并指令所述VM管理装置和所述控制器实施所述虚拟机的迁移;其中所述控制器响应于所述指令,计算所述迁移对象虚拟机的内存映像的传输路由, 并生成将被设置到所述传输路由上的交换机上的内存映像传输流;并且其中所述VM管理装置响应于所述指令,传输所述迁移对象虚拟机的内存映像到产生于所述迁移目的地虚拟机监控器上的虚拟机。
4.根据权利要求1或权利要求2所述的计算机系统,进一步包括集成管理装置,其配置为指明所述迁移对象虚拟机、所述迁移源虚拟机监控器和所述迁移目的地虚拟机监控器,并向所述控制器发布虚拟机迁移指令,其中所述控制器响应于所述指令,计算用于所述迁移目的地虚拟机的通信路由,并生成将被设置到在所述通信路由上的交换机上的所述迁移目的地VM的通信流。
5.根据权利要求4所述的计算机系统,其中,所述控制器选择用于所述迁移对象虚拟机的通信路由,将该通信路由的一个端点从所述迁移对象虚拟机改变为所述迁移目的地虚拟机,并设置用于所述迁移目的地虚拟机的通信路由。
6.根据权利要求5所述的计算机系统,其中,所述控制器基于来自于从运行的虚拟机接收RARP(反向地址解析协议)的交换机的通告,从所保存的通信路由中选择用于所述迁移目的地虚拟机的通信路由,并且所述控制器从所保存的流中选择将被设置到在所选择通信路由上的交换机的所述迁移目的地VM的通信流,并且设置所选择的流到在所选择通信路由上的所述交换机。
7.根据权利要求1所述的计算机系统,其中,基于检测到了运行虚拟机的RARP(反向地址解析协议)传输的交换机,与在已被从所保存通信路由中提取出的通信路由中的端点之间的不同,所述控制器检测到所述虚拟机的连接目的地的改变。
8.根据权利要求7所述的计算机系统,其中,基于运行虚拟机的RARP传输中包含的 MAC地址,所述控制器从被保存的通信路由中提取通信路由,并计算在所提取通信路由中的虚拟机不同一侧的端点和检测了 RARP传输的端点之间的通信路由,以作为用于迁移目的地虚拟机的通信路由,并生成将被设置到所述通信路由上的交换机的迁移目的地VM的通信流。
9.根据权利要求1到8中任一权利要求所述的计算机系统,其中,所述控制器基于拓扑数据设置通信路由,并指明在所述被设置通信路由上的交换机,并保存对应于所述被指明交换机的规则和行动到流表格,以作为到指定交换机的流。
10.根据权利要求1到9中任一权利要求所述的计算机系统,其中,所述规则是基于包含在基于TCP/IP(传输控制协议/互联网协议)的分组数据的头数据中的OSI (开放式系统互联)参考模型的标识符1和层1到层4的地址的组合进行规定的。
11.一种虚拟机的迁移方法,包括指令运行在物理服务器上的虚拟机从VM管理装置迁移到管理所述虚拟机的虚拟机监控器和迁移目的地虚拟机监控器;通过一控制器生成用于迁移目的地VM的通信流,作为用于控制所述迁移目的地虚拟机控制器的通信的流;当接收自迁移已经完成的虚拟机的分组数据与设置到交换机中的流所示的规则不相适应时,向所述控制器通告包含在分组数据中的第一数据;和所述交换机基于用于迁移目的地VM的通信流所示的行动,向迁移目的地虚拟机传输遵循用于所述迁移目的地VM的通信流所示出的规则的所述虚拟机的分组数据。
12.根据权利要求11所述的迁移方法,进一步包括所述控制器设置对应于迁移对象虚拟机的内存映像传输路由的内存映像传输流到所述交换机;并且所述交换机基于所述内存映像传输的流所示的行动,传输遵循了由所述内存映像传输流示出的规则的内存映像到所述迁移目的地虚拟机。
13.根据权利要求12所述的迁移方法,进一步包括所述集成管理装置指明迁移对象虚拟机、所述迁移源虚拟机监控器和所述迁移目的地虚拟机监控器,并指令所述VM管理装置和所述控制器进行虚拟机的迁移;所述控制器响应于所述指令,计算被指明迁移对象虚拟机的内存映像的传输路由; 所述控制器生成将被设置到所述传输路由上的交换机上的内存映像传输流;并且所述VM管理装置响应于所述指令,传输所述被指明迁移对象虚拟机的内存映像到产生于所述迁移目的地虚拟机监控器上的虚拟机。
14.根据权利要求11或权利要求12所述的迁移方法,进一步包括所述集成管理装置指明所述迁移对象虚拟机、所述迁移源虚拟机监控器和所述迁移目的地虚拟机监控器,并向所述控制器发布虚拟机的迁移指令;所述控制器响应于所述指令,计算用于所述迁移目的地虚拟机的通信路由;和所述控制器生成将被设置到在所述通信路由上的交换机上的所述迁移目的地VM的通信流。
15.根据权利要求14所述的迁移方法,其中,所述计算用于所述迁移目的地虚拟机的通信路由包括所述控制器选择所述迁移对象虚拟机的通信路由;和所述控制器将所选择的通信路由的一个端点由所述迁移对象虚拟机改变为所述迁移目的地虚拟机,以设置用于所述迁移目的地虚拟机的通信路由。
16.根据权利要求15所述的迁移方法,进一步包括所述控制器基于来自运行的虚拟机接收RARP(反向地址解析协议)交换机的通告,从所保存的通信路由中选择用于所述迁移目的地虚拟机的通信路由;所述控制器从所保存的流中选择将被设置到在所选择通信路由上的交换机的所述迁移目的地VM的通信流;和所述控制器设置用于所选择的迁移目的地VM的通信流到在所选择通信路由上的交换机。
17.根据权利要求11所述的迁移方法,进一步包括基于检测到运行虚拟机的RARP (反向地址解析协议)传输的交换机与在从所保存通信路由中提取出的通信路由中的端点之间的不同,所述控制器检测到所述虚拟机的连接目的地的改变。
18.根据权利要求17所述的迁移方法,进一步包括基于运行虚拟机的RARP传输中包含的MAC地址,所述控制器从所保存的通信路由中提取通信路由;所述控制器计算在所提取通信路由中的虚拟机不同一侧的端点和检测了 RARP传输的端点之间的通信路由,以作为用于迁移目的地虚拟机的通信路由;和所述控制器生成将被设置到所述通信路由上的交换机的迁移目的地VM的通信流。
19.根据权利要求11到18中任一权利要求所述的迁移方法,其中,所述规则是基于包含在基于TCP/IP(传输控制协议/互联网协议)的分组数据的头数据中的OSI (开放式系统互联)参考模型的标识符和层1到层4的地址的组合进行规定的。
全文摘要
本发明的计算机系统提供有OpenFlow控制器3和交换机4i。当来自迁移已经完成的虚拟机的分组数据与设置到该交换机4i中的流所示的规则不相适应时,交换机4i向OpenFlow控制器3通告包含在分组数据中的MAC地址。OpenFlow控制器3设置用于迁移目的地VM的通信流,该通信流是根据向交换机4i通告的MAC地址生成的。交换机4i基于用于迁移目的地VM的通信流所示的行动445,传输遵循用于所述迁移目的地VM的通信流所示出的规则444的所述虚拟机的分组数据到迁移目的地虚拟机。
文档编号G06F11/30GK102576343SQ20108004353
公开日2012年7月11日 申请日期2010年9月22日 优先权日2009年9月28日
发明者大和纯一, 芦原浩司 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1