虚拟机i/o多路径配置的制作方法

文档序号:6425592阅读:236来源:国知局
专利名称:虚拟机i/o多路径配置的制作方法
技术领域
本发明涉及计算机技术,尤其涉及虚拟机I/O多路径配置。
背景技术
当在主机计算机系统上模拟来宾计算机系统时,来宾计算机系统被称作“虚拟机”,因为来宾计算机系统只作为可以偏离本机机器的一个特定硬件配置的操作的软件表示而存在于主机计算机系统中。虚拟机向在虚拟机上操作软件呈现被模拟的硬件配置。虚拟机管理系统(有时被称为虚拟机监视器、虚拟化系统或系统管理程序)也常常被用来管理一个或多个虚拟机,以便多个虚拟机可以同时在单个计算设备上运行。虚拟机管理系统直接在本机硬件上运行,并通过向虚拟机展示用于访问底层硬件的接口来虚拟化机器的资源。主机操作系统(OS)和虚拟机管理系统可以在同一个物理硬件上并排运行。 出于简明的目的,我们使用术语“虚拟化系统”来指代虚拟机管理系统的所有体现。在操作系统虚拟化上下文中产生的一个问题涉及诸如数据存储设备、输入数据和输出设备、网络设备等等之类的计算资源,我们将它们统称为输入/输出(I/O)。现有的虚拟化解决方案趋向于通过远离来宾操作系统地在虚拟化系统中管理I/O的物理冗余,并向虚拟机呈现虚拟化的单个I/O通道(网络接口、存储主机总线适配器等等),来处理该冗余。 这将限制虚拟机内的OS和应用程序提供关于如何有效地管理多路径情景的有用暗示的能力。

发明内容
所描述的实施例用于向虚拟机展示通信结构的多个接口(以太网、光纤通道、串行附接SCSI、Infiniband等等),并自动地将那些接口映射到单独的物理接口。这样的方法可以将单个连接点的简单管理体验保留到虚拟机中而同时允许虚拟机内的OS和应用程序提供高效地使用多个底层物理链路所需的任何信息。为此,可以接收虚拟机的输入/输出(I/O)配置信息,并基于I/O配置信息,可以确定与虚拟机相关联的I/O通道,并将I/O通道分组到逻辑集中。每一逻辑集都包括附连到同一个虚拟端点的I/O通道。对于每一个逻辑集,都可以将每一 I/O通道映射到一个物理通道,以使得一个逻辑集中没有两个通道被连接到同一个物理通道。对于虚拟机,可以将每一通道逻辑集表示为单个配置实体,以使得虚拟机的操作系统被允许向附连的虚拟端点展示I/O路由信息。


