CN106462457A - 虚拟化应用集群 - Google Patents

虚拟化应用集群 Download PDF

Info

Publication number
CN106462457A
CN106462457A CN201480077726.3A CN201480077726A CN106462457A CN 106462457 A CN106462457 A CN 106462457A CN 201480077726 A CN201480077726 A CN 201480077726A CN 106462457 A CN106462457 A CN 106462457A
Authority
CN
China
Prior art keywords
virtual machine
identifier
methods
startup
message
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.)
Pending
Application number
CN201480077726.3A
Other languages
English (en)
Inventor
P.韦恩德勒
D.卡特赖因
R.M.马蒂内斯佩拉伦
R.奎内特
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN106462457A publication Critical patent/CN106462457A/zh
Pending legal-status Critical Current

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2521Translation architectures other than single NAT servers
    • H04L61/2525Translation at a client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2596Translation of addresses of the same type other than IP, e.g. translation from MAC to MAC addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • H04L61/5014Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5038Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Engineering (AREA)
  • Stored Programmes (AREA)
  • Small-Scale Networks (AREA)

Abstract

描述用于操作具有一个或多个虚拟机的虚拟化应用集群的部件的技术。该技术能够识别个体虚拟机和它在集群内的功能。如此,可以确定专用于集群内的虚拟机功能的启动信息并且将其提供给虚拟机。

Description

虚拟化应用集群
技术领域
本公开大体上涉及虚拟化应用集群。特别地,描述用于管理虚拟化应用集群的部署的技术。该技术可以实现为方法、软件技术方案、硬件技术方案或其组合。
背景技术
在计算中,启动是计算机系统在它起动后执行的初始操作集。在计算机系统经由网络连接启动时,动态主机配置协议(DHCP)通常用于通过启动计算机系统收集互联网协议(IP)地址。为此,计算机系统发送初始DHCP请求并且就IP地址询问另一个计算机系统(DHCP服务器)。当DHCP在它的配置数据库中具有请求计算机系统的有效条目时,它将发出具有分配给请求计算机系统的IP地址的DHCP响应。
DHCP服务器提供的IP地址可以随机或基于DHCP请求中包含的系统标识符来分配。通常,请求计算机系统的媒体访问控制(MAC)地址被DHCP服务器用于向它分配特定IP地址。为此,MAC地址与IP地址之间的映射可以在安装计算机系统后由运营商配置。还可以自动执行映射。在例如计算机系统是具有多个刀片服务器的物理刀片系统的部分时,刀片服务器的MAC地址可以根据它们在底盘或架中的物理位置而自动发现或分配。
在例如具有多个虚拟机的虚拟化应用集群等虚拟化环境中,虚拟机的虚拟“硬件”无法基于识别物理硬件的物理参数(例如在底盘中的位置)。然而,识别参数可以在虚拟机部署时间自动生成。在创建每个新的虚拟机可以对它分配随机MAC地址。这也意指在发生虚拟机的实际部署之前无法在DHCP服务器的配置数据库中输入MAC地址。
在虚拟化环境中,DHCP服务器因此无法容易识别MAC地址或它的客户端(即,虚拟机)的其他DHCP选项。该事实使得难以使虚拟环境中新虚拟机的部署自动化,即使虚拟环境适合且实际上意在利用自动规程时也如此。该问题既适用于迁移到云或虚拟环境的遗留应用集群,又适用于设计成在虚拟化和物理部署中运作的新的应用集群。
虚拟化应用集群的初始部署的可能工作区需要人为干预。在创建所有虚拟机后,管理员可编辑集群内的虚拟DHCP服务器的配置数据库并且给予它已分配给虚拟机的MAC地址列表。然而,该技术方案对于完全自动化部署是不适合的。它还需要所有虚拟机是持久的,并且它使得难以在后来的时间点通过向它添加新的虚拟机来增加集群的容量,因为需要的人为干预限制自动缩放的机会。
发明内容
需要有允许在虚拟化应用集群内高效部署虚拟机的技术。
根据第一方面,提供操作虚拟化应用集群内的虚拟机的方法。该方法包括接收基本启动信息并且使用该基本启动信息来启动基本系统环境。方法还包括在基本系统环境内确定虚拟机的标识符并且发送消息,其包括虚拟机的标识符。此外,方法包括响应于消息接收专用于虚拟机的启动信息,并且使用专用启动信息启动专用系统环境。
基本启动信息可响应于由虚拟机发送的请求消息而接收。请求消息可以例如是由虚拟机广播的发现消息。
虚拟机的标识符可采用各种方式确定。作为示例,标识符可从虚拟机可访问的描述符读取。该描述符大体上可描述虚拟机或虚拟化应用集群(其包括虚拟机)的一个或多个性质。虚拟机可经由包含描述符的文件或采用任何其他方式访问描述符。在一个变化形式中,描述符文件经由包括描述符文件的虚拟驱动器而对虚拟机可访问。
方法可进一步包括接收对于虚拟机的初步网络地址连同基本启动信息。该初步网络地址可以是IP地址或任何其他层3地址。初步网络地址可被基本系统环境用于通信。通信可包括将具有虚拟机标识符的消息发送到虚拟化应用集群内部或外部的实体。
方法还可包括在专用系统环境内请求专用网络地址。为此,请求消息可使用初步网络地址发送。此外,专用网络地址可在虚拟机处接收并且被专用系统环境用于通信。专用网络地址可在部署虚拟机之前被静态配置。
启动信息可限定虚拟机用于在它的初始部署后执行一个或多个操作所需要的各种信息项。启动信息可例如使虚拟机能够获得需要的软件来承担集群内的专用功能。启动信息可例如遵循互联网工程化任务组(IETF)的RFC 2132。
作为示例,启动信息可限定启动服务器的地址,该启动服务器配置成向虚拟机提供一个或多个启动文件。另外或作为备选,启动信息可包括到一个或多个启动文件的一个或多个文件路径(例如,在启动服务器上)。在一个实现中,集群内的系统控制器还可承担启动服务器的角色。启动服务器大体上可配置成经由一个或多个简单文件传输协议(TFTP)消息来提供一个或多个启动文件。
一个或多个启动文件可包括操作系统文件、内核文件和配置文件中的至少一个。虚拟机的配置可例如从分配给虚拟机的存储器资源和处理资源方面限定。除非另外指出,在本文关于启动信息做出的阐述可适用于基本启动信息和专用系统信息两者。
根据另外的方面,提供操作虚拟化应用集群中的系统控制器的方法,其中该集群包括至少一个虚拟机。该方法包括向虚拟机发送基本启动信息,其中该基本启动信息限定基本系统环境。方法进一步包括从虚拟机接收消息,其中该消息包括虚拟机的标识符。基于该标识符,确定专用于虚拟机的启动信息。专用启动信息然后发送给虚拟机。
方法可进一步包括对虚拟机分配初步网络地址并且向虚拟机发送该初步网络地址连同基本启动信息(例如,在单个消息内)。备选地或另外,对于专用网络地址的请求可从虚拟机接收。可确定与虚拟机关联的专用网络地址并且然后将其发送到虚拟机。确定专用网络地址可基于专用网络地址(一方面)与虚拟机标识符(另一方面)之间的关联来执行。这样的关联可在系统控制器处静态配置。
初步网络地址和专用网络地址中的至少一个可以是IP地址。它备选地可以是任何其他层3地址。
启动信息可响应于从虚拟机接收请求消息而发送。该请求消息可以是由虚拟机广播的发现消息。
方法还可包括使层2地址与虚拟机的标识符关联。层2地址可包括在从虚拟机接收的请求消息(例如,发现消息)中。如本文理解的,层2地址可以是媒体访问控制(MAC)地址。
系统控制器可维持(例如,建立、更新,等)虚拟机标识符(一方面)与专用于虚拟机的启动信息(另一方面)之间的关联。这样的关联可由映射限定。对应的关联还可包括层2地址。
虚拟机的标识符在全局或至少局部上可以是唯一的。作为示例,虚拟机标识符在一个且相同系统控制器持有的多个虚拟机之中可以是唯一的。
根据另外的方面,提供操作虚拟化应用集群的管理部件的方法,其中该集群包括系统控制器和具有专用功能的至少一个虚拟机。方法包括部署系统控制器并且对系统控制器提供对虚拟机标识符与虚拟机功能之间的关联的访问。方法进一步包括确定虚拟机标识符,其与要部署的虚拟机的专用功能关联。再进一步,方法包括部署虚拟机并且在部署时用确定的虚拟机标识符静态配置虚拟机。
虚拟机的功能可限定为集群内的虚拟机的角色。如此,特定功能可由虚拟机的特定软件包限定。
在一个变化形式中,每个虚拟机标识符与正好一个功能关联。另外或作为备选,多个虚拟机标识符可与相同功能关联。关联可由映射(即,在表中)或用别的方式限定。
系统控制器和/或虚拟机的部署可包括创建一个或多个虚拟硬件元件,例如虚拟网卡或虚拟电可擦除可编程只读存储器(EEPROM)。在一个变化形式中,管理部件用确定的虚拟机标识符配置虚拟机的虚拟机网孔的固件、基本输入输出系统(BIOS)和虚拟EEPROM中的至少一个。如此,管理部件可从它的网卡固件、BIOS和/或虚拟EEPROM方面建立虚拟机的唯一性。
个体虚拟机的专用功能可限定专用于虚拟机的启动信息。该启动信息进而可限定启动服务器的地址中的至少一个,该启动服务器配置成对虚拟机提供一个或多个启动文件和到一个或多个启动文件的文件路径,如上文解释的。
系统控制器本身可部署为集群内的虚拟机。在一些实现中,系统控制器可对集群内的其他虚拟机中的一个或多个提供服务(例如,DHCP服务)。
虚拟机标识符可以是虚拟机的层2地址或可与虚拟机的层2地址不同。在后面的情况下,虚拟机标识符可以是层3或更高层地址或任何运营商限定的信息项。
方法可进一步包括读取虚拟化应用集群的描述符并且根据该描述符部署系统控制器和虚拟机中的至少一个。描述符可限定虚拟化应用集群的一个或多个参数并且可采用文件的形式或经由运营商设置来提供。在一个变化形式中,从描述符确定虚拟机标识符。如此,描述符可从它们的关联标识符方面限定一个或多个虚拟机。个体虚拟机的功能也可在描述符中限定。如此,描述符可限定虚拟机标识符与虚拟机功能(其也对系统控制器可用)之间的关联。
根据再另外的方面,提供操作虚拟化应用集群内的虚拟机的方法。该方法包括确定虚拟机标识符,其已经在部署虚拟机时被静态配置。方法进一步包括发送对于启动信息的请求消息,其中该请求消息包括虚拟机标识符。
请求消息可发送到集群的系统控制器或位于虚拟机与系统控制器之间的任何虚拟或物理部件(例如,交换机)。
方法进一步包括响应于请求消息来接收启动信息。如上文解释的,启动信息限定启动服务器的地址中的至少一个,该启动服务器配置成对虚拟机提供一个或多个启动文件和到一个或多个启动文件的文件路径。该一个或多个启动文件可包括操作系统文件、内核文件和配置文件中的至少一个,如上文同样阐述的。
在一个变化形式中,请求消息除虚拟机标识符外还包括虚拟机的层2地址。请求消息可以是由虚拟机广播的发现消息。
再进一步,提供操作对于虚拟化应用集群的交换机的方法,其中该集群包括系统控制器和至少一个虚拟机。对每个虚拟机分配第一标识符和第二标识符,并且交换机访问使第一和第二标识符关联的信息。方法包括从虚拟机接收消息(其包括分配给虚拟机的第一标识符)并且基于第一和第二标识符的关联来确定分配给虚拟机的第二标识符。方法进一步包括消息中的第二标识符并且将具有第二标识符的消息发送给系统控制器。
交换机可以是虚拟(例如,软件)部件或物理部件。如本文理解的,术语交换机还包含路由器和能够执行标识符转化服务的相似网络部件。
方法可进一步包括从系统控制器接收包括第二标识符的消息、在消息中包括第一标识符以及将具有第一标识符的消息发送到虚拟机。如此,交换机可配置成用于系统控制器与虚拟机之间的双向通信。
从系统控制器接收的消息可包括对于虚拟机的启动信息。该启动信息可限定启动服务器的地址中的至少一个,该启动服务器配置成对虚拟机提供一个或多个启动文件和到一个或多个启动文件的文件路径。示范性启动文件的内容已经在上文解释。
第二标识符可采用各种方式包括在消息中。作为示例,第一标识符可用第二标识符替代使得输出消息仅包括单个(第二)标识符。备选地,第二标识符可添加到消息使得输出消息包括第一标识符和第二标识符两者。相似考量适用于其中标识符包括在消息中的其他通信方向。
第一标识符可在部署虚拟机时动态分配给虚拟机。这样的分配可由集群的管理部件执行,如上文解释的(例如,经由虚拟机的网卡固件、BIOS和/或虚拟EEPROM的配置)。第二标识符可在系统控制器处静态配置。这样的配置可经由集群的管理部件发生。第二标识符可在系统控制器处连同虚拟机的关联功能和/或关联的启动信息一起配置,如上文解释的。
第一标识符和第二标识符中的至少一个可以是网络地址,例如层2地址。第一标识符和第二标识符中的一个还可与网络地址不同。尤其在后面的情况下,可应用深度包检查技术连同第二标识符的处理(例如,连同读取第二标识符或在消息中包括第二标识符)。
由交换机执行的方法还可包括接收使第一和第二标识符关联的信息。该信息可采取表或任何其他数据结构的形式。关联可限定第一标识符与第二标识符之间的一对一(one-two-one)关系。在一个变化形式中,第一标识符和第二标识符各自是唯一的。
根据再另外的方面,提供操作虚拟化应用集群的管理部件的方法,其中该集群包括至少一个虚拟机。对每个虚拟机分配第一标识符和第二标识符。方法包括确定分配给虚拟机的第一标识符。方法进一步包括部署虚拟机并且在部署时用确定的第一标识符静态配置虚拟机。再进一步,方法包括配置交换机,其使虚拟机与使第一和第二标识符关联的信息对接。
方法可进一步包括部署集群的系统控制器并且对系统控制器提供对使第二标识符和虚拟机功能关联的信息的访问。如上文解释的,系统控制器本身可以是集群内的虚拟机。
在一个变化形式中,交换机是虚拟交换机。在该变化形式中,方法可进一步包括部署虚拟交换机,其中虚拟交换机在部署时配置。在另一个变化形式中,交换机是物理交换机。在该变化形式中,方法可进一步包括将具有使第一和第二标识符关联的信息的配置消息发送到物理交换机。
还提供计算机程序产品,其包括用于在至少一个计算设备上执行计算机程序产品时执行本文公开的任何方法和方法方面的步骤的计算机程序代码部分。将意识到计算机程序产品还可采用分布式方式在多个计算机设备上执行。计算机程序产品可存储在计算机可读记录介质上,例如半导体存储器、DVD或CD-ROM。还可提供计算机程序产品以用于经由通信网络下载。
再进一步,提供虚拟化应用集群内的虚拟机,其中该虚拟机配置成接收基本启动信息、使用基本启动信息来启动基本系统环境、在基本系统环境内确定虚拟机的标识符、发送包括虚拟机的标识符的消息、响应于该消息来接收专用于虚拟机的启动信息以及使用专用启动信息启动专用系统环境。
进一步在虚拟化应用集群中提供系统控制器,其中该集群包括至少一个虚拟机。该系统控制器配置成向虚拟机发送基本启动信息,其中该基本启动信息限定基本系统环境、从虚拟机接收消息(其中该消息包括虚拟机的标识符)、基于标识符来确定专用于虚拟机的启动信息以及向虚拟机发送专用启动信息。
还提供虚拟化应用集群的管理部件,其中该集群包括系统控制器和具有专用功能的至少一个虚拟机。管理部件配置成部署系统控制器并且对系统控制器提供对虚拟机标识符与虚拟机功能之间的关联的访问、确定与要部署的虚拟机的专用功能关联的虚拟机标识符以及部署虚拟机并且在部署时用确定的虚拟机标识符静态配置虚拟机。
此外,提供虚拟化应用集群内的虚拟机。该虚拟机配置成确定在虚拟机的部署时已经静态配置的虚拟机标识符,并且发送对于启动信息的请求消息,其中该请求消息包括虚拟机标识符。
还提供对于虚拟化应用集群的交换机,该集群包括系统控制器和至少一个虚拟机。对每个虚拟机分配第一标识符和第二标识符,其中交换机访问使第一和第二标识符关联的信息。交换机配置成从虚拟机接收消息(其包括分配给虚拟机的第一标识符)、基于第一和第二标识符的关联来确定分配给虚拟机的第二标识符、在消息中包括第二标识符以及向系统控制器发送具有第二标识符的消息。
进一步提供虚拟化应用集群的管理部件,其中集群包括至少一个虚拟机。对每个虚拟机分配第一标识符和第二标识符。管理部件配置成确定分配给虚拟机的第一标识符、部署虚拟机并且在部署时用确定的第一标识符静态配置虚拟机以及配置交换机,其使虚拟机与使第一和第二标识符关联的信息对接。
虚拟机、交换机、系统控制器和管理部件可额外配置成执行本文呈现的方法和方法方面中的任一个。那些方法和方法方面可由关联处理器执行,可选地结合关联接口。任何接口可采用软件的形式、采用硬件的形式或作为软件/硬件组合实现。
还提供虚拟化计算系统,其包括本文呈现的虚拟机、交换机、系统控制器和管理部件中的一个或多个。虚拟化应用集群可代表电信网络的网络节点。在这样的实现中,虚拟化应用集群的虚拟机可运行不同的网络节点应用。
将意识到上文的方法和实体(即,系统控制器、管理部件、虚拟机和交换机)可根据需要组合。此外,将意识到关于一个方面做出的任何阐述还涉及所有其他方面,除非特别排除。
附图说明
本公开的另外的方面、细节和优势将从示范性实施例的下列描述连同附图变得显而易见,其中:
图1示意示出根据本公开的实施例的虚拟化计算系统的部件;
图2示意示出图1的虚拟化计算系统的部件中的若干个的实施例的框图;
图3是图示虚拟化计算系统的更详细实施例的示意图;
图4是图示用于操作图3的部件的方法实施例的流程图;
图5是虚拟机标识符、虚拟机功能和专用启动信息之间的关联的实施例;
图6是描述符实施例的图示;
图7示意示出基于图5的表的关联操作;
图8是图示虚拟化计算系统的另一个更详细实施例的示意图;
图9是图示用于操作图8的部件的方法实施例的流程图;
图10是图示虚拟化计算系统的再另外的更详细实施例的示意图;以及
图11是图示用于操作图10的部件的方法实施例的流程图。
具体实施方式
在示范性实施例的下列描述中,为了解释且没有限制,阐述特定细节,例如特定方法、功能和规程,以便提供对本文呈现的技术的全面理解。该技术可在偏离这些特定细节的其他实施例中实践,这对于本领域内技术人员将是明显的。例如,尽管下列实施例将主要关于示范性协议(例如,DHCP、TFTP等)和特定标识符类型(例如,MAC地址,等)描述,本公开还可使用不同的协议和不同的标识符实践,这将是显而易见的。
此外,本领域内技术人员将意识到本文解释的方法、功能和规程可使用软件功能连同一个或多个编程处理器、专用集成电路(ASIC)、数字信号处理器(DSP)或通用计算机实现。还将意识到尽管下列实施例将主要在方法和虚拟或物理设备的上下文中描述,本公开还可包含在计算机程序产品中,可以加载该计算机程序产品以在计算机或分布式计算机系统上运行,其包括一个或多个处理器和充当存储的一个或多个存储器,其中一个或多个存储器配置成存储一个或多个程序,其在一个或多个计算机上执行一个或多个程序时实现本文呈现的技术。
下列实施例描述连同虚拟化应用集群中一个或多个虚拟机的部署的方面。虚拟机在集群内承担专用功能或角色。那些功能依赖在初始启动规程中限定的专用软件和/或硬件配置。启动规程可牵涉例如在初始发现阶段中系统控制器的请求/响应消息传递,以通过虚拟机请求虚IP或其他网络地址。在这样的请求中,虚拟机可信号传递它们的标识符,例如它们的MAC地址。
在启动新的虚拟机(其是集群应用的部分)时,该集群的系统控制器可从多个虚拟机获得请求但它通常不知道关于发出这些请求的虚拟机的任何事情(例如,它看见未知MAC地址)。因此,系统控制器无法推断在虚拟机上应安装什么种类的软件,并且它甚至根本无法确信特定虚拟机应是集群的部分,或从虚拟机接收是否不应该在特定子网(例如,与系统控制器关联的那个)上启动的请求。
该情形可以导致问题,因为尽管所有虚拟机可采用相同方式开始启动,它们可需要具有不同的特性,其需要每个虚拟机确切获得分配给它的功能,或角色(和对应的软件)。可以使一个虚拟机与另一个不同的示范性特性包括存储器数量、虚拟中央处理单元(CPU)核的数量、虚拟网卡的数量以及它们连接到虚拟交换机的方式等等中的一个或多个。如果系统控制器无法对正确的虚拟机分配正确的功能(和软件),则集群可未能启动或未能正确运行。
下列实施例中的一些从而针对在云中部署虚拟化应用集群并且使得集群中的虚拟机在对系统控制器可用的信息基础上可区分。系统控制器必须知道如何对每个虚拟机分配合适的启动信息(例如,从操作系统OS、内核和其他软件方面)。如所述的,在虚拟环境中,虚拟机的MAC地址可提前不为系统控制器所知,因此系统控制器必须能够实现属于集群的虚拟机。现在将更详细描述用于得到这样的知识的各种方法。该知识在集群的初始部署后、在经由自动或手动缩放添加新的虚拟机时或一般对于属于该集群的虚拟机上的所有生命周期管理操作有用。
图1图示虚拟化计算系统10的实施例。如在图1中示出的,虚拟化计算系统10包括虚拟化应用集群20和集群20外部的管理部件30。集群20进而包括系统控制器40和一个或多个虚拟机50。管理部件30的操作至少部分由采用文件60的形式或用别的方式(例如,由运营商设置)接收的控制信息控制。图1的集群应用可实现电信节点的一个或多个功能。示范性电信节点在该方面包括MSC-SBC、CSCF、MTAS等等。
如在图1中图示的,可选交换机70可位于系统控制器40与虚拟机50之间来拦截其中的通信中的一些或全部。交换机70的操作可基于从管理部件30接收的信息来控制。尽管交换机70在图1中图示为虚拟化应用集群20的部分,交换机70不必定是虚拟部件。相反,交换机70还可以采用物理部件的形式实现。在本公开的范围中,术语交换机在它达成转化任务时还包含具有相似功能的部件,例如路由器。
虚拟化计算系统10的管理部件30可采取各种形式。作为示例,管理部件30可以是集群管理器。因为虚拟化环境有时也称为“云”,集群管理器有时也称为云管理器,或云编排器。
管理部件30在一个变化形式中配置成部署集群20,并且特别是系统控制器40和一个或多个虚拟机50。将意识到管理部件30可配置成部署和管理多个这样的集群20。通过管理部件30的集群部署可在采用文件60的形式或用别的方式(例如,经由运营商设置)接收的控制信息基础上执行。管理部件30可以对于集群20用虚拟机50的初始部署或在后来的时间点向集群20添加额外虚拟机50(例如,以提供弹性或应用缩放)时操作。
管理部件30大体上可以采用软件实体的形式实现,其提供在虚拟化层(其包括虚拟化应用集群20)以上的抽象层。如此,请求由集群20提供的服务的外部应用可仅看到抽象层。管理部件30的抽象层可管理对底层物理基础设施和物理资源的访问。
具有虚拟化应用集群20的系统控制器40可以是软件实体。此外,系统控制器40可以是专用虚拟机本身。如此,系统控制器40可连同虚拟机50一起位于虚拟化层中。
虚拟机50可在没有盘空间的情况下采用软件实体的形式实现,该软件实体将仅在运行时加载。因为虚拟机50在初始部署时在其上将不具有任何软件或操作系统,它们依赖系统控制器40以用于在启动时间加载需要的软件和其他配置,这取决于它们在集群20内的功能。
形成虚拟化应用集群20的虚拟机50在从系统控制器40或用别的方式启动时将被给予具有合适软件和配置的各种功能。一旦集群20就绪(例如,所有虚拟机50已完全被启动),它典型地将作为单个大的系统而不是个体虚拟机的集合而对其他系统可见。
虚拟机50在一个变化形式中使用遵循开放虚拟化格式(OVF)的控制信息来部署。OVF是由分布式管理任务组(DMTF)限定并且用于通过OVF文件(参见图1中的标号60)包装和分发虚拟应用的开放式标准。
OVF文件是采用XML(可扩展标记语言)格式的描述符,其描述形成虚拟化应用集群20的不同虚拟机50的虚拟硬件要求和特性。如将意识到的,对于描述符存在若干其他提议的标准和专用格式。描述符用作管理部件30(例如云管理器)的输入。描述符被云管理器读取并且在部署满足请求的功能或服务的虚拟机50集时控制云管理器。
对于启动规程(其包括在图1中示出的虚拟化环境中软件的初始安装),可选地,可以使用DHCP结合TFP或相似协议。TFTP是允许虚拟机50获得它用于启动所需要的文件的简单协议。对于安装过程,至少一个局部唯一标识符需要与每个虚拟机50关联。唯一标识符使得DHCP服务器可能识别个体虚拟机50(即,它的功能)以便对它分配IP地址并且对该特定虚拟机50提供正确的软件和其他配置。
从而,DHCP可不仅用于分配IP地址而且还将启动信息(和关于可用服务的其他信息)传递到需要启动的请求虚拟机50。该信息可以包括但不限于路由器的地址、时间服务器、TFTP启动服务器和文件路径。基于这些参数,虚拟机50提取启动过程的所有需要的数据和软件并且执行启动过程。
在图1的示范性实现中,DHCP启动服务和可选地TFTP启动服务由系统控制器40提供。将意识到那些服务可以备选地由虚拟化应用集群20内部或外部的任何其他部件提供。
在本文描述的一些或所有实施例中对于虚拟化应用集群20的一般启动过程在一个变化形式中可以用单个虚拟机(VM)50的预启动执行环境(PXE)启动过程的示例描述。在下面,将假设在与启动虚拟机50相同的层2域中存在运行DHCP服务器:
1. VM 50在虚拟化应用集群20内部署
2. VM 50在虚拟网卡的固件中运行PXE启动程序
3. VM 50向广播地址发出初始DHCP请求消息(具有它的标识符)
4. VM 50从DHCP服务器接收响应消息,其包含IP地址、TFTP服务器地址和到初始内核(例如,linux内核)的路径
5. VM 50对于初始OS内核(例如,pxelinux.0)向TFTP服务器发送TFTP get
6. VM 50向TFTP服务器发送TFTP get以用于启动配置(例如,pxelinux.cfg/…)
7. VM 50从TFTP服务器接收初始内核
8. VM 50从TFTP服务器接收配置文件
9. VM 50执行初始内核
10. VM 50对于模块和初始内存盘(initrd)向TFTP服务器发送TFTP get
11. VM 50从TFTP服务器接收初始内存盘
12. VM 50加载内存盘并且执行内容
13. VM 50执行里另外的启动脚本
可以容易理解DHCP响应中包含的启动信息(特别是TFTP服务器地址和到初始OS内核的路径)确定虚拟机50加载的初始软件。因此,该DHCP消息传递在一个实现中可用于在虚拟机50启动后限定它应在虚拟化应用集群20中执行的功能或角色。其细节将在下文描述。
图2图示图1的管理部件30、系统控制器40、一个虚拟机50和可选交换机70的框图。
管理部件30包括处理器32以及耦合于虚拟机50的第一接口34、耦合于交换机70的第二接口36和耦合于系统控制器40的第三接口38。如将意识到的,第二接口36在不存在交换机70的情况下是可选的。
系统控制器40包括处理器42、耦合于管理部件30的接口38的第一接口44以及耦合于交换机70的第二接口46。在未提供交换机70的情况下,系统控制器40的接口46可直接耦合于虚拟机50。在其他配置中,接口46可使系统控制器40既耦合于虚拟机50又耦合于交换机70。
虚拟机50包括处理器52以及耦合于管理部件30的接口34的第一接口54和耦合于交换机70的第二接口56。在不存在交换机70时,接口56可再次直接耦合于系统控制器40。将意识到云20可包括如在图2中示出的多个虚拟机50。
可选交换机70包括处理器72以及耦合于虚拟机50的接口56的第一接口74、耦合于管理部件30的接口36的第二接口76以及耦合于系统控制器40的接口46的第三接口78。
处理器32、42、52和72大体上配置成执行本文描述的处理步骤,例如启动步骤、确定步骤、部署步骤(其包括多个步骤)、配置步骤等等。接口34、36、38、44、46、54、56、74、76和78大体上配置成执行本文描述的发送和接收步骤。
图2中图示的任何接口可实现为硬件接口、软件接口或其组合。将意识到系统控制器40和至少一个虚拟机50可实现为虚拟部件并且从而可可选地与管理部件30一起共享处理资源。这意指处理器32、42和52不必定采用独立硬件资源的形式实现。另一方面,交换机70可实现为虚拟部件或物理部件。
下列实施例部分假设在图2中图示的接口之间有适当的通信协议。如果一个部件不需要确认它正确接收或处理信息,该通信协议可以是单向的。通信协议也可以是双向的并且可允许一个部件确认它已正确处理在消息中或用别的方式接收的信息。双向通信协议还可用于特别通过部件请求消息或请求刷新信息(例如,在部件重启时)。
通信协议可例如基于任何消息队列协议或适合于发送通知的任何协议。在一个实现中,超文本传输协议(HTTP)可以用作通信或传输协议(例如,对于部件中的一个上的预定义端口号的REST风格的请求)。在另一个实现中,可以使用发布/预订机制,一个部件通过其连接到另一部件。
现在将参考图3至11更详细描述图1和2中图示的虚拟化计算系统10的三个操作模式的实施例。将意识到那些操作模式可以根据需要组合。将进一步意识到对于一个实施例关于特定部件、功能、步骤等做出的阐述可以同样适用于其他实施例中的任一个。
图3图示构成图1和2的虚拟化计算系统10的部件之中的信令的第一实施例。图4示出由系统控制器40以及虚拟机50中的一个执行的某些方法步骤连同图3中图示的信令的流程图。将意识到在下文关于图3和4论述的技术可以在没有交换机40的情况下实现。
图3中图示的信令以管理部件30读取OVF文件60或用于包装和分发虚拟应用的任何其他描述符而开始。如上文解释的,文件60限定系统控制器40以及要部署来形成虚拟化应用集群20的虚拟机50的细节。
基于文件60中包括的控制信息,管理部件30首先部署系统控制器40作为集群20内的虚拟机(步骤402)。如本文理解的,虚拟机的部署可包括对于要创建的每个虚拟机的一个或多个虚拟硬件元件(例如虚拟网卡)的安装。
在由管理部件30部署系统控制器40后,管理部件30对系统控制器40提供对虚拟机标识符与虚拟机功能之间的关联的访问。由管理部件30在系统控制器40处安装的示范性关联(采用映射表的形式)在图5中图示。对于每个虚拟机50,个体数据集使多个参数关联,其包括虚拟机的标识符(例如,“PL-01”)、虚拟机50在集群20中将具有的功能(例如,“Payload”)、虚拟机的层2地址(其初始将不为系统控制器40所知)、虚拟机50的层3地址以及启动信息。
启动信息可遵循RFC 2132并且包括配置成提供一个或多个启动文件的启动服务器的地址。此外,启动信息可对内核文件和配置文件中的每个提供文件路径和文件名。内核文件包括对于虚拟机50的操作系统并且配置文件关于虚拟机50在集群20内的特定功能来配置它。
在图5中图示的示范性表中,对三个虚拟机50限定三个独立数据集。那三个虚拟机50中的两个具有相同功能并且因此需要相同启动文件。第三虚拟机50具有不同的功能“Payload_advanced”并且从而需要其他启动文件。
如在图5中示出的,对于要部署的每个虚拟机50,限定专用标识符(例如,“PL-01”)。该标识符在一个变化形式中在集群20内是局部唯一的。这意指系统控制器40能够区分它的集群20内的虚拟机50。在其他变化形式中,可限定标识符使得它们在被相同管理部件30管理的多个集群20内是唯一的。在再另外的实现中,标识符可以是全局唯一的。
如同样在图6中图示的,对于要部署的每个虚拟机50,分配专用层3(IP)地址。层3地址将连同专用于虚拟机50的启动信息一起传达到该虚拟机。
一旦已经部署系统控制器40并且对它提供图在图5中图示的表(或使至少虚拟化标识符和虚拟机功能关联的相似信息),管理部件30确定虚拟机50和它的标识符(步骤404)并且部署该虚拟机50(步骤406)。在部署虚拟机50的时间,管理部件30配置(例如,修改或对其编程)特定虚拟机50以包括使得它与其他虚拟机40可区分的唯一标识符。如将意识到的,用特定标识符配置特定虚拟机50将同时对该虚拟机50分配专用功能(参见图5中的表)。
管理部件30具有用于配置特定虚拟机50的各种选项。作为示例,虚拟机50的虚拟网卡的固件可配置成包括虚拟机标识符。另外或作为备选,该虚拟机50的BIOS和虚拟EEPROM中的一个或多个可用虚拟机标识符配置。虚拟机50由管理部件30的配置是静态的并且在部署时间执行(步骤406)。
在图3中图示的实现中,管理部件30从OVF文件60确定要用于配置虚拟机50中的一个的虚拟机标识符(步骤404)。该文件60对每个虚拟机50包含描述符,如在图6中示出的。在图6的示例中,第一虚拟机“vm-01”与标识符“PL-01”和专用配置参数关联。配置参数指示要指派给虚拟机50的存储器资源(3 GB)以及要分配给虚拟机50的处理器核的数量(2),等等。
如上文论述的,在OFV文件60中限定的标识符与要部署的虚拟机的专用功能关联(参见图5)。虚拟机标识符与虚拟机功能之间的关联可在OFV文件60中、经由管理部件30的运营商设置或用别的方式限定。
在图3中示出的示范性情景中,分配给三个虚拟机50的不同标识符通过具有不同填充物的圆图示。
在部署特定虚拟机50后,它执行如上文论述的PXE启动过程或任何其他启动过程来获得用于执行它在集群20内的专用功能所需要的操作系统和配置信息。为此,虚拟机50初始必须确定在部署时间已经静态配置的标识符(步骤408)。如上文解释的,虚拟机50可从它的虚拟网卡的固件、它的BIOS或它的虚拟EEPROM确定它的标识符配置。
一旦虚拟机50确定它的标识符,它向系统控制器40发送对于启动信息的请求消息(步骤410)。该请求消息包括虚拟标识符。在PXE启动过程中,请求消息可以是由虚拟机50发送到广播地址的DHCP请求消息。该DHCP请求消息包括源MAC地址连同分配给虚拟机50的标识符。源MAC地址在一个变化形式中可由虚拟机50自发生成(例如,基于随机数)。
因为系统控制器40配置成具有像虚拟机50一样的相同层2域,系统控制器40将接收由虚拟机50广播的DHCP请求消息(连同个体虚拟机50的关联标识符和MAC地址)。
图7图示由系统控制器40响应于从虚拟机50中的一个接收DHCP请求消息所执行的处理步骤。如上文解释的,DHCP请求消息将包括虚拟机50的唯一标识符(在这里“PL-01”)以及对应的源MAC地址(在这里“00:11:22:33:44:55”)两者。基于虚拟机标识符,系统控制器40可以查找与该标识符关联的数据集(即,表条目)。系统控制器40从而可以确定分配给虚拟机50的功能(在这里“Payload”)以及对该虚拟机50静态配置的IP地址(在这里:“192.168.0.2”)。另外,系统控制器40可以确定与虚拟机50在集群20中将具有的功能关联的启动信息。该启动信息将在DHCP响应消息中连同分配给虚拟机50的IP地址一起发送给虚拟机50。系统控制器40将进一步用从虚拟机50接收的源MAC地址来补充它对虚拟机50所维持的数据集,如在图7中图示的。
在接收具有正确IP地址和用于满足它的专用功能所需要的启动信息的DHCP响应消息时,虚拟机50可继续启动过程,如在上文关于示范性PXE情景解释的。
可以从图5意识到大体上在虚拟机50的功能与关联的启动信息之间将存在一对一映射。对虚拟机50来说重要的当然是启动信息。图5中的“功能”列因此可以视为对于仅仅没有特定技术启示的系统运营商的描述性信息。如此,启动信息限定虚拟机50的功能并且因此被视为与之同义。
图8图示构成图1和2的虚拟化计算系统10的部件之中的信令的第二实施例。图9示出由系统控制器40和虚拟机50中的一个执行的某些方法步骤连同图3中图示的信令的流程图。将意识到在下文关于图8和9论述的技术也可以在没有交换机70的情况下实现。
关于图8,由管理部件30执行的初始步骤基本上与在上文参考图3解释的步骤相同。这特别适用于系统控制器40的部署。
在第一变化形式中,虚拟机50也如在上文参考图3和4论述的那样部署。备选地,如在图8中示出的,可在部署时间或在后来的时间点对每个虚拟机50提供“lean”OVF文件或至少从分配给它的唯一标识符方面描述虚拟机的相似信息(步骤902)。提供给虚拟机50中的一个的OVF文件中包含的信息可以是与在图6中图示的相同信息。
在已经部署个体虚拟机50并且将它配置有它的唯一身份后,它执行PXE型或其他启动过程。在该启动过程期间,它向系统控制器发送通用请求消息(参见步骤904)。作为示例,在该方面,通用DHCP请求消息可由虚拟机50广播。
初始请求消息将包含虚拟机50的源MAC地址,如上文解释的,但将不(再)包含虚拟机50的标识符,因为虚拟机50不再配置成处理从管理部件30接收的OVF文件。
系统控制器40(其再次是与虚拟机50相同的层2域的部分)将接收广播的DHCP消息。然而,因为该消息不包括任何虚拟机标识符,并且因为消息中包含的源MAC地址初始并不为系统控制器40所知,系统控制器40无法确定请求虚拟机50所需要的启动信息。具体地,无法咨询图5的表或相似的关联信息,除非虚拟机50的标识符为系统控制器40所知。
由于该原因,系统控制器40在步骤906中接收通用DHCP请求消息时首先对请求虚拟机50分配初步IP地址并且选择基本或通用启动信息。在步骤908中,初步IP地址和基本启动信息发送给请求虚拟机50。初步IP地址使虚拟机50能够使用传输控制协议(TCP)/IP栈。基本启动信息限定到通用系统内核的文件路径并且指向启动服务器。如上文解释的,在一个变化形式中,系统控制器40本身可配置为启动服务器(例如,作为TFTP服务器)。通用系统内核对虚拟机50提供具有最小功能的小型操作和文件系统使得它能够执行简单规程。
基本启动信息在步骤910中被虚拟机50接收。虚拟机50然后在步骤912中使用基本启动信息来启动基本系统环境,其包括最小操作和文件系统。在步骤912中启动的基本系统环境配备有处理逻辑,其允许虚拟机50读取从管理部件30接收的OVF文件。作为示例,虚拟CD-ROM驱动器可在部署时附连到虚拟机50,其中该驱动器包含关联OVF文件并且可以在基本系统环境内访问。这样,虚拟机50在基本系统环境内确定如在OVF文件60中限定的它的标识符(例如,“PL-01”)(步骤914)。
因为虚拟机50已经提供有基本系统环境并且具有分配给它的IP地址,虚拟机50可以在步骤916中发送另外的请求消息。从虚拟机50在集群20内承担的功能方面来看,该消息包括虚拟机50的标识符以便获得专用于虚拟机50的启动信息。基于初步IP地址,虚拟机50可使用基于步骤916中的消息传递的TCP/IP的任何协议。作为示例,可使用HTTP、TFTP或FTP。
在本实现中,将假设有虚拟机50在步骤916中发送的消息在步骤918中再次被系统控制器40接收。因为请求消息包括虚拟机50的身份(例如,“PL-01”),系统控制器可咨询局部可用关联信息,例如图5的表,以基于标识符来确定专用于虚拟机的启动信息(步骤920)。与标识符关联的专用启动信息然后可以返回虚拟机50,如在上文参考图3至6论述的(步骤922)。将意识到系统控制器40此时可将层2地址(如在步骤906中接收的)输入关联的数据集。
由系统控制器在步骤922中发送的专用启动信息在步骤924中被虚拟机50接收。基于在步骤924中接收的启动信息,虚拟机50然后可以在步骤926中对它在集群20中的特定功能(例如“Payload”)启动它的专用系统环境,如上文解释的。
在某些情况下,系统控制器40所维持的关联信息包括对于每个虚拟机50的专用IP地址,其与之前分配的初步IP地址不同(参见图5)。在这样的情况下,虚拟机50可配置成从系统控制器40请求它的专用IP地址。对应的请求可再次包括虚拟机50的标识符。系统控制器40然后基于标识符确定与虚拟机50关联的专用IP地址并且将专用IP地址返回虚拟机50。应注意在一些变化形式中,专用IP地址还可连同步骤922中的启动信息一起发送给虚拟机50。在这样的情况下,不需要来自虚拟机50的显式请求消息。
图10图示构成图1和2的虚拟化计算系统10的部件之中的信令的第三实施例。图11示出由管理部件30和交换机70执行的某些方法步骤连同图10中图示的信令的流程图。在本实施例中,虚拟机50和系统控制器40从而通过至少一个(虚拟或物理)交换机70连接。交换机70配置成在运行中修改系统控制器40与虚拟机50之间的信令(例如,包)。由于该目的,交换机70可配置成支持深度包检查技术。尽管交换机70在图10中图示的实施例中是集群20的部分,交换机70可备选地是集群20外部的非虚拟部件。
连同图10中图示的信令部件执行的初始步骤与在上文参考图3和8的信令实施例论述的步骤相似。这特别适用于管理部件30对系统控制器40和虚拟机50的部署。
与上文的实施例相偏离,在本实施例中,每个虚拟机50与两个专用标识符关联。与特定虚拟机50关联的标识符中的一个或两个可采取MAC地址的形式。在一些实现中,标识符中的至少一个还可与网络地址不同并且采取与上文论述的标识符相似的形式(例如,“PL-01”)。
管理部件30配置成对要部署的个体虚拟机50确定分配给该虚拟机的第一标识符(步骤1102)。该第一标识符可作为文件60从描述符确定。
然后,在步骤1104中,管理部件30部署虚拟机50并且在部署时用在步骤1102中确定的第一标识符静态配置虚拟机。在步骤1104中,管理部件30可用专用MAC地址或备选地用如在上文参考图5和6论述的专用标识符配置虚拟机50。
在另外的步骤1106中,管理部件30用使要部署的每个虚拟机50的第一和第二标识符关联的信息来配置交换机70。在一个变化形式中,每个交换机70配置成访问表,其限定对于多个虚拟机50的第一和第二标识符之间的一对一映射。第一标识符和第二标识符各自是唯一的,以确保个体虚拟机50经由第一标识符和第二标识符两者而可区分。
管理部件30可进一步对系统控制器40提供对使第二标识符和虚拟机功能关联的信息的访问。为此,可对系统控制器提供对与图5中图示的相似的表的访问。将意识到在某些配置中,图5中的唯一标识符PL-01、PL-02等等可被专用MAC地址代替。
在部署每个虚拟机50后,它执行PXE型或其他启动规程。在该启动规程中,虚拟机50将朝系统控制器40发送具有它静态配置的第一标识符(例如,它的MAC地址)的DHCP请求消息。虚拟机50与系统控制器40之间的消息传递被交换机70拦截。从而,在步骤1108中,交换机70接收由虚拟机50发送的DHCP请求消息。交换机70分析接收的消息来确定其中包括的第一标识符并且还确定相同虚拟机50的关联第二标识符(步骤1110)。由于该目的,交换机咨询它的预先配置的表,其使虚拟机50的第一和第二标识符关联。
在另外的步骤中,交换机70包括请求虚拟机50从而在消息中确定的第二标识符。作为示例,交换机70可用系统控制器40期望从虚拟机50看到的第二MAC地址(或其他标识符)代替从该虚拟机50接收的DHCP请求消息中的第一MAC地址(参见图5)。具有第二标识符的所得DHCP请求消息然后在步骤1114中发送到系统控制器40。系统控制器40从而看到它可以对其分配合适功能的已知MAC地址(或其他标识符)并且返回专用启动信息以及可选地IP地址,如在上文参考图5解释的。
根据效率配置,交换机70可以配置成在经过它的所有业务中重写MAC地址(或其他标识符),或仅对DHCP请求和响应消息传递这样做。
系统控制器40可直接或经由交换机70将启动信息返回请求虚拟机50。在从系统控制器40到虚拟机50的消息传递通过交换机70运行的情况下,交换机70可在相反方向上执行它的转化功能(即,在将消息转发到关联虚拟机50之前在从系统控制器40接收的消息中包括第一标识符)。
在后来的时间点添加额外虚拟机50的情况下,或如果现有虚拟机50从集群20去除,管理部件30可相应地通知交换机70。交换机70从而可更新标识符的关联。
如在上文已经解释的,交换机70的转化功能在一个变化形式中可仅仅基于作为第一和第二标识符的MAC地址。在另一个实现中,交换机70可将从虚拟机50接收的MAC地址转化为与网络地址不同的唯一标识符,例如“PL-01”(并且反之亦然)。在这样的情况下,唯一标识符不需要保持在虚拟机50中(例如,在虚拟网卡的固件中,如上文解释的),而是在交换机70中。交换机70的处理能力在该实现中无法局限于层2处理,而且还需要层3包检查能力以便解析和修改DHCP请求。
如从上文的示范性实施例的描述变得显而易见的,本文呈现的技术允许在云环境中部署集群应用和在不需要手动干预的情况下启动。技术还通过在没有手动干预的情况下添加或去除虚拟机促进集群大小的增加或减小。
在某些变化形式中,唯一标识符(例如,MAC地址)可以在创建它们时动态分配给虚拟机,而不需要标识符(例如,MAC地址)是静态和预配置的。该方法对于允许要部署相同类型的两个或以上引用集群而没有冲突标识符(例如,冲突MAC地址)是有用的。
本文呈现的技术对于要移植到云或虚拟化环境的遗留应用集群和对于设计成在虚拟化和物理部署两者中运作的新的应用集群可以是有用的。
具有在前面的描述和关联图中呈现的教导的权益的本领域内技术人员将想到公开的实施例的修改。因此,要理解本发明不限于本文公开的特定实施例,并且修改意在包括在该公开的范围内。尽管在本文可采用特定术语,它们仅仅在一般和描述意义上使用并且不是为了限制目的。

