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

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

Info

Publication number
CN102934087B
CN102934087B CN201180024157.2A CN201180024157A CN102934087B CN 102934087 B CN102934087 B CN 102934087B CN 201180024157 A CN201180024157 A CN 201180024157A CN 102934087 B CN102934087 B CN 102934087B
Authority
CN
China
Prior art keywords
link
network equipment
server
coupled
virtual machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201180024157.2A
Other languages
English (en)
Other versions
CN102934087A (zh
Inventor
N·P·汉松
B·A·史密斯
E·S·苏弗恩
J·L·伍德里奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN102934087A publication Critical patent/CN102934087A/zh
Application granted granted Critical
Publication of CN102934087B publication Critical patent/CN102934087B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

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

Description

当侦测到退化网络链路操作时在网络服务器之间迁移虚拟机
技术领域
本发明的领域为数据处理,或更具体言之,为用于在侦测到退化网络链路操作时在网络服务器(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)为网络设备的一示例,网络设备为在计算机网络中传递数据的单元。网络设备也可称为网络装置(networkequipment)、中间系统(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 NetworkManagement of TCP/IP-based internet s”(用于基于TCP/IP的互联网络的网络管理的管理信息库)及RFC 1157“A Simple Network ManagementProtocol”(简单网络管理协议)。
除交换器(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)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
从前面的描述本领域的技术人员将理解,可对本发明的各种实施例进行很多修改及改变。

Claims (10)

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

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/784,061 US8224957B2 (en) 2010-05-20 2010-05-20 Migrating virtual machines among networked servers upon detection of degrading network link operation
US12/784,061 2010-05-20
PCT/EP2011/057998 WO2011144633A1 (en) 2010-05-20 2011-05-17 Migrating virtual machines among networked servers upon detection of degrading network link operation

Publications (2)

Publication Number Publication Date
CN102934087A CN102934087A (zh) 2013-02-13
CN102934087B true CN102934087B (zh) 2015-10-21

Family

ID=44513327

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180024157.2A Active CN102934087B (zh) 2010-05-20 2011-05-17 当侦测到退化网络链路操作时在网络服务器之间迁移虚拟机

Country Status (8)

Country Link
US (2) US8224957B2 (zh)
JP (1) JP5889284B2 (zh)
CN (1) CN102934087B (zh)
CA (1) CA2783452C (zh)
DE (1) DE112011101705B4 (zh)
GB (1) GB2494325B (zh)
TW (1) TW201211895A (zh)
WO (1) WO2011144633A1 (zh)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8224957B2 (en) * 2010-05-20 2012-07-17 International Business Machines Corporation Migrating virtual machines among networked servers upon detection of degrading network link operation
US8671238B2 (en) * 2010-07-13 2014-03-11 Vmware, Inc. Robust live migration using shared filesystem
US8458510B2 (en) * 2010-08-12 2013-06-04 International Business Machines Corporation LPAR creation and repair for automated error recovery
US9542215B2 (en) * 2011-09-30 2017-01-10 V3 Systems, Inc. Migrating virtual machines from a source physical support environment to a target physical support environment using master image and user delta collections
US8689054B1 (en) * 2011-07-29 2014-04-01 Emc Corporation Increased distance of virtual machine mobility over asynchronous distances
EP2725737B1 (en) * 2011-08-01 2016-01-20 Huawei Technologies Co., Ltd. Network policy configuration method, management device and network management centre device
US10042656B2 (en) 2011-08-01 2018-08-07 Avocent Corporation System and method for providing migrateable virtual serial port services
KR101281825B1 (ko) * 2011-09-07 2013-08-23 주식회사 팬택 클라우드 시스템에서 가상 인터페이스를 이용하는 보안 강화 장치 및 방법
EP2744186B1 (en) * 2011-09-14 2016-05-25 Nec Corporation Resource optimization method, ip network system and resource optimization program
US9183102B2 (en) * 2011-09-30 2015-11-10 Alcatel Lucent Hardware consumption architecture
US8826074B2 (en) * 2011-09-30 2014-09-02 Alcatel Lucent Live module diagnostic testing
US9736005B2 (en) 2011-12-22 2017-08-15 International Business Machines Corporation Duplicate IP address detection by a DHCP relay agent
US8972542B2 (en) * 2011-12-22 2015-03-03 International Business Machines Corporation Extending a DHCP relay to backup a DHCP server
WO2013097151A1 (zh) * 2011-12-29 2013-07-04 华为技术有限公司 一种资源调度方法及设备
JP5919937B2 (ja) * 2012-03-26 2016-05-18 日本電気株式会社 仮想化システム、管理サーバ、マイグレーション方法、マイグレーションプログラム業務間通信を考慮した仮想マシンのマイグレーション方法
WO2013160933A1 (en) * 2012-04-23 2013-10-31 Hitachi, Ltd. Computer system and virtual server migration control method for computer system
US20130326053A1 (en) * 2012-06-04 2013-12-05 Alcatel-Lucent Usa Inc. Method And Apparatus For Single Point Of Failure Elimination For Cloud-Based Applications
US9819694B2 (en) 2012-06-27 2017-11-14 Qatar Foundation Arrangement configured to migrate a virtual machine in the event of an attack
US9172587B2 (en) 2012-10-22 2015-10-27 International Business Machines Corporation Providing automated quality-of-service (‘QoS’) for virtual machine migration across a shared data center network
US9118681B2 (en) 2013-03-08 2015-08-25 Telefonaktiebolaget L M Ericsson (Publ) Mist networks
US10506026B1 (en) * 2013-03-13 2019-12-10 Amazon Technologies, Inc. Resource prestaging
US9407560B2 (en) 2013-03-15 2016-08-02 International Business Machines Corporation Software defined network-based load balancing for physical and virtual networks
US9596192B2 (en) 2013-03-15 2017-03-14 International Business Machines Corporation Reliable link layer for control links between network controllers and switches
US9104643B2 (en) * 2013-03-15 2015-08-11 International Business Machines Corporation OpenFlow controller master-slave initialization protocol
US9609086B2 (en) 2013-03-15 2017-03-28 International Business Machines Corporation Virtual machine mobility using OpenFlow
US9118984B2 (en) 2013-03-15 2015-08-25 International Business Machines Corporation Control plane for integrated switch wavelength division multiplexing
US9444748B2 (en) 2013-03-15 2016-09-13 International Business Machines Corporation Scalable flow and congestion control with OpenFlow
US9769074B2 (en) 2013-03-15 2017-09-19 International Business Machines Corporation Network per-flow rate limiting
US9870268B2 (en) * 2013-08-05 2018-01-16 Amazon Technologies, Inc. Virtual computing instance migration
US20150071091A1 (en) * 2013-09-12 2015-03-12 Alcatel-Lucent Usa Inc. Apparatus And Method For Monitoring Network Performance
CN103516554B (zh) * 2013-10-22 2017-01-18 杭州华三通信技术有限公司 一种vm迁移的方法和设备
WO2015112859A1 (en) * 2014-01-24 2015-07-30 Indiscine, Llc Systems and methods for personal omic transactions
US9998320B2 (en) * 2014-04-03 2018-06-12 Centurylink Intellectual Property Llc Customer environment network functions virtualization (NFV)
US10089128B2 (en) 2014-05-21 2018-10-02 Vmware, Inc. Application aware service policy enforcement and autonomous feedback-based remediation
US10922112B2 (en) 2014-05-21 2021-02-16 Vmware, Inc. Application aware storage resource management
JP6413517B2 (ja) * 2014-09-04 2018-10-31 富士通株式会社 管理装置、マイグレーション制御プログラム、情報処理システム
US10176004B2 (en) * 2014-11-18 2019-01-08 International Business Machines Corporation Workload-aware load balancing to minimize scheduled downtime during maintenance of host or hypervisor of a virtualized computing system
US9535803B2 (en) 2015-02-23 2017-01-03 Red Hat Israel, Ltd. Managing network failure using back-up networks
CN104869023B (zh) * 2015-05-29 2019-02-26 华为技术有限公司 一种时间校正方法、装置及系统
WO2017058143A1 (en) * 2015-09-28 2017-04-06 Hewlett Packard Enterprise Development Lp Protocol conversion for servers and chassis
US10346201B2 (en) * 2016-06-15 2019-07-09 International Business Machines Corporation Guided virtual machine migration
JP2019049818A (ja) * 2017-09-08 2019-03-28 富士通株式会社 情報処理装置、情報処理システム、情報処理システムの制御方法及びライブマイグレーション制御プログラム
KR101981334B1 (ko) * 2017-09-14 2019-05-22 에스케이텔레콤 주식회사 분산형 데이터 패킷 처리가 적용된 이동통신 시스템 및 방법
US10445129B2 (en) * 2017-10-31 2019-10-15 Vmware, Inc. Virtual computing instance transfer path selection
US11144354B2 (en) 2018-07-31 2021-10-12 Vmware, Inc. Method for repointing resources between hosts
US10852803B2 (en) * 2018-09-26 2020-12-01 Facebook, Inc. Power loss siren
CN115858503B (zh) * 2023-02-28 2023-05-09 江西师范大学 一种基于迁移链表的异构数据库迁移管理方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232511A (zh) * 2006-12-07 2008-07-30 丛林网络公司 基于服务器功耗的网络通信分配

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970913B1 (en) * 1999-07-02 2005-11-29 Cisco Technology, Inc. Load balancing using distributed forwarding agents with application based feedback for different virtual machines
US7441045B2 (en) * 1999-12-13 2008-10-21 F5 Networks, Inc. Method and system for balancing load distribution on a wide area network
US8204082B2 (en) 2000-06-23 2012-06-19 Cloudshield Technologies, Inc. Transparent provisioning of services over a network
US7934020B1 (en) 2003-09-19 2011-04-26 Vmware, Inc. Managing network data transfers in a virtual computer system
US8156490B2 (en) * 2004-05-08 2012-04-10 International Business Machines Corporation Dynamic migration of virtual machine computer programs upon satisfaction of conditions
JP4909675B2 (ja) * 2006-08-17 2012-04-04 エヌ・ティ・ティ・コミュニケーションズ株式会社 伝送装置、伝送方法、及びプログラム
US8185893B2 (en) * 2006-10-27 2012-05-22 Hewlett-Packard Development Company, L.P. Starting up at least one virtual machine in a physical machine by a load balancer
US8346933B2 (en) 2006-11-24 2013-01-01 Nec Corporation Virtual machine location system, virtual machine location method, program, virtual machine manager, and server
US8291411B2 (en) * 2007-05-21 2012-10-16 International Business Machines Corporation Dynamic placement of virtual machines for managing violations of service level agreements (SLAs)
US20090007099A1 (en) 2007-06-27 2009-01-01 Cummings Gregory D Migrating a virtual machine coupled to a physical device
US7966614B2 (en) * 2007-07-24 2011-06-21 International Business Machines Corporation Controlling an availability policy for a virtual machine based on changes in a real world environment
US8117495B2 (en) * 2007-11-26 2012-02-14 Stratus Technologies Bermuda Ltd Systems and methods of high availability cluster environment failover protection
US20090172125A1 (en) 2007-12-28 2009-07-02 Mrigank Shekhar Method and system for migrating a computer environment across blade servers
US8230069B2 (en) * 2008-03-04 2012-07-24 International Business Machines Corporation Server and storage-aware method for selecting virtual machine migration targets
US8201166B2 (en) 2008-04-30 2012-06-12 Hewlett-Packard Development Company, L.P. Virtualization platform configured with virtual connect control
US8385202B2 (en) * 2008-08-27 2013-02-26 Cisco Technology, Inc. Virtual switch quality of service for virtual machines
JP2010086049A (ja) * 2008-09-29 2010-04-15 Hitachi Ltd 管理計算機及びその運用方法
US8261266B2 (en) * 2009-04-30 2012-09-04 Microsoft Corporation Deploying a virtual machine having a virtual hardware configuration matching an improved hardware profile with respect to execution of an application
US8135818B2 (en) * 2009-06-22 2012-03-13 Red Hat Israel, Ltd. Automatic virtual machine migration in mixed SBC/CBC environment
US8289960B2 (en) * 2009-06-22 2012-10-16 Citrix Systems, Inc. Systems and methods for N-core tracing
US8311032B2 (en) * 2009-12-03 2012-11-13 International Business Machines Corporation Dynamically provisioning virtual machines
US8224957B2 (en) * 2010-05-20 2012-07-17 International Business Machines Corporation Migrating virtual machines among networked servers upon detection of degrading network link operation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232511A (zh) * 2006-12-07 2008-07-30 丛林网络公司 基于服务器功耗的网络通信分配

Also Published As

Publication number Publication date
GB2494325A (en) 2013-03-06
DE112011101705B4 (de) 2015-03-05
GB2494325B (en) 2018-09-26
CA2783452A1 (en) 2011-11-24
JP5889284B2 (ja) 2016-03-22
GB201221274D0 (en) 2013-01-09
JP2013533660A (ja) 2013-08-22
CA2783452C (en) 2018-05-29
US8495208B2 (en) 2013-07-23
CN102934087A (zh) 2013-02-13
DE112011101705T5 (de) 2013-03-28
US20110289205A1 (en) 2011-11-24
TW201211895A (en) 2012-03-16
US20120221887A1 (en) 2012-08-30
US8224957B2 (en) 2012-07-17
WO2011144633A1 (en) 2011-11-24

Similar Documents

Publication Publication Date Title
CN102934087B (zh) 当侦测到退化网络链路操作时在网络服务器之间迁移虚拟机
US9348653B2 (en) Virtual machine management among networked servers
US7933983B2 (en) Method and system for performing load balancing across control planes in a data center
CN105531970B (zh) 用于在网络中部署工作负荷的方法和系统
US8270306B2 (en) Fault management apparatus and method for identifying cause of fault in communication network
US20030212898A1 (en) System and method for remotely monitoring and deploying virtual support services across multiple virtual lans (VLANS) within a data center
US11165672B2 (en) Application performance management integration with network assurance
CN116158063A (zh) 多边以太信道(meec)创建和管理
US20120117246A1 (en) Method And System For The Efficient And Automated Management of Virtual Networks
US20160191365A1 (en) Data center migration tracking tool
US20130198388A1 (en) Distributed information
CN104283780A (zh) 建立数据传输路径的方法和装置
EP3424185A1 (en) Provisioning private network connections
CN117716675A (zh) 用动态软件定义云互连(sdci)隧道选择端到端路径
CN106576260A (zh) Nfv系统中的策略协调方法和装置
US9391916B2 (en) Resource management system, resource management method, and computer product
CN114363164B (zh) 云网络服务编排控制方法、系统、存储介质和电子设备
CN117882340A (zh) 为网络节点的客户端未知晓滚动进行的协调重连接
CN116016307A (zh) 一种传递算力网络参数的方法及装置、电子设备
Sun Latency-aware optimization of the existing service mesh in edge computing environment
CN102340412A (zh) 云计算组网交换设计
Kakulapati et al. Switch hierarchical provider (SHP) networks for data network virtualization
CN113010337B (zh) 故障检测方法、总控节点、工作节点及分布式系统
US20170295240A1 (en) Control plane redundancy system
CN114153655A (zh) 容灾系统创建方法、容灾方法、装置、设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant