CN101849230B - 在多主机环境中共享遗留设备 - Google Patents
在多主机环境中共享遗留设备 Download PDFInfo
- Publication number
- CN101849230B CN101849230B CN200880114798.5A CN200880114798A CN101849230B CN 101849230 B CN101849230 B CN 101849230B CN 200880114798 A CN200880114798 A CN 200880114798A CN 101849230 B CN101849230 B CN 101849230B
- Authority
- CN
- China
- Prior art keywords
- legacy devices
- virtual
- host
- gateway
- 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
Links
- 239000004744 fabric Substances 0.000 claims abstract description 38
- 238000000034 method Methods 0.000 claims abstract description 12
- 238000005538 encapsulation Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 31
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000002245 particle Substances 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000005641 tunneling Effects 0.000 description 3
- 235000012364 Peperomia pellucida Nutrition 0.000 description 2
- 240000007711 Peperomia pellucida Species 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000003760 hair shine Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/65—Re-configuration of fast packet switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
- Bus Control (AREA)
Abstract
公开了用于在多主机环境中共享遗留设备的系统和方法。一种用于在多主机环境(10)中共享遗留设备(18a-d)的示例性方法(200)包括从遗留设备接收设备信息,所述设备信息标识出虚拟机内的目标主机。该方法还包括将所述设备信息封装到网络交换结构(102)的相应总线事务中。该方法还包括通过所述虚拟机中的网络交换结构将所述总线事务路由到所述虚拟机内的主机。
Description
背景技术
传统的计算机系统(例如台式个人计算机和服务器计算机)使用单个工业标准架构(ISA)互连来连接设备(例如键盘和鼠标)。外围部件互连(PCI)互连被开发用于通过适配器卡将其它设备(例如视频)连接到处理器。主机/PCI互连桥通常将主机互连和PCI互连相连接。所有这些互连都打算用于设备与CPU之间的直接连接,并且不打算被共享。
如今,分解(disaggregated)服务器架构是超级计算机的一个要点。然而,虚拟化正力图实现更多的资源共享以及到主流/批量(volume)服务器中的汇集。所期望的是,主流提供商将在今后几年内引入服务器分解架构。从工业标准机构(比如PCI-SIG的IOV工作组)内可以获悉围绕标准化的努力。
PCI互连曾被构思成本地IO互连,并且因此其被创建用于链接(盒(box)架构中的)单个主机内的设备。PCI的成本和速度使其成为分解系统架构的有吸引力的解决方案。然而,作为扩展PCI的若干不成功尝试的结果,PCI有若干挑战要克服,包括其有根的(rooted)架构、排序规则和遗留编程模型。例如,由于认识到难以跨底板扩展PCI互连,因此分解的批量系统并不包括诸如PCI连接器的互连连接器。
附图说明
图1是示出了可以在多主机环境中共享遗留设备的示例性刀片服务器架构的高级示图。
图2是具有用于共享遗留设备的交换结构的示例性多主机环境的功能图示。
图3是图2所示的示例性多主机环境的另一功能图示,其中更详细地示出了计算节点和管理节点。
图4示出了在PCIe事务(transaction)内封装/解封装以在多主机环境内传递的设备事务。
图5是示出可以被实施以在多主机环境中共享遗留设备的示例性操作的流程图。
具体实施方式
简单地说,在此所述的示例性实施例实施遗留设备(例如键盘控制器、视频控制器、鼠标控制器、只读存储器(系统ROM)、BIOS/可扩展固件接口(EFI)等)的硬件辅助的虚拟化以在多主机环境中的分区(partition)之间共享。另外,当更多的主机分区被添加时,所述遗留设备的硬件辅助的虚拟化不需要在一对一的基础上缩放。也就是说,更多的主机分区可以被添加到该多主机环境而不必添加物理设备来支持所添加的主机分区。示例性的实施例将硬件划分的规则扩展为使得遗留设备(包括基本级系统服务)可以通过将软件扩展引入到硬件划分中而被共享。
在更详细地描述示例性实施例以前,有益的是理解某些术语在此如何被用于描述这些实施例。术语“虚拟机”和“逻辑服务器”是指对计算机系统的模拟、仿真或其它类似的功能表示,由此虚拟机包括一个或多个不受定义一个或多个真实或物理计算机系统的物理界限约束的功能部件。所述功能部件包括真实或物理设备、互连总线和网络、以及在一个或多个CPU上执行的软件程序。例如,虚拟机可以包括包含真实或物理计算机系统内的一些但不是全部功能部件的功能部件子集;可以包括多个真实或物理计算机系统的一些功能部件;可以包括一个真实或物理计算机系统的所有功能部件,但是仅包括另一真实或物理计算机系统的一些部件;或者可以包括多个真实或物理计算机系统的所有功能部件。其它组合也是可能的,并且所有这样的组合都旨在位于以下公开的范围内。
术语“虚拟设备”和“虚拟遗留设备”是指对真实或物理计算机设备(例如遗留设备)的模拟、仿真或其它类似的功能表示,由此虚拟设备包括一个或多个不受定义一个或多个真实或物理计算机设备的物理界限约束的功能部件。类似地,虚拟设备可以包括一个或多个物理或真实设备的一些或全部功能部件的任意数目的组合,并且所述功能部件可以包括硬件设备和软件程序的任意数目的组合。许多组合、变型以及修改对本领域的技术人员将是显而易见的,并且所有这些都旨在位于以下公开的范围内。
术语“PCI-Express”或“PCIe”是指由外围部件互连特殊兴趣组(PCI-SIG)发布的名称为“PCI Express Base Specification 1.1”的文档中所描述的架构和协议、和/或任意早期的或以后的与PCIe或其它PCI构架和协议的运行和实施相关的规范。
示例性系统
图1是示出了可以在多主机环境中共享遗留设备的示例性刀片服务器架构10的高级示图。在示例性实施例中,多主机环境可以被实施为虚拟机或逻辑服务器。能够理解,为了简化该附图,未示出刀片服务器的常见元件(比如电源)。当然,仅仅出于说明可以实施在此所述的系统和操作的一个示例性实施例的目的而示出刀片服务器架构10。
在示例性实施例中,刀片服务器架构10具有底板(未示出),用于为一个或多个托架12a-c提供功率和联网连接。通常,每个托架12a-c在每个刀片(例如CPU刀片14a-d、盘刀片16a-d以及其它资源刀片18a-d)之间传递功率和联网连接。
刀片服务器的一个优点是将各个计算资源密集地打包在单个包中,以及实现容易的扩充、升级、和/或维修的能力。常规地,互连外设(比如PCI连接的设备)不能直接被刀片访问,因为按照定义PCI连接的设备不能由一个以上主机共享。代替地,每个刀片本身都必须是具有一个或多个处理器、存储器、视频以及存储能力的完整计算机系统。该架构将用于共享软设备的硬件划分扩展到虚拟机。
然而,在此所述的实施例通过使虚拟遗留设备“看上去”直接连接到访问该设备的虚拟机中的主机而使得所述虚拟遗留设备能够直接被刀片访问。因此,CPU刀片14a-d可以被缩减到CPU和存储器,而不必在CPU刀片14a-d中包括其它功能。例如,托架12c可以用于连接键盘、视频卡、鼠标、ROM、和/或与已经用在常规服务器环境中的那些虚拟遗留设备类似的其它虚拟遗留设备的卡。另外,虚拟遗留设备可以被分配给任意的CPU刀片,并且不需要以一比一的比例被添加。在虚拟机运行在服务器环境中并且不是连续地需要诸如键盘、视频、或鼠标的资源的情况中这尤其有利。
虚拟遗留设备(资源刀片18a-d)可以以多种不同方式之中的任意方式被分配给虚拟机中的任意的CPU刀片14a-d。例如,所述虚拟遗留设备中的一个或多个可以在任意的CPU刀片14a-d之间共享,所述虚拟遗留设备中的一个或多个可以被任意的CPU刀片14a-d独占地使用,或者其组合。使用PCI互连的能力提供显著的灵活性以及在虚拟机或多主机环境中对虚拟遗留设备的使用。
在继续介绍以前,应当注意:多个刀片服务器可以连接到单个互连网络中。此外,尽管图1示出了专用于CPU刀片14a-d的托架12a、专用于盘刀片16a-d的托架12b、以及专用于其它资源刀片18a-d的托架12c,但是本领域的技术人员能够认识到,图1所示的托架12a-c的数目和布置仅仅出于说明的目的而被提供,并且并不打算是限制性的。例如,刀片服务器架构10可以具有大量的托架,其中可以在其中一些托架上组装多种类型的设备。
图2是具有用于共享遗留设备的交换结构(switch fabric)102的示例性多主机环境100的功能图示。示例性多主机环境100可以包括由交换结构102互连的若干部件或“节点”。交换结构102可以提供互连这些节点并且允许所述节点交换数据的冗余或可替代的路径。在图2中,交换结构102包括交换机110至118。多主机环境100还包括计算节点120和124、管理节点122、以及标准输入/输出(I/O)节点126(例如用于非遗留I/O设备)。
多主机环境100中的每个节点都耦合到交换结构102内的至少两个交换机。例如,计算节点120可以耦合到交换机114的端口27和交换机118的端口46二者;管理节点122耦合到交换机114的端口26和交换机116的端口36;计算节点124耦合到交换机114的端口25和交换机118的端口45;并且标准I/O节点126耦合到交换机116的端口35和交换机118的端口44。
通过提供活动的和可替代的路径,节点可以通过任一路径跨交换结构102发送和接收数据。因此,例如,如果管理节点122需要与标准I/O节点126通信,但是交换机116已经失灵,则仍然可以通过使用通过其余交换机的可替代的路径来完成该事务。
由于交换结构102的底层总线结构不是有根的层次结构并且因此不支持所描述的可替代的路径,所以提供扩展来标识可替代的路径,在交换结构102初始化后每个节点和交换机端口通过所述可替代的路径进行映射。这些扩展可以实施在所述交换机内,使得可以结合交换结构102使用安装在多主机环境100的各个节点内的硬件和软件而很少修改或不修改交换结构102。例如,交换结构102“假装”是有根的层次结构,其中交换机110“逻辑上植根于”其任意节点处,并且结果,管理节点122可以连接在任意的交换机100端口处以利用PCI基础设施和编程模型。
在示例性实施例中,在一个例子中可以针对外围部件互连(PCI)架构初始化交换结构102,如下所述。在重置多主机环境100后,交换机110至118的每一个指定每个端口为主端口并且指定交换机之间的路径为活动路径。然后,管理节点122开始一系列的一个或多个配置循环,在所述配置循环中,每个交换机端口和端点都被标识(在PCI架构中被称为“枚举”),并且在所述配置循环中,耦合到该管理节点的主总线被指定为该主总线上的根联合体(root complex)。每个配置循环包括访问存储在耦合到该交换结构的每个设备(例如PCI设备的PCI配置空间)中的配置数据。
所述交换机包括与耦合到该交换机的设备相关的数据。如果由该交换机存储的关于其它设备的配置数据不完整,则管理节点122启动附加的配置循环直到耦合到该交换机的所有设备都已经被标识并且该交换机内的配置数据完整为止。
当交换机116检测到管理节点122已经启动第一有效配置循环时,交换机116将还未耦合的所有端口标识成次端口。随后的有效配置循环可以传播到耦合到交换机116的次端口的每个交换机,使得那些交换机将其还未耦合到传播该配置循环的交换机(在此为交换机116)的每个端口标识成次端口。因此,交换机116以端口36被标识成主端口而告终,并且交换机110、112、114、以及118分别以端口05、16、24、以及47被标识成主端口而告终。
随着端口在初始化过程的每个有效配置循环期间被标识,每个端口将其配置(主或次)报告给其耦合到的任何其它交换机的端口。一旦这样彼此耦合的两个交换机的两个端口都已经初始化,每个交换机就确定两个端口是否已经被标识成次端口。如果至少一个端口还未被标识为次端口,则所述端口之间的路径被指定为该总线层次结构内的活动路径。如果两个端口都已经被标识成次端口,则所述端口之间的路径被指定为冗余或可替代的路径。然后,关于可通过每个交换机访问的其它端口或端点的路由信息(PCI架构内的段号)在处于耦合这两个端口的路径的两端的所述端口之间被交换,并且然后,每个端口被标识成总线层次结构内的端点。
一旦初始化过程已经完成并且虚拟机开始操作,数据分组就可以根据需要通过在初始化期间所标识的路径而被路由。例如,交换机可以接收数据分组,确定所述数据分组的目的地(例如通过将存储在该交换机中的路由信息与所述数据分组的目的地相比较),并且基于所述目的地,该交换机力图确定经过该交换机到该目的地的路线。
通过如上所述适配交换结构102,所耦合的各个节点可以以与所述节点内的内部总线的传输速率相当的速率彼此通信。通过跨交换结构102提供高性能端到端传输速率,通过交换结构102彼此互连的不同节点以及所述节点内的设备可以被组合以形成高性能虚拟机。这些虚拟机通过实施抽象层来创建,所述抽象层组合以形成虚拟结构(比如管理节点122上的虚拟遗留设备)。
图3是图2所示的示例性多主机环境的另一功能图示,其中更详细地示出了计算节点120和管理节点122。在示例性实施例中,计算节点120包括:CPU 135和桥/存储器控制器150,每个均耦合到前端总线155;网关131,其与桥/存储器控制器150一起耦合到内部总线139(例如PCI总线);以及存储器134,其耦合到桥/存储器控制器150。操作系统(O/S)136、应用程序137、以及设备驱动程序138是在CPU 135上执行的程序代码。应用程序137和设备驱动程序138二者都在由操作系统136所创建的环境内执行。
类似地,管理节点122可以包括:CPU 145和桥/存储器控制器160,每个均耦合到前端总线165;网关141,其与桥/存储器控制器160一起耦合到内部总线149(例如PCI总线);以及存储器144,其耦合到桥/存储器控制器160。操作系统(O/S)145以及设备驱动程序148是在CPU145上执行的程序代码。设备驱动程序148在由操作系统146所创建的环境内执行,以实例化(instantiate)虚拟遗留设备(指示为存储器144中的键盘、视频、鼠标(或者逻辑/虚拟KVM)147)。
计算节点网关131和管理节点网关141均充当到网络交换结构102的接口,并且均提供抽象层,所述抽象层允许每个节点的部件与其它节点的部件通信而不必直接与网络交换结构102交互。每个网关包括实施抽象层的控制器。所述抽象层实行设备或协议特定的排序规则。另外,所述抽象层披露(surface)用于跨网络交换结构102将网关节点链接到管理控制点122的任何控制点。一旦利用类似的协议/设备解决方案在网关之间建立了绑定,则所述网关以从任意计算节点(例如节点120&124)来看为透明的方式连接到其相应的PCI Express层次结构中。可选地,所述网关可以为网络交换结构102提供更高级的服务、比如QoS、端到端流量控制。
所述控制器可以包括硬件状态机、CPU执行软件、或者二者。所述抽象层可以被实施为在网关内操作的单独的硬件和/或软件,或者可以被实施为与在分离的CPU上执行的驱动程序软件一起操作的网关硬件和/或软件。也可以实施硬件和软件的其它组合,如在熟悉本文的教导之后对于本领域的普通技术人员容易显而易见的。
这样实施的抽象层允许使得一个节点(例如管理节点122)上的遗留设备作为独立且分立设备而对另一节点(例如计算节点120)可见。遗留设备的虚拟化允许所得的虚拟总线的根级别的节点枚举虚拟层次式总线内的虚拟化设备。这通过捆绑并入到计算节点(120&124)和IO节点(126)内的结构(102)网关之间的设备实例关联来实现。一旦这些实例被关联,计算节点软件栈(OS)就把虚拟设备“看”成是作为独立非共享资源而被管理、映射和使用的分立非共享资源。作为抽象层的一部分,虚拟化设备可以通过将计算节点网关(131)之间的实例链接或关联到网关141内的虚拟遗留设备实例来实施,其中每个实例具有其相关联的处于管理节点存储器-122内的描述符块,所述描述符块用于使用软件栈148来虚拟化遗留设备。在管理节点122的CPU 145内执行的软件驱动程序针被披露到任何计算节点(120)中的视频、键盘、ROM以及鼠标设备的每个唯一的表示来实现虚拟遗留设备实例。
一旦所述关联已经由管理节点122建立(即将管理节点网关和计算节点网关之间的遗留资源实例绑定,其中合适的描述符块被创建并且活动地利用其相关联的软件仿真器驱动程序(148)运行),所述计算节点就被允许加电(power up)。一旦计算节点加电,软件(OS 136)就“看到”其所认为的具有对包括遗留设备在内的物理资源的全裸机(baremetal)控制和访问的标准平台。在没有超级监视者(hypervisor)存在于计算节点CPU(135)上的情况下,跨共同互连在主机之间共享遗留资源现在是可能的。通过使用抽象层,各个设备(或其虚拟化的表示)不需要能够使用(由管理节点122管理和枚举的)网络交换结构102的层次式总线的底层协议经过网络交换结构102直接通信。代替地,每个部件根据内部总线(139或149)的协议来格式化外出的事务,并且该节点(120或122)的对应的网关(131或141)根据底层网络交换结构102的协议来封装该外出的事务。进入的事务类似地由接收节点(120或122)的对应网关来解封装。
应当注意,遗留设备在运行在主机-计算节点上的OS的控制下运行。通常,设备不启动与主机的通信,除非主机OS之前已经将该设备配置为这样做,结果一切都从主机OS通信下到该设备-虚拟遗留设备中开始。另外,重要的是应该注意:ROM设备不具有物理部分,因为ROM现在是来自管理节点122内的存储器空间(内部存储器空间147)。遗留设备现在是管理节点122中软件模拟的设备(例如模拟为147-148)。
简单地说,当遗留设备需要与计算节点通信时,数据从物理遗留设备(例如键盘、视频卡、鼠标、ROM等)中被读取。该数据被用于遗留设备虚拟实例的管理节点拆分开并且被放入有序的位置中以路由到相关联的计算节点(虚拟机)。当该数据在计算节点处被接收到时,该计算节点处的主机驱动程序以标准方式服务于设备(虚拟设备)中断。当计算节点(主机遗留设备驱动程序)准备好将数据发送给虚拟遗留设备时,该虚拟遗留设备的主机驱动程序建立分组请求(写入或读取请求),所述分组请求导致以该虚拟遗留设备为目标的PCIe事务。该计算节点网关在检测到所述分组时封装所述分组,然后使用预先配置的以管理节点网关为目标的管理节点设定对经过封装的分组进行路由。所述管理节点网关对所述分组进行解封装,然后基于预先配置的路由信息将所述分组路由到管理节点存储器空间中,所述路由信息标识出用于所述虚拟遗留设备实例的唯一的存储器空间。一旦所述分组已经被路由到管理节点存储器空间中,管理节点CPU就被中断以作为虚拟化遗留设备来服务于分组。参考图4更详细地解释该过程。
图4示出了在PCIe事务内封装/解封装以在多主机环境内传递的设备事务。如果遗留设备给计算节点发送数据,则CPU将所述数据提供给设备驱动程序,所述设备驱动程序然后根据内部总线的协议将所述数据例如作为设备事务170转发给网关。设备事务170被网关131封装,网关131形成根据交换结构的底层总线协议而格式化的事务,例如作为PCIe事务172。
网络交换结构将PCIe事务172路由到另一节点,例如在所述节点处,网关141提取出原始的未封装的事务170’。网关驱动程序可见的真实遗留设备的虚拟化表示处理、格式化原始的未封装的事务170’并且将其转发给CPU,从而允许所述节点的所选部件就好像通过单个总线或传统的点对点互连彼此直接通信那样进行交互。当然,信息可以类似地被从网关141传递到网关131。
在示例性的实施例中,所述抽象层还观察封装协议的分组或消息排序规则。因此,例如,如果根据不保证传递或分组顺序的封装协议发送消息,则即使网络交换结构的底层层次式总线遵循更严格的排序规则(例如保证传递和排序),封装协议的非保证(non-guaranteed)传递和无序(out-of-order)分组规则仍然将被所述分组/网关的发射机和接收机二者实施。当然,其它的服务质量(QoS)规则也可以被网关实施。这样的QoS规则还可以作为所仿真的协议的一部分或者作为由网关透明实施的附加QoS规则而被实施。
对于每个对应节点的其余部件透明地执行由网关提供的封装和抽象。结果,遗留设备的虚拟化表示(即虚拟遗留设备)表现得好像其经过单个物理总线直接与接收节点通信。由于在事务被发送和接收时网关对所述事务进行封装和解封装,并且由于底层结构具有与内部总线的性能水平相当的性能水平,因此几乎没有给总线事务增加因内部本地总线事务的封装和解封装造成的延迟。而且,由于内部总线不需要修改,因此遗留设备可以在该系统内被使用而不需要硬件修改或特殊的软件驱动程序。网关和其提供的功能的存在对于其余硬件以及运行在这些节点的CPU上的操作系统而言是不可见的。
每个网关允许一个节点内的所选设备的虚拟化表示(即虚拟遗留设备)呈现为另一节点的总线层次结构内的端点。因此,例如,虚拟遗留设备呈现为计算节点的总线层次结构内的端点,并且因此被计算节点枚举。网关本身呈现为(由管理节点管理和枚举的)交换结构内的端点。不存在遗留设备的物理表示,即使这是硬件分区也是如此。
示例性操作
图5是示出了可以实施以用于在多主机环境中共享遗留设备的示例性操作的流程图。操作200可以体现为一种或多种计算机可读介质上的逻辑指令。当在处理器上执行时,所述逻辑指令使通用计算设备被编程为实施所述操作的专用机。在示例性的实施方式中,可以使用在附图中被描绘成虚拟机的一部分的部件和连接。应当注意,在设置(setup)以后,计算节点上的主机OS开始与遗留设备的所有通信以初始化并进行设置,如上面更详细描述的。
在操作210,可以从遗留设备接收设备信息。所述设备信息可以标识出多主机环境(例如虚拟机)内的目标主机。在操作220,所述设备信息可以被封装到网络交换结构的对应总线事务中。例如,所述设备信息可以被封装到PCIe事务中。在操作230,所述总线事务通过多主机环境中的网络交换结构被路由到该多主机环境内的目标主机。在操作240,在目标主机处被接收以后所述设备信息可以被解封装。
显而易见的是,这些操作使得未配置为在主机之间共享的遗留设备能够作为虚拟遗留设备在多主机环境(例如虚拟机)中的主机之间被共享。因此,主机分区可以被添加到该多主机环境而不必以一对一的基础添加遗留设备以支持附加的主机分区。也就是说,在该多主机环境中可以存在比物理遗留设备更多的主机分区,由此增强了可缩放性和成本节省。
在此所示和描述的操作被提供用于例证在多主机环境(例如虚拟机或逻辑服务器)中共享虚拟遗留设备的实施方式。应当注意,所述操作并不限于所示次序。还有其它的操作也可以被实施。
应当注意,所示和所述的示例性实施例是出于说明的目的而被提供的,并且并不打算是限制性的。还有其它的实施例也可以被设想出以用于在多主机环境中共享遗留设备。
Claims (9)
1.一种用于在多主机环境(10)中作为虚拟遗留设备来共享遗留设备的方法(200),包括:
从遗留设备(18a-d)接收设备信息,所述设备信息标识出虚拟机内的目标主机;
通过捆绑并入到计算节点和所述遗留设备内的网络交换结构的网关之间的设备实例关联来枚举虚拟层次式总线内的虚拟化遗留设备而虚拟化所述遗留设备;
将所述设备信息封装到所述网络交换结构(102)的对应总线事务(172)中;以及
通过所述虚拟机中的网络交换结构(102)将该总线事务(172)路由到所述虚拟机内的目标主机。
2.根据权利要求1所述的方法(200),进一步包括:将主机分区添加到多主机环境(10)而不必添加遗留设备(18a-d)以支持附加的主机分区。
3.一种具有共享的遗留设备(18a-d)的多主机环境(10),包括:
管理节点(122),其通信地耦合到遗留设备(18a-d),所述管理节点(122)从所述遗留设备(18a-d)接收设备信息;
所述管理节点(122)中的网关(141),其被配置为将遗留设备报头空间虚拟化到虚拟机中以及将虚拟设备信息封装到对应总线事务(172)中;
计算节点(120)中的网关(131),其被配置为针对主机OS虚拟化遗留设备报头;以及
网络交换结构(102),其用于将所述总线事务路由到所述虚拟机内的目标主机。
4.根据权利要求3所述的多主机环境(10),其中所述设备信息标识出所述虚拟机内的目标主机。
5.根据权利要求3所述的多主机环境(10),进一步包括所述目标主机处的网关,其用于接收所述总线事务。
6.根据权利要求5所述的多主机环境(10),其中所述目标主机处的网关对目标地址解封装并且将其重新映射到给遗留设备信息预先分配的唯一存储器空间中以在所述目标主机处进行处理。
7.根据权利要求6所述的多主机环境(10),其中所述目标主机处的网关处的信息响应于来自虚拟机OS的请求而以两个方向从所述虚拟机OS行进到遗留设备(18a-d)以及从遗留设备(18a-d)行进到所述虚拟机OS。
8.根据权利要求5所述的多主机环境(10),其中所述目标主机包括CPU节点。
9.根据权利要求3所述的多主机环境(10),其中遗留设备(18a-d)至少部分地在管理节点(122)中被配置成单主机设备,但是在所述虚拟机中作为虚拟遗留设备运行。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/851,306 | 2007-09-06 | ||
US11/851306 | 2007-09-06 | ||
US11/851,306 US8316377B2 (en) | 2007-09-06 | 2007-09-06 | Sharing legacy devices in a multi-host environment |
PCT/US2008/075119 WO2009032844A2 (en) | 2007-09-06 | 2008-09-03 | Sharing legacy devices in a multi-host environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101849230A CN101849230A (zh) | 2010-09-29 |
CN101849230B true CN101849230B (zh) | 2013-01-16 |
Family
ID=40429670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880114798.5A Active CN101849230B (zh) | 2007-09-06 | 2008-09-03 | 在多主机环境中共享遗留设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8316377B2 (zh) |
CN (1) | CN101849230B (zh) |
DE (1) | DE112008002416T5 (zh) |
GB (1) | GB2466589A (zh) |
WO (1) | WO2009032844A2 (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8976799B1 (en) * | 2007-10-01 | 2015-03-10 | Apple Inc. | Converged computer I/O system and bridging mechanism for peer-to-peer communication |
US20100061367A1 (en) * | 2008-09-11 | 2010-03-11 | Pradeep Sindhu | Methods and apparatus related to lossless operation within a data center |
US8265071B2 (en) | 2008-09-11 | 2012-09-11 | Juniper Networks, Inc. | Methods and apparatus related to a flexible data center security architecture |
US8755396B2 (en) * | 2008-09-11 | 2014-06-17 | Juniper Networks, Inc. | Methods and apparatus related to flow control within a data center switch fabric |
US8335213B2 (en) * | 2008-09-11 | 2012-12-18 | Juniper Networks, Inc. | Methods and apparatus related to low latency within a data center |
US8340088B2 (en) * | 2008-09-11 | 2012-12-25 | Juniper Networks, Inc. | Methods and apparatus related to a low cost data center architecture |
US9847953B2 (en) * | 2008-09-11 | 2017-12-19 | Juniper Networks, Inc. | Methods and apparatus related to virtualization of data center resources |
US8730954B2 (en) * | 2008-09-11 | 2014-05-20 | Juniper Networks, Inc. | Methods and apparatus related to any-to-any connectivity within a data center |
US11271871B2 (en) | 2008-09-11 | 2022-03-08 | Juniper Networks, Inc. | Methods and apparatus related to a flexible data center security architecture |
US9813252B2 (en) | 2010-03-23 | 2017-11-07 | Juniper Networks, Inc. | Multicasting within a distributed control plane of a switch |
US8694654B1 (en) * | 2010-03-23 | 2014-04-08 | Juniper Networks, Inc. | Host side protocols for use with distributed control plane of a switch |
US20110276625A1 (en) * | 2010-05-06 | 2011-11-10 | Hemal Shah | Method and system for host independent keyboard, video, and mouse (kvm) redirection |
US8327536B2 (en) | 2010-06-30 | 2012-12-11 | Apple Inc. | Method of manufacturing high-speed connector inserts and cables |
US9112310B2 (en) | 2010-06-30 | 2015-08-18 | Apple Inc. | Spark gap for high-speed cable connectors |
CN202797544U (zh) | 2010-06-30 | 2013-03-13 | 苹果公司 | 有源电缆、电缆组件和电子设备 |
US8533285B2 (en) | 2010-12-01 | 2013-09-10 | Cisco Technology, Inc. | Directing data flows in data centers with clustering services |
US9282060B2 (en) | 2010-12-15 | 2016-03-08 | Juniper Networks, Inc. | Methods and apparatus for dynamic resource management within a distributed control plane of a switch |
US8966134B2 (en) | 2011-02-23 | 2015-02-24 | Apple Inc. | Cross-over and bypass configurations for high-speed data transmission |
AU2012387975B2 (en) * | 2012-10-26 | 2016-03-17 | Huawei Technologies Co., Ltd. | PCIE switch-based server system, switching method and device |
US20140280850A1 (en) * | 2013-03-15 | 2014-09-18 | Lantronix, Inc. | Collaborative State Machine Management |
US9639492B2 (en) | 2015-01-15 | 2017-05-02 | Red Hat Israel, Ltd. | Virtual PCI expander device |
US10140218B2 (en) | 2015-01-15 | 2018-11-27 | Red Hat Israel, Ltd. | Non-uniform memory access support in a virtual environment |
US9652429B2 (en) * | 2015-09-16 | 2017-05-16 | Onulas, Llc | Horizontally expandable computing system |
CN106844263B (zh) * | 2016-12-26 | 2020-07-03 | 中国科学院计算技术研究所 | 一种基于可配置的多处理器计算机系统及实现方法 |
CN110688237B (zh) | 2019-06-25 | 2024-02-09 | 华为技术有限公司 | 转发报文的方法、中间设备和计算机设备 |
US11023402B2 (en) * | 2019-07-02 | 2021-06-01 | National Instruments Corporation | Switch pruning in a switch fabric bus chassis |
KR20230111055A (ko) * | 2022-01-17 | 2023-07-25 | 한국전자통신연구원 | 분할운용 컴퓨팅 시스템 및 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1862494A (zh) * | 2005-05-12 | 2006-11-15 | 微软公司 | 分区总线 |
CN1902585A (zh) * | 2003-11-12 | 2007-01-24 | 英特尔公司 | 用于与支持多个设备的网络适配器接口的方法、系统和程序 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6618777B1 (en) * | 1999-01-21 | 2003-09-09 | Analog Devices, Inc. | Method and apparatus for communicating between multiple functional units in a computer environment |
US6981174B1 (en) * | 2002-07-18 | 2005-12-27 | Extreme Networks, Inc. | Method and apparatus for a redundant port |
US20040030766A1 (en) * | 2002-08-12 | 2004-02-12 | Michael Witkowski | Method and apparatus for switch fabric configuration |
US7251704B2 (en) * | 2002-08-23 | 2007-07-31 | Intel Corporation | Store and forward switch device, system and method |
US7457906B2 (en) * | 2003-01-21 | 2008-11-25 | Nextio, Inc. | Method and apparatus for shared I/O in a load/store fabric |
CA2706654C (en) * | 2003-02-20 | 2014-01-28 | Nortel Networks Limited | Circulating switch |
US7289728B2 (en) * | 2004-03-11 | 2007-10-30 | General Instrument Corporation | Use of variable ratio couplers for network protection and recovery |
US8374175B2 (en) * | 2004-04-27 | 2013-02-12 | Hewlett-Packard Development Company, L.P. | System and method for remote direct memory access over a network switch fabric |
US7058738B2 (en) * | 2004-04-28 | 2006-06-06 | Microsoft Corporation | Configurable PCI express switch which allows multiple CPUs to be connected to multiple I/O devices |
US7808992B2 (en) * | 2004-12-30 | 2010-10-05 | Cisco Technology, Inc. | Platform independent implementation of private VLANS |
US7613864B2 (en) * | 2005-04-22 | 2009-11-03 | Sun Microsystems, Inc. | Device sharing |
US7680096B2 (en) * | 2005-10-28 | 2010-03-16 | Qnx Software Systems Gmbh & Co. Kg | System for configuring switches in a network |
US7389398B2 (en) * | 2005-12-14 | 2008-06-17 | Intel Corporation | Methods and apparatus for data transfer between partitions in a computer system |
-
2007
- 2007-09-06 US US11/851,306 patent/US8316377B2/en active Active
-
2008
- 2008-09-03 CN CN200880114798.5A patent/CN101849230B/zh active Active
- 2008-09-03 GB GB1005469A patent/GB2466589A/en not_active Withdrawn
- 2008-09-03 DE DE112008002416T patent/DE112008002416T5/de not_active Ceased
- 2008-09-03 WO PCT/US2008/075119 patent/WO2009032844A2/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1902585A (zh) * | 2003-11-12 | 2007-01-24 | 英特尔公司 | 用于与支持多个设备的网络适配器接口的方法、系统和程序 |
CN1862494A (zh) * | 2005-05-12 | 2006-11-15 | 微软公司 | 分区总线 |
Also Published As
Publication number | Publication date |
---|---|
GB2466589A (en) | 2010-06-30 |
US8316377B2 (en) | 2012-11-20 |
WO2009032844A3 (en) | 2009-05-22 |
CN101849230A (zh) | 2010-09-29 |
US20090070775A1 (en) | 2009-03-12 |
GB201005469D0 (en) | 2010-05-19 |
DE112008002416T5 (de) | 2010-07-08 |
WO2009032844A2 (en) | 2009-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101849230B (zh) | 在多主机环境中共享遗留设备 | |
CN102819447B (zh) | 一种用于多根共享系统的直接i/o虚拟化方法和装置 | |
JP5362980B2 (ja) | データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(ソケット接続および共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法) | |
JP4931787B2 (ja) | データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(トランザクション・プロトコルおよび共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法) | |
JP5763873B2 (ja) | データ処理システムの複数のルート複合体間の通信のために共用メモリを初期設定するための方法、コンピュータ・プログラム、およびデータ処理システム | |
CN103444138B (zh) | 通信控制系统、交换节点以及通信控制方法 | |
US7983888B2 (en) | Simulation circuit of PCI express endpoint and downstream port for a PCI express switch | |
US8521915B2 (en) | Communicating between host computers and peripheral resources in an input/output (I/O) virtualization system | |
CN100382069C (zh) | 在逻辑分区之间共享网络i/o适配器的装置与方法 | |
US8176204B2 (en) | System and method for multi-host sharing of a single-host device | |
US10684880B2 (en) | Allocating and initializing I/O devices at virtual | |
CN104426814A (zh) | Numa节点外围交换机 | |
US20140188996A1 (en) | Raw fabric interface for server system with virtualized interfaces | |
CN103392175A (zh) | Pci快速多根i/o虚拟化环境中的低延迟优先排序 | |
JP2008152786A (ja) | データ処理システム内で1つまたは複数のエンドポイントの第1の物理機能から第2の物理機能に仮想機能を移行するための方法、プログラム、およびシステム(単一ルート・ステートレス仮想機能の移行のためのシステムおよび方法) | |
US8972611B2 (en) | Multi-server consolidated input/output (IO) device | |
CN104142849A (zh) | 多主机单根输入/输出虚拟化虚拟功能共享的方法及系统 | |
EP3011461B1 (en) | Encapsulation enabled pcie virtualisation | |
CN103905426A (zh) | 用于使PCIe构造上的主机到主机消息收发安全和分离的方法和装置 | |
JP2008152787A (ja) | データ処理システム内で実行中の通信ファブリックにコンポーネントをホット・プラグするための方法、プログラム、およびシステム(実行中のPCIeファブリックにおける新しいコンポーネントのホット・プラグ/除去のためのシステムおよび方法) | |
CN106575283B (zh) | 使用元胞自动机的群集服务器配置 | |
CN110532208A (zh) | 一种数据处理方法、接口转换结构及设备 | |
CN107506324A (zh) | 转接设备、远程通信系统、数据传输方法及装置 | |
JP6928280B2 (ja) | 情報処理システム | |
WO2019124259A1 (ja) | 構成管理装置、構成管理システム、構成管理方法、および、構成管理プログラム |
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 | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170120 Address after: American Texas Patentee after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP Address before: American Texas Patentee before: Hewlett Packard Development Co. |