当结合附图阅读时,可以更好地了解前面的摘要,以及下面的对优选实施例的详细描述。为了公开本发明,在图形中示出了本发明的示例性结构;然而,本发明不仅限于所公开的特定方法和所公开的手段。在图形中图1是表示其中可以结合本发明的各方面的计算机系统的框图2示出了虚拟化计算系统环境;图3示出了跨虚拟化边界的网络的通信;图4示出了包括本发明的各方面的虚拟机环境;以及图5是由根据本发明的一个方面的虚拟化系统执行的处理的流程图。
具体实施例方式此处用具体细节描述本发明的主题以满足法定要求。然而,描述本身并不旨在限制本专利的范围。相反,发明人设想,所要求保护的主题还可结合其他当前或未来技术按照其他方式来具体化,以包括类似于本文中所描述的步骤的不同的组合。本发明的很多实施例可以在计算机上执行。图1以及下面的讨论旨在提供其中可以实现本发明的合适的计算环境的简要的一般说明。尽管并非必需,但将在由诸如客户端工作站或服务器之类的计算设备执行的诸如程序模块之类的计算机可执行指令的一般上下文中描述本发明。一般而言,程序模块包括执行特定任务的例程、程序、对象、组件、数据结构等等。本领域技术人员将了解,可以利用其他计算机系统配置来实施本发明,包括手持式设备、多处理器系统、基于微处理器的或可编程消费电子产品、网络PC、小型计算机、大型计算机,等等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。现在参考图1,描绘了示例性通用计算机系统。通用计算机系统可包括常规计算机20等等,包括至少一个处理器或处理单元21、系统存储器22,以及当系统处于操作状态时将包括系统存储器的各种系统组件连接到处理单元21的系统总线23。系统总线23可以是若干类型的总线结构中的任一种,包括使用各种总线体系结构中的任一种的存储器总线或存储器控制器、外围总线,以及局部总线。系统存储器可包括只读存储器(ROM)M和随机存取存储器(RAM) 25。基本输入/输出系统沈¢10 被存储在ROM M中,包含了诸如在启动期间帮助在计算机20内的元件之间传输信息的基本例程。计算机20还可以包括用于读写硬盘(未示出)的硬盘驱动器27、用于读写可移动磁盘四的磁盘驱动器28,以及用于读写诸如⑶ROM或其他光学介质之类的可移动光盘31的光盘驱动器30。硬盘驱动器27、磁盘驱动器28,以及光驱动器30分别通过硬盘驱动器接口 32、磁盘驱动器接口 33,以及光驱动器接口 34被示为连接到统总线23。驱动器以及它们相关联的计算机可读介质为计算机 20提供了对计算机可读指令、数据结构、程序模块,及其他数据的非易失性存储。虽然此处所描述的示例性环境使用了硬盘、可移动磁盘四、以及可移动光盘31,但是,那些本领域普通技术人员应该理解,在示例性操作环境中也可以使用诸如闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等等之类的可以存储可由计算机进行访问的数据的其他类型的计算机可读介质。一般而言,可以在一些实施例中使用这样的计算机可读存储介质来存储体现本发明的各方面的处理器可执行指令。可以有包括计算机可读指令的若干个程序模块存储在诸如硬盘、磁盘四、光盘 3UR0M 24,和/或RAM 25之类的计算机可读介质上,包括操作系统35、一个或多个应用程序36、其他程序模块37、以及程序数据38。在由处理单元执行时,计算机可读取的指令使下面更详细地描述的动作被执行或使各种程序模块被实例化。用户可以通过诸如键盘40和定点设备42之类的输入设备向计算机20中输入命令和信息。其他输入设备(未示出) 可以包括麦克风、游戏杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些及其他输入设备常常通过耦合到系统总线的串行端口接口 46连接到处理单元21,但是,但也可以通过其他接口,如并行端口、游戏端口、通用串行总线(USB)端口、来进行连接。显示器47或其他类型的显示设备也可以通过诸如视频适配器48之类的接口,连接到系统总线23。除了显示器 47之外,计算机通常还包括其他外围输出设备(未示出),如扬声器和打印机。图1的示例性系统也包括主机适配器55、小型计算机系统接口(SCSI)总线56,以及连接到SCSI总线 56的外部存储设备62。计算机20可以使用到一个或多个远程计算机(如远程计算机49)的逻辑连接来在联网环境中操作。远程计算机49可以是另一计算机、服务器、路由器、网络PC、对等设备或其他公共网络节点,并且通常可包括上文参考计算机20所描述的许多或全部元件,虽然在图1中只示出了存储设备50。图1中所描绘的逻辑连接可包括局域网(LAN)51和广域网 (WAN) 52。这样的联网环境在办公室、企业范围的计算机网络、内部网和因特网中是普遍现象。当用于LAN网络环境中时,计算机20可通过网络接口或适配器53连接到LAN 51。 当用于WAN网络环境中时,计算机20通常可包括调制解调器M,或用于通过广域网52 (如通过因特网)建立通信的其他装置。调制解调器54——其可以是内置的或外置的,可通过串行端口接口 46连接到系统总线23。在联网环境中,参考计算机20所描述的程序模块,或其部分,可以存储在远程存储器存储设备中。可以理解,所示出的网络连接只是示例性的, 也可以使用用于在计算机之间建立通信链路的其他装置。此外,尽管可以预想本发明的很多实施例特别适合于计算机化系统,但是,本文中没有任何表述旨在将本公开限制于这样的实施例。现在参考图2,描绘了可以用于本发明的实施例中的计算机系统的高层框图。如图所示,计算机20 (例如,上文所描述的计算机系统)可包括诸如存储设备208之类的物理硬件设备,例如,硬盘驱动器(如图1中的27)、网络接口控制器(NIC) 53、图形处理单元 234(诸如将伴随图1中的视频适配器48)、至少一个逻辑处理器212(例如,图1中的处理单元21),随机存取存储器(RAM) 25。本领域技术人员可以理解,尽管示出了一个逻辑处理器, 但是,在其他实施例中,计算机20可以具有多个逻辑处理器,例如,每个处理器多个执行核和/或每一个都可以具有多个执行核的多个处理器。描绘了在本领域中也可以被称为虚拟机监视器或更一般地称为虚拟机管理器或虚拟化系统的系统管理程序202。所描绘的实施例中的系统管理程序202包括用于控制和仲裁对计算机硬件20的访问的可执行指令。宽泛地说,系统管理程序202可以生成叫做分区的执行环境,如子分区1到子分区N(其中,N 是大于1的整数)。如此处所使用的,子分区也可以被称为来宾分区或来宾虚拟机。在各实施例中,子分区可以被视为由系统管理程序202支持的隔离的基本单位,S卩,可以将每一子分区映射到在系统管理程序202和/或父分区控制之下的硬件资源集,例如,存储器、设备、 逻辑处理器周期等等。在各实施例中,系统管理程序202可以是独立软件产品,操作系统的一部分、被嵌入在主板的固件内、专门的集成电路,或其组合。在所描绘的示例配置中,计算机20可包括父分区204,该父分区204可以被配置成通过使用虚拟化服务提供程序228 (VSP)向在子分区I-N中执行的来宾操作系统提供资源。在其他虚拟化系统中,系统管理程序或VMM可以不包括父分区和执行诸如系统管理程序或者主机OS内的I/O之类的相关联服务。在此示例体系结构中,父分区204可以选通对底层硬件的访问。宽泛地说,可以使用VSP 2 来通过虚拟化服务客户端(VSC)来多路复用与硬件资源的接口。每一子分区都可包括诸如虚拟处理器230到232之类的虚拟处理器,来宾操作系统220到222可以管理虚拟处理器并调度线程来在其上执行。一般而言,虚拟处理器230到232是提供带有特定体系结构的物理处理器的表示的可执行指令和相关联状态信息。例如,一个虚拟机可以具有带化切1 x86处理器的特征的虚拟处理器,而另一虚拟处理器可以具有PowerPC处理器的特征。可以将此示例中的虚拟处理器映射到计算机系统的逻辑处理器,以便实现虚拟处理器的指令将被逻辑处理器支持。如此,在这些示例实施例中, 多个虚拟处理器可以同时执行,而同时例如另一逻辑处理器正执行系统管理程序指令。一般而言,一个分区中的虚拟处理器和各个VSC的组合可以被视为虚拟机。一般而言,来宾操作系统220到222可包括诸如,例如,来自Microsoft 、Apple 、 开放源代码社区等等的操作系统之类的任何操作系统。来宾操作系统可包括操作的用户/ 内核模式,并可以具有可包括调度器、存储器管理器等等的内核。每一来宾操作系统220到 222都可以具有相关联文件系统,这些相关联文件系统可以具有存储在其上的应用程序,如电子商务服务器、电子邮件服务器等等,以及来宾操作系统本身。来宾操作系统220-222可以调度线程来在虚拟处理器230-232上执行,并可以实现这样的应用程序的实例。图3是表示其中操作系统(主机OS 302)控制网络接口设备53的示例性虚拟化计算设备的框图。虚拟机I/O多路径配置交换结构或通信结构是其中网络节点彼此通过一个或多个网络交换机连接的网络拓扑。在光纤通道交换式结构中,设备通过一个或多个光纤通道交换机彼此连接。光纤通道是可以用于附连到存储区域网络(SAN)的一种网络技术。SAN是用于附连远程计算机存储设备以使得该设备表现为本地附连到虚拟机的体系结构。InfiniBand(无限带宽)是另一交换结构链路,其也可以用于将虚拟机与诸如存储盘之类的高速外围设备连接。尽管是在这样的联网和存储实现中的一个或多个的上下文中描述本发明的,但是,应该认识到, 所公开的概念不依赖任何特定实现。这样的网络设计可以使用两个或更多单独的结构来实现冗余。结构可以共享边缘设备,但是可以别的方式未连接。通过提供这样的冗余,可以提供故障转移能力,其中当一个链路发生故障时,可以使用第二结构。现有的虚拟化解决方案趋向于通过远离来宾操作系统地在系统管理程序中管理 I/O的物理冗余,并向虚拟机呈现虚拟化的单个I/O通道(网络接口、存储器主机总线适配器等等),来处理该冗余。这可能限制虚拟机内的OS和应用程序提供有关如何有效地管理多个I/O路径的有用暗示的能力。这些限制是由于系统管理程序通常不与虚拟机上的来宾OS具有相同的关于流量的信息这一事实而导致的。当配置和操作虚拟机时,可以向虚拟机展示或隐藏各种信息片段。要隐藏的信息量常常与免除虚拟机参与各种接口和协议的细节并如此避免增大在虚拟机内运行的软件的复杂性的需要程度相关。可以通过让系统管理程序处理接口的细节来隐藏信息,作为结果,关于穿过特定数据通道的数据的细节一定会被隐藏。
例如,在一个级别,在以太网上的TCP/IP的情况下,来宾OS可以具有,例如,有关哪些数据包是特定TCP连接的一部分的信息,以及如此关于哪些数据包的信息应该沿着相同接口传播,以避免被重新排序。在不同的示例中,且在另一层,在光纤通道的情况下,来宾 OS可以主存可以标识存储目标上的哪些接口具有最小的队列深度的插件。在这些情况中的每一种情况下,系统管理程序主要充当信息管道。换言之,系统管理程序不检查流量(这是避免复杂化系统管理程序设计和增加成本所需要的)。然而,只公开与虚拟机的单个虚拟接口会隐藏如上文所描述的潜在地有用的信息。如此,在某些情况下,可能需要允许包括这样的信息,因为来宾OS通常具有更多对这样的信息的访问。来宾OS通常与应用程序工作负荷进行交互,且一般在较佳的位置提供关于如何最佳地处理I/O数据的暗示。如此,在将I/O映射到冗余物理介质的上下文中, 管理员可以通过利用诸如虚拟NIC之类的多个虚拟化I/O通道手动地配置虚拟机并在来宾 OS中手动地启用多路径解决方案来尝试减轻上面的问题。管理员也可能需要手动地将每一虚拟OTC与作为同一网络的一部分的不同的物理OTC相关联。这对于非常大的数据中心会变得非常麻烦,并且当执行实况迁移时,问题会变得更加严重。此处公开了自动地配置虚拟机以利用多路径而同时又避免上文所描述的问题的概念。在各实施例中,公开了用于向虚拟机展示与通信结构(以太网、光纤通道、串行附接 SCSI、Infiniband等等)的多个接口,然后自动地将那些接口映射到单独的物理接口的方法、系统,以及计算机可读介质产品。此方法可以将单个连接点的简单管理体验保留到虚拟机中而同时允许虚拟机内的OS和应用程序提供用于高效地使用多个底层物理链路的信息。在某些实施例中,公开了用于通过网络管理存储的多路径的方法。例如,可以管理到以太网或光纤通道的多路径。TCP/IP作为较高层协议在以太网上传播,我们可以使用该层的内部信息,如TCP连接状态,以选取有用的路径。在其中存储流量是比较典型的光纤通道上,我们可以使用来宾级别的多路径I/O插件来进行路径选择。但是,在逻辑上,这是混合与匹配情况。我们可以在以太网上进行存储,如同iSCSI,此时,我们使用MPIO作为智能路径选择的点。我们也可以在光纤通道上运行TCP/IP,但是,这种情况非常少。尽管是在存储空间的上下文中描述实施例的,但是,寻址至少两层。第一层是处理底层网络或结构,在网络或结构上创建虚拟端口,并通过那些端口管理流量。第二层以如下方式来展示联网的存储来宾OS中感知到用于存储的多路径的各种组件可以使用它们的本地度量(或其他启发式法)来利用多路径。图4示出了一个示例性上下文以便进行进一步的讨论。所示是四个以太网NIC 400。以太网NIC 400被附接到两个网络交换机410和420。网络交换机410专门用于一般网络流量,而网络交换机420专门用于存储流量。在各实施例中,交换机可以是光纤通道、Infiniband、以太网上的光纤通道、或任何其他交换技术。通用以太网交换机也可以是 Infiniband或某种其他网络技术。主机总线适配器(HBA)可以将主机系统连接到其他网络和存储设备。SCSI HBA将SCSi总线连接到计算设备。在光纤通道和hfiniBand中,HBA 可以表示接口卡。HBA可以具有诸如全球名称(WffN)之类的唯一标识符。在一个实施例中,可以将冗余网络接口(NIC、HBA等等)编组到资源池中,其中,池中的每一物理资源都被附连到同一个逻辑级别2(Level 2)网络。在一个示例实施例中,可以将全部NIC都附连到同一网络交换机。在另一示例中,可以将NIC附连到不同的物理交换机,但是,那些交换机可以是同一级别2网络的一部分。在另一个示例中,交换机可以是多个级别2网络的一部分,且可以将虚拟机所附连到的虚拟交换机端口附连到交换机管理的那些逻辑级别2网络中的一个。可以使用各种网络交换协议,通过查看默认DNS后缀,或者通过让管理员或管理团队将NIC “标记”为特定资源池,来自动地配置资源池。作为说明性示例,两个HBA可以连接到一个或多个物理交换机。如果需要,HBA可以连接到同一个交换机,例如,以使可以从虚拟机发送的流量翻倍。如果需要冗余和/或容错,则HBA也可以连接到多个分开的交换机。如上文所提及的,每一 HBA都具有诸如MAC地址、WffN或全局唯一标识符(GUID)之类的唯一标识。可以将唯一标识符映射到物理结构, 以使得来自特定虚拟端口的流量出现在结构上,好像它具有真实的HBA那样。在某些情况下,可以将两个HBA附连到虚拟交换机。可以将来自虚拟机的数据流量发送到虚拟交换机, 并可以选定数据路径。如此,可以通过避免单个故障点,实现物理冗余。例如,如果存储事务失败,那么,可以通过其他路径重新启动和发送该事务。然而,在此情况下,可以隐藏有用信息。例如,VMM/系统管理程序/虚拟化系统可以具有有关多路径的信息,但是,可能没有充分的信息来关于路径进行有用的选择。如此,虚拟化系统可能不能基于可能只包含在该虚拟机内的信息来智能地选择要使用哪一个路径。本发明解决了如何管理多路径并有用地展示到来宾OS的路径。在一个实施例中,当配置虚拟机时,可以确定需要到存储目标的逻辑连接。例如, 可以确定请求了光纤通道虚拟端口。然后,可以确定虚拟端口的配置偏好。在下面的讨论中,虚拟端口一般可以称为“接口”。配置偏好可包括所希望的冗余量。冗余的级别可以以若干个级别来确定,并可包括所希望的容错和所希望的数据路径数量。并非作为要添加到虚拟机中以及从虚拟机中删除的分开的实体来管理配置,结果所得的路径集可被配置成可以共同地添加和删除的逻辑集该逻辑集可以包括至少两个路径的冗余级别。在一个实施例中,到存储目标的路径集可以被配置为单个配置实体,而并非被两次或更多次地添加到虚拟机的实体。可以将该逻辑集添加到虚拟机,其中,该集的一个属性是冗余路径的数量。如下面进一步详细描述的,用于解决上面的问题的实施例可包括为虚拟机配置I/ 0通道的逻辑集,每一 I/O通道都附连到同一个级别2或层2网络。这可以包括为每一个接口生成唯一性级别2地址,如MAC、全球名称等等。这还可以进一步包括作为整体管理链路集的服务质量,并配置存储目标及其他网络伙伴以对全部接口作出响应。如此处所使用的,术语“级别2网络”或“层2网络”可以泛指对应于OSI模型的层2的网络。众所周知, 取决于特定系统或技术,可以以各种方式实现层2。例如,层2可以与TCP/IP模型的链路层相对应。在诸如IEEE 802之类的网络中,层2可以与媒体接入控制(MAC)和逻辑链路控制 (LLC)子层相对应。在光纤通道中,层2可以与包括FC0、FC1,以及FC2的物理层中的一个或多个相对应。因为这里使用了术语“层2”或“级别2”,因此该术语一般用来表示所有这样的网络层,不旨在仅限于特定协议或技术。本发明的一实施例还可以进一步包括将逻辑集中的每一 I/O通道映射到物理通道,并确保逻辑集中没有两个成员被连接到同一通道。这还可以进一步包括标识I/O通道旨在与其进行连接的层2网络,并发现提供与该网络的连通性的所有可能的设备。实施例还可以进一步包括创建排他性规则,该规则指出该集中的所有I/O通道都必须映射到单独
9的物理接口。实施例还可以进一步包括将该集中的每一 I/O通道绑定到单独的有效物理接如上文所提及的,当配置逻辑集时,可以确定物理设备的唯一性标识符。例如,可以确定HBA的标识符。一旦确定了标识符,就可以配置标识符集,以使得存储目标可以将该标识符集视为单个实体,并以一致的方式对该集作出响应。例如,可以配置关系,以使得当标识符集中的任何一个被发送到存储结构时,存储目标可以提供对一致的存储位置的访问。换言之,构建路径集,其中该集包括冗余路径,并将该集作为单个逻辑实体递送给目标。当需要路径冗余时,结果所得的路径配置可以提供路径多样性,以使得实现所希望的容错和/或增大的带宽。如此,当配置逻辑集时,优选的是,探知用户的意图,以及分配到存储交换机的连接以使得逻辑结构根据所请求的冗余来提供到目标的不同的路径。例如,如果第一 HBA链接到第一 SAN,而第二 HBA链接到第二 SAN,那么,可能不能实现冗余的故障安全目标,因为每一目标只具有一个遭受单点故障的可用路径。特定配置可以取决于实际物理网络和可用的设备。本领域的技术人员将理解,可以以各种级别复杂度实现冗余的策略,并可以在多个系统层应用。例如,一个策略可以指出,需要独立路径,但是,可能不指定外部交换机上的特定交换机端口选择。某些策略可能更加关心倍增带宽(multiplying bandwidth),而不是最小化物理故障的概率。在某些情况下,可以使用在内部没有单个故障点的交换机。在一个实施例中,可以在实例化虚拟机之前确定和配置所希望的I/O路径配置。 在实况迁移的情况下,可以使用所希望的I/O配置信息来确保迁移目标可以支持配置和所希望的策略。如果无法满足所希望的策略,那么,系统仍可以选择继续。例如,在无法提供所希望的冗余级别的情况下,如果策略允许或管理员允许,则迁移可以继续,且警告可能丢弃到虚拟机的链接中的一个。并非将虚拟机配置(内部的以及在管理界面中)表示为分开的虚拟NIC的集合, 而是可以将NIC表示为带有到网络的多路径的单个逻辑连接。例如,作为MAC地址或全球名称的代替,可以将NIC表示为MAC地址或全球名称的阵列。可以将每一接口表示为虚拟机内的NIC,其中每个都单个MAC地址或全球名称。在任何情况下,都可以将NIC的集合表示为一个组。如此,I/O集和网络之间的关联是单一的1 1关系。然后,可以将每一 NIC映射到I/O集被附连到的网络资源池中的物理NIC (通过虚拟网络交换机)。虚拟化系统可以使用反亲和性规则来确保没有两个虚拟NIC被映射到同一个物理NIC。如果I/O集中的虚拟NIC比网络资源池中的物理NIC更多,那么,一些虚拟 NIC可能看起来在虚拟机内是断开连接的。这会防止虚拟机从所有其NIC都具有单独的到网络的路径的假象得出假的推断。取决于系统策略,如果虚拟NIC不能全部都被映射到物理NIC,则虚拟化主机可以允许虚拟机成功地启动。以此方式表示虚拟机配置对于选择用于实况迁移的合适的目标机器也会是有用的。例如,具有适当数量的连接到同一个级别2网络的物理NIC的目标机器可以被视为用于实况迁移的可接受候选。在选择了带有较少数量的物理NIC的候选目标机器的情况下, 某些虚拟NIC在虚拟机迁移之后将看起来是断开连接的。可另选地,可以通过策略禁止到这样的机器的迁移。为进一步降低虚拟机管理员任务的复杂性,可以应用各种技术,以使虚拟机内的OS自动地合并多个接口,并分散多个接口中的流量。实施例可以包括将软件(也被称为集成组件)注入到虚拟机中,该虚拟机将逻辑通道集合并到虚拟机的单个接口中,以便保留虚拟机内的OS展示有用的路由信息的能力。集成组件可以包括软件组件,软件组件尤其包括虚拟化驱动程序,这些虚拟化驱动程序协助虚拟机在特定环境进行操作并可以在建立虚拟机时加载。可以配置集成组件,以使得虚拟机管理器不必确定意图或策略。因为虚拟端口的配置(包括诸如存储目标和多路径信息之类的信息)包含在虚拟机设置内,所以虚拟化系统可以确定什么类型的配置适用于来宾0S,以及可以自动地注入设置适当的多路径I/O 堆栈的集成组件。例如,在使用来自多个供应商的OS的系统中,可以修改BIOS或其他固件,以展示 iSCSI引导信息。在其中WindowsTM在虚拟机中运行的另一示例中,可以安装网络协作驱动程序,或者可以实例化Windows多路径I/O驱动程序。在iSCSI的示例中,这可以包括在 BIOS/固件中插入表,以通知引导OS,哪些NIC用于iSCSI引导设备。更一般而言,系统管理程序/虚拟化系统可以将执行上面的功能中的一个或多个的软件注入到来宾虚拟机中。这可以采取在虚拟机引导时将软件加载在虚拟机中的形式。 可另选地,也可以使用诸如展示包含有用的软件的虚拟CD-ROM映像之类的其他技术。一旦系统管理程序-特定的软件在虚拟机内运行,软件就可以与系统管理程序建立通信,并使用虚拟机配置来驱动OS配置。最后,实施例可以包括使用虚拟化系统来配置负载平衡和故障转移或协调来宾操作系统内的网络系统。在一个实施例中,方法可以包括在父分区中实现故障转移能力。例如,在物理通道发生故障的情况下(如光纤通道主机总线适配器(HBA)端口离线),与物理通道相关联的逻辑通道通常将丢失连通性。然而,如果在资源池中有另一未分配的物理端口,则可以在运行时向同一个组中的另一物理通道重新指派逻辑端口,只要还没有指派物理通道。在此过程中,可以在父分区中排队来自虚拟HBA的1/0,以使得来宾OS决不会看到虚拟HBA离线。在没有找到合适的物理通道的情况下,逻辑通道可以保持离线。图5描绘了用于执行所公开的主题的实施例的示例性操作过程。参考图5,操作 500开始操作过程,而操作502示出了接收虚拟机的输入/输出(1/0)配置信息,基于1/0 配置信息,标识与虚拟机相关联的1/0通道。在一个实施例中,1/0配置信息可以包括路径冗余的所希望的级别。另外,标识1/0通道还可以进一步包括为1/0通道中的每一个生成唯一性地址。操作504示出了将1/0通道编组到逻辑集,其中,每一逻辑集都包括附连到同一虚拟端点的1/0通道。在一个实施例中,虚拟端点可以是层2网络设备。对于每一个逻辑集,操作506示出了将每一 1/0通道映射到物理通道,以使得一个逻辑集中没有两个通道连接到同一个物理通道。在一个实施例中,映射操作还可以进一步包括标识1/0通道被配置成与其进行连接的物理端点,并确定哪些网络设备提供与物理端点的连通性。操作508示出了将虚拟机的每一逻辑集表示为单个配置实体,以使得虚拟机的操作系统被允许向附连的虚拟端点展示1/0路由信息。在一个实施例中,这可以通过一个或多个软件组件,或通过虚拟化系统配置的并与虚拟机一起执行的集成组件来促进。此处所描述的各种系统、方法,以及技术可以利用硬件或软件,或者,在适当的情况下,利用两者的组合来实现。因此,本发明的方法和装置,或其某些方面或部分,也可以以在有形介质(如软盘、CD-ROM、硬盘驱动器,或任何其他机器可读存储介质)中实现的程序代码(即,指令)的形式来实现,其中当程序代码被加载到诸如计算机之类的机器中并由它们执行时,机器变为用于实施该发明的装置。在程序代码在可编程计算机上执行的情况下, 计算机将一般包括处理器、可由处理器读取的存储介质(包括易失性和非易失性存储器和 /或存储元件)、至少一个输入设备,以及至少一个输出设备。一个或多个程序优选地以高级过程或面向对象编程语言来实现,以与计算机系统进行通信。然而,若有需要,程序也可以以以汇编或机器语言来实现。在任一情况下,语言都可以是编译的或解释的语言,并与硬件实现相结合。本发明的方法和设备也可以以通过某些传输介质(如通过电线或电缆,通过光纤,或任何其他形式的传输)传输的程序代码的形式来实现,其中,当接收到程序代码并加载到诸如EPR0M、门阵列、可编程逻辑器件(PLD)、客户端计算机、视频记录器等等之类的机器中并由机器执行时,机器变成实施本发明的设备。当在通用处理器上实现时,程序代码与处理器结合,以提供操作用于执行本发明的索引功能的唯一性设备。尽管结合各种图形的优选实施例描述了本发明,但是,可以理解,在不偏离本发明的情况下,也可以使用其他类似的实施例,或可以对所描述的实施例进行修改和补充,以便执行本发明的相同功能。例如,尽管是在模拟个人计算机的功能的数字设备的上下文中描述本发明的示例性实施例的,但是,本领域技术人员将认识到,本发明不仅限于诸如本申请所描述的数字设备,而可以适用于任意数量的现有或新兴的计算设备或环境。因此,本发明不应该仅限于任何单个实施例,而是应该在根据所附权利要求书的广度和范围内解释。最后,此处所描述的所公开的实施例可以适用于其他处理器体系结构、基于计算机的系统或系统虚拟化中,而这样的实施例明确地被此处所作出的本发明所预期,如此,本发明不应该仅限于此处所描述的特定实施例,而是被最广泛地解释。
1权利要求
1.一种用于通过虚拟化系统(20 配置虚拟机的方法,包括接收(502)所述虚拟机的输入/输出(I/O)配置信息,以及基于所述I/O配置信息,标识与所述虚拟机相关联的I/O通道;将所述I/O通道编组(504)到逻辑集,其中每一逻辑集包括附连到同一虚拟端点的I/ 0通道;对于每一个逻辑集,将每一 I/O通道映射(506)到一物理通道,以使得逻辑集中没有两个通道被连接到同一物理通道;以及将每一逻辑集表示(508)为单个配置实体,以使得所述虚拟机的操作系统被允许向所述附连的虚拟端点展示I/O路由信息。
2.如权利要求1所述的方法,其特征在于,所述标识包括为所述I/O通道中的每一个生成唯一性地址,还包括作为整体管理每一个逻辑集的服务质量;以及配置网络资产以对所述I/O通道作出响应。
3.如权利要求1所述的方法,其特征在于,所述映射还包括标识I/O通道被配置成与其进行连接的物理端点,以及确定哪些网络设备提供与所述物理端点的连通性。
4.如权利要求3所述的方法,其特征在于,还包括为每一个逻辑集生成指示所述逻辑集中的每一 I/O通道都必须映射到唯一性物理接口的排他性规则。
5.如权利要求4所述的方法,其特征在于,还包括将每一逻辑集中的每一I/O通道绑定到唯一性物理接口。
6.如权利要求1所述的方法,其特征在于所述表示是通过由所述虚拟化系统配置的并结合所述虚拟机来执行的至少一个软件组件执行的,所述表示还包括在来宾操作系统内配置多路径I/O存储驱动程序,以及所述I/O存储驱动程序将多个存储接口表示为单个逻辑接口还包括在所述来宾操作系统内配置负载平衡和故障转移机制。
7.如权利要求1所述的方法,其特征在于,还包括为发生故障的物理通道实现故障转移机制,所述故障转移机制包括当所述物理通道中的一个发生故障时,将与所述发生故障的通道相关联的所述逻辑端口重新指派给同一个逻辑集中的未指派的物理通道;以及当没有未指派的物理通道剩下时,将对应的逻辑通道置于离线。
8.在其上存储有在执行时导致配置虚拟机的计算机可读指令的计算机可读介质,所述计算机可读指令包括在执行时导致执行下列操作的指令接收(502)所述虚拟机的输入/输出(I/O)配置信息,以及基于所述I/O配置信息,标识与所述虚拟机相关联的I/O通道;将所述I/O通道编组(504)到逻辑集,其中,每一逻辑集包括附连到同一虚拟端点的I/ 0通道;对于每一个逻辑集,通过生成指示所述逻辑集中的每一 I/O通道必须映射到唯一性物理接口的排他性规则,来将每一 I/O通道映射(506)到一物理通道,以使得一个逻辑集中没有两个通道连接到同一个物理通道;以及将每一逻辑集表示(508)为单个配置实体,以使得所述虚拟机的操作系统被允许向所述附连的虚拟端点展示I/O路由信息。
9.一种用于配置虚拟机的系统,包括 包括至少一个处理器的计算设备00);存储器,其在所述系统操作时可通信地耦合到所述处理器;其中存储有在由所述至少一个处理器执行时导致执行下列操作的计算机指令的所述存储器接收(502)所述虚拟机的输入/输出(I/O)配置信息,以及基于所述I/O配置信息,标识与所述虚拟机相关联的I/O通道;将所述I/O通道编组(504)到逻辑集,其中每一逻辑集包括附连到同一虚拟端点的I/ 0通道;对于每一个逻辑集,将每一 I/O通道映射(506)到一物理通道,以使得一个逻辑集中没有两个通道被连接到同一物理通道;将每一逻辑集中的每一 I/O通道绑定到唯一性物理接口 ;以及将每一逻辑集表示(508)为单个配置实体,以使得所述虚拟机的操作系统被允许向所述附连的虚拟端点公开I/O路由信息。
10.如权利要求9所述的系统,其特征在于,所述I/O配置信息包括路径冗余级别。
全文摘要
本文描述了虚拟机I/O多路径配置。公开了用于展示虚拟机的通信结构的多个接口(以太网、光纤通道、串行附接SCSI、Infiniband等等),并自动地将那些接口映射到单独的物理接口的方法。这样的方法可以将单个连接点的简单管理体验保留到虚拟机中而同时允许虚拟机内的OS和应用程序提供高效地使用多个底层物理链路所需的信息。
文档编号G06F9/455GK102314372SQ20111014982
公开日2012年1月11日 申请日期2011年5月24日 优先权日2010年5月25日
发明者J·奥辛斯, T·卡兰达卡 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1