Claims (54)

1.一种操作虚拟化应用集群(20)内的虚拟机(50)的方法,所述方法包括:
接收(910)基本启动信息;
使用所述基本启动信息来启动(912)基本系统环境;
在所述基本系统环境内确定(914)所述虚拟机的标识符;
发送(916)消息,其包括所述虚拟机的标识符;
响应于所述消息,接收(924)专用于所述虚拟机的启动信息;以及
使用所述专用启动信息启动(926)专用系统环境。
2.如权利要求1所述的方法,其中
所述基本启动信息响应于由所述虚拟机广播(904)的发现消息而接收。
3.如权利要求1或2所述的方法,其中
确定所述虚拟机的标识符包括从对所述虚拟机可访问的描述符读取所述标识符。
4. 如上述权利要求中任一项所述的方法,其进一步包括
接收用于所述虚拟机的初步网络地址,连同所述基本启动信息;以及
由所述基本系统环境使用所述初步网络地址用于通信。
5.如上述权利要求中任一项所述的方法,其进一步包括
在所述专用系统环境内请求专用网络地址;
接收所述专用网络地址;以及
由所述专用系统环境使用所述专用网络地址用于通信。
6.如上述权利要求中任一项所述的方法,其中
所述启动信息限定启动服务器的地址中的至少一个,所述启动服务器配置成对所述虚拟机提供一个或多个启动文件和到所述一个或多个启动文件的文件路径。
7.如权利要求6所述的方法,其中
所述一个或多个启动文件包括操作系统文件、内核文件和配置文件中的至少一个。
8.如权利要求6和7中任一项所述的方法,其中
启动所述系统环境包括加载和执行所述一个或多个启动文件。
9.一种操作虚拟化应用集群(20)中的系统控制器(40)的方法,其中所述集群包括至少一个虚拟机(50),所述方法包括:
向虚拟机发送(908)基本启动信息,其中所述基本启动信息限定基本系统环境;
从所述虚拟机接收(918)消息,其中所述消息包括所述虚拟机的标识符;
基于所述标识符,确定(920)专用于所述虚拟机的启动信息;以及
将所述专用启动信息(922)发送给所述虚拟机。
10. 如权利要求9所述的方法,其进一步包括
对所述虚拟机分配初步网络地址;以及
将所述初步网络地址连同所述基本启动信息一起发送到所述虚拟机。
11.如权利要求9或10所述的方法,其进一步包括
从所述虚拟机接收对专用网络地址的请求;
确定与所述虚拟机关联的专用网络地址;以及
向所述虚拟机发送所述专用网络地址。
12.如权利要求9至11中任一项所述的方法,其中
所述基本启动信息响应于由所述虚拟机广播的发现消息的接收(906)而发送。
13.如权利要求9至11中任一项所述的方法,其进一步包括
使层2地址与所述虚拟机的标识符关联。
14.如权利要求12和13所述的方法,其中
所述层2地址包括在所述发现消息中。
15.如权利要求9至14中任一项所述的方法,其进一步包括
维持虚拟机标识符与专用于所述虚拟机标识符的启动信息之间的关联。
16.一种操作虚拟化应用集群(20)的管理部件(30)的方法,其中所述集群包括系统控制器(40)和具有专用功能的至少一个虚拟机(50),所述方法包括:
部署(402)所述系统控制器并且对所述系统控制器提供对虚拟机标识符与虚拟机功能之间的关联的访问;
确定(404)虚拟机标识符,其与要部署的虚拟机的专用功能关联;以及
部署(406)所述虚拟机并且在部署时用确定的虚拟机标识符静态配置所述虚拟机。
17.如权利要求16所述的方法,其中
每个虚拟机标识符与正好一个功能关联。
18.如权利要求16或17所述的方法,其中
多个虚拟机标识符与相同功能关联。
19.如权利要求16至18中任一项所述的方法,其中
所述管理部件用所述确定的虚拟机标识符配置所述虚拟机的网卡固件、基本输入输出系统(BIOS)和虚拟可擦除电可编程只读存储器(EEPROM)中的至少一个。
20.如权利要求16至19中任一项所述的方法,其中
虚拟机的专用功能限定专用于所述虚拟机的启动信息。
21.如权利要求20所述的方法,其中
所述启动信息限定启动服务器的地址中的至少一个,所述启动服务器配置成对所述虚拟机提供一个或多个启动文件和到所述一个或多个启动文件的文件路径。
22.如权利要求16至21中任一项所述的方法,其中
所述系统控制器部署为所述集群内的虚拟机。
23.如权利要求16至22中任一项所述的方法,其中
所述虚拟机标识符与所述虚拟机的层2地址不同。
24. 如权利要求16至23中任一项所述的方法,其进一步包括
读取所述虚拟化应用集群的描述符(60);以及
根据所述描述符部署所述系统控制器和所述虚拟机中的至少一个。
25.如权利要求23所述的方法,其中
所述虚拟机标识符从所述描述符确定。
26. 一种操作虚拟化应用集群(20)内的虚拟机(50)的方法,所述方法包括:
确定(408)虚拟机标识符,其已经在部署所述虚拟机时被静态配置;以及
发送对于启动信息的请求消息,其中所述请求消息包括所述虚拟机标识符。
27.如权利要求26所述的方法,其进一步包括
接收所述启动信息,其中所述启动信息确定启动服务器的地址中的至少一个,所述启动服务器配置成对所述虚拟机提供一个或多个启动文件和到所述一个或多个启动文件的文件路径。
28.如权利要求27所述的方法,其中
所述一个或多个启动文件包括操作系统文件、内核文件和配置文件中的至少一个。
29.如权利要求26至28中任一项所述的方法,其中
所述请求消息进一步包括所述虚拟机的层2地址。
30.如权利要求26至29中任一项所述的方法,其中
所述请求消息是由所述虚拟机广播的发现消息。
31.一种操作虚拟化应用集群(20)的交换机(70)的方法,所述集群包括系统控制器(40)和至少一个虚拟机(50),其中对每个虚拟机分配第一标识符和第二标识符并且其中所述交换机访问使所述第一和第二标识符关联的信息,所述方法包括:
从虚拟机接收(1108)消息,其包括分配给所述虚拟机的第一标识符;
基于第一和第二标识符的关联,确定(1110)分配给所述虚拟机的第二标识符;
在所述消息中包括(1112)所述第二标识符;以及
向所述系统控制器发送(1114)具有所述第二标识符的消息。
32.如权利要求31所述的方法,其进一步包括
从所述系统控制器接收消息,其包括所述第二标识符;
在所述消息中包括所述第一标识符;以及
向所述虚拟机发送具有所述第一标识符的消息。
33.如权利要求32所述的方法,其中
从所述系统控制器接收的消息包括用于所述虚拟机的启动信息。
34.如权利要求33所述的方法,其中
所述启动信息限定启动服务器的地址中的至少一个,所述启动服务器配置成对所述虚拟机提供一个或多个启动文件和到所述一个或多个启动文件的文件路径。
35.如权利要求31至34中任一项所述的方法,其中
在所述消息中包括所述第二标识符包括以下中的一个:
用所述第二标识符替代所述第一标识符;以及
除所述第一标识符外还添加所述第二标识符。
36.如权利要求31至35中任一项所述的方法,其中
所述第一标识符在部署所述虚拟机时动态分配给所述虚拟机。
37.如权利要求31至36中任一项所述的方法,其中
所述第二标识符在所述系统控制器处静态配置。
38.如权利要求31至37中任一项所述的方法,其中
所述第一标识符和所述第二标识符中的至少一个是网络地址。
39.如权利要求38所述的方法,其中
所述网络地址是层2地址。
40.如权利要求31至39中任一项所述的方法,其进一步包括
应用深度包检查技术连同所述第二标识符的处理。
41.如上述权利要求中任一项所述的方法,其进一步包括
接收使所述第一和第二标识符关联的信息。
42.一种操作虚拟化应用集群(20)的管理部件(30)的方法,其中所述集群包括至少一个虚拟机(50),其中对每个虚拟机分配第一标识符和第二标识符,所述方法包括:
确定(1102)分配给所述虚拟机的第一标识符;
部署(1104)所述虚拟机并且在部署时用确定的第一标识符静态配置所述虚拟机;以及
配置(1106)交换机,其使所述虚拟机与使所述第一和第二标识符关联的信息对接。
43.如权利要求42所述的方法,其进一步包括
部署所述集群的系统控制器(40)并且对所述系统控制器提供对使所述第二标识符和虚拟机功能关联的信息的访问。
44. 如权利要求42或43所述的方法,其中
所述交换机是虚拟交换机;并且
进一步包括部署所述交换机,其中所述虚拟交换机在部署时配置。
45. 如权利要求42或43所述的方法,其中
所述交换机是物理交换机;并且
进一步包括向所述物理交换机发送具有使所述第一和第二标识符关联的信息的配置消息。
46.一种计算机程序产品,其包括用于在一个或多个计算设备上执行所述计算机程序产品时执行如所述权利要求中任一项所述的步骤的程序代码部分。
47.如权利要求46所述的计算机程序产品,其存储在计算机可读记录介质上。
48.一种虚拟化应用集群(20)内的虚拟机(50),所述虚拟机配置成:
接收基本启动信息;
使用所述基本启动信息来启动基本系统环境;
在所述基本系统环境内确定所述虚拟机的标识符;
发送消息,其包括所述虚拟机的标识符;
响应于所述消息,接收专用于所述虚拟机的启动信息;以及
使用所述专用启动信息来启动专用系统环境。
49.一种虚拟化应用集群(20)中的系统控制器(40),其中所述集群包括至少一个虚拟机(50),所述系统控制器配置成:
向虚拟机发送基本启动信息,其中所述基本启动信息限定基本系统环境;
从所述虚拟机接收消息,其中所述消息包括所述虚拟机的标识符;
基于所述标识符,确定专用于所述虚拟机的启动信息;以及
向所述虚拟机发送专用启动信息。
50.一种虚拟化应用集群(20)的管理部件(30),其中所述集群包括系统控制器(40)和具有专用功能的至少一个虚拟机(50),所述管理部件配置成:
部署所述系统控制器并且对所述系统控制器提供对虚拟机标识符与虚拟机功能之间的关联的访问;
确定虚拟机标识符,其与要部署的虚拟机的专用功能关联;以及
部署所述虚拟机并且在部署时用确定的虚拟机标识符静态配置所述虚拟机。
51. 一种虚拟化应用集群(20)内的虚拟机(50),所述虚拟机配置成:
确定在所述虚拟机的部署时已经静态配置的虚拟机标识符;以及
发送对于启动信息的请求消息,其中所述请求消息包括所述虚拟机标识符。
52.一种用于虚拟化应用集群(20)的交换机(70),所述集群包括系统控制器(40)和至少一个虚拟机(50),其中对每个虚拟机分配第一标识符和第二标识符并且其中所述交换机访问使所述第一和第二标识符关联的信息,所述交换机配置成:
从虚拟机接收消息,其包括分配给所述虚拟机的第一标识符;
基于第一和第二标识符的关联,确定分配给所述虚拟机的第二标识符;
在所述消息中包括所述第二标识符;以及
向所述系统控制器发送具有所述第二标识符的消息。
53.一种虚拟化应用集群(20)的管理部件(30),其中所述集群包括至少一个虚拟机(50),其中对每个虚拟机分配第一标识符和第二标识符,所述管理部件配置成:
确定分配给所述虚拟机的第一标识符;
部署所述虚拟机并且在部署时用确定的第一标识符静态配置所述虚拟机;以及
配置交换机,其使所述虚拟机与使所述第一和第二标识符关联的信息对接。
54.一种虚拟化计算系统(10),其包括如权利要求48至53所述的部件(30;40;50;70)中的一个或多个。
CN201480077726.3A 2014-02-07 2014-02-07 虚拟化应用集群 Pending CN106462457A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2014/052491 WO2015117676A1 (en) 2014-02-07 2014-02-07 Virtualized application cluster

Publications (1)

Publication Number Publication Date
CN106462457A true CN106462457A (zh) 2017-02-22

Family

ID=50112890

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480077726.3A Pending CN106462457A (zh) 2014-02-07 2014-02-07 虚拟化应用集群

Country Status (4)

Country Link
US (1) US20160342439A1 (zh)
EP (1) EP3103016B1 (zh)
CN (1) CN106462457A (zh)
WO (1) WO2015117676A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015117669A1 (en) 2014-02-07 2015-08-13 Telefonaktiebolaget L M Ericsson (Publ) A technique for operating a system controller of a virtualized application cluster
US20170063627A1 (en) * 2015-08-25 2017-03-02 Bluedata Software, Inc. Allocation of virtual clusters in a large-scale processing environment
US9848039B2 (en) * 2015-09-22 2017-12-19 International Business Machines Corporation Deployment of virtual machines
US10372464B2 (en) * 2016-06-22 2019-08-06 Western Digital Technologies, Inc. Provisioning the hyper-converged infrastructure bare metal systems from the top of the rack switch
JP2018036977A (ja) * 2016-09-02 2018-03-08 富士ゼロックス株式会社 情報処理装置及びプログラム
US10367733B2 (en) * 2017-03-30 2019-07-30 Nicira, Inc. Identifier-based virtual networking
CN109697109B (zh) * 2018-12-27 2023-09-05 深信服科技股份有限公司 一种区分识别冲突虚拟机的方法、系统、装置及存储介质
CN111538561B (zh) * 2020-03-27 2023-10-31 上海仪电(集团)有限公司中央研究院 基于KVM虚拟化技术的OpenStack大规模集群部署测试的方法及系统
US11995452B2 (en) * 2021-11-10 2024-05-28 Dell Products L.P. Firmware memory map namespace for concurrent containers
US12026520B2 (en) * 2021-12-29 2024-07-02 Ati Technologies Ulc Multiple module bootup operation

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080089338A1 (en) * 2006-10-13 2008-04-17 Robert Campbell Methods for remotely creating and managing virtual machines
WO2012069064A1 (en) * 2010-11-22 2012-05-31 Telefonaktiebolaget L M Ericsson (Publ) Technique for resource creation in a cloud computing system
CN102790716A (zh) * 2011-05-13 2012-11-21 国际商业机器公司 使用物理网络交换机保护虚拟化计算环境的方法和装置
CN102893559A (zh) * 2010-05-14 2013-01-23 微软公司 互连虚拟网络的成员
GB2497196A (en) * 2011-12-01 2013-06-05 Ibm Enabling co-existence of hosts or virtual machines with identical addresses across a network
US20130151835A1 (en) * 2011-12-13 2013-06-13 International Business Machines Corporation Deployment of a Software Image on Multiple Targets with Streaming Technique
US20130346576A1 (en) * 2012-06-25 2013-12-26 Delta Electronics, Inc. Cloud server for managing hostnames and ip addresses, and management method for the cloud server

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080008933A1 (en) * 2005-12-23 2008-01-10 Boston-Power, Inc. Lithium-ion secondary battery
US8656386B1 (en) * 2007-03-13 2014-02-18 Parallels IP Holdings GmbH Method to share identical files in a common area for virtual machines having the same operating system version and using a copy on write to place a copy of the shared identical file in a private area of the corresponding virtual machine when a virtual machine attempts to modify the shared identical file
US8875181B2 (en) * 2008-08-05 2014-10-28 At&T Intellectual Property I, L.P. Method and system for presenting media content
WO2010116840A1 (ja) * 2009-03-30 2010-10-14 新日本製鐵株式会社 誘導電動機制御装置、及び誘導電動機群制御システム
KR20120091453A (ko) * 2010-02-19 2012-08-17 도쿄엘렉트론가부시키가이샤 반도체 장치의 제조 방법
US9107054B2 (en) * 2010-11-22 2015-08-11 Ayu Technology Solutions Llc Systems and methods for facilitating media connections
US20130015183A1 (en) * 2011-07-14 2013-01-17 David Fredette Container system with interlock and collapsible capabilities
KR101856938B1 (ko) * 2011-08-04 2018-05-14 삼성디스플레이 주식회사 오프셋 인쇄 기판의 제조 방법 및 이를 이용한 표시 기판의 제조 방법
US8954788B2 (en) * 2013-02-13 2015-02-10 Lsi Corporation Methods and structure for single root input/output virtualization enhancement in peripheral component interconnect express systems
WO2015117669A1 (en) * 2014-02-07 2015-08-13 Telefonaktiebolaget L M Ericsson (Publ) A technique for operating a system controller of a virtualized application cluster

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080089338A1 (en) * 2006-10-13 2008-04-17 Robert Campbell Methods for remotely creating and managing virtual machines
CN102893559A (zh) * 2010-05-14 2013-01-23 微软公司 互连虚拟网络的成员
WO2012069064A1 (en) * 2010-11-22 2012-05-31 Telefonaktiebolaget L M Ericsson (Publ) Technique for resource creation in a cloud computing system
CN102790716A (zh) * 2011-05-13 2012-11-21 国际商业机器公司 使用物理网络交换机保护虚拟化计算环境的方法和装置
GB2497196A (en) * 2011-12-01 2013-06-05 Ibm Enabling co-existence of hosts or virtual machines with identical addresses across a network
US20130151835A1 (en) * 2011-12-13 2013-06-13 International Business Machines Corporation Deployment of a Software Image on Multiple Targets with Streaming Technique
US20130346576A1 (en) * 2012-06-25 2013-12-26 Delta Electronics, Inc. Cloud server for managing hostnames and ip addresses, and management method for the cloud server

Also Published As

Publication number Publication date
EP3103016A1 (en) 2016-12-14
US20160342439A1 (en) 2016-11-24
WO2015117676A1 (en) 2015-08-13
EP3103016B1 (en) 2022-10-05

Similar Documents

Publication Publication Date Title
CN106462457A (zh) 虚拟化应用集群
US10469314B2 (en) API gateway for network policy and configuration management with public cloud
US11855904B2 (en) Automated migration of compute instances to isolated virtual networks
US11388228B2 (en) Methods, systems and computer readable media for self-replicating cluster appliances
US10855537B2 (en) Methods and apparatus for template driven infrastructure in virtualized server systems
US11483405B2 (en) Private cloud as a service
US10411947B2 (en) Hot swapping and hot scaling containers
US7451071B2 (en) Data model for automated server configuration
CN104734931B (zh) 一种虚拟网络功能间链路建立方法及装置
US10826768B2 (en) Controlled node configuration
US10915350B2 (en) Methods and systems for migrating one software-defined networking module (SDN) to another SDN module in a virtual data center
US20090199178A1 (en) Virtual Application Management
JP2021518018A (ja) 関数チェックポイントを使用したサービスハブのための関数移植性
CN112910685B (zh) 实现对容器网络统一管理的方法及装置
US8423734B2 (en) Making automated use of data volume copy service targets
US11539553B1 (en) Onboarding a VNF which includes a VDU with multiple VNFCs
US7844766B1 (en) System and method for location specific computer enabled services/monitoring
CN112328262A (zh) 操作系统的部署方法、系统、装置及电子设备
US11489814B1 (en) Customized domain name resolution for virtual private clouds
US20180011741A1 (en) Interoperability-as-a-service in a cloud environment
US20230138867A1 (en) Methods for application deployment across multiple computing domains and devices thereof
US11652849B2 (en) Identifying recommended feature sets based on application feature popularity
EP3103012B1 (en) A technique for operating a system controller of a virtualized application cluster
Mayer et al. Unified resource manager virtualization management
Kuusisto Centralized data center provisioning and configuration in managed service provider environment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170222

RJ01 Rejection of invention patent application after publication