当侦测到退化网络链路操作时在网络服务器之间迁移虚拟机.pdf

上传人:000****221 文档编号:4750038 上传时间:2018-11-05 格式:PDF 页数:25 大小:7.63MB
返回 下载 相关 举报
摘要
申请专利号:

CN201180024157.2

申请日:

2011.05.17

公开号:

CN102934087A

公开日:

2013.02.13

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/50申请日:20110517|||公开

IPC分类号:

G06F9/50; H04L29/08; G06F11/16

主分类号:

G06F9/50

申请人:

国际商业机器公司

发明人:

N·P·汉松; B·A·史密斯; E·S·苏弗恩; J·L·伍德里奇

地址:

美国纽约

优先权:

2010.05.20 US 12/784,061

专利代理机构:

北京市中咨律师事务所 11247

代理人:

张亚非;于静

PDF下载: PDF下载
内容摘要

在网络服务器之间迁移虚拟机,这些服务器与包括网络设备的数据通信网络耦接以进行数据通信,其中迁移包括:由虚拟机管理模块(“VMMM”)在特定服务器上建立一个或多个虚拟机;由该VMMM向该网络设备查询将该网络设备耦接至该特定服务器以进行数据通信的链路的链路统计数据;由该VMMM根据所述链路统计数据判定将该网络设备耦接至该特定服务器的该链路是否正在退化;以及在将该网络设备耦接至该特定服务器的该链路正在退化的情况下,将执行于该特定服务器上的虚拟机迁移至目的地服务器。在一些实施例中,仅在有非退化链路可用的情况下才实行迁移。如果无非退化链路可用,则该网络设备(而非该链路))可能正变得失败。

权利要求书

权利要求书一种在网络服务器之间迁移虚拟机的方法,这些服务器与数据通信网络耦接以进行数据通信,该网络包含网络设备,该方法包括:
由虚拟机管理模块(“VMMM”)在特定服务器上建立一个或多个虚拟机;
由该VMMM向该网络设备查询将该网络设备耦接至该特定服务器以进行数据通信的链路的链路统计数据;
由该VMMM根据所述链路统计数据判定将该网络设备耦接至该特定服务器的该链路是否正在退化;以及
如果将该网络设备耦接至该特定服务器的该链路正在退化,则将执行于该特定服务器上的虚拟机迁移至目的地服务器。
如权利要求1的方法,其中将执行于该特定服务器上的虚拟机迁移至目的地服务器进一步包括:
向该网络设备查询将该网络设备耦接至其它服务器的链路的链路统计数据;
根据这些链路统计数据识别非退化链路;以及
将经由该非退化链路耦接至该网络设备的服务器选定为用于执行于该特定服务器上的该虚拟机的该目的地服务器。
如权利要求1或权利要求2的方法,其中迁移虚拟机进一步包括仅在有非退化链路可用的情况下才迁移该虚拟机,该仅在有非退化链路可用的情况下才迁移该虚拟机包括:
向该网络设备查询将该网络设备耦接至其它服务器的链路的链路统计数据;
根据将该网络设备耦接至其它服务器的链路的链路统计数据判定该网络设备正变得失败;
选择失败转接网络设备以用于这些网络服务器之间的数据通信;以及
不迁移该特定服务器上的该虚拟机。
如权利要求1至3中的任何一个的方法,其中所述链路统计数据包括多个加上时间戳的项,这些加上时间戳的项表示在将该网络设备耦接至该特定服务器的该链路上接收的错误字节,且判定将该网络设备耦接至该特定服务器的该链路是否正在退化进一步包括:
自表示错误字节的所述加上时间戳的项计算位错误率;
判定该计算的位错误率是否大于预定阈值;以及
如果该计算的位错误率大于该预定阈值,则判定将该网络设备耦接至该特定服务器的该链路正在退化。
如前述任何一个权利要求的方法,其中所述链路统计数据包括描述在将该网络设备耦接至该特定服务器的该链路上接收的测试数据的符号错误的信息,且判定将该网络设备耦接至该特定服务器的该链路是否正在退化进一步包括:
根据描述符号错误的该信息计算符号错误的频率;
根据描述符号错误的该信息判定在将该网络设备耦接至该特定服务器的该链路上的符号错误的频率是否大于预定阈值;以及
如果符号错误的该频率大于该预定阈值,则判定将该网络设备耦接至该特定服务器的该链路正在退化。
如前述任何一个权利要求的方法,其进一步包括:
由该网络设备监视在这些服务器之间沿着将这些服务器耦接至彼此及该网络设备的链路传递的数据通信;以及
将链路统计数据存储于一管理信息库(“MIB”)中,所述链路统计数据描述在这些服务器之间沿着将这些服务器耦接至彼此及该网络设备的链路传递的数据通信。
一种用于在网络服务器之间迁移虚拟机的装置,这些服务器与数据通信网络耦接以进行数据通信,该网络具有网络设备,该装置具有计算机处理器和操作地耦接至该计算机处理器的计算机存储器,且该装置包括:
用于由虚拟机管理模块(“VMMM”)在特定服务器上建立一个或多个虚拟机的装置;
用于由该VMMM向该网络设备查询将该网络设备耦接至该特定服务器以进行数据通信的链路的链路统计数据的装置;
用于由该VMMM根据所述链路统计数据判定将该网络设备耦接至该特定服务器的该链路是否正在退化的装置;以及
用于如果将该网络设备耦接至该特定服务器的该链路正在退化,则将执行于该特定服务器上的虚拟机迁移至目的地服务器的装置。
如权利要求7的装置,其中用于将执行于该特定服务器上的虚拟机迁移至目的地服务器的装置进一步包括:
用于向该网络设备查询将该网络设备耦接至其它服务器的链路的链路统计数据的装置;
用于根据所述链路统计数据识别非退化链路的装置;以及
用于将经由该非退化链路耦接至该网络设备的服务器选定为用于执行于该特定服务器上的该虚拟机的该目的地服务器的装置。
如权利要求7或权利要求8的装置,其中用于迁移虚拟机的装置进一步包括用于仅在有非退化链路可用的情况下才迁移该虚拟机的装置,该用于仅在有非退化链路可用的情况下才迁移该虚拟机的装置包括:
用于向该网络设备查询将该网络设备耦接至其它服务器的链路的链路统计数据的装置;
用于根据将该网络设备耦接至其它服务器的链路的所述链路统计数据判定该网络设备正变得失败的装置;
用于选择失败转接网络设备以用于这些网络服务器之间的数据通信的装置;以及
用于不迁移该特定服务器上的该虚拟机的装置。
如权利要求7至9中的任何一个的装置,其中所述链路统计数据包括多个加上时间戳的项,这些加上时间戳的项表示在将该网络设备耦接至该特定服务器的该链路上接收的错误字节,且所述用于判定将该网络设备耦接至该特定服务器的该链路是否正在退化的装置进一步包括:
用于自表示错误字节的所述加上时间戳的项计算位错误率的装置;
用于判定该计算的位错误率是否大于预定阈值的装置;以及
用于如果该计算的位错误率大于该预定阈值,则判定将该网络设备耦接至该特定服务器的该链路正在退化的装置。
如权利要求7至10中的任何一个的装置,其中所述链路统计数据包括描述在将该网络设备耦接至该特定服务器的该链路上接收的测试数据的符号错误的信息,且所述用于判定将该网络设备耦接至该特定服务器的该链路是否正在退化的装置进一步包括:
用于根据描述符号错误的该信息计算这些符号错误的频率的装置;
用于根据描述符号错误的该信息判定在将该网络设备耦接至该特定服务器的该链路上的符号错误的频率是否大于预定阈值的装置;以及
用于如果符号错误的该频率大于该预定阈值,则判定将该网络设备耦接至该特定服务器的该链路正在退化的装置。
如权利要求7至11中的任何一个的装置,其进一步包括用于执行如下操作的装置:
由该网络设备监视在这些服务器之间沿着将这些服务器耦接至彼此及该网络设备的链路传递的数据通信;以及
将链路统计数据存储于管理信息库(“MIB”)中,所述链路统计数据描述在这些服务器之间沿着将这些服务器耦接至彼此及该网络设备的链路传递的数据通信。
一种包括存储在计算机可读介质上的计算机程序代码的计算机程序,当所述计算机程序代码被加载到计算机系统中并在其上执行时,使得所述计算机系统执行根据权利要求1至6中任一项的方法的所有步骤。

说明书

说明书当侦测到退化网络链路操作时在网络服务器之间迁移虚拟机
技术领域
本发明的领域为数据处理,或更具体言之,为用于在侦测到退化网络链路操作时在网络服务器(networked server)之间迁移虚拟机的方法、装置及产品。
背景技术
1948年对EDVAC计算机系统的开发常被称为计算机时代的开始。自那时起,计算机系统已演进为极其复杂的设备。现今的计算机远比诸如EDVAC的早期系统先进。计算机系统通常包括硬件与软件组件、应用程序、操作系统、处理器、总线、存储器、输入/输出设备等的组合。随着半导体处理及计算机架构的进展推动计算机性能变得愈来愈高,更先进的计算机软件已演进以利用较高的硬件性能,从而导致现今的计算机系统远比仅仅几年前的计算机系统强大。
现今的计算机系统常常连网以用于数据通信,且常常通过使用虚拟机(仿真硬件的软件)来同时执行数个操作系统。耦接计算机系统的网络设备(network device)及数据通信链路可不时地开始失败。现今维持虚拟机与运行虚拟机的计算机系统之间的数据通信的方法通常等到完全通信失败发生之后才采取校正动作或向运行虚拟机的计算机要求大量处理功率。因此,希望解决现有技术中的这些缺点。
发明内容
相应地,在第一个方面,本发明提供了一种用于在网络服务器之间迁移虚拟机的方法,这些服务器与数据通信网络耦接以进行数据通信,该网络包含网络设备,该方法包括:由虚拟机管理模块(“VMMM”)在特定服务器上建立一个或多个虚拟机;由该VMMM向该网络设备查询将该网络设备耦接至该特定服务器以进行数据通信的链路的链路统计数据;由该VMMM根据所述链路统计数据判定将该网络设备耦接至该特定服务器的该链路是否正在退化;以及如果将该网络设备耦接至该特定服务器的该链路正在退化,则将执行于该特定服务器上的虚拟机迁移至目的地服务器。
优选地,将执行于该特定服务器上的虚拟机迁移至目的地服务器进一步包括:向该网络设备查询将该网络设备耦接至其它服务器的链路的链路统计数据;根据这些链路统计数据识别非退化链路;以及将经由该非退化链路耦接至该网络设备的服务器选定为用于执行于该特定服务器上的该虚拟机的该目的地服务器。
优选地,迁移虚拟机进一步包括仅在有非退化链路可用的情况下才迁移该虚拟机,该仅在有非退化链路可用的情况下才迁移该虚拟机包括:向该网络设备查询将该网络设备耦接至其它服务器的链路的链路统计数据;根据将该网络设备耦接至其它服务器的链路的链路统计数据判定该网络设备正变得失败;选择失败转接(failover)网络设备以用于这些网络服务器之间的数据通信;以及不迁移该特定服务器上的该虚拟机。优选地,所述链路统计数据包括多个加上时间戳的项,这些加上时间戳的项表示在将该网络设备耦接至该特定服务器的该链路上接收的错误字节,且判定将该网络设备耦接至该特定服务器的该链路是否正在退化进一步包括:自表示错误字节的所述加上时间戳的项计算位错误率;判定该计算的位错误率是否大于预定阈值;以及如果该计算的位错误率大于该预定阈值,则判定将该网络设备耦接至该特定服务器的该链路正在退化。优选地,所述链路统计数据包括描述在将该网络设备耦接至该特定服务器的该链路上接收的测试数据的符号错误的信息,且判定将该网络设备耦接至该特定服务器的该链路是否正在退化进一步包括:根据描述符号错误的该信息计算符号错误的频率;根据描述符号错误的该信息判定在将该网络设备耦接至该特定服务器的该链路上的符号错误的频率是否大于预定阈值;以及如果符号错误的该频率大于该预定阈值,则判定将该网络设备耦接至该特定服务器的该链路正在退化。该方法可进一步包括:由该网络设备监视在这些服务器之间沿着将这些服务器耦接至彼此及该网络设备的链路传递的数据通信;以及将链路统计数据存储于一管理信息库(“MIB”)中,所述链路统计数据描述在这些服务器之间沿着将这些服务器耦接至彼此及该网络设备的链路传递的数据通信。
在第二个方面,本发明提供了一种用于在网络服务器之间迁移虚拟机的装置,这些服务器与数据通信网络耦接以进行数据通信,该网络具有网络设备,该装置具有计算机处理器和操作地耦接至该计算机处理器的计算机存储器,且该装置包括:用于由虚拟机管理模块(“VMMM”)在特定服务器上建立一个或多个虚拟机的装置;用于由该VMMM向该网络设备查询将该网络设备耦接至该特定服务器以进行数据通信的链路的链路统计数据的装置;用于由该VMMM根据所述链路统计数据判定将该网络设备耦接至该特定服务器的该链路是否正在退化的装置;以及用于如果将该网络设备耦接至该特定服务器的该链路正在退化,则将执行于该特定服务器上的虚拟机迁移至目的地服务器的装置。
该第二个方面的装置可进一步包括被适配为执行第一个方面的优选步骤的装置。
在第三个方面,提供了一种包括存储在计算机可读介质上的计算机程序代码的计算机程序,当所述计算机程序代码被加载到计算机系统中并在其上执行时,使得所述计算机系统执行根据第一个方面的方法的所有步骤。
因此,描述了在网络服务器之间迁移虚拟机的方法、装置及产品。在本发明的实施例中,这些服务器与包括网络设备的数据通信网络耦接以进行数据通信。根据本发明的实施例的迁移虚拟机包括:由虚拟机管理模块(“VMMM”)在特定服务器上建立一个或多个虚拟机;由该VMMM向该网络设备查询将该网络设备耦接至该特定服务器以进行数据通信的链路的链路统计数据;以及由该VMMM根据所述链路统计数据判定将网络设备耦接至该特定服务器的链路是否正在退化。如果将该网络设备耦接至该特定服务器的链路正在退化,则将执行于该特定服务器上的虚拟机迁移至目的地服务器。
附图说明
现在将参照附图仅作为示例描述本发明优选实施例,在附图中:
图1给出在其中根据本发明的实施例在网络服务器之间迁移虚拟机的示例性数据中心的线图;
图2给出根据本发明的实施例的用于在网络服务器之间迁移虚拟机的示例性系统的网络图;
图3给出示出了根据本发明的实施例的用于在网络服务器之间迁移虚拟机的示例性方法的流程图;
图4给出示出了根据本发明的实施例的用于在网络服务器之间迁移虚拟机的另一示例性方法的流程图;
图5给出示出了根据本发明的实施例的用于在网络服务器之间迁移虚拟机的另一示例性方法的流程图;
图6给出示出了根据本发明的实施例的用于在网络服务器之间迁移虚拟机的另一示例性方法的流程图;
图7给出示出了根据本发明的实施例的用于由VMMM根据链路统计数据判定将网络设备耦接至特定服务器的链路是否正在退化的示例性方法的流程图;以及
图8给出说明了根据本发明的实施例的用于由VMMM根据链路统计数据判定将网络设备耦接至特定服务器的链路是否正在退化的另一示例性方法的流程图。
具体实施方式
参考自图1开始的附图描述根据本发明的用于在网络服务器之间迁移虚拟机的示例性方法、装置及产品。图1给出在其中根据本发明的实施例的在网络服务器之间迁移虚拟机的示例性数据中心的线图。数据中心(120)为用于容纳对任务关键的计算机系统及相关联的组件的设施。此类数据中心可包括环境控制(空气调节、火灾扑灭等)、冗余/备用电源、冗余数据通信连接及由对该设施内间隔化(compartmentalized)的安全区域的生物测量访问控制所突出显示的高安全性。数据中心也可容纳大量电子设备,典型的为计算机及通信设备。数据中心可由组织维护以用于处理其操作所必需的数据的目的。举例而言,银行可具有数据中心,在该数据中心中维护有银行客户的账户信息,且执行涉及这些账户的事务(transaction)。事实上,每一个中型或更大的公司具有某一类型的数据中心,且较大的公司常常具有数十个数据中心。
作为术语用于本说明书中的虚拟机(“VM”)指机器(诸如,计算机)的软件实现。虚拟机使得能够在不同虚拟机之间共享基础物理机器资源,这些虚拟机中的每一个可运行其自身的操作系统。提供虚拟化的软件层被称为虚拟机监视器或管理程序。管理程序为自动化计算机器的模块,其执行软件及硬件平台虚拟化以便使多个操作系统能够在单独虚拟机中同时执行于主机计算机上。管理程序直接执行于主机的硬件上以控制硬件访问及监视客户(gues t)操作系统。客户操作系统执行于高于管理程序的层级上。由管理程序提供的平台虚拟化在本说明书中被称为虚拟化环境。虚拟化环境为自操作系统及其它软件应用的角度来看计算平台的物理特性(计算机处理器、计算机存储器、I/O适配器等)被抽象化的环境。
VM提供许多益处,包括例如:
多个OS环境可以彼此充分隔离的方式共存于相同的物理计算机硬件资源上;
有些不同于基础物理计算机硬件资源的指令集架构(ISA)的指令集架构;
应用供应、维护、高可用性及灾难恢复;以及
如本领域技术人员将想到的其它益处。
图1的系统一般能够在服务器之间进行VM迁移。作为术语在本说明书中使用的“迁移”为虚拟机自一个物理服务器至另一个物理服务器的有效移动。本文根据VM自一个服务器至另一个服务器的“有效”移动来描述迁移,因为迁移并非指移动的手段而是指移动的最终结果。也就是说,迁移描述两个状态,在一个状态中特定VM执行于特定服务器上,且在另一个状态中,该特定VM不再执行于该特定服务器上而改为执行于另一服务器上。因此,自第一状态至第二状态,可将该特定VM描述为已自该特定服务器移动至另一服务器。然而,在本发明的范畴内,借以实行这种VM“移动”的手段可极大地改变。将VM自特定服务器迁移至另一服务器可包括例如:将表示执行于该特定服务器上的VM的数据自该特定服务器的存储器复制至另一服务器的存储器;将先前建立的执行于该特定服务器上的VM的映像上载至另一服务器且在该另一服务器上执行,及终止执行执行于该特定服务器上的VM;在另一服务器中建立虚拟机的默认映像,且在该VM的该默认映像中执行执行于该特定服务器的VM中的相同用户级应用的实例等。
图1的示例中的示例性数据中心(120)包括blade centerTM(刀片中心)(100),blade centerTM(100)为一类型的服务器机箱(chassis),其特别被配置为容纳若干刀片服务器。作为术语在本说明书中使用的服务器一般指经由网络连接提供服务(例如,数据库访问、文件传送、远程访问)或资源(例如,文件空间)的多用户计算机。如上下文所要求,术语“服务器”包括性地指服务器的计算机硬件以及运行于该服务器上的任何服务器应用软件或操作系统软件。服务器应用为接受连接以便通过发回响应来服务于来自用户的请求的应用程序。服务器应用可执行于与使用其的客户端应用相同的计算机上,或服务器应用可经由计算机网络接受连接。服务器应用的示例包括文件服务器、数据库服务器、备份服务器、打印服务器、邮件服务器、web服务器、FTP服务器、应用服务器、VPN服务器、DHCP服务器、DNS服务器、WINS服务器、登录服务器、安全服务器、域控制器、备份域控制器、代理服务器、防火墙等。
刀片服务器为具有被优化以最小化物理空间及能量的使用的模块化设计的服务器计算机。尽管标准机架安装的服务器可以至少一电源线及网络缆线来运行,刀片服务器使许多组件被移除以节省空间、最小化功率消耗及其它考虑,而仍具有所有功能性组件以被视作计算机。刀片中心可持有多个刀片服务器,提供诸如供电、冷却、连网、各种互连及管理的服务,尽管不同刀片提供者围绕将什么包括于刀片自身中(且有时完全包括于外壳中)具有不同原则。
在图1的示例中,刀片中心(100)包括两个机柜插槽(cabinet bay)(104、106),该两个机柜插槽中的每一个包括若干组件。机柜插槽(104)含有若干刀片服务器(108),这些刀片服务器(108)中的每一个由电源(132)供电。机柜插槽(106)含有用于刀片中心(100)的电源(132)、数据通信网络路由器(130)、网络交换器(134)及下文中更详细描述的虚拟机管理模块(“VMMM”)(102)。机柜插槽(106)也含有独立磁盘冗余阵列(“RAID”)(136)及电源板(power strip)(138)。
在图1中,为了解释清晰起见而以展开形式示出了刀片中心(100)中的刀片服务器(108)中的两个:刀片服务器(152)及刀片服务器(128)。然而,本领域技术人员将理解,刀片中心(100)的刀片服务器(108)中的每一个可包括与服务器(152、128)类似的组件,且当根据本发明的实施例参与VM迁移时以类似方式操作。作为可在根据本发明的实施例实行VM迁移的系统中使用的服务器的一示例,考虑服务器(152)。服务器(152)包括至少一个计算机处理器(156)或“CPU”以及经由高速存储器总线(166)及总线适配器(158)连接至处理器(156)及服务器(152)的其它组件的随机存取存储器(168)(“RAM”)。
管理程序(140)存储于服务器(152)的RAM(168)中,其使两个虚拟机(114、116)能够执行于服务器(152)的基础硬件上且能够利用服务器(152)的硬件资源。操作系统(154)及两个用户级应用(122、123)运行于虚拟机(114)内(或换言之,运行于虚拟机(114)上)。可在根据本发明的实施例参与VM迁移的服务器中使用的操作系统包括UNIXTM、LinuxTM、Microsoft XPTM、AIXTM、IBM的i5/OSTM,及本领域技术人员将想到的其它操作系统。操作系统(154)及两个用户级应用(124、125)运行于虚拟机(116)内。运行于虚拟机(116)内的操作系统(154)可为执行于虚拟机(114)中的相同操作系统(154)的单独实例,或可完全为另一类型的操作系统(154)。也就是说,服务器(152)中的两个操作系统可相同(诸如,UnixTM),或两个操作系统可不同(诸如,UnixTM与Microsoft XPTM)。
图1的示例中的管理程序(140)、操作系统(154)及用户级应用(122‑125)被示出在RAM(168)中,但这种软件的许多组件通常也存储于非易失性存储器中,诸如存储于盘驱动器(170)上。
图1的服务器(152)包括经由扩展总线(160)及总线适配器(158)耦接至处理器(156)及服务器(152)的其它组件的盘驱动器适配器(172)。盘驱动器适配器(172)将非易失性数据存储设备以盘驱动器(170)的形式连接至服务器(152)。可在根据本发明的实施例参与虚拟机在网络服务器之间的迁移的服务器中使用的盘驱动器适配器包括集成驱动电子设备(“IDE”)适配器、小型计算机系统接口(“SCSI”)适配器及本领域技术人员将想到的其它适配器。如本领域技术人员将想到的,非易失性计算机存储器也可实现为光盘驱动器、电可擦除可编程只读存储器(所谓的“EEPROM”或“快闪”存储器)、RAM驱动器等。
图1的示例服务器(152)包括一个或多个输入/输出(“I/O”)适配器(178)。I/O适配器经由例如软件驱动器及计算机硬件实施面向用户的输入/输出,以用于控制到显示设备(诸如,计算机显示屏幕)的输出,以及来自用户输入设备(181)(诸如,键盘及鼠标)的用户输入。图1的示例服务器(152)包括一视频适配器(209),视频适配器(209)为被特别设计以用于到显示设备(180)(诸如,显示屏幕或计算机监视器)的图形输出的I/O适配器的示例。视频适配器(209)经由高速视频总线(164)、总线适配器(158)及前侧总线(162)(也为高速总线)连接至处理器(156)。
图1的示例性服务器(152)包括用于与其它计算机进行数据通信及用于与数据通信网络(图1中未示出)进行数据通信的通信适配器(167)。这种数据通信可经由RS‑232连接、经由外部总线(诸如,通用串行总线(“USB”))、经由数据通信网络(诸如,IP数据通信网络)及以本领域技术人员将想到的其它方式串行地进行。通信适配器实施硬件级的数据通信,通过该硬件级的数据通信,一个计算机直接地或经由数据通信网络将数据通信发送至另一个计算机。可在根据本发明的实施例参与VM迁移的服务器中使用的通信适配器的示例包括用于有线拨号通信的调制解调器、用于有线数据通信网络通信的以太网(IEEE 802.3)适配器、及用于无线数据通信网络通信的802.11适配器。
尽管仅将服务器(152)描述为包括处理器(156)、RAM(168)、总线适配器(158)、通信适配器(167)等,但本领域技术人员将认识到,图1的示例中的刀片服务器(108)中的任一个(以及更具体而言,服务器(128))也可包括类似组件。
图1的刀片中心(100)的交换器(134)为网络设备的一示例,网络设备为在计算机网络中传递数据的单元。网络设备也可称为网络装置(network equipment)、中间系统(Intermediate System,IS)或互通单元(InterWorking Unit,IWU)。作为最后接收者或产生数据的单元被称为主机或数据终端设备。
网络设备的示例包括:
网关:使用不同协议在网络节点处与另一网络介接(interface)的设备。在开放系统互连(“OSI”)的第4至7层上操作。
路由器:判定向着数据包的目的地将该数据包转递至的下一网络点的专用网络设备。通常在OSI的第3层上操作。
桥接器:沿着数据链路层连接多个网络区段(segment)的设备。在OSI的第2层上操作。
交换器:将来自一个网络区段的通信流分配至某些线路或“链路”(预期的目的地或将该区段连接至另一网络区段的目的地)的设备。与集线器不同,交换器拆分网络通信流且将其发送至不同目的地,而非发送至网络上的所有系统。在OSI的第2层上操作。
多层交换器:除在OSI的第2层上进行交换外也在更高协议层提供功能的交换器。
集线器:将多个区段连接在一起且如同这些区段为单一区段般操作这些区段的设备。当使用集线器时,每一附接的设备共享相同广播域及相同冲突域。因此,每次仅一个连接至该集线器的计算机能够传输。取决于网络拓扑,集线器在网络对象(工作站、服务器等)之间提供第1级OSI模型连接。与在个别节点之间提供专用连接的交换器相比,集线器也可提供在所有对象之间共享的带宽。在OSI的第1层上操作。
中继器:在将来自网络的一部分的数字信号放置到另一部分中时放大或重新产生所接收的数字信号的设备。在OSI的第1层上操作。
协议转换器:在两个不同类型的传输(诸如,异步传输与同步传输)之间转换的硬件设备。
桥接式路由器(bridge router):以路由器与桥接器的功能的组合的方式操作的设备。在OSI第2层及OSI第3层两者上操作。
数字媒体接收器:将计算机网络连接至家庭剧院的设备。
图1的示例中的交换器(134)将刀片服务器(108,包括158及128)彼此耦接以用于彼此之间及与路由器(130)及VMMM(102)的数据通信。
图1的虚拟机管理模块(102)(“VMMM”)为包含计算机硬件及软件的聚集的自动化计算机器的模块,其被配置为在图1的示例中的网络服务器(108,包括152及128)之间实行虚拟机迁移。不管迁移技术为何,VMMM也可负责其它虚拟机管理。也说是说,VMMM(102)也可在服务器之间以平衡工作负荷、冗余或可用性的方式管理VM的分配。VMMM(102)可通过管理资源分配或与另一管理模块合作以控制操作特性(节流服务器等)来管理VM的操作。VMMM(102)也可管理虚拟机的解除分配,从而选择是否将虚拟机置于等待(standby)模式中,而非完全关闭电源等。这些仅为根据本发明的实施例VMMM操作以用于VM迁移的许多任务中的少数几个。
图1的示例中的VMMM(102)可通过首先在特定服务器上建立一个或多个VM来根据本发明的实施例在图1的刀片中心(100)中的刀片服务器(108)之间迁移VM。出于解释的目的考虑图1的示例中的VMMM(102)在服务器(152)上建立虚拟机(114)及虚拟机(116)。VMMM可接着向网络设备(交换器(134))查询将该网络设备耦接至该特定服务器以进行数据通信的链路的链路统计数据(112)。如上下文所要求的,本文所描述的作为术语的链路指用以支持设备之间的数据通信的两个设备之间的物理或逻辑耦接。链路统计数据描述沿着将服务器(108、152、128)耦接至彼此及交换器(134)的链路传递的数据通信。
VMMM(102)可接着根据链路统计数据(112)判定将网络设备耦接至该特定服务器的链路是否正在退化,且在将网络设备耦接至该特定服务器的该链路正在退化的情况下,VMMM可将执行于该特定服务器(152)上的虚拟机(诸如,VM(114))迁移至目的地服务器(诸如,服务器(128))。
作为VMMM(102)在图1的数据中心(120)中实行VM迁移的一示例,考虑VMMM(102)首先在服务器(152)上建立VM(114)及VM(116)且未在服务器(128)上建立VM。当服务器(108)(包括服务器(152)及服务器(128))经由网络交换器(134)在彼此之间传递数据通信消息时,该网络交换器(134)监视这些数据通信且将链路统计数据存储在可由VMMM(102)经由查询访问的预定义存储器区域中。不时地,VMMM(102)向交换器(134)查询链路统计数据(112),且判定耦接服务器(152)与交换器(134)的链路是否正在退化。如果链路正在退化,则VMMM(102)将VM(114)及VM(116)迁移至服务器(128)(此处被示为VM(118)及VM(119))。如果当前没有管理程序运行于服务器(128)中,则VMMM也可在建立VM(118、119)之前首先启动服务器(128)中的管理程序(142)。除VM之外,VMMM(102)也可将执行于服务器(152)的VM(114、116)中的用户级应用(122‑125)迁移至服务器(128)的VM(118、119)。在图1的示例中,用户级应用(122‑125)已被迁移且被示为用户级应用(126、127、129及131)。
本文用以描述通信链路的术语“退化”指可在低于标准水平执行且可能接近失败的链路。本文中,术语“退化”用以指示VM迁移是以前瞻性(聚焦于减轻的)方式而非反应性方式实行的。也就是说,不同于在链路失败之后迁移VM,图1的示例中的VMMM在完全失败之前迁移VM,从而减轻在链路完全失败的情况下原本可能出现的数据通信、产能等的损失。以此方式,服务器及VM的可用性增加了。本领域技术人员也将了解,监视数据通信及判定链路是否正在退化并非由支持且使能VM的管理程序实行,而是由网络设备及VMMM实行。以此方式,管理程序及因此管理程序操作于其上的服务器不承受监视数据通信及判定数据通信链路是否正在退化的负荷,从而增加了服务器的操作效率且减少了操作开销。
链路可能由于多种原因而退化,包括例如由于将导致循环冗余检查(CRC)错误的信号错误引入数据通信包中的电磁干扰、由于使链路间符号信号不匹配交换器硬件至电缆特性的老化物理电缆。这些原因仅为链路退化的许多可能因素中的少数几个示例原因,且这些原因中的每一个完全在本发明的范畴内。
构成图1中所说明的示例性系统的服务器及其它设备的安排是用于解释,并非用于限制。如本领域技术人员将想到的,根据本发明的各种实施例可用的数据处理系统可包括图1中未示出的额外服务器、路由器、其它设备及对等架构。这些数据处理系统中的网络可支持许多数据通信协议,包括例如TCP(传输控制协议)、IP(网际协议)、HTTP(超文本传送协议)、WAP(无线访问协议)、HDTP(手持设备传送协议)及本领域技术人员将想到的其它协议。本发明的各种实施例可在图1中所示出的那些平台之外的多种硬件平台上实施。
图2给出根据本发明的实施例的用于在网络服务器之间迁移虚拟机的一示例性系统的网络图。图2的示例性系统类似于在图1的示例中示出的系统,因为图2的系统也包括服务器(152、128)、形式为交换器(134)的网络设备及VMMM(102),所有这些设备经由数据通信网络(局域网络(“LAN”)(101))彼此耦接或彼此数据通信。服务器(152、128)及VMMM(102)也耦接至其它服务器(150)以用于数据通信。
图2的示例系统中的服务器(152、128及150)经由数据通信链路耦接至交换器(134)以进行数据通信。服务器(152)经由链路(192)耦接至数据通信网络(101)及交换器(134)以进行数据通信,服务器(128)经由链路(194)耦接至数据通信网络(101)及交换器(134)以进行数据通信,且其它服务器(150)中的至少一个经由链路(190)耦接至数据通信网络(101)及交换器(134)以进行数据通信。如上下文所要求的,本文所描述的作为术语的链路指用以支持设备之间的数据通信的两个设备之间的物理或逻辑耦接。举例而言,将服务器耦接至交换器的以太网络电缆可为“链路”的一示例。由两个端点(例如,服务器及交换器的端口)指定的其间的逻辑耦接也可为链路的一示例。本文用以描述网络设备与服务器之间的关系的术语“耦接”指描述服务器与网络设备之间的任何连接(直接的或其它方式的)。也就是说,描述网络设备与服务器之间关系的术语“耦接”不限于网络设备与网络设备之间的直接物理连接,而是也可包括经由其它网络设备的间接连接。
在图2的系统中,服务器(152、128及150)被实施为与在图1中描绘且针对图1描述的服务器包括类似组件(处理器(156)、RAM(168)、总线适配器(158)、通信适配器(178)等)的计算机。在图2的示例中,交换器(134)也被实施为与服务器(152及128)类似的类型的计算机(即,自动化计算机器)。交换器(134)包括耦接至RAM(168)的处理器(156)。当然,交换器可包括更多组件、软件及硬件,但为了解释清晰起见在图2的示例中描绘交换器仅具有RAM及处理器。通信流监视器(202)存储于交换器(134)的RAM(168)中。通信流监视器(202)为计算机程序指令的模块,这些计算机程序指令在被执行时使网络交换器(134)监视服务器(152、128、250)之间沿着将服务器(152、128、150)耦接至彼此及交换器(134)的链路(190、192、194)传递的数据通信,且在管理信息库(“MIB”)(204)中存储链路统计数据(112),所述链路统计数据(112)描述服务器之间沿着将服务器耦接至彼此及交换器的链路传递的数据通信。链路统计数据的示例包括(对于每一链路)沿链路自特定设备传输的字节的数目、沿链路由特定设备接收的字节的数目、沿链路载运的错误字节的数目及沿链路传播的符号错误的事例(instance)等。
如上文所提及,链路统计数据可存储于MIB中。MIB为用于管理通信网路中的实体的虚拟数据库。该数据库为分层式的(树状结构),且经由对象标识符来寻址项。因特网文件意见请求(“RFC”)论述了MIB,尤其是RFC 1155“Structure and Identification of Management Information for TCP/IPbased internets”(用于基于TCP/IP的互联网络的管理信息的结构和标识)及其两个伴随文件RFC 1213“Management Information Base for Network Management of TCP/IP‑based internet s”(用于基于TCP/IP的互联网络的网络管理的管理信息库)及RFC 1157“A Simple Network Management Protocol”(简单网络管理协议)。
除交换器(134)之外,且如上文关于图1所提及的,VMMM(102)也可实施为自动化计算机器(即,计算机)。因此,为了进一步解释,图2给出被实施为计算机的一示例VMMM(102)。图2的示例VMMM(102)包括类似于服务器(152、128)的那些组件的组件:处理器(156)、总线适配器(158)、通信适配器(178)、RAM(168)等。虚拟机分配器(110)存储于VMMM(102)的RAM(168)中。VM分配器(110)为根据本发明的实施例在执行时在网络服务器之间迁移虚拟机的计算机程序指令的模块。示例VM分配器(110)可通过以下操作在图2的系统中的服务器(152、128及150)之间迁移VM:首先,在特定服务器上建立一个或多个虚拟机(114、116),向网络设备(134)查询将网络设备(134)耦接至特定服务器(152)以进行数据通信的链路(192)的链路统计数据(112),根据该链路统计数据(112)判定将网络设备(134)耦接至特定服务器(152)的链路(192)是否正在退化,且在该链路(192)正在退化的情况下将执行于该特定服务器(152)上的虚拟机(114、116)迁移至目的地服务器(128或150)。
除迁移虚拟机(114、116)之外,VM分配器(110)也可迁移执行于VM内的用户级应用(122、123、124、125)。举例而言,在图2的系统中,VM分配器(110)可将服务器(152)上的VM(114)迁移至服务器(128)上的VM(118)。VM分配器(110)也可将执行于VM(114)内的用户级应用(122、123)迁移至执行于VM(118)内的用户级应用(126、127)。以类似方式,VM分配器(110)可将服务器(152)上的VM(116)迁移至服务器(128)上的VM(119)。VM分配器(110)也可将执行于VM(116)内的用户级应用(124、125)迁移至执行于VM(119)内的用户级应用(129、131)。
构成图2中所说明的示例性系统的服务器及其它设备的安排是用于解释,并非用于限制。如本领域技术人员将想到的,根据本发明的各种实施例可用的数据处理系统可包括图2中未示出的额外服务器、路由器、其它设备及对等架构。这种数据处理系统中的网络可支持许多数据通信协议,包括例如TCP(传输控制协议)、IP(网际协议)、HTTP(超文本传送协议)、WAP(无线访问协议)、HDTP(手持设备传送协议)及本领域技术人员将想到的其它协议。本发明的各种实施例可在除图2中所说明的那些平台之外的多种硬件平台上实施。
为了进一步解释,图3给出了示出根据本发明的实施例的用于在网络服务器之间迁移虚拟机的一示例性方法的流程图。在图3的方法中,服务器(312、318)经由数据通信链路(192、194)与包括网络设备(310)的数据通信网络耦接以进行数据通信。作为术语在本说明书中使用的网络设备指能够耦接其它设备以进行数据通信且能够提供描述沿着将其它设备耦接至彼此及网络设备的链路传递的数据通信的链路统计数据的自动化计算机器。网络设备的示例包括如本领域技术人员将想到的网络交换器、网络路由器、集线器等。
图3的方法包括由虚拟机管理模块(102)在特定服务器(312)上建立(302)一个或多个虚拟机(316)。由虚拟机管理模块(102)在特定服务器(312)上建立(302)一个或多个虚拟机(316)可通过在该特定服务器上执行管理程序且将该管理程序配置为支持具有特定配置(如本领域技术人员将想到的若干处理器、存储器资源等)的虚拟机来实行。
图3的方法也包括由VMMM(102)向网络设备(310)查询(304)将网络设备(310)耦接至特定服务器(312)以进行数据通信的链路(192)的链路统计数据(112)。可以各种方式实行向网络设备(310)查询(304)链路统计数据(112),这些方式包括例如通过将请求发送至网络设备的预指定为用于接收与MIB(204)相关的查询的网络地址或端口的网络地址或端口,其中该请求包括标识特定链路的对象标识符或标识特定服务器的对象标识符。VMMM可借以查询链路统计数据(112)的另一方式为请求存储于网络设备中的关于数据通信通信流的所有数据且自该所请求数据导出链路统计数据(112)。
图3的方法也包括由VMMM(102)根据链路统计数据(112)来判定(306)将网络设备(310)耦接至特定服务器(312)的链路(192)是否正在退化,且在将网络设备(310)耦接至特定服务器(312)的该链路(192)并未在退化的情况下等待(308)预定义时间量,然后再次查询网络设备。也就是说,在图3的方法中,VMMM(102)被配置为向网络设备(310)周期性地轮询链路统计数据(112)。
如果将网络设备(310)耦接至特定服务器(312)的链路(192)正在退化,则图3的方法通过将执行于特定服务器(312)上的虚拟机(316)迁移(314)至目的地服务器(318)来继续。可以各种方式实行将执行于特定服务器(312)上虚拟机(316)迁移(314)至目的地服务器(318),这些方式包括例如通过自特定服务器(312)存储器复制表示VM的数据且将该数据写入至目的地服务器(318)的存储器(由此确保操作于特定服务器(312)上的VM的实例的精确复本)、加载默认虚拟机的预配置映像(该预配置映像用于产生该特定VM(316))、自特定服务器(312)获取指定特定VM(316)的各种属性的配置文件及使用这些属性在目的地服务器(318)上启动另一VM(336)等。迁移(314)虚拟机也可包括迁移执行于该虚拟机内的任何应用。
为了进一步解释,图4给出了示出根据本发明的实施例的用于在网络服务器之间迁移虚拟机的另一示例性方法的流程图。图4的方法类似于图3的方法,包括如其所进行的在特定服务器(312)上建立(302)一个或多个虚拟机(316)、查询(304)网络设备(310)、判定(306)链路(192)是否正在退化及在链路(192)正在退化的情况下将虚拟机(316)迁移(314)至目的地服务器(318)。
然而,图4的方法不同于图3的方法的不同之处在于图4的方法包括由网络设备(310)监视(402)服务器之间沿着将这些服务器耦接至彼此及网络设备(310)的链路(192、194)传递的数据通信,及将描述服务器之间沿着将这些服务器耦接至彼此及网络设备的链路传递的数据通信的链路统计数据(112)存储(406)于可由VMMM(102)访问的管理信息库(“MIB”)中。网络设备(310)可以多种方式监视数据通信。通过对于每一链路监视沿着特定链路自网络设备传输的字节的数目、沿着特定链路由网络设备接收的字节的数目、自特定链路接收的错误的字节的数目、符号错误的实例的数目,以及如本领域技术人员将想到的其他方式。
为了进一步解释,图5给出了示出根据本发明的实施例的用于在网络服务器之间迁移虚拟机的另一示例性方法的流程图。图5的方法类似于图3的方法,包括如其所进行的在特定服务器(312)上建立(302)一个或多个虚拟机(316)、查询(304)网络设备(310)、判定(306)链路(192)是否正在退化及在链路(192)正在退化的情况下将虚拟机(316)迁移(314)至目的地服务器(318)。
然而,图5的方法不同于图3的方法的不同之处在于在图5的方法中,在链路(192)正在退化的情况下将虚拟机(316)迁移(314)至目的地服务器(318)进一步包含向网络设备查询(502)将网络设备耦接至其它服务器的链路的链路统计数据,根据该链路统计数据识别(508)非退化链路,及将经由该非退化链路耦接至网络设备的服务器选定(510)为用于执行于特定服务器上的虚拟机的目的地服务器(318)。也就是说,在图5的方法中,VMMM由于退化链路而将虚拟机自特定服务器(312)迁移至未经由退化链路耦接至网络及网络设备(310)的另一服务器。如果多个服务器存在非退化链路,则VMMM可以各种方式将一服务器选定(510)为用于特定VM(316)的目的地服务器(510),这些方式包括:根据循环(round robin)式选择算法;根据将待选择的下一服务器指定为目的地服务器的一组规则;通过用于工作负荷平衡的优化例程;及以本领域技术人员将想到的其它方式。
为了进一步解释,图6给出了示出根据本发明的实施例的用于在网络服务器之间迁移虚拟机的另一示例性方法的流程图。图6的方法类似于图3的方法,包括如其所进行的在特定服务器(312)上建立(302)一个或多个虚拟机(316)、查询(304)网络设备(310)、判定(306)链路(192)是否正在退化、及在链路(192)正在退化的情况下将虚拟机(316)迁移(314)至目的地服务器(318)。
然而,图6的方法不同于图3的方法的不同之处在于在图6的方法中,仅在有非退化链路可用的情况下实行迁移(314)虚拟机。也就是说,在图6的方法中,迁移(314)虚拟机(316)包括向网络设备查询(602)将网络设备耦接至其它服务器的链路的链路统计数据(602),及根据将网络设备耦接至其它服务器的链路的链路统计数据(602)判定(606)网络设备(310)正变得失败。也就是说,如果来自所有其它链路的链路统计数据指示退化链路(无链路被视作非退化),则VMMM判定作为一整体的网络设备正变得失败,而非支持一个链路的硬件或软件正变得失败。
图6的方法也包括选择(608)失败转接网络设备(616)以用于网络服务器之间的数据通信且不迁移(610)特定服务器上的虚拟机。可以各种方式实行选择失败转接网络设备(616),诸如通过选择失败转接设备的列表上指定的下一可用设备。选择(608)失败转接网络设备(616)也可包括经由失败转接网络设备(616)重新路由数据通信(诸如,建立链路(612及614)),而非经由已被判定为正变得失败的网络设备(310)。
在图6的方法中,网络设备(310)正变得失败,而非服务器(312)的可能硬件或软件数据通信失败。因而,只要服务器(312)能够经由失败转接网络设备(616)进行网络通信,就不需要将虚拟机(316)迁移至另一服务器。
如上文所提及的,根据本发明的实施例迁移VM包括由VMMM根据链路统计数据判定将网络设备耦接至特定服务器的链路是否正在退化的步骤(及其它步骤)。为了进一步解释,图7给出了示出根据本发明的实施例的用于由VMMM根据链路统计数据判定(306)将网络设备耦接至特定服务器的链路是否正在退化的一示例性方法的流程图。
在图7的方法中,由网络设备收集的链路统计数据包括若干加上时间戳的项(702),这些项中的每一个表示在将网络设备耦接至特定服务器的链路上接收的错误字节。在图7的示例中判定(306)将网络设备耦接至特定服务器的链路是否正在退化是通过自表示错误字节的加上时间戳的项计算(704)位错误率(706)且判定(708)该计算的位错误率(706)是否大于预定阈值(710)来实行的。如果位错误率(706)不大于预定阈值(710),则实行该图的方法的VMMM判定(714)链路并未在退化。然而,如果计算的位错误率(706)大于预定阈值(710),则VMMM判定(712)将网络设备耦接至特定服务器的链路正在退化。
图8给出了示出根据本发明的实施例的用于由VMMM根据链路统计数据判定(306)将网络设备耦接至特定服务器的链路是否正在退化的另一示例性方法的流程图。在图8的方法中,由网络设备收集且提供给实行图8的方法的VMMM的链路统计数据包括描述在将网络设备耦接至特定服务器的链路上接收的测试数据的符号错误(802)的信息。符号错误(802)为以测试模式(pattern)传输至接收器的符号的变更。测试模式的一示例包括由服务器周期性地发送至网络设备的数据的字节。网络设备及服务器两者都知晓数据的字节的适当构成。如果构成数据的测试字节的位中的任何一个不正确,则网络交换器将该事例记录为符号错误。考虑例如包含自服务器发送至网络交换器的数据字节的测试模式,该测试模式具有下列位模式:11111111模式,且被接收为10001010。网络设备将记录符号错误的事例,且在一些情况下指示包括于符号错误的事例中的位错误的数目。在此示例中,网络设备可指示在符号错误的当前事例处出现了五个位错误。
判定(306)将网络设备耦接至特定服务器的链路是否正在退化包括根据描述符号错误(802)的信息计算(804)符号错误的频率(806)及根据描述符号错误(802)的信息判定(808)在将网络设备耦接至特定服务器的链路上的符号错误(802)的频率(806)是否大于预定阈值(810)。如果符号错误(802)的频率(806)不大于预定阈值(810),则VMMM判定(814)链路并未在退化。如果符号错误(802)的频率(806)大于预定阈值(810),则VMMM判定(812)将网络设备耦接至特定服务器的链路正在退化。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
从前面的描述本领域的技术人员将理解,可对本发明的各种实施例进行很多修改及改变。

当侦测到退化网络链路操作时在网络服务器之间迁移虚拟机.pdf_第1页
第1页 / 共25页
当侦测到退化网络链路操作时在网络服务器之间迁移虚拟机.pdf_第2页
第2页 / 共25页
当侦测到退化网络链路操作时在网络服务器之间迁移虚拟机.pdf_第3页
第3页 / 共25页
点击查看更多>>
资源描述

《当侦测到退化网络链路操作时在网络服务器之间迁移虚拟机.pdf》由会员分享,可在线阅读,更多相关《当侦测到退化网络链路操作时在网络服务器之间迁移虚拟机.pdf(25页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102934087 A (43)申请公布日 2013.02.13 CN 102934087 A *CN102934087A* (21)申请号 201180024157.2 (22)申请日 2011.05.17 12/784,061 2010.05.20 US G06F 9/50(2006.01) H04L 29/08(2006.01) G06F 11/16(2006.01) (71)申请人 国际商业机器公司 地址 美国纽约 (72)发明人 NP汉松 BA史密斯 ES苏弗恩 JL伍德里奇 (74)专利代理机构 北京市中咨律师事务所 11247 代理人 张亚非 于静 (5。

2、4) 发明名称 当侦测到退化网络链路操作时在网络服务器 之间迁移虚拟机 (57) 摘要 在网络服务器之间迁移虚拟机, 这些服务 器与包括网络设备的数据通信网络耦接以进行 数据通信, 其中迁移包括 : 由虚拟机管理模块 (“VMMM” ) 在特定服务器上建立一个或多个虚拟 机 ; 由该 VMMM 向该网络设备查询将该网络设备耦 接至该特定服务器以进行数据通信的链路的链路 统计数据 ; 由该 VMMM 根据所述链路统计数据判定 将该网络设备耦接至该特定服务器的该链路是否 正在退化 ; 以及在将该网络设备耦接至该特定服 务器的该链路正在退化的情况下, 将执行于该特 定服务器上的虚拟机迁移至目的地服务。

3、器。在一 些实施例中, 仅在有非退化链路可用的情况下才 实行迁移。 如果无非退化链路可用, 则该网络设备 ( 而非该链路 )) 可能正变得失败。 (30)优先权数据 (85)PCT申请进入国家阶段日 2012.11.15 (86)PCT申请的申请数据 PCT/EP2011/057998 2011.05.17 (87)PCT申请的公布数据 WO2011/144633 EN 2011.11.24 (51)Int.Cl. 权利要求书 3 页 说明书 13 页 附图 8 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 3 页 说明书 13 页 附图 8 页 1/3 页 2 。

4、1. 一种在网络服务器之间迁移虚拟机的方法, 这些服务器与数据通信网络耦接以进行 数据通信, 该网络包含网络设备, 该方法包括 : 由虚拟机管理模块 (“VMMM” ) 在特定服务器上建立一个或多个虚拟机 ; 由该 VMMM 向该网络设备查询将该网络设备耦接至该特定服务器以进行数据通信的链 路的链路统计数据 ; 由该 VMMM 根据所述链路统计数据判定将该网络设备耦接至该特定服务器的该链路是 否正在退化 ; 以及 如果将该网络设备耦接至该特定服务器的该链路正在退化, 则将执行于该特定服务器 上的虚拟机迁移至目的地服务器。 2. 如权利要求 1 的方法, 其中将执行于该特定服务器上的虚拟机迁移至。

5、目的地服务器 进一步包括 : 向该网络设备查询将该网络设备耦接至其它服务器的链路的链路统计数据 ; 根据这些链路统计数据识别非退化链路 ; 以及 将经由该非退化链路耦接至该网络设备的服务器选定为用于执行于该特定服务器上 的该虚拟机的该目的地服务器。 3. 如权利要求 1 或权利要求 2 的方法, 其中迁移虚拟机进一步包括仅在有非退化链路 可用的情况下才迁移该虚拟机, 该仅在有非退化链路可用的情况下才迁移该虚拟机包括 : 向该网络设备查询将该网络设备耦接至其它服务器的链路的链路统计数据 ; 根据将该网络设备耦接至其它服务器的链路的链路统计数据判定该网络设备正变得 失败 ; 选择失败转接网络设备以。

6、用于这些网络服务器之间的数据通信 ; 以及 不迁移该特定服务器上的该虚拟机。 4. 如权利要求 1 至 3 中的任何一个的方法, 其中所述链路统计数据包括多个加上时间 戳的项, 这些加上时间戳的项表示在将该网络设备耦接至该特定服务器的该链路上接收的 错误字节, 且判定将该网络设备耦接至该特定服务器的该链路是否正在退化进一步包括 : 自表示错误字节的所述加上时间戳的项计算位错误率 ; 判定该计算的位错误率是否大于预定阈值 ; 以及 如果该计算的位错误率大于该预定阈值, 则判定将该网络设备耦接至该特定服务器的 该链路正在退化。 5. 如前述任何一个权利要求的方法, 其中所述链路统计数据包括描述在将。

7、该网络设备 耦接至该特定服务器的该链路上接收的测试数据的符号错误的信息, 且判定将该网络设备 耦接至该特定服务器的该链路是否正在退化进一步包括 : 根据描述符号错误的该信息计算符号错误的频率 ; 根据描述符号错误的该信息判定在将该网络设备耦接至该特定服务器的该链路上的 符号错误的频率是否大于预定阈值 ; 以及 如果符号错误的该频率大于该预定阈值, 则判定将该网络设备耦接至该特定服务器的 该链路正在退化。 6. 如前述任何一个权利要求的方法, 其进一步包括 : 由该网络设备监视在这些服务器之间沿着将这些服务器耦接至彼此及该网络设备的 权 利 要 求 书 CN 102934087 A 2 2/3 。

