采用動(dòng)態(tài)操作系統(tǒng)容器的應(yīng)用遷移的制作方法
【專(zhuān)利摘要】采用動(dòng)態(tài)操作系統(tǒng)容器(205-1,205-2)遷移應(yīng)用(105-1至105-3)的方法和系統(tǒng)被披露,其中,多個(gè)當(dāng)前在第一操作系統(tǒng)環(huán)境內(nèi)被執(zhí)行的應(yīng)用(105-1至105-3)被識(shí)別以便遷移到第二操作系統(tǒng)環(huán)境;在第一操作系統(tǒng)環(huán)境內(nèi)創(chuàng)建新的操作系統(tǒng)容器(205-1,205-2);所述多個(gè)被識(shí)別的應(yīng)用(105-1至105-3)被轉(zhuǎn)移到操作系統(tǒng)容器(205-1,205-2)中;以及,所述操作系統(tǒng)容器(205-1,205-2)被遷移到所述第二操作系統(tǒng)環(huán)境。
【專(zhuān)利說(shuō)明】采用動(dòng)態(tài)操作系統(tǒng)容器的應(yīng)用遷移
【背景技術(shù)】
[0001]對(duì)于某些計(jì)算機(jī)程序連續(xù)可用性的需求不斷增加。長(zhǎng)的正常運(yùn)行時(shí)間(up-time)(例如在客戶(hù)期望一直能夠訪問(wèn)的網(wǎng)絡(luò)服務(wù)上)通常是令人期望的。隨著網(wǎng)絡(luò)服務(wù)領(lǐng)域的發(fā)展,許多組織把高優(yōu)先級(jí)設(shè)置在確保它們的網(wǎng)絡(luò)服務(wù)連續(xù)運(yùn)行并且持續(xù)可用上。例如,組織可能高度依賴(lài)于任務(wù)關(guān)鍵的企業(yè)應(yīng)用(mission-critical enterprise applications)(諸如,數(shù)據(jù)庫(kù)應(yīng)用和其他服務(wù)應(yīng)用)以有效地執(zhí)行那個(gè)組織的目標(biāo)。如此,所述組織可能希望減少或消除這些應(yīng)用的中斷時(shí)間(downtime)。高可用性可能是令人期望的另一個(gè)示例是使用大量連續(xù)處理時(shí)間來(lái)執(zhí)行復(fù)雜計(jì)算的應(yīng)用的示例。
[0002]然而,挑戰(zhàn)存在于維持計(jì)算機(jī)程序的連續(xù)操作。例如,計(jì)算機(jī)程序通常在可能經(jīng)受定期維護(hù)的操作系統(tǒng)環(huán)境內(nèi)執(zhí)行。某些類(lèi)型的操作系統(tǒng)維護(hù)(諸如,修補(bǔ)(patching)操作)在操作系統(tǒng)離線之時(shí)被執(zhí)行,這典型涉及對(duì)在操作系統(tǒng)環(huán)境內(nèi)正在運(yùn)行的計(jì)算機(jī)程序的中斷。另外,執(zhí)行操作系統(tǒng)環(huán)境以及執(zhí)行計(jì)算機(jī)程序的計(jì)算系統(tǒng)可能需要維護(hù),從而計(jì)算機(jī)系統(tǒng)的硬件在維護(hù)期間被斷電。在還有的其他示例中,執(zhí)行計(jì)算機(jī)程序的計(jì)算系統(tǒng)的處理資源可能會(huì)變得負(fù)擔(dān)過(guò)重,因而,威脅到計(jì)算系統(tǒng)連續(xù)執(zhí)行計(jì)算機(jī)程序的能力。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0003]附圖圖示了在此描述原理的各種示例,并且成為說(shuō)明書(shū)的一部分。圖示的示例僅僅是示例,并且不限制本公開(kāi)的范圍。
[0004]圖1是依據(jù)在此描述原理的一個(gè)示例的示例性計(jì)算系統(tǒng)的框圖。
[0005]圖2是依據(jù)在此描述原理的一個(gè)示例在示例性計(jì)算系統(tǒng)的操作系統(tǒng)環(huán)境中創(chuàng)建操作系統(tǒng)容器的框圖。
[0006]圖3是依據(jù)在此描述原理的一個(gè)示例在示例性計(jì)算系統(tǒng)的操作系統(tǒng)環(huán)境中轉(zhuǎn)移應(yīng)用到操作系統(tǒng)容器的框圖。
[0007]圖4是依據(jù)在此描述原理的一個(gè)示例把操作系統(tǒng)容器從第一操作系統(tǒng)環(huán)境遷移到第二操作系統(tǒng)環(huán)境以及第三操作系統(tǒng)環(huán)境的框圖。
[0008]圖5是依據(jù)在此描述原理的一個(gè)示例的用于使用操作系統(tǒng)容器進(jìn)行應(yīng)用遷移的示例性體系結(jié)構(gòu)的框圖。
[0009]圖6是依據(jù)在此描述原理的一個(gè)示例使用操作系統(tǒng)容器進(jìn)行應(yīng)用遷移的示例性方法的流程圖。
[0010]圖7是依據(jù)在此描述原理的一個(gè)示例的示例性計(jì)算環(huán)境的框圖。
[0011]貫穿整個(gè)附圖,相同的附圖標(biāo)記可以指代相似但不必須相同的單元。
【具體實(shí)施方式】
[0012]如上所述,連續(xù)地執(zhí)行計(jì)算機(jī)程序達(dá)一擴(kuò)展時(shí)間段之久在一些情況下可能是令人期望的。然而,在執(zhí)行計(jì)算機(jī)程序的過(guò)程期間,使計(jì)算設(shè)備的硬件平臺(tái)和/或操作系統(tǒng)環(huán)境離線以執(zhí)行維護(hù)可能要變得審慎些。另外,執(zhí)行計(jì)算機(jī)程序的計(jì)算系統(tǒng)的處理資源可能變得負(fù)擔(dān)過(guò)重,從而威脅計(jì)算系統(tǒng)連續(xù)執(zhí)行計(jì)算機(jī)程序的能力。
[0013]鑒于這些和其他的考慮,本說(shuō)明書(shū)披露了一種方法和系統(tǒng),其使用動(dòng)態(tài)地被創(chuàng)建的操作系統(tǒng)容器把正在運(yùn)行的應(yīng)用從第一操作系統(tǒng)環(huán)境遷移到至少一個(gè)其他操作系統(tǒng)環(huán)境,從而允許第一操作系統(tǒng)環(huán)境或它的基礎(chǔ)硬件平臺(tái)在不干擾應(yīng)用執(zhí)行的情況下經(jīng)受維護(hù)。另外或可替代地,本說(shuō)明書(shū)的方法或系統(tǒng)可以被用于釋放在第一操作系統(tǒng)環(huán)境上的處理資源。
[0014]在遷移應(yīng)用的一個(gè)示例性方法中,多個(gè)當(dāng)前在第一操作系統(tǒng)環(huán)境中被執(zhí)行的應(yīng)用被識(shí)別以便遷移到第二操作系統(tǒng)環(huán)境。然后,新的操作系統(tǒng)容器在第一操作系統(tǒng)環(huán)境內(nèi)被創(chuàng)建,并且所述多個(gè)被識(shí)別的應(yīng)用被轉(zhuǎn)移(transfer)到所述操作系統(tǒng)容器中。然后,所述操作系統(tǒng)容器可以被遷移(migrate)到第二操作系統(tǒng)環(huán)境。
[0015]在遷移應(yīng)用的另一個(gè)示例性方法中,來(lái)自用戶(hù)的指令在第一操作系統(tǒng)環(huán)境中被接收來(lái)創(chuàng)建至少第一操作系統(tǒng)容器和第二操作系統(tǒng)容器。當(dāng)前在第一操作系統(tǒng)環(huán)境內(nèi)正在運(yùn)行的第一數(shù)量的應(yīng)用到第一操作系統(tǒng)容器,以及當(dāng)前在第一操作系統(tǒng)環(huán)境內(nèi)正在運(yùn)行的第二數(shù)量的應(yīng)用到第二操作系統(tǒng)容器的分配也被接收。第一數(shù)量的應(yīng)用被相應(yīng)地轉(zhuǎn)移到第一操作系統(tǒng)容器,并且第二數(shù)量的應(yīng)用被轉(zhuǎn)移到第二操作系統(tǒng)容器。然后,第一操作系統(tǒng)容器被遷移到第二操作系統(tǒng)環(huán)境,并且第二操作系統(tǒng)容器被遷移到第三操作系統(tǒng)環(huán)境。
[0016]本說(shuō)明書(shū)的示例性系統(tǒng)包括至少一個(gè)處理器以及通信地耦合到所述處理器的存儲(chǔ)器。所述存儲(chǔ)器包括可執(zhí)行代碼,當(dāng)所述可執(zhí)行代碼由至少一個(gè)處理器執(zhí)行時(shí),所述可執(zhí)行代碼使所述至少一個(gè)處理器:實(shí)現(xiàn)第一操作系統(tǒng)環(huán)境;識(shí)別多個(gè)當(dāng)前在第一操作系統(tǒng)環(huán)境內(nèi)被執(zhí)行的應(yīng)用以便遷移到第二操作系統(tǒng)環(huán)境;在第一操作系統(tǒng)環(huán)境內(nèi)創(chuàng)建新的操作系統(tǒng)容器;把所述多個(gè)被識(shí)別的應(yīng)用轉(zhuǎn)移到所述操作系統(tǒng)容器中;以及把所述操作系統(tǒng)容器遷移到第二操作系統(tǒng)環(huán)境。
[0017]這些方法和系統(tǒng)提供大量益處。與應(yīng)用在容器內(nèi)部被啟動(dòng)的傳統(tǒng)操作系統(tǒng)容器相比較而言,本說(shuō)明書(shū)的方法和系統(tǒng)披露了操作系統(tǒng)容器的創(chuàng)建,當(dāng)有理由把應(yīng)用移動(dòng)到一個(gè)或多個(gè)其他OS實(shí)例時(shí),所述操作系統(tǒng)容器的創(chuàng)建允許把不是從所述容器被啟動(dòng)的應(yīng)用移到所述容器中。
[0018]如本說(shuō)明書(shū)和所附權(quán)利要求中所使用的,術(shù)語(yǔ)“應(yīng)用”指的是不同于操作系統(tǒng)內(nèi)核或硬件驅(qū)動(dòng)程序的計(jì)算機(jī)程序。
[0019]如本說(shuō)明書(shū)和所附權(quán)利要求中所使用的,術(shù)語(yǔ)“操作系統(tǒng)環(huán)境”指的是操作系統(tǒng)內(nèi)核的實(shí)例以及一組條件,在所述條件下應(yīng)用可以被使用操作系統(tǒng)內(nèi)核執(zhí)行。
[0020]如本說(shuō)明書(shū)和所附權(quán)利要求中所使用的,術(shù)語(yǔ)“操作系統(tǒng)容器”指的是具有其自己的操作系統(tǒng)名稱(chēng)空間(包括進(jìn)程、文件系統(tǒng)、進(jìn)程間通信(IPC)、主機(jī)名、以及網(wǎng)絡(luò)空間)的虛擬操作系統(tǒng)。操作系統(tǒng)容器(如在此所定義的)被在操作系統(tǒng)環(huán)境內(nèi)實(shí)現(xiàn),并且與在那個(gè)相同操作系統(tǒng)環(huán)境內(nèi)被執(zhí)行的其他應(yīng)用、進(jìn)程以及操作系統(tǒng)容器邏輯上隔離。
[0021]如本說(shuō)明書(shū)和所附權(quán)利要求中所使用的,術(shù)語(yǔ)“動(dòng)態(tài)操作系統(tǒng)容器”指的是在要求時(shí)能夠被創(chuàng)建以包含當(dāng)操作系統(tǒng)容器被創(chuàng)建時(shí)已經(jīng)正在運(yùn)行的應(yīng)用的操作系統(tǒng)容器。
[0022]如本說(shuō)明書(shū)和所附權(quán)利要求中所使用的,術(shù)語(yǔ)“內(nèi)核”或“操作系統(tǒng)內(nèi)核”指的是控制應(yīng)用的執(zhí)行和應(yīng)用對(duì)硬件資源的訪問(wèn)的計(jì)算機(jī)操作系統(tǒng)的核心部件。
[0023]如本說(shuō)明書(shū)和所附權(quán)利要求中所使用的,術(shù)語(yǔ)“驅(qū)動(dòng)程序”指的是機(jī)器可讀指令的自治集合,其在操作系統(tǒng)內(nèi)核與通信地耦合到執(zhí)行所述操作系統(tǒng)內(nèi)核的處理器的物理設(shè)備之間提供接口。
[0024]在接下來(lái)的描述中,為了解釋的目的,許多具體的細(xì)節(jié)被闡述以提供對(duì)本系統(tǒng)和方法的徹底的理解。然而,本裝置、系統(tǒng)和方法可以在沒(méi)有這些具體細(xì)節(jié)的情況下被實(shí)施,這對(duì)于本領(lǐng)域的技術(shù)人員而言是顯然的。本說(shuō)明書(shū)中對(duì)“示例”或類(lèi)似的參考意味著:相對(duì)于那個(gè)示例被描述的特定特征、結(jié)構(gòu)、或特點(diǎn)如描述的那樣被包括,但可以不被包括在其他示例中。
[0025]在此披露的原理現(xiàn)在將相對(duì)于示例性的系統(tǒng)和方法被討論。
[0026]圖1是示例性計(jì)算系統(tǒng)(100)的框圖,所述計(jì)算系統(tǒng)(100)被配置成實(shí)現(xiàn)其中各種應(yīng)用(105-1至105-3)被執(zhí)行的操作系統(tǒng)環(huán)境。所述示例性計(jì)算系統(tǒng)(100)包括物理硬件(110)的平臺(tái)。所述物理硬件(110)可以包括例如至少一個(gè)處理器、計(jì)算機(jī)存儲(chǔ)器、總線、本地存儲(chǔ)器和對(duì)外部設(shè)備的接口。特別地,所述物理硬件(110)被配置成執(zhí)行被存儲(chǔ)以實(shí)現(xiàn)某些功能性單元的機(jī)器可讀指令。
[0027]由所述物理硬件(110)實(shí)現(xiàn)的功能性單元中的一個(gè)是操作系統(tǒng)(115)的功能性單元。所述操作系統(tǒng)包括內(nèi)核,所述內(nèi)核協(xié)調(diào)應(yīng)用(105-1至105-3)的執(zhí)行和由所述應(yīng)用(105-1至105-3)對(duì)物理資源的訪問(wèn)。在操作系統(tǒng)(115)的指導(dǎo)下,每個(gè)應(yīng)用(105-1至105-3)可以被實(shí)現(xiàn)為一個(gè)或多個(gè)由物理硬件(110)執(zhí)行的不同的進(jìn)程。
[0028]在某些示例中,所述計(jì)算系統(tǒng)(100)是具有用于所述操作系統(tǒng)(115)的專(zhuān)用物理硬件的獨(dú)立計(jì)算系統(tǒng)。可替代地,所述計(jì)算系統(tǒng)(100)可以是具有由真實(shí)的物理硬件執(zhí)行的虛擬化軟件所實(shí)現(xiàn)的虛擬物理硬件(110)的虛擬機(jī)器。
[0029]圖2是具有兩個(gè)額外的新的操作系統(tǒng)容器(205-1,205-2)的圖1中計(jì)算系統(tǒng)(100)的框圖。如上所述,出于多種原因把應(yīng)用(105-1至105-3)遷移到新的操作系統(tǒng)環(huán)境可能是令人期望的。例如,管理者可能希望修補(bǔ)或更新所述計(jì)算系統(tǒng)(100)的操作系統(tǒng),或者計(jì)算系統(tǒng)(100)的處理資源有可能過(guò)載。
[0030]考慮到正在運(yùn)行的應(yīng)用(105-1至105-3)到新的計(jì)算系統(tǒng)的無(wú)縫遷移,兩個(gè)操作系統(tǒng)容器(205-1,205-2)被創(chuàng)建。所述操作系統(tǒng)容器(205-1,205-2)可以在用戶(hù)的指導(dǎo)下被創(chuàng)建,所述用戶(hù)通過(guò)用戶(hù)接口與計(jì)算系統(tǒng)(100)交互。另外或可替代地,所述操作系統(tǒng)容器(205-1,205-2)可以響應(yīng)于觸發(fā)器(諸如,過(guò)載條件或維護(hù)進(jìn)程)自動(dòng)地被創(chuàng)建。每個(gè)所述操作系統(tǒng)容器(205-1,205-2)虛擬化隔離的、自治的操作系統(tǒng),所述操作系統(tǒng)具有其自己的進(jìn)程、文件系統(tǒng)、IPC,主機(jī)名和網(wǎng)絡(luò)空間。然而,所述操作系統(tǒng)容器(205-1,205-2)不執(zhí)行操作系統(tǒng)內(nèi)核的分離的實(shí)例。相比之下,所述操作系統(tǒng)容器(205-1,205-2)的功能性由所述計(jì)算系統(tǒng)(100)的驅(qū)動(dòng)程序和已經(jīng)存在的操作系統(tǒng)(115)實(shí)現(xiàn)。
[0031]每個(gè)應(yīng)用(105-1至105-3)可以被分配到所述被創(chuàng)建的容器(205_1,205-2)中的一個(gè)。應(yīng)用(105-1至105-3)到操作系統(tǒng)容器(205-1,205-2)的分配可以基于來(lái)自計(jì)算系統(tǒng)的用戶(hù)通過(guò)用戶(hù)接口的輸入。
[0032]另外或可替代地,應(yīng)用(105-1至105-3)的分配可以由操作系統(tǒng)(115)基于試探法和/或規(guī)則自動(dòng)地加以確定。例如,所述操作系統(tǒng)(115)可以確定被每個(gè)正在運(yùn)行的應(yīng)用(105-1至105-3)利用的處理資源的數(shù)量,確定外部計(jì)算系統(tǒng)中可用的處理資源的數(shù)量,并且通過(guò)將應(yīng)用(105-1至105-3)以及操作系統(tǒng)容器(205-1,205-2)與外部計(jì)算系統(tǒng)匹配,而把應(yīng)用(105-1至105-3)劃分到操作系統(tǒng)容器(205-1至205-3)中。
[0033]如圖2所示,在一些示例中,所述操作系統(tǒng)(115)可以執(zhí)行分別來(lái)自、并且并排于被創(chuàng)建的容器(205-1,205-2)的應(yīng)用(105-1至105-3)。一旦應(yīng)用(105-1至105-3)已被分配到它們各自的操作系統(tǒng)容器(205-1,205-2),所述操作系統(tǒng)(115)可以把應(yīng)用(105-1至105-3)轉(zhuǎn)移到它們各自的操作系統(tǒng)容器(205-1,205-2)。
[0034]圖3是所述應(yīng)用(105-1至105-3)已被轉(zhuǎn)移到它們各自被分配的操作系統(tǒng)容器(205-1,205-2)之后,圖1和圖2中的示例性計(jì)算系統(tǒng)(100)的框圖。如圖3所示,一個(gè)應(yīng)用(105-1)已被轉(zhuǎn)移到第一操作系統(tǒng)容器(205-1),以及兩個(gè)應(yīng)用(105-2至105-3)已被轉(zhuǎn)移到第二操作系統(tǒng)容器(205-2)。所述操作系統(tǒng)(115)可以被配置成:在把正在運(yùn)行的應(yīng)用(105-1至105-3)轉(zhuǎn)移到它們各自的操作系統(tǒng)容器(205-1,205-2)之前,適配它們以便容器化。
[0035]例如,所述操作系統(tǒng)(115)可以檢索用于每個(gè)應(yīng)用(105-1至105_3)的每個(gè)進(jìn)程的進(jìn)程數(shù)據(jù)結(jié)構(gòu),并且更新那個(gè)數(shù)據(jù)結(jié)構(gòu),以反映所述進(jìn)程已被分配到特定的容器、所述容器屬于某個(gè)類(lèi)型(即,為應(yīng)用遷移而被動(dòng)態(tài)地創(chuàng)建的)、以及那個(gè)進(jìn)程已被分配到的容器的身份標(biāo)識(shí)。
[0036]所述操作系統(tǒng)內(nèi)核可以被最優(yōu)化,以便按照可以適合于在此描述原理的特定實(shí)現(xiàn)的方式,基于這些進(jìn)程數(shù)據(jù)結(jié)構(gòu)而辨別容器中正在運(yùn)行的進(jìn)程,并且向被容器化的進(jìn)程提供特殊處理。
[0037]圖4示出了圖2-3中的第一操作系統(tǒng)容器和第二操作系統(tǒng)容器(205-1,205-2)分別從它們初始的計(jì)算系統(tǒng)(100)向第二計(jì)算系統(tǒng)(405-1)和第三計(jì)算系統(tǒng)(405-2)的遷移。第二計(jì)算系統(tǒng)(405-1)可以實(shí)現(xiàn)第二操作系統(tǒng)環(huán)境,其中第二組硬件(410-1)執(zhí)行第二操作系統(tǒng)(415-1),并且第三計(jì)算系統(tǒng)(405-2)可以實(shí)現(xiàn)第三操作系統(tǒng)環(huán)境,其中第三組硬件(410-2)執(zhí)行第三操作系統(tǒng)(415-2)。
[0038]在某些示例中,第二計(jì)算系統(tǒng)(405-1)和第三計(jì)算系統(tǒng)(405-2)中的至少一個(gè)可以被動(dòng)態(tài)地創(chuàng)建并作為其各自操作系統(tǒng)容器(205-1,205-2)的目的地。例如,響應(yīng)于對(duì)執(zhí)行第二操作系統(tǒng)容器(205-2)的應(yīng)用的計(jì)算資源的需求,新的物理或虛擬計(jì)算平臺(tái)可以被實(shí)例化為第三計(jì)算系統(tǒng)(405-2)以接收第二操作系統(tǒng)容器(205-2)。
[0039]除了遷移自第一計(jì)算環(huán)境(100)的操作系統(tǒng)容器(205-1,205-2)之外,第二計(jì)算系統(tǒng)和第三計(jì)算系統(tǒng)(405-1,405-2)中的一個(gè)或二個(gè)還可以執(zhí)行額外的進(jìn)程和/或容器。在本示例中,包含來(lái)自第一計(jì)算系統(tǒng)(100)的第一應(yīng)用(105-1)的第一操作系統(tǒng)容器(205-1)已被遷移到第二計(jì)算系統(tǒng)(405-1),所述第二計(jì)算系統(tǒng)(405-1)同時(shí)執(zhí)行與第一操作系統(tǒng)容器(205-1)并行的兩個(gè)額外的應(yīng)用(420-1,420-2)。同樣在本示例中,包含第一計(jì)算系統(tǒng)100的第二應(yīng)用和第三應(yīng)用(105-2,105-3)的第二操作系統(tǒng)容器(205-2)已被遷移到第三計(jì)算系統(tǒng)(405-2 ),所述第三計(jì)算系統(tǒng)(405-2 )同時(shí)執(zhí)行額外的容器(425 )。
[0040]一旦第一計(jì)算系統(tǒng)(100)的第一容器和第二容器(205-1,205-2)已經(jīng)分別被遷移到第二計(jì)算系統(tǒng)和第三計(jì)算系統(tǒng)(405-1,405-2),第一計(jì)算系統(tǒng)(100)可以被離線用于維修或承擔(dān)額外的工作負(fù)荷。從被遷移自第一計(jì)算系統(tǒng)(100)的應(yīng)用(105-1至105-3)的用戶(hù)或客戶(hù)的角度,這看起來(lái)就好像所述應(yīng)用(105-1至105-3)—直在連續(xù)運(yùn)行而沒(méi)有任何功能性上的實(shí)質(zhì)變化。所述操作系統(tǒng)容器(205-1,205-2)為運(yùn)行在目標(biāo)計(jì)算系統(tǒng)(405-1,405-2)上的被遷移應(yīng)用(105-1至105-3)提供模擬操作系統(tǒng)環(huán)境,好像它們正運(yùn)行在源計(jì)算系統(tǒng)(100)上一樣。
[0041]在本說(shuō)明書(shū)中描述的第一操作系統(tǒng)容器和第二操作系統(tǒng)容器(205-1,205-2)相比于本領(lǐng)域中使用的其他類(lèi)型操作系統(tǒng)容器是獨(dú)特的。其他操作系統(tǒng)容器在啟動(dòng)包含在它們中的應(yīng)用之前被創(chuàng)建,并且所述應(yīng)用被從操作系統(tǒng)容器內(nèi)被啟動(dòng)。
[0042]相比之下,本說(shuō)明書(shū)的操作系統(tǒng)容器(205-1,205-2)能夠基于需求被動(dòng)態(tài)地創(chuàng)建,并且在操作系統(tǒng)容器(205-1,205-2)創(chuàng)建之前已開(kāi)始的正在運(yùn)行的工作負(fù)荷可以被轉(zhuǎn)移到新創(chuàng)建的操作系統(tǒng)容器(205-1,205-2)中。如此,虛擬機(jī)器或操作系統(tǒng)容器不需要被預(yù)先配置,并且工作負(fù)荷不需要在VM或容器內(nèi)被初始啟動(dòng)以把所述工作負(fù)荷遷移到其他操作系統(tǒng)環(huán)境。這些特征節(jié)省了寶貴的處理資源,并且降低了操作系統(tǒng)環(huán)境的復(fù)雜度。
[0043]另外,本說(shuō)明書(shū)中的操作系統(tǒng)容器(205-1,205-2)允許用戶(hù)創(chuàng)建操作系統(tǒng)容器(205-1,205-2),并且基于通過(guò)用戶(hù)接口輸入到主機(jī)計(jì)算系統(tǒng)(100)的輸入把正在運(yùn)行的應(yīng)用分配到被創(chuàng)建的所述容器(205-1,205-2)。此特征為管理用戶(hù)有選擇地把正在運(yùn)行的應(yīng)用遷移到外部操作系統(tǒng)環(huán)境以在主機(jī)計(jì)算系統(tǒng)環(huán)境上執(zhí)行維護(hù)或平衡多個(gè)計(jì)算系統(tǒng)(100,405-1, 405-2)之間的工作負(fù)荷提供了靈活性。
[0044]這個(gè)靈活性進(jìn)一步使用戶(hù)能夠創(chuàng)建多個(gè)操作系統(tǒng)容器(205-1,205-2),并且把正在運(yùn)行的應(yīng)用分配到所述多個(gè)容器,因而,允許用戶(hù)把工作負(fù)荷從主機(jī)計(jì)算系統(tǒng)(100)撤出并轉(zhuǎn)至多個(gè)目標(biāo)計(jì)算系統(tǒng)(405-1,405-2)。如此,整個(gè)系統(tǒng)負(fù)荷能夠被分布到多個(gè)操作系統(tǒng)容器(205-1,205-2)之間,因而,在目標(biāo)計(jì)算系統(tǒng)(405-1,405-2)的可用處理資源之間平衡來(lái)自被遷移應(yīng)用的工作負(fù)荷。
[0045]然而,由本說(shuō)明書(shū)的操作系統(tǒng)容器(205-1,205-2)提供的再另一個(gè)益處是把被撤出的應(yīng)用遷移回源計(jì)算系統(tǒng)的能力。例如,如果應(yīng)用(105-1至105-3)被遷移到目標(biāo)計(jì)算系統(tǒng)(405-1,405-2)以在源計(jì)算系統(tǒng)(100)上執(zhí)行維護(hù),而一旦所述維護(hù)已被執(zhí)行了并且源計(jì)算系統(tǒng)(100)恢復(fù)在線,把應(yīng)用(105-1至105-3)返回到源計(jì)算系統(tǒng)(100)可能是令人期望的。這可以通過(guò)把所述容器(205-1,205-2)簡(jiǎn)單地遷移回源計(jì)算系統(tǒng)(100)而完成。然后,所述應(yīng)用(105-1至105-3)可以從所述容器(205-1,205-2)中被移除或保留在所述容器(205-1,205-2)中以便在源計(jì)算系統(tǒng)(100)處操作。
[0046]圖5是用于使用操作系統(tǒng)容器遷移應(yīng)用的系統(tǒng)的示例性體系結(jié)構(gòu)(500)的框圖。所述系統(tǒng)體系結(jié)構(gòu)(500)可以例如在具有正在運(yùn)行的應(yīng)用(105-1至105-3)的計(jì)算系統(tǒng)(100)內(nèi)被實(shí)現(xiàn)。
[0047]所述系統(tǒng)體系結(jié)構(gòu)500包括允許用戶(hù)(505)與即時(shí)(Just-1n-Time (JIT))容器管理實(shí)用程序(515)交互的用戶(hù)接口(510)。對(duì)于本示例而言,具有相對(duì)于圖1-4的討論所描述的特點(diǎn)和特征的操作系統(tǒng)容器可以被簡(jiǎn)稱(chēng)為JIT容器。
[0048]現(xiàn)在將給出用于使用圖5的所述系統(tǒng)體系結(jié)構(gòu)(500)把應(yīng)用遷移到外部計(jì)算系統(tǒng)的順序過(guò)程的示例。所述過(guò)程開(kāi)始于用戶(hù)(505)通過(guò)用戶(hù)接口(510)向JIT容器管理實(shí)用程序(515)發(fā)出指令,以創(chuàng)建新的JIT操作系統(tǒng)容器。所述指令可以包括兩個(gè)參數(shù):用于JIT容器的名稱(chēng)以及將被轉(zhuǎn)移到新的JIT容器中的每個(gè)正在運(yùn)行的應(yīng)用的標(biāo)識(shí)。如果沒(méi)有應(yīng)用被指定,所述指令將被視為默認(rèn)指定在主機(jī)計(jì)算系統(tǒng)的操作系統(tǒng)上當(dāng)?shù)卣谶\(yùn)行的所有應(yīng)用和進(jìn)程。[0049]當(dāng)接收到來(lái)自用戶(hù)(505)的指令,JIT容器管理實(shí)用程序(515)可以驗(yàn)證所述參數(shù),并且把用于新的JIT容器的配置信息存儲(chǔ)在磁盤(pán)(525)上的文件中。然后,JIT容器管理實(shí)用程序(515)可以向JIT容器協(xié)調(diào)器(orchestrator) (520)發(fā)送請(qǐng)求以創(chuàng)建JIT容器。然后,JIT協(xié)調(diào)器(520)可以向操作系統(tǒng)內(nèi)核的進(jìn)程容器化模塊(530)發(fā)送觸發(fā)器,所述進(jìn)程容器化模塊(530)響應(yīng)于所述觸發(fā)器開(kāi)始用于將被轉(zhuǎn)移到JIT容器的每個(gè)應(yīng)用的每個(gè)進(jìn)程的容器化進(jìn)程。
[0050]作為容器化進(jìn)程的一部分,所述進(jìn)程容器化模塊(530)與進(jìn)程管理子系統(tǒng)(535)交互以檢索對(duì)應(yīng)于將被轉(zhuǎn)移到JIT容器的每個(gè)應(yīng)用的每個(gè)進(jìn)程的數(shù)據(jù)結(jié)構(gòu),通過(guò)在數(shù)據(jù)結(jié)構(gòu)的字段中指定JIT進(jìn)程屬于JIT容器而標(biāo)記所述數(shù)據(jù)結(jié)構(gòu)為所述JIT進(jìn)程,并且把JIT容器標(biāo)識(shí)符輸入到數(shù)據(jù)結(jié)構(gòu)。所述JIT容器標(biāo)識(shí)符可以是由用戶(hù)指定的名稱(chēng)或是另一標(biāo)識(shí)符。
[0051]然后,所述容器遷移協(xié)調(diào)器(540)可以與操作系統(tǒng)內(nèi)核的實(shí)時(shí)遷移協(xié)調(diào)器(545)交互,以把JIT容器遷移到外部計(jì)算系統(tǒng),所述外部計(jì)算系統(tǒng)由用戶(hù)(505)指定或者使用試探法或基于規(guī)則的計(jì)算自動(dòng)地被選擇。
[0052]圖6是示例性方法(600)的流程圖,所述方法(600)通過(guò)操作系統(tǒng)容器的使用把至少一個(gè)正在運(yùn)行的應(yīng)用從由至少一個(gè)處理器執(zhí)行的第一操作系統(tǒng)環(huán)境遷移到第二操作系統(tǒng)環(huán)境。所述方法(600)可以例如由圖1-4的計(jì)算系統(tǒng)(100)執(zhí)行。第一操作系統(tǒng)和第二操作系統(tǒng)中的至少一個(gè)可以由例如虛擬機(jī)實(shí)現(xiàn),所述虛擬機(jī)通過(guò)由物理機(jī)執(zhí)行的管理程序?qū)崿F(xiàn)。
[0053]所述方法(600)開(kāi)始于識(shí)別(方框605)進(jìn)程,所述進(jìn)程作為遷移候選當(dāng)前在第一操作系統(tǒng)環(huán)境內(nèi)正在被執(zhí)行。如前所述,所述進(jìn)程可以由用戶(hù)和/或自動(dòng)地識(shí)別。然后,新的操作系統(tǒng)容器在第一操作系統(tǒng)環(huán)境內(nèi)被創(chuàng)建(方框610),并且被識(shí)別的應(yīng)用被轉(zhuǎn)移(方框615)到新創(chuàng)建的操作系統(tǒng)容器中。
[0054]在某些示例中,被識(shí)別的應(yīng)用在被轉(zhuǎn)移到操作系統(tǒng)容器中之前可以被適配以便在操作系統(tǒng)容器內(nèi)執(zhí)行。例如,與每個(gè)被識(shí)別應(yīng)用的每個(gè)進(jìn)程相對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)可以被按照上述方式更新以適配所述被識(shí)別的應(yīng)用以便在操作系統(tǒng)容器內(nèi)運(yùn)行。在某些示例中,被識(shí)別的應(yīng)用可以在它們轉(zhuǎn)移到新創(chuàng)建的操作系統(tǒng)容器之前還沒(méi)有在任何操作系統(tǒng)容器內(nèi)被執(zhí)行。所述被識(shí)別的應(yīng)用在它們轉(zhuǎn)移到操作系統(tǒng)容器期間可以連續(xù)運(yùn)行。
[0055]然后,所述操作系統(tǒng)容器被遷移(方框620)到第二操作系統(tǒng)環(huán)境。所述被識(shí)別的應(yīng)用可以在操作系統(tǒng)容器到第二操作系統(tǒng)環(huán)境的遷移的之前和之后連續(xù)運(yùn)行,以最小化或消除應(yīng)用中斷時(shí)間。在某些示例中,被識(shí)別應(yīng)用的狀態(tài)可以在操作系統(tǒng)容器的遷移之前被保存,并且在操作系統(tǒng)容器的遷移完成之后被恢復(fù)。另外或可替代地,所述應(yīng)用可以在到第二操作系統(tǒng)環(huán)境的遷移期間連續(xù)執(zhí)行。如此,在操作系統(tǒng)容器到第二操作系統(tǒng)環(huán)境的遷移之前和之后,對(duì)于每個(gè)被識(shí)別應(yīng)用,執(zhí)行的連續(xù)性可以被維持。
[0056]在某些示例中,在操作系統(tǒng)容器到第二操作系統(tǒng)環(huán)境的遷移之后,第一操作系統(tǒng)容器可以被修補(bǔ)或以另外的方式經(jīng)受維護(hù)。一旦第一操作系統(tǒng)環(huán)境上的維護(hù)已被完成,所述操作系統(tǒng)容器可以響應(yīng)于來(lái)自第一操作系統(tǒng)環(huán)境的觸發(fā)器被遷移回第一操作系統(tǒng)環(huán)境。當(dāng)返回到第一操作系統(tǒng)環(huán)境時(shí),所述操作系統(tǒng)容器中的應(yīng)用可以在所述操作系統(tǒng)容器內(nèi)繼續(xù)運(yùn)行,或直接地在第一操作系統(tǒng)環(huán)境內(nèi)當(dāng)?shù)乇粓?zhí)行。在某些示例中,用戶(hù)可以被給出選項(xiàng)來(lái)選擇是在所述操作系統(tǒng)容器內(nèi)繼續(xù)執(zhí)行所述應(yīng)用還是直接地在第一操作系統(tǒng)環(huán)境內(nèi)當(dāng)?shù)貓?zhí)行所述應(yīng)用。
[0057]圖7是示例性計(jì)算設(shè)備(705)的框圖,所述計(jì)算設(shè)備(705)可以被用于實(shí)現(xiàn)與在此描述原理一致的之前圖中的計(jì)算系統(tǒng)(100,405-1, 405-2)、系統(tǒng)體系結(jié)構(gòu)500)和/或方法(600,700)中的任一項(xiàng)。
[0058]在這個(gè)示例性設(shè)備(705)中,基礎(chǔ)的硬件平臺(tái)執(zhí)行機(jī)器可讀指令來(lái)展示期望的功能性。例如,如果所述示例性設(shè)備(705)實(shí)現(xiàn)圖1的計(jì)算系統(tǒng)(100),所述機(jī)器可讀指令可以包括至少用于下述操作的指令:實(shí)現(xiàn)第一操作系統(tǒng)環(huán)境,識(shí)別多個(gè)當(dāng)前在第一操作系統(tǒng)環(huán)境內(nèi)被執(zhí)行的應(yīng)用以便遷移到第二操作系統(tǒng)環(huán)境;在第一操作系統(tǒng)環(huán)境內(nèi)創(chuàng)建新的操作系統(tǒng)容器;把所述被識(shí)別的多個(gè)應(yīng)用轉(zhuǎn)移到所述操作系統(tǒng)容器中;以及把所述操作系統(tǒng)容器遷移到第二操作系統(tǒng)環(huán)境。
[0059]所述示例性設(shè)備(705)的硬件平臺(tái)可以包括至少一個(gè)執(zhí)行在主存儲(chǔ)器(725)中所存儲(chǔ)的代碼的處理器(720)。在某些示例中,所述處理器(720)可以包括至少一個(gè)具有多個(gè)獨(dú)立中央處理單元(CPU)的多核處理器,每個(gè)CPU具有其自己的LI高速緩存并且所有CPU共享公共總線接口和L2高速緩存。另外或可替代地,所述處理器(720)可以包括至少一個(gè)單核處理器。
[0060]所述至少一個(gè)處理器(720)可以通過(guò)主總線(735)通信地耦合到所述硬件平臺(tái)的主存儲(chǔ)器(725)和主機(jī)外圍部件接口橋(PCI) (730)。所述主存儲(chǔ)器(725)可以包括動(dòng)態(tài)非易失存儲(chǔ)器,諸如,隨機(jī)存取存儲(chǔ)器(RAM)。所述主存儲(chǔ)器(725)可以存儲(chǔ)可由所述處理器(720)通過(guò)主總線(735)獲得的可執(zhí)行代碼和數(shù)據(jù)。
[0061]所述主機(jī)PCI橋(730)可以充當(dāng)所述主總線(735)和用于與外圍設(shè)備通信的外圍總線(740)之間的接口。其中的這些外圍設(shè)備可以是與一個(gè)或多個(gè)網(wǎng)絡(luò)通信的一個(gè)或多個(gè)網(wǎng)絡(luò)接口控制器(745 )、用于與本地存儲(chǔ)設(shè)備(755 )通信的接口( 750 )、以及其他外圍輸入/輸出設(shè)備接口(760)。
[0062]本示例中的所述設(shè)備(705)的硬件平臺(tái)的配置僅僅舉例說(shuō)明一類(lèi)可以相對(duì)于本說(shuō)明書(shū)所描述的原理被使用的硬件平臺(tái)。對(duì)所述硬件平臺(tái)的各種修改、添加以及刪除可以被做出而仍然實(shí)現(xiàn)本說(shuō)明書(shū)所描述的原理。
[0063]之前的描述已被給出僅用以圖示和說(shuō)明所述原理的示例。該描述并不旨在窮盡或把這些原理限制到所披露的任何精確形式。依據(jù)上述教導(dǎo),許多修改和變化是可能的。
【權(quán)利要求】
1.一種采用動(dòng)態(tài)操作系統(tǒng)容器(205-1,205-2)遷移應(yīng)用(105-1至105-3)的方法,所述方法包括: 在由至少一個(gè)處理器(720)實(shí)現(xiàn)的第一操作系統(tǒng)環(huán)境中,識(shí)別多個(gè)當(dāng)前在所述第一操作系統(tǒng)環(huán)境內(nèi)被執(zhí)行的應(yīng)用(105-1至105-3)以便遷移到第二操作系統(tǒng)環(huán)境; 在所述第一操作系統(tǒng)環(huán)境內(nèi)創(chuàng)建新的操作系統(tǒng)容器(205-1,205-2); 把所述多個(gè)被識(shí)別的應(yīng)用(105-1至105-3)轉(zhuǎn)移到所述操作系統(tǒng)容器(205-1,205-2)中;以及 把所述操作系統(tǒng)容器(205-1,205-2)遷移到所述第二操作系統(tǒng)環(huán)境。
2.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括:適配所述多個(gè)被識(shí)別的應(yīng)用(105-1至105-3)以便在所述操作系統(tǒng)容器內(nèi)執(zhí)行。
3.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括:在所述操作系統(tǒng)容器(205-1,205-2)到所述第二操作系統(tǒng)環(huán)境的所述遷移之前和之后,維持對(duì)于每個(gè)被識(shí)別的應(yīng)用(105-1至105-3)的執(zhí)行連續(xù)性。
4.根據(jù)權(quán)利要求1所述的方法,其中,在把所述多個(gè)被識(shí)別的應(yīng)用(105-1至105-3)轉(zhuǎn)移到所述操作系統(tǒng)容器(205-1,205-2)之前,所述多個(gè)被識(shí)別的應(yīng)用(105-1至105-3)不在任何操作系統(tǒng)容器內(nèi)被執(zhí)行。
5.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括:所述多個(gè)應(yīng)用(105-1至105-3)在所述第二操作系統(tǒng)環(huán)境上的所述操作系統(tǒng)容器(205-1,205-2)內(nèi)正在被執(zhí)行之時(shí),修補(bǔ)所述第一操作系統(tǒng)環(huán)境。
6.根據(jù)權(quán)利要求1所述的方法,其中,所述第一操作系統(tǒng)環(huán)境和所述第二操作系統(tǒng)環(huán)境中的至少一個(gè)被在虛擬機(jī)內(nèi)實(shí)現(xiàn)。`
7.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括:響應(yīng)于觸發(fā)器,把所述多個(gè)應(yīng)用(105-1至105-3)遷移回所述第一操作系統(tǒng)環(huán)境。
8.一種遷移由計(jì)算系統(tǒng)(100)執(zhí)行的應(yīng)用(105-1至105-3)的方法,所述方法包括: 在由至少一個(gè)處理器(720)實(shí)現(xiàn)的第一操作系統(tǒng)環(huán)境中,接收來(lái)自用戶(hù)的指令來(lái)創(chuàng)建至少第一操作系統(tǒng)容器(205-1)和第二操作系統(tǒng)容器(205-2); 在所述第一操作系統(tǒng)環(huán)境中,接收當(dāng)前在所述第一操作系統(tǒng)環(huán)境內(nèi)正在運(yùn)行的第一數(shù)量應(yīng)用(105-1)到所述第一操作系統(tǒng)容器(205-1)的分配,以及當(dāng)前在所述第一操作系統(tǒng)環(huán)境內(nèi)正在運(yùn)行的第二數(shù)量應(yīng)用(105-2,105-3)到所述第二操作系統(tǒng)容器(205-2)的分配; 把所述第一數(shù)量應(yīng)用(105-1)轉(zhuǎn)移到所述第一操作系統(tǒng)容器(205-1),以及把所述第二數(shù)量應(yīng)用(105-2,105-3)轉(zhuǎn)移到所述第二操作系統(tǒng)容器(205-2); 把所述第一操作系統(tǒng)容器(205-1)遷移到第二操作系統(tǒng)環(huán)境,以及把所述第二操作系統(tǒng)容器(205-2)遷移到第三操作系統(tǒng)環(huán)境。
9.根據(jù)權(quán)利要求8所述的方法,其中,所述第二操作系統(tǒng)環(huán)境和所述第三操作系統(tǒng)環(huán)境由用戶(hù)選擇。
10.根據(jù)權(quán)利要求8所述的方法,進(jìn)一步包括:把所述第一操作系統(tǒng)容器(205-1)分配到所述第二操作系統(tǒng)環(huán)境,以及把所述第二操作系統(tǒng)容器(205-2)分配到所述第三操作系統(tǒng)環(huán)境,所述分配基于:a)所述第二操作系統(tǒng)環(huán)境和所述第三操作系統(tǒng)環(huán)境中處理資源的可用性,以及b)由所述第一數(shù)量應(yīng)用(105-1)和所述第二數(shù)量應(yīng)用(105-2, 105-3)中的每個(gè)應(yīng)用(105-1至105-3)消耗的處理資源的數(shù)量。
11.根據(jù)權(quán)利要求8所述的方法,進(jìn)一步包括:動(dòng)態(tài)地創(chuàng)建所述第二操作系統(tǒng)環(huán)境和所述第三操作系統(tǒng)環(huán)境中的至少一個(gè),作為所述第一操作系統(tǒng)容器(205-1)和所述第二操作系統(tǒng)容器(205-2)中的至少一個(gè)的目的地。
12.—種系統(tǒng),包括: 至少一個(gè)處理器(720); 存儲(chǔ)器(725),通信地耦合至所述至少一個(gè)處理器(720),所述存儲(chǔ)器(725)包括可執(zhí)行代碼,當(dāng)所述可執(zhí)行代碼由所述至少一個(gè)處理器(720 )執(zhí)行時(shí),所述可執(zhí)行代碼使所述至少一個(gè)處理器(720): 實(shí)現(xiàn)第一操作系統(tǒng)環(huán)境; 識(shí)別多個(gè)當(dāng)前在所述第一操作系統(tǒng)環(huán)境內(nèi)被執(zhí)行的應(yīng)用(105-1至105-3)以便遷移到第二操作系統(tǒng)環(huán)境; 在所述第一操作系統(tǒng)環(huán)境內(nèi)創(chuàng)建新的操作系統(tǒng)容器(205-1,205-2); 把所述多個(gè)被識(shí)別的應(yīng)用(105-1至105-3)轉(zhuǎn)移到所述操作系統(tǒng)容器(205-1,205-2)中;以及 把所述操作系統(tǒng)容器(205-1,205-2)遷移到所述第二操作系統(tǒng)環(huán)境。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),所述可執(zhí)行代碼進(jìn)一步使所述至少一個(gè)處理器(720)適配所述多個(gè)被識(shí)別的應(yīng)用(105-1至105-3)以便在所述操作系統(tǒng)容器(205-1,205-2)內(nèi)執(zhí)行。
14.根據(jù)權(quán)利要求12所述的系統(tǒng),所述可執(zhí)行代碼進(jìn)一步使所述至少一個(gè)處理器(720)響應(yīng)于觸發(fā)器,把所述多個(gè)被識(shí)別的應(yīng)用(105-1至105-3)遷移回所述第一操作系統(tǒng)環(huán)境。
15.根據(jù)權(quán)利要求12所述的系統(tǒng),所述可執(zhí)行代碼進(jìn)一步使所述至少一個(gè)處理器(720)在所述多個(gè)應(yīng)用(105-1至105-3)在所述第二操作系統(tǒng)環(huán)境上的所述操作系統(tǒng)容器(205-1,205-2)內(nèi)正在被執(zhí)行之時(shí),修補(bǔ)所述第一操作系統(tǒng)環(huán)境。
【文檔編號(hào)】G06F9/06GK103620552SQ201180071938
【公開(kāi)日】2014年3月5日 申請(qǐng)日期:2011年6月29日 優(yōu)先權(quán)日:2011年6月29日
【發(fā)明者】W-Y.蘇 申請(qǐng)人:惠普發(fā)展公司,有限責(zé)任合伙企業(yè)