一種應(yīng)用容器遷移的方法及裝置的制造方法
【專利摘要】本發(fā)明公開(kāi)了一種應(yīng)用容器遷移的方法及裝置,獲取與Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件以及與所述Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件;解析所述初始腳本文件,生成與Xen運(yùn)行環(huán)境關(guān)聯(lián)的磁盤文件,以及解析所述第一配置文件,生成與Xen運(yùn)行環(huán)境中所述容器關(guān)聯(lián)的第二配置文件;將所述磁盤文件和所述第二配置文件發(fā)送至Xen宿主物理服務(wù)器,以使所述Xen宿主物理服務(wù)器根據(jù)所述磁盤文件和所述第二配置文件生成Xen虛擬服務(wù)器。本發(fā)明實(shí)施例提供的應(yīng)用容器遷移的方法及裝置,能夠?qū)崿F(xiàn)將Docker中應(yīng)用遷移到Xen,提高應(yīng)用環(huán)境的隔離性能和穩(wěn)定性能。
【專利說(shuō)明】
一種應(yīng)用容器遷移的方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種應(yīng)用容器迀移的方法及裝置。
【背景技術(shù)】
[0002]Docker是基于LXC(Linux Container,Linux容器)的應(yīng)用程序容器引擎,旨在提供一種應(yīng)用程序的自動(dòng)化部署解決方案。在Linux系統(tǒng)上創(chuàng)建一個(gè)容器并部署和運(yùn)行應(yīng)用程序,并通過(guò)配置文件可以輕松實(shí)現(xiàn)應(yīng)用程序的自動(dòng)化安裝、部署和升級(jí),非常方便。Docker虛擬出多個(gè)容器,每個(gè)容器之間相互隔離沒(méi)有接口,可以將彼此的生產(chǎn)環(huán)境和開(kāi)發(fā)環(huán)境分開(kāi),互不影響。
[0003]Docker主要具有以下優(yōu)勢(shì):(I)簡(jiǎn)化部署多種應(yīng)用,例如Web應(yīng)用、后臺(tái)應(yīng)用、數(shù)據(jù)庫(kù)應(yīng)用、Hadoop(海杜普)集群、消息隊(duì)列等等都可以打包成一個(gè)部署;(2)解決了硬件管理的問(wèn)題,引導(dǎo)開(kāi)發(fā)者將應(yīng)用轉(zhuǎn)移到云上;(3)采用虛擬化手段來(lái)滿足用戶按需分配的資源需求以及保證可用性和隔離性。雖然和傳統(tǒng)的虛擬機(jī)相比,Docker在性能和系統(tǒng)的占用上提升了不少,但在也存在缺點(diǎn),例如隔離性較差、對(duì)操作系統(tǒng)版本要求較高。
[0004]Xen作為一個(gè)開(kāi)放源代碼虛擬機(jī)監(jiān)視器,可以在不停止的情況下在多個(gè)物理主機(jī)之間實(shí)時(shí)迀移,具有隔離性好、穩(wěn)定性較高、對(duì)操作系統(tǒng)版本要求較低的優(yōu)點(diǎn)。
[0005]Docker作為時(shí)下最流行的輕量級(jí)虛擬化技術(shù),正在給業(yè)界帶來(lái)一場(chǎng)顛覆性的技術(shù)革命,隨著Docker技術(shù)應(yīng)用規(guī)模越來(lái)越大,Docker往往作為需要快速上線的創(chuàng)新業(yè)務(wù)的虛擬化手段,當(dāng)創(chuàng)新業(yè)務(wù)發(fā)展到一定程度時(shí),限制于其隔離性穩(wěn)定性較差,往往需要將其迀移到更加穩(wěn)定的虛擬機(jī)平臺(tái),如虛擬監(jiān)視器Xen。
[0006]綜上所示,目前還沒(méi)有將Docker迀移到Xen的解決方案。
【發(fā)明內(nèi)容】
[0007]本發(fā)明提供一種應(yīng)用容器迀移的方法及裝置,用以解決沒(méi)有將Docker迀移到Xen的解決方案的問(wèn)題。
[0008]本發(fā)明實(shí)施例提供一種應(yīng)用容器迀移的方法,包括:
[0009]獲取與Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件以及與所述Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件;
[0010]解析所述初始腳本文件,生成與Xen運(yùn)行環(huán)境關(guān)聯(lián)的磁盤文件,以及解析所述第一配置文件,生成與Xen運(yùn)行環(huán)境中所述容器關(guān)聯(lián)的第二配置文件;
[0011 ]將所述磁盤文件和所述第二配置文件發(fā)送至Xen宿主物理服務(wù)器,以使所述Xen宿主物理服務(wù)器根據(jù)所述磁盤文件和所述第二配置文件生成Xen虛擬服務(wù)器。
[0012]可選的,所述獲取與Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件,包括:
[0013]從Docker Registry服務(wù)器上獲取Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件;
[0014]獲取與所述Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件,包括:
[0015]從Docker宿主物理服務(wù)器查詢所述Docker運(yùn)行環(huán)境中的多個(gè)服務(wù)關(guān)聯(lián)的第一配置文件。
[0016]可選的,所述從Docker Registry服務(wù)器上獲取Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件之后,生成與Xen運(yùn)行環(huán)境關(guān)聯(lián)的磁盤文件之前,還包括:
[0017]確定從所述DockerRegistry服務(wù)器上獲取的所述初始腳本文件對(duì)應(yīng)的第一消息摘要算法第五版MD5值,與根據(jù)所述初始腳本文件生成的第二MD5值相同。
[0018]可選的,所述解析所述初始腳本文件,生成與Xen運(yùn)行環(huán)境關(guān)聯(lián)的磁盤文件,包括:
[0019]根據(jù)所述初始腳本文件,獲取Docker操作系統(tǒng)的標(biāo)識(shí),以及確定生成Xen虛擬服務(wù)器磁盤的流程信息;
[0020]將所述生成Xen虛擬服務(wù)器磁盤的流程信息和所述Docker操作系統(tǒng)的標(biāo)識(shí)作為所述磁盤文件,以使所述Xen宿主物理服務(wù)器執(zhí)行所述磁盤文件。
[0021]可選的,所述第一配置文件包括以下中的部分或全部:
[0022]每個(gè)容器對(duì)應(yīng)的CPU(Central Processing Unit,中央處理器)使用率配置文件、每個(gè)容器對(duì)應(yīng)的內(nèi)存利用率、每個(gè)容器對(duì)應(yīng)的磁盤利用率、每個(gè)容器對(duì)應(yīng)的網(wǎng)絡(luò)配置;
[0023]所述解析所述第一配置文件,生成與Xen運(yùn)行環(huán)境中所述容器關(guān)聯(lián)的第二配置文件,包括:
[0024]通過(guò)第一解析器將所述第一配置文件讀入內(nèi)存中,并解析為內(nèi)存對(duì)象;
[0025]根據(jù)所述內(nèi)存對(duì)象生成可擴(kuò)展標(biāo)記語(yǔ)言XML文件,將所述XML文件作為所述第二配置文件。
[0026]可選的,所述解析所述初始腳本文件,生成與Xen運(yùn)行環(huán)境關(guān)聯(lián)的磁盤文件,解析所述第一配置文件,生成與Xen運(yùn)行環(huán)境中所述容器關(guān)聯(lián)的第二配置文件之后,還包括:
[0027]根據(jù)所述磁盤文件和所述第二配置文件,生成第三MD5值;
[0028]將所述第三MD5值發(fā)送至所述Xen宿主物理服務(wù)器,以使Xen宿主物理服務(wù)器根據(jù)所述第三MD5值校驗(yàn)所述磁盤文件和所述第二配置文件。
[0029]本發(fā)明實(shí)施例還提供一種應(yīng)用容器迀移的方法,包括:
[0030]接收磁盤文件和第二配置文件,其中所述磁盤文件是根據(jù)Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件解析生成,所述第二配置文件是根據(jù)Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件解析生成;
[0031]根據(jù)所述磁盤文件和所述第二配置文件,生成Xen虛擬服務(wù)器。
[0032]可選的,所述根據(jù)所述磁盤文件和所述第二配置文件,生成Xen虛擬服務(wù)器,包括:
[0033]確定所述磁盤文件中的流程信息,并根據(jù)所述流程信息執(zhí)行磁盤生成過(guò)程;
[0034]在執(zhí)行完磁盤生成過(guò)程后,加載所述第二配置文件,生成Xen虛擬服務(wù)器;
[0035]其中,磁盤生成過(guò)程為:
[0036]根據(jù)所述磁盤文件中Docker操作系統(tǒng)的標(biāo)識(shí),獲取所述Docker操作系統(tǒng)的鏡像,并掛載所述Docker操作系統(tǒng)的鏡像;
[0037]在所述掛載的Docker操作系統(tǒng)的鏡像上初始化所述初始腳本文件的環(huán)境信息;
[0038]通過(guò)第二解析器將所述確定初始化的環(huán)境信息解析成殼Shell文件,在確認(rèn)生成所述Shell文件后卸載所述Docker操作系統(tǒng)的鏡像。
[0039]可選的,所述根據(jù)所述Docker操作系統(tǒng)的標(biāo)識(shí),獲取所述Docker操作系統(tǒng)的鏡像,并掛載所述Docker操作系統(tǒng)的鏡像,包括:[0040 ]若所述緩存中存儲(chǔ)了所述Do cker操作系統(tǒng)的標(biāo)識(shí)對(duì)應(yīng)的Do cker操作系統(tǒng)的鏡像,則獲取所述Docker操作系統(tǒng)的鏡像;
[0041 ]若所述緩存中未存儲(chǔ)所述Docker操作系統(tǒng)的標(biāo)識(shí)對(duì)應(yīng)的Docker操作系統(tǒng)的鏡像,則讀取Xen鏡像服務(wù)器中的所述Docker操作系統(tǒng)的鏡像。
[0042]可選的,所述接收磁盤文件和第二配置文件之后,還包括:
[0043]接收第三MD5值,其中所述第三MD5值由Docker宿主物理服務(wù)器根據(jù)所述磁盤文件和所述第二配置文件生成;
[0044]確定所述第三MD5值與根據(jù)所述磁盤文件和所述第二配置文件生成的第四MD5值相同。
[0045]本發(fā)明實(shí)施例還提供一種應(yīng)用容器迀移的裝置,包括:
[0046]獲取單元:用于獲取與Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件以及與所述Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件;
[0047]解析單元:用于解析所述初始腳本文件,生成與Xen運(yùn)行環(huán)境關(guān)聯(lián)的磁盤文件,以及解析所述第一配置文件,生成與Xen運(yùn)行環(huán)境中所述容器關(guān)聯(lián)的第二配置文件;
[0048]發(fā)送單元:用于將所述磁盤文件和所述第二配置文件發(fā)送至Xen宿主物理服務(wù)器,以使所述Xen宿主物理服務(wù)器根據(jù)所述磁盤文件和所述第二配置文件生成Xen虛擬服務(wù)器。
[0049]可選的,所述獲取單元還用于:
[OOM] 從Docker Registry服務(wù)器上獲取Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件;
[0051]獲取與所述Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件,包括:
[0052]從Docker宿主物理服務(wù)器查詢所述Docker運(yùn)行環(huán)境中的多個(gè)服務(wù)關(guān)聯(lián)的第一配置文件。
[0053]可選的,所述獲取單元,還用于:
[0054]確定從所述Docker Registry服務(wù)器上獲取的所述初始腳本文件對(duì)應(yīng)的第一MD5值,與根據(jù)所述初始腳本文件生成的第二MD5值相同。
[0055]可選的,所述解析單元,還用于:
[0056]根據(jù)所述初始腳本文件,獲取Docker操作系統(tǒng)的標(biāo)識(shí),以及確定生成Xen虛擬服務(wù)器磁盤的流程信息;
[0057]將所述生成Xen虛擬服務(wù)器磁盤的流程信息和所述Docker操作系統(tǒng)的標(biāo)識(shí)作為所述磁盤文件,以使所述Xen宿主物理服務(wù)器執(zhí)行所述磁盤文件。
[0058]可選的,所述第一配置文件包括以下中的部分或全部:
[0059]每個(gè)容器對(duì)應(yīng)的CPU使用率配置文件、每個(gè)容器對(duì)應(yīng)的內(nèi)存利用率、每個(gè)容器對(duì)應(yīng)的磁盤利用率、每個(gè)容器對(duì)應(yīng)的網(wǎng)絡(luò)配置;
[0060]所述解析單元,還用于:
[0061 ]通過(guò)第一解析器將所述第一配置文件讀入內(nèi)存中,并解析為內(nèi)存對(duì)象;
[0062]根據(jù)所述內(nèi)存對(duì)象生成可擴(kuò)展標(biāo)記語(yǔ)言XML文件,將所述XML文件作為所述第二配置文件。
[0063]可選的,所述解析單元,還用于:
[0064]根據(jù)所述磁盤文件和所述第二配置文件,生成第三MD5值;
[0065]將所述第三MD5值發(fā)送至所述Xen宿主物理服務(wù)器,以使Xen宿主物理服務(wù)器根據(jù)所述第三MD5值校驗(yàn)所述磁盤文件和所述第二配置文件。
[0066]本發(fā)明實(shí)施例還提供一種應(yīng)用容器迀移的裝置,包括:
[0067]接收單元:用于接收磁盤文件和第二配置文件,其中所述磁盤文件是根據(jù)Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件解析生成,所述第二配置文件是根據(jù)Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件解析生成;
[0068]生成單元:用于根據(jù)所述磁盤文件和所述第二配置文件,生成Xen虛擬服務(wù)器。
[0069]可選的,所述生成單元,還用于:
[0070]確定所述磁盤文件中的流程信息,并根據(jù)所述流程信息執(zhí)行磁盤生成過(guò)程;
[0071 ]在執(zhí)行完磁盤生成過(guò)程后,加載所述第二配置文件,生成Xen虛擬服務(wù)器;
[0072]其中,磁盤生成過(guò)程為:
[0073]根據(jù)所述磁盤文件中Docker操作系統(tǒng)的標(biāo)識(shí),獲取所述Docker操作系統(tǒng)的鏡像,并掛載所述Docker操作系統(tǒng)的鏡像;
[0074]在所述掛載的Docker操作系統(tǒng)的鏡像上初始化所述初始腳本文件的環(huán)境信息;
[0075]通過(guò)第二解析器將所述確定初始化的環(huán)境信息解析成殼Shell文件,在確認(rèn)生成所述Shell文件后卸載所述Docker操作系統(tǒng)的鏡像。
[0076]可選的,所述生成單元,還用于:
[0077]若所述緩存中存儲(chǔ)了所述Docker操作系統(tǒng)的標(biāo)識(shí)對(duì)應(yīng)的Docker操作系統(tǒng)的鏡像,則獲取所述Docker操作系統(tǒng)的鏡像;
[0078]若所述緩存中未存儲(chǔ)所述Docker操作系統(tǒng)的標(biāo)識(shí)對(duì)應(yīng)的Docker操作系統(tǒng)的鏡像,則讀取Xen鏡像服務(wù)器中的所述Docker操作系統(tǒng)的鏡像。
[0079]可選的,所述接收單元,還用于:
[0080]接收第三MD5值,其中所述第三MD5值由Docker宿主物理服務(wù)器根據(jù)所述磁盤文件和所述第二配置文件生成;
[0081]確定所述第三MD5值與根據(jù)所述磁盤文件和所述第二配置文件生成的第四MD5值相同。
[0082]本發(fā)明實(shí)施例提供了一種應(yīng)用容器迀移的方法及裝置,獲取與Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件以及與所述Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件;解析所述初始腳本文件,生成與Xen運(yùn)行環(huán)境關(guān)聯(lián)的磁盤文件,以及解析所述第一配置文件,生成與Xen運(yùn)行環(huán)境中所述容器關(guān)聯(lián)的第二配置文件;將所述磁盤文件和所述第二配置文件發(fā)送至Xen宿主物理服務(wù)器,以使所述Xen宿主物理服務(wù)器根據(jù)所述磁盤文件和所述第二配置文件生成Xen虛擬服務(wù)器。本發(fā)明實(shí)施例提供的應(yīng)用容器迀移的方法及裝置,能夠?qū)崿F(xiàn)將Docker中應(yīng)用迀移到Xen,提高應(yīng)用環(huán)境的隔離性能和穩(wěn)定性能。
【附圖說(shuō)明】
[0083]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)要介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0084]圖1為本發(fā)明實(shí)施例提供的一種應(yīng)用容器迀移的方法流程示意圖;
[0085]圖2為本發(fā)明實(shí)施例提供的另一種應(yīng)用容器迀移的方法流程示意圖;
[0086]圖3為本發(fā)明實(shí)施例提供的一種生成磁盤的方法流程示意圖;
[0087]圖4為本發(fā)明實(shí)施例提供的一種應(yīng)用容器迀移的裝置結(jié)構(gòu)示意圖;
[0088]圖5為本發(fā)明實(shí)施例提供的另一種應(yīng)用容器迀移的裝置結(jié)構(gòu)示意圖;
[0089]圖6為本發(fā)明實(shí)施例提供的一種應(yīng)用容器迀移的裝置結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0090]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部份實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0091]本發(fā)明實(shí)施例提供一種應(yīng)用容器迀移的方法,對(duì)應(yīng)的執(zhí)行主體為Docker宿主物理服務(wù)器。如圖1所示,為本發(fā)明實(shí)施例提供的一種應(yīng)用容器迀移的方法流程示意圖,包括:
[0092]步驟101:獲取與Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件以及與Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件。
[0093]具體地,Docker中的重要組件Docker Registry服務(wù)器為Docker編寫注冊(cè)服務(wù),提供了對(duì)Docker鏡像文件進(jìn)行管理的服務(wù)。因此,Docker宿主物理服務(wù)器可以從DockerRegistry服務(wù)器上獲取Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件,如build, file腳本文件。
[0094]進(jìn)一步地,Docker宿主物理服務(wù)從Docker Registry服務(wù)器上獲取的初始腳本文件build.file時(shí),可以獲取其對(duì)應(yīng)的第一MD5值(Message Digest Algorithm,消息摘要算法第五版)。此外,Docker宿主物理服務(wù)可以根據(jù)獲取到的初始腳本文件build.file生成第二MD5值。當(dāng)確定第一MD5值和第二MD5值相同時(shí),則可以確定初始腳本文件從DockerRegistry服務(wù)器到Docker宿主物理服務(wù)的傳輸過(guò)程是安全的。
[0095]其中,初始腳本文件build.file包含以下中的部分或全部:Docker啟動(dòng)時(shí)需要配置的環(huán)境變量、操作系統(tǒng)鏡像、啟動(dòng)后執(zhí)行的指令、IP地址、端口號(hào)、存儲(chǔ)資源。
[0096]具體地,Docker宿主物理服務(wù)器可以包含多個(gè)容器,每個(gè)容器可以包含多個(gè)應(yīng)用服務(wù),例如,Apache (阿帕奇)、PHP5 (Hypertext Preprocessor,超文本預(yù)處理器)以及MySQL(關(guān)系型數(shù)據(jù)庫(kù)管理應(yīng)用)等。針對(duì)一個(gè)容器,從本地服務(wù)器查詢Docker運(yùn)行環(huán)境中的該容器包含的多個(gè)服務(wù)關(guān)聯(lián)的第一配置文件,如base, json配置文件。
[0097]其中,第一配置文件base,json包括以下中的部分或全部:每個(gè)容器對(duì)應(yīng)的CPU使用率配置文件、每個(gè)容器對(duì)應(yīng)的內(nèi)存利用率、每個(gè)容器對(duì)應(yīng)的磁盤利用率、每個(gè)容器對(duì)應(yīng)的網(wǎng)絡(luò)配置、Docker標(biāo)識(shí)、Docker宿主物理服務(wù)器的標(biāo)識(shí)。
[0098]步驟102:解析初始腳本文件,生成與Xen運(yùn)行環(huán)境關(guān)聯(lián)的磁盤文件,以及解析第一配置文件,生成與Xen運(yùn)行環(huán)境中容器關(guān)聯(lián)的第二配置文件。
[00"] 具體地,Docker宿主物理服務(wù)器根據(jù)初始腳本文件bui Id.file,獲取Docker操作系統(tǒng)的標(biāo)識(shí),例如UNIX(尤尼斯)操作系統(tǒng)。以及確定生成Xen虛擬服務(wù)器磁盤的流程信息;將生成Xen虛擬服務(wù)器磁盤的流程信息和Docker操作系統(tǒng)的標(biāo)識(shí)作為磁盤文件,如qemu.sh磁盤文件,以使Xen宿主物理服務(wù)器執(zhí)行磁盤文件qemu.sh。
[0100]具體地,Docker宿主物理服務(wù)器通過(guò)第一解析器如本地解析器將第一配置文件base.json讀入內(nèi)存中,并解析為內(nèi)存對(duì)象,如java對(duì)象。根據(jù)內(nèi)存對(duì)象生成可擴(kuò)展標(biāo)記語(yǔ)言XML文件,如I ibvert.xml,將XML文件I ibvert.xml作為第二配置文件。
[0101]步驟103:將磁盤文件和第二配置文件發(fā)送至Xen宿主物理服務(wù)器,以使Xen宿主物理服務(wù)器根據(jù)磁盤文件和第二配置文件生成Xen虛擬服務(wù)器。
[0102]進(jìn)一步地,Docker宿主物理服務(wù)器可以根據(jù)磁盤文件qemu.sh和第二配置文件libvert.xml生成第三MD5值文件,如vm.md5。并將磁盤文件qemu.sh、第二配置文件I ibvert.xml及第三MD5值文件vm.md5發(fā)送至Xen宿主物理服務(wù)器。以使Xen宿主物理服務(wù)器根據(jù)第三MD5值校驗(yàn)磁盤文件和第二配置文件,并生成Xen虛擬服務(wù)器。
[0103]本發(fā)明實(shí)施例提供了一種應(yīng)用容器迀移的方法,獲取與Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件以及與所述Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件;解析所述初始腳本文件,生成與Xen運(yùn)行環(huán)境關(guān)聯(lián)的磁盤文件,以及解析所述第一配置文件,生成與Xen運(yùn)行環(huán)境中所述容器關(guān)聯(lián)的第二配置文件;將所述磁盤文件和所述第二配置文件發(fā)送至Xen宿主物理服務(wù)器,以使所述Xen宿主物理服務(wù)器根據(jù)所述磁盤文件和所述第二配置文件生成Xen虛擬服務(wù)器。本發(fā)明實(shí)施例提供的應(yīng)用容器迀移的方法,能夠?qū)崿F(xiàn)將Docker中應(yīng)用迀移到Xen,提高應(yīng)用環(huán)境的隔離性能和穩(wěn)定性能。
[0104]基于同樣的發(fā)明構(gòu)思,本發(fā)明實(shí)施例提供另一種應(yīng)用容器迀移的方法,對(duì)應(yīng)的執(zhí)行主體為Xen宿主物理服務(wù)器。如圖2所示,為本發(fā)明實(shí)施例提供的另一種應(yīng)用容器迀移的方法流程示意圖,包括:
[0105]步驟201:接收磁盤文件和第二配置文件,其中磁盤文件是根據(jù)Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件解析生成,第二配置文件是根據(jù)Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件解析生成。
[0106]其中,初始腳本文件可以為build,file文件,第一配置文件可以為base, json文件;磁盤文件可以為qemu.sh文件,第二配置文件可以為I ibvert.xml文件。
[0107]具體地,步驟201中Xen宿主物理服務(wù)器還可以接收第三MD5值文件vm.md5,其中第三MD5值由Docker宿主物理服務(wù)器根據(jù)磁盤文件qemu.sh和第二配置文件I ibvert.xml生成;此外,Xen宿主物理服務(wù)器根據(jù)接收到的磁盤文件qemu.sh和第二配置文件I ibvert.xml生成第四MD5值。當(dāng)確定第三MD5值和第四MD5值相同時(shí),則可以確定磁盤文件qemu.sh和第二配置文件libvert.xml從Docker宿主物理服務(wù)到Xen宿主物理服務(wù)器的傳輸過(guò)程是安全的。
[0108]步驟202:根據(jù)磁盤文件和第二配置文件,生成Xen虛擬服務(wù)器。
[0109]具體地,本步驟中Xen宿主物理服務(wù)器首先確定磁盤文件中的流程信息,并根據(jù)流程信息執(zhí)行磁盤生成過(guò)程。在執(zhí)行完磁盤生成過(guò)程后,加載第二配置文件,生成Xen虛擬服務(wù)器。
[0110]如圖3為本發(fā)明實(shí)施例提供的一種生成磁盤的方法流程示意圖,如圖3所示,磁盤生成過(guò)程包括:
[0111]步驟301:根據(jù)磁盤文件中Docker操作系統(tǒng)的標(biāo)識(shí),獲取Docker操作系統(tǒng)的鏡像,并掛載Docker操作系統(tǒng)的鏡像。
[0112]具體地,磁盤文件中Docker操作系統(tǒng)的標(biāo)識(shí),例如為UNIX,則Xen宿主物理服務(wù)器在緩存中查詢是否存儲(chǔ)UNIX操作系統(tǒng)的鏡像。若緩存中存儲(chǔ)了UNIX操作系統(tǒng)的鏡像,則獲取UNIX操作系統(tǒng)的鏡像;若緩存中未存儲(chǔ)UNIX操作系統(tǒng)的鏡像,則讀取Xen鏡像服務(wù)器中的UNIX操作系統(tǒng)的鏡像;然后Xen宿主物理服務(wù)器掛載UNIX操作系統(tǒng)的鏡像。
[0113]進(jìn)一步地,在步驟301中,還可以獲取Docker的標(biāo)識(shí),并將所述Docker的標(biāo)識(shí)作為建立Xen虛擬機(jī)的文件夾的名稱。
[0114]步驟302:在掛載的Docker操作系統(tǒng)的鏡像上初始化初始腳本文件的環(huán)境信息。
[0115]具體地,在掛在UNIX操作系統(tǒng)的鏡像上初始化初始腳本文件build,file的環(huán)境信息,即Docker啟動(dòng)時(shí)需要配置的環(huán)境變量信息。
[0116]步驟303:通過(guò)第二解析器將確定初始化的環(huán)境信息解析成殼Shell文件,在確認(rèn)生成Shel I文件后卸載Docker操作系統(tǒng)的鏡像。
[0117]具體地,通過(guò)第二解析器如命令解析器將確定初始化的環(huán)境信息解析成Shell文件,Shell可以接收用戶命令,并調(diào)用相應(yīng)的應(yīng)用程序。在確認(rèn)生成Shell文件后,卸載UNIX操作系統(tǒng)的鏡像。
[0118]進(jìn)一步地,上述磁盤生成過(guò)程可以通過(guò)QEMU(虛擬操作系統(tǒng)模擬器)執(zhí)行。在執(zhí)行完磁盤生成過(guò)程后,通過(guò)加載第二配置文件libvert.xml,即可以啟動(dòng)生成的Xen虛擬服務(wù)器。從而完成了將Docker宿主物理服務(wù)器中容器中的應(yīng)用服務(wù)如Apache、PHP5、MySQL等迀移到Xen虛擬服務(wù)器的過(guò)程,使得這些應(yīng)用可以直接運(yùn)行在生成的Xen虛擬服務(wù)器中。
[0119]基于同樣的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種應(yīng)用容器迀移的裝置,如圖4所示,對(duì)應(yīng)的實(shí)體裝置為Docker宿主物理服務(wù)器。為本發(fā)明實(shí)施例提供的一種應(yīng)用容器迀移的裝置結(jié)構(gòu)示意圖,包括:
[0120]獲取單元401:用于獲取與Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件以及與所述Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件;
[0121 ]解析單元402:用于解析所述初始腳本文件,生成與Xen運(yùn)行環(huán)境關(guān)聯(lián)的磁盤文件,以及解析所述第一配置文件,生成與Xen運(yùn)行環(huán)境中所述容器關(guān)聯(lián)的第二配置文件;
[0122]發(fā)送單元403:用于將所述磁盤文件和所述第二配置文件發(fā)送至Xen宿主物理服務(wù)器,以使所述Xen宿主物理服務(wù)器根據(jù)所述磁盤文件和所述第二配置文件生成Xen虛擬服務(wù)器。
[0123]可選的,所述獲取單元401還用于:
[ΟΙ24] 從Docker Registry服務(wù)器上獲取Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件;
[0125]獲取與所述Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件,包括:
[0126]從Docker宿主物理服務(wù)器查詢所述Docker運(yùn)行環(huán)境中的多個(gè)服務(wù)關(guān)聯(lián)的第一配置文件。
[0127]可選的,所述獲取單元401,還用于:
[ΟΙ28] 確定從所述Docker Registry服務(wù)器上獲取的所述初始腳本文件對(duì)應(yīng)的第一MD5值,與根據(jù)所述初始腳本文件生成的第二MD5值相同。
[0129]可選的,所述解析單元402,還用于:
[0130]根據(jù)所述初始腳本文件,獲取Docker操作系統(tǒng)的標(biāo)識(shí),以及確定生成Xen虛擬服務(wù)器磁盤的流程信息;
[0131]將所述生成Xen虛擬服務(wù)器磁盤的流程信息和所述Docker操作系統(tǒng)的標(biāo)識(shí)作為所述磁盤文件,以使所述Xen宿主物理服務(wù)器執(zhí)行所述磁盤文件。
[0132]可選的,所述第一配置文件包括以下中的部分或全部:
[0133]每個(gè)容器對(duì)應(yīng)的CPU使用率配置文件、每個(gè)容器對(duì)應(yīng)的內(nèi)存利用率、每個(gè)容器對(duì)應(yīng)的磁盤利用率、每個(gè)容器對(duì)應(yīng)的網(wǎng)絡(luò)配置;
[0134]所述解析單元402,還用于:
[0135]通過(guò)解析器將所述第一配置文件讀入內(nèi)存中,并解析為內(nèi)存對(duì)象;
[0136]根據(jù)所述內(nèi)存對(duì)象生成可擴(kuò)展標(biāo)記語(yǔ)言XML文件,將所述XML文件作為所述第二配置文件。
[0137]可選的,所述解析單元402,還用于:
[0138]根據(jù)所述磁盤文件和所述第二配置文件,生成第三MD5值;
[0139]將所述第三MD5值發(fā)送至所述Xen宿主物理服務(wù)器,以使Xen宿主物理服務(wù)器根據(jù)所述第三MD5值校驗(yàn)所述磁盤文件和所述第二配置文件。
[0140]本發(fā)明實(shí)施例提供了一種應(yīng)用容器迀移的裝置,獲取與Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件以及與所述Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件;解析所述初始腳本文件,生成與Xen運(yùn)行環(huán)境關(guān)聯(lián)的磁盤文件,以及解析所述第一配置文件,生成與Xen運(yùn)行環(huán)境中所述容器關(guān)聯(lián)的第二配置文件;將所述磁盤文件和所述第二配置文件發(fā)送至Xen宿主物理服務(wù)器,以使所述Xen宿主物理服務(wù)器根據(jù)所述磁盤文件和所述第二配置文件生成Xen虛擬服務(wù)器。本發(fā)明實(shí)施例提供的應(yīng)用容器迀移的裝置,能夠?qū)崿F(xiàn)將Docker中應(yīng)用迀移到Xen,提高應(yīng)用環(huán)境的隔離性能和穩(wěn)定性能。
[0141]基于同樣的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供另一種應(yīng)用容器迀移的裝置,對(duì)應(yīng)的實(shí)體裝置為Xen宿主物理服務(wù)器。如圖5所示,為本發(fā)明實(shí)施例提供的另一種應(yīng)用容器迀移的裝置結(jié)構(gòu)示意圖,包括:
[0142]接收單元501:用于接收磁盤文件和第二配置文件,其中所述磁盤文件是根據(jù)Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件解析生成,所述第二配置文件是根據(jù)Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件解析生成;
[0143]生成單元502:用于根據(jù)所述磁盤文件和所述第二配置文件,生成Xen虛擬服務(wù)器。
[0144]可選的,所述生成單元502,還用于:
[0145]確定所述磁盤文件中的流程信息,并根據(jù)所述流程信息執(zhí)行磁盤生成過(guò)程;
[0146]在執(zhí)行完磁盤生成過(guò)程后,加載所述第二配置文件,生成Xen虛擬服務(wù)器;
[0147]其中,磁盤生成過(guò)程為:
[0148]根據(jù)所述磁盤文件中Docker操作系統(tǒng)的標(biāo)識(shí),獲取所述Docker操作系統(tǒng)的鏡像,并掛載所述Docker操作系統(tǒng)的鏡像;
[0149]在所述掛載的Docker操作系統(tǒng)的鏡像上初始化所述初始腳本文件的環(huán)境信息;
[0150]通過(guò)第一解析器將所述確定初始化的環(huán)境信息解析成殼Shell文件,在確認(rèn)生成所述Shell文件后卸載所述Docker操作系統(tǒng)的鏡像。
[0151]可選的,所述生成單元502,還用于:
[0152]若所述緩存中存儲(chǔ)了所述Docker操作系統(tǒng)的標(biāo)識(shí)對(duì)應(yīng)的Docker操作系統(tǒng)的鏡像,則獲取所述Docker操作系統(tǒng)的鏡像;
[0153]若所述緩存中未存儲(chǔ)所述Docker操作系統(tǒng)的標(biāo)識(shí)對(duì)應(yīng)的Docker操作系統(tǒng)的鏡像,則讀取Xen鏡像服務(wù)器中的所述Docker操作系統(tǒng)的鏡像。
[0154]可選的,所述接收單元501,還用于:
[0155]接收第三MD5值,其中所述第三MD5值由Docker宿主物理服務(wù)器根據(jù)所述磁盤文件和所述第二配置文件生成;
[0156]確定所述第三MD5值與根據(jù)所述磁盤文件和所述第二配置文件生成的第四MD5值相同。
[0157]本發(fā)明實(shí)施例提供了一種應(yīng)用容器迀移的裝置,接收磁盤文件和第二配置文件,其中所述磁盤文件是根據(jù)Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件解析生成,所述第二配置文件是根據(jù)Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件解析生成;根據(jù)所述磁盤文件和所述第二配置文件,生成Xen虛擬服務(wù)器。本發(fā)明實(shí)施例提供的應(yīng)用容器迀移的裝置,能夠?qū)崿F(xiàn)將Docker中應(yīng)用迀移到Xen,提高應(yīng)用環(huán)境的隔離性能和穩(wěn)定性能。
[0158]下面通過(guò)實(shí)體結(jié)構(gòu)對(duì)本發(fā)明實(shí)施例提供的應(yīng)用容器迀移的裝置進(jìn)行詳細(xì)說(shuō)明。圖6為本發(fā)明實(shí)施例提供的一種應(yīng)用容器迀移的裝置結(jié)構(gòu)圖,包括= Docker Registry服務(wù)器601、0(^1?^宿主物理服務(wù)器6024611宿主物理服務(wù)器6034611虛擬服務(wù)器604。
[0159]在本實(shí)施例中,Docker中的重要組件Docker Registry服務(wù)器601為Docker編寫注冊(cè)服務(wù),提供了對(duì)Docker鏡像文件進(jìn)行管理的服務(wù)。因此,Docker宿主物理服務(wù)器602可以從Docker Registry服務(wù)器601上獲取Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件,如build.file腳本文件。
[Ο??Ο] 進(jìn)一步地,Docker宿主物理服務(wù)器602從Docker Registry服務(wù)器601上獲取的初始腳本文件build.file時(shí),可以獲取其對(duì)應(yīng)的第一MD5值(Message Digest Algorithm,消息摘要算法第五版)。此外,Docker宿主物理服務(wù)可以根據(jù)獲取到的初始腳本文件build, file生成第二 MD5值。當(dāng)確定第一 MD5值和第二 MD5值相同時(shí),則可以確定初始腳本文件從Docker Registry服務(wù)器601到Docker宿主物理服務(wù)的傳輸過(guò)程是安全的。
[0161 ] 具體地,Docker宿主物理服務(wù)器602可以包含多個(gè)容器,每個(gè)容器可以包含多個(gè)應(yīng)用服務(wù),例如,Apache (阿帕奇)、PHP5(Hypertext Preprocessor,超文本預(yù)處理器)以及MySQL(關(guān)系型數(shù)據(jù)庫(kù)管理應(yīng)用)等。針對(duì)一個(gè)容器,Docker宿主物理服務(wù)器602從本地查詢Docker運(yùn)行環(huán)境中的該容器包含的多個(gè)服務(wù)關(guān)聯(lián)的第一配置文件,如base, json配置文件。[0? 62] 具體地,Docker宿主物理服務(wù)器602解析初始腳本文件bui Id.file,生成與Xen運(yùn)行環(huán)境關(guān)聯(lián)的磁盤文件qemu.sh,以及解析第一配置文件base.json,生成與Xen運(yùn)行環(huán)境中容器關(guān)聯(lián)的第二配置文件libvert.xml,并將磁盤文件qemu.sh和第二配置文件
Iibvert.xml發(fā)送給Xen宿主物理服務(wù)器603。在此不再贅述。
[0163]進(jìn)一步地,Docker宿主物理服務(wù)器602還可以根據(jù)磁盤文件qemu.sh和第二配置文件I ibvert.xml生成第三MD5值,并將第三MD5值發(fā)送至Xen宿主物理服務(wù)器603。
[0164]具體地,Xen宿主物理服務(wù)器60 3接收磁盤文件qemu.sh、第二配置文件libvert.xml和第三MD5值。根據(jù)接收到的磁盤文件qemu.sh和第二配置文件I ibvert.xml生成第四MD5值。當(dāng)確定第三MD5值和第四MD5值相同時(shí),則可以確定磁盤文件qemu.sh和第二配置文件I ibvert.xml從Docker宿主物理服務(wù)到Xen宿主物理服務(wù)器的傳輸過(guò)程是安全的。
[0165]在本實(shí)實(shí)施例中,Xen宿主物理服務(wù)器603首先確定磁盤文件qemu.sh中的流程信息,并根據(jù)流程信息執(zhí)行磁盤生成過(guò)程,在此不再贅述。在執(zhí)行完磁盤生成過(guò)程后,加載第二配置文件I ibvert.xml,生成Xen虛擬服務(wù)器604。從而完成了將Docker宿主物理服務(wù)器602中容器中的應(yīng)用服務(wù)如Apache、PHP5、MySQL等迀移到Xen虛擬服務(wù)器604的過(guò)程,使得這些應(yīng)用可以直接運(yùn)行在生成的Xen虛擬服務(wù)器604中。
[0166]本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的系統(tǒng)。
[0167]這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令系統(tǒng)的制造品,該指令系統(tǒng)實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
[0168]這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0169]盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
[0170]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
【主權(quán)項(xiàng)】
1.一種應(yīng)用容器迀移的方法,其特征在于,包括: 獲取與Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件以及與所述Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件; 解析所述初始腳本文件,生成與Xen運(yùn)行環(huán)境關(guān)聯(lián)的磁盤文件,以及解析所述第一配置文件,生成與Xen運(yùn)行環(huán)境中所述容器關(guān)聯(lián)的第二配置文件; 將所述磁盤文件和所述第二配置文件發(fā)送至Xen宿主物理服務(wù)器,以使所述Xen宿主物理服務(wù)器根據(jù)所述磁盤文件和所述第二配置文件生成Xen虛擬服務(wù)器。2.如權(quán)利要求1所述的方法,其特征在于,所述獲取與Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件,包括: 從Docker Registry服務(wù)器上獲取Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件; 獲取與所述Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件,包括: 從Docker宿主物理服務(wù)器查詢所述Docker運(yùn)行環(huán)境中的多個(gè)服務(wù)關(guān)聯(lián)的第一配置文件。3.如權(quán)利要求2所述的方法,其特征在于,所述從DockerRegistry服務(wù)器上獲取Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件之后,生成與Xen運(yùn)行環(huán)境關(guān)聯(lián)的磁盤文件之前,還包括: 確定從所述Docker Registry服務(wù)器上獲取的所述初始腳本文件對(duì)應(yīng)的第一消息摘要算法第五版MD5值,與根據(jù)所述初始腳本文件生成的第二MD5值相同。4.如權(quán)利要求1所述的方法,其特征在于,所述解析所述初始腳本文件,生成與Xen運(yùn)行環(huán)境關(guān)聯(lián)的磁盤文件,包括: 根據(jù)所述初始腳本文件,獲取Docker操作系統(tǒng)的標(biāo)識(shí),以及確定生成Xen虛擬服務(wù)器磁盤的流程信息; 將所述生成Xen虛擬服務(wù)器磁盤的流程信息和所述Docker操作系統(tǒng)的標(biāo)識(shí)作為所述磁盤文件,以使所述Xen宿主物理服務(wù)器執(zhí)行所述磁盤文件。5.如權(quán)利要求1所述的方法,其特征在于,所述第一配置文件包括以下中的部分或全部: 每個(gè)容器對(duì)應(yīng)的中央處理器CPU使用率配置文件、每個(gè)容器對(duì)應(yīng)的內(nèi)存利用率、每個(gè)容器對(duì)應(yīng)的磁盤利用率、每個(gè)容器對(duì)應(yīng)的網(wǎng)絡(luò)配置; 所述解析所述第一配置文件,生成與Xen運(yùn)行環(huán)境中所述容器關(guān)聯(lián)的第二配置文件,包括: 通過(guò)第一解析器將所述第一配置文件讀入內(nèi)存中,并解析為內(nèi)存對(duì)象; 根據(jù)所述內(nèi)存對(duì)象生成可擴(kuò)展標(biāo)記語(yǔ)言XML文件,將所述XML文件作為所述第二配置文件。6.如權(quán)利要求1所述的方法,其特征在于,所述解析所述初始腳本文件,生成與Xen運(yùn)行環(huán)境關(guān)聯(lián)的磁盤文件,解析所述第一配置文件,生成與Xen運(yùn)行環(huán)境中所述容器關(guān)聯(lián)的第二配置文件之后,還包括: 根據(jù)所述磁盤文件和所述第二配置文件,生成第三MD5值; 將所述第三MD5值發(fā)送至所述Xen宿主物理服務(wù)器,以使Xen宿主物理服務(wù)器根據(jù)所述第三MD5值校驗(yàn)所述磁盤文件和所述第二配置文件。7.一種應(yīng)用容器迀移的方法,其特征在于,包括: 接收磁盤文件和第二配置文件,其中所述磁盤文件是根據(jù)Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件解析生成,所述第二配置文件是根據(jù)Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件解析生成; 根據(jù)所述磁盤文件和所述第二配置文件,生成Xen虛擬服務(wù)器。8.如權(quán)利要求7所述的方法,其特征在于,所述根據(jù)所述磁盤文件和所述第二配置文件,生成Xen虛擬服務(wù)器,包括: 確定所述磁盤文件中的流程信息,并根據(jù)所述流程信息執(zhí)行磁盤生成過(guò)程; 在執(zhí)行完磁盤生成過(guò)程后,加載所述第二配置文件,生成Xen虛擬服務(wù)器; 其中,磁盤生成過(guò)程為: 根據(jù)所述磁盤文件中Docker操作系統(tǒng)的標(biāo)識(shí),獲取所述Docker操作系統(tǒng)的鏡像,并掛載所述Docker操作系統(tǒng)的鏡像; 在所述掛載的Docker操作系統(tǒng)的鏡像上初始化所述初始腳本文件的環(huán)境信息; 通過(guò)第二解析器將所述確定初始化的環(huán)境信息解析成殼Shell文件,在確認(rèn)生成所述Shell文件后卸載所述Docker操作系統(tǒng)的鏡像。9.如權(quán)利要求8所述的方法,其特征在于,所述根據(jù)所述Docker操作系統(tǒng)的標(biāo)識(shí),獲取所述Docker操作系統(tǒng)的鏡像,并掛載所述Docker操作系統(tǒng)的鏡像,包括: 若所述緩存中存儲(chǔ)了所述Docker操作系統(tǒng)的標(biāo)識(shí)對(duì)應(yīng)的Docker操作系統(tǒng)的鏡像,則獲取所述Docker操作系統(tǒng)的鏡像; 若所述緩存中未存儲(chǔ)所述Docker操作系統(tǒng)的標(biāo)識(shí)對(duì)應(yīng)的Docker操作系統(tǒng)的鏡像,則讀取Xen鏡像服務(wù)器中的所述Docker操作系統(tǒng)的鏡像。10.如權(quán)利要求7所述的方法,其特征在于,所述接收磁盤文件和第二配置文件之后,還包括: 接收第三MD5值,其中所述第三MD5值由Docker宿主物理服務(wù)器根據(jù)所述磁盤文件和所述第二配置文件生成; 確定所述第三MD5值與根據(jù)所述磁盤文件和所述第二配置文件生成的第四MD5值相同。11.一種應(yīng)用容器迀移的裝置,其特征在于,包括: 獲取單元:用于獲取與Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件以及與所述Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件; 解析單元:用于解析所述初始腳本文件,生成與Xen運(yùn)行環(huán)境關(guān)聯(lián)的磁盤文件,以及解析所述第一配置文件,生成與Xen運(yùn)行環(huán)境中所述容器關(guān)聯(lián)的第二配置文件; 發(fā)送單元:用于將所述磁盤文件和所述第二配置文件發(fā)送至Xen宿主物理服務(wù)器,以使所述Xen宿主物理服務(wù)器根據(jù)所述磁盤文件和所述第二配置文件生成Xen虛擬服務(wù)器。12.如權(quán)利要求11所述的裝置,其特征在于,所述獲取單元還用于: 從Docker Registry服務(wù)器上獲取Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件; 獲取與所述Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件,包括: 從Docker宿主物理服務(wù)器查詢所述Docker運(yùn)行環(huán)境中的多個(gè)服務(wù)關(guān)聯(lián)的第一配置文件。13.如權(quán)利要求12所述的裝置,其特征在于,所述獲取單元,還用于: 確定從所述Docker Registry服務(wù)器上獲取的所述初始腳本文件對(duì)應(yīng)的第一MD5值,與根據(jù)所述初始腳本文件生成的第二 MD5值相同。14.如權(quán)利要求11所述的裝置,其特征在于,所述解析單元,還用于: 根據(jù)所述初始腳本文件,獲取Docker操作系統(tǒng)的標(biāo)識(shí),以及確定生成Xen虛擬服務(wù)器磁盤的流程信息; 將所述生成Xen虛擬服務(wù)器磁盤的流程信息和所述Docker操作系統(tǒng)的標(biāo)識(shí)作為所述磁盤文件,以使所述Xen宿主物理服務(wù)器執(zhí)行所述磁盤文件。15.如權(quán)利要求11所述的裝置,其特征在于,所述第一配置文件包括以下中的部分或全部: 每個(gè)容器對(duì)應(yīng)的CPU使用率配置文件、每個(gè)容器對(duì)應(yīng)的內(nèi)存利用率、每個(gè)容器對(duì)應(yīng)的磁盤利用率、每個(gè)容器對(duì)應(yīng)的網(wǎng)絡(luò)配置; 所述解析單元,還用于: 通過(guò)第一解析器將所述第一配置文件讀入內(nèi)存中,并解析為內(nèi)存對(duì)象; 根據(jù)所述內(nèi)存對(duì)象生成可擴(kuò)展標(biāo)記語(yǔ)言XML文件,將所述XML文件作為所述第二配置文件。16.如權(quán)利要求11所述的裝置,其特征在于,所述解析單元,還用于: 根據(jù)所述磁盤文件和所述第二配置文件,生成第三MD5值; 將所述第三MD5值發(fā)送至所述Xen宿主物理服務(wù)器,以使Xen宿主物理服務(wù)器根據(jù)所述第三MD5值校驗(yàn)所述磁盤文件和所述第二配置文件。17.一種應(yīng)用容器迀移的裝置,其特征在于,包括: 接收單元:用于接收磁盤文件和第二配置文件,其中所述磁盤文件是根據(jù)Docker運(yùn)行環(huán)境關(guān)聯(lián)的初始腳本文件解析生成,所述第二配置文件是根據(jù)Docker運(yùn)行環(huán)境中每個(gè)容器關(guān)聯(lián)的第一配置文件解析生成; 生成單元:用于根據(jù)所述磁盤文件和所述第二配置文件,生成Xen虛擬服務(wù)器。18.如權(quán)利要求17所述的裝置,其特征在于,所述生成單元,還用于: 確定所述磁盤文件中的流程信息,并根據(jù)所述流程信息執(zhí)行磁盤生成過(guò)程; 在執(zhí)行完磁盤生成過(guò)程后,加載所述第二配置文件,生成Xen虛擬服務(wù)器; 其中,磁盤生成過(guò)程為: 根據(jù)所述磁盤文件中Docker操作系統(tǒng)的標(biāo)識(shí),獲取所述Docker操作系統(tǒng)的鏡像,并掛載所述Docker操作系統(tǒng)的鏡像; 在所述掛載的Docker操作系統(tǒng)的鏡像上初始化所述初始腳本文件的環(huán)境信息; 通過(guò)第二解析器將所述確定初始化的環(huán)境信息解析成殼Shell文件,在確認(rèn)生成所述Shell文件后卸載所述Docker操作系統(tǒng)的鏡像。19.如權(quán)利要求18所述的裝置,其特征在于,所述生成單元,還用于: 若所述緩存中存儲(chǔ)了所述Docker操作系統(tǒng)的標(biāo)識(shí)對(duì)應(yīng)的Docker操作系統(tǒng)的鏡像,則獲取所述Docker操作系統(tǒng)的鏡像; 若所述緩存中未存儲(chǔ)所述Docker操作系統(tǒng)的標(biāo)識(shí)對(duì)應(yīng)的Docker操作系統(tǒng)的鏡像,則讀取Xen鏡像服務(wù)器中的所述Docker操作系統(tǒng)的鏡像。20.如權(quán)利要求17所述的裝置,其特征在于,所述接收單元,還用于: 接收第三MD5值,其中所述第三MD5值由Docker宿主物理服務(wù)器根據(jù)所述磁盤文件和所述第二配置文件生成; 確定所述第三MD5值與根據(jù)所述磁盤文件和所述第二配置文件生成的第四MD5值相同。
【文檔編號(hào)】G06F9/48GK105955805SQ201511004698
【公開(kāi)日】2016年9月21日
【申請(qǐng)日】2015年12月28日
【發(fā)明人】李戈, 祖立軍, 劉國(guó)寶
【申請(qǐng)人】中國(guó)銀聯(lián)股份有限公司