8、页 3 链路传递的数据通信 ; 以及 将链路统计数据存储于一管理信息库 ( “MIB” ) 中, 所述链路统计数据描述在这些服务 器之间沿着将这些服务器耦接至彼此及该网络设备的链路传递的数据通信。 7. 一种用于在网络服务器之间迁移虚拟机的装置, 这些服务器与数据通信网络耦接以 进行数据通信, 该网络具有网络设备, 该装置具有计算机处理器和操作地耦接至该计算机 处理器的计算机存储器, 且该装置包括 : 用于由虚拟机管理模块 (“VMMM” ) 在特定服务器上建立一个或多个虚拟机的装置 ; 用于由该 VMMM 向该网络设备查询将该网络设备耦接至该特定服务器以进行数据通信 的链路的链路统计数据的装。

9、置 ; 用于由该 VMMM 根据所述链路统计数据判定将该网络设备耦接至该特定服务器的该链 路是否正在退化的装置 ; 以及 用于如果将该网络设备耦接至该特定服务器的该链路正在退化, 则将执行于该特定服 务器上的虚拟机迁移至目的地服务器的装置。 8. 如权利要求 7 的装置, 其中用于将执行于该特定服务器上的虚拟机迁移至目的地服 务器的装置进一步包括 : 用于向该网络设备查询将该网络设备耦接至其它服务器的链路的链路统计数据的装 置 ; 用于根据所述链路统计数据识别非退化链路的装置 ; 以及 用于将经由该非退化链路耦接至该网络设备的服务器选定为用于执行于该特定服务 器上的该虚拟机的该目的地服务器的装。

10、置。 9. 如权利要求 7 或权利要求 8 的装置, 其中用于迁移虚拟机的装置进一步包括用于仅 在有非退化链路可用的情况下才迁移该虚拟机的装置, 该用于仅在有非退化链路可用的情 况下才迁移该虚拟机的装置包括 : 用于向该网络设备查询将该网络设备耦接至其它服务器的链路的链路统计数据的装 置 ; 用于根据将该网络设备耦接至其它服务器的链路的所述链路统计数据判定该网络设 备正变得失败的装置 ; 用于选择失败转接网络设备以用于这些网络服务器之间的数据通信的装置 ; 以及 用于不迁移该特定服务器上的该虚拟机的装置。 10.如权利要求7至9中的任何一个的装置, 其中所述链路统计数据包括多个加上时间 戳的项。

11、, 这些加上时间戳的项表示在将该网络设备耦接至该特定服务器的该链路上接收的 错误字节, 且所述用于判定将该网络设备耦接至该特定服务器的该链路是否正在退化的装 置进一步包括 : 用于自表示错误字节的所述加上时间戳的项计算位错误率的装置 ; 用于判定该计算的位错误率是否大于预定阈值的装置 ; 以及 用于如果该计算的位错误率大于该预定阈值, 则判定将该网络设备耦接至该特定服务 器的该链路正在退化的装置。 11. 如权利要求 7 至 10 中的任何一个的装置, 其中所述链路统计数据包括描述在将该 网络设备耦接至该特定服务器的该链路上接收的测试数据的符号错误的信息, 且所述用于 权 利 要 求 书 CN。

12、 102934087 A 3 3/3 页 4 判定将该网络设备耦接至该特定服务器的该链路是否正在退化的装置进一步包括 : 用于根据描述符号错误的该信息计算这些符号错误的频率的装置 ; 用于根据描述符号错误的该信息判定在将该网络设备耦接至该特定服务器的该链路 上的符号错误的频率是否大于预定阈值的装置 ; 以及 用于如果符号错误的该频率大于该预定阈值, 则判定将该网络设备耦接至该特定服务 器的该链路正在退化的装置。 12. 如权利要求 7 至 11 中的任何一个的装置, 其进一步包括用于执行如下操作的装 置 : 由该网络设备监视在这些服务器之间沿着将这些服务器耦接至彼此及该网络设备的 链路传递的数。

13、据通信 ; 以及 将链路统计数据存储于管理信息库 ( “MIB” ) 中, 所述链路统计数据描述在这些服务器 之间沿着将这些服务器耦接至彼此及该网络设备的链路传递的数据通信。 13. 一种包括存储在计算机可读介质上的计算机程序代码的计算机程序, 当所述计算 机程序代码被加载到计算机系统中并在其上执行时, 使得所述计算机系统执行根据权利要 求 1 至 6 中任一项的方法的所有步骤。 权 利 要 求 书 CN 102934087 A 4 1/13 页 5 当侦测到退化网络链路操作时在网络服务器之间迁移虚拟 机 技术领域 0001 本发明的领域为数据处理, 或更具体言之, 为用于在侦测到退化网络链路。

14、操作时 在网络服务器 (networked server) 之间迁移虚拟机的方法、 装置及产品。 背景技术 0002 1948 年对 EDVAC 计算机系统的开发常被称为计算机时代的开始。自那时起, 计算 机系统已演进为极其复杂的设备。现今的计算机远比诸如 EDVAC 的早期系统先进。计算机 系统通常包括硬件与软件组件、 应用程序、 操作系统、 处理器、 总线、 存储器、 输入 / 输出设 备等的组合。随着半导体处理及计算机架构的进展推动计算机性能变得愈来愈高, 更先进 的计算机软件已演进以利用较高的硬件性能, 从而导致现今的计算机系统远比仅仅几年前 的计算机系统强大。 0003 现今的计算机。

15、系统常常连网以用于数据通信, 且常常通过使用虚拟机 ( 仿真硬件 的软件 ) 来同时执行数个操作系统。耦接计算机系统的网络设备 (network device) 及数 据通信链路可不时地开始失败。 现今维持虚拟机与运行虚拟机的计算机系统之间的数据通 信的方法通常等到完全通信失败发生之后才采取校正动作或向运行虚拟机的计算机要求 大量处理功率。因此, 希望解决现有技术中的这些缺点。 发明内容 0004 相应地, 在第一个方面, 本发明提供了一种用于在网络服务器之间迁移虚拟机的 方法, 这些服务器与数据通信网络耦接以进行数据通信, 该网络包含网络设备, 该方法包 括 : 由虚拟机管理模块 (“VMM。

16、M” ) 在特定服务器上建立一个或多个虚拟机 ; 由该 VMMM 向该 网络设备查询将该网络设备耦接至该特定服务器以进行数据通信的链路的链路统计数据 ; 由该 VMMM 根据所述链路统计数据判定将该网络设备耦接至该特定服务器的该链路是否正 在退化 ; 以及如果将该网络设备耦接至该特定服务器的该链路正在退化, 则将执行于该特 定服务器上的虚拟机迁移至目的地服务器。 0005 优选地, 将执行于该特定服务器上的虚拟机迁移至目的地服务器进一步包括 : 向 该网络设备查询将该网络设备耦接至其它服务器的链路的链路统计数据 ; 根据这些链路统 计数据识别非退化链路 ; 以及将经由该非退化链路耦接至该网络设。

17、备的服务器选定为用于 执行于该特定服务器上的该虚拟机的该目的地服务器。 0006 优选地, 迁移虚拟机进一步包括仅在有非退化链路可用的情况下才迁移该虚拟 机, 该仅在有非退化链路可用的情况下才迁移该虚拟机包括 : 向该网络设备查询将该网络 设备耦接至其它服务器的链路的链路统计数据 ; 根据将该网络设备耦接至其它服务器的链 路的链路统计数据判定该网络设备正变得失败 ; 选择失败转接 (failover) 网络设备以用 于这些网络服务器之间的数据通信 ; 以及不迁移该特定服务器上的该虚拟机。优选地, 所 述链路统计数据包括多个加上时间戳的项, 这些加上时间戳的项表示在将该网络设备耦接 说 明 书 。

18、CN 102934087 A 5 2/13 页 6 至该特定服务器的该链路上接收的错误字节, 且判定将该网络设备耦接至该特定服务器的 该链路是否正在退化进一步包括 : 自表示错误字节的所述加上时间戳的项计算位错误率 ; 判定该计算的位错误率是否大于预定阈值 ; 以及如果该计算的位错误率大于该预定阈值, 则判定将该网络设备耦接至该特定服务器的该链路正在退化。优选地, 所述链路统计数据 包括描述在将该网络设备耦接至该特定服务器的该链路上接收的测试数据的符号错误的 信息, 且判定将该网络设备耦接至该特定服务器的该链路是否正在退化进一步包括 : 根据 描述符号错误的该信息计算符号错误的频率 ; 根据描。

19、述符号错误的该信息判定在将该网络 设备耦接至该特定服务器的该链路上的符号错误的频率是否大于预定阈值 ; 以及如果符号 错误的该频率大于该预定阈值, 则判定将该网络设备耦接至该特定服务器的该链路正在退 化。该方法可进一步包括 : 由该网络设备监视在这些服务器之间沿着将这些服务器耦接 至彼此及该网络设备的链路传递的数据通信 ; 以及将链路统计数据存储于一管理信息库 (“MIB” ) 中, 所述链路统计数据描述在这些服务器之间沿着将这些服务器耦接至彼此及该 网络设备的链路传递的数据通信。 0007 在第二个方面, 本发明提供了一种用于在网络服务器之间迁移虚拟机的装置, 这 些服务器与数据通信网络耦接。

20、以进行数据通信, 该网络具有网络设备, 该装置具有计算机 处理器和操作地耦接至该计算机处理器的计算机存储器, 且该装置包括 : 用于由虚拟机管 理模块 (“VMMM” ) 在特定服务器上建立一个或多个虚拟机的装置 ; 用于由该 VMMM 向该网 络设备查询将该网络设备耦接至该特定服务器以进行数据通信的链路的链路统计数据的 装置 ; 用于由该 VMMM 根据所述链路统计数据判定将该网络设备耦接至该特定服务器的该 链路是否正在退化的装置 ; 以及用于如果将该网络设备耦接至该特定服务器的该链路正在 退化, 则将执行于该特定服务器上的虚拟机迁移至目的地服务器的装置。 0008 该第二个方面的装置可进一。

