两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

用于支持無(wú)限帶網(wǎng)絡(luò)中的虛擬機(jī)的動(dòng)態(tài)遷移的系統(tǒng)和方法

文檔序號(hào):6532964閱讀:306來(lái)源:國(guó)知局
用于支持無(wú)限帶網(wǎng)絡(luò)中的虛擬機(jī)的動(dòng)態(tài)遷移的系統(tǒng)和方法
【專利摘要】一種系統(tǒng)和方法可以支持在網(wǎng)絡(luò)中的虛擬機(jī)動(dòng)態(tài)遷移。多個(gè)主機(jī)可以經(jīng)由網(wǎng)絡(luò)互連。每個(gè)主機(jī)包含一個(gè)或多個(gè)虛擬機(jī)。至少一個(gè)虛擬機(jī)操作來(lái)執(zhí)行從第一主機(jī)到第二主機(jī)的動(dòng)態(tài)遷移。附接到隊(duì)列對(duì)(QP)的虛擬功能可以由主機(jī)上的主機(jī)信道適配器(HCA)支持。
【專利說(shuō)明】用于支持無(wú)限帶網(wǎng)絡(luò)中的虛擬機(jī)的動(dòng)態(tài)遷移的系統(tǒng)和方法
[0001] 版權(quán)通知
[0002] 本專利文件的公開的一部分包含受版權(quán)保護(hù)的材料。版權(quán)所有者不反對(duì)任何人對(duì) 專利文件或?qū)@_的傳真復(fù)制,因?yàn)樗霈F(xiàn)在專利商標(biāo)局專利文檔或記錄中,但在別的 方面保留所有任何版權(quán)。

【技術(shù)領(lǐng)域】
[0003] 本發(fā)明一般涉及計(jì)算機(jī)系統(tǒng),并且具體地涉及支持計(jì)算機(jī)系統(tǒng)虛擬化。

【背景技術(shù)】
[0004] 隨著引入大型云計(jì)算架構(gòu),與傳統(tǒng)網(wǎng)絡(luò)和存儲(chǔ)相關(guān)聯(lián)的執(zhí)行和管理瓶頸已經(jīng)變?yōu)?顯著問題。無(wú)限帶(IB)技術(shù)已被視為增加的部署作為用于云計(jì)算結(jié)構(gòu)的基礎(chǔ)。這是本發(fā) 明的實(shí)施例意欲解決的一般領(lǐng)域。


【發(fā)明內(nèi)容】

[0005] 這里描述的是用于支持網(wǎng)絡(luò)中的虛擬機(jī)動(dòng)態(tài)遷移的系統(tǒng)和方法。多個(gè)主機(jī)可以經(jīng) 由網(wǎng)絡(luò)互連。每個(gè)主機(jī)包含一個(gè)或多個(gè)虛擬機(jī)。至少一個(gè)虛擬機(jī)操作來(lái)執(zhí)行從第一主機(jī) 到第二主機(jī)的動(dòng)態(tài)遷移。連接到隊(duì)列對(duì)(QP)的虛擬功能可以由主機(jī)上的主機(jī)信道適配器 (HCA)支持。

【專利附圖】

【附圖說(shuō)明】
[0006] 圖1示出根據(jù)本發(fā)明的實(shí)施例的在虛擬化環(huán)境中虛擬機(jī)的動(dòng)態(tài)遷移的例示。
[0007] 圖2示出了根據(jù)本發(fā)明的實(shí)施例的用于支持在虛擬化環(huán)境中虛擬機(jī)的動(dòng)態(tài)遷移 的示范性流程圖。
[0008] 圖3示出根據(jù)本發(fā)明的實(shí)施例的進(jìn)程ID(PID)到隊(duì)列對(duì)數(shù)(QPN)的轉(zhuǎn)換表的例 /_J、1 〇
[0009] 圖4示出了根據(jù)本發(fā)明的實(shí)施例的重新分配位置相關(guān)通信資源的例示。
[0010] 圖5示出根據(jù)本發(fā)明的實(shí)施例的利用確定性狀態(tài)來(lái)暫停并重新開始隊(duì)列對(duì)(QP) 的例示。
[0011] 圖6示出根據(jù)本發(fā)明的實(shí)施例的利用自下向上方法的虛擬機(jī)的動(dòng)態(tài)遷移的例示。
[0012] 圖7示出根據(jù)本發(fā)明的實(shí)施例的在遷移之后重新激活虛擬機(jī)的例示。
[0013] 圖8示出根據(jù)本發(fā)明的實(shí)施例的在虛擬機(jī)的動(dòng)態(tài)遷移之前兩個(gè)隊(duì)列對(duì)(QP)的例 /_J、1 〇
[0014] 圖9示出根據(jù)本發(fā)明的實(shí)施例的在虛擬機(jī)的動(dòng)態(tài)遷移之后通信中的兩個(gè)隊(duì)列對(duì) (QP)的例示。

【具體實(shí)施方式】
[0015] 本發(fā)明通過(guò)示例方式而不是通過(guò)限制方式來(lái)在附圖的圖示中示出,其中相似的參 考指示相似的元件。應(yīng)當(dāng)注意,在此公開中的參考"一"或"一個(gè)"實(shí)施例或"一些"實(shí)施例 不一定是指相同的實(shí)施例,并且此類參考意味著至少一個(gè)。
[0016] 下述發(fā)明的描述使用無(wú)限帶(IB)網(wǎng)絡(luò)作為高性能網(wǎng)絡(luò)的示例。對(duì)本領(lǐng)域技術(shù)人 員來(lái)說(shuō),顯而易見可以無(wú)限制地使用其它類型的高性能網(wǎng)絡(luò)。同樣,下述發(fā)明的描述使用 Xen虛擬化模型作為虛擬化模型的示例。對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō),顯而易見可以無(wú)限制地使 用其它類型的虛擬化模型。
[0017] 這里描述的是可以支持網(wǎng)絡(luò)中虛擬機(jī)(VM)動(dòng)態(tài)遷移的系統(tǒng)和方法。
[0018] 根據(jù)本發(fā)明的實(shí)施例,虛擬化可以有益于在云計(jì)算中高效的資源利用和彈性的資 源分配。動(dòng)態(tài)遷移可以通過(guò)以應(yīng)用透明的方式在物理服務(wù)器之間移動(dòng)虛擬機(jī)(VM)來(lái)優(yōu)化 資源使用。因此,虛擬化可以實(shí)現(xiàn)資源的強(qiáng)化、按需提供、和通過(guò)動(dòng)態(tài)遷移的彈性。
[0019] 無(wú)限帶(IB)架構(gòu)
[0020] IB架構(gòu)是串行點(diǎn)對(duì)點(diǎn)全雙工技術(shù)。IB網(wǎng)絡(luò)可以被稱為子網(wǎng),其中子網(wǎng)由利用交換 機(jī)和點(diǎn)到點(diǎn)鏈路互連的一組主機(jī)構(gòu)成。IB子網(wǎng)可以包括至少一個(gè)子網(wǎng)管理器(SM),其負(fù)責(zé) 初始化和提出網(wǎng)絡(luò),包括子網(wǎng)中的所有交換機(jī)、路由器和主機(jī)信道適配器(HCA)的配置。
[0021] IB支持豐富的傳輸服務(wù)集合,以便提供遠(yuǎn)程直接存儲(chǔ)器存?。≧DMA)和傳統(tǒng)的發(fā) 送/接收語(yǔ)義。獨(dú)立于使用的傳輸服務(wù),IB HCA利用隊(duì)列對(duì)(QP)進(jìn)行通信。QP在通信建立 期間創(chuàng)建,并且可以具有諸如QP號(hào)碼、HCA端口、目的地LID、隊(duì)列大小、和提供的傳輸服務(wù) 之類的初始屬性集合。HCA可以處理許多QP,每個(gè)QP由一對(duì)隊(duì)列構(gòu)成,諸如發(fā)送隊(duì)列(SQ) 和接收隊(duì)列(RQ),并且存在一個(gè)這樣的對(duì)呈現(xiàn)在參與通信的每個(gè)終端節(jié)點(diǎn)處。發(fā)送隊(duì)列保 存要被傳送到遠(yuǎn)程節(jié)點(diǎn)的工作請(qǐng)求,而接收隊(duì)列保存關(guān)于對(duì)從遠(yuǎn)程節(jié)點(diǎn)接收的數(shù)據(jù)做什么 的信息。除了 QP之外,每個(gè)HCA具有與發(fā)送和接收隊(duì)列的集合相關(guān)聯(lián)的一個(gè)或多個(gè)完成隊(duì) 列(CQ)。CQ保存用于發(fā)布給發(fā)送和接收隊(duì)列的工作請(qǐng)求的完成通知。即使通信的復(fù)雜度 對(duì)用戶隱藏,QP狀態(tài)信息也被保存在HCA中。
[0022] 輸入/輸出(I/O)虛擬化
[0023] I/O虛擬化(I0V)可以通過(guò)允許VM訪問下層物理資源提供I/O的可用性。存儲(chǔ)業(yè) 務(wù)和服務(wù)器間通信的組合施加增加的負(fù)載,可能壓垮單個(gè)服務(wù)器的I/O資源,在它們等待 數(shù)據(jù)時(shí)導(dǎo)致積壓和空閑的處理器。隨著I/O請(qǐng)求的號(hào)碼增加,I0V可以提供可用性;并且可 以改善(虛擬化的)I/O資源的性能、可分級(jí)性和靈活性以匹配在現(xiàn)代CPU虛擬化中看到的 性能水平。
[0024] 可以存在不同類型I0V技術(shù),諸如仿真、半虛擬化、直接分配(DA)、和單一根-I/O 虛擬化(SR-I0V)。在這些I0V技術(shù)當(dāng)中,SR-I0V可以擴(kuò)展快速PCI(PCIe)規(guī)范,意味著允 許從多個(gè)VM直接存取單個(gè)物理設(shè)備同時(shí)維持接近固有性能。因此,SR-I0V可以提供良好 性能和可分級(jí)性。
[0025] SR-I0V允許PCIe設(shè)備暴露可以通過(guò)將一個(gè)虛擬設(shè)備分配到每個(gè)訪客在多個(gè)訪客 之間共享的多個(gè)虛擬設(shè)備。每個(gè)SR-I0V設(shè)備具有至少一個(gè)物理功能(PF)和一個(gè)或多個(gè)關(guān) 聯(lián)的虛擬功能(VF)。PF是由虛擬機(jī)監(jiān)控器(VMM)、或超控制器控制的正常PCIe功能,而VF 是輕型PCIe功能。每個(gè)VF具有它自己的基局部址(BAR)并且被分配有使得I/O存儲(chǔ)器管 理單元(I0MMU)在業(yè)務(wù)流與不同的VF之間進(jìn)行區(qū)分的唯一的請(qǐng)求者ID。I0MMU也在PF與 VF之間應(yīng)用存儲(chǔ)器和中斷轉(zhuǎn)換。
[0026] 可以存在不同類型的SR-I0V模型,例如共享端口模型和虛擬交換機(jī)模型。在共享 端口模型中,所有VF可以共享單個(gè)端口地址和單個(gè)QP名稱空間,并且僅僅單個(gè)HCA端口暴 露于網(wǎng)絡(luò)。在虛擬交換機(jī)模型中,每個(gè)VF是包含唯一端口地址和唯一 QP名稱空間的虛擬 HCA,并且用于設(shè)備上的每個(gè)VF的一個(gè)HCA暴露于網(wǎng)絡(luò)。因此,虛擬交換機(jī)模型可以簡(jiǎn)化具 有多個(gè)復(fù)雜硬件的I0V。
[0027] SR-I0V能力設(shè)備的使用可以輸出接近固有的性能和改善的可分級(jí)性。另一方面, SR-10V可以不是與動(dòng)態(tài)遷移和檢查點(diǎn)/重新開始機(jī)制完全不兼容的。
[0028] 動(dòng)態(tài)遷移
[0029] 根據(jù)本發(fā)明的實(shí)施例,虛擬化環(huán)境允許虛擬機(jī)的動(dòng)態(tài)遷移,即在不干擾運(yùn)行在VM 上的應(yīng)用的情況下將運(yùn)行的VM從一個(gè)機(jī)器移動(dòng)到另一個(gè)機(jī)器。
[0030] 圖1示出根據(jù)本發(fā)明的實(shí)施例的在虛擬化環(huán)境中虛擬機(jī)的動(dòng)態(tài)遷移的例示。如圖 1所示,多個(gè)主機(jī),例如主機(jī)A-B 101-102,可以經(jīng)由IB網(wǎng)絡(luò)100互連。VM,例如VMa 103可 以從例如主機(jī)A 101的主機(jī)遷移到例如主機(jī)B 102 (如VMa 104)的另一個(gè)主機(jī)。
[0031] 還如圖1所示,每個(gè)主機(jī)可以包括使用HCA的VMM。例如,主機(jī)A 101中的VMM A 115使用HCA 117并且主機(jī)B 102中的VMM B 116使用HCA 118。另外,VMa 103可以與VF, 例如VF 105連接VF連接到隊(duì)列對(duì),例如QPa 107。
[0032] 從VMM角度,三階段遷移進(jìn)程可以被執(zhí)行以將與VF 105連接的VMa 103從主機(jī)A 101遷移到主機(jī)B 102。
[0033] 階段 1 :將 VF 105 從 VMa 103 分離。
[0034] 階段2 :將VMa 103從主機(jī)A 101遷移到主機(jī)B 102 (如VMal04)。
[0035] 階段3 :將新的VF 106連接到VMa 104。
[0036] 利用Xen虛擬化模型,每個(gè)主機(jī)可以包括特許域和包括一個(gè)或多個(gè)訪客VM的訪客 域。例如,主機(jī)A 101可以包括特權(quán)域,DomOlll,和訪客域,DomU 113,并且主機(jī)B 102可 以包括特權(quán)域,Dom0112,和訪客域,Dom U 114。
[0037] 如圖1所示,特權(quán)域,DomOlll,可以生成對(duì)訪客域DomU 113的虛擬中斷,以用于通 過(guò)卸載它的設(shè)備驅(qū)動(dòng)器來(lái)分離VF 105。例如,由超控制器支持以斷開PCle設(shè)備的熱插拔機(jī) 制可以用于分離VF105。
[0038] 根據(jù)本發(fā)明的實(shí)施例,系統(tǒng)可以使用PID-QPN轉(zhuǎn)換表以用于從VMa 103分離VF 105。當(dāng)QPa 107被創(chuàng)建時(shí),用戶應(yīng)用110的PID可以被登記在PID-QPN轉(zhuǎn)換表中,該表駐留 在VMa 103的內(nèi)核空間中。然后,基于可以是圖3所示的PID-QPN轉(zhuǎn)換表,在例如QPa 107 的有效QP存在并且連接到VF105時(shí)的情況中,VF 105可以被成功地分離。此外,VF 106,其 包含新的虛擬全球唯一標(biāo)識(shí)符(v⑶ID)和新的局部標(biāo)識(shí)符(LID),在VMa 103從主機(jī)A 101 遷移到主機(jī)B104(如VMa 104)之后,可以附接于VMa 104。
[0039] 在IB網(wǎng)絡(luò)中,QP資源可以由硬件直接管理,并且僅僅可以由軟件通過(guò)不透明的處 理訪問。因此,當(dāng)VF 106附接于VMa 104時(shí),用戶應(yīng)用可以具有指向QPa 107的無(wú)效不透 明處理。這是因?yàn)橛糜谟捎脩暨M(jìn)程固定的物理存儲(chǔ)器的虛擬地址已經(jīng)變化并且在存儲(chǔ)器登 記期間創(chuàng)建的不透明處理可以變得無(wú)效。
[0040] 根據(jù)本發(fā)明的實(shí)施例,轉(zhuǎn)換機(jī)制可以用于處理用于QP的位置相關(guān)資源。每個(gè)QP 上下文包含與HCA和主機(jī)相關(guān)聯(lián)的位置相關(guān)屬性。利用轉(zhuǎn)換機(jī)制,這些位置相關(guān)屬性可以 在遷移之后被再創(chuàng)建。此外,為了維持應(yīng)用透明性,在用戶進(jìn)程中的虛擬地址可以在遷移之 后被重新分配以便讓他們固定到新位置處的正確的物理存儲(chǔ)器。
[0041] 另外,IB網(wǎng)絡(luò)可以在VM的動(dòng)態(tài)遷移之前和之后使用用于暫停和重新開始QP的確 定性狀態(tài)。此確定性狀態(tài)可以用于在兩個(gè)不同物理設(shè)備之間遷移QP狀態(tài)并且阻止可以引 起可以是無(wú)損網(wǎng)絡(luò)的IB網(wǎng)絡(luò)100中的致命錯(cuò)誤的任何丟失的分組或亂序分組。然后,在遷 移時(shí),遷移VMa 103可以遷移還沒有被通過(guò)線路轉(zhuǎn)移的每個(gè)QP中未完成的分組。
[0042] 圖2示出了根據(jù)本發(fā)明的實(shí)施例的用于支持在虛擬化環(huán)境中虛擬機(jī)的動(dòng)態(tài)遷移 的示范性流程圖。如圖2所示,在步驟201處,包含一個(gè)或多個(gè)虛擬機(jī)的多個(gè)主機(jī)經(jīng)由網(wǎng)絡(luò) 互連。然后,在步驟202處,至少一個(gè)虛擬機(jī)連接到與隊(duì)列對(duì)(QP)相關(guān)聯(lián)的虛擬功能,其中 QP由主機(jī)上的主機(jī)信道適配器(HCA)支持。此外,在步驟203處,所述至少一個(gè)虛擬機(jī)可以 執(zhí)行從第一主機(jī)到第二主機(jī)的動(dòng)態(tài)遷移。
[0043] 進(jìn)程ID(PID)到隊(duì)列對(duì)號(hào)碼(QPN)的轉(zhuǎn)換表
[0044] 圖3示出根據(jù)本發(fā)明的實(shí)施例進(jìn)程ID(PID)到隊(duì)列對(duì)號(hào)碼(QPN)的轉(zhuǎn)換表的例 示。如圖3所示,虛擬機(jī)(VM)環(huán)境300可以包括內(nèi)核空間301和用戶空間302。
[0045] 用戶空間302可以包括一個(gè)或多個(gè)用戶進(jìn)程,例如用戶進(jìn)程A-C311-313,每個(gè)可 以被分配有進(jìn)程ID(PID)。例如,進(jìn)程ID(PID)321可以分配給用戶進(jìn)程A 311。
[0046] 此外,每個(gè)用戶進(jìn)程A-C 311-313,可以使用一個(gè)或多個(gè)隊(duì)列對(duì)(QP)以與系統(tǒng)中 的其它進(jìn)程進(jìn)行通信。例如,用戶進(jìn)程A 311可以使用QPa 322,其與隊(duì)列對(duì)號(hào)碼(QPN) 332 相關(guān)聯(lián)。
[0047] 為了在虛擬機(jī)300的動(dòng)態(tài)遷移之前和之后識(shí)別正確的用戶進(jìn)程,內(nèi)核空間301可 以維護(hù)使得用于虛擬機(jī)300的QP和使用QP的不同用戶進(jìn)程相關(guān)聯(lián)的轉(zhuǎn)換表310。
[0048] 例如,轉(zhuǎn)換表310可以將用于QPa 322的QPN 332 (具有值X)映射到分配給用戶 進(jìn)程A 311的PID 321 (具有值OxA)。另外,轉(zhuǎn)換表310可以具有用于將QP映射到諸如用 戶進(jìn)程B-C 312-313之類的其它用戶進(jìn)程的條目。
[0049] 根據(jù)本發(fā)明的實(shí)施例,當(dāng)QPa 322被創(chuàng)建時(shí),用于用戶進(jìn)程A 311的PID 321可以 利用轉(zhuǎn)換表310登記,并且當(dāng)QPa 322被毀壞時(shí),用于用戶進(jìn)程A 311的PID 321可以被取 消登記。
[0050] 在基于Xen的架構(gòu)的示例中,當(dāng)?shù)怯浀腝PN 332存在時(shí),通過(guò)觸發(fā)用于通知具有登 記的PID 321的用戶進(jìn)程A 311釋放固定的存儲(chǔ)器的事件,虛擬機(jī)300中的特權(quán)域可以嘗 試分離IB VF。在由用戶進(jìn)程A 311固定的存儲(chǔ)器被釋放之后,屬于用戶進(jìn)程A 311的QPa 322可以被暫停直到它接收到重新開始事件。結(jié)果,內(nèi)核空間301模塊可以被卸載并且連接 到QPa 322的VF可以從VM 300成功地分離。
[0051] 此外,為了解決用戶空間302與內(nèi)核空間301之間缺乏交互,系統(tǒng)可以配置用戶空 間回調(diào)功能,其可以在取消登記PCI IB模塊之前由內(nèi)核空間301觸發(fā)。
[0052] 位置相關(guān)通信資源
[0053] 圖4示出了根據(jù)本發(fā)明的實(shí)施例的重新分配位置相關(guān)通信資源的例示。如圖4所 示,虛擬機(jī)環(huán)境400可以包括內(nèi)核空間410,和具有例如用戶進(jìn)程A-C 411-413的一個(gè)或多 個(gè)用戶進(jìn)程的用戶空間401。
[0054] 為了避免在遷移之后在目的地處與其它QPN的沖突,每個(gè)用戶進(jìn)程A-C 411-413 可以具有可以最小化搜索和檢索更新的QP屬性的時(shí)間的映射表。
[0055] 用戶進(jìn)程A 411可以具有映射表433,其可以被實(shí)施為用于用戶進(jìn)程A 411的用戶 空間庫(kù)的一部分,例如用戶空間設(shè)備驅(qū)動(dòng)器422。另外,映射表433的大小可以維持在相對(duì) 小的尺寸,因?yàn)槊總€(gè)用戶進(jìn)程A-C 411-413可以具有它自己的映射表。
[0056] 此外,映射表433可以在新的IB VF在目的地主機(jī)處附接之后用于檢索更新的位 置相關(guān)QP屬性。例如,代替利用一個(gè)映射表用于每個(gè)QP屬性,映射表433僅僅可以包含指 向存儲(chǔ)在存儲(chǔ)器(具有用作密鑰的舊的QPN)中的新QP屬性的指針。如圖4所示,在映射 表433中,第一 QPN值X與QP上下文指針,Oxaa,相關(guān)聯(lián),QP上下文指針存儲(chǔ)位置相關(guān)屬性 432的地址431。
[0057] 根據(jù)本發(fā)明的實(shí)施例,QP上下文可以包括若干位置相關(guān)屬性432,諸如局部標(biāo)識(shí) 符(LID)、隊(duì)列對(duì)號(hào)碼(QPN)、遠(yuǎn)程密鑰(rkey)、和本地密鑰(Ikey)。LID是由子網(wǎng)管理器 在子網(wǎng)初始化期間分配給每個(gè)HCA端口的局部地址。QPN是表示QP的標(biāo)識(shí)符并且它在HCA 之內(nèi)是僅僅唯一的。本地密鑰(lkey)和遠(yuǎn)程密鑰(rkey)都是需要在遷移之后變化的位置 相關(guān)屬性。他們是分別訪問本地和遠(yuǎn)程存儲(chǔ)器區(qū)域的授權(quán)密鑰。
[0058] 可替換地,可以存在用于重新映射這些QP屬性的其它方法。一個(gè)方法是將重新映 射機(jī)制卸載到硬件。此方法可以需要修改硬件和軟件架構(gòu)。另一個(gè)可替換是在內(nèi)核中放置 映射表并且在VF被重新附接之后將高速緩存的QP屬性重新映射到新的QP屬性集合。此 方法可以需要用于每個(gè)屬性的映射表:LID、rkey、Ikey和QPN。另外,QPN在子網(wǎng)之內(nèi)可以 不是唯一的并且在遷移之后可能引起沖突。
[0059] 因此,諸如QP屬性432之類的位置相關(guān)資源可以由用戶應(yīng)用421高速緩存。此外, 在QP被建立之后,由用戶應(yīng)用421對(duì)時(shí)間關(guān)鍵的操作可以在不從內(nèi)核410攔截的情況下基 于用戶空間401中的庫(kù)被直接執(zhí)行。
[0060] 隊(duì)列對(duì)(QP)狀態(tài)
[0061] 圖5示出根據(jù)本發(fā)明的實(shí)施例的利用確定性狀態(tài)來(lái)暫停并重新開始隊(duì)列對(duì)(QP) 的例示。如圖5所示,網(wǎng)絡(luò)模型500允許隊(duì)列對(duì)(QP)處于各種定義的狀態(tài),諸如準(zhǔn)備讀取 (RTS)狀態(tài)501和發(fā)送隊(duì)列排出(SQD)狀態(tài)502。另外,網(wǎng)絡(luò)模型500可以使用確定性狀態(tài), 例如暫停狀態(tài)503,以在動(dòng)態(tài)遷移之前和之后暫停并且重新開始QP。
[0062] 根據(jù)本發(fā)明的實(shí)施例,暫停狀態(tài)503可以基于發(fā)送隊(duì)列排出(SQD)狀態(tài)502。在 QP被允許從RTS狀態(tài)501轉(zhuǎn)變到SQD狀態(tài)502之前,QP的工作隊(duì)列中的所有未完成的操作 被成功地排出。因此,SQD狀態(tài)502可以保證所有未完成的發(fā)送操作在QP可以被臨時(shí)暫停 之前完成。利用此方法,QP可以處于確定性狀態(tài),其中沒有運(yùn)行中的分組存在并且QP可以 安全地被暫停并遷移。
[0063] 后期分離遷移處理
[0064] 根據(jù)本發(fā)明的實(shí)施例,虛擬環(huán)境可以在VM遷移期間利用后期分離方法減少服務(wù) 停止時(shí)間。
[0065] 圖6示出根據(jù)本發(fā)明的實(shí)施例的利用自下向上方法的虛擬機(jī)動(dòng)態(tài)遷移的例示。如 圖6所示,例如主機(jī)A-B 601-602的多個(gè)主機(jī)可以經(jīng)由IB網(wǎng)絡(luò)600互連。每個(gè)主機(jī)A-B 601-602可以包括一個(gè)或多個(gè)虛擬機(jī)監(jiān)控器(VMM),諸如VMM 615-616,其管理一個(gè)或多個(gè) 虛擬機(jī)(VM)。
[0066] 例如DomU 613中的VMa 603的虛擬機(jī)(VM)可以與HCA 617上的連接到隊(duì)列對(duì) (QP),例如QPa 607,的虛擬功能(VF)605附接。特權(quán)域Dom0611可以發(fā)起VMa 603從主機(jī) A 601到主機(jī)B 602 (如VMa 604)的遷移。
[0067] 如圖6所示,系統(tǒng)允許VMa 603在不首先分離VF 605的情況下遷移。然后,系統(tǒng)可 以在VMa 604被在目的地主機(jī)B 602上建立(其包括特權(quán)域Dom0612、和訪客域DomU 614, 由VMM616和HCA 618支持)之后分離VF 605。
[0068] 因此,服務(wù)停止時(shí)間可以被減少,因?yàn)镮B設(shè)備可以保持操作直到VM被暫停。例如, HCA 617上的QPa 607可以保持工作直到停止和復(fù)制階段開始。
[0069] 圖7示出根據(jù)本發(fā)明的實(shí)施例的在遷移之后重新激活虛擬機(jī)的例示。如圖7所 示,例如主機(jī)A-B 701-702的多個(gè)主機(jī)可以經(jīng)由IB網(wǎng)絡(luò)700互連。每個(gè)主機(jī)A-B 701-702 可以包括一個(gè)或多個(gè)虛擬機(jī)監(jiān)控器(VMM),諸如主機(jī)A 701上的VMM 615和主機(jī)B 702上 的VMM716,其管理一個(gè)或多個(gè)虛擬機(jī)(VM)。另外,每個(gè)主機(jī)A-B 701-702可以包括一個(gè)或 多個(gè)HCA,諸如主機(jī)A 701上的HCA 717和主機(jī)B702上的HCA 718。
[0070] 在VMa 704遷移到目的地主機(jī)B 702之后,在重新開始VMa 704之前,新的VF 706 可以附接(或再附接)到VMa 704。新的VF 706可以連接到HCA 718上新創(chuàng)建的QPa'708。
[0071] 利用Xen虛擬化模型,在主機(jī)B 702上的例如Dom0712的特權(quán)域可以在訪客域, DomU 714中VMa 704的恢復(fù)的最后階段處連接新的VF 706,而不是在早期恢復(fù)期間初始化 VF 706。此外,Dom0712可以執(zhí)行重新配置進(jìn)程,其可以包括再創(chuàng)建硬件相關(guān)資源和重建與 遠(yuǎn)程QP的連接。
[0072] 重建遠(yuǎn)程連接
[0073] IB網(wǎng)絡(luò)可以提供多個(gè)面向連接的傳輸服務(wù)。在VM遷移發(fā)生在兩個(gè)QP都仍然在操 作中(例如在RTS狀態(tài)中)時(shí)的情況中,系統(tǒng)可以在遷移完成之后再創(chuàng)建目的地主機(jī)上的 QP并且重建與遠(yuǎn)程QP的連接。
[0074] 圖8示出根據(jù)本發(fā)明的實(shí)施例的在虛擬機(jī)動(dòng)態(tài)遷移之前兩個(gè)隊(duì)列對(duì)(QP)的例 示。如圖8所示,例如主機(jī)A-B 801-802的多個(gè)主機(jī)可以經(jīng)由IB網(wǎng)絡(luò)800互連。每個(gè)主 機(jī)A-B 801-802可以包括諸如VMM815-816之類的一個(gè)或多個(gè)虛擬機(jī)監(jiān)控器(VMM),和諸如 HCA817-818之類的一個(gè)或多個(gè)HCA。
[0075] 在如圖8所示的示例中的,在VMa 803從主機(jī)A 801到主機(jī)B802的動(dòng)態(tài)遷移之前, 與主機(jī)A 801上的VMa 803相關(guān)聯(lián)的QPa 808可以與例如與VMc 805相關(guān)聯(lián)的QPc 807的 對(duì)等方QP進(jìn)行通信。
[0076] 在VMa 803的動(dòng)態(tài)遷移期間,通信管理器(CM)810可以被配置為容許設(shè)備刪除事 件,以便成功地遷移VMa 803。CM 810可以在設(shè)備被刪除之后斷開連接并且一旦新的設(shè)備 被再附接后可以重新開始連接。另外,系統(tǒng)可以實(shí)施重新連接機(jī)制,例如在用戶空間庫(kù)中。
[0077] 如圖8所示,在基于Xen的架構(gòu)的示例中,主機(jī)A 801上的特權(quán)域Dom0811可以發(fā) 起訪客域DomU 813中的VMa 803到主機(jī)B802的遷移。同樣,主機(jī)B 802可以包括特權(quán)域 Dom 0812,和訪客域DomU 814,其包括一個(gè)或多個(gè)VM (例如VMx 804)。
[0078] 根據(jù)本發(fā)明的實(shí)施例,在諸如Xen模型之類的虛擬化模型中可以存在VM與訪客域 (即DomU)之間的一對(duì)一關(guān)系。此外,在VMM/DomO的控制下托管VM的物理服務(wù)器上的資源 容器DomU可以用于表示VM的Xen概念。另外,在其它虛擬化模型中,在VM與的訪客域之 間可以無(wú)限制地存在一對(duì)多、或多對(duì)一關(guān)系。例如,訪客域可以能夠托管不同的VM。
[0079] 此外,Dom 0811可以運(yùn)行PCI分離腳本以從VMa 803中拔去VF。此操作也可以觸 發(fā)暫停階段,其中VMa 803上的內(nèi)核IB PCI模塊可以驗(yàn)證PID存在于QPN-PID映射表310 中并且可以發(fā)暫停事件信號(hào)以通知VMa 803中的用戶進(jìn)程。
[0080] 遷移VMa 808可以在固定的存儲(chǔ)器被釋放之前保存QP屬性和帶外套接字地址到 VMc 807。在這里,套接字地址可以用作用于VM的位置獨(dú)立地址,其在遷移之后不變化。當(dāng) 貫穿VM生命周期v⑶ID不被用作唯一和靜態(tài)的"名稱"時(shí),位置獨(dú)立套接字地址可以用于 識(shí)別VM。
[0081] 然后,在固定的存儲(chǔ)器被釋放之后,VF可以被成功地從VMa 808處分離并且與VMa 808相關(guān)聯(lián)的用戶進(jìn)程可以保持在暫停狀態(tài)中直到它接收重新開始事件。
[0082] 當(dāng)用戶進(jìn)程接收暫停事件時(shí),它可以設(shè)置暫停標(biāo)記并且停止剩余的發(fā)送操作。然 后,用戶進(jìn)程可以利用可靠的連接生成暫停消息以通知VMc 807上的用戶庫(kù),QPa 808將要 被暫停。當(dāng)QP 807-808上的工作隊(duì)列都已被排出時(shí),VMc 805可以復(fù)位QPc 807并且可以 等待新的CM事件。
[0083] 此外,在動(dòng)態(tài)遷移期間,遷移的VMa 803可以阻止QPc 807發(fā)送數(shù)據(jù)到遷移的VMa 803,并且可以轉(zhuǎn)發(fā)可靠連接(RC)暫停消息以通知QPc 807關(guān)于遷移。在QPc 807接收消 息之后,它可以保證所有工作隊(duì)列被成功地排出。然后,QPc 807可以轉(zhuǎn)變到復(fù)位狀態(tài)并且 等待新的CM事件以便重新開始通信。
[0084] 因此,系統(tǒng)可以在遷移之后維護(hù)VMa 808與VMc 805之間的連接。
[0085] 圖9示出根據(jù)本發(fā)明的實(shí)施例的在虛擬機(jī)動(dòng)態(tài)遷移之后通信中的兩個(gè)隊(duì)列對(duì) (QP)的例示。如圖9所示,例如主機(jī)A-B 901-902的多個(gè)主機(jī)可以經(jīng)由IB網(wǎng)絡(luò)900互連。
[0086] 主機(jī)B 902上的VMa 904被從主機(jī)901遷移。然后,系統(tǒng)可以連接新的VF到VMa 904,并且可以觸發(fā)重新開始階段。系統(tǒng)可以發(fā)送重新開始事件信號(hào)以用于通知VMa 904中 的用戶進(jìn)程設(shè)置重新開始標(biāo)記并且創(chuàng)建新的QP,例如QPa' 908。此外,指向新的QP屬性的 指針可以被增加給具有用作檢索密鑰的先前QPN的映射表。
[0087] 在CM 910利用用于VM的位置獨(dú)立地址重建與VMc 905 (或圖8中的VMc 805)的 連接之后,可以通過(guò)交換QP屬性并將QP907-908傳送到RTS狀態(tài)中來(lái)重新開始通信。在這 一點(diǎn)上,應(yīng)用可以繼續(xù)使用高速緩存QP屬性,其中用戶庫(kù)攔截的所有操作從映射表中檢索 正確的QP屬性。
[0088] 可以使用一個(gè)或多個(gè)傳統(tǒng)的通用或?qū)iT號(hào)碼計(jì)算機(jī)、計(jì)算設(shè)備、機(jī)器或微處理器 方便地實(shí)現(xiàn)本發(fā)明,包括一個(gè)或多個(gè)處理器、存儲(chǔ)器和/或根據(jù)本公開的教導(dǎo)編程的計(jì)算 機(jī)可讀存儲(chǔ)介質(zhì)。合適的軟件編碼能夠容易地由熟練的程序員基于本公開的教導(dǎo)來(lái)準(zhǔn)備, 這對(duì)軟件領(lǐng)域的技術(shù)人員將是明顯的。
[0089] 在一些實(shí)施例中,本發(fā)明包括計(jì)算機(jī)程序產(chǎn)品,其是上面或其中存儲(chǔ)指令的存儲(chǔ) 介質(zhì)或計(jì)算機(jī)可讀介質(zhì)(介質(zhì)),指令可以用于編程計(jì)算機(jī)來(lái)執(zhí)行本發(fā)明的處理中的任 何一個(gè)。存儲(chǔ)介質(zhì)能夠包括以下中的一個(gè)或多個(gè):任何類型的盤,包括軟盤、光盤、DVD、 CD-ROM、微驅(qū)動(dòng)器、和磁光盤、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、閃速存儲(chǔ)器件、磁或光 卡、納米系統(tǒng)(包括分子存儲(chǔ)器1C)或適合于存儲(chǔ)指令和/或數(shù)據(jù)的任何類型的介質(zhì)或設(shè) 備,但是不局限于此。
[0090] 本發(fā)明的上面的描述是為了說(shuō)明和描述的目的而提供的。它不意欲是窮舉的或?qū)?本發(fā)明限制于公開的精確的形式。許多修改和變化能夠?qū)Ρ绢I(lǐng)域的實(shí)踐者是明顯的。選擇 并且描述實(shí)施例以便最佳地說(shuō)明本發(fā)明的原理和它的實(shí)際應(yīng)用,從而使得本領(lǐng)域技術(shù)人員 能夠理解用于各個(gè)實(shí)施例中的并且具有適合于預(yù)期的特定使用的各種修改的本發(fā)明。預(yù)期 本發(fā)明的范圍由以下權(quán)利要求書和它們的等價(jià)物定義。
【權(quán)利要求】
1. 一種用于支持網(wǎng)絡(luò)中的虛擬機(jī)動(dòng)態(tài)遷移的系統(tǒng),包括: 一個(gè)或多個(gè)微處理器; 多個(gè)主機(jī),運(yùn)行在所述一個(gè)或多個(gè)微處理器上,其中所述多個(gè)主機(jī)經(jīng)由網(wǎng)絡(luò)互連;以及 一個(gè)或多個(gè)虛擬機(jī),其中所述一個(gè)或多個(gè)虛擬機(jī)中的至少一個(gè)虛擬機(jī)操作來(lái)執(zhí)行從第 一主機(jī)到第二主機(jī)的動(dòng)態(tài)遷移, 其中所述至少一個(gè)虛擬機(jī)連接到與隊(duì)列對(duì)(QP)相關(guān)聯(lián)的虛擬功能,其中QP由主機(jī)上 的主機(jī)信道適配器(HCA)支持。
2. 根據(jù)權(quán)利要求1所述的系統(tǒng),還包括: 至少一個(gè)虛擬機(jī)監(jiān)控器,其管理所述一個(gè)或多個(gè)虛擬機(jī)。
3. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中: 所述虛擬功能被設(shè)置在輸入/輸出(I/O)虛擬化模型中。
4. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中: 所述至少一個(gè)虛擬機(jī)包括 用戶空間,其中用戶空間包括一個(gè)或多個(gè)用戶進(jìn)程,每個(gè)用戶進(jìn)程與進(jìn)程標(biāo)識(shí)號(hào)碼 (PID)相關(guān)聯(lián),以及 內(nèi)核空間,其中內(nèi)核空間包括將PID映射到隊(duì)列對(duì)號(hào)碼(QPN)的轉(zhuǎn)換表,并且其中所述 轉(zhuǎn)換表用于將虛擬功能從至少一個(gè)虛擬機(jī)分離。
5. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中: 后期分離遷移進(jìn)程用于減少在虛擬機(jī)動(dòng)態(tài)遷移期間的網(wǎng)絡(luò)/服務(wù)停止時(shí)間。
6. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中: 一個(gè)或多個(gè)位置相關(guān)QP屬性能夠在至少一個(gè)虛擬機(jī)被從第一主機(jī)遷移到第二主機(jī)之 后被更新。
7. 根據(jù)權(quán)利要求6所述的系統(tǒng),其中: 每個(gè)用戶進(jìn)程包括映射表,所述映射表操作來(lái)優(yōu)化搜索和檢索更新的一個(gè)或多個(gè)位置 相關(guān)QP屬性。
8. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中: QP狀態(tài)信息能夠與所述至少一個(gè)虛擬機(jī)的圖像一起被遷移以便重新分配QP的物理資 源。
9. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中: 對(duì)等方QP能夠在所述至少一個(gè)虛擬機(jī)的動(dòng)態(tài)遷移期間中止與QP的通信。
10. 根據(jù)權(quán)利要求9所述的系統(tǒng),其中: 連接管理器(CM)能夠在完成遷移之后在遷移的QP與對(duì)等方QP之間重建新的連接。
11. 一種用于支持網(wǎng)絡(luò)中的虛擬機(jī)動(dòng)態(tài)遷移的方法,包括: 提供多個(gè)主機(jī),其中所述多個(gè)主機(jī)經(jīng)由網(wǎng)絡(luò)互連; 提供一個(gè)或多個(gè)虛擬機(jī),其中所述一個(gè)或多個(gè)虛擬機(jī)中的至少一個(gè)虛擬機(jī)連接到與隊(duì) 列對(duì)(QP)相關(guān)聯(lián)的虛擬功能,其中QP由主機(jī)上的主機(jī)信道適配器(HCA)支持;以及 經(jīng)由所述至少一個(gè)虛擬機(jī)執(zhí)行從第一主機(jī)到第二主機(jī)的動(dòng)態(tài)遷移。
12. 根據(jù)權(quán)利要求11所述的方法,還包括: 提供管理一個(gè)或多個(gè)虛擬機(jī)的至少一個(gè)虛擬機(jī)監(jiān)控器。
13. 根據(jù)權(quán)利要求11所述的方法,還包括: 將所述虛擬功能與由第一主機(jī)上的主機(jī)信道適配器(HCA)支持的隊(duì)列對(duì)(QP)相關(guān)聯(lián)。
14. 根據(jù)權(quán)利要求11所述的系統(tǒng),還包括: 在所述至少一個(gè)虛擬機(jī)中包括用戶空間,其中用戶空間包括一個(gè)或多個(gè)用戶進(jìn)程,每 個(gè)用戶進(jìn)程與進(jìn)程標(biāo)識(shí)號(hào)碼(PID)相關(guān)聯(lián),以及 在所述至少一個(gè)虛擬機(jī)中包括內(nèi)核空間,其中內(nèi)核空間包括將PID映射到隊(duì)列對(duì)號(hào)碼 (QPN)的轉(zhuǎn)換表,并且其中轉(zhuǎn)換表用于將虛擬功能從至少一個(gè)虛擬機(jī)分離。
15. 根據(jù)權(quán)利要求11所述的方法,還包括: 利用后期分離遷移進(jìn)程來(lái)減少在虛擬機(jī)動(dòng)態(tài)遷移期間的網(wǎng)絡(luò)/服務(wù)停止時(shí)間。
16. 根據(jù)權(quán)利要求11所述的方法,還包括: 在至少一個(gè)虛擬機(jī)被從第一主機(jī)遷移到第二主機(jī)之后更新一個(gè)或多個(gè)位置相關(guān)QP屬 性。
17. 根據(jù)權(quán)利要求16所述的方法,還包括: 將映射表與每個(gè)用戶進(jìn)程相關(guān)聯(lián),其中映射表操作來(lái)優(yōu)化搜索和檢索更新的一個(gè)或多 個(gè)位置相關(guān)QP屬性。
18. 根據(jù)權(quán)利要求11所述的方法,還包括: 與所述至少一個(gè)虛擬機(jī)的圖像一起遷移QP狀態(tài)信息以便重新分配QP的物理資源。
19. 根據(jù)權(quán)利要求11所述的方法,還包括: 配置對(duì)等方QP以在所述至少一個(gè)虛擬機(jī)的動(dòng)態(tài)遷移期間中止與QP的通信。
20. -種非瞬時(shí)機(jī)器可讀存儲(chǔ)介質(zhì),在其上存儲(chǔ)有指令,所述指令在被執(zhí)行時(shí)使得系統(tǒng) 執(zhí)行如下步驟: 提供多個(gè)主機(jī),其中所述多個(gè)主機(jī)經(jīng)由網(wǎng)絡(luò)互連; 提供一個(gè)或多個(gè)虛擬機(jī),其中所述一個(gè)或多個(gè)虛擬機(jī)中的至少一個(gè)虛擬機(jī)連接到與隊(duì) 列對(duì)(QP)相關(guān)聯(lián)的虛擬功能,其中QP由主機(jī)上的主機(jī)信道適配器(HCA)支持;以及 經(jīng)由所述至少一個(gè)虛擬機(jī)執(zhí)行從第一主機(jī)到第二主機(jī)的動(dòng)態(tài)遷移。
【文檔編號(hào)】G06F9/50GK104094231SQ201380008060
【公開日】2014年10月8日 申請(qǐng)日期:2013年3月25日 優(yōu)先權(quán)日:2012年3月26日
【發(fā)明者】倪威麟, B·D·約翰森 申請(qǐng)人:甲骨文國(guó)際公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
汝州市| 瓦房店市| 长宁区| 沁水县| 阿尔山市| 封开县| 综艺| 崇明县| 成都市| 布拖县| 潍坊市| 洞头县| 永昌县| 蚌埠市| 堆龙德庆县| 阿城市| 双牌县| 文安县| 峡江县| 资中县| 大英县| 锦屏县| 新源县| 清丰县| 台前县| 朝阳市| 井冈山市| 大竹县| 涟源市| 清徐县| 新河县| 太原市| 中西区| 星子县| 铁岭县| 淳安县| 木里| 信宜市| 西乌| 盈江县| 钟山县|