虛擬環(huán)境中的遠(yuǎn)程直接存儲(chǔ)器訪問適配器狀態(tài)遷移的制作方法
【專利摘要】在本發(fā)明的實(shí)施例中,一種方法包括在多個(gè)虛擬功能當(dāng)中劃分多個(gè)遠(yuǎn)程直接存儲(chǔ)器訪問上下文對象,在多個(gè)虛擬功能中的第一虛擬功能之間建立遠(yuǎn)程直接存儲(chǔ)器訪問連接,以及將遠(yuǎn)程直接存儲(chǔ)器訪問連接從多個(gè)虛擬功能中的第一虛擬功能遷移到多個(gè)虛擬功能中的第二虛擬功能而不會(huì)從遠(yuǎn)程對等體斷開連接。
【專利說明】虛擬環(huán)境中的遠(yuǎn)程直接存儲(chǔ)器訪問適配器狀態(tài)遷移
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的實(shí)施例涉及虛擬環(huán)境中的RDMA(遠(yuǎn)程直接存儲(chǔ)器訪問)數(shù)據(jù)傳輸。
【背景技術(shù)】
[0002]傳統(tǒng)RDMA允許數(shù)據(jù)從一個(gè)計(jì)算機(jī)系統(tǒng)直接移入另一個(gè)的存儲(chǔ)器中而在數(shù)據(jù)傳輸期間不涉及任一個(gè)的CPU (中央處理單元),特別地,不涉及任一個(gè)的操作系統(tǒng)。這通過消除對在操作系統(tǒng)中的數(shù)據(jù)緩沖器和應(yīng)用存儲(chǔ)器之間復(fù)制數(shù)據(jù)的需要而允許高吞吐量、低等待時(shí)間連網(wǎng)。
[0003]虛擬計(jì)算環(huán)境指的是其中單個(gè)物理機(jī)可被視為多個(gè)虛擬機(jī)并且其中物理硬件資源的集合可被用作多個(gè)虛擬資源的計(jì)算機(jī)系統(tǒng)。每個(gè)虛擬機(jī)(VM)可以運(yùn)行可控制虛擬硬件資源的集合的它自己的操作系統(tǒng)。
【專利附圖】
【附圖說明】
[0004]本發(fā)明的實(shí)施例在附圖的圖形中以示例的方式而非以限制的方式來說明,并且其中相同的附圖標(biāo)記指相似的要素,其中:
[0005]圖1是說明根據(jù)實(shí)施例的支持虛擬環(huán)境的計(jì)算系統(tǒng)的框圖。
[0006]圖2說明了根據(jù)實(shí)施例的系統(tǒng)和遠(yuǎn)程對等體之間的RDMA連接。
[0007]圖3說明了根據(jù)實(shí)施例的用于建立和遷移RDMA連接的方法。
[0008]圖4說明了根據(jù)實(shí)施例的對RDMA上下文對象進(jìn)行劃分。
[0009]圖5說明了其中網(wǎng)絡(luò)適配器包括單板存儲(chǔ)器的實(shí)施例。
【具體實(shí)施方式】
[0010]下面描述的示例僅僅是出于說明性目的的,無論如何不是用來限制本發(fā)明的實(shí)施例的。因此,在詳細(xì)描述示例或者在提供一個(gè)或多個(gè)示例之處,應(yīng)當(dāng)理解示例不應(yīng)被解釋為窮舉的并且本發(fā)明的實(shí)施例不限于所描述和/或所說明的示例。
[0011]圖1說明了支持虛擬環(huán)境的計(jì)算機(jī)系統(tǒng)100。系統(tǒng)100可包括虛擬機(jī)IlOA和110B、虛擬機(jī)監(jiān)視器10、硬件資源110和邏輯130。邏輯130可包括硬件、軟件、或硬件和軟件的組合(例如固件)。例如,邏輯130可包括電路(即一個(gè)或多個(gè)電路),以執(zhí)行本文描述的操作。例如,邏輯130可包括一個(gè)或多個(gè)數(shù)字電路、一個(gè)或多個(gè)模擬電路、一個(gè)或多個(gè)狀態(tài)機(jī)、可編程邏輯、和/或一個(gè)或多個(gè)ASIC(特定用途集成電路)。邏輯130可以是硬連線的,以執(zhí)行一個(gè)或多個(gè)操作。備選地或另外地,邏輯130可以包括在固件中、包括在存儲(chǔ)于存儲(chǔ)器(例如存儲(chǔ)器104)中的機(jī)器可執(zhí)行指令132中,以執(zhí)行這些操作,或者包括在系統(tǒng)100的各種其它部件中。邏輯130可用來通過如本文描述的各種部件執(zhí)行各種功能。
[0012]系統(tǒng)100可包括多個(gè)虛擬機(jī)IlOA和110B。盡管僅示出了兩個(gè),但是系統(tǒng)100可包括比所說明的那些虛擬機(jī)更多或更少的虛擬機(jī)。硬件資源Iio可被虛擬化,意指單個(gè)物理硬件資源Iio可被劃分成多個(gè)虛擬硬件資源以使系統(tǒng)100能夠使用多個(gè)虛擬機(jī)IlOA和IlOB中的單個(gè)物理硬件資源110??梢岳肰MM106實(shí)現(xiàn)虛擬化。在實(shí)施例中,VMM106包括在其中可虛擬化硬件資源110以被在虛擬機(jī)IlOA和IlOB上運(yùn)行的客戶軟件使用的系統(tǒng)100中強(qiáng)制實(shí)行虛擬化層的軟件。
[0013]硬件資源110指與系統(tǒng)110相關(guān)聯(lián)的物理硬件部件,包括但不限于處理器102 (例如CPU (中央處理單元))、主存儲(chǔ)器104、網(wǎng)絡(luò)適配器108、I/O (輸入/輸出)設(shè)備120、和非易失性隨機(jī)訪問存儲(chǔ)器(NVRAM) 122。處理器102、主存儲(chǔ)器104、網(wǎng)絡(luò)適配器108、1/0設(shè)備120和NVRAM122可以包括在一個(gè)或多個(gè)集成電路或者一個(gè)或多個(gè)電路板中,例如系統(tǒng)主板118。備選地,網(wǎng)絡(luò)適配器108和/或I/O設(shè)備120可包括在可被插入電路卡槽的一個(gè)或多個(gè)電路卡中。
[0014]處理器102可包括處理電路以執(zhí)行系統(tǒng)100的計(jì)算任務(wù)。例如,處理器102可包括CPU,例如Intel?Pentium?系列的處理器或者Intel?Core?系列的處理器,它們均來自Intel?公司可在市場上買得到。當(dāng)然,備選地,處理器102可包括另一種類型的處理器,例如由Intel?公司制造的和/或來自Intel?公司可在市場上買到的、或者由除Intel?公司之外的資源制造的和/或來自除Intel?公司之外的資源可在市場上買到的微處理器,而不會(huì)偏離本發(fā)明的實(shí)施例。
[0015]主存儲(chǔ)器104可存儲(chǔ)能夠被執(zhí)行的機(jī)器可執(zhí)行指令132、和/或能夠被邏輯(如邏輯130)和/或處理器(如處理器102)訪問、操作和/或處理的數(shù)據(jù)。程序指令132的執(zhí)行和/或例如通過邏輯130的該數(shù)據(jù)的訪問、操作和/或處理可導(dǎo)致例如系統(tǒng)100和/或邏輯130執(zhí)行本文描述的某些或所有操作。主存儲(chǔ)器104可以例如包括只讀、海量存儲(chǔ)、隨機(jī)訪問計(jì)算機(jī)可訪問存儲(chǔ)器、和/或一種或多種其它類型的機(jī)器可訪問存儲(chǔ)器。這可包括例如DRAM (動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器)或SRAM (靜態(tài)隨機(jī)訪問存儲(chǔ)器),但是本發(fā)明的實(shí)施例不限于此。
[0016]本文所稱的網(wǎng)絡(luò)適配器108涉及可耦合到數(shù)據(jù)傳送介質(zhì)以將數(shù)據(jù)傳送至耦合到數(shù)據(jù)傳送介質(zhì)的其它設(shè)備或從耦合到數(shù)據(jù)傳送介質(zhì)的其它設(shè)備接收數(shù)據(jù)的設(shè)備。例如,網(wǎng)絡(luò)適配器108可設(shè)計(jì)成將數(shù)據(jù)傳送至耦合到網(wǎng)絡(luò)(例如局域網(wǎng))的設(shè)備或從耦合到網(wǎng)絡(luò)(例如局域網(wǎng))的設(shè)備接收數(shù)據(jù)。這樣的網(wǎng)絡(luò)適配器可按照若干數(shù)據(jù)通信格式(例如按照IEEE Std.802.3 (以太網(wǎng))、IEEE Std.802.11、IEEE Std.802.16 的版本的通信格式)、通用串行總線、固件、異步傳輸模式(ATM)、同步光網(wǎng)絡(luò)(SONET)、同步數(shù)字體系(SDH)、互聯(lián)網(wǎng)廣域RDMA協(xié)議(iWARP)、或InfiniBand標(biāo)準(zhǔn)中的任何一種與其它設(shè)備進(jìn)行通信。
[0017]網(wǎng)絡(luò)適配器108可包括單板存儲(chǔ)器,但是還可使用主存儲(chǔ)器104來存儲(chǔ)維持許多RDMA連接的狀態(tài)所必需的RDMA上下文對象。圖5說明了本發(fā)明的實(shí)施例,其中網(wǎng)絡(luò)適配器108包括單板存儲(chǔ)器510,其在一個(gè)實(shí)施例中可以是32KB片上隨機(jī)訪問存儲(chǔ)器(RAM)。單板存儲(chǔ)器510可用于存儲(chǔ)段表520,其中每個(gè)段表?xiàng)l目可用來存儲(chǔ)地址或?qū)χ鞔鎯?chǔ)器104中的頁表530的其它引用。每個(gè)頁表?xiàng)l目可用來存儲(chǔ)地址或?qū)χ鞔鎯?chǔ)器104中4KB頁面540之一的其它引用,其中可存儲(chǔ)上下文對象。備選地,一個(gè)或多個(gè)段表?xiàng)l目可用來存儲(chǔ)地址或?qū)χ鞔鎯?chǔ)器104中一個(gè)或多個(gè)2MB頁面550的其它引用,其中可存儲(chǔ)上下文對象。本發(fā)明的其它實(shí)施例可使用任意種類的存儲(chǔ)器分級體系、頁面或其它存儲(chǔ)器區(qū)域大小、或者存儲(chǔ)器或數(shù)據(jù)結(jié)構(gòu)組織的任何其它方面、以及任何其它布置,用于存儲(chǔ)單板存儲(chǔ)器510中的數(shù)據(jù)結(jié)構(gòu)的一部分和主存儲(chǔ)器104中的一部分。
[0018]此外,網(wǎng)絡(luò)適配器108A可包括索引硬件108A,以維持RDMA上下文對象的分配,如下面進(jìn)一步描述的。索引硬件108A可包括控制和/或計(jì)算電路、存儲(chǔ)元件、和/或任何其它結(jié)構(gòu),以執(zhí)行和/或便于根據(jù)本發(fā)明的實(shí)施例的與RDMA上下文對象有關(guān)的分配、索引、弓丨用、維持和其它功能。
[0019]I/O設(shè)備120可表示任何I/O或外圍設(shè)備和/或用于任何這樣的設(shè)備的控制器或適配器。I/o設(shè)備120可支持I/O虛擬化;例如,I/O設(shè)備120可包括或提供可被VMM控制的一個(gè)或多個(gè)物理功能(每個(gè),“PF”),每個(gè)PF提供了提供一個(gè)或多個(gè)虛擬功能(每個(gè),“VF”)的能力。在系統(tǒng) 100 包括基于 PCI Local Bus Specification, Revision3.0,February3, 2004的PCI (外設(shè)部件互連)總線的實(shí)施例中,I/O虛擬化可基于Single RootI/O Virtualization and Sharing Specification, Revisionl.0, September2007o 可以在本發(fā)明的實(shí)施例中使用這些規(guī)范的其它版本和/或其它規(guī)范以及其它協(xié)議。
[0020]VMM可配置并管理1/0設(shè)備120的物理資源,使得每個(gè)VF可直接被VM控制和/或訪問。因此,被I/o設(shè)備120支持并被分配給虛擬機(jī)的VF可在虛擬機(jī)的控制下在系統(tǒng)100內(nèi)傳輸數(shù)據(jù)、將數(shù)據(jù)傳輸進(jìn)系統(tǒng)100或?qū)?shù)據(jù)傳輸出系統(tǒng)100,而沒有VMM的干涉。此外,網(wǎng)絡(luò)適配器108可支持RDMA能力,使得1/0設(shè)備120的一個(gè)或多個(gè)PF或VF可將主存儲(chǔ)器104之外的數(shù)據(jù)傳輸?shù)较到y(tǒng)100以外的系統(tǒng)或者從系統(tǒng)100以外的系統(tǒng)傳輸進(jìn)主存儲(chǔ)器104、和/或在系統(tǒng)100中的虛擬機(jī)和系統(tǒng)100以外的系統(tǒng)中的虛擬機(jī)之間傳輸,而不涉及處理器102。
[0021]圖2說明了根據(jù)本發(fā)明的實(shí)施例的在系統(tǒng)100和遠(yuǎn)程對等系統(tǒng)290之間的RDMA連接200。在該實(shí)施例中,可以將1/0設(shè)備120的VF202A分配給VM110A。因此,VF202A的設(shè)備驅(qū)動(dòng)器210A可駐留在分配給VM110A的主存儲(chǔ)器104的區(qū)域。設(shè)備驅(qū)動(dòng)器210A可與網(wǎng)絡(luò)適配器108通信以建立系統(tǒng)100和遠(yuǎn)程對等系統(tǒng)290之間的RDMA連接200,如下面進(jìn)一步描述的。RDMA連接200可基于如例如由Infiniband?Architecture (IBA),Volume2, Releasel.2.1, 0ctober2006 或 Remote Direct Data Placement (RDDP), RFC4296,December2005所提出的RDMA協(xié)議??梢栽诒景l(fā)明的實(shí)施例中使用這些規(guī)范的其它版本和/或其它規(guī)范以及其它協(xié)議。
[0022]圖3說明了根據(jù)本發(fā)明的實(shí)施例的用于建立和遷移RDMA連接的方法300,圖4說明了根據(jù)本發(fā)明的實(shí)施例的RDMA上下文對象的劃分。圖3和圖4的描述可以便于引用彼此的要素以及圖1和圖2的要素;然而,本發(fā)明的實(shí)施例不限于所說明或所描述的那些。被認(rèn)為是由軟件204執(zhí)行的方法300的塊可以由在系統(tǒng)100內(nèi)運(yùn)行、執(zhí)行或以其它方式操作的任何軟件或軟件的任何組合來實(shí)現(xiàn),如客戶軟件204A(例如可以是應(yīng)用軟件和/或操作系統(tǒng)軟件)、其它客戶軟件、設(shè)備驅(qū)動(dòng)器210A、用于1/0設(shè)備120的PF的設(shè)備驅(qū)動(dòng)器、VMM106、或者任何其它軟件或軟件的組合。
[0023]在塊310,單板存儲(chǔ)器510可被劃分,使得被網(wǎng)絡(luò)適配器108支持的每個(gè)RDMA上下文對象的存儲(chǔ)器空間被分配給I/o設(shè)備120的特定VF或系統(tǒng)100中的另一特定VF。例如,如圖5所示,可將段表?xiàng)l目522分配給VF202A,使得存儲(chǔ)于主存儲(chǔ)器104上的頁面542中的所有RDMA上下文對象屬于VF202A。分配和/或與分配有關(guān)的信息可存儲(chǔ)在NVRAM122中,其可被重新編程以使得可以時(shí)時(shí)修改分配。[0024]在塊314,通過將一個(gè)或多個(gè)硬件資源分配給特定VF而在VF當(dāng)中劃分與上下文對象有關(guān)的硬件資源。另外或備選地,可以指定一個(gè)或多個(gè)硬件資源在兩個(gè)或更多個(gè)VF之間共享。共享的硬件資源不可被上下文對象引用,因?yàn)樗械纳舷挛膶ο蟊环峙浣o單個(gè)VF。分配和/或與分配有關(guān)的信息可存儲(chǔ)在NVRAM122中,其可被重新編程以使得可以時(shí)時(shí)修改分配。
[0025]在塊318,客戶軟件204A可執(zhí)行導(dǎo)致網(wǎng)絡(luò)適配器108建立RDMA上下文對象(如隊(duì)列對(0?)406、發(fā)送隊(duì)列408八、接收隊(duì)列41(^和完成隊(duì)列4124)的一個(gè)或多個(gè)操作。QP被建立以使得每個(gè)發(fā)送隊(duì)列在遠(yuǎn)程對等體上具有相應(yīng)的接收隊(duì)列。例如,QP406被建立以使得發(fā)送隊(duì)列408A對應(yīng)于遠(yuǎn)程對等體202B上的接收隊(duì)列410B并且遠(yuǎn)程對等體202B上的發(fā)送隊(duì)列408B對應(yīng)于接收隊(duì)列410A。在本發(fā)明的實(shí)施例內(nèi),連同任何數(shù)量的其它RDMA上下文對象,任何數(shù)量的這些上下文對象可用于任何數(shù)量的RDMA連接。
[0026]在塊322,客戶軟件204A可通過生成數(shù)據(jù)傳輸請求來發(fā)起VF202A和任何存儲(chǔ)器、設(shè)備或遠(yuǎn)程對等系統(tǒng)290內(nèi)的其它遠(yuǎn)程對等體202B之間的數(shù)據(jù)傳輸。例如,客戶軟件204A可生成發(fā)送請求414A,并將發(fā)送請求414A傳遞至發(fā)送隊(duì)列408A。發(fā)送請求414A可包括關(guān)于數(shù)據(jù)傳輸?shù)男畔?,如存?chǔ)器、存儲(chǔ)器映射的I/O、或?qū)⒁『?或存儲(chǔ)數(shù)據(jù)的其它地址、請求類型(例如SEND)和數(shù)據(jù)傳輸?shù)拈L度??缮珊蛡鬟f任何數(shù)量的請求。
[0027]在塊326,從VF202A到遠(yuǎn)程對等體202B的數(shù)據(jù)傳輸可以例如通過開始發(fā)送請求414A中的信息指定的數(shù)據(jù)傳輸而開始。
[0028]在塊330,例如通過保持上下文對象的索引列表和它們到特定VF的分配來維持所有上下文對象到特定VF的分配。例如,在具有共享和未共享資源的實(shí)施例中,與沒有被共享或劃分的資源有關(guān)的上下文對象開始于零索引(例如,每個(gè)VF可具有帶零索引的QP)。然而,對于與被共享或劃分的資源有關(guān)的上下文對象來說,功能、對象類型和對象索引的組合可用來尋址主存儲(chǔ)器,其中索引硬件108A執(zhí)行翻譯或其它計(jì)算以對軟件204維持基于零的索引正被使用的呈現(xiàn)。例如,特定上下文對象可以對軟件204呈現(xiàn)具有零索引,但是實(shí)際的非零索引可由索引硬件108A基于VF的非零索引編號來確定,其中每個(gè)VF的每個(gè)非零索引編號可基于一個(gè)或多個(gè)VF的條目數(shù)。執(zhí)行塊330,以使得用來存儲(chǔ)上下文對象的主存儲(chǔ)器104的頁面或其它區(qū)域不在不同VF之間共享。
[0029]在塊334,確定從VF202A到VF202C遷移RDMA連接200??苫趹?yīng)用需求、負(fù)載平衡或任何其它理由來期望遷移。
[0030]VF202C可以是I/O設(shè)備120的VF或者系統(tǒng)100或另一系統(tǒng)內(nèi)的任何其它I/O設(shè)備的VF,和/或可以被分配給VMl IOA或者系統(tǒng)100或另一系統(tǒng)內(nèi)的任何其它VM。盡管VF202C示出為在系統(tǒng)100內(nèi),但是VF202C可以在另一系統(tǒng)中。
[0031]此外,VF202C可使用網(wǎng)絡(luò)適配器108 (例如,VF202A和VF202C使用同一適配器上的不同端口 )或者系統(tǒng)100或任何其它系統(tǒng)內(nèi)的任何其它網(wǎng)絡(luò)適配器,以使得RDMA連接200的遷移可包括或不包括從網(wǎng)絡(luò)適配器108到根據(jù)本發(fā)明的實(shí)施例操作的系統(tǒng)100或另一系統(tǒng)內(nèi)的任何其它網(wǎng)絡(luò)適配器的遷移。 [0032]在塊338,在VF202C和它的網(wǎng)絡(luò)適配器上執(zhí)行檢查,以確定是否有足夠的資源可用于遷移。
[0033]在塊342,停止通過RDMA連接200的輸入和輸出分組的流??梢詠G棄輸入分組,但是可根據(jù)任何已知的技術(shù)來檢測和處理這些分組的丟棄??梢詫⑤敵龇纸M刷新至網(wǎng)絡(luò)。
[0034]在塊346,可以將與VF202A和/或VMllOA有關(guān)的任何狀態(tài)從網(wǎng)絡(luò)適配器108刷新至主存儲(chǔ)器104。
[0035]在塊350,可以為VF202C的上下文對象分配存儲(chǔ)器空間。在其中VF202C位于系統(tǒng)100中的實(shí)施例中,可以在主存儲(chǔ)器104內(nèi)分配存儲(chǔ)器空間。在另一實(shí)施例中,可以在另一系統(tǒng)的主存儲(chǔ)器內(nèi)分配存儲(chǔ)器空間。
[0036]在塊354,利用CPU復(fù)制、DMA、RDMA或任何已知的技術(shù)將用于先前分配給VF202A的上下文對象的主存儲(chǔ)器104的內(nèi)容復(fù)制到被分配用于VF202C的上下文對象的主存儲(chǔ)器空間。因此,從VF202A到VF202C的上下文對象的重分配對客戶軟件204A或任何其它操作系統(tǒng)、應(yīng)用軟件、或代表系統(tǒng)100或遠(yuǎn)程對等系統(tǒng)290的用戶執(zhí)行的其它軟件來說可以是透明的。
[0037]在塊360,可將對RDMA連接200來說必要或有用的參數(shù)(例如局域網(wǎng)地址和網(wǎng)絡(luò)路由配置信息)傳輸?shù)絍F202C的設(shè)備驅(qū)動(dòng)器210C。
[0038]在塊364,分配給VF202C的主存儲(chǔ)器空間與VF202C相關(guān)聯(lián)。
[0039]在塊368,繼續(xù)現(xiàn)在在VF202C和遠(yuǎn)程對等體202B之間通過RDMA連接200的分組的流。
[0040]方法300可包括所期望的任何附加操作,如涉及已知RDMA技術(shù)的那些。此外,可以在本發(fā)明的范圍內(nèi)省略和/或重排序方法300中示出的塊。
[0041]在前述的說明中,已經(jīng)參考了其中的特定實(shí)施例來描述本發(fā)明。然而,很顯然可以對這些實(shí)施例進(jìn)行各種修改和變化而不會(huì)由此偏離。本說明書和附圖因此被認(rèn)為是說明性的而不是限制性的意義。
【權(quán)利要求】
1.一種方法,包括: 在多個(gè)虛擬功能中劃分多個(gè)遠(yuǎn)程直接存儲(chǔ)器訪問上下文對象; 利用網(wǎng)絡(luò)適配器在所述多個(gè)虛擬功能中的第一虛擬功能和遠(yuǎn)程對等體之間建立遠(yuǎn)程直接存儲(chǔ)器訪問連接;以及 將所述遠(yuǎn)程直接存儲(chǔ)器訪問連接從所述多個(gè)虛擬功能中的第一虛擬功能遷移到所述多個(gè)虛擬功能中的第二虛擬功能而不會(huì)從所述遠(yuǎn)程對等體斷開連接。
2.根據(jù)權(quán)利要求1所述的方法,還包括劃分與所述多個(gè)虛擬功能中的多個(gè)遠(yuǎn)程直接存儲(chǔ)器訪問上下文對象有關(guān)的多個(gè)硬件資源。
3.根據(jù)權(quán)利要求1所述的方法,其中劃分所述多個(gè)遠(yuǎn)程直接存儲(chǔ)器訪問上下文對象包括將存儲(chǔ)器空間劃分成多個(gè)區(qū)域,每個(gè)區(qū)域?qū)⒈环峙浣o所述多個(gè)虛擬功能中的其中之一,用于存儲(chǔ)所述多個(gè)遠(yuǎn)程直接存儲(chǔ)器訪問上下文對象的一部分。
4.根據(jù)權(quán)利要求3所述的方法,還包括將段表存儲(chǔ)在所述網(wǎng)絡(luò)適配器中的段表空間中。
5.根據(jù)權(quán)利要求4所述的方法,還包括將所述多個(gè)遠(yuǎn)程直接存儲(chǔ)器訪問上下文對象存儲(chǔ)在第一主存儲(chǔ)器中,每一個(gè)位于被所述段表中的條目引用的位置。
6.根據(jù)權(quán)利要 求5所述的方法,還包括將所述段表中的每個(gè)條目分配給所述多個(gè)虛擬功能中的其中之一。
7.根據(jù)權(quán)利要求6所述的方法,還包括為所述多個(gè)虛擬功能中的第一虛擬功能分配所述第一主存儲(chǔ)器中的第一空間。
8.根據(jù)權(quán)利要求7所述的方法,還包括將所述多個(gè)遠(yuǎn)程直接存儲(chǔ)器訪問上下文對象中的第一遠(yuǎn)程直接存儲(chǔ)器訪問上下文對象存儲(chǔ)在所述第一空間中。
9.根據(jù)權(quán)利要求8所述的方法,還包括在所述第一主存儲(chǔ)器和第二主存儲(chǔ)器的其中之一中為所述多個(gè)虛擬功能中的第二虛擬功能分配第二空間。
10.根據(jù)權(quán)利要求9所述的方法,其中遷移包括將所述第一空間的內(nèi)容復(fù)制到所述第二空間。
11.一種系統(tǒng),包括: 輸入/輸出設(shè)備,所述輸入/輸出設(shè)備包括多個(gè)虛擬功能中的第一虛擬功能;以及 網(wǎng)絡(luò)適配器,所述網(wǎng)絡(luò)適配器在所述第一虛擬功能和遠(yuǎn)程對等體之間建立遠(yuǎn)程直接存儲(chǔ)器訪問連接并且將所述遠(yuǎn)程直接存儲(chǔ)器訪問連接從所述第一虛擬功能遷移至第二虛擬功能而不會(huì)從第一對等體斷開連接。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),還包括主存儲(chǔ)器,以存儲(chǔ)將要在所述多個(gè)虛擬功能中被劃分的多個(gè)遠(yuǎn)程直接存儲(chǔ)器訪問上下文對象。
13.根據(jù)權(quán)利要求11所述的系統(tǒng),還包括與將要在所述多個(gè)虛擬功能中被劃分的多個(gè)遠(yuǎn)程直接存儲(chǔ)器訪問上下文對象有關(guān)的多個(gè)硬件資源。
14.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述網(wǎng)絡(luò)適配器包括將要在所述多個(gè)虛擬功能中被劃分的段表存儲(chǔ)器空間。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其中所述段表將要存儲(chǔ)多個(gè)段表?xiàng)l目,每個(gè)段表?xiàng)l目指所述主存儲(chǔ)器中的多個(gè)位置的其中之一,每個(gè)位置存儲(chǔ)所述遠(yuǎn)程直接存儲(chǔ)器訪問上下文對象中的至少一個(gè)。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述網(wǎng)絡(luò)適配器將要把所述多個(gè)位置中的第一位置的內(nèi)容復(fù)制到所述多個(gè)位置中的第二位置,所述多個(gè)位置中的第一位置被分配給所述第一虛擬功能并且所述多個(gè)位置中的第二位置被分配給所述第二虛擬功能。
17.一種裝置,包括: 網(wǎng)絡(luò)適配器,所述網(wǎng)絡(luò)適配器在多個(gè)虛擬功能中的第一虛擬功能與遠(yuǎn)程對等體之間建立遠(yuǎn)程直接存儲(chǔ)器訪問連接并且將所述遠(yuǎn)程直接存儲(chǔ)器訪問連接從所述第一虛擬功能遷移至第二虛擬功能而不會(huì)從第一對等體斷開連接;以及 單板存儲(chǔ)器,所述單板存儲(chǔ)器存儲(chǔ)將要在所述多個(gè)虛擬功能中被劃分的段表。
18.根據(jù)權(quán)利要求17所述的裝置,其中所述段表將存儲(chǔ)多個(gè)段表?xiàng)l目,每個(gè)段表?xiàng)l目指主存儲(chǔ)器中的多個(gè)位置的其中之一,每個(gè)位置存儲(chǔ)多個(gè)遠(yuǎn)程直接存儲(chǔ)器訪問上下文對象中的至少一個(gè)。
19.根據(jù)權(quán)利要求18所述的裝置,其中所述網(wǎng)絡(luò)適配器還將要把所述多個(gè)位置中的第一位置的內(nèi)容復(fù)制到所述多個(gè) 位置中的第二位置,所述多個(gè)位置中的第一位置被分配給所述第一虛擬功能并且所述多個(gè)位置中的第二位置被分配給所述第二虛擬功能。
20.根據(jù)權(quán)利要求18所述的裝置,還包括與將要在所述多個(gè)虛擬功能中被劃分的多個(gè)遠(yuǎn)程直接存儲(chǔ)器訪問上下文對象有關(guān)的多個(gè)硬件資源。
【文檔編號】G06F9/06GK104011695SQ201280054000
【公開日】2014年8月27日 申請日期:2012年10月8日 優(yōu)先權(quán)日:2011年10月31日
【發(fā)明者】R·O·夏普, K·G·基爾斯 申請人:英特爾公司