虚拟存储目标卸载技术的制作方法

文档序号:6351510阅读:162来源:国知局
专利名称:虚拟存储目标卸载技术的制作方法
虚拟存储目标卸载技术
背景技术
虚拟机技术可以用于打包工作负载并在数据中心中移动它。这种将工作负载从ー个物理主机移动到另ー个物理主机的能力对用户有极大的益处,因为它允许动态机器合并,这导致低得多的硬件和管理成本。虚拟机典型地通过处理位于管理程序、管理分区或其组合内的存储虚拟化的模块来访问存储。在该模型中,虚拟机典型地经由诸如内部分区通信总线(如在题为“Partition Bus”的美国申请No. 11/128,647中描述的示例分区总线,该申请的内容通过引用被整体合并于此)之类的软件通信路径向所述模块发送存储I/O请求。虚拟机与管理程序(或管理分区)之间的通信由于运行通信路径和在传输消息时可能发生的任何上下文切换而引发(incur)CPU循环成本(cycle cost)。因此,用于通过减少CPU成本来増加处理I/O请求的效率的技术是所期望的。

发明内容
本公开的ー个不例实施例描述了ー种方法。在该不例中,该方法包括但不限于实现(effectuate)可迁移存储服务,其中该可迁移存储服务被配置成管理针对子分区的虚拟硬盘输入/输出请求,其中该可迁移存储服务被分配用于网络的唯一网络标识符;以及将该可迁移存储服务配置为网络中的存储目标。除前述之外,在形成本公开的一部分的权利要求、附图和文本中描述了其他方面。本公开的ー个不例实施例描述了ー种方法。在该不例中,该方法包括但不限于将用于网络适配器的第一唯一网络标识符附加(attach)到被配置成管理针对子分区的虚拟硬盘输入/输出请求的存储服务;以及将由网络适配器实现的虚拟功能(function)附加到子分区,其中该虚拟功能包括第二唯一网络标识符。除了前述之外,在形成本公开的一部分的权利要求、附图和文本中描述了其他方面。本公开的ー个不例实施例描述了ー种方法。在该不例中,该方法包括但不限于在子分区中执行存储服务,其中该存储服务被配置成管理针对第二子分区的虚拟硬盘驱动器输入/输出请求,其中该存储服务在网络中被分配唯一网络标识符。除了前述之外,在形成本公开的一部分的权利要求、附图和文本中描述了其他方面。本领域技术人员可以领会本公开的ー个或多个不同的方面可以包括但不限于用于实现本文所引用的本公开的各方面的电路和/或编程;所述电路和编程事实上可以是被配置成依据系统设计者的设计选择实现本文所引用的各方面的硬件、软件和/或固件的任
意组合。前述是概要,并且因此必然包含细节的简化、概括和省略。本领域技术人员将领会该概要仅是说明性的,而并未打算以任何方式进行限制。