21、步包括被适配为执行第一个方面的优选步骤的装置。 0009 在第三个方面, 提供了一种包括存储在计算机可读介质上的计算机程序代码的计 算机程序, 当所述计算机程序代码被加载到计算机系统中并在其上执行时, 使得所述计算 机系统执行根据第一个方面的方法的所有步骤。 0010 因此, 描述了在网络服务器之间迁移虚拟机的方法、 装置及产品。 在本发明的实施 例中, 这些服务器与包括网络设备的数据通信网络耦接以进行数据通信。根据本发明的实 施例的迁移虚拟机包括 : 由虚拟机管理模块 (“VMMM” ) 在特定服务器上建立一个或多个虚 拟机 ; 由该 VMMM 向该网络设备查询将该网络设备耦接至该特定服务器。

22、以进行数据通信的 链路的链路统计数据 ; 以及由该 VMMM 根据所述链路统计数据判定将网络设备耦接至该特 定服务器的链路是否正在退化。如果将该网络设备耦接至该特定服务器的链路正在退化, 则将执行于该特定服务器上的虚拟机迁移至目的地服务器。 附图说明 0011 现在将参照附图仅作为示例描述本发明优选实施例, 在附图中 : 0012 图 1 给出在其中根据本发明的实施例在网络服务器之间迁移虚拟机的示例性数 据中心的线图 ; 0013 图 2 给出根据本发明的实施例的用于在网络服务器之间迁移虚拟机的示例性系 统的网络图 ; 说 明 书 CN 102934087 A 6 3/13 页 7 0014 。

23、图 3 给出示出了根据本发明的实施例的用于在网络服务器之间迁移虚拟机的示 例性方法的流程图 ; 0015 图 4 给出示出了根据本发明的实施例的用于在网络服务器之间迁移虚拟机的另 一示例性方法的流程图 ; 0016 图 5 给出示出了根据本发明的实施例的用于在网络服务器之间迁移虚拟机的另 一示例性方法的流程图 ; 0017 图 6 给出示出了根据本发明的实施例的用于在网络服务器之间迁移虚拟机的另 一示例性方法的流程图 ; 0018 图 7 给出示出了根据本发明的实施例的用于由 VMMM 根据链路统计数据判定将网 络设备耦接至特定服务器的链路是否正在退化的示例性方法的流程图 ; 以及 0019 。

24、图 8 给出说明了根据本发明的实施例的用于由 VMMM 根据链路统计数据判定将网 络设备耦接至特定服务器的链路是否正在退化的另一示例性方法的流程图。 具体实施方式 0020 参考自图 1 开始的附图描述根据本发明的用于在网络服务器之间迁移虚拟机的 示例性方法、 装置及产品。图 1 给出在其中根据本发明的实施例的在网络服务器之间迁移 虚拟机的示例性数据中心的线图。数据中心 (120) 为用于容纳对任务关键的计算机系统及 相关联的组件的设施。此类数据中心可包括环境控制 ( 空气调节、 火灾扑灭等 )、 冗余 / 备 用电源、 冗余数据通信连接及由对该设施内间隔化 (compartmentalize。

25、d) 的安全区域的生 物测量访问控制所突出显示的高安全性。数据中心也可容纳大量电子设备, 典型的为计算 机及通信设备。数据中心可由组织维护以用于处理其操作所必需的数据的目的。举例而 言, 银行可具有数据中心, 在该数据中心中维护有银行客户的账户信息, 且执行涉及这些账 户的事务 (transaction) 。事实上, 每一个中型或更大的公司具有某一类型的数据中心, 且 较大的公司常常具有数十个数据中心。 0021 作为术语用于本说明书中的虚拟机 ( “VM” ) 指机器 ( 诸如, 计算机 ) 的软件实现。 虚拟机使得能够在不同虚拟机之间共享基础物理机器资源, 这些虚拟机中的每一个可运行 其自。

26、身的操作系统。提供虚拟化的软件层被称为虚拟机监视器或管理程序。管理程序为自 动化计算机器的模块, 其执行软件及硬件平台虚拟化以便使多个操作系统能够在单独虚拟 机中同时执行于主机计算机上。 管理程序直接执行于主机的硬件上以控制硬件访问及监视 客户 (gues t) 操作系统。客户操作系统执行于高于管理程序的层级上。由管理程序提供 的平台虚拟化在本说明书中被称为虚拟化环境。 虚拟化环境为自操作系统及其它软件应用 的角度来看计算平台的物理特性 ( 计算机处理器、 计算机存储器、 I/O 适配器等 ) 被抽象化 的环境。 0022 VM 提供许多益处, 包括例如 : 0023 多个 OS 环境可以彼此。

27、充分隔离的方式共存于相同的物理计算机硬件资源上 ; 0024 有些不同于基础物理计算机硬件资源的指令集架构 (ISA) 的指令集架构 ; 0025 应用供应、 维护、 高可用性及灾难恢复 ; 以及 0026 如本领域技术人员将想到的其它益处。 0027 图 1 的系统一般能够在服务器之间进行 VM 迁移。作为术语在本说明书中使用的 说 明 书 CN 102934087 A 7 4/13 页 8 “迁移” 为虚拟机自一个物理服务器至另一个物理服务器的有效移动。本文根据 VM 自一个 服务器至另一个服务器的 “有效” 移动来描述迁移, 因为迁移并非指移动的手段而是指移动 的最终结果。也就是说, 迁。

28、移描述两个状态, 在一个状态中特定 VM 执行于特定服务器上, 且 在另一个状态中, 该特定 VM 不再执行于该特定服务器上而改为执行于另一服务器上。因 此, 自第一状态至第二状态, 可将该特定 VM 描述为已自该特定服务器移动至另一服务器。 然而, 在本发明的范畴内, 借以实行这种 VM“移动” 的手段可极大地改变。将 VM 自特定服 务器迁移至另一服务器可包括例如 : 将表示执行于该特定服务器上的 VM 的数据自该特定 服务器的存储器复制至另一服务器的存储器 ; 将先前建立的执行于该特定服务器上的 VM 的映像上载至另一服务器且在该另一服务器上执行, 及终止执行执行于该特定服务器上的 VM。

29、 ; 在另一服务器中建立虚拟机的默认映像, 且在该 VM 的该默认映像中执行执行于该特定 服务器的 VM 中的相同用户级应用的实例等。 0028 图 1 的示例中的示例性数据中心 (120) 包括 blade centerTM( 刀片中心 )(100), blade centerTM(100) 为一类型的服务器机箱 (chassis) , 其特别被配置为容纳若干刀片服 务器。作为术语在本说明书中使用的服务器一般指经由网络连接提供服务 ( 例如, 数据库 访问、 文件传送、 远程访问 ) 或资源 ( 例如, 文件空间 ) 的多用户计算机。如上下文所要求, 术语 “服务器” 包括性地指服务器的计算。

30、机硬件以及运行于该服务器上的任何服务器应用 软件或操作系统软件。 服务器应用为接受连接以便通过发回响应来服务于来自用户的请求 的应用程序。服务器应用可执行于与使用其的客户端应用相同的计算机上, 或服务器应用 可经由计算机网络接受连接。 服务器应用的示例包括文件服务器、 数据库服务器、 备份服务 器、 打印服务器、 邮件服务器、 web 服务器、 FTP 服务器、 应用服务器、 VPN 服务器、 DHCP 服务 器、 DNS 服务器、 WINS 服务器、 登录服务器、 安全服务器、 域控制器、 备份域控制器、 代理服务 器、 防火墙等。 0029 刀片服务器为具有被优化以最小化物理空间及能量的使。

31、用的模块化设计的服务 器计算机。尽管标准机架安装的服务器可以至少一电源线及网络缆线来运行, 刀片服务器 使许多组件被移除以节省空间、 最小化功率消耗及其它考虑, 而仍具有所有功能性组件以 被视作计算机。刀片中心可持有多个刀片服务器, 提供诸如供电、 冷却、 连网、 各种互连及 管理的服务, 尽管不同刀片提供者围绕将什么包括于刀片自身中 ( 且有时完全包括于外壳 中 ) 具有不同原则。 0030 在图 1 的示例中, 刀片中心 (100) 包括两个机柜插槽 (cabinet bay) (104、 106), 该两个机柜插槽中的每一个包括若干组件。机柜插槽 (104) 含有若干刀片服务器 (108。

32、), 这些刀片服务器 (108) 中的每一个由电源 (132) 供电。机柜插槽 (106) 含有用于刀片中心 (100)的电源(132)、 数据通信网络路由器(130)、 网络交换器(134)及下文中更详细描述的 虚拟机管理模块 (“VMMM” )(102)。机柜插槽 (106) 也含有独立磁盘冗余阵列 (“RAID” ) (136) 及电源板 (power strip)(138)。 0031 在图 1 中, 为了解释清晰起见而以展开形式示出了刀片中心 (100) 中的刀片服务 器(108)中的两个 : 刀片服务器(152)及刀片服务器(128)。 然而, 本领域技术人员将理解, 刀片中心 (。

33、100) 的刀片服务器 (108) 中的每一个可包括与服务器 (152、 128) 类似的组件, 且当根据本发明的实施例参与 VM 迁移时以类似方式操作。作为可在根据本发明的实施例 实行 VM 迁移的系统中使用的服务器的一示例, 考虑服务器 (152)。服务器 (152) 包括至少 说 明 书 CN 102934087 A 8 5/13 页 9 一个计算机处理器 (156) 或 “CPU” 以及经由高速存储器总线 (166) 及总线适配器 (158) 连 接至处理器 (156) 及服务器 (152) 的其它组件的随机存取存储器 (168)(“RAM” )。 0032 管理程序 (140) 存储。

34、于服务器 (152) 的 RAM(168) 中, 其使两个虚拟机 (114、 116) 能够执行于服务器 (152) 的基础硬件上且能够利用服务器 (152) 的硬件资源。操作系统 (154) 及两个用户级应用 (122、 123) 运行于虚拟机 (114) 内 ( 或换言之, 运行于虚拟机 (114)上)。 可在根据本发明的实施例参与VM迁移的服务器中使用的操作系统包括UNIXTM、 LinuxTM、 Microsoft XPTM、 AIXTM、 IBM 的 i5/OSTM, 及本领域技术人员将想到的其它操作系统。 操作系统(154)及两个用户级应用(124、 125)运行于虚拟机(116)。

35、内。 运行于虚拟机(116) 内的操作系统 (154) 可为执行于虚拟机 (114) 中的相同操作系统 (154) 的单独实例, 或可 完全为另一类型的操作系统(154)。 也就是说, 服务器(152)中的两个操作系统可相同(诸 如, UnixTM), 或两个操作系统可不同 ( 诸如, UnixTM与 Microsoft XPTM)。 0033 图1的示例中的管理程序(140)、 操作系统(154)及用户级应用(122-125)被示出 在 RAM(168) 中, 但这种软件的许多组件通常也存储于非易失性存储器中, 诸如存储于盘驱 动器 (170) 上。 0034 图 1 的服务器 (152) 。

