用于虚拟计算机系统的分布式虚拟交换机的制作方法

文档序号:6593687阅读:248来源:国知局
专利名称:用于虚拟计算机系统的分布式虚拟交换机的制作方法
用于虚拟计算机系统的分布式虚拟交换机
背景技术
虚拟机(VM)是真实的物理计算机系统的抽象_ “虚拟化”。图1显示实施虚拟化 的计算机系统70的一个可能的解决方案。在这个解决方案中,多个虚拟机20,. . . 20-n在 主机10上被虚拟化软件15抽象(abstracted)。在本示例中,虚拟化软件15包括虚拟机 内核60以及一个或多个虚拟机监视器(VMM) 50。按照本领域一般理解,其他配置也可能提 供虚拟化功能。主机10通常包括一个或多个处理器11、内存13、某种形式的大容量数据存 储14、一个或多个网络接口卡(NIC) 17以及各种其他设备19。众所周知,该术语“NIC”通 常指的是实施网络连接的元件,不管它是以独立的卡存在还是整合在主机板上。每个虚拟机20,. . . 20-n可被认为是既包括虚拟系统硬件22又包括客户系统软件 30。虚拟系统硬件22通常包括一个或多个虚拟处理器28、虚拟内存23、至少一个虚拟磁盘 24以及一个或多个虚拟网络接口卡(VNIC)(仅显示了一个)。还可包括一个或多个附加的 虚拟设备27,例如虚拟用户接口设备、通用串行总线(USB)端口等。虚拟系统硬件22在图 1中以虚线框显示,因为它仅仅是一个概念,不能离开虚拟化软件15和主机10而存在。这 个概念仅仅是客户系统软件30的运行环境的一个代表。虚拟机20的所有虚拟硬件构件是 由虚拟化软件15使用已知的技术实际实施以模拟相应的物理构件。在本示例中,虚拟化软 件15包括一个或多个虚拟机监视器(VMM) 50,每个虚拟机监视器包括设备仿真器53。客户系统软件30包括客户操作系统(OS) 32和虚拟网络接口卡(VNIC) 25、虚拟磁 盘24以及其他各种虚拟设备27所需的驱动程序34。客户操作系统32可为被设计为直接 在硬件平台上(也就是说,不是在虚拟机上)运行的现成的操作系统,或者它可为取决于 具体实施虚拟化软件15所需要的或所允许的条件,特别为在半虚拟环境中运行修正的操 作系统。因此术语“虚拟化软件”此处指的是全虚拟化或者半虚拟化植入的软件层。“全虚 拟化”指的是这样的系统,在该系统中除了会在非虚拟计算机中找到的那些以外,没有任何 形式的软件组件被包括在客户操作系统中,因此,该客户操作系统会是现成的、商用操作系 统,没有特别包括任何组件来支持虚拟环境中的使用。相对地,“半虚拟”系统不是“完全” 虚拟。更确切地说,该客户操作系统被设置为以某种方式提供某些特征以便利虚拟化。就 此处而言,术语“虚拟化”包括全虚拟化和半虚拟化两者。除了客户操作系统32外,还有一个或多个客户应用程序36在虚拟机20 “内”执 行,尽管本领域普通技术人员会理解,客户OS和客户应用指令的执行是经由虚拟化软件15 和主机平台10发生的。客户应用程序36可为被设计为与客户操作系统32 —起工作的任 何类型的应用程序。正如虚拟化领域的一般理解,用户对虚拟机20的输入和输出可被虚拟 化软件15重新定向(redirected)至远程终端(未示)或通过终端应用程序(未示)在控 制台操作系统40上执行。虚拟化软件15可包括一个或多个软件组件和/或层,可能包括一个或多个在虚 拟机技术领域被称为“虚拟机监视器”(VMM)、“管理程序”或虚拟化内核(此处称为“VM内 核”)的软件组件。由于随着时间的推移,虚拟化术语已经变化了,并且还没有完全标准化, 这些术语并不总是在软件层和组件之间明确区分他们指的是什么。此处所用的术语“虚拟化软件”旨在笼统指逻辑性地置于虚拟机与该主机平台之间的软件层或组件。 在图1所示的虚拟化系统中,VMM 50被部署在VM内核60上方。VM内核60可被 专门构建为对该VM提供有效支持并且直接(也就是说,不使用通用主机0S,例如Linux或 Windows)与构成主机10的物理资源和设备对接。请注意该VM内核60与该客户OS 32内 的内核并不同。众所周知,每个典型的操作系统具有它自己的OS内核。还请注意尽管图1 所示的配置一般被称为“非主机式的(non-hosted) ”,VM内核60仍可被视为是该VM的主 机平台的一部分。在不同的、众所周知的配置(未示)中,虚拟化软件15会包括通用操作系统(未 示),而不是VM内核。这样的配置通常指的是“主机式的(hosted)”虚拟化系统,该通用操 作系统作为主机OS。该主机OS被配置为与该VMM —起以及有时鉴于该VMM的请求,对于在 该系统上执行的各种VM完成某些设备输入/输出(1/0)操作。在这种情况下,该主机OS 可被视为实现虚拟化的虚拟化软件的一部分。该虚拟化软件的配置的选择,也就是说主机 式还是非主机式,或者不管它是完全虚拟还是半虚拟,是基于每种类型的相对优点及缺点 而做出的,而这些优缺点对于虚拟计算机系统领域的普通技术人员来说是熟知的。图2描述了通过虚拟交换机65将网络构架传送至主机10-1的网络接口卡 (NIC) 17 的 VM 20-1、20-2 以及 VMM 50-1、50-2。虚拟化软件 15 将来自 VM 20-1,20-2 的 网络构架经由虚拟NIC(VNIC) 25-1、25-2传送至主计算机10-1的物理NIC 17。每个VNIC 25-1、25-2以通信方式耦合到虚拟交换机65的相应虚拟端口 62、64。虚拟交换机65是虚 拟端口 62、64的逻辑集合,并且保持VNIC地址,例如,MAC地址的转发数据库(未示)。每 个虚拟端口 62、64、66是相应VNIC与往返该VNIC转发流量的软件组件的逻辑汇聚点。以 这种方式,虚拟交换机65决定怎样以及在哪里发送在VNIC 25-1、25-2和NIC 17间往返传 送的网络构架。因此,虚拟交换机65起到软件桥的作用,其允许多个VM共享零个、一个或 多个物理NIC。举例来说,如果零个(也就是说,没有)物理NIC被安装在主机10-1上,那 么虚拟交换机65可能起到虚拟网络的作用,连接在主机10-1上运行的VM 20-1、20-2。每个VNIC 25-1,25-2是模拟网络设备,由虚拟化软件15提交给VM 20-1,20-2要 求网络访问。这样,虚拟交换机65处理连接至虚拟交换机65的这些VNIC 25-1、25-2之间 的转发流量并且可能经由一个或多个物理NIC桥接至物理网络。总体来说,基于网络构架 的标头(header),虚拟交换机能够决定该架构是否本地指定(destined)的,以及如果它是 本地指定的,哪个虚拟机应该接收该架构。网络管理员通常被要求管理该虚拟交换机65以 配置这些特征。由于虚拟交换机65的数量通常在数量上比其物理对应物多,该网络管理员 可能被要求完成配置很多虚拟交换机65的重复任务。虚拟化技术的一个优点是通过在一个主机上掉电(power down)或暂停 (suspend) VM,以及在不同的物理主机上通电(power up)或恢复(resume)该VM,允许VM被 从一个物理主机迁移到另一个。在这个上下文中,“暂停”指的是该VM的执行被虚拟化软件 暂时或永久停止。应当注意尽管它在“运行”,VM的执行经常被暂停。举例来说,为了允许另 一个协同运行的VM的执行继续,VM可能被瞬间暂停。相反,VM “断电(power-off) ”指的是 虚拟物理机的掉电程序。与物理计算机一样,VM会以有条不紊的方式被掉电,在该方式中, 每个过程被即将关闭的OS通知,允许每个开放的应用保存其数据并退出,或者该掉电可通 过模拟断电来完成,在该情况下,所有在运行的过程被终止,丢失了与在运行的过程有关的任何未保存的数据或者状态。VM断电后,执行的恢复通常要求重新启动该客户OS并且重新开始任何应用程序,而暂停VM的恢复执行要求将该状态重载入该VM以及恢复执行。当VM被暂停时,这些过程被停止,且该VM的状态,包括其存储器内容、寄存器 (register)设置、虚拟设备状态等等,会被写入磁盘。在如图2所示的示例中,虚拟机20_2 可通过主机10-1上的虚拟机20-2的暂停或掉电以及在主机10-2上的虚拟机20-2的恢复 或供电被迁移,如箭头75所示。因此该术语“迁移”指的是通过在一个主机上暂停或断电 VM以及在不同主机上恢复或供电该VM,从一个主机迁移VM至另一个的过程。不幸的是,从一个主机迁移VM至另一个,对于被迁移的VM而言,会涉及一些与 VNIC有关的状态的损失。照惯例,当虚拟机20-2被从主机10-1迁移至主机10-2时(如箭 头75所示),VNIC仿真器55-2与虚拟端口 64之间的连接56被损失,如交叉52所示,并且 新的连接58被建立在VNIC仿真器55-3与由主机10_2上的虚拟化软件15’实施的虚拟交 换机65,上的虚拟端口 66之间。MAC地址以及与VNIC 25_2有关的其他状态信息能够被作 为构成虚拟机20-2的虚拟设备的部分属性传送至VNIC 25-3,从而使被恢复的虚拟机20_2 保持其在该网络上的位置。然而,虚拟机20-2进一步连接至主机10-2上的虚拟交换机65’ 的虚拟端口 66,假设新端口 66提供类似的网络连通性,但不保存与虚拟NIC设备25-2没有 特定关联的任何状态(例如,MAC地址、播放/组播过滤器等等)。因此,在这个VM迁移过 程期间,可能积累在虚拟交换机端口 64上的状态信息通常被损失。除了这些迄今为止未被认识的问题,如果VM在迁移而网络管理员企图浏览和/或 重新配置虚拟网络,那么从交换机角度浏览虚拟网络的网络管理员就没有一致的拓扑来工 作。发明内容此处描述的是维持虚拟计算机系统中的虚拟端口的状态的方法。在某些实施 方式中,分布式虚拟端口(DVport)被储存在永久性存储单元中,该DVport包括相应虚拟端 口的状态以及该虚拟端口的配置设置。另外,该虚拟端口与连接至该虚拟端口的虚拟网络 接口卡(VNIC)之间的关联被存储。当与该VNIC相应的虚拟机被重新启动时,该DVport的 状态被从该永久性存储单元取回并被应用于新的虚拟端口。


图1描述了非主机式虚拟系统。图2描述了通过虚拟交换机将网络构架传送至系统硬件的网络接口卡(NIC)的VM 以及VMM。图3根据一个实施方式描述了分布式虚拟交换机(DVswitch)。图4根据一个实施方式描述了 DVswitch的分布式虚拟端口(DVport)是怎样配置 的。图5根据一个实施方式描述了在VM迁移过程中,DVswitch怎样在VNIC与虚拟交 换机之间重新配置连接。图6根据一个实施方式描述了用于建立和删除DVswitch的过程。图7根据一个实施方式描述了 VNIC与DVswitch的DVport之间往返连接或者断 开的过程。图8根据一个实施方式描述了 VM迁移过程中DVport迁移的过程。图9根据一个实施方式描述了主机掉电及通电过程中重新配置DVswitch的过程。
具体实施例方式现在请详细参考一些实施方式,其示例被描述在随附的附图中。请注意在这些附 图中可行的同类或类似标号无论在哪里被使用,可能意味着同类或类似的功能性。这些附 图仅出于描述目的来描述实施方式。本领域普通技术人员将从下文描述中很容易认同,在 没有背离此处描述的原理的情况下,此处描述的结构和方法的等同实施方式也可以实施。图3以示例方式描述了被管的(managed)虚拟计算机系统的集合300。根据一个 实施方式,分布式虚拟交换机(DVswitch)包括DVswitch组件350A、350B和350C。此处的 术语“分布式”被用于描述可在被管的主计算机的集合内从一个物理主机迁移至另一个或 者跨越多个主机的客体。该DVswitch因而是个软件抽象,其把被管集合内的类似虚拟交 换机602、602’捆绑成单个逻辑配置实体。图3仅描绘两个主机100-1、100-2,每个仅具有 单个VM 320,320'以及相应的VNIC仿真器301-1、301-2,仅用于描述目的。应当认识到, DVswitch可跨越任何数量的主机,每个主机具有任何数量的VM,每个VM相应地具有任何数 量的VNIC,其中任何一个可被个别主机的可用硬件资源在数量上进行限制。该DVswitch,作为软件抽象,以分布式方式驻留在各种硬件上,因此称作“分布式” 虚拟交换机。举例来说,DVswitch组件350A、350B和350C驻留在主机100-1、100-2以及 数据库370。DVswitch组件350A、350B和350C在图3中以虚线框表示,指示构成DVswitch 的DVswitch 350A、350B以及350C各部分。除了这些组件,DVswitch功能的逻辑实现位于 虚拟化软件600以及数据库控制器372,下文将做更多的描述。如图3所示,每个VNIC 215-1、215-2分别保持单个虚拟端口 652、654。每个VNIC 仿真器301-1、301-2与VM 200-1、200-2内的NIC驱动器224-1、224_2交互作用,以与 VM 320、320,往返收发数据。举例来说,对于每个VM 320、320,,每个VNIC仿真器301-1、 301-2会维持一个或多个VNIC的状态。替代性地,VNIC仿真器301_1、301_2的多个实例 (每个主机仅显示一个)可被实例化在虚拟化软件层内。不管在哪种情况,单个VM会具有 一个或多个VNIC,其会被一个或多个VNIC仿真器实施。出于描述目的,对于每个VM,图3 仅显示一个VNIC,并且对于每个主机,仅一个VM。熟悉本领域的普通技术人员会认识到, 此处VNIC215-l、215-2的讨论实际上是被每个VNIC仿真器301_1、301_2实施和维持的 VNIC状态的讨论。正如前面提及,虚拟设备如VNIC215-l、215-2是软件抽象,其被视为仿佛 VM 200-1,200-2的部分以方便讨论,但事实上是由虚拟化软件600、600’用仿真器301-1、 301-2实施。然而,每个虚拟机200-1、200-2的状态包括其虚拟设备的状态,该虚拟设备被 该下层虚拟化软件600、600’控制并维持。当VM被暂停或关机并且迁移,其状态包括例如 任何VNIC的MAC地址的网络设置,与该VM —起被迁移。连接 至相同物理网络442的相似虚拟交换机602、602’用一个DVswitch管理。物 理网络442可为例如局域网。在图3中,该DVswitch包括分布式虚拟端口(DVport)352、 354。DVport是封装(encapsulate)相应虚拟端口的“个性”(配置与运行时状态两者)的 软件抽象。因此,DVport 352包含代表虚拟交换机602的虚拟端口 652的配置和运行时状 态的一个或多个数据结构。同样,DVport 354包含代表虚拟交换机602’的虚拟端口 654的 配置和运行时状态的一个或多个数据结构。DVport被创建为具有由网络管理员预先定义的 配置。虚拟端口 652、652’被创建并且以空白的配置状态开始,但是一旦与DVport关联,采 用该关联DVport的配置和运行时状态。当VM被迁移或断电和通电时,DVport与虚拟NIC之间的该“连接”并没有受到影响,因为该DVport维持并与其连接的VM —起迁移。 此处使用术语“连接(connection) ”来描述虚拟NIC与DVport的关联。在一个 实施方式中,这一关联被虚拟化软件600、600’本地维持并且处于数据库370内的表格或其 它数据结构内,下文将对数据库作更详细的讨论。当与DVport的连接发生时,在没有明确 断开该已经被连接的虚拟NIC的情况下,另一个虚拟NIC就不能被连接至那个DVport。此 处使用术语“建立链接(link up)”来描述虚拟NIC与虚拟端口已经准备就绪收发架构的 状态。如果并且只有当该虚拟NIC与该虚拟端口两者在这一链接状态取得一致时,该网络 流量才能被该虚拟交换机转发至该虚拟NIC以及从其转发。请注意此处使用术语“过滤器 (filter)”来描述在该虚拟端口与该虚拟NIC之间置于输入输出(I/O)路径的软件组件。 此处使用术语“转发引擎”来描述能够对虚拟端口建立并维持表格映射层2硬件地址(例 如,MAC地址),并且基于那些表格做出转发决定的软件组件。DVswitch以及DVport状杰 管理基于应能被主机100-1、100-2的被管域(managed domain)内的物理NIC 172、 172,利用的物理资源,建立DVswitch 350及其DVport352、354。一旦建立,数据库370存 储DVswitch 350与DVport352、354的状态。数据库370可被提供在经由物理网络442连 接至主机100-1、100-2的数据库控制器372上。在备用的实施方式中,第二物理网络(未 示)经由被安装在各个主机100-1、100-2上的第二 NIC (未示),将数据库服务器374连接 至主机100-1、100-2,以将数据库服务器374从可能带来安全风险的网络资源(例如,互联 网)进一步隔离。在该被管域内的主机100-1、100-2由此可访问该数据库370。该被管域 是由该数据库370的一个实例覆盖的主机100-1、100-2的集合。对于给定DVswitch 350 的总体的状态,数据库370传送只读副本至该被管域内的各个该主机100-1、100-2。由于 主机100-1、100-2不需要更改该数据并且对它的更新不经常发生,所以积极更新所有主机 100-1、100-2不会引入不可接受的系统开销。然而,给定DVport 352、354的特定状态确实 需要被该DVport的对等的虚拟端口 652、654所在的主机所更改,并且更新经常发生。因此, 该数据库370仅仅传送DVport状态至必要的主机,并且周期性地以及围绕某些关键事件轮 询该主机以获得状态更新。除了被永久存储在数据库370外,一些DVswitch状态会被高速 缓存在该被管域内的各个主机以避免与数据库370的不必要的通讯。驻留在数据库370的 程序负责传送相关更新至该被管域内各个主机的本地存储器358、358’。短语“本地存储器” 在此处应当被广义解释以反映能很容易被该主机取得的数据存储设备或系统。在一个实施 方式中,主机100-1、100-2通常假定其本地存储器358、358’是最新的,并且它们对该本地 存储器所作的任何更新将被数据库控制器372的数据库服务器程序及时拉回数据库370。 万一数据库370离线或主机失去与数据库370的连接,该主机能够在当前状态下继续操作, 尽管没有来自数据库370的更新并且不能保证对其本地存储器所作的改变将被维持。与这 样的连通性损失有关的风险是最低的(也就是说,与分布式文件系统不同,在该分布式文 件系统中如果失去该同步机制,会发生不能挽回的数据丢失;这里被共享的唯一资源是概 念性的)。DVport所有权在一个实施方式中,两级所有权模式被应用至DVport状态。第一级所有权指的是 哪个主机当前有权修改特定DVport的状态。在一个实施方式中,当数据库控制器370传送 该DVport的状态至给定主机时,该DVport状态的所有权被数据库控制器370明确授予。数据库控制器370负责授予和撤销主机的DVport352、354所有权。一旦主机100-1或100-2 已经被授予DVport的所有权,其保留所有权直至数据库控制器372明确撤销该所有权。 第二级所有权指的是哪个虚拟NIC被当前连接至该DVport。当虚拟NIC 215_1作 出至DVport 352的新的“连接”时,虚拟NIC 215-1针对DVport 352向数据库控制器372 发出连接标识符(ID)的请求。在一个实施方式中,虚拟NIC 215-1通过DVport号(或其它 标识符)识别DVport 352,该标识符可在该DVswitch的配置过程中由该用户(也就是说, 管理员)手动选择或者被管理应用程序自动指定。举例来说,通过它的号识别特定DVport 的DVport号可与VM的其他配置设置一起配置。如果该连接ID字段对于被请求的DVport 是空的,那么新的连接ID由数据库控制器372产生并被返回至虚拟NIC 215-1。当虚拟NIC 215-1接收到对于DVport 352的该连接ID时,它就拥有使用备份DVport 352的网络资源 (也就是说,与之关联)的权利。该连接ID和DVport号可与该VM的其他配置设置一起存 储,由此在该VM与该DVport之间建立关联。如上所述,虚拟NIC 215_1、215_2分别是由虚 拟NIC仿真器301-1、301-2实施的物理NIC的软件抽象。因此,用于请求和获取连接ID的 代码可能驻留在虚拟NIC仿真器301-1、301-2的组件或者各个主机100-1、100-2的虚拟化 软件600、600’层的其它组件。如果对于特定DVport的当前连接ID字段在该连接请求时不是空的,那么另一个 虚拟NIC当前拥有连接权利并且该新的连接请求将被拒绝。每次虚拟NIC被授予与DVport 的连接时,该虚拟NIC存储该连接ID并使用它用于今后的操作。该虚拟OTC会在任何时间 释放该连接,此时它可供另一个虚拟NIC使用。通过只对该DVport产生新的连接ID或者 通过清除该DVport的当前连接ID字段,撤销连接是可能的。一旦连接被撤销,使用该旧的 连接ID的尝试将失败。在另一个实施方式中,在没有明确指定给单个主机的情况下,DVport可被一组主 机集体拥有。多个主机尝试要求相同DVport引起的任何冲突可通过点对点选举算法得到 解决。DVport操作一旦虚拟NIC 215-1被连接至DVport 352,该虚拟NIC会尝试通过呼叫主机 100-1上的系统级软件建立该链接(link up)以请求该DVport 352被虚拟端口备份。该系 统级软件可为虚拟化软件例如虚拟化软件600或其它系统级软件。举例来说,在非主机式 虚拟化系统中,该呼叫可针对VM内核,如上参照图1和2所述。为了响应该呼叫,该系统级 软件会接着将DVport 352与虚拟交换机602的虚拟端口 652关联,以提供对所需网络的访 问。一旦该链接被成功完成,虚拟NIC 215-1就能够往返网络442收发架构。下文将参照图9进行更详细的解释,当虚拟机320断电或被暂停,VNIC 215-1向 该系统级软件呼叫以使该链接状态断开(down)。这释放了下层虚拟端口 652和与DVport 352有关的资源,但是没有释放DVport 352的所有权。在释放虚拟端口 652之前,该系统 同步所有记录的端口状态返回DVport 352。当该虚拟机重新通电或恢复,DVport 352在主 机100-1上请求新的虚拟端口并且将所有该记录的端口状态同步至该新的虚拟端口,并且 如果链接状态是被留在的状态,则重新建立(up)该链接状态。下文将参照图8进行更详细的解释,当虚拟机320从一个主机(例如,100-1)迁移 至另一个主机(例如,100-2),除了步骤前半段用于释放该下层虚拟交换机端口发生在源 主机,步骤后半段用于获得新的下层虚拟交换机端口发生在目标主机之外,执行与掉电和通电该VM顺序相同的步骤。需要一个附加步骤来将该DVport状态传送至该目标主机的本 地存储器以及使其在该源主机的本地存储器上失效。由于该连接ID是该DVport状态的一 部分,VM迁移导致该DVport的所有权从该源主机转移至该目标主机。图4描述了多 个分布式虚拟交换机350、350’、350”各自跨越第一和第二主机 100-1,100-2的概念化。在该概念化中,每个VNIC与三个DVswitch之一相关联,每个 DVswitch与每个主机的相应物理NIC关联。因此,VNICs 215-1中的每个VNIC可能对应单 独的VM,各自与分布式虚拟端口例如352、354关联,被DVswitch 350集体管理。DVswitch 350反过来提供了 VNIC 215-1、215-2经由物理NIC 172、172,至网络442的连通性。从用 户的角度,如上参照图3讨论的个别虚拟端口 652、654和虚拟交换机602、602’的设置和状 态的专门知识是不必要的。这样,该DVswitch代表了在VNIC与虚拟交换机之间的下层逻 辑实施链接的便利抽象,使得用户能够如同连接各个该VM至特定局域网(LAN)的物理交换 机的抽象一样来管理该DVswitch。在这个案例中,如上所指的该“用户”,可为网络或主机 管理员。由于该DVswitch将个别虚拟交换机和虚拟端口的设置抽象出来,管理员只需要使 他或她自己关注使DVswitch与各个VNIC相关联并且同样配置。一旦做到这点,当重新启 动或者暂停和恢复VM时,备份该DVport和DVswitch的虚拟端口和交换机将自动被正确配 置,即使该恢复或重新启动是在该被管集合内的不同主机上。如图4所提出的,单个主机100-1可与多个DVswitch相互作用,各个DVswitch与 相应网络关联。在本示例中,主机100-1、100-2各自分别与顺次连接至网络442、446和448 的DVswitch 350、350,、350”相互作用。主机100-1包括连接DVswitch 350至网络442的 NIC 172、连接 DVswitch 350,至网络 446 的 NIC 174、以及连接 DVswitch 350”至网络 448 的NIC 176。主机100-2包括相应的组件,虽然本领域技术人员将了解很多其它配置是可能 的。图5描述了在VM 320,从主机100-1迁移至主机100-2之前,先前在图3所示的集 合300的简化视图。根据一个实施方式,当VM 320,从源主机100-1迁移至目标主机100-2 时,VNIC 215-2与虚拟交换机602的虚拟端口 654之间的连接失败,VNIC 215-2与目标主 机100-2上的虚拟交换机602,的新的虚拟端口 656连接。由于DVswitch 350为DVport (例 如352)的状态和所有权从源主机100-1的本地存储器358通过该DVswitch 350传递至目 标主机100-2的本地存储器358’提供了便利,所以可能积累在虚拟交换机端口 654上的状 态信息没有丢失,并且同样被迁移至虚拟交换机602’的虚拟端口 656。可扩展件通过记录过滤器和转发引擎类别,该DVswitch和DVport的实施在运行时是可扩 展的。一个转发引擎类别(此处未示)是与各个DVswitch 350关联的,并且零个或多个过 滤器类别是与DVswitch 350关联的。转发类别为DVswitch 350实施转发逻辑的基本架 构。该转发类别包括用于决定并指示哪个DVport应该接收进入该DVswitch的各个架构的 规则。由于该转发类别负责作出转发决定,所以仅有一个转发类别与各个DVswitch 350关 联。该转发类可为配置和运行时状态记录DVswitch与DVport的具体环境。过滤器类别为 DVport实施某类监测、过滤或转换功能。每个过滤器类别可被应用至一个或多个DVport, 并且可为配置和运行时状态记录端口具体环境。转发引擎类别在DVswitch创建时被分配。过滤器类别能在任何时间被加入 DVport或从DVport移除。各个转发引擎类别定义了一组回调来实施各种被要求的和可选的功能。各个转发引擎类别还可视需要声明一个或多个不透明的数据类型被该系统保留。 这些数据将被附加至该DVswitch以及DVport状态上而被该系统迁移并维持。 图6以示例方式描述了根据一个实施方式建立和删除DVswitch的过程。现在参 照图3和6,在操作601,数据库控制器372在数据库370内建立了新的DVswitch入口 350C 和该DVswitch的DVport。在这点上,DVswitch 350与转发引擎服务类别以及类别特异的 DVswitch状态有关。为了在数据库370建立新的DVport入口,该DVport入口是与给定 DVswitch关联的,并且该DVport状态被初始化为默认值。举例来说,该DVport的该“当前连 接ID”可被设定为“DVP0RT_N0_C0NNECTI0N”,以表示当前没有虚拟NIC被连接至该DVport。 数据库控制器372把该新的DVport信息传送至该被管域内的所有主机100-1、100-2,将它 存储在本地存储器358、358’。另外,通过使不透明的类别定义的状态与该DVport的状态相 关联,数据库控制器372也可安装DVport过滤器。在操作604,主机连接该被建立的DVswitch 350。在一个实施方式中,这个操作 被数据库控制器372启动,其(i)确认该主机(例如100-1、100-2)能够提供适当的网络 连接和服务来为该给定DVswitch提供主机服务,(ii)将该主机增至与数据库370内的 DVswitch 350有关的主机列表,以及(iii)将该当前DVswitch数据推出至该要被连接的主 机,该主机将它存储在它的本地存储器。在操作606,主机离开(leave)该DVswitch。在一个实施方式中,这个操作被数据 库控制器372启动,其(i)确认要离开该DVswitch的该主机(例如100-1、100-2)当前不具 有来自该给定DVswitch的任何DVport (例如352、354、. · · ,362)委派给它,(ii)联系该主 机(例如100-1、100-2)以表示它应当清除其本地存储器内与该给定DVswitch有关的任何 数据,以及(iii)将该主机从与数据库370内的该DVswitch 350有关的主机列表中删除。 请注意在该DVswitch的使用期限内主机会多次连接604和离开608DVswitch。在操作608,数据库控制器372从数据库370删除DVswitch(例如350)。为了删 除该DVswitch (例如350),数据库控制器372确保所有主机已经离开该DVswitch,然后从 数据库370移除与该DVswitch相应的所有状态。图7描述了根据一个实施方式,用于连接VNIC至该DVswitch的DVport或从 该DVswitcn的DVport断开VNIC的过程。在步骤702,虚拟NIC(例如215-1)被连接至 DVswitch 350的被请求DVport (例如352)。在一个实施方式中,这个操作由数据库控制器 372启动,其通过确保该当前连接ID是DVP0RT_N0_C0NNECTI0N(表示当前没有虚拟NIC被 连接至该被请求DVport)来核对在该被请求DVport (例如352)上的现有连接。如果当前 另一个虚拟NIC被连接至该被请求的DVport,那么将该VNIC连接至该被请求的DVport的 该请求被拒绝。如果该被请求的DVport是可用的,那么数据库控制器372产生新的连接ID 并且将该被请求DVport (例如352)的“当前连接ID”设定为该新的连接ID。数据库控制器 372传送该更新的DVport数据至该主机(例如100-1),其当前为该虚拟NIC(例如215-1) 提供主机服务(host)并且同样将该虚拟NIC配置的该“连接ID”字段设定为该新的连接 ID。在步骤704,该虚拟交换机602的虚拟端口(例如652)被“建立链接”至该“被连 接的”虚拟NIC (例如215-1)。在一个实施方式中,这个操作发生在虚拟NIC (例如215-1) 被托管(hosted)的主机(例如100-1),并且不要求来自数据库控制器372的参与。该虚拟NIC(例如215-1)访问该主机系统级软件(例如虚拟化软件600),识别其所连接的DVport (例如352),并且提供连接ID。该DVswitch系统确认该DVport (例如352)当前事 实上被委派至该主机(例如100-1)。在一个实施方式中,具有当前连接ID而非DVP0RT_ N0_C0NNECTI0N的DVport数据的存在对于确认该DVport (例如352)被委派至该主机(例 如100-1)而言是足够的。该DVswitch系统确认由该虚拟NIC(例如215-1)提供的该连接 ID与该DVport数据内的该当前连接ID匹配。如果该连接ID数据不匹配,建立该链接的该 请求将被拒绝。如果该连接ID数据匹配,那么该本地的每个主机(per-host)虚拟交换机 (例如602)上的端口资源被分配给该虚拟NIC (例如215-1),并且该虚拟NIC的实施传递 句柄(handle)给该资源。用于任何已安装的转发类别或过滤器类别的类别定义的回调被 安装在该下层虚拟交换机端口(例如652),并且虚拟交换机端口状态被使用类别定义的解 串器从该主机的本地存储器恢复。结果,该虚拟交换机端口(例如652)允许10。在步骤706,该虚拟交换机的虚拟端口也可从该“被连接的”虚拟NIC(例如 215-1) “断开链接”。在一个实施方式中,这个操作发生在虚拟NIC(例如215-1)被托管的 主机(例如100-1)上,并且不要求来自该数据库控制器372的任何参与。该虚拟NIC(例如 215-1)访问该系统,表示它想要将该虚拟交换机端口(例如652)资源释放在该主机(例如 100-1)上。结果,在该虚拟交换机端口(例如652)上的所有IO以及其它活动被停顿。该 DVswitch系统从该下层虚拟交换机端口(例如652)收集所有透明的DVport状态。用于任 何被安装的转发类别或过滤器类别的类别定义的回调被从该下层虚拟交换机端口(例如 652)移除,且使用类别定义的串行器,状态被按点检查(checkpointed)至该主机的本地存 储器。请注意在虚拟NIC连接至DVswitch的该DVport的期限内,虚拟交换机的虚拟端口 可多次被建立链接或断开链接。在步骤708,该虚拟NIC (例如215-1)可被从DVport (例如352)断开。在一个实施 方式中,这个操作由数据库控制器372启动,其传送该当前连接ID的更新至该DVport (例 如352)被当前委派给的主机(例如100-1),设定该当前连接ID为DVP0RT_N0_C0NNECTI0N。 一旦接收到该更新,如果该链接状态尚未断开,该主机(例如100-1)就使得该虚拟端口链 接状态断开,并且从该主机的本地存储器取回该DVport状态,以同步该数据库370。图8根据一个实施方式描述了在VM迁移过程中,DVport迁移的过程。参照图5和 8,以与虚拟机(例如200-2)被迁移相同的方式,DVport (例如354)可在这些主机100-1、 100-2之间被迁移。在较高层面来看,DVport将它们的状态投射至可用的虚拟交换机端口, 以对虚拟NIC(例如215-2)提供连串的网络连接,正如它们从该源主机(例如100-1)迁移 至该目标主机(例如100-2) —样。在一个实施方式中,DVport的迁移由该数据库控制器372启动,其在待迁移的受 影响的虚拟机(例如200-2)内针对各个虚拟NIC实施下述操作。在操作802,通过在该源 主机(例如100-1)实施“虚拟端口断开链接”,如上参照图7所述,数据库控制器372使待迁 移的DVport (例如354)在该源主机(例如100-1)停下。在操作804,将要从该源主机(例 如100-1)的本地存储器(例如358)迁移的该DVport (例如354)的序列化状态,被转移至 该目标主机(例如100-2)的本地存储器(例如358’)。在传送该DVport的状态至该目标 主机时,数据库控制器372将该DVport的所有权委派给该目标主机。在操作806,数据库控 制器372清除该源主机(例如100-1)上的该虚拟端口状态,由此撤回它对该DVport (例如352)的所有权。在操作 807和808,通过将该DVport (例如354)的被传递的状态施加给该 目标主机(例如100-2)上该虚拟交换机(例如602’)的另一个虚拟端口,并且如上所述在 该目标主机(例如100-2)上实施虚拟端口“建立链接”,数据库控制器372使得在该目标主 机(例如 100-2)上产生(bring up)该 DVport。图9以示例方式描述了根据一个实施方式在该主机掉电和通电时配置该 DVswitch的过程。这些操作会在有或没有数据库控制器372参与的情况下发生。如果数 据库控制器372知道该即将发生的掉电情况,它会实施操作902,其中恰巧在该主机(例如 100-1)关闭之前,数据库控制器372从该主机的本地存储器取回更新。在操作904,在掉电 之前,如果永久性存储器可用,则该主机(例如100-1)与其内存中缓存同步其永久性本地 存储器。在操作906,如果该主机在永久性本地存储器上具有其本地DVswitch和DVport状 态缓存的副本,重新启动后,该DVswitch和DVport状态的内容被立即从该本地存储器恢复 到该主机的内存中缓存。在操作908,一经检测到该主机的存在,数据库控制器372就立即 将所有有关DVswitch和DVport状态的副本传递给该主机(例如100-1)。数据库控制器 372会尝试合并或以其它方式解决来自该主机的缓存的陈旧数据与来自数据库370的数据 之间的冲突。在一个实施方式中,来自数据库370的数据被认为是权威的并且覆盖保留在 本地存储器的任何状态。数据库控制器372传送由此产生的更新至该主机(例如100-1)。通过阅读这些公开,熟悉本领域的普通技术人员将易于理解,对于分布式虚拟交 换机,仍然存在另外的等同的结构或功能设计符合此处公开的原理。上述某些方法操作可 同时实施或以不同于所描述的顺序实施。尽管已经阐述和讨论了特定实施方式和应用,但 是应当理解,在没有背离提交的权利要求所定义的本发明的精神和范围的情况下,对于本 领域普通技术人员来说显而易见的各种修正、改变和变更会在此处公开的实施方式的该解 决方案、方法和设备的操作和详情中作出。
权利要求
1.在虚拟计算机系统中维持虚拟端口状态的方法,该虚拟计算机系统具有至少一个 虚拟机,虚拟化软件逻辑性地置于该虚拟机与系统硬件之间,每个虚拟机包括客户操作系 统和至少一个虚拟网络接口卡(VNic),该虚拟化软件使用仿真软件和虚拟交换机实现该 VNIC,该虚拟交换机包括与每个该VNIC对应的虚拟端口,该虚拟交换机起在该VNIC与连 接至该系统硬件的零个或多个物理网络接口卡(NIC)之间转发网络构架的作用,该方法包 括将分布式虚拟端口(DVport)存储在永久性存储单元中,该分布式虚拟端口包括运行时状态和配置设置;将该DVport与连接至该DVport的该VNIC之间的关联存储;以及当与被连接的VNIC对应的该VM被重新启动时,将该DVport的状态从该永久性存储单 元恢复到新的虚拟端口。
2.权利要求1的方法,其中该DVport进一步包括唯一连接标识符(ID),并且将该 DVport与该VNIC之间的关联存储包括当该虚拟机被关闭或暂停时,将该连接ID与VNIC状 态一起存储。
3.权利要求1的方法,其中该虚拟计算机系统是被管的主机集合中的一个;以及该VM在一个主机上被关闭或暂停并且随后在不同于该一个主机的主机上重新启动。
4.权利要求1的方法,其中该虚拟计算机系统是被管的主机集合中的一个;以及该主机集合的虚拟端口的集合形成分布式虚拟交换机。
5.权利要求4的方法,其中该分布式虚拟交换机被作为连接至各个该VM的物理交换机 的抽象来管理,该VM在连接至物理局域网(LAN)的该主机集合上运行。
6.权利要求1的方法,其中该永久性存储单元包括保留在单独的服务器上的数据库。
7.权利要求6的方法,其中该单独的服务器经由独立于该VNIC的网络被访问。
8.权利要求1的方法,其中DVport的集合形成了分布式虚拟交换机,该方法进一步包 括将VM通过如下方式连接至虚拟交换机将对DVport的连接请求从该VM的该VNIC传递给负责管理该分布式虚拟交换机的数 据库控制器;确定该DVport当前未被分配给另一个VNIC,并且将该DVport初始化至初始状态和默 认配置;产生与该DVport对应的新的连接ID以响应该请求,并且将该新的连接ID传递给该 VNIC ;将该DVport的该初始化状态和默认配置传递给备份该DVport的虚拟端口,以便该虚 拟端口采用该DVport的该状态和配置;将请求从该VNIC传递给该虚拟计算机系统的系统级软件,以通过虚拟端口备份该 DVport,该系统级软件通过将该DVport与该虚拟交换机的虚拟端口相关联响应该请求;以 及将被配置为备份该DVport的该虚拟端口与该DVport被分配给的该VNIC链接,以便该 VNIC与虚拟交换机能够交换网络构架。
9.权利要求8的方法,其中该数据库控制器驻留在与虚拟计算机系统分开的服务器计 算机。
10.权利要求1的方法,其中DVport的集合形成分布式虚拟交换机,并且该状态的恢复 包括将DVport的连接ID传递给负责管理该分布式虚拟交换机的数据库控制器;确定该VM被分配给该DVport,并且相应地将该DVport的状态和配置传递给该VM ;分配虚拟端口来备份被分配给该VM的该DVport,并且使得该虚拟端口采用该DVport 的该状态和配置;以及将该虚拟端口与该DVport被分配给的该VNIC链接,以便该VNIC和虚拟交换机能够交 换网络构架。
11.权利要求1的方法,进一步包括修改该DVport的该配置;以及使得该DVport的该修改立即生效而不管该DVport主机位置和运行状态。
12.具备机读指令的有形媒介,该机读指令使得计算机实施用于维持虚拟计算机系统 中的虚拟端口状态的方法,该虚拟计算机系统具有至少一个虚拟机,虚拟化软件逻辑地置 于该虚拟机与系统硬件之间,各个虚拟机包括客户操作系统和至少一个虚拟网络接口卡 (VNIC),该虚拟化软件使用仿真软件和虚拟交换机实现该VNIC,该虚拟交换机包括对应各 个VNIC的虚拟端口,该虚拟交换机起到在该VNIC与连接至该系统硬件的零个或多个物理 网络接口卡(NIC)之间转发网络构架的作用,该方法包括将分布式虚拟端口(DVport)存储在永久性存储单元,该DVport包括运行时状态和配 置设置;将该DVport与连接至该DVport的该VNIC之间的关联存储;以及当对应被连接的VNIC的该VM被重新启动时,将来自该DVport的状态从该永久性存储 单元恢复到新的虚拟端口。
13.权利要求12的有形媒介,其中该DVport进一步包括唯一连接标识符(ID),并且 该将该DVport与该VNIC之间的关联存储包括当该虚拟机被关闭或暂停时,将该连接ID与 VNIC状态一起存储。
14.权利要求12的有形媒介,其中该虚拟计算机系统是被管的主机集合中的一个;以及该VM在一个主机上被关闭或暂停并且随后在不同于该一个主机的主机上重新启动。
15.权利要求12的有形媒介,其中该虚拟计算机系统是被管的主机集合中的一个;以及该集合主机的该虚拟端口的集合形成分布式虚拟交换机。
16.权利要求15的有形媒介,其中该分布式虚拟交换机被作为连接至各个该VM的物理 交换机的抽象来管理,该VM在连接至物理局域网(LAN)的该主机集合上运行。
17.权利要求12的有形媒介,其中该永久性存储单元包括保留在单独的服务器上的数 据库。
18.权利要求17的该有形媒介,其中该单独的服务器经由独立于该VNIC的网络被访问。
19.权利要求12的有形媒介,其中DVport的集合形成分布式虚拟交换机,该方法进一 步包括将VM通过如下方式连接至虚拟交换机将对DVport的连接请求从该VM的该VNIC传递给负责管理该分布式虚拟交换机的数 据库控制器;确定该DVport当前未被分配给另一个VNIC,并且将该DVport初始化至初始状态和默 认配置;产生与该DVport对应的新的连接ID以响应该请求,并且将该新的连接ID传递给该 VNIC ;将该DVport的该初始化状态和默认配置传递给备份该DVport的该虚拟端口,以便该 虚拟端口采用该DVport的该状态和配置;将请求从该VNIC传递给该虚拟计算机系统的系统级软件,以通过虚拟端口备份该 DVport,该系统级软件通过将该DVport与该虚拟交换机的虚拟端口相关联响应该请求;以 及将被配置为备份该DVport的该虚拟端口与该DVport被分配给的该VNIC链接,以便该 VNIC与虚拟交换机能够交换网络构架。
20.权利要求19的有形媒介,其中该数据库控制器驻留在与虚拟计算机系统分开的服 务器计算机。
21.权利要求12的有形媒介,其中DVport的集合形成分布式虚拟交换机,并且该状态 的恢复包括将DVport的连接ID传递给负责管理该分布式虚拟交换机的数据库控制器;确定该VM被分配给该DVport,并且相应地将该DVport的状态和配置传递给该VM ;分配虚拟端口来备份被分配给该VM的该DVport,并且使得该虚拟端口采用该DVport 的该状态和配置;以及将该虚拟端口与该DVport被分配给的该VNIC链接,以便该VNIC和虚拟交换机能够交 换网络构架。
22.权利要求12的有形媒介,该方法进一步包括修改该DVport的该配置;以及使得该DVport的修改立即生效而不管该DVport主机位置和运行状态。
全文摘要
讨论了在虚拟计算机系统中维持虚拟端口状态的方法。分布式虚拟端口(DVport)存储在永久性存储单元中,该分布式虚拟端口包括相应虚拟端口的状态和该虚拟端口的配置设置。另外,将该虚拟端口与连接至该虚拟端口的虚拟网络接口卡(VNIC)之间的关联存储。当重新启动与该VNIC对应的虚拟机时,该分布式虚拟端口的状态从该永久性存储单元恢复到新的虚拟端口。
文档编号G06F15/00GK102037452SQ200980119569
公开日2011年4月27日 申请日期2009年3月27日 优先权日2008年5月23日
发明者周树东, 安德鲁·兰贝思 申请人:威睿公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1