CN102177509B - 虚拟化存储分配方法 - Google Patents
虚拟化存储分配方法 Download PDFInfo
- Publication number
- CN102177509B CN102177509B CN200980140539.4A CN200980140539A CN102177509B CN 102177509 B CN102177509 B CN 102177509B CN 200980140539 A CN200980140539 A CN 200980140539A CN 102177509 B CN102177509 B CN 102177509B
- Authority
- CN
- China
- Prior art keywords
- stack
- equipment
- memory device
- driver
- existing
- 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
Images
Classifications
-
- 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/10—Program control for peripheral devices
- G06F13/105—Program control for peripheral devices where the programme performs an input/output emulation function
-
- 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/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
揭示了用于在虚拟机分区中构建设备驱动器栈的各种方面,该虚拟机分区物理上不控制由所述栈所表示的设备。在一实施例中,可实例化用于I/O设备的辅助接口和驱动器。可请求来自I/O虚拟化层的信息,该信息描述相关联的驱动器可控制的设备。多路径重定向层可提供到包括用于该I/O设备的驱动器的现有栈的句柄。该现有栈然后可用于与设备通信并允许创建包括表示该设备和用于该设备的新的驱动器的新的栈。多通路重定向层然后可打开到新的栈的句柄并通知设备虚拟化层,设备虚拟化层然后可要求现有设备接口将对设备的控制让于新创建的接口。
Description
技术领域
目前所公开的主题涉及计算领域,尤其涉及计算机虚拟化,虽然虚拟化只是示例性且非限制性领域。
背景
虚拟机系统可遭受关于输入/输出(I/O)功能的差性能,因为在完全虚拟化系统中,每个I/O操作通常是由系统管理程序(hypervisor)、主操作系统或由机器上执行的不同的虚拟机间接处理的,从而增加了执行I/O功能的代价。缓解这些性能问题的一种方式是通过允许虚拟机直接控制系统中的某些物理硬件资源。然而,提供这种直接控制可具有致使虚拟机不完全被虚拟化的效果,而且与虚拟化相关联的许多特征(保存、迁移、快照等)可变得难以完成。
解决这些I/O性能问题的另一种方式是创建到I/O设备的多条路径,其中一条路径可直接行进到硬件,另一条路径可经另一虚拟机间接地行进到硬件。当希望完全封装虚拟机的状态使得它能够被保存或迁移时,直接路径可被拆毁且可使用间接路径。与创建多条路径有关的一个问题是通常难以设置第二路径而不将设备的控制给于第二路径作为设置过程的一部分。如果I/O设备用于分页代码或数据且对分页设备的控制在分页设备完全可操作之前被传递到第二路径,则分页可停止并使得系统崩溃。
因此,需要其他技术来解决上文所描述的问题。
概述
本文揭示了用于在虚拟机分区中构建设备驱动器栈的各种方法和系统,该虚拟机分区物理上不控制由所述栈所表示的设备。在一实施例中,可实例化用于I/O设备的辅助接口和相关联的驱动器。可请求来自I/O虚拟化层的信息,该信息描述相关联的驱动器可控制的设备。多路径重定向层可提供到包括用于该I/O设备的驱动器的现有栈的句柄。该现有栈然后可用于与设备通信并允许创建包括表示该设备和用于该设备的新的驱动器的对象的新栈。多通路重定向层然后可打开到新栈的句柄并通知设备虚拟化层,设备虚拟化层然后可向现有设备接口发送将对设备的控制让于新创建的接口的请求。设备现在可由新接口控制,且I/O可经新的驱动器和接口被重定向到设备。
除前述的之外,在构成本发明的一部分的权利要求书、附图,以及文本中描述了其他方面。本领域技术人员将理解,本发明的一个或多个方面可包括但不限于用于实现本发明的本文所述方面的电路和/或编程;该电路和/或编程实质上可以是配置成实现本文所述方面的硬件、软件和/或固件的任何组合,这取决于系统设计者的设计选择。
应该注意,提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些代表性的概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图简述
当结合附图阅读时,可以更好地了解前面的摘要,以及下面的详细描述。为了说明本发明,示出了本发明的各个方面。然而,本发明不限于所示出的特定方面。包括了下面的图形:
图1a示出了具有包括多个虚拟处理器以及对应的客操作系统的多个虚拟机的虚拟机环境;虚拟机由可包括调度器和其他组件的虚拟化层来维护,其中虚拟化层虚拟化多个虚拟机的硬件;
图1b示出了表示计算机系统中用于虚拟化环境的硬件和软件体系结构的逻辑分层的框图;
图1c描绘了其中可实现本发明的各方面的示例计算机系统;
图2示出了示例性虚拟化计算系统;
图3示出了替换虚拟化计算系统;
图4描绘了示出用于实现本发明的过程的示例性系统框图;
图5描绘了示出用于实现本发明的过程的示例性系统框图;
图6描绘了示出用于实现本发明的过程的示例性系统框图;
图7描绘了示出用于实现本发明的过程的示例性系统框图;
图8描绘了示出用于实现本发明的过程的示例性系统框图;
图9描绘了示出用于实现本发明的过程的示例性系统框图;
图10描绘了示出用于实现本发明的过程的示例性系统框图;
图11示出用于在虚拟机中构造设备驱动器栈的操作过程的示例,该虚拟机不控制与栈相关联的设备;
图12示出用于在虚拟机中构造设备驱动器栈的操作过程的示例,该虚拟机不控制与栈相关联的设备;
图13示出用于创建到用于在虚拟机环境中分页代码或数据的I/O设备的多条路径的操作过程的示例;
图14示出用于创建到用于在虚拟机环境中分页代码或数据的I/O设备的多条路径的操作过程的示例;
图15示出了承载参考以上图1-10讨论的计算机可执行指令的计算机可读介质。
详细描述
虚拟机概述
在下面的描述和图形中阐述某些具体细节,以提供对本发明的各实施例的全面的理解。在下面的公开中没有阐述常常与计算和软件技术相关联的某些公知的细节,以避免不必要地使本发明的各实施例模糊。进一步地,那些相关领域普通技术人员将理解,他们可以在没有下面所描述的细节中的一个或多个的情况下实施本发明的其他实施例。最后,尽管在下面的公开中参考步骤和序列描述了各种方法,但是,如此的描述用于提供本发明的各实施例的清楚的实现,且步骤和步骤的序列不应该理解为实施本发明所必需的。
应该理解,此处所描述的各种技术可以结合硬件或软件或,在适当的情况下,结合两者的组合来实现。因此,本发明的方法和装置,或其某些方面或部分,也可以以在有形的介质(如软盘、CD-ROM、硬盘驱动器,或任何其他机器可读的存储介质)中实现的程序代码(即,指令)的形式来实现,其中当程序代码被加载到诸如计算机之类的机器中并由它们执行时,机器变为用于实施该发明的装置。在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、可由处理器读取的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备,以及至少一个输出设备。一个或多个程序可以例如,通过使用API、可重用控件等来实现或利用结合本发明描述的过程。这样的程序优选地以高级别过程或面向对象编程语言来实现,以与计算机系统进行通信。然而,若有需要,程序也可以以以汇编或机器语言来实现。在任一情况下,语言都可以是编译的或解释的语言,并与硬件实现相结合。
利用虚拟机,单个物理机器可支持多个客操作系统,每个客操作系统运行于其自己的、底层物理机器的完整的虚拟实例上。客操作系统(OS)可以是一个OS的单个版本的实例、同一OS的不同发行版本、或完全不同的OS。称为虚拟机监控程序(VMM)或系统管理程序的瘦软件层可创建并控制虚拟机和其他虚拟子系统。VMM也可完全控制物理机器并为每个客OS提供对CPU、存储器、存储空间和I/O带宽的资源保证。
图1a示出了具有包括多个虚拟处理器110、112、114、116以及对应的客操作系统130、132的多个虚拟机120、121的虚拟机环境100。虚拟机120、121由虚拟化层140来维护,该虚拟化层140可以包括调度器142及其他组件(未示出),其中虚拟化层140为多个虚拟机120、121虚拟化硬件150。多个虚拟处理器110、112、114、116可以是底层硬件物理处理器160、162的虚拟对应物。
图1b是表示计算机系统中的虚拟化环境的硬件和软件体系结构的逻辑层的示图。在图1b中,虚拟化程序180直接或间接地在物理硬件体系结构182上运行。虚拟化程序180可以是(a)与主机操作系统并排运行的虚拟机监控程序,(b)具有系统管理程序组件的主操作系统,所述系统管理程序组件执行虚拟化,(c)硬件,或(d)微码。虚拟化程序也可以是与任何操作系统分开地运行的系统管理程序。换言之,系统管理程序虚拟化程序不必作为任何操作系统的一部分来运行,也不必与任何操作系统一起运行。管理程序虚拟化程序相反可在所有操作系统“之下”运行,包括“根分区”。虚拟化程序180虚拟化客硬件体系结构178(被示为虚线以示出该组件是“分区”或“虚拟机”的事实),即,实际上并不存在而是由虚拟化程序180虚拟化的硬件。客操作系统176在客硬件体系结构178上执行,而软件应用174可以在客操作系统176上运行。在图1b的虚拟化操作环境中,软件应用174可以在计算机系统中运行,即使软件应用174被设计成在一般与主操作系统和硬件体系结构182不兼容的操作系统上运行。
虚拟机通常包含整个操作系统和一组应用,它们一起构成许多过程,其整体可以在虚拟机的上下文中被称为“工作负载”或“过程”。在本发明中,术语“过程”和“工作负载”在虚拟机上下文中可被互换地使用,并且本领域技术人员可以容易地理解,“过程”可指代包括可在虚拟机中被实例化的所有系统和应用的多个过程。
接下来,图2示出了虚拟化计算系统,包括直接地在物理计算机硬件202之上运行的主操作系统(主OS)软件层204,其中主OS 204通过暴露与分区A 208和B 210的接口以分别供操作系统A 212和B 214使用,来提供对物理计算机硬件202的资源的访问。这允许主OS 204不被运行在它上面的操作系统层212和214注意。再次地,为了执行虚拟化,主OS 204可以是专门设计的带有本机虚拟化能力的操作系统,或者,可另选地,它可以是带有用于执行虚拟化的结合的系统管理程序组件(未示出)的标准操作系统。
再次参考图2,在主OS 204的上面有两个分区,分区A 208(其可以是例如,虚拟化的Intel 386处理器),以及分区B 210(其可以是例如,Motorola 680X0系列处理器中的一种处理器的虚拟化版本)。在每一分区208和210内分别有客操作系统(客OS)A 212和B 214。在客OS A 212上运行的是两个应用,应用A1 216和应用A2 218,而在客OS B 214的上运行的是应用B1 220。
对于图2,值得注意的是,分区A 208和分区B 214(以虚线示出)是可以仅仅作为软件构造而存在的虚拟化计算机硬件表示。由于专门虚拟化软件的执行,使得它们可能被实现,专门虚拟化软件不仅分别向客OS A 212和客OSB 214呈现分区A 208和分区B 210,而且还执行客OS A 212和客OS B 214与真实物理计算机硬件202间接地进行交互所需的所有软件步骤。
图3示出了其中虚拟化由与主操作系统204一起运行的虚拟机监控程序(VMM)204执行的替换虚拟化计算系统。在某些情况下,VMM 204可以是在主操作系统204上运行并仅通过主操作系统204来与计算机硬件202交互的应用。在其他情况下,诸如图3所示,VMM 204可替代地包括部分独立的软件系统,其在某些层上经由主操作系统204来间接地与计算机硬件202交互,但在其他层上VMM 204直接与计算机硬件202交互(类似于主操作系统直接与计算机硬件交互的方式)。并且在又一些情况下,VMM 204可包括完全独立的软件系统,其在所有层上直接与计算机硬件202交互(类似于主操作系统直接与计算机硬件交互的方式)而不利用主操作系统204(但仍旧与主操作系统204交互以协调对计算机硬件202的使用并避免冲突等)。
用于实现上文所提及的分区的所有这些方案只是示例性实现,且此处没有任何东西应该解释为将本公开限制为任何特定虚拟化方面。
虚拟化存储分配
I/O虚拟化(IOV)指的是单个物理I/O设备要由一个以上虚拟机或在系统管理程序(或VMM等)和虚拟机之间共享的能力。虚拟机系统可遭受关于I/O虚拟化的差性能。这是因为使虚拟化有用的虚拟化的特征(例如与物理硬件隔离)可在虚拟机中运行工作负载时具有负面效应。在完全虚拟化系统中,每个I/O操作通常间接地由系统管理程序、或者主操作系统、或者由运行在机器上的不同的虚拟机来处理。缓解差I/O性能的一种方式可以是允许虚拟机直接控制系统中的某些物理硬件。然而,允许直接控制可具有致使虚拟机不被完全虚拟化的效果,在这种情况下与虚拟化相关联的许多特征(例如保存、迁移、快照等)可变得难以完成。
共同转让的美国专利申请号[代理人档案号:MSFT-5556/316010.01]描述了用于解决上述问题的技术。例如,可创建到I/O设备的多条路径。一条路径可直接行进到硬件,另一条路径可经另一虚拟机间接地行进到硬件。当希望完全封装虚拟机的状态使得它能够被保存或迁移时,直接路径可被拆毁且可使用间接路径。间接路径固有地是可虚拟化的。
然而,在构建这两条路径时可产生问题,特别是如果I/O设备被用于分页代码或数据的情况。通常难以设置第二路径而不将设备的控制给于第二路径作为设置过程的一部分。如果在分页设备完全可操作之前将分页设备的控制给于第二路径,则可发生差错且分页可停止。在许多情况下,如果分页停止,则系统可崩溃。
参考图4,示出的是纯“合成”存储子系统的框图。合成栈是由通常为在虚拟机中使用而设计的驱动器组成的I/O栈。根据具体系统,可使用其他术语来指代合成栈。例如,在替换系统中用于类似的I/O栈的术语是“类虚拟化”。参考图4,图示出两个分区。一个分区是具有对盘460的直接物理访问的特权分区410。另一个分区是可请求对盘460的访问的非特权分区470。例如,文件系统475可请求对文件的访问,要求合成SCSI总线驱动器480与盘驱动器485通信,盘驱动器随后在VM总线(虚拟机总线)465上通信。存储虚拟化服务提供者420可提供虚拟化的存储服务。存储虚拟化服务提供者420可与盘驱动器430通信以访问物理SCSI总线设备驱动器440。SCSI总线设备驱动器440可提供对SCSI控制器450并最终对驻留在盘460上的文件的访问(通常发生在块设备层)。于是,指示为特权分区410的一个虚拟机具有对是SCSI控制器450的物理存储设备的控制。指示为非特权分区470的另一虚拟机可寻求对SCSI控制器450的访问。
现在参考图5,示出的是构建了到盘460的第二路径之后的示例性结束状态。非特权分区470经辅助SCSI控制器520具有对盘460的物理控制。该访问是由包括物理SCSI总线设备驱动器510和盘驱动器505的辅助栈提供的。提供第一路径的合成栈包括盘驱动器485和合成SCSI总线驱动器480,合成SCSI总线驱动器随后在VM总线465上通信。存储虚拟化服务提供者420可提供虚拟化的存储服务。存储虚拟化服务提供者420可与盘驱动器430通信以访问物理SCSI总线设备驱动器440。SCSI总线设备驱动器440可提供对SCSI控制器450的访问,SCSI控制器提供对盘460的主接口。多路径重定向层500提供在非特权分区470中,并管理和控制对两个栈的访问。
可引起的一个问题是为了在非特权分区中在操作系统实例内的任一条路径中构建盘驱动器层,可要求对存储盘460的控制。构建两个设备驱动器栈所需的过程将通常要求从作为引导设备的盘进行读取,并通过分页代码和数据使盘活动生效。尽管这可是可能的,但是在大多数配置中,SCSI控制器不能从其主和辅助接口两者同时控制盘。本领域的技术人员将认识到将当前公开的技术应用于SCSI设备是示例性的,且所公开的方法和系统可应用于诸如但不限于,串行附加SCSI(SAS)、互联网SCSI(iSCSI)以及光纤通道等其他I/O设备。
在各实施例中,此处公开的是用于构造第二I/O路径或栈的过程。尽管下文将描述以合成I/O栈为开始并构建物理栈的过程,但本领域的技术人员将认识到可使用类似的过程来以合成I/O栈为开始并构建物理栈。
在某些实施例中,可要求SCSI控制器创建对其自己的辅助接口。某些设备能够执行此类操作,特别是与外围组件互联(PCI)专门兴趣组(SIG)的单根(SR)I/O虚拟化(IOV)规范兼容的那些设备。参考图6,提供了可管理对虚拟机的资源分配以及隔离分配给虚拟机的资源不被其他虚拟机访问的虚拟存储管理器600。虚拟存储管理器600可经其物理SCSI总线设备驱动器440向SCSI控制器450发送消息。SCSI控制器450然后可创建辅助SCSI控制器接口520。如上所述,本发明考虑了将所公开的方法应用于除了SCSI控制器之外的各种存储控制器。某些控制器可以多种方式连接到存储介质,例如以存储区域网络(SAN)的方式,使得多个控制器而不是单个SR-IOV兼容的控制器可被使用。
参考图7,示出的是用于设置第二I/O栈的进一步的示例性过程。存储设备驱动器700可被设置用于辅助控制器接口520。使用合成存储栈710,可对引导设备搜索与设备驱动器有关的文件。
非特权分区470中的SCSI总线设备驱动器700现在可创建表示盘的子设备。然而,非特权分区470当前不拥有特权分区410的控制下的盘460。结果,用于创建这一部分栈的常规的方法可能无效,因为设备不能将I/O发送到盘以找到其特性。
参考图8,SCSI总线设备驱动器700可向多路径重定向层500发送对关于SCSI总线设备驱动器700可最终拥有的盘的信息的请求。多路径重定向层500然后可用到现有盘驱动器485的句柄来响应。
操作系统I/O管理器可管理应用和设备驱动器提供的接口之间的通信。I/O管理器还可包括即插即用管理器,用于管理I/O功能和识别设备何时被添加到系统。参考图9,非特权分区470中的SCSI总线驱动器700可创建表示盘460的对象并将该对象报告给即插即用管理器,即插即用管理器可随后设置用于盘460的驱动器900。通常,在没有SCSI控制器接口520发送I/O到盘460的情况下,驱动器900不能被设置。在该情况下,驱动器900可被设置,因为使用到盘驱动器485的句柄将必要的I/O向下重定向到合成存储栈910,该句柄是由多路径重定向层500提供给SCSI控制器接口520的。多路径重定向层500可然后打开到新的盘对象900及其相关联的驱动器的句柄。
参考图10,多路径重定向层500可向虚拟存储管理器600发送消息。虚拟存储管理器600可向SCSI总线设备驱动器440发送对SCSI控制器的主接口450的消息。SCSI控制器的主接口450然后可将对盘460的控制让于SCSI控制器的辅助接口520,如所示。此时,多路径重定向层500可引导I/O从文件系统475向下通过非特权分区470中的物理栈1000。
目前所公开的各方面可被实现为系统、方法,驻留在计算机可读介质中的计算机可执行指令等等。如此,对任何特定系统、方法或计算机可读介质的任何公开不限于此,而是可延及实现所公开的主题的其他方式。
图11和12描绘了用于在虚拟机中构造设备驱动器栈的操作过程的示例,该虚拟机不控制与栈相关联的设备。过程可包括操作1100、1110、1120、1130、1140、1150、1160、1170和1180。参考图11,操作1100开始操作过程,在操作1110中,可发送实例化用于设备的辅助接口的请求。可配置1120用于辅助接口的物理驱动器。操作1130示出通过创建所述设备的表示来构造所述设备驱动器栈。操作1140示出为所述设备配置新驱动器,操作1150示出将第二指示提供给所述设备驱动器栈。操作1160示出通过经所述替代栈与所述设备通信来获得用于构造所述设备驱动器栈的信息。操作1170示出经所述设备驱动器栈和辅助接口将I/O引导到所述设备。操作1180示出向用于所述设备的主接口发送消息以将对所述设备的控制让于所述辅助接口。
结合图12继续,操作1200示出设备可任选地包括多个控制接口。操作1205示出该多个控制接口可任选地符合PCI SR-IOV规范。在一实施例中,设备驱动器栈可用于分页I/O 1210,在操作1215,分页I/O可对于创建设备驱动器栈是必要的。
操作1220示出在一个实施例中该设备是盘设备。在另一实施例中1225,该设备是网络接口适配器。在各实施例中,通过将I/O请求重定向到替代栈来发现1230设备的描述和特性。
在操作1235,可经合成存储栈对引导设备搜索与用于设备的驱动器有关的文件。在操作1240中,示出将对关于物理驱动器可拥有的设备的信息的请求发送到多路径重定向层。在一个实施例中,指示可以是句柄1245。在另一个实施例中,可发送1250到虚拟存储管理器的消息,该消息描述该指示。
图13和14描绘了用于创建到用于在虚拟机环境中分页代码或数据的I/O设备的多条路径的示例性操作过程。过程可包括操作1300、1302、1304、1306、1308、1310、1312和1314。参考图13,操作1300开始操作过程,操作1302请求辅助接口的实例化以及配置用于I/O设备的物理驱动器,其中I/O设备能够支持多个控制接口。操作1304示出从I/O虚拟化层接收到现有栈的指针,现有栈包括对所述I/O设备的现有驱动器,在操作1306中,可实例化表示所述设备的对象。
操作1308示出经所述现有栈与所述I/O设备通信,以及配置用于该I/O设备的新驱动器。可提供1310到该对象和新驱动器的指针。操作1312示出向用于所述I/O设备的主接口发送消息以将对所述I/O设备的控制让于所述辅助接口。操作1314示出使用所述指针经新驱动器和辅助接口将I/O重定向到所述I/O设备。
结合图14继续,在操作1402中,示出接收I/O设备的属性以及分页代码和数据。操作1404示出在一个实施例中现有栈是物理栈。在另一实施例中,现有栈可以是合成栈1406。
上文所提及的方面中的任何一个方面都可以以方法、系统、计算机可读介质或任何类型的产品来实现。例如,按照图15,计算机可读介质可在其上存储用于在虚拟化I/O环境中创建用于存储设备的替代I/O栈的计算机可执行指令,其中所述存储设备用于分页代码和数据,在利用存储设备的分页通过现有栈继续进行的同时,所述替代I/O栈被创建。这种媒体可包括用于请求辅助接口的实例化以及配置用于存储设备的辅助物理驱动器的第一指令子集1510;用于接收到现有栈的句柄的第二指令子集1512;用于使用所述句柄标识所述现有栈并经所述现有栈与所述存储设备通信的第三指令子集1514;用于实例化用于所述存储设备的替代I/O栈的第四指令子集1516,该替代I/O栈包括表示所述存储设备的对象和用于所述存储设备的驱动器;用于报告到所述替代I/O栈的句柄的第五指令子集1518;以及用于向所述存储设备的主接口发送消息以将对所述存储设备的控制让于所述辅助接口的第六指令子集1520。本领域技术人员可以理解,可以使用附加指令集来捕捉此处所公开的各其他方面,且根据本发明,三个目前所公开的指令子集可以在细节方面不同。
例如,指令还可包括用于经替代I/O栈将I/O重定向到存储设备的指令1526。指令还可包括支持存储设备是PCI SR-IOV兼容的实施例的指令1528,以及用于经现有栈对引导设备搜索与用于存储设备的驱动器有关的文件的指令。
如上所述,本发明的各方面可以在经编程的计算机上执行。图1c和下面讨论旨在提供其中实现本发明各方面的合适计算环境的简要描述。本领域技术人员可以理解,在某些实施例中,图1c的计算机系统可以实现图1a和1b的各个方面。在这些示例实施例中,服务器和客户机可包括图1c中所描述的某些或全部组件,且在某些实施例中,服务器和客户机可以各自包括被配置成实例化本发明的特定方面的电路。
在本公开中通篇使用的术语“电路”可包括专门硬件组件。在相同实施例或其他实施例中,电路可包括被配置成通过固件或开关执行功能的微处理器。在相同或其他示例实施例中,电路可包括一个或多个通用处理单元和/或多核处理单元等等,当体现可操作以执行功能的逻辑的软件指令被加载到存储器,例如,RAM和/或虚拟存储器中时,这些处理单元可以被配置。在其中电路包括硬件和软件的组合的示例实施例中,实施者可以编写体现逻辑的源代码,且源代码可以被编译为可以由通用处理单元处理的机器可读代码。
参考图1c,计算系统可以包括计算机20或类似物,计算机20包括处理单元21、系统存储器22和将包括系统存储器在内的各种系统组件耦合至处理单元21的系统总线23。系统总线23可以是若干类型的总线结构中的任何一种,包括使用各种总线体系结构中的任何一种的存储器总线或存储器控制器、外围总线,以及局部总线。系统存储器包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统26(BIOS)被存储在ROM 24中,包含了诸如在启动期间帮助在计算机20内的元件之间传输信息的基本例程。计算机20还可以包括用于读写硬盘(未示出)的硬盘驱动器27、用于读写可移动磁盘29的磁盘驱动器28,以及用于读写诸如CD ROM或其他光学介质之类的可移动光盘31的光盘驱动器30。在某些示例实施例中,体现本发明的各方面的计算机可执行指令可以存储在ROM 24、硬盘(未示出)、RAM 25、可移动磁盘29、光盘31,和/或处理单元21的高速缓存中。硬盘驱动器27、磁盘驱动器28,以及光驱动器30分别通过硬盘驱动器接口32、磁盘驱动器接口33,以及光驱动器接口34连接到系统总线23。驱动器以及它们相关联的计算机可读介质为计算机20提供了对计算机可读指令、数据结构、程序模块,及其他数据的非易失性存储。虽然此处所描述的环境使用了硬盘、可移动磁盘29、以及可移动光盘31,但是,那些本领域普通技术人员应该理解,在操作环境中也可以使用诸如盒式磁带、闪存卡、数字视频盘、伯努利磁带盒、随机存取存储器(RAM)、只读存储器(ROM)等等之类的可以存储可由计算机进行访问的数据的其他类型的计算机可读介质。
可以有若干个程序模块存储在硬盘、磁盘29、光盘31、ROM 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所描述的许多或全部元件,虽然在图1c中只示出了存储设备50。图1中所描绘的逻辑连接可包括局域网(LAN)51和广域网(WAN)52。这样的联网环境在办公室、企业范围的计算机网络、内部网和因特网中是普遍现象。
当用于LAN网络环境中时,计算机20可通过网络接口或适配器53连接到LAN 51。当用于WAN网络环境中时,计算机20通常包括调制解调器54,或用于通过广域网52(如通过因特网)建立通信的其他装置。调制解调器54其可以是内置的或外置的,可通过串行端口接口46连接到系统总线23。在网络化环境中,相对于计算机20所描述的程序模块或其部分可被存储在远程存储器存储设备中。可以理解,所示出的网络连接只是示例,也可以使用用于在计算机之间建立通信链路的其他装置。此外,尽管可以预想本发明的很多实施例特别适合于计算机系统,但是,本文中没有任何表述旨在将本公开限制于这样的实施例。
前述的详细描述通过示例和/或操作图阐述了系统和/或进程的各实施例。在这样的框图和/或示例包含一个或多个功能和/或操作的范围内,本领域技术人员将理解,这样的框图,或示例内的每一功能和/或操作可以分别地和/或共同地通过范围广泛的硬件、软件、固件或几乎其任何组合来实现。
最后,尽管已经结合较佳方面按各附图所示描述了本发明,但要理解,可使用其它相似方面或者可对所述方面进行修改或添加来执行本发明的相同功能而不脱离本发明。例如,在本文的各方面中,揭示了用于在虚拟机分区中构建设备驱动器栈的各种机制,该虚拟机分区物理上不控制由栈所表示的设备。然而,通过此处的示教还设想与这些所描述的方面等效的其他机制。因此,本发明不应该仅限于任何单个方面,而是应该在根据所附权利要求书的广度和范围内解释。
Claims (21)
1.一种用于在虚拟机中构造设备驱动器栈的方法,该虚拟机不控制与该设备驱动器栈相关联的I/O设备,所述方法包括:
请求辅助接口的实例化,以及配置用于所述I/O设备的物理驱动器,其中所述I/O设备能够支持多个控制接口;
从I/O虚拟化层接收到现有栈的指针,现有栈包括对所述I/O设备的现有驱动器;
实例化表示所述设备的对象;
经所述现有栈与所述I/O设备通信,以及配置用于所述I/O设备的新驱动器;
提供到所述对象和新驱动器的指针;
向用于所述I/O设备的主接口发送消息以将对所述I/O设备的控制让于所述辅助接口;
使用所述指针经所述新驱动器和辅助接口将I/O重定向到所述I/O设备。
2.如权利要求1所述的方法,其特征在于,所述I/O设备包括多个控制接口。
3.如权利要求1所述的方法,其特征在于,所述设备驱动器栈用于分页I/O。
4.如权利要求3所述的方法,其特征在于,所述分页I/O对于创建所述设备驱动器栈是必要的。
5.如权利要求1所述的方法,其特征在于,所述I/O设备是存储设备。
6.如权利要求1所述的方法,其特征在于,所述I/O设备是网络接口适配器。
7.如权利要求1所述的方法,其特征在于,所述I/O设备的描述和特性是通过将I/O请求重定向到所述现有栈而获得的。
8.如权利要求1所述的方法,其特征在于,所述配置物理驱动器还包括经合成存储栈对引导设备搜索与所述物理驱动器有关的文件。
9.如权利要求1所述的方法,其特征在于,还包括向多路径重定向层发送对关于所述物理驱动器能拥有的设备的信息的请求。
10.一种适用于在虚拟机环境中创建到用于分页代码或数据的I/O设备的多条路径的系统,包括:
用于请求辅助接口的实例化,以及配置用于所述I/O设备的物理驱动器的装置,其中所述I/O设备能够支持多个控制接口;
用于从I/O虚拟化层接收到现有栈的指针的装置,现有栈包括对所述I/O设备的现有驱动器;
用于实例化表示所述设备的对象的装置;
用于经所述现有栈与所述I/O设备通信,以及配置用于所述I/O设备的新驱动器的装置;
用于提供到所述对象和新驱动器的指针的装置;
用于向用于所述I/O设备的主接口发送消息以将对所述I/O设备的控制让于所述辅助接口的装置;
用于使用所述指针经所述新驱动器和辅助接口将I/O重定向到所述I/O设备的装置。
11.如权利要求10所述的系统,其特征在于,所述用于与所述I/O设备通信的装置还包括用于接收所述I/O设备的特性以及分页代码和数据。
12.如权利要求10所述的系统,其特征在于,所述现有栈是物理栈。
13.如权利要求10所述的系统,其特征在于,所述现有栈是合成栈。
14.一种用于在虚拟化I/O环境中创建用于存储设备的替代I/O栈的方法,其中所述存储设备用于分页代码和数据,所述替代I/O栈是在利用存储设备的分页通过现有栈继续进行的同时被创建的,所述方法包括:
请求(1510)辅助接口的实例化以及配置用于存储设备的辅助物理驱动器;
接收(1512)到现有栈的句柄;
使用所述句柄标识所述现有栈,并经所述现有栈与所述存储设备通信(1514);
实例化(1516)用于所述存储设备的替代I/O栈,所述替代I/O栈包括表示所述存储设备的对象和用于所述存储设备的驱动器;
报告(1518)到所述替代I/O栈的句柄;
向用于所述存储设备的主接口发送(1520)消息以将对所述存储设备的控制让于所述辅助接口。
15.如权利要求14所述的方法,其特征在于,还包括经所述替代I/O栈将I/O重定向到所述存储设备。
16.如权利要求14所述的方法,其特征在于,所述存储设备包括多个控制接口。
17.如权利要求14所述的方法,其特征在于,配置辅助物理驱动器包括经所述现有栈对引导设备搜索与用于存储设备的物理驱动器有关的文件。
18.一种用于在虚拟化I/O环境中创建用于存储设备的替代I/O栈的系统,其中所述存储设备用于分页代码和数据,所述替代I/O栈是在利用存储设备的分页通过现有栈继续进行的同时被创建的,所述系统包括:
用于请求辅助接口的实例化以及配置用于存储设备的辅助物理驱动器的装置;
用于接收到现有栈的句柄的装置;
用于使用所述句柄标识所述现有栈,并经所述现有栈与所述存储设备通信的装置;
用于实例化用于所述存储设备的替代I/O栈的装置,所述替代I/O栈包括表示所述存储设备的对象和用于所述存储设备的驱动器;
用于报告到所述替代I/O栈的句柄的装置;
用于向用于所述存储设备的主接口发送消息以将对所述存储设备的控制让于所述辅助接口的装置。
19.如权利要求18所述的系统,其特征在于,还包括用于经所述替代I/O栈将I/O重定向到所述存储设备的装置。
20.如权利要求18所述的系统,其特征在于,所述存储设备包括多个控制接口。
21.如权利要求18所述的系统,其特征在于,用于配置辅助物理驱动器的装置包括用于经所述现有栈对引导设备搜索与用于存储设备的物理驱动器有关的文件的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/248,299 | 2008-10-09 | ||
US12/248,299 US8321878B2 (en) | 2008-10-09 | 2008-10-09 | Virtualized storage assignment method |
PCT/US2009/059124 WO2010042374A2 (en) | 2008-10-09 | 2009-09-30 | Virtualized storage assignment method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102177509A CN102177509A (zh) | 2011-09-07 |
CN102177509B true CN102177509B (zh) | 2014-03-12 |
Family
ID=42100071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980140539.4A Active CN102177509B (zh) | 2008-10-09 | 2009-09-30 | 虚拟化存储分配方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US8321878B2 (zh) |
EP (1) | EP2335156B1 (zh) |
JP (1) | JP5599804B2 (zh) |
KR (1) | KR101602519B1 (zh) |
CN (1) | CN102177509B (zh) |
HK (1) | HK1158332A1 (zh) |
WO (1) | WO2010042374A2 (zh) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8321878B2 (en) * | 2008-10-09 | 2012-11-27 | Microsoft Corporation | Virtualized storage assignment method |
KR101343595B1 (ko) * | 2008-12-19 | 2013-12-20 | 한국전자통신연구원 | 라우터에 대한 포워딩 가상화 방법 |
US8255596B2 (en) * | 2009-06-10 | 2012-08-28 | International Business Machines Corporation | Multipath-based migration of data across storage controllers |
US8413164B1 (en) * | 2009-06-30 | 2013-04-02 | Emc Corporation | Presenting an interface to a computer system for use in conducting diagnostic tests |
US8417849B2 (en) * | 2009-10-07 | 2013-04-09 | International Business Machines Corporation | Apparatus and method to adjust a multi-path device reservation |
WO2012057769A1 (en) | 2010-10-28 | 2012-05-03 | Hewlett-Packard Development Company, L.P. | Zoning data to a virtual machine |
US8561065B2 (en) | 2010-11-15 | 2013-10-15 | International Business Machines Corporation | Virtualization of vendor specific network interfaces of self-virtualizing input/output device virtual functions |
US9218219B2 (en) | 2010-11-24 | 2015-12-22 | International Business Machines Corporation | Managing virtual functions of an input/output adapter |
US8301806B2 (en) | 2010-11-24 | 2012-10-30 | International Business Machines Corporation | Configuring an input/output adapter |
US8839240B2 (en) | 2010-11-29 | 2014-09-16 | International Business Machines Corporation | Accessing vendor-specific drivers for configuring and accessing a self-virtualizing input/output device |
US9146863B2 (en) | 2010-12-08 | 2015-09-29 | International Business Machines Corporation | Address translation table to enable access to virtualized functions |
US8561066B2 (en) | 2010-12-08 | 2013-10-15 | International Business Machines Corporation | Simplified DMA mappings for self-virtualizing input/output device virtual functions |
US8495274B2 (en) | 2010-12-08 | 2013-07-23 | International Business Machines Corporation | Address translation table to enable access to virtual functions |
US8645755B2 (en) | 2010-12-15 | 2014-02-04 | International Business Machines Corporation | Enhanced error handling for self-virtualizing input/output device in logically-partitioned data processing system |
US8683478B2 (en) | 2010-12-21 | 2014-03-25 | International Business Machines Corporation | Best fit mapping of self-virtualizing input/output device virtual functions for mobile logical partitions |
US8862739B2 (en) | 2011-01-11 | 2014-10-14 | International Business Machines Corporation | Allocating resources to virtual functions |
US8447891B2 (en) | 2011-01-11 | 2013-05-21 | International Business Machines Corporation | Dynamically assigning virtual functions to client applications |
US8418166B2 (en) | 2011-01-11 | 2013-04-09 | International Business Machines Corporation | Transparent update of adapter firmware for self-virtualizing input/output device |
US8677356B2 (en) | 2011-01-11 | 2014-03-18 | International Business Machines Corporation | Adjunct partition work scheduling with quality of service attributes |
US8537706B2 (en) | 2011-01-11 | 2013-09-17 | International Business Machines Corporation | Preserving traffic class priority QoS with self-virtualizing input/output device |
US8825981B2 (en) | 2011-01-25 | 2014-09-02 | International Business Machines Corporation | Allocating addressable memory regions to an adapter |
US8364871B2 (en) | 2011-01-25 | 2013-01-29 | International Business Machines Corporation | Providing virtual functions after an input/output adapter is moved from a first location to a second location |
US8832401B2 (en) | 2011-01-26 | 2014-09-09 | International Business Machines Corporation | Iteratively de-allocating active objects associated with virtual functions of an adapter |
US8726276B2 (en) | 2011-01-26 | 2014-05-13 | International Business Machines Corporation | Resetting a virtual function that is hosted by an input/output adapter |
US8527666B2 (en) | 2011-02-21 | 2013-09-03 | International Business Machines Corporation | Accessing a configuration space of a virtual function |
US9218195B2 (en) | 2011-05-17 | 2015-12-22 | International Business Machines Corporation | Vendor-independent resource configuration interface for self-virtualizing input/output device |
US8838837B2 (en) | 2011-06-23 | 2014-09-16 | Microsoft Corporation | Failover mechanism |
US8959223B2 (en) | 2011-09-29 | 2015-02-17 | International Business Machines Corporation | Automated high resiliency system pool |
US8996700B2 (en) | 2011-09-29 | 2015-03-31 | International Business Machines Corporation | Automated workload performance and availability optimization based on hardware affinity |
CN103577149B (zh) * | 2013-11-20 | 2017-02-08 | 华为技术有限公司 | Hba兼容处理方法、装置及系统 |
CN106537366B (zh) * | 2014-06-30 | 2019-07-23 | 惠普发展公司,有限责任合伙企业 | 全虚拟机功能 |
WO2016003415A1 (en) * | 2014-06-30 | 2016-01-07 | Hewlett-Packard Development Company, L.P. | Securely sending a complete initialization package |
CN104144327B (zh) * | 2014-07-28 | 2018-11-16 | 华为数字技术(成都)有限公司 | 一种监控视频存储方法及装置 |
EP3182282A1 (en) * | 2015-12-15 | 2017-06-21 | OpenSynergy GmbH | Method for operating a system in a control unit and system |
CN106919341B (zh) * | 2015-12-28 | 2020-04-21 | 成都华为技术有限公司 | 一种下发i/o的方法及装置 |
US10509729B2 (en) | 2016-01-13 | 2019-12-17 | Intel Corporation | Address translation for scalable virtualization of input/output devices |
US10228981B2 (en) | 2017-05-02 | 2019-03-12 | Intel Corporation | High-performance input-output devices supporting scalable virtualization |
CN107688484A (zh) * | 2017-09-06 | 2018-02-13 | 郑州云海信息技术有限公司 | 一种虚拟机迁移的方法及系统 |
US11216701B1 (en) * | 2018-02-09 | 2022-01-04 | Amazon Technologies, Inc. | Unsupervised representation learning for structured records |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101523370A (zh) * | 2006-09-29 | 2009-09-02 | 微软公司 | 虚拟机中的分布式硬件状态管理 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0976030B1 (en) * | 1996-01-24 | 2008-07-02 | Sun Microsystems, Inc. | Instruction folding for a stack-based machine |
US6038643A (en) * | 1996-01-24 | 2000-03-14 | Sun Microsystems, Inc. | Stack management unit and method for a processor having a stack |
US7409694B2 (en) * | 1998-09-09 | 2008-08-05 | Microsoft Corporation | Highly componentized system architecture with loadable virtual memory manager |
US6959440B1 (en) * | 2000-08-02 | 2005-10-25 | Intel Corporation | Dynamic removal of a driver stack when a parent driver uses a child driver |
US6647454B1 (en) * | 2000-09-25 | 2003-11-11 | Intel Corporation | Data transfer through a bridge |
US7792923B2 (en) * | 2000-10-13 | 2010-09-07 | Zhe Khi Pak | Disk system adapted to be directly attached to network |
US6904477B2 (en) | 2001-04-13 | 2005-06-07 | Sun Microsystems, Inc. | Virtual host controller interface with multipath input/output |
US7185078B2 (en) * | 2001-06-28 | 2007-02-27 | Microsoft Corporation | Event manager for a control management system |
US7257815B2 (en) * | 2001-09-05 | 2007-08-14 | Microsoft Corporation | Methods and system of managing concurrent access to multiple resources |
US7210068B1 (en) | 2002-03-06 | 2007-04-24 | Network Appliance, Inc. | System and method for multipath I/O support for fibre channel devices |
US7222348B1 (en) | 2002-12-16 | 2007-05-22 | Unisys Corporation | Universal multi-path driver for storage systems |
US7194662B2 (en) | 2003-02-28 | 2007-03-20 | International Business Machines Corporation | Method, apparatus and program storage device for providing data path optimization |
US7080172B1 (en) | 2003-05-27 | 2006-07-18 | Marvell Luternational Ltd. | Management of memory, hardware and associated device drivers using stacks |
US7421710B2 (en) | 2003-10-08 | 2008-09-02 | Lsi Corporation | System and method of creating virtual data paths using a multiple-path driver |
US7689987B2 (en) | 2004-06-30 | 2010-03-30 | Microsoft Corporation | Systems and methods for stack-jumping between a virtual machine and a host environment |
US20060047850A1 (en) | 2004-08-31 | 2006-03-02 | Singh Bhasin Harinder P | Multi-chassis, multi-path storage solutions in storage area networks |
US20060212870A1 (en) | 2005-02-25 | 2006-09-21 | International Business Machines Corporation | Association of memory access through protection attributes that are associated to an access control level on a PCI adapter that supports virtualization |
GB0505926D0 (en) * | 2005-03-23 | 2005-04-27 | Ibm | Data processing system and method |
TWI307034B (en) | 2005-11-23 | 2009-03-01 | Infortrend Technology Inc | Storage virtualization subsystem and system with host-side redundancy via sas connectivity |
JP4800059B2 (ja) | 2006-02-13 | 2011-10-26 | 株式会社日立製作所 | 仮想ストレージシステム及びその制御方法 |
US7788665B2 (en) * | 2006-02-28 | 2010-08-31 | Microsoft Corporation | Migrating a virtual machine that owns a resource such as a hardware device |
US7783788B1 (en) * | 2006-04-28 | 2010-08-24 | Huawei Technologies Co., Ltd. | Virtual input/output server |
US7620784B2 (en) * | 2006-06-09 | 2009-11-17 | Microsoft Corporation | High speed nonvolatile memory device using parallel writing among a plurality of interfaces |
US7761612B2 (en) | 2006-12-07 | 2010-07-20 | International Business Machines Corporation | Migrating domains from one physical data processing system to another |
US7657663B2 (en) | 2006-12-19 | 2010-02-02 | International Business Machines Corporation | Migrating stateless virtual functions from one virtual plane to another |
US7941812B2 (en) | 2007-01-30 | 2011-05-10 | Hewlett-Packard Development Company, L.P. | Input/output virtualization through offload techniques |
US8645974B2 (en) * | 2007-08-02 | 2014-02-04 | International Business Machines Corporation | Multiple partition adjunct instances interfacing multiple logical partitions to a self-virtualizing input/output device |
US7782869B1 (en) * | 2007-11-29 | 2010-08-24 | Huawei Technologies Co., Ltd. | Network traffic control for virtual device interfaces |
US8099522B2 (en) * | 2008-06-09 | 2012-01-17 | International Business Machines Corporation | Arrangements for I/O control in a virtualized system |
US8041849B2 (en) * | 2008-07-02 | 2011-10-18 | Lsi Corporation | Method for handling small computer system interface (SCSI) commands via a redundant array of inexpensive disks (RAID) device driver |
US8321878B2 (en) * | 2008-10-09 | 2012-11-27 | Microsoft Corporation | Virtualized storage assignment method |
-
2008
- 2008-10-09 US US12/248,299 patent/US8321878B2/en active Active
-
2009
- 2009-09-30 JP JP2011531068A patent/JP5599804B2/ja active Active
- 2009-09-30 WO PCT/US2009/059124 patent/WO2010042374A2/en active Application Filing
- 2009-09-30 KR KR1020117010044A patent/KR101602519B1/ko active IP Right Grant
- 2009-09-30 EP EP09819670.2A patent/EP2335156B1/en active Active
- 2009-09-30 CN CN200980140539.4A patent/CN102177509B/zh active Active
-
2011
- 2011-11-18 HK HK11112531.8A patent/HK1158332A1/zh unknown
-
2012
- 2012-11-07 US US13/671,251 patent/US8607253B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101523370A (zh) * | 2006-09-29 | 2009-09-02 | 微软公司 | 虚拟机中的分布式硬件状态管理 |
Also Published As
Publication number | Publication date |
---|---|
JP5599804B2 (ja) | 2014-10-01 |
US8607253B2 (en) | 2013-12-10 |
EP2335156A2 (en) | 2011-06-22 |
KR20110084211A (ko) | 2011-07-21 |
US20100095310A1 (en) | 2010-04-15 |
WO2010042374A2 (en) | 2010-04-15 |
EP2335156B1 (en) | 2015-08-26 |
KR101602519B1 (ko) | 2016-03-10 |
HK1158332A1 (zh) | 2012-07-13 |
WO2010042374A3 (en) | 2010-07-08 |
US20130067501A1 (en) | 2013-03-14 |
JP2012505473A (ja) | 2012-03-01 |
EP2335156A4 (en) | 2012-05-16 |
CN102177509A (zh) | 2011-09-07 |
US8321878B2 (en) | 2012-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102177509B (zh) | 虚拟化存储分配方法 | |
JP6826586B2 (ja) | 従属性に基づくコンテナ・デプロイメント方法、システム、およびプログラム | |
US11829793B2 (en) | Unified management of virtual machines and bare metal computers | |
US20190087220A1 (en) | Hyperconverged system equipped with an orchestrator for installing and coordinating container pods on a cluster of container hosts | |
EP1622014B1 (en) | Systems and methods for inializing multiple virtual processors within a single virtual machine | |
US7555596B2 (en) | Systems and methods for attaching a virtual machine virtual hard disk to a host machine | |
CN107003892B (zh) | Gpu虚拟化方法、装置、系统及电子设备、计算机程序产品 | |
EP2053509B1 (en) | System for and method of migrating one or more virtual machines | |
US7581229B2 (en) | Systems and methods for supporting device access from multiple operating systems | |
US8830228B2 (en) | Techniques for enabling remote management of servers configured with graphics processors | |
US11403086B2 (en) | System and method for upgrading operating system of a container using an auxiliary host | |
JP2010527056A (ja) | 仮想マシン移行 | |
US20190391835A1 (en) | Systems and methods for migration of computing resources based on input/output device proximity | |
US9354911B2 (en) | Method and system for logging into a virtual environment executing on a host | |
US9870246B2 (en) | Systems and methods for defining virtual machine dependency mapping | |
US20160283257A1 (en) | Parallelized virtual machine configuration | |
CN114153557A (zh) | 基于宿主机操作系统部署指定应用的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150504 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150504 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |