設(shè)置虛擬機遷移過程中應(yīng)用客戶端的重傳時間的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及虛擬機遷移,其公開了一種設(shè)置虛擬機遷移過程中應(yīng)用客戶端的重傳時間的方法和裝置,該方法包括:根據(jù)待遷移虛擬機的至少一個應(yīng)用的歷史訪問記錄和內(nèi)存記錄預(yù)測所述待遷移虛擬機所需的遷移內(nèi)存大??;計算待遷移虛擬機的宿主機的可用遷移帶寬;根據(jù)預(yù)測的所述待遷移虛擬機所需的遷移內(nèi)存大小和宿主機的可用遷移帶寬計算虛擬機遷移時間;根據(jù)虛擬機遷移時間設(shè)置應(yīng)用客戶端的重傳時間。
【專利說明】設(shè)置虛擬機遷移過程中應(yīng)用客戶端的重傳時間的方法和系 統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及虛擬機遷移,更具體地,涉及一種設(shè)置虛擬機遷移過程中應(yīng)用客戶端 的重傳時間的方法和系統(tǒng)。
【背景技術(shù)】
[0002] 目前虛擬化技術(shù)得到了廣泛的應(yīng)用。虛擬化技術(shù)提供了一種能夠?qū)⒍鄠€虛擬機 (VM)容納在一個大的服務(wù)器上的方式,降低了用戶的總成本并且改善了應(yīng)用的可靠性和靈 活性,從而可以減少用戶對于各個工作負(fù)荷的尖峰(spike)過度提供計算資源的可能性。而 且,虛擬化技術(shù)有助于隔離重要的應(yīng)用,使得運行在不同虛擬機上的不同應(yīng)用不會共享操 作系統(tǒng),于是由應(yīng)用引起的致命的故障并不會影響任何其他虛擬機中的應(yīng)用。虛擬化技術(shù) 是"云計算(CloudComputing)"技術(shù)中的一項重要且基礎(chǔ)的技術(shù)。由于其具備按需配置和 動態(tài)遷移能力,因此成為實現(xiàn)云計算動態(tài)、可伸縮的擴展的關(guān)鍵。為了實現(xiàn)云計算的高度彈 性以滿足業(yè)務(wù)或者管理的策略和需求,需要經(jīng)常性地實施虛擬機在物理機之間的動態(tài)遷移 和匯聚,從而達(dá)到節(jié)省能耗,提高資源利用率,降低管理成本等目標(biāo)。
[0003] 然而虛擬機遷移是一個IO高度敏感的過程,當(dāng)虛擬機在被實施遷移的過程中, 由于其上業(yè)務(wù)或者應(yīng)用仍然在正常工作,因此對虛擬機的應(yīng)用客戶端產(chǎn)生不可預(yù)期的影 響。例如,在虛擬機遷移的過程中,虛擬機的應(yīng)用客戶端向虛擬機發(fā)出請求,就會導(dǎo)致響 應(yīng)失敗,因此要發(fā)送重傳請求,TCP協(xié)議用于控制數(shù)據(jù)段是否需要重傳的依據(jù)是設(shè)立重傳 定時器。在發(fā)送一個數(shù)據(jù)段的同時啟動一個重傳定時器,如果在定時器超時前收到確認(rèn) (Acknowlegement)就關(guān)閉該重傳定時器,如果定時器超時前沒有收到確認(rèn),則重傳該數(shù)據(jù) 段。在選擇重傳時間的過程中,TCP必須具有自適應(yīng)性。它需要根據(jù)互聯(lián)網(wǎng)當(dāng)時的通信情 況,給出合適的數(shù)據(jù)重傳時間。目前采用較多的算法是一種不斷調(diào)整超時時間間隔的動態(tài) 算法。其工作原理是:對每條連接TCP都保持一個變量往返時間RTT(RoundTripTime), 用于存放當(dāng)前到目的端往返所需要時間最接近的估計值。如果定時器超時前沒有收到確 認(rèn),則將RTT的值增加1倍,隨著連接失敗的次數(shù)增加,RTT的值越來越大。在虛擬機遷移 的過程中,由于RTT的數(shù)值小,就會導(dǎo)致重傳次數(shù)增加,如果虛擬機已經(jīng)完成遷移,由于RTT 的數(shù)值隨著重傳次數(shù)的增加越來越大,就會導(dǎo)致客戶端的響應(yīng)延遲。
[0004] 因此,在虛擬機遷移時,需要對應(yīng)用客戶端設(shè)置合適的重傳時間,及時對客戶端的 請求做出響應(yīng)。
【發(fā)明內(nèi)容】
[0005] 根據(jù)本發(fā)明的一個方面,提供了一種設(shè)置虛擬機遷移過程中應(yīng)用客戶端的重傳時 間的方法,包括:根據(jù)待遷移虛擬機的至少一個應(yīng)用的歷史訪問記錄和內(nèi)存記錄預(yù)測所述 待遷移虛擬機所需的遷移內(nèi)存大??;計算待遷移虛擬機的宿主機的可用遷移帶寬;根據(jù)預(yù) 測的所述待遷移虛擬機所需的遷移內(nèi)存大小和宿主機的可用遷移帶寬計算虛擬機遷移時 間;根據(jù)虛擬機遷移時間設(shè)置應(yīng)用客戶端的重傳時間。
[0006] 根據(jù)本發(fā)明的另一個方面,提供了一種設(shè)置虛擬機遷移過程中應(yīng)用客戶端的重傳 時間的裝置,包括:遷移內(nèi)存預(yù)測模塊,被配置為根據(jù)待遷移虛擬機的至少一個應(yīng)用的歷史 訪問記錄和內(nèi)存記錄預(yù)測所述待遷移虛擬機所需的遷移內(nèi)存大??;可用帶寬計算模塊,被 配置為計算待遷移虛擬機的宿主機的可用遷移帶寬;遷移時間計算模塊,被配置為根據(jù)預(yù) 測的所述待遷移虛擬機所需的遷移內(nèi)存大小和宿主機的可用遷移帶寬計算虛擬機遷移時 間;重傳時間設(shè)置模塊,被配置為根據(jù)虛擬機遷移時間設(shè)置應(yīng)用客戶端的重傳時間。
[0007] 根據(jù)本發(fā)明實施例的方法和裝置能夠設(shè)置合適的重傳時間,及時對應(yīng)用客戶端的 請求做出響應(yīng),減少重傳次數(shù),降低網(wǎng)絡(luò)傳輸?shù)拈_銷。
【專利附圖】
【附圖說明】
[0008] 通過結(jié)合附圖對本公開示例性實施方式進(jìn)行更詳細(xì)的描述,本公開的上述以及其 它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標(biāo)號 通常代表相同部件。
[0009] 圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務(wù)器12的框 圖;
[0010] 圖2示出根據(jù)本發(fā)明實施例的設(shè)置虛擬機遷移過程中應(yīng)用客戶端的重傳時間的 方法;
[0011] 圖3示出根據(jù)本發(fā)明的實施例一段時間內(nèi)待遷移虛擬機某個應(yīng)用的請求到達(dá)速 率的變化曲線;
[0012] 圖4示出根據(jù)本發(fā)明的實施例一段時間內(nèi)待遷移虛擬機對某個應(yīng)用分配的內(nèi)存 的變化曲線;
[0013] 圖5示出根據(jù)本發(fā)明實施例的設(shè)置虛擬機遷移過程中應(yīng)用客戶端的重傳時間的 裝置500。
【具體實施方式】
[0014] 下面將參照附圖更詳細(xì)地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開 的優(yōu)選實施方式,然而應(yīng)該理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施方 式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的 范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0015] 所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明可以實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。 因此,本公開可以具體實現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括 固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為"電路"、"模 塊"或"系統(tǒng)"。此外,在一些實施例中,本發(fā)明還可以實現(xiàn)為在一個或多個計算機可讀介質(zhì) 中的計算機程序產(chǎn)品的形式,該計算機可讀介質(zhì)中包含計算機可讀的程序代碼。
[0016] 可以采用一個或多個計算機可讀的介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計 算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)例如可以是一但不限 于一電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算 機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便 攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲 器(EPROM或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、 或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質(zhì)可以是任何包含或存儲程 序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0017] 計算機可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號, 其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括--但 不限于--電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質(zhì)還可以是 計算機可讀存儲介質(zhì)以外的任何計算機可讀介質(zhì),該計算機可讀介質(zhì)可以發(fā)送、傳播或者 傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0018] 計算機可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限 于一無線、電線、光纜、RF等等,或者上述的任意合適的組合。
[0019] 可以以一種或多種程序設(shè)計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機 程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java、Smalltalk、C++, 還包括常規(guī)的過程式程序設(shè)計語言一諸如"C"語言或類似的程序設(shè)計語言。程序代碼可以 完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部 分在用戶計算機上部分在遠(yuǎn)程計算機上執(zhí)行、或者完全在遠(yuǎn)程計算機或服務(wù)器上執(zhí)行。在 涉及遠(yuǎn)程計算機的情形中,遠(yuǎn)程計算機可以通過任意種類的網(wǎng)絡(luò)--包括局域網(wǎng)(LAN)或 廣域網(wǎng)(WAN)-連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務(wù)提 供商來通過因特網(wǎng)連接)。
[0020] 下面將參照本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或 框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方 框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計算機、專 用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,這些計算機程序指 令通過計算機或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的方框中 規(guī)定的功能/操作的裝置。
[0021] 也可以把這些計算機程序指令存儲在能使得計算機或其它可編程數(shù)據(jù)處理裝置 以特定方式工作的計算機可讀介質(zhì)中,這樣,存儲在計算機可讀介質(zhì)中的指令就產(chǎn)生出一 個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instruction means)的制造品(manufacture)。
[0022] 也可以把計算機程序指令加載到計算機、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備 上,使得在計算機、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計 算機實現(xiàn)的過程,從而使得在計算機或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖 和/或框圖中的方框中規(guī)定的功能/操作的過程。
[0023] 圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務(wù)器12的框 圖。圖1顯示的計算機系統(tǒng)/服務(wù)器12僅僅是一個示例,不應(yīng)對本發(fā)明實施例的功能和使 用范圍帶來任何限制。
[0024] 如圖1所示,計算機系統(tǒng)/服務(wù)器12以通用計算設(shè)備的形式表現(xiàn)。計算機系統(tǒng) /服務(wù)器12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器 28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。
[0025]總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器, 外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉 例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC) 總線,增強型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)局域總線以及外圍組件互連(PCI)總線。
[0026]計算機系統(tǒng)/服務(wù)器12典型地包括多種計算機系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是 任何能夠被計算機系統(tǒng)/服務(wù)器12訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動 的和不可移動的介質(zhì)。
[0027]系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機系統(tǒng)可讀介質(zhì),例如隨機存 取存儲器(RAM)30和/或高速緩存存儲器32。計算機系統(tǒng)/服務(wù)器12可以進(jìn)一步包括其 它可移動/不可移動的、易失性/非易失性計算機系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)34 可以用于讀寫不可移動的、非易失性磁介質(zhì)(圖1未顯示,通常稱為"硬盤驅(qū)動器")。盡管圖 1中未示出,可以提供用于對可移動非易失性磁盤(例如"軟盤")讀寫的磁盤驅(qū)動器,以及對 可移動非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動器。在這些 情況下,每個驅(qū)動器可以通過一個或者多個數(shù)據(jù)介質(zhì)接口與總線18相連。存儲器28可以 包括至少一個程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個)程序模塊,這些程序模塊被 配置以執(zhí)行本發(fā)明各實施例的功能。
[0028]具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器 28中,這樣的程序模塊42包括--但不限于--操作系統(tǒng)、一個或者多個應(yīng)用程序、其它 程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。程 序模塊42通常執(zhí)行本發(fā)明所描述的實施例中的功能和/或方法。
[0029]計算機系統(tǒng)/服務(wù)器12也可以與一個或多個外部設(shè)備14 (例如鍵盤、指向設(shè)備、 顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機系統(tǒng)/服務(wù)器12交互的設(shè) 備通信,和/或與使得該計算機系統(tǒng)/服務(wù)器12能與一個或多個其它計算設(shè)備進(jìn)行通信的 任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口 22 進(jìn)行。并且,計算機系統(tǒng)/服務(wù)器12還可以通過網(wǎng)絡(luò)適配器20與一個或者多個網(wǎng)絡(luò)(例如 局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20 通過總線18與計算機系統(tǒng)/服務(wù)器12的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以 結(jié)合計算機系統(tǒng)/服務(wù)器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū) 動器、冗余處理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲系統(tǒng)等。
[0030]現(xiàn)在參看圖2,圖2示出根據(jù)本發(fā)明實施例的設(shè)置虛擬機遷移過程中應(yīng)用客戶端 的重傳時間的方法,包括:在步驟S201,根據(jù)待遷移虛擬機的至少一個應(yīng)用的歷史訪問記 錄和內(nèi)存記錄預(yù)測所述待遷移虛擬機所需的遷移內(nèi)存大??;在步驟S202,計算待遷移虛擬 機的宿主機的可用遷移帶寬;在步驟S203,根據(jù)預(yù)測的所述待遷移虛擬機所需的遷移內(nèi)存 大小和可用遷移帶寬計算虛擬機遷移時間;在步驟S204,根據(jù)虛擬機遷移時間設(shè)置應(yīng)用客 戶端的重傳時間。
[0031] 在步驟S201,根據(jù)待遷移虛擬機的應(yīng)用的歷史訪問記錄預(yù)測所述待遷移虛擬機 所需的遷移內(nèi)存大小,包括:根據(jù)所述至少一個應(yīng)用的歷史訪問記錄計算一段時間內(nèi)所述 至少一個應(yīng)用的請求到達(dá)速率的變化和每個請求的平均服務(wù)時間;根據(jù)所述待遷移虛擬機 的內(nèi)存記錄統(tǒng)計所述一段時間內(nèi)所述待遷移虛擬機對所述至少一個應(yīng)用分配的內(nèi)存大小 的變化;根據(jù)所述一段時間內(nèi)所述至少一個應(yīng)用的請求到達(dá)速率的變化和所述待遷移虛擬 機對所述至少一個應(yīng)用分配的內(nèi)存大小的變化計算所述一段時間內(nèi)所述待遷移虛擬機為 所述至少一個應(yīng)用分配的內(nèi)存大小與所述至少一個應(yīng)用的請求到達(dá)速率的函數(shù)關(guān)系;以及 根據(jù)所述函數(shù)關(guān)系預(yù)測所述待遷移虛擬機所需的遷移內(nèi)存大小。
[0032] 根據(jù)本發(fā)明的實施例,其中根據(jù)所述函數(shù)關(guān)系預(yù)測所述待遷移虛擬機所需的遷移 內(nèi)存大小包括:根據(jù)所述函數(shù)關(guān)系和遷移時刻所述至少一個應(yīng)用的請求到達(dá)速率預(yù)測所述 至少一個應(yīng)用所需的遷移內(nèi)存大小;將所述至少一個應(yīng)用所需的內(nèi)存大小累加起來得到所 述待遷移虛擬機所需的遷移內(nèi)存大小。
[0033] 根據(jù)本發(fā)明的實施例,觀察到虛擬機處理每個請求所需要的內(nèi)存開銷與對應(yīng)每個 請求的平均服務(wù)時間存在線性相關(guān)關(guān)系,當(dāng)一個新請求到達(dá)時,虛擬機會分配一定的內(nèi)存 用于服務(wù)該請求,而且不同種類應(yīng)用的請求所需要的平均服務(wù)時間不同,通常請求需要的 平均服務(wù)時間越長,為該請求分配的內(nèi)存越大。例如,復(fù)雜應(yīng)用A和簡單應(yīng)用B,A類應(yīng)用的 請求平均服務(wù)時間為4s,B類應(yīng)用的請求平均服務(wù)時間為2s,那么虛擬機為A類應(yīng)用的請 求分配的內(nèi)存大小基本上是為B類應(yīng)用的請求分配的內(nèi)存大小的2倍,任一時刻虛擬機為 某個應(yīng)用分配的內(nèi)存大小與為該應(yīng)用請求的平均服務(wù)時間的函數(shù)關(guān)系為:
[0034]S=a*v*Ts+b (1)
[0035] 其中S為任一時刻虛擬機為某個應(yīng)用分配的內(nèi)存大小,a為比例系數(shù),V為一段時 間內(nèi)該某個應(yīng)用的請求到達(dá)速率,Ts為該某個應(yīng)用請求的平均服務(wù)時間,b為修正參數(shù)。
[0036] 根據(jù)本發(fā)明的實施例,虛擬機管理器(hypervisor)可以從待遷移虛擬機獲取待遷 移虛擬機某個應(yīng)用的歷史訪問記錄,根據(jù)歷史訪問記錄計算一段時間內(nèi)某個應(yīng)用的請求到 達(dá)速率V和每個請求的平均服務(wù)時間Ts。應(yīng)用的歷史訪問記錄按時間順序?qū)φ埱蟮慕邮铡?處理等操作進(jìn)行記錄。根據(jù)本發(fā)明的實施例,一個典型的應(yīng)用的歷史訪問記錄如下所示:
[0037] 時間標(biāo)簽 事件
[0038]t0 receivearequestfromipO
[0039]tlreceivearequestfromipl
[0040]t2 handlerequestfromipO
[0041]t3 receivearequestfromip2
[0042]t4 handlerequestfromipl
[0043]t5 sendreplytoipO
[0044] ...... ......
[0045]tn-Ihandlerequestfromip2
[0046]tn_2 sendreplytoipl
[0047]tn_3 sendreplytoip2
[0048] 根據(jù)上述歷史訪問記錄可以計算tO至t3時間段內(nèi)該應(yīng)用的請求到達(dá)速 率:v=(t3_t0)/3〇
[0049] 計算該應(yīng)用的請求的平均服務(wù)時間:Ts=(Ts_l+Ts_2+Ts_3)/3 ;
[0050] 其中t0時刻從IP地址ipO接收到的該應(yīng)用的請求的服務(wù)時間Ts_l=t5_t0 ;
[0051]tl時刻從IP地址ipl接收到的該應(yīng)用的請求的服務(wù)時間Ts_2=tn_2-tl;
[0052]t3時刻從IP地址ip2接收到的該應(yīng)用的請求的服務(wù)時間Ts_3=tn_3-t3。
[0053] 根據(jù)本發(fā)明的實施例,虛擬機管理器(hypervisor)可以從待遷移虛擬機獲取待遷 移虛擬機的內(nèi)存記錄,根據(jù)待遷移虛擬機的內(nèi)存記錄可以獲取任一時刻虛擬機為某個應(yīng)用 分配的內(nèi)存大小。因此,根據(jù)歷史數(shù)據(jù)可以計算出公式(1)中的比例系數(shù)a以及修正參數(shù) b〇
[0054] 圖3示出根據(jù)本發(fā)明的實施例一段時間內(nèi)待遷移虛擬機某個應(yīng)用的請求到達(dá)速 率的變化曲線,如圖所示,橫坐標(biāo)為時間,縱坐標(biāo)為某個應(yīng)用的請求到達(dá)速率。圖4示出根 據(jù)本發(fā)明的實施例一段時間內(nèi)虛待遷移擬機對某個應(yīng)用分配的內(nèi)存的變化曲線,例如,在 圖3上選取兩個時間點對應(yīng)的A、B兩個坐標(biāo)點,在圖4上選取相同時間點對應(yīng)的C、D兩個 坐標(biāo)點,在10個小時的時間點,請求到達(dá)速率是10個/每秒,待遷移虛擬機為該應(yīng)用分配 的內(nèi)存大小是2GB,在20個小時的時間點,請求到達(dá)速率是20個/每秒,待遷移虛擬機為該 應(yīng)用分配的內(nèi)存大小是4GB,假設(shè)該應(yīng)用請求的平均服務(wù)時間是2s,將上述坐標(biāo)點的值代 入公式(1),
[0055] 2=a*10*2+b (2)
[0056] 4=a*20*2+b (3)
[0057] 求出a=0. l,b=0,因此針對該應(yīng)用的公式(1)變形為:
[0058] S=0. 2*v (4)
[0059] 在待遷移虛擬機要遷移的當(dāng)前時刻,查詢該待遷移虛擬機正在服務(wù)的該應(yīng)用的請 求的個數(shù),得到當(dāng)前時刻的該應(yīng)用的請求到達(dá)速率,根據(jù)公式(4)計算出該應(yīng)用所需的遷移 內(nèi)存的大小。
[0060] 在存在多個應(yīng)用的情況,按照本發(fā)明實施例的方法逐個獲取所述一段時間內(nèi)待遷 移虛擬機為多個應(yīng)用分配的內(nèi)存大小與對應(yīng)于多個應(yīng)用的請求到達(dá)速率的函數(shù)關(guān)系,并根 據(jù)每個函數(shù)關(guān)系和遷移時刻的請求到達(dá)速率預(yù)測多個應(yīng)用所需的遷移內(nèi)存大小,然后將多 個應(yīng)用所需的內(nèi)存大小累加起來得到待遷移虛擬機的遷移內(nèi)存大小。
[0061] 在步驟S202,計算待遷移虛擬機的宿主機的可用遷移帶寬,根據(jù)本發(fā)明的實施例, 在存在多個虛擬機向宿主機請求帶寬的情況下,如果宿主機的帶寬大于或等于所述多個虛
【權(quán)利要求】
1. 一種設(shè)置虛擬機遷移過程中應(yīng)用客戶端的重傳時間的方法,包括: 根據(jù)待遷移虛擬機的至少一個應(yīng)用的歷史訪問記錄和內(nèi)存記錄預(yù)測所述待遷移虛擬 機所需的遷移內(nèi)存大??; 計算待遷移虛擬機的宿主機的可用遷移帶寬; 根據(jù)預(yù)測的所述待遷移虛擬機所需的遷移內(nèi)存大小和宿主機的可用遷移帶寬計算虛 擬機遷移時間; 根據(jù)虛擬機遷移時間設(shè)置應(yīng)用客戶端的重傳時間。
2. 根據(jù)權(quán)利要求1所述的方法,其中根據(jù)待遷移虛擬機的至少一個應(yīng)用的歷史訪問記 錄和內(nèi)存記錄預(yù)測所述待遷移虛擬機所需的遷移內(nèi)存大小包括: 根據(jù)所述至少一個應(yīng)用的歷史訪問記錄計算一段時間內(nèi)所述至少一個應(yīng)用的請求到 達(dá)速率的變化和每個請求的平均服務(wù)時間; 根據(jù)所述待遷移虛擬機的內(nèi)存記錄統(tǒng)計所述一段時間內(nèi)所述待遷移虛擬機對所述至 少一個應(yīng)用分配的內(nèi)存大小的變化; 根據(jù)所述一段時間內(nèi)所述至少一個應(yīng)用的請求到達(dá)速率的變化和所述待遷移虛擬機 對所述至少一個應(yīng)用分配的內(nèi)存大小的變化計算所述一段時間內(nèi)所述待遷移虛擬機為所 述至少一個應(yīng)用分配的內(nèi)存大小與所述至少一個應(yīng)用的請求到達(dá)速率的函數(shù)關(guān)系;以及 根據(jù)所述函數(shù)關(guān)系預(yù)測所述待遷移虛擬機所需的遷移內(nèi)存大小。
3. 根據(jù)權(quán)利要求2所述的方法,其中根據(jù)所述函數(shù)關(guān)系預(yù)測所述待遷移虛擬機所需的 遷移內(nèi)存大小包括: 根據(jù)所述函數(shù)關(guān)系和遷移時刻所述至少一個應(yīng)用的請求到達(dá)速率預(yù)測所述至少一個 應(yīng)用所需的遷移內(nèi)存大??; 將所述至少一個應(yīng)用所需的內(nèi)存大小累加起來得到所述待遷移虛擬機所需的遷移內(nèi) 存大小。
4. 根據(jù)權(quán)利要求1所述的方法,其中計算待遷移虛擬機的宿主機的可用遷移帶寬包 括:在存在多個虛擬機向宿主機請求帶寬的情況下,如果宿主機的帶寬大于或等于所述多 個虛擬機請求的帶寬,待遷移虛擬機的宿主機的可用遷移帶寬仏,其中Ws為宿 /-1 主機的帶寬,Wi, (i=l. .. j,j彡1)為除去待遷移虛擬機以外的其它虛擬機請求的帶寬。
5. 根據(jù)權(quán)利要求1所述的方法,其中計算待遷移虛擬機的宿主機的可用遷移帶寬包 括:在存在多個虛擬機向宿主機請求帶寬的情況下,如果宿主機的帶寬小于所述多個虛擬 機請求的帶寬,根據(jù)待遷移虛擬機的權(quán)重計算待遷移虛擬機的宿主機的可用遷移帶寬。
6. 根據(jù)權(quán)利要求1至5中任一項所述的方法,其中根據(jù)虛擬機遷移時間設(shè)置應(yīng)用客戶 端的重傳時間包括:將應(yīng)用客戶端的重傳時間設(shè)置為略大于虛擬機的遷移時間。
7. -種設(shè)置虛擬機遷移過程中應(yīng)用客戶端的重傳時間的裝置,包括: 遷移內(nèi)存預(yù)測模塊,被配置為根據(jù)待遷移虛擬機的至少一個應(yīng)用的歷史訪問記錄和內(nèi) 存記錄預(yù)測所述待遷移虛擬機所需的遷移內(nèi)存大小; 可用帶寬計算模塊,被配置為計算待遷移虛擬機的宿主機的可用遷移帶寬; 遷移時間計算模塊,被配置為根據(jù)預(yù)測的所述待遷移虛擬機所需的遷移內(nèi)存大小和宿 主機的可用遷移帶寬計算虛擬機遷移時間; 重傳時間設(shè)置模塊,被配置為根據(jù)虛擬機遷移時間設(shè)置應(yīng)用客戶端的重傳時間。
8. 根據(jù)權(quán)利要求7所述的裝置,其中遷移內(nèi)存預(yù)測模塊進(jìn)一步被配置為: 根據(jù)所述至少一個應(yīng)用的歷史訪問記錄計算一段時間內(nèi)所述至少一個應(yīng)用的請求到 達(dá)速率的變化和每個請求的平均服務(wù)時間; 根據(jù)所述待遷移虛擬機的內(nèi)存記錄統(tǒng)計所述一段時間內(nèi)所述待遷移虛擬機對所述至 少一個應(yīng)用分配的內(nèi)存大小的變化; 根據(jù)所述一段時間內(nèi)所述至少一個應(yīng)用的請求到達(dá)速率的變化和所述待遷移虛擬機 對所述至少一個應(yīng)用分配的內(nèi)存大小的變化計算所述一段時間內(nèi)所述待遷移虛擬機為所 述至少一個應(yīng)用分配的內(nèi)存大小與所述至少一個應(yīng)用的請求到達(dá)速率的函數(shù)關(guān)系;以及 根據(jù)所述函數(shù)關(guān)系預(yù)測所述待遷移虛擬機所需的遷移內(nèi)存大小。
9. 根據(jù)權(quán)利要求8所述的裝置,其中遷移內(nèi)存預(yù)測模塊進(jìn)一步被配置為: 根據(jù)所述函數(shù)關(guān)系和遷移時刻所述至少一個應(yīng)用的請求到達(dá)速率預(yù)測所述至少一個 應(yīng)用所需的遷移內(nèi)存大小; 將所述至少一個應(yīng)用所需的內(nèi)存大小累加起來得到所述待遷移虛擬機所需的遷移內(nèi) 存大小。
10. 根據(jù)權(quán)利要求7所述的裝置,其中可用帶寬計算模塊被配置為:在存在多個虛擬 機向宿主機請求帶寬的情況下,如果宿主機的帶寬大于或等于所述多個虛擬機請求的帶 寬,待遷移虛擬機的宿主機的可用遷移帶寬= M,其中Ws為宿主機的帶寬,Wi, (i=l. .. j,j彡1)為待遷移虛擬機以外的其它虛擬機請求的帶寬。
11. 根據(jù)權(quán)利要求7所述的裝置,其中可用帶寬計算模塊被配置為:在存在多個虛擬 機向宿主機請求帶寬的情況下,如果宿主機的帶寬小于所述多個虛擬機請求的帶寬,根據(jù) 待遷移虛擬機的權(quán)重計算待遷移虛擬機的宿主機的可用遷移帶寬。
12. 根據(jù)權(quán)利要求7至11中任一項所述的裝置,其中重傳時間設(shè)置模塊進(jìn)一步被配置 為將應(yīng)用客戶端的重傳時間設(shè)置為略大于虛擬機的遷移時間。
【文檔編號】G06F9/46GK104516767SQ201310450450
【公開日】2015年4月15日 申請日期:2013年9月27日 優(yōu)先權(quán)日:2013年9月27日
【發(fā)明者】李立, 曲俊媚, 劉亮, 于琦 申請人:國際商業(yè)機器公司