36、包括经由扩展总线 (160) 及总线适配器 (158) 耦接至处理器 (156) 及服务器 (152) 的其它组件的盘驱动器适配器 (172)。盘驱动器适配器 (172) 将非 易失性数据存储设备以盘驱动器 (170) 的形式连接至服务器 (152)。可在根据本发明的实 施例参与虚拟机在网络服务器之间的迁移的服务器中使用的盘驱动器适配器包括集成驱 动电子设备 (“IDE” ) 适配器、 小型计算机系统接口 (“SCSI” ) 适配器及本领域技术人员 将想到的其它适配器。如本领域技术人员将想到的, 非易失性计算机存储器也可实现为光 盘驱动器、 电可擦除可编程只读存储器 ( 所谓的 “EEPROM。

37、” 或 “快闪” 存储器 )、 RAM 驱动器 等。 0035 图 1 的示例服务器 (152) 包括一个或多个输入 / 输出 (“I/O” ) 适配器 (178)。 I/O 适配器经由例如软件驱动器及计算机硬件实施面向用户的输入 / 输出, 以用于控制到 显示设备 ( 诸如, 计算机显示屏幕 ) 的输出, 以及来自用户输入设备 (181)( 诸如, 键盘及鼠 标 ) 的用户输入。图 1 的示例服务器 (152) 包括一视频适配器 (209), 视频适配器 (209) 为 被特别设计以用于到显示设备 (180)( 诸如, 显示屏幕或计算机监视器 ) 的图形输出的 I/O 适配器的示例。 视频适。

38、配器(209)经由高速视频总线(164)、 总线适配器(158)及前侧总线 (162)(也为高速总线) 连接至处理器 (156)。 0036 图1的示例性服务器(152)包括用于与其它计算机进行数据通信及用于与数据通 信网络 ( 图 1 中未示出 ) 进行数据通信的通信适配器 (167)。这种数据通信可经由 RS-232 连接、 经由外部总线 ( 诸如, 通用串行总线 ( “USB” )、 经由数据通信网络 ( 诸如, IP 数据通 信网络 ) 及以本领域技术人员将想到的其它方式串行地进行。通信适配器实施硬件级的数 据通信, 通过该硬件级的数据通信, 一个计算机直接地或经由数据通信网络将数据通。

39、信发 送至另一个计算机。可在根据本发明的实施例参与 VM 迁移的服务器中使用的通信适配器 的示例包括用于有线拨号通信的调制解调器、 用于有线数据通信网络通信的以太网 (IEEE 802.3) 适配器、 及用于无线数据通信网络通信的 802.11 适配器。 0037 尽管仅将服务器(152)描述为包括处理器(156)、 RAM(168)、 总线适配器(158)、 通 信适配器 (167) 等, 但本领域技术人员将认识到, 图 1 的示例中的刀片服务器 (108) 中的任 说 明 书 CN 102934087 A 9 6/13 页 10 一个 ( 以及更具体而言, 服务器 (128) 也可包括类似。

40、组件。 0038 图 1 的刀片中心 (100) 的交换器 (134) 为网络设备的一示例, 网络设备为在计算 机网络中传递数据的单元。网络设备也可称为网络装置 (network equipment) 、 中间系统 (Intermediate System,IS) 或互通单元 (InterWorking Unit,IWU)。作为最后接收者或产 生数据的单元被称为主机或数据终端设备。 0039 网络设备的示例包括 : 0040 网关 : 使用不同协议在网络节点处与另一网络介接 (interface) 的设备。在开放 系统互连 (“OSI” ) 的第 4 至 7 层上操作。 0041 路由器 : 。

41、判定向着数据包的目的地将该数据包转递至的下一网络点的专用网络设 备。通常在 OSI 的第 3 层上操作。 0042 桥接器 : 沿着数据链路层连接多个网络区段 (segment) 的设备。在 OSI 的第 2 层 上操作。 0043 交换器 : 将来自一个网络区段的通信流分配至某些线路或 “链路” ( 预期的目的地 或将该区段连接至另一网络区段的目的地 ) 的设备。与集线器不同, 交换器拆分网络通信 流且将其发送至不同目的地, 而非发送至网络上的所有系统。在 OSI 的第 2 层上操作。 0044 多层交换器 : 除在OSI的第2层上进行交换外也在更高协议层提供功能的交换器。 0045 集线器。

42、 : 将多个区段连接在一起且如同这些区段为单一区段般操作这些区段的设 备。当使用集线器时, 每一附接的设备共享相同广播域及相同冲突域。因此, 每次仅一个连 接至该集线器的计算机能够传输。取决于网络拓扑, 集线器在网络对象 ( 工作站、 服务器 等 ) 之间提供第 1 级 OSI 模型连接。与在个别节点之间提供专用连接的交换器相比, 集线 器也可提供在所有对象之间共享的带宽。在 OSI 的第 1 层上操作。 0046 中继器 : 在将来自网络的一部分的数字信号放置到另一部分中时放大或重新产生 所接收的数字信号的设备。在 OSI 的第 1 层上操作。 0047 协议转换器 : 在两个不同类型的传输。

43、(诸如, 异步传输与同步传输)之间转换的硬 件设备。 0048 桥接式路由器 (bridge router) : 以路由器与桥接器的功能的组合的方式操作的 设备。在 OSI 第 2 层及 OSI 第 3 层两者上操作。 0049 数字媒体接收器 : 将计算机网络连接至家庭剧院的设备。 0050 图1的示例中的交换器(134)将刀片服务器(108, 包括158及128)彼此耦接以用 于彼此之间及与路由器 (130) 及 VMMM(102) 的数据通信。 0051 图 1 的虚拟机管理模块 (102) ( “VMMM” ) 为包含计算机硬件及软件的聚集的自动化 计算机器的模块, 其被配置为在图 1。

44、 的示例中的网络服务器 (108, 包括 152 及 128) 之间实 行虚拟机迁移。不管迁移技术为何, VMMM 也可负责其它虚拟机管理。也说是说, VMMM(102) 也可在服务器之间以平衡工作负荷、 冗余或可用性的方式管理 VM 的分配。VMMM(102) 可通 过管理资源分配或与另一管理模块合作以控制操作特性 ( 节流服务器等 ) 来管理 VM 的操 作。VMMM(102) 也可管理虚拟机的解除分配, 从而选择是否将虚拟机置于等待 (standby) 模 式中, 而非完全关闭电源等。这些仅为根据本发明的实施例 VMMM 操作以用于 VM 迁移的许 多任务中的少数几个。 0052 图 1。

45、 的示例中的 VMMM(102) 可通过首先在特定服务器上建立一个或多个 VM 来根 说 明 书 CN 102934087 A 10 7/13 页 11 据本发明的实施例在图 1 的刀片中心 (100) 中的刀片服务器 (108) 之间迁移 VM。出于解 释的目的考虑图 1 的示例中的 VMMM(102) 在服务器 (152) 上建立虚拟机 (114) 及虚拟机 (116)。 VMMM可接着向网络设备(交换器(134)查询将该网络设备耦接至该特定服务器以 进行数据通信的链路的链路统计数据(112)。 如上下文所要求的, 本文所描述的作为术语的 链路指用以支持设备之间的数据通信的两个设备之间的物。

46、理或逻辑耦接。 链路统计数据描 述沿着将服务器 (108、 152、 128) 耦接至彼此及交换器 (134) 的链路传递的数据通信。 0053 VMMM(102) 可接着根据链路统计数据 (112) 判定将网络设备耦接至该特定服务器 的链路是否正在退化, 且在将网络设备耦接至该特定服务器的该链路正在退化的情况下, VMMM 可将执行于该特定服务器 (152) 上的虚拟机 ( 诸如, VM(114) 迁移至目的地服务器 ( 诸如, 服务器 (128)。 0054 作为VMMM(102)在图1的数据中心(120)中实行VM迁移的一示例, 考虑VMMM(102) 首先在服务器 (152) 上建立 。

47、VM(114) 及 VM(116) 且未在服务器 (128) 上建立 VM。当服 务器 (108)( 包括服务器 (152) 及服务器 (128) 经由网络交换器 (134) 在彼此之间传递 数据通信消息时, 该网络交换器 (134) 监视这些数据通信且将链路统计数据存储在可由 VMMM(102) 经由查询访问的预定义存储器区域中。不时地, VMMM(102) 向交换器 (134) 查询 链路统计数据 (112), 且判定耦接服务器 (152) 与交换器 (134) 的链路是否正在退化。如 果链路正在退化, 则 VMMM(102) 将 VM(114) 及 VM(116) 迁移至服务器 (128。

48、)( 此处被示为 VM(118) 及 VM(119)。如果当前没有管理程序运行于服务器 (128) 中, 则 VMMM 也可在建立 VM(118、 119) 之前首先启动服务器 (128) 中的管理程序 (142)。除 VM 之外, VMMM(102) 也 可将执行于服务器 (152) 的 VM(114、 116) 中的用户级应用 (122-125) 迁移至服务器 (128) 的 VM(118、 119)。在图 1 的示例中, 用户级应用 (122-125) 已被迁移且被示为用户级应用 (126、 127、 129 及 131)。 0055 本文用以描述通信链路的术语 “退化” 指可在低于标准。

49、水平执行且可能接近失败 的链路。本文中, 术语 “退化” 用以指示 VM 迁移是以前瞻性 ( 聚焦于减轻的 ) 方式而非反 应性方式实行的。也就是说, 不同于在链路失败之后迁移 VM, 图 1 的示例中的 VMMM 在完全 失败之前迁移 VM, 从而减轻在链路完全失败的情况下原本可能出现的数据通信、 产能等的 损失。以此方式, 服务器及 VM 的可用性增加了。本领域技术人员也将了解, 监视数据通信 及判定链路是否正在退化并非由支持且使能 VM 的管理程序实行, 而是由网络设备及 VMMM 实行。以此方式, 管理程序及因此管理程序操作于其上的服务器不承受监视数据通信及判 定数据通信链路是否正在退化的负荷, 从而增加了服务器的操作效率且减少了操作开销。 0056 链路可能由于多种原因而退化, 包括例如由于将导致循环冗余检查 (CRC) 错误的 信号错误引入数据通信包中的电磁干扰、 由于使链路间符号信号不匹配交换器硬件至电缆 特性的老化物理电缆。这些原因仅为链路退化的许多可能因素中的少数几个示例原因, 且 这些原因中的每一个完全在本发明的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1