图I描绘了示例计算机系统,其中可以实现本公开的各方面。图2描绘了用于实践本公开的各方面的操作环境。
图3描绘了用于实践本公开的各方面的操作环境。图4图示了包括SR-IOV兼容网络设备的计算机系统。图5图示了虚拟化环境中存储器间的关系。图6描绘了本公开的ー个实施例。图7描绘了用于图示本公开的各方面的操作环境。图8描绘了用于实践本公开的各方面的操作过程。图9描绘了图8的操作过程的可替代实施例。图10描绘了用于实践本公开的各方面的操作过程。
图11描绘了图10的操作过程的可替代实施例。图12描绘了用于实践本公开的各方面的操作过程。图13描绘了图12的操作过程的可替代实施例。
具体实施例方式诸实施例可以在ー个或多个计算机系统上执行。图I和下面的讨论g在提供对本公开可以在其中实现的适当计算环境的简短的概述。贯穿本公开使用的术语电路可以包括硬件组件(比如硬件中断控制器、硬盘驱动器、网络适配器、图形处理器、基于硬件的视频/音频编解码器)和用于操作这种硬件的固件。术语电路还可以包括微处理器、专用集成电路和/或ー个或多个逻辑处理器,例如由固件和/或软件配置的多内核(core)通用处理单元中的ー个或多个内核。(多个)逻辑处理器可以由体现可操作逻辑的指令配置来执行从存储器(例如RAM、R0M、固件和/或大容量存储)加载的(多个)功能。在一个示例实施例中,其中电路包括硬件和软件的组合,实现者可以写体现逻辑的源代码,其随后被编译成可以被逻辑处理器执行的机器可读代码。由于本领域技术人员可以领会目前的技术水平已经发展到在硬件实现的功能或软件实现的功能之间几乎不存在差异的阶段,因此对实现本文所述的功能的软件和硬件的选择仅仅是设计选择。換言之,由于本领域技术人员可以领会软件过程可以被转换成等价的硬件结构,并且硬件结构本身可以被转换成等价的软件过程,对硬件实现方式和软件实现方式的选择留给实现者。现在參照图1,描绘了示例性计算系统100。计算机系统100可以包括逻辑处理器102,例如执行内核的超线程。尽管图示了一个逻辑处理器102,但是在其他实施例中计算机系统100可以具有多个逻辑处理器,例如每个处理器衬底具有的多个执行内核和/或其中每ー个处理器衬底可以具有多个执行内核的多个处理器衬底。如图所示,各种计算机可读存储介质110可以通过将各种系统组件耦合到逻辑处理器102的一条或多条系统总线互连。系统总线可以是若干类型的总线结构的任ー种,所述若干类型的总线结构包括存储器总线或存储器控制器、外围总线和使用多种总线架构的任ー种的局部总线。在示例实施例中,计算机可读存储介质110可以包括例如随机存取存储器(RAM) 104、存储设备106(例如机电硬盘驱动器、固态硬盘驱动器等)、固件108 (例如FLASH RAM或ROM)和可移动存储设备118 (比如⑶-ROM、软盘、DVD、FLASH驱动器、外部存储设备等)。本领域技术人员应当领会可以使用其他类型的计算机可读介质,比如盒式磁帯、闪存卡、数字视频盘、伯努利(Bernoulli)盒。
计算机可读存储介质110可以提供用于计算机100的处理器可执行指令122、数据结构、程序模块和其他数据的非易失性和易失性存储。包含在启动期间有助于在计算机系统100内的元件之间传递信息的基本例行程序的基本输入/输出系统(BI0S)120可以存储在固件108中。多个程序可以存储在固 件108、存储设备106、RAM 104和/或可移动存储设备118中并且可以由包括操作系统和/或应用程序的逻辑处理器102执行。计算机100可以通过输入设备116接收命令和信息,输入设备116可以包括但不限于键盘和指点设备。其他输入设备可以包括话筒、操纵杆、游戏手柄(pad)、扫描仪等等。这些和其他输入设备可以通过耦合到系统总线的串行端ロ接ロ而被连接到逻辑处理器102,并且经常通过诸如通用串行总线端ロ(USB)之类的其他接ロ而被连接。显示器或其他类型的显示设备也可以经由诸如视频适配器(可以是图形处理器112的一部分或被连接到图形处理器112)之类的接ロ而被连接到系统总线。除了显示器之外,计算机典型地包括其他外围输出设备(未示出),比如扬声器和打印机。图I的示例性系统还可以包括主机适配器、小型计算机系统接ロ(SCSI)总线和连接到SCSI总线的外部存储设备。计算机系统100可以在使用到远程计算机的逻辑连接的联网环境中操作。该远程计算机可以是另一个计算机、服务器、路由器、网络PC、对等设备或其他普通的网络节点,并且典型地可以包括上文相对于计算机系统100描述的许多或所有元件。当在LAN或WAN联网环境中使用时,计算机系统100可以通过网络接ロ卡114连接到LAN或WAN。NIC 114 (其可以是内部或外部的)可以连接到逻辑处理器。在联网环境中,相对于计算机系统100描绘的程序模块或其部分可以存储在远程存储器存储设备中。应当领会,这里描述的网络连接是示例性的,并且可以使用在计算机之间建立通信链接的其他手段。而且,尽管设想了本公开的多个实施例特别良好地适合于计算机化的系统,但是在该文档中内容并不打算将本公开限制于这样的实施例。现在參照图2和3,它们描绘了被配置成实现虚拟机的计算机系统200和300的高级框图。在本公开的示例实施例中,计算机系统200和300可以包括图I中所描述的元素和可操作以实现虚拟机的组件。转到图2,一个这样的组件是管理程序(hypervisor) 202,其在本领域中也可以被称为虚拟机监视器。所描绘的实施例中的管理程序202可以被配置成控制和仲裁对计算机系统100的硬件的访问。广义上说,管理程序202可以生成被称为分区(例如,虚拟机)的执行环境。在实施例中,子分区可以被认为是由管理程序202支持的隔离(isolation)的基本単元。即,每个子分区(246和248)可以被映射到在管理程序202控制下的ー组硬件资源,例如存储器、设备、逻辑处理器循环等等,并且/或者父分区和管理程序202可以隔离ー个分区中的进程(process)以免访问另ー个分区的资源,例如可以将ー个分区中的客户操作系统与另ー个分区中的存储器隔离。在实施例中,管理程序202可以是孤立的软件产品、操作系统的一部分、嵌入在主板的固件中、专用集成电路或其组合。在所描绘的示例中,计算机系统100包括父分区204,其也可以被看作类似于开源社区中的域O。父社区204可以被配置成通过使用典型地在开源社区中被称为后端驱动器的虚拟化服务提供器(VSP)向在子分区中执行的客户操作系统提供资源。在该示例架构中,父分区204可以控制(gate)对底层硬件的访问。广义上说,VSP 228可以用于通过虚拟化服务客户端(VSC)(在开源社区中典型地被称为前端驱动器)将接ロ复用到硬件资源。每个子分区可以包括ー个或多个虚拟处理器,比如虚拟处理器230到232,客户操作系统220到222可以管理并调度线程以在其上执行。一般地,虚拟处理器230到232是可执行指令和相关联的状态信息,其提供具有特定架构的物理处理器的表示。例如,ー个子分区可以具有含Intel x86处理器的特性的虚拟处理器,而另ー个虚拟处理器可以具有PowerPC处理器的特性。该示例中的虚拟处理器可以被映射到计算机系统的逻辑处理器,使得指令的虚拟处理器执行由逻辑处理器支持。因此,在这些示例实施例中,多个虚拟处理器可以同时执行,而例如另ー个逻辑处理器执行管理程序指令。分区中虚拟处理器、各种VSC和存储器的组合可以被认为是虚拟机。客户操作系统220至222可以包括任何操作系统,比如来自Microsoft 、Apple 、开源社区等的操作系统。客户操作系统可以使用用户/内核操作模式,并且可以具有可以包括调度器、存储器管理器等的内核。每个客户操作系统220至222可以具有相关联的文件系统以及客户操作系统自身,相关联的文件系统可以具有存储在其上的应用,比如終端服务器、电子商务服务器、电子邮件服务器等。客户操作系统220-222可以调度线程以在虚拟处理器230-232上执行,并且这样的应用的实例可以被实现。现在參照图3,它图示了上文图2中所述的架构的可替代架构。图3描绘了与图2相似的组件;然而,在该示例实施例中,管理程序202可以包括虚拟化服务提供器228和设备驱动器224,并且父分区204可以包含配置工具236。在该架构中,管理程序202可以执行与图2的管理程序202相同或相似的功能。图3的管理程序202可以是孤立的软件产品、操作系统的一部分、嵌入在主板的固件中,或者管理程序202的一部分可以通过专用集成电路实现。在该示例中,父分区204可以具有可以用于配置管理程序202的指令,然而硬件访问请求可以由管理程序202处理,而不被传送到父分区204。在本公开的实施例中,符合清楚地通过整体引用合并于此的“Single RootInput/Output Virtualization specification (单根输入/输出虚拟化规范)”修正版1.0的网络适配器可以安装在诸如附图中所描述的计算机系统中。示例适配器可以是来自Intel 的“Gigabit ET Dual Port Server Adapter (千兆位 ET 双端ロ服务器适配器)”。有SR-IOV能力的网络设备是可以通过虚拟化接ロ为物理功能而在例如虚拟机或任何其他进程之间共享1/0适配器的硬件设备。每个虚拟化接ロ(也被称为虚拟功能(VF))大致表现为在计算机系统的高速PCI总线上的単独的网络接ロ卡。例如,每个虚拟功能可以具有仿真的PCI配置空间和唯一网络标识符,例如介质访问控制地址(MAC地址)、全球名称等。因此,每个虚拟功能可以支持用于访问物理功能的唯一地寻址且强分区的単独路径。转到图4,它图示了计算机系统400,其包括SR-IOV兼容适配器402 (“适配器”)。类似于上文所述,计算机系统400可以包括类似于上文关于图1-3的组件的组件。适配器402可以包括物理功能410,该物理功能可以对应于可以连接到网络和内部路由器412的端ロ。内部路由器412可以被配置成向和从诸如分配给虚拟功能404或406的、适配器402的网络标识符420-424路由数据,所述适配器例如是均具有虚拟端ロ的虚拟适配器。在示例实施例中,网络适配器402可以是以太网适配器,并且虚拟功能可以是虚 拟以太网适配器。在该示例中,虚拟功能的唯一标识符将是以太网MAC地址。在光纤信道示例中,适配器402可以是光纤信道主机总线适配器,并且虚拟功能可以是具有全球名称的虚拟光纤信道主机总线适配器,全球名称包括全球节点名称和全球端ロ名称。在无限带宽示例中,虚拟功能可以是具有全局标识符的虚拟无限带宽端点。网络标识符424以虚线示出,其指示诸如光纤信道主机总线适配器或以太网适配器之类的网络适配器可以允许多个唯一标识符共享单个物理端ロ。在光纤信道中,该能力被称为1端ロ ID虚拟化或NPIV,并且在以太网中适配器可以以被称为混杂模式的模式操作,包括嵌入式虚拟交換机,或过滤和路由针对特定MAC地址寻址的数据以分隔存储器缓冲器。每个网络标识符可能与软件协议栈(414-418)相关联,软件协议栈被配置成格式化信息以使得此信息可以通过网络被发送。在特定的TCP/IP示例中,进程可以通过应用层端ロ绑定到TCP/IP栈的应用层的实例。最后,由协议栈的不同功能处理的信息可以由存在于被称为介质控制层的层中的一组功能来处理,该介质访问控制层负责装配可以通过织物发送的数据的帧(frame)。协议栈的该层将用于虚拟功能的介质访问控制地址添加到在网络上发送出的帧。协议栈然后将装配的帧传递到物理层,物理层被配置成将帧中的信息转 换为电信号并将所述帧发送到网络。输入/输出存储器管理単元426 (I/0-MMU)可以用于将可以执行直接存储器访问操作的I/o互连(比如高速PCI互连)耦合到RAM。在本公开的实施例中,I/0-MMU 426可以包括来自管理程序202的页表,其将来自分区的客户物理地址转换成系统物理地址。I/O-MMU 426以虚线示出,其指示他可以存在于计算机系统400中的多个位置中。例如,I/O-MMU可以是主板上的芯片或逻辑处理器的组件。图5图示了在本公开的ー个实施例中客户物理地址与系统物理地址之间的关系。客户存储器是由管理程序202控制的存储器视图(view)。客户存储器可以被分配给客户操作系统并且由它们的存储器管理器控制。客户物理地址可以由系统物理地址(SPA)支持(back),例如由管理程序202管理的物理计算机系统的存储器。如图所示,在实施例中,GPA和SPA可以被安排为存储器块,例如存储器的ー个或多个页面。GPA与SPA之间的关系可以由影子页表保持,这些页表诸如题为“Enhanced Shadow Page Table Algorithms (增强影子页表算法)”的共同受让的美国专利申请Noll/128,665中所述的页表,该文献的内容通过整体引用合并于此。在操作中,当客户操作系统在GPA块I中存储数据时,该数据实际上可以存储在不同的SPA中,比如系统上的块6。在本公开的实施例中,I/0-MMU 426可以在I/0操作期间执行转换以将存储数据直接从ー个GPA空间移动到另ー个GPA空间。在该实施例中,由于不需要在管理程序指令中运行来实现这些转换,从而可以节省逻辑处理器循环。图6图示了用于描述虚拟存储目标卸载技术的高级操作环境。图6示出经由SR-IOV网络适配器402及其虚拟功能406而与存储虚拟化客户端604通信的虚拟机存储服务602。如图所示,在本公开的该实施例中,SR-IOV网络适配器402可以用于通过绕过(bypassing)软件通信路径而在虚拟机与虚拟机存储服务之间传输I/O。这反过来減少了用于执行用于虚拟机的I/O的CPU循环的量,増加了迁移存储服务602的能力,以及潜在地減少了在父分区中执行的主机操作系统上的负担和/或管理程序202上的负担。虚拟机存储服务602可以被配置成与物理存储设备通信,这些物理存储设备例如是由代表子分区的SAN提供的逻辑单元编号(LUN),所述编号例如可能是已经用其他存储虚拟化技术虚拟化的短剑(dirk)。在一个实例中,这可以包括配置虚拟机存储服务602以从虚拟机接收I/O请求并将它们路由到LUN。在另ー个实例中,其中LUN是次分配的,虚拟机存储服务602可以配置成生成虚拟硬盘驱动器;将它们暴露于虚拟机;以及将它们作为虚拟机硬盘驱动器(VHD)文件存储在LUN上或物理驱动器上。VHD文件表示可以被封装在单个文件内的虚拟机硬盘。虚拟机存储服务602可以解析该文件并将可以被暴露于客户操作系统220的盘实现为好像它是物理存储。由虚拟机存储服务602生成的虚拟硬盘可以被表示给总线,该总线能够以这些虚拟硬盘看起来好像在本地的方式访问客户操作系统。在本公开的ー个实施例中,可以通过将唯一网络标识符附加到虚拟机存储服务602并且例如将用于广告虚拟机存储服务602的存储目标參数配置为数据中心的存储目标,而将虚拟机存储服务602配置成为网络中的存储目标,比如光纤信道目标或互联网小型计算机系统接ロ(iSCSI)目标。在iSCSI示例环境中,虚拟机存储服务602可以通过实现可通过因特网协议访问子分区的LUN来实施iSCSI目标。虚拟机存储客户端604或客户操作系统可以获得虚拟机存储服务602的地址,并且可以设置仿真到SCSI硬盘的连接的连接。虚拟机存储客户端604可以与处理SCSI或硬盘驱动器相同的方式处理虚拟机存储服 务602,并且虚拟机存储服务602可以将虚拟硬盘驱动器提供(serve up)给子分区。在该示例中,虚拟机存储客户端604可以在直接由虚拟机存储服务602提供的虚拟盘上创建并管理的文件系统,而不必加载(mount)远程目录,如在联网文件系统环境中要做的那样。根据客户OS 220的观点,它具有耦合到网络的网络适配器,该网络耦合到以类似于硬盘驱动器的方式运作的一个或多个逻辑単元。图7图示了用于实践本公开的各方面的示例操作环境。类似于图6,ー个或多个SR-IOV网络适配器可以用于在虚拟机与虚拟机存储服务之间传输1/0,从而消除使用软件通信路径发送I/O的需要。这减少了用于执行针对虚拟机的I/O的CPU循环的量,増加了迁移存储服务602的能力,以及潜在地減少主机操作系统上的负担和/或管理程序202上的负担。在该示例环境中,包括两个计算机系统700和702的数据中心被图示为连接到交换机704(尽管示出了两个计算机系统,但是本领域技术人员可以领会数据中心可以具有更多的计算机系统)。计算机系统700和702可以具有类似于图1-4中所述的组件,并且交換机704可以是互连的交換机和路由器的整个基础设施。而且,计算机系统700和702被图示为包括某些特征以更清楚地解释本文所公开的技术,并且本公开不限于在所描绘的拓扑结构中实现。计算机系统700可以包括管理器250,其被配置成根据本文所述的技术迁移存储服务602,从而虚拟机存储服务602以虚线图示以指示它可以从ー个分区迁移到相同或不同计算机系统中的另ー个分区。虚拟功能706和708以虚线示出以指示在某些实施例中虚拟机存储服务602可以直接与SR-IOV适配器402联系,而无须经由虚拟功能访问它。在该示例实施例中,父分区204和712可以控制物理硬件,并且将不需要虚拟功能。继续该图的概述,在本公开的实施例中,虚拟机存储服务602可以通过提取分配给它的唯一标识符并将该标识符连同任何必需的状态信息一起移动到不同的分区来迁移。在一个实例中,该过程可以包括由逻辑处理器运行管理器250提取唯一标识符;由逻辑处理器运行管理器250命令适配器(402或718)将该唯一标识符附加到不同分区中的虚拟功能;以及由逻辑处理器运行管理器250命令虚拟机存储服务602的实例将它自己附加到虚拟功能。在另ー个实例中,该过程可以包括由逻辑处理器运行管理器250提取唯一标识符;由逻辑处理器运行管理器250命令适配器(402或718)将该唯一标识符附加到适配器(402或718);以及由逻辑处理器运行管理器250命令在不同分区中实例化的虚拟机存储服务602的实例使用该唯一标识符在织物上通信。
下文是一系列描绘操作过程的流程图。为了易于理解,这些流程图被组织成使得初始的流程图经由全局“大图”视点呈现实现方式,而后续的流程图提供进ー步的附加物和/或细节。而且,本领域技术人员可以领会,用虚线所描绘的操作被认为是可选的。现在參照图8,它图示了用于实践本公开的各方面的操作过程。如图所示,操作800开始操作过程并且操作802示出了实现可迁移存储服务,其中该可迁移存储服务被配置成管理用于子分区的虚拟硬盘输入/输出请求,其中该可迁移存储服务被分配用于网络的唯一标识符。例如,且转到图6,诸如虚拟机存储服务602之类的可迁移存储服务可以由计算机系统实现。即,指示虚拟机存储服务602的指令可以由逻辑处理器来执行。虚拟机存储服务602被认为是可迁移的,因为它被附属于唯一网络标识符并且可以独自从ー个分区移动到另ー个分区,即不移动其他管理模块。在一个示例实施例中,虚拟机存储服务602可以在网络上专有地使用唯一标识符,例如它可以是使用唯一网络地址在数据中心中通信的唯一进程。在该示例中,虚拟机存储服务602可以被配置成序列化它自己的状态,使得状态信息可以被发送到不同的分区并且被用于配置虚拟机存储服务602的另ー个实例。在另ー个示例实施例中,虚拟机存储服务602可以在附属于虚拟功能的虚拟机中运行。在该示例中,虚拟机存储服务602还可以使用唯一标识符在网络中专有地通信。迁移虚拟机存储服务602可以包括序列化包括虚拟机存储服务602的虚拟机的状态并将其发送到另ー个分区。在特定示例中,且转到图7,虚拟机存储服务602可以从父分区204迁移到子分区246。在该特定示例中,逻辑处理器可以运行管理器250,即逻辑处理器可以运行指示管理器250的指令,并且提取由虚拟机存储服务602用来在数据中心中通信的唯一标识符。然后,该唯一标识符可以被发送到子分区246并且虚拟机存储服务602的实例可被启动。适配器402中的路由表可以被更新并且I/O请求可以被适配器402路由到子分区246而非父分区204。在该示例中,子分区246可被配置成使用除了已经使用的任何其他唯一标识符之外的唯一标识符。继续图8的描述,操作804示出将可迁移存储服务配置为网络中的存储目标。例如,在本公开的ー个示例中,虚拟机存储服务602可被配置成数据中心中的存储目标。类似于上文的描述,虚拟机存储服务602可以附属于网络中的唯一标识符并且被客户OS 220检测为存储目标。可以在客户OS 220与虚拟机存储服务602之间开启通信会话,并且客户OS220可以检测由虚拟机存储服务602暴露的虚拟硬盘驱动器以及使用该虚拟盘,好像它们是本地硬盘驱动器。在特定示例中,虚拟机存储服务602可以仿真如上所述的iSCSI目标。在该示例中,虚拟机存储服务602可以暴露虚拟盘而非物理盘并且通过读取或写入LUN或物理盘来处理来自虚拟机的I/O。转到图9,它图示了图8的操作过程的可替代实施例。操作906示出将可迁移存储服务迁移到远程计算机系统。例如,且转到图6,在一个实施例中,可迁移存储服务(例如虚拟机存储服务602)可以被迁移到数据中心中的远程计算机系统。例如,在一个实施例中,远程计算机系统可以具有比当前托管(host)虚拟机存储服务602的计算机系统更多可用的I/o带宽,并且可以做出移动存储服务602的決定。在该示例中,逻辑处理器可以运行管理器250并且提取分配给存储服务602的唯一标识符且将其发送到远程计算机。随后,远程计算机的管理器250可以将唯一标识符附加到存储服务602的实例。在特定示例中,且转到图7,虚拟机存储服务602可以从子分区246迁移到父分区712。在该特定示例中,计算机系统700的管理器250可以提取附加到虚拟机存储服务602的唯一标识符并将其 发送到计算机系统702。计算机系统702的管理器250可以在逻辑处理器上运行并且将唯一标识符附加到在父分区712中运行的虚拟机存储服务602的实例。在该示例中,虚拟存储服务602在通过使用或不使用虚拟功能708从由子分区246中的虚拟机存储服务602服务的客户发送/接收I/O时,可以使用唯一标识符。在该特定示例中,虚拟机存储服务602的状态信息和协议栈可被发送到计算机系统702,使得I/O服务可是不间断的。例如,可以向计算机系统702发送足够的信息,以允许计算机系统702的管理器250配置协议栈以至少反映计算机系统700的协议栈的功能等效状态。状态信息可以包括要被发送的下一个分组的号、被使用的套接字号、最大缓冲区大小、服务器端口号、客户端端口号等等。状态信息还可以包括诸如更高级别协议信息之类的信息。其他示例可以是涉及所使用的加密协议的信息。在该示例实施例中,针对客户端的服务将不间断地操作,因为根据客户端的观点,连接被暂停而非掉线。例如,当虚拟机存储服务602被迁移时,协议栈可以总结(wrap-up)当前它正在执行的操作(例如通过完成或取消这些操作),并且可选地向绑定到请求协议在短时间段内保持不发送信息的虚拟机存储客户端604的协议发送退后(back off)消息。当计算机系统702上的协议栈被实例化吋,它可以具有与计算机系统700上的协议栈等效的状态,并且可以在网络上与先前与计算机系统700相关联的唯一标识符通信。计算机系统702上的新配置的协议栈可以被配置成可选地发送重新开始(resume)消息,并且服务虚拟机存储客户端604的协议可以重新开始发送I/O。交換机704可以解决路由,使得协议消息被发送到计算机系统702上的虚拟机存储服务602。继续图9的描述,操作908示出配置输入/输出存储器管理単元以将与用于子分区的输入/输出请求相关联的客户物理地址转换成系统物理地址。例如,且參照图7,在本公开的ー个实施例中,计算机系统700的输入/输出存储器管理単元426可以用于将客户物理地址转换成系统物理地址。例如,当客户操作系统220发起I/O操作(例如读或写)吋,客户操作系统220生成涉及可能需要被转换成系统物理地址的客户物理地址的命令。在一个示例实施例中,这些转换可以在I/0-MMU 426而非MMU中发生。通过将存储器转换卸载到I/O-MMU 426,减少了管理程序202和/或父分区204上的负担。例如,客户OS 220可以发布(issue)读操作,其包括读取客户存储器地址的盘偏移量的请求。在该示例中,输入/输出存储器管理単元426可以使用表,该表将子分区248的客户存储器地址映射到系统地址并且将客户存储器地址转换成在物理上支持(back)客户想要读取的客户存储器地址的系统地址。虚拟机存储服务602可以接收请求并获得客户端正在请求的信息并提供包括先前请求的数据的响应信息。该响应可以在如客户存储器地址指定的缓冲区中提供,在此情况下适配器402和I/0-MMU 426可以将所提供的客户存储器地址转换成系统物理地址,并且适配器402然后可以将响应数据从响应缓冲区拷贝到请求缓冲区中以满足客户端的请求。当客户端在与虚拟机存储服务602相同的物理计算机上吋,该技术类似于由外围设备执行的存储器到存储器的直接存储器存取(DMA)操作。在该示例实施例中,I/O操作可以类似于存储器到存储器的DMA操作,因为网络适配器402从系统物理地址的ー个块中检索信息并且代表虚拟机存储客户端604或虚拟机存储服务602将其移动到系统物理地址的另ー个块。ー个特定示例可以包括由虚拟机存储客户端604发布的读操作。在该示例中,虚拟机存储客户端604可以发布指定它想要读到它控制的存储页面中的存储数据的页面的读操作。在该示例中,数据的页面被拷贝到虚拟机存储服务602所使用的页面以满足请求并且然后将该数据拷贝到虚拟机存储客户端604指定的存储器页面中。继续图9的描述,操作910示出从子分区接收输入/输出工作请求,其中子分区被附加到包括用于网络的第二唯一网络标识符的虚拟功能。例如,如图6所示,在一个实施例中,子分区248可以包括虚拟功能406。在该示例中,子分区248可以专有地经由虚拟功能406与SR-IOV适配器402联系并且可以发送I/O请求。适配器402可以确定命令被寻址到与虚拟机存储服务602相关联的唯一标识符,并且可以向它发送该命令。在此情况下,来自子分区248的I/O命令可以被发送到虚拟机存储服务602,而不需要通过管理程序202或通过子分区到子分区通信接ロ来发送请求。而且,适配器402可以使用客户端604和虚拟机 存储服务602的唯一标识符来确定哪些存储器页面要用作缓冲区且因此确定在哪些地址空间之间拷贝数据。在特定示例中,I/O请求可以是指定数据的位置(在客户物理地址中)和数据应当被写入的虚拟硬盘驱动器上的位置的写操作。在该示例中,存储虚拟化客户端604可以将请求置于寻址到虚拟机存储服务602的唯一标识符的ー个或多个信息分组中。在该示例中,适配器402可以接收请求并将其发送到虚拟机存储服务602。适配器402另外可以将数据从子分区客户物理地址移动到分配给虚拟机存储服务602的系统物理地址。S卩,适配器和I/0-MMU 426可以被配置成将发送和接收缓冲区二者从客户物理地址转换成系统物理地址,并且适配器402然后可以在内部依照系统物理地址将数据从内部发送缓冲区拷贝到接收缓冲区。虚拟机存储服务602然后可以将数据存储在与其虚拟硬盘驱动器的实现方式一致的适当的位置。如本领域技术人员可以领会的,这可能涉及使用虚拟硬盘驱动器文件,它可能涉及将数据存储在LUN上,或者它可能多余地涉及用于存储数据的其他技术和位置。继续图9的描述,操作912示出在第一分区中执行可迁移存储服务,在第二分区中执行被配置成管理虚拟机的管理服务,并且其中子分区是第三分区。例如,在一个实施例中,虚拟机存储服务602可以在第一分区(比如子分区246)中执行,父分区204可以运行管理服务,且虚拟机存储客户端604可以在分区248中运行。在该示例实施例中,虚拟机存储服务602在与管理进程分开的分区中。在该配置中,子分区246可以有效地如专用存储分区那样运作,像SAN目标那样。该配置可以减少管理程序202和父分区上的负担。例如,通过分离存储服务与父分区,可以减少操作系统内的锁定。而且,通过以此方式配置计算机系统,可以通过減少需要在分区间发送的消息的数量来減少管理程序调度器上的负担。继续图9的描述,操作914示出将可迁移存储服务与包括唯一网络标识符的网络适配器的虚拟功能相关联,并且将子分区附加到网络适配器的第二虚拟功能。例如,且转到图7,在一个实施例中,虚拟机存储服务602可以与诸如虚拟功能404之类的虚拟功能相关联。在虚拟机存储服务602在子分区246中运行的实例中,虚拟功能404可以被使用,因此它以受控方式访问适配器402,即以确保子分区246中的任何进程不访问其分区之外的数据的方式访问适配器402。此外,虚拟机快照操作可以用于迁移虚拟机存储服务602。继续图9的描述,操作916示出响应于从子分区接收输入/输出工作请求向逻辑处理器发送通知并且确定逻辑处理器正在执行可迁移存储服务。例如,在一个实施例中,当I/O工作需要软件处理时,管理程序202可以接收中断并运行。管理程序202可以识别正在运行的或被调度运行虚拟机存储服务602的逻辑处理器,并且可以通知该逻辑处理器,即通过发送中断或轻量级通知。如果虚拟机存储服务602位于子分区中,则该中断可以被发送到逻辑处理器,而无须唤醒管理分区以服务消息。如果虚拟机存储服务602当前正执行,则到虚拟机存储服务602的上下 文切换将不必发生,中断也不必发生,因为可以改为使用轻量级通知。继续图9的描述,操作918示出确定当输入/输出流量(traffic)在唯一网络标识符与至少ー个其他唯一网络标识符之间经由网络适配器传输时,该输入/输出流量符合(compliant)安全策略。例如,在一个实施例中,适配器402可以包括用于网络流量的安全策略。在该示例实施例中,适配器402可以被配置成确定在虚拟机存储服务602与另ー个唯一标识符(例如附加到虚拟机的ー个标识符)之间发送的输入/输出流量符合该安全策略。在特定示例中,安全策略可能需要加密所有输入/输出流量。在该示例中,适配器402可以被配置成确定到虚拟硬盘驱动器的写入是明文形式还是被加密的。在另ー个示例中,安全策略可能需要虚拟局域网保持完全独立,其中在不同虚拟局域网中的各端点之间不允许有数据流量。现在转到图10,它图示了用于实践本公开的各方面的操作过程,其包括操作1000、1002和1004。操作1000开始该操作过程,且操作1002示出将用于网络适配器的第一唯一网络标识符附加到存储服务,该存储服务被配置成管理虚拟硬盘驱动器磁盘针对子分区的输入/输出请求。例如,且转到图6,在本公开的ー个实施例中,SR-IOV适配器402可以实现多个网络标识符并将它们中的ー个分配给虚拟机存储服务602。在光纤信道示例中,光纤信道主机总线适配器可以使用N_PortID虚拟化或(NPIV)以允许在同一端口上使用多个唯一标识符。在该光纤信道示例中,虚拟机存储服务602可以专有地使用所分配的NPIV地址在织物上通信。继续图10的描述,操作1004示出将由网络适配器实现的虚拟功能附加到子分区,其中该虚拟功能包括第二唯一网络标识符。例如,且再次參照图6,SR-IOV适配器402可以实例化包括唯一网络标识符的虚拟功能406,并将其附加到虚拟机。在该示例实施例中,适配器402被配置成起交換机的作用,其将I/O请求通过适配器路由到存储服务602,绕过管理程序202或単独的分区到分区通信机制。这反过来減少了在逻辑处理器上执行指令以通知和切换分区所用的时间。现在转到图11,它图示了图10的操作过程的可替代实施例,其包括附加操作1106、1108、1110、1112和1114。操作1106示出发送请求以配置第二虚拟功能以包括到包括第二网络适配器的远程计算机系统的第一唯一网络标识符。例如,在一个实施例中,逻辑处理器可以在管理器250中执行指令并且可以生成在远程计算机系统中配置虚拟功能的请求,所述远程计算机系统具有另ー个适配器以包括附加到虚拟机存储服务602的唯一网络标识符。转到图7,在特定示例中,计算机系统700上的管理器250可以将所生成的请求发送到具有适配器718的计算机系统702。在该示例中的请求可以被计算机系统702中的管理器250用来命令它,以实例化虚拟功能710,并使其包括与虚拟机存储服务602的实例相关联的唯一标识符。继续图11的描述,操作1108示出将存储服务迁移到子分区并且配置分配给该子分区的第二虚拟功能以使用第一唯一网络标识符。例如,且转到图7,逻辑处理器可以运行管理器250并且将虚拟机存储服务602从例如父分区204迁移到子分区246。在该示例中,逻辑处理器可以运行管理器250并提取与虚拟机存储服务602相关联的唯一标识符并且将其发送给适配器402。适配器402可以实例化虚拟功能404并将唯一标识符附加到它。随后,管理器250可以将唯一标识符附加到虚拟机存储服务602的实例。在该示例实施例中,虚拟机存储服务602处于与管理进程分开的分区中并且已经有效地变成像iSCSI目标那样运作的专用存储分区。现在转到操作1110,它示出由输入/输出存储器管理单元将与来自子分区的输入/输出请求相关联的客户物理地址转换成系统物理地址。例如,且參照图7,在本公开的ー 个实施例中,计算机系统700的输入/输出存储器管理単元426可以用于将客户物理地址转换成系统物理地址。例如,当客户操作系统220发起I/O操作(例如读或写)吋,客户操作系统220生成涉及客户物理地址的命令。在该示例中,输入/输出存储器管理単元426可以使用将子分区246的客户存储器地址映射到由父分区204使用的系统地址的表。适配器402和IO-MMU 426可以被配置成将发送和接收缓冲区二者从客户物理地址转换成系统物理地址,并且适配器402然后可以将数据从内部发送缓冲区拷贝到内部接收缓冲区,或反之亦然。现在转到操作1112,它示出配置网络适配器以监控当输入/输出流量在唯一网络标识符与第二卩隹一网络标识符之间传输时该输入/输出流量的安全策略合规性(compliance)。例如,在一个实施例中,适配器402可以包括针对网络流量的安全策略。在该示例实施例中,适配器402可以被配置成确定在虚拟机存储服务602与另ー个唯一标识符(例如附加到虚拟机的ー个标识符)之间发送的输入/输出流量符合该安全策略。ー个特定示例可以包括需要某些虚拟机使用某个唯一标识符在网络中发送I/O的安全策略。在该示例中的适配器402可以监控来自虚拟机的信息的分组并确定它们是否符合安全策略。现在转到操作1114,它示出向远程计算机系统发送请求以实例化存储服务并响应于确定已经从远程计算机系统接收了超过预定阈值的输入/输出请求量而向该存储服务分配第一唯一网络标识符。例如,在本公开的ー个实施例中,逻辑处理器可以运行指示管理器250的指令并且发送指引远程计算机系统(比如计算机系统702)实例化虚拟机存储服务602的实例的请求并将其附加到唯一标识符。在监控与到来的I/O请求相关联的唯一标识符并确定已经从计算机系统702接收了超过阈值的多个请求之后,逻辑处理器可以生成该请求。在特定示例中,管理器250可以确定在过去的30分钟已经从当前与计算机系统702相关联的唯一标识符接收60%的I/O请求。在该实例中,管理器250可以确定如果虚拟机存储服务602正在计算机系统702上本地执行并迁移它,则数据中心的性能可以得到提高。现在转到图12,它图示了包括操作1200和1202的操作过程。操作1200开始该操作过程并且操作1202示出在子分区中执行存储服务,其中该存储设备被配置成管理针对第二子分区的虚拟硬盘驱动盘输入/输出请求,其中该存储服务在网络中被分配唯一网络标识符。例如,在一个实施例中,虚拟机存储服务602可以在子分区(例如子分区246)中被实现并且在网络中被分配唯一标识符(例如全球名称)。在该示例中,子分区246可以由管理程序202和/或父分区204控制。在该配置中,子分区246可以有效地变成像iSCSI目标那样运作的专用存储分区。现在转到图13,它图示了图12的操作过程的可替代实施例,其包括操作1304、1306、1308、1310和1312。转到操作1304,它示出向远程计算机系统发送请求以实例化存储服务并响应于确定已经从远程计算机系统接收的超过预定阈值的输入/输出请求量而为该存储服务分配第一唯一网络标识符。例如,在本公开的ー个实施例中,逻辑处理器可以运行指示管理器250的指令并且发送指引远程计算机系统(比如计算机系统702)实例化虚拟机存储服务602的实例的请求,并将其附加到唯一标识符。在监控与到来的I/O请求相关联的唯一标识符以及确定已经从计算机系统702接收了超过阈值的多个请求之后,逻辑处理器可以生成该请求。在特定示例中,管理器250可能已经确定在过去的30分钟从当前与计算机系统702相关联的唯一标识符已经接收了 60%的I/O请求。在该实例中,管理器250可以确定如果虚拟机存储服务602正在计算机系统702上本地执行并迁移它,则数据中心的性能可以得到提高。继续图13的描述,操作1306示出将存储服务迁移到管理程序。例如,且转到图7,在一个实施例中,虚拟机存储服务602可以被迁移到管理程序202。在该示例实施例中,计算机系统702可以具有类似于图3中所描绘的架构,并且可以作出将存储服务602从子分区246移动到管理程序202的決定。在该示例中,逻辑处理器可以运行管理器250并提取与虚拟机存储服务602相关联的唯一标识符,并且管理程序202可以将该标识符附加到虚拟机存储服务602的实例。在一个示例实施例中,由于管理程序202控制硬件,因此它可以被配置成访问适配器402的物理功能。在光纤信道示例的实现方式中,光纤信道主机总线控制器可以使用NPIV以使用唯一标识符经由适配器402发送/接收I/O命令。继续图13的描述,操作1308示出将存储服务迁移到父分区。例如,且转到图7,在一个实施例中,虚拟机存储服务602可以从子分区246迁移到父分区204或712。在该示例中,逻辑处理器可以运行管理器250并提取与虚拟机存储服务602相关联的唯一标识符,以及将其发送到远程计算机或本地计算机系统上的父分区204。随后,该唯一标识符可以被附加到存储服务602的实例。继续图13的描述,操作1310示出将存储服务分配给管理程序。在该示例实施例中,虚拟功能406可以被附加到子分区248并且它可以在网络上具有第二唯一网络标识符。如图所示,在该示例实施例中,子分区246和248 二者可以被附加到相同的SR-IOV适配器402。因此,在该示例实施例中,可以通过SR-IOV适配器402而非经由管理程序202或经由分区到分区通信机制且无须通过交换机704发送I/O来传递I/O请求。继续图13的描述,操作1312示出配置输入/输出存储器管理単元以将与针对子分区的输入/输出请求相关联的客户物理地址转换成系统物理地址。例如,且參照图7,在本公开的ー个实施例中,计算机系统700的输入/输出存储器管理単元426可以被用于将 客户物理地址转换成系统物理地址。例如,当客户操作系统220发起I/O操作(例如读或写)时,客户操作系统220生成涉及客户物理地址的命令。在该示例中,输入/输出存储器管理単元426可以使用将子分区248的客户存储器地址映射到由父分区使用的系统地址的表。适配器402和IO MMU 426可以被配置成将发送和接收缓冲区二者从客户物理地址转换成系统物理地址,并且适配器402然后可以将数据从内部发送缓冲区拷贝到内部接收缓冲区,或反之亦然。
前述具体实施方式
已经经由示例和/或操作图阐述了系统和/或过程的各种实施例。迄今为止,由于这样的框图和/或示例包含一个或多个功能和/或操作,本领域技术人员将会理解这样的框图或示例内的每个功能和/或操作可以通过广泛的硬件、软件、固件或其几乎任何组合单独地和/或共同地实现。尽管本文所描述的本主题的特定方面已被示出和描述,但是本领域技术人员基于本文的教导将会清楚可以在不脱离本文所描述的主题和其更宽泛的方面的情况下作出改变和修改,并且因此所附权利要求将把所有这样的改变和修改包含在它们的范围内,因为所有这样的改变和修改在本文所述主题的真实精神和范围内。
权利要求
1.一种系统,包括 用于实现可迁移存储服务的电路,其中该可迁移存储服务被配置成管理针对子分区的虚拟硬盘输入/输出请求,其中该可迁移存储服务被分配用于网络的唯一网络标识符;以及 用于将该可迁移存储服务配置为网络中的存储目标的电路。
2.权利要求I的系统,进一歩包括 用于将可迁移存储服务迁移到远程计算机系统的电路。
3.权利要求I的系统,进一歩包括 用于配置输入/输出存储器管理単元以将与针对子分区的输入/输出请求相关联的客户物理地址转换成系统物理地址的电路。
4.权利要求I的系统,进一歩包括 用于从子分区接收输入/输出工作请求的电路,其中该子分区被附加到包括用于网络的第二唯一网络标识符的虚拟功能。
5.权利要求I的系统,进一歩包括 用于在第一分区中执行所述可迁移存储服务、在第二分区中执行配置成管理虚拟机的管理服务的电路,并且其中该子分区是第三分区。
6.权利要求I的系统,进一歩包括 用于将可迁移存储服务与包括唯一网络标识符的网络适配器的虚拟功能相关联并且将所述子分区附加到该网络适配器的第二虚拟功能的电路。
7.权利要求I的系统,进一歩包括 用于响应于从子分区接收输入/输出工作请求而向逻辑处理器发送通知并确定逻辑处理器正在执行所述可迁移存储服务的电路。
8.权利要求I的系统,进一歩包括 用于确定当输入/输出流量在所述唯一网络标识符与至少ー个其他唯一网络标识符之间经由网络适配器传输时该输入/输出流量符合安全策略的电路。
9.一种计算机方法,包括 将用于网络适配器的第一唯一网络标识符附加到被配置成管理针对子分区的虚拟硬盘驱动盘输入/输出请求的存储服务;以及 将由网络适配器实现的虚拟功能附加到所述子分区,其中该虚拟功能包括第二唯一网络标识符。
10.权利要求9的计算机方法,进ー步包括 发送配置第二虚拟功能以包括第一网络标识符的请求到包括第二网络适配器的远程计算机系统。
11.权利要求9的计算机方法,进ー步包括 将存储服务迁移到子分区并且配置分配给该子分区的第二虚拟功能以使用第一唯一网络标识符。
12.权利要求9的计算机方法,进ー步包括 由输入/输出存储器管理单元将与来自子分区的输入/输出请求相关联的客户物理地址转换成系统物理地址。
13.权利要求9的计算机方法,进ー步包括 配置网络适配器以当输入/输出流量在所述唯一网络标识符与第二唯一网络标识符之间传输时监控该输入/输出流量的安全策略合规性。
14.权利要求9的计算机方法,进ー步包括向远程计算机系统发送实例化存储服务并响应于确定已经从远程计算机系统接收了超过预定阈值的输入/输出请求量而向该存储服务分配第一唯一网络标识符的请求。
15.权利要求9的计算机方法,进ー步包括 迁移分配存储服务到管理程序并配置第二虚拟功能以使用第一唯一网络标识符。
全文摘要
一种虚拟机存储服务可以使用唯一的网络标识符,以及一种SR-IOV兼容设备可以用于在虚拟机与虚拟机存储服务之间传输I/O。虚拟机存储服务可以被卸载到子分区或与所述唯一网络标识符一起被迁移到另一个物理机器。
文档编号G06F9/44GK102652305SQ201080057757
公开日2012年8月29日 申请日期2010年11月23日 优先权日2009年12月17日
发明者D.L.格林, J.奥欣斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1