本公開一般涉及虛擬機的遷移。
背景技術(shù):
虛擬機(“vm”)是具體操作環(huán)境的仿真。虛擬機基于真實或假設(shè)計算機的計算機架構(gòu)和功能操作,并且實現(xiàn)可涉及專用硬件、軟件或二者。虛擬機可基于在虛擬機內(nèi)實現(xiàn)目標真實機的功能性的程度進行分類。系統(tǒng)虛擬機提供了目標真實機的完全替代,以及支持完全操作系統(tǒng)的執(zhí)行所需的某個水平的功能性。過程虛擬機被設(shè)計成通過提供抽象的且平臺無關(guān)的平臺執(zhí)行環(huán)境來執(zhí)行單個應(yīng)用。
虛擬機例如可在一個或多個主機裝置(諸如一個或多個遠程服務(wù)器系統(tǒng))上本地或遠程實現(xiàn)。偶爾,將若干虛擬機從第一遠程主機裝置遷移到第二遠程主機裝置,可能變得有必要。虛擬機的在線遷移跨物理主機重新定位虛擬機,同時虛擬機繼續(xù)操作。虛擬機可跨物理主機遷移以改進服務(wù)可用性,增大資源利用,簡化物理主機的管理,執(zhí)行服務(wù)器維護,或者跨若干物理主機的載荷平衡。虛擬機的在線遷移是虛擬化數(shù)據(jù)中心中和基于云的操作系統(tǒng)諸如openstack中的關(guān)鍵技術(shù)。
隨著硬件容量的增大,單個裝置支持大量并置虛擬機的能力繼續(xù)增大。隨著并置的虛擬機數(shù)量的增大,任何數(shù)量的虛擬機同時遷移的可能性增大。類似地,所有虛擬機從第一物理主機到第二物理主機的遷移和/或遷移之間的交疊的可能性也將傾向于隨著虛擬機數(shù)量的增大而增大。
作為備選,虛擬機可在順序或調(diào)度的基礎(chǔ)上單獨遷移。然而,當多個虛擬機作為一組遷移時有好處:
·當虛擬機包含vm間通信信道時,虛擬機應(yīng)該并行遷移,并且在同一時間在目的地物理主機中重新開始。當虛擬機在物理主機之間單獨遷移時,此類虛擬機的順序遷移可導(dǎo)致由于vm間通信信道的中斷引起的故障。
·在公共物理主機上并置的虛擬機可共享大量存儲頁面,單獨遷移此類虛擬機可導(dǎo)致大量重復(fù)存儲頁面的遷移。此類重復(fù)浪費了目的地物理主機上的存儲容量以及跨網(wǎng)絡(luò)用于遷移虛擬機的帶寬。
·用容器vm情況(諸如因特爾的透明容器),在單個主機上可存在巨大量虛擬機。在此類實現(xiàn)中,虛擬機可能共享若干存儲頁面,并且還彼此通信——在此類條件下,虛擬機的批量遷移是有利的。
大多數(shù)已知虛擬機遷移解決方案僅傳送單獨虛擬機,或傳送在源物理主機上實現(xiàn)的所有虛擬機。此類遷移制度是次優(yōu)選的,因為通過標識在虛擬機之間總體或部分共享或重復(fù)的存儲頁面,單獨虛擬機的遷移或所有虛擬機的遷移失去了顯著降低在源物理主機與目的地物理主機之間傳送的數(shù)據(jù)的機會。此外,此類解決方案在預(yù)先拷貝階段可能受由于非匯聚變臟存儲頁面引起的遷移故障之苦。
附圖說明
隨著如下具體實施方式的繼續(xù),并參考附圖,所要求權(quán)利的主題的特征和優(yōu)點將變得顯而易見,其中相似數(shù)字表示相似部分,并且附圖中:
圖1是按照本公開至少一個實施例的在線虛擬機遷移系統(tǒng)的示意圖;
圖2a是按照本公開的至少一個實施例其中在第一物理主機上實現(xiàn)的4個虛擬機共享存儲在第一物理主機中相同存儲位置的公共存儲頁面的說明性系統(tǒng)的示意;
圖2b是按照本公開的至少一個實施例其中在第一物理主機上實現(xiàn)的4個虛擬機將數(shù)據(jù)傳遞到相應(yīng)存儲頁面并且其中每一個存儲頁面都具有相同或類似數(shù)據(jù)的說明性系統(tǒng)的示意;
圖3是按照本公開的至少一個實施例包含指示要遷移的每對虛擬機之間的存儲頁面共性的程度的數(shù)據(jù)的圖表;
圖4是按照本公開至少一個實施例的說明性在線虛擬機遷移方法的高級流程圖;
圖5是按照本公開的至少一個實施例基于相應(yīng)虛擬機組的預(yù)測的遷移時間在第一物理主機與第二物理主機之間遷移虛擬機組的說明性方法的高級流程圖;
圖6是按照本公開至少一個實施例的另一說明性在線虛擬機遷移方法的高級流程圖;以及
圖7是按照本公開至少一個實施例的說明性虛擬機遷移控制器的框圖。
盡管如下具體實施方式將繼續(xù)參考說明性實施例,但它們的許多備選、修改和變形對本領(lǐng)域技術(shù)人員將是顯而易見的。
具體實施方式
在物理主機之間遷移虛擬機的一方面是拷貝目標虛擬機的改變的存儲器,同時虛擬仍從源主機向目的地運行。與虛擬機關(guān)聯(lián)的存儲頁面表示數(shù)據(jù)傳送的重要部分,并且傳送存儲頁面的網(wǎng)絡(luò)帶寬可約束或以其他方式限制在物理主機之間迅速有效傳送存儲頁面的能力。為了解決與遷移大量數(shù)據(jù)密集存儲頁面關(guān)聯(lián)的問題,在線遷移虛擬機可通過如下方式執(zhí)行:
·檢查在邏輯上與存儲在源物理主機的存儲器中的要遷移的虛擬機關(guān)聯(lián)的存儲頁面以標識共享存儲頁面。然后僅傳送共享存儲頁面的一個實例。
·為了增大標識源物理主機內(nèi)的共享或部分同等的存儲頁面的可能性,虛擬機在線遷移控制器以某個粒度級檢查存儲頁面,以某個粒度級查找子頁,并使用一個或多個數(shù)據(jù)指紋比對技術(shù)來加速共享的部分同等或完全同等的存儲頁面。
·由于每個虛擬機都保持通常一致的存儲頁面變臟速率,因此虛擬機在線遷移控制器使用變臟日志模式跟蹤變臟的存儲頁面的數(shù)量來收集可寫存儲器工作集模式。虛擬機在線遷移控制器然后以給定網(wǎng)絡(luò)帶寬動態(tài)預(yù)測存儲器工作集模式,包含遷移所花的迭代和持續(xù)時間和匯聚?;陬A(yù)測的遷移時間,虛擬機在線遷移控制器選擇以給定(或分配的)存儲器帶寬遷移的虛擬機組以成功完成批量遷移。
提供了一種將多個虛擬機從第一物理主機在線遷移到第二物理主機的系統(tǒng)。該系統(tǒng)可包含通信上耦合到第一物理主機和第二物理主機的至少一個網(wǎng)絡(luò)接口以及通信上耦合到至少一個網(wǎng)絡(luò)接口的至少一個電路。該系統(tǒng)可進一步包含通信上耦合到至少一個電路的至少一個存儲裝置,至少一個存儲裝置包含機器可讀指令,所述指令當執(zhí)行時使至少一部分電路提供虛擬機遷移控制器,虛擬機遷移控制器:對于在第一物理主機上托管的多個虛擬機中的每個虛擬機:確定指示在邏輯上與相應(yīng)虛擬機關(guān)聯(lián)的存儲頁面變臟速率的值,有選擇地分組多個虛擬機中的至少一些虛擬機以提供若干虛擬機組,相應(yīng)虛擬機組中的每個虛擬機都訪問第一物理主機上的同等存儲頁面內(nèi)容部分;以及至少部分基于如下項動態(tài)預(yù)測遷移相應(yīng)虛擬機組的持續(xù)時間:由所述相應(yīng)虛擬機組中的所述虛擬機訪問的所述同等存儲頁面內(nèi)容部分的單個遷移;將相應(yīng)虛擬機組從第一物理主機遷移到第二物理主機的可用帶寬;以及指示在邏輯上與包含在所述相應(yīng)虛擬機組中的每一個所述虛擬機關(guān)聯(lián)的所述存儲頁面變臟速率的值。
提供了另一種在線虛擬機遷移系統(tǒng)。所述系統(tǒng)可包含至少一個控制器電路以及通信上耦合到至少一個控制器電路的至少一個存儲裝置,至少一個存儲裝置包含機器可執(zhí)行指令,所述指令當由至少一個控制器電路執(zhí)行時使至少一個控制器電路提供虛擬機遷移控制器。虛擬機遷移控制器可確定駐留在第一主機系統(tǒng)上的多個虛擬機中每個虛擬機的頁面變臟速率;有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組,所述虛擬機組中的每組都包含先前訪問至少一個同等存儲頁面內(nèi)容部分的虛擬機;以及至少部分基于所述至少一個同等存儲頁面內(nèi)容部分、包含在相應(yīng)組中的每一個所述虛擬機的所述頁面變臟速率以及可用的網(wǎng)絡(luò)帶寬來確定所述若干虛擬機組中的每組從第一主機系統(tǒng)遷移到第二主機系統(tǒng)的計劃遷移時間。
提供了一種在線虛擬機遷移方法。所述方法可包含:對于多個虛擬機中的每個虛擬機,確定指示在邏輯上與相應(yīng)虛擬機關(guān)聯(lián)的所述存儲頁面變臟速率的值,并且有選擇地分組多個虛擬機中的虛擬機以提供若干虛擬機組的部件,相應(yīng)虛擬機組中的每個虛擬機都訪問同等存儲頁面內(nèi)容部分。所述方法可進一步包含:對于每個虛擬機組,至少部分基于如下項動態(tài)預(yù)測遷移相應(yīng)虛擬機組的持續(xù)時間:由所述相應(yīng)虛擬機組中的所述虛擬機訪問的所述同等存儲頁面內(nèi)容部分的單個遷移;遷移相應(yīng)虛擬機組的可用帶寬;以及指示在邏輯上與包含在相應(yīng)虛擬機組中的每一個虛擬機關(guān)聯(lián)的存儲頁面變臟速率的值。
提供了另一種在線虛擬機遷移方法。所述方法可包含由虛擬機遷移控制器確定多個虛擬機中每個的頁面變臟速率。所述方法可進一步包含由所述虛擬機遷移控制器有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組,所述虛擬機組中的每組都包含先前訪問至少一個同等存儲頁面內(nèi)容部分的虛擬機。所述方法此外可包含由所述虛擬機遷移控制器至少部分基于所述至少一個同等存儲頁面內(nèi)容部分、包含在相應(yīng)組中的每一個所述虛擬機的所述頁面變臟速率以及可用的網(wǎng)絡(luò)帶寬來確定所述若干虛擬機組中每組的計劃遷移時間。
提供了另一種在線虛擬機遷移系統(tǒng)。所述系統(tǒng)可包含:對于多個虛擬機中的每個虛擬機,用于確定指示在邏輯上與相應(yīng)虛擬機關(guān)聯(lián)的所述存儲頁面變臟速率的值的部件。所述系統(tǒng)此外可包含用于有選擇地分組所述多個虛擬機中的虛擬機以提供若干虛擬機組的部件,相應(yīng)虛擬機組中的每個虛擬機都訪問同等存儲頁面內(nèi)容部分;所述系統(tǒng)此外可包含:對于每個虛擬機組,用于至少部分基于如下項動態(tài)預(yù)測遷移所述相應(yīng)虛擬機組的持續(xù)時間的部件:由所述相應(yīng)虛擬機組中的所述虛擬機訪問的所述同等存儲頁面內(nèi)容部分的單個遷移;遷移相應(yīng)虛擬機組的可用帶寬;以及指示在邏輯上與包含在相應(yīng)虛擬機組中的每一個虛擬機關(guān)聯(lián)的存儲頁面變臟速率的值。
提供了另一種在線虛擬機遷移系統(tǒng)。所述系統(tǒng)可包含用于確定在第一主機系統(tǒng)上實現(xiàn)的多個虛擬機中每個虛擬機的頁面變臟速率的部件。所述系統(tǒng)可進一步包含用于有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組的部件,虛擬機組中的每組都包含先前訪問至少一個同等存儲頁面內(nèi)容部分的虛擬機。所述系統(tǒng)此外可包含用于至少部分基于至少一個同等存儲頁面內(nèi)容部分、包含在相應(yīng)組中的每一個虛擬機的頁面變臟速率以及可用的網(wǎng)絡(luò)帶寬來確定若干虛擬機組中每組的計劃遷移時間的部件。
本文所使用的術(shù)語“上”和“下”打算提供對某個位置的相對而非絕對的參考。從而,反轉(zhuǎn)如具有“上部分”和“下部分”所描述的對象可將“下部分”放在對象的上面而“上部分”放在對象的下面。此類配置應(yīng)該被視為包含在此公開的范圍內(nèi)。
如本文所使用的術(shù)語“第一”、“第二”以及其它類似序數(shù)詞意圖區(qū)分若干類似或同等的對象,并不表示對象的具體或絕對次序。從而,“第一對象”和“第二對象”可按任何次序出現(xiàn)——包含第二對象在空間上或時間上出現(xiàn)在第一對象之前的次序。此類配置應(yīng)該被視為包含在此公開的范圍內(nèi)。
圖1是按照本公開的至少一個實施例的在線虛擬機遷移系統(tǒng)100的示意圖,其中虛擬機遷移控制器102將若干虛擬機120a-120n(統(tǒng)稱為“虛擬機120”)從第一物理主機110遷移140到第二物理主機150(經(jīng)由網(wǎng)絡(luò)160在通信上耦合)。在第一物理主機系統(tǒng)110上可實現(xiàn)任何數(shù)量的虛擬機120。例如,第一物理主機系統(tǒng)110可托管10個或更多虛擬機120;50個或更多虛擬機120;100個或更多虛擬機120;500個或更多虛擬機120;或者1000個或更多虛擬機120。每一個虛擬機120都可實現(xiàn)相同或不同的操作系統(tǒng)和/或應(yīng)用。
第一物理主機系統(tǒng)110可包含一個或多個存儲裝置,諸如存儲器122。其中一些或所有虛擬機120可被映射到存儲或以其他方式保留在存儲器122中的存儲頁面124a-124n(統(tǒng)稱為“存儲頁面124”)和/或在邏輯上與之關(guān)聯(lián)。每一個存儲頁面124都包含由映射到相應(yīng)存儲頁面124的虛擬機120生成和/或使用的數(shù)據(jù)和/或信息。在實施例中,單個虛擬機120可被映射到任何數(shù)量的存儲頁面124。每個虛擬機120都可間歇、定期或非定期添加、改變或刪除虛擬機120映射到的存儲頁面124上的數(shù)據(jù)和/或信息。具體虛擬機120可添加、改變或刪除在存儲頁面124上包含的信息和/或數(shù)據(jù)的速率可被稱為相應(yīng)虛擬機120的“頁面變臟速率”或簡單地稱為“變臟速率”。虛擬機120可具有類似的或不同的變臟速率。
在一些實現(xiàn)中,若干虛擬機120可被映射到單個存儲頁面124。在此類實現(xiàn)中,單個存儲頁面124可被視為在相應(yīng)虛擬機120之間“共享”或由其共享。在一些實現(xiàn)中,映射到不同虛擬機120但不由它們共享的存儲頁面124的部分可包含類似的或同等的數(shù)據(jù)和/或信息。在一些實現(xiàn)中,映射到不同虛擬機120但不由它們共享的整個存儲頁面124可包含類似的或同等的數(shù)據(jù)和/或信息。從而,在一些實現(xiàn)中,包含在不同存儲頁面124上的信息和/或數(shù)據(jù)可以類似或同等,并且因此,在第一物理主機系統(tǒng)110的存儲器122中可存在相當數(shù)量的冗余信息和/或數(shù)據(jù)。本文描述的系統(tǒng)和方法有益地能夠標識映射到多個虛擬機120并在其間共享的存儲頁面124以及包含類似或同等信息和/或數(shù)據(jù)并映射到不同虛擬機120的存儲頁面124。
在實施例中,所有或部分存儲器拷貝管理器112可被布置在第一物理主機系統(tǒng)110中,如圖1中所描繪的。在其它實施例中,所有或部分存儲器拷貝管理器112可被布置在虛擬機遷移控制器102中。不管存儲器拷貝管理器112的位置如何,存儲器拷貝管理器112都在通信上耦合到虛擬機控制器102。存儲器拷貝管理器112可掃描或以其他方式分析其中一些或所有存儲頁面124以標識被映射到不同虛擬機120的重復(fù)存儲頁面124(即,包含相同信息和/或數(shù)據(jù)的不同存儲頁面124)。存儲器拷貝管理器112可掃描或以其他方式分析其中一些或所有存儲頁面124以標識被映射到不同虛擬機120的部分重復(fù)存儲頁面124(即,包含至少一部分相同信息和/或數(shù)據(jù)的不同存儲頁面124)。
在一些實現(xiàn)中,存儲器拷貝管理器112可分析映射到若干虛擬機120的至少一部分存儲頁面124以標識全部或部分包含重復(fù)信息和/或數(shù)據(jù)的那些存儲頁面124。在一些實現(xiàn)中,存儲器拷貝管理器112可在時間的基礎(chǔ)上分析存儲頁面124。例如,存儲器拷貝管理器112可在規(guī)則、不規(guī)則或周期的基礎(chǔ)上分析存儲頁面124。在一些實現(xiàn)中,存儲器拷貝管理器112可在事件驅(qū)動的基礎(chǔ)上分析存儲頁面124。例如,存儲器拷貝管理器112可在接收到其中一些或所有虛擬機120從第一物理主機110到第二物理主機150的即將發(fā)生的遷移的一個或多個消息或指示符時分析存儲頁面124。在一些實施例中,虛擬機遷移控制器112可給存儲器拷貝管理器112提供其中一些或所有虛擬機120從第一物理主機110到第二物理主機150的即將發(fā)生的遷移的消息或指示符。
存儲器拷貝管理器112可使用任何當前或?qū)黹_發(fā)的分析技術(shù)來標識包含至少部分重復(fù)信息和/或數(shù)據(jù)的存儲頁面124。例如,存儲器拷貝管理器112可生成并比較第一物理主機110上的其中一些或所有存儲頁面124的指紋。存儲器拷貝管理器可使用任何當前或?qū)黹_發(fā)的指紋比對技術(shù)(諸如rabin算法)來執(zhí)行此類指紋比對,這將每個存儲頁面124減小到相當短的數(shù)據(jù)字符串,其對包含在存儲頁面124上的內(nèi)容是唯一的。在實施例中,存儲器拷貝管理器112可比較每個存儲頁面124的指紋以標識候選存儲頁面匹配。為了確認候選匹配存儲頁面124的內(nèi)容同等,存儲器拷貝管理器112可在一個字節(jié)一個字節(jié)的基礎(chǔ)上比較候選匹配存儲頁面124以確認候選匹配存儲頁面124確實同等。在實施例中,存儲器拷貝管理器112可使用一個或多個散列函數(shù)來標識兩個或更多存儲頁面124的同等部分。
虛擬機遷移控制器102可以是獨立控制器,或者可實現(xiàn)為較大控制裝置的一部分。在實施例中,虛擬機遷移控制器102可包含一個或多個通信上耦合的存儲裝置。在一些實現(xiàn)中,虛擬機遷移控制器102可包含能夠執(zhí)行一個或多個機器可執(zhí)行指令集的一個或多個控制器電路。一個或多個機器可執(zhí)行指令集可被全部或部分存儲或以其他方式保留在一個或多個通信上耦合的存儲裝置中。在一些實現(xiàn)中,虛擬機遷移控制器102可全部或部分由第一物理主機系統(tǒng)110執(zhí)行。在一些實現(xiàn)中,虛擬機遷移控制器102可全部或部分由第二物理主機系統(tǒng)150執(zhí)行。在一些實現(xiàn)中,虛擬機遷移控制器102可由第一物理主機系統(tǒng)110和第二物理主機系統(tǒng)150外部的一個或多個裝置執(zhí)行。
虛擬機遷移控制器102控制虛擬機120從第一物理主機系統(tǒng)110到第二物理主機系統(tǒng)150的遷移140。在至少一些實現(xiàn)中,第一物理主機系統(tǒng)110可以硬連線耦合160(例如定位在公共機架中的另一刀片服務(wù)器上)到第二物理主機系統(tǒng)150。在此類實現(xiàn)中,虛擬機120的遷移140可全部或部分經(jīng)由硬連線連接160發(fā)生。在一些實現(xiàn)中,第一物理主機系統(tǒng)110可經(jīng)由一個或多個網(wǎng)絡(luò)162通信上耦合到第二物理主機系統(tǒng)150。在此類實現(xiàn)中,虛擬機120的遷移140可經(jīng)由網(wǎng)絡(luò)連接162發(fā)生。
第一物理主機系統(tǒng)110可包含一個或多個網(wǎng)絡(luò)帶寬分配器114。網(wǎng)絡(luò)帶寬分配器114可向虛擬機遷移140劃分、專用或以其他方式分配可用網(wǎng)絡(luò)帶寬。此類帶寬分配可全部或部分基于當前在第一物理主機系統(tǒng)110上執(zhí)行的其它過程的帶寬要求。在一些實施例中,網(wǎng)絡(luò)帶寬分配器114可向虛擬機遷移控制器102傳遞對于虛擬機遷移140可用的帶寬。
圖2a是按照本公開的至少一個實施例在第一物理主機系統(tǒng)110上執(zhí)行的多個虛擬機120a-120d映射(202a-202d)到公共存儲頁面124的說明性系統(tǒng)200的示意。在一些實現(xiàn)中,多個虛擬機120可映射到單個共享存儲頁面124*。共享存儲頁面124*可被存儲或以其他方式保留在第一物理主機系統(tǒng)110的存儲器122中。
在實施例中,存儲器拷貝管理器112可將多個虛擬機120標識為映射202到公共或共享存儲頁面124*。在實施例中,虛擬機遷移控制器102可將多個虛擬機120標識為映射202到公共或共享存儲頁面124*。在此類實施例中,虛擬機遷移控制器102可至少部分基于公共或共享存儲頁面124*有選擇地分組210多個虛擬機120以便遷移140到第二物理主機系統(tǒng)150。通過有選擇地分組多個虛擬機120進行遷移,虛擬機遷移控制器102能夠僅使用共享存儲頁面124*的單個實例完成遷移。相比之下,如果虛擬機遷移控制器102單獨遷移多個虛擬機120中的每個,則對于包含在多個虛擬機120中的每一個虛擬機120將遷移一次共享存儲頁面124*。從而,通過分組共享公共存儲頁面124*的多個虛擬機120,帶寬和遷移時間要求被有益地降低。
圖2b是按照本公開的至少一個實施例在第一物理主機系統(tǒng)110上執(zhí)行的多個虛擬機120a-120d映射(202a-202d)到不同存儲頁面124a-124d然而每一個存儲頁面124的至少一部分包含公共信息或數(shù)據(jù)220的說明性系統(tǒng)200的示意。在一些實現(xiàn)中,多個虛擬機120可映射到不同存儲頁面124,然而每一個不同存儲頁面124可包含同等信息或數(shù)據(jù)220。在此類實例中,存儲頁面124可被存儲或以其他方式保留在第一物理主機系統(tǒng)110的存儲器122中。
在實施例中,存儲器拷貝管理器112可將多個虛擬機120標識為映射202到不同存儲頁面124,其每個都包含至少部分公共信息或數(shù)據(jù)220。在實施例中,其中一些或所有不同存儲頁面124可包含同等的信息或數(shù)據(jù)。在實施例中,存儲器拷貝管理器112可生成每一個不同存儲頁面124的指紋。存儲器拷貝管理器112可比較每一個不同存儲頁面124的指紋以確定可包含同等信息或數(shù)據(jù)的候選匹配存儲頁面124。在實施例中,存儲器拷貝管理器112可在一個字節(jié)一個字節(jié)的基礎(chǔ)上比較候選匹配存儲頁面124以確定候選匹配存儲頁面124實際上是否同等。
在實施例中,其中一些或所有不同存儲頁面124可包含公共或同等的信息或數(shù)據(jù)段、短文或部分220。在實施例中,存儲器拷貝管理器112可使用一個或多個散列函數(shù)標識每一個不同存儲頁面124的公共部分220。
在此類實施例中,虛擬機遷移控制器102可至少部分基于在不同存儲頁面124上包含的公共或共享信息或數(shù)據(jù)有選擇地分組210多個虛擬機120以便遷移140到第二物理主機系統(tǒng)150。通過有選擇地分組多個虛擬機120進行遷移,虛擬機遷移控制器102能夠通過僅遷移一次公共信息或數(shù)據(jù)而不是對于包含在組210中的每一個虛擬機120遷移一次來完成分組的虛擬機的遷移。從而,通過分組映射到包含公共或同等信息或數(shù)據(jù)部分220的存儲頁面124的多個虛擬機120,帶寬和遷移時間要求可有利地降低。
圖3是按照本公開的至少一個實施例包含指示每個虛擬機對210之間存儲頁面共性302的程度的數(shù)據(jù)的圖表300。在一些實施例中,虛擬機遷移控制器102確定單個存儲頁面124被映射到不同虛擬機120(即由它們共享)的程度和/或虛擬機120被映射到包含同等或公共信息或數(shù)據(jù)的不同存儲頁面124的程度。在實施例中,虛擬機遷移控制器102可基于共享存儲頁面124和具有映射到相應(yīng)虛擬機120的至少部分同等信息或數(shù)據(jù)的存儲頁面124生成諸如包含指示每對虛擬機120之間共性程度的數(shù)據(jù)的圖表300或其它圖形的輸出。圖表300從而用指示具體虛擬機對210共享第一物理主機系統(tǒng)110內(nèi)的存儲器122的存儲空間的程度的值302填充。
圖4是按照本公開至少一個實施例的說明性在線虛擬機遷移方法400的高級流程圖。在方法400中,虛擬機遷移控制器102通過有選擇地標識和分組具有高度存儲頁面共性的虛擬機而降低了遷移時間和網(wǎng)絡(luò)帶寬。此類有選擇地標識和分組虛擬機通過最小化或消除在源物理主機與目的地物理主機之間冗余存儲頁面內(nèi)容的傳送和/或冗余存儲頁面的傳送而減少了完成遷移所需的帶寬和時間。通過跟蹤包含在每個虛擬機組中的虛擬機的頁面變臟時間,虛擬機遷移控制器102能夠基于頁面變臟速率、由每個虛擬機映射的存儲頁面之間共性的程度以及網(wǎng)絡(luò)帶寬來確定計劃遷移持續(xù)時間。方法400在402開始。
在404,虛擬機遷移控制器102確定安排為從第一物理主機系統(tǒng)110遷移到第二物理主機系統(tǒng)150的每一個虛擬機120的頁面變臟速率。頁面變臟速率是虛擬機120改變、添加或刪除映射到相應(yīng)虛擬機的一個或多個存儲頁面124上的信息或數(shù)據(jù)的速率。在實施例中,給定虛擬機120的頁面變臟速率可隨時間相對穩(wěn)定。從而,虛擬機遷移控制器102可以確定具體虛擬機120在定義的時間段(諸如每小時)的歷史頁面變臟速率。這個數(shù)據(jù)然后可用于預(yù)測每個虛擬機的變臟速率,并且確定傳送映射到相應(yīng)虛擬機120的存儲頁面124所需的網(wǎng)絡(luò)帶寬。
在實施例中,為了跟蹤存儲器工作集變臟速率,可使用在虛擬機遷移140的先前迭代期間跟蹤變臟存儲頁面的虛擬機遷移過程中的虛擬機存儲器日志變臟模式。當虛擬機向頁面寫時,日志變臟模式向虛擬機存儲頁面設(shè)置寫保護,并設(shè)置位圖以指示在故障時間(例如虛擬機退出系統(tǒng)虛擬化或者容器虛擬機中的頁面故障)時存儲頁面的變臟狀況。
在406,虛擬機遷移控制器102有選擇地將虛擬機120分組成若干虛擬機組210。虛擬機遷移控制器102可至少部分基于包含在組210中的構(gòu)成虛擬機120之間的共享存儲頁面124的存在來分組210虛擬機120。虛擬機遷移控制器102可至少部分基于映射到若干存儲頁面124的每一個構(gòu)成虛擬機120來分組210虛擬機120,這些存儲頁面與包含在相應(yīng)組210中的其它虛擬機120映射到的其它存儲頁面124共享包含在存儲頁面124上的至少部分內(nèi)容。虛擬機遷移控制器102至少部分基于由包含在相應(yīng)組中的虛擬機120共享的存儲頁面內(nèi)容的共性的程度來分組210虛擬機120。增大包含在組210中的虛擬機120之間的存儲頁面內(nèi)容的共性的程度降低了當在線遷移虛擬機120時遷移的數(shù)據(jù)量,由此有益地降低了完成遷移所需的時間和帶寬。
在408,虛擬機遷移控制器102動態(tài)確定在406創(chuàng)建的每個虛擬機組的計劃遷移時間。計劃遷移時間可受如下因素影響,諸如:
1.包含在組210中的虛擬機120的頁面變臟速率(較高的存儲頁面變臟速率傾向于增大遷移時間和帶寬);
2.包含在組210中的虛擬機之間的存儲頁面124的共性程度(較大的存儲頁面共性傾向于減小遷移時間和帶寬);以及
3.執(zhí)行遷移的可用網(wǎng)絡(luò)帶寬。
基于變臟速率,可預(yù)測以給定網(wǎng)絡(luò)傳送速度的存儲器變臟速率。在實施例中,確定給定存儲器變臟速率的計劃遷移時間可通過首先確定第一時間與第二時間之間變臟的存儲頁面量:
其中:m=變臟的存儲器
d(t)=存儲器變臟速率
以給定工作速度傳送變臟的存儲器的時間是:
其中:t=遷移所需的時間
s=網(wǎng)絡(luò)速度
下一存儲器拷貝迭代將使存儲器變臟如下:
方法400在410結(jié)束。
圖5是按照本公開的至少一個實施例基于相應(yīng)虛擬機組的預(yù)測的遷移時間在第一物理主機系統(tǒng)110與第二物理主機系統(tǒng)150之間遷移虛擬機組210的說明性方法500的高級流程圖。在至少一些實現(xiàn)中,虛擬機遷移控制器102可使虛擬機組至少部分基于計劃或估計時間的遷移基于若干因素(諸如關(guān)于圖4中的408詳細描述的因素)完成遷移。方法500在502開始。
在504,虛擬機遷移控制器102至少部分基于對于每個相應(yīng)虛擬機組210計算的計劃遷移時間有選擇地遷移虛擬機組210。在一些實現(xiàn)中,虛擬機遷移控制器102可基于計劃遷移時間(即最短遷移時間到最長遷移時間)按遞升次序遷移虛擬機組210。
在實施例中,在虛擬機遷移控制器102遷移第一虛擬機組210之后,虛擬機遷移控制器102可再一次將剩余虛擬機120有選擇地分組成若干虛擬機組210。虛擬機遷移控制器102可至少部分基于包含在組210中的構(gòu)成虛擬機120之間的共享存儲頁面124的存在來分組210剩余虛擬機120。在有選擇地將剩余虛擬機120分組成若干虛擬機組210之后,虛擬機遷移控制器102可再一次動態(tài)確定每個虛擬機組210的計劃遷移時間。在動態(tài)確定每個虛擬機組210的計劃遷移時間之后,虛擬機遷移控制器102可再一次至少部分基于對于每個相應(yīng)虛擬機組210計算的計劃遷移時間有選擇地遷移虛擬機組210。虛擬機遷移控制器102可迭代地執(zhí)行這種分組、計劃遷移時間和遷移過程,直到所有虛擬機120都已經(jīng)從第一物理主機系統(tǒng)110遷移到第二物理主機系統(tǒng)120。方法500在506結(jié)束。
圖6是按照本公開至少一個實施例的說明性在線虛擬機遷移方法600的高級流程圖。在方法600中,虛擬機遷移控制器102利用迭代過程,其中虛擬機120至少部分基于共享存儲頁面124被有選擇地分派成虛擬機對,和/或映射到不同存儲頁面124上的同等內(nèi)容。虛擬機遷移控制器102確定每一個虛擬機對的計劃遷移時間。虛擬機遷移控制器102至少部分基于包含在相應(yīng)虛擬機對中的每一個虛擬機120的存儲頁面變臟速率、包含在相應(yīng)對中的虛擬機120之間的同等內(nèi)容和共享存儲頁面的量以及可用的網(wǎng)絡(luò)帶寬來確定計劃遷移時間。虛擬機遷移控制器102可基于計劃遷移時間對虛擬機對進行排序,并且可遷移具有最少計劃遷移時間的虛擬機對。在遷移具有最少計劃遷移時間的虛擬機對之后,虛擬機遷移控制器102可將剩余虛擬機120重新分派成新的虛擬機對,并重復(fù)遷移過程。方法600在602開始。
在604,虛擬機遷移控制器102從每個虛擬機120收集存儲器工作集變臟速率,并確定虛擬機120中的每個相應(yīng)虛擬機的存儲器行為模式。在實施例中,虛擬機遷移控制器102可使用每一個虛擬機的歷史變臟速率來預(yù)測從第一物理主機系統(tǒng)110向第二物理主機系統(tǒng)150遷移映射到相應(yīng)虛擬機120的存儲頁面124所需的網(wǎng)絡(luò)帶寬和/或遷移時間。
在606,虛擬機遷移控制器102初始化用于存儲存儲頁面數(shù)據(jù)、虛擬機組數(shù)據(jù)、網(wǎng)絡(luò)帶寬數(shù)據(jù)以及在虛擬機批量在線遷移期間使用的類似數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。
在608,虛擬機遷移控制器102將虛擬機120有選擇地分組成若干虛擬機對,以評估每一個虛擬機120之間的存儲頁面共性。在實施例中,虛擬機遷移控制器102可生成指示由虛擬機120共享的存儲頁面內(nèi)容的共性程度的一個或多個值。在實施例中,虛擬機遷移控制器102可生成一個或多個數(shù)據(jù)結(jié)構(gòu),諸如在圖3中所描繪的數(shù)據(jù)結(jié)構(gòu),以評估各種虛擬機120之間的存儲頁面共性。
在610,虛擬機遷移控制器102至少部分基于由虛擬機120共享的存儲頁面內(nèi)容的共性的程度將虛擬機120分組210成虛擬機對。在實施例中,虛擬機遷移控制器102可基于所確定的由虛擬機120共享的存儲頁面內(nèi)容的共性程度對虛擬機對210進行排序。增大包含在虛擬機對210中的虛擬機120之間的存儲頁面內(nèi)容的共性程度降低了當虛擬機對被在線批量遷移140時所遷移的數(shù)據(jù)量,由此有益地降低了完成遷移所需的時間和帶寬。
在612,虛擬機遷移控制器102從網(wǎng)絡(luò)帶寬分配器114獲取指示在第一物理主機系統(tǒng)110與第二物理主機系統(tǒng)150之間的給定存儲器帶寬的數(shù)據(jù)。在實施例中,虛擬機遷移控制器102可按在610確定的排序列表迭代虛擬機對120,以選擇可基于如下準則一起成功遷移的虛擬機對210:
1.包含在該對中的虛擬機120的頁面變臟速率(較高的存儲頁面變臟速率傾向于增大遷移時間和帶寬);
2.要傳送的總存儲器量。在實施例中,對于虛擬機對210傳送的存儲器量可受包含在該對210中的虛擬機120之間的存儲頁面124的共性程度的影響(較大存儲頁面共性傾向于減小遷移時間和帶寬);以及
3.機會性的虛擬機批量遷移。如果虛擬機遷移控制器102確定虛擬機工作載荷以存儲器變臟速率呈現(xiàn)周期浮動,則當變臟速率接近最小值或在最小值時,虛擬機遷移控制器102可調(diào)度虛擬機對210的遷移。
基于變臟速率,虛擬機遷移控制器102可預(yù)測每個虛擬機對在給定網(wǎng)絡(luò)傳送速度的計劃遷移時間。
在614,虛擬機遷移控制器102選擇具有最短計劃遷移時間的虛擬機對。
在616,虛擬機遷移控制器102至少部分基于在612執(zhí)行的分析來確定是否可成功遷移任何虛擬機對210。如果虛擬機遷移控制器102不能夠選擇滿足所有準則的虛擬機對210,則該方法在618繼續(xù)。如果虛擬機遷移控制器102能夠選擇滿足該準則的虛擬機對210,則該方法在620繼續(xù)。
在618,響應(yīng)于確定不可能成功遷移虛擬機對210,虛擬機遷移控制器102選擇具有最小量存儲頁面共性的虛擬機120從第一物理主機裝置110遷移到第二物理主機裝置150。
在620,虛擬機遷移控制器102遷移具有最短計劃遷移持續(xù)時間的虛擬機對。
在622,響應(yīng)于成功遷移具有最短遷移持續(xù)時間的虛擬機對210,虛擬機遷移控制器102從在608生成的數(shù)據(jù)集中移除虛擬機對。
在624,虛擬機遷移控制器102確定是否已經(jīng)移除了所有虛擬機120。如果未遷移所有虛擬機120,則方法600返回到608。如果已經(jīng)遷移了所有虛擬機120,則方法600在626結(jié)束。
圖7以及隨后論述提供了形成說明性虛擬機批量在線遷移系統(tǒng)700的組件的簡要、一般描述,其包含虛擬機遷移控制器102、第一物理主機系統(tǒng)110和第二物理主機系統(tǒng)150,在其中可實現(xiàn)各種圖示的實施例。盡管不要求,但將在機器可讀或計算機可執(zhí)行指令集(諸如由虛擬機遷移控制器102執(zhí)行的程序應(yīng)用模塊、對象或宏)的通用上下文中描述實施例的一些部分。本領(lǐng)域技術(shù)人員將認識到,所圖示的實施例以及其它實施例可用其它基于電路的裝置配置實施,包含便攜式電子或手持電子裝置,比如智能電話、便攜式計算機、可穿戴計算機、基于微處理器的或可編程的消費電子產(chǎn)品、個人計算機(pc)、網(wǎng)絡(luò)pc、小型計算機、大型計算機等等。實施例可在分布式計算環(huán)境中實施,其中任務(wù)或模塊由通過通信網(wǎng)絡(luò)鏈接的遠程處理裝置執(zhí)行。在分布式計算環(huán)境中,程序模塊可位于本地和遠程存儲器儲存裝置中。
虛擬機遷移控制器102可采取一個或多個電路的形式,包含部分或全部布置在pc、服務(wù)器或能夠執(zhí)行機器可讀指令的其它計算系統(tǒng)中的電子和/或半導(dǎo)體組件。虛擬機遷移控制器102包含一個或多個電路712,并且有時可包含將包含系統(tǒng)存儲器714的各種系統(tǒng)組件耦合到一個或多個電路712的通信鏈路716。虛擬機遷移控制器102有時在本文中將以單數(shù)提及,但這不意圖將實施例局限于單個系統(tǒng),因為在某些實施例中,將有多于一個虛擬機遷移控制器102或其它連網(wǎng)的電路或裝置卷入。
電路712可包含任何數(shù)量、類型或分組的裝置。有時,電路712可全部或部分以半導(dǎo)體裝置諸如二極管、晶體管、電感器、電容器和電阻器的形式實現(xiàn)。此類實現(xiàn)可包含但不限于任何當前或?qū)黹_發(fā)的單核或多核處理器或微處理器,諸如:一個或多個片上系統(tǒng)(soc);中央處理單元(cpu);數(shù)字信號處理器(dsp);圖形處理單元(gpu);專用集成電路(asic);現(xiàn)場可編程門陣列(fpga)等等。除非另有描述,否則在圖7中示出的各種塊的構(gòu)造和操作屬于常規(guī)設(shè)計。結(jié)果,此類塊不必在本文中更詳細描述,因為相關(guān)領(lǐng)域的技術(shù)人員將理解它們?;ミB示例虛擬機遷移控制器102的至少一些組件的通信鏈路716可采用任何已知的總線結(jié)構(gòu)或架構(gòu)。
系統(tǒng)存儲器714可包含只讀存儲器("rom")718和隨機存取存儲器("ram")720。rom718的一部分可包含基本輸入/輸出系統(tǒng)("bios")722。bios722可向虛擬機遷移控制器102提供基本功能性,例如通過使控制器加載使一個或多個電路712提供并擔(dān)任虛擬機遷移控制器102的機器可讀指令集。虛擬機遷移控制器102可包含一個或多個通信上耦合的非易失性數(shù)據(jù)存儲裝置732。一個或多個數(shù)據(jù)存儲裝置732可包含任何當前或?qū)黹_發(fā)的非易失性存儲裝置。此類非易失性數(shù)據(jù)存儲裝置732的非限制示例可包含但不限于一個或多個磁存儲裝置、一個或多個光存儲裝置、一個或多個固態(tài)電磁存儲裝置、一個或多個固態(tài)電阻存儲裝置、一個或多個分子存儲裝置、一個或多個量子存儲裝置或它們的各種分組。
一個或多個存儲裝置732可包含在通信上將相應(yīng)存儲裝置或系統(tǒng)耦合到通信鏈路716的接口或控制器(未示出),這是本領(lǐng)域技術(shù)人員已知的。一個或多個存儲裝置732可包含機器可讀指令集、數(shù)據(jù)結(jié)構(gòu)、程序模塊以及對虛擬機遷移控制器102有用的其它數(shù)據(jù)。在一些實例中,一個或多個外部存儲裝置728可在通信上耦合到虛擬機遷移控制器102,例如經(jīng)由一個或多個系留或無線網(wǎng)絡(luò)。
機器可讀指令集738和其它指令集740可被全部或部分存儲在系統(tǒng)存儲器714中。此類指令集可從一個或多個存儲裝置732和/或一個或多個外部存儲裝置728傳送,并且當由虛擬機遷移控制器102執(zhí)行時全部或部分存儲在系統(tǒng)存儲器714中。機器可讀指令集738可包含能夠提供本文描述的在線虛擬機遷移功能和能力的邏輯。
例如,一個或多個機器可讀指令集738可使虛擬機遷移控制器102收集表示在第一物理主機系統(tǒng)110上托管的若干虛擬機120中的每個的存儲器工作集變臟速率的數(shù)據(jù)。一個或多個機器可讀指令集738可使虛擬機遷移控制器102分析表示若干虛擬機120中的每個的存儲器工作集變臟速率的收集的數(shù)據(jù)以確定每一個虛擬機120的存儲器變臟速率和/或存儲器變臟速率模式。
一個或多個機器可讀指令集738可使虛擬機遷移控制器102生成指示由多個虛擬機120共享的存儲頁面124的數(shù)據(jù)或信息。一個或多個機器可讀指令集738可使虛擬機遷移控制器102生成指示映射到不同虛擬機120的存儲頁面124的同等部分的數(shù)據(jù)或信息中的至少一個。一個或多個機器可讀指令集738可使虛擬機遷移控制器102生成指示多個不同虛擬機120之間存儲頁面124共性的一個或多個邏輯結(jié)構(gòu),諸如在圖3中所描繪的表。
一個或多個機器可讀指令集738可使虛擬機遷移控制器102收集表示將多個虛擬機120從第一物理主機系統(tǒng)110在線傳送到第二物理主機系統(tǒng)150的可用帶寬的數(shù)據(jù)。一個或多個機器可讀指令集738可使虛擬機遷移控制器102迭代虛擬機組或?qū)?10以選擇虛擬機組或?qū)?10進行遷移。
一個或多個機器可讀指令集738可使虛擬機遷移控制器102至少部分基于每個虛擬機120的變臟速率、在一組或一對210中的虛擬機120之間共享的存儲頁面和可用網(wǎng)絡(luò)帶寬來預(yù)測虛擬機組或?qū)?10的遷移時間。
虛擬機遷移控制器102的用戶可使用一個或多個通信上耦合的物理輸入裝置750諸如一個或多個文本錄入裝置751(例如鍵盤)、一個或多個指點裝置752(例如鼠標、跟蹤球、觸摸屏)和/或一個或多個音頻輸入裝置753向虛擬機遷移控制器102提供、輸入或以其他方式提供命令(例如承認、選擇、確認等)以及信息(例如主體標識信息、顏色參數(shù))。其中一些或所有物理輸入裝置750可物理上或通信上耦合到虛擬機遷移控制器102。例如,示例虛擬機遷移控制器102可包含提供若干物理輸入裝置750的觸摸屏用戶接口,諸如觸摸屏751。
虛擬機遷移控制器102的用戶可經(jīng)由一個或多個物理輸出裝置754生成輸出。在至少一些實現(xiàn)中,物理輸出裝置754可包含但不限于一個或多個顯示裝置755、一個或多個觸覺輸出裝置756、一個或多個音頻輸出裝置757或它們的任何分組。一些或所有物理輸入裝置750和一些或所有物理輸出裝置754可經(jīng)由一個或多個有線或無線接口在通信上耦合到虛擬機遷移控制器102。
為了方便起見,網(wǎng)絡(luò)接口760、一個或多個電路712、系統(tǒng)存儲器714、物理輸入裝置750和物理輸出裝置754被圖示為經(jīng)由通信鏈路716通信上彼此耦合,由此提供上面描述的組件之間的連接性。在備選實施例中,上面描述的組件可以與在圖7中圖示的不同方式在通信上耦合。例如,一個或多個上面描述的組件可直接耦合到其它組件,或者可經(jīng)由一個或多個中間組件(未示出)彼此耦合。在一些實施例中,通信鏈路716被省略,并且組件使用適合的有線或無線連接彼此直接耦合。
第一物理主機裝置110可包含能夠執(zhí)行一個或多個機器可執(zhí)行指令集的一個或多個電路768a。有時,其中一些或所有機器可讀指令集可被存儲或以其他方式保留在第一物理主機裝置110內(nèi)的系統(tǒng)存儲器769a中。系統(tǒng)存儲器769a可包含只讀存儲器(rom)770a、隨機存取存儲器772a或它們的分組。第一物理主機裝置bios771a可存儲、保留或以其他方式占用至少一部分rom770a。
第一物理主機裝置110還可包含一個或多個存儲裝置773a。有時,一個或多個存儲裝置773a可包含但不限于固態(tài)存儲裝置、旋轉(zhuǎn)介質(zhì)存儲裝置、靜電存儲裝置、電阻存儲裝置或它們的分組,它們?nèi)炕虿糠植贾迷诘谝晃锢碇鳈C裝置110中。有時,第一物理主機裝置110可包含基于云的機架安裝的服務(wù)器計算機系統(tǒng)。有時,一個或多個存儲裝置773a可包含一種或多種類型的可移動介質(zhì)774a,例如一個或多個熱插拔硬驅(qū)或類似存儲電器。
第一物理主機裝置110還可包含一個或多個用戶接口775a。一個或多個用戶接口775a可包含一個或多個用戶輸入裝置776a。示例非限制用戶輸入裝置776a可包含但不限于一個或多個指點器、一個或多個文本輸入裝置、一個或多個音頻輸入裝置、一個或多個觸摸屏輸入裝置或它們的任何分組。一個或多個用戶接口775a備選地或附加地可包含一個或多個用戶輸出裝置777a。示例非限制用戶輸出裝置777a可包含但不限于一個或多個視覺輸出裝置、一個或多個觸覺輸出裝置、一個或多個音頻輸出裝置或它們的任何分組。
第一物理主機系統(tǒng)110可包含一個或多個網(wǎng)絡(luò)接口778a。一個或多個網(wǎng)絡(luò)接口778a可包含任何當前或?qū)硐盗艚涌冢ɡ绫嘲濉⒁蕴W(wǎng)等)或無線網(wǎng)絡(luò)接口(例如wifi、ieee802.11)。一個或多個網(wǎng)絡(luò)接口778a可間或在通信上將第一物理主機系統(tǒng)110耦合到虛擬機遷移控制器102。
一個或多個電路768a可包含適合于執(zhí)行一個或多個機器可讀指令集的一個或多個單核或多核處理器或微處理器。一個或多個電路768a可包含一個或多個微處理器、精簡指令集計算機(risc)、專用集成電路(asic)、數(shù)字信號處理器(dsp)、片上系統(tǒng)(soc)等。
系統(tǒng)存儲器769a可存儲所有或部分基本輸入/輸出系統(tǒng)(bios)、引導(dǎo)序列、固件、啟動例程等。系統(tǒng)存儲器769a可存儲由一個或多個電路768a在初始給電時執(zhí)行的所有或部分虛擬機遷移控制器102操作系統(tǒng)(例如ios?、android?、windows?phone、windows?10等)。
第二物理主機裝置150可包含能夠執(zhí)行一個或多個機器可執(zhí)行指令集的一個或多個電路768b。有時,其中一些或所有機器可讀指令集可被存儲或以其他方式保留在第二物理主機裝置150內(nèi)的系統(tǒng)存儲器769b中。系統(tǒng)存儲器769b可包含只讀存儲器(rom)770b、隨機存取存儲器772b或它們的分組。第二物理主機裝置bios771b可存儲、保留或以其他方式占用至少一部分rom770b。
第二物理主機裝置150還可包含一個或多個存儲裝置773b。有時,一個或多個存儲裝置773b可包含但不限于固態(tài)存儲裝置、旋轉(zhuǎn)介質(zhì)存儲裝置、靜電存儲裝置、電阻存儲裝置或它們的分組,它們?nèi)炕虿糠植贾迷诘诙锢碇鳈C裝置150中。有時,第二物理主機裝置150可包含基于云的機架安裝的服務(wù)器計算機系統(tǒng)。有時,一個或多個存儲裝置773b可包含一種或多種類型的可移動介質(zhì)774b,例如一個或多個熱插拔硬驅(qū)或類似存儲電器。
第二物理主機裝置150還可包含一個或多個用戶接口775b。一個或多個用戶接口775b可包含一個或多個用戶輸入裝置776b。示例非限制用戶輸入裝置776b可包含但不限于一個或多個指點器、一個或多個文本輸入裝置、一個或多個音頻輸入裝置、一個或多個觸摸屏輸入裝置或它們的任何分組。一個或多個用戶接口775b備選地或附加地可包含一個或多個用戶輸出裝置777b。示例非限制用戶輸出裝置777b可包含但不限于一個或多個視覺輸出裝置、一個或多個觸覺輸出裝置、一個或多個音頻輸出裝置或它們的任何分組。
第二物理主機裝置150可包含一個或多個網(wǎng)絡(luò)接口778b。一個或多個網(wǎng)絡(luò)接口778b可包含任何當前或?qū)硐盗艚涌冢ɡ绫嘲?、以太網(wǎng)等)或無線網(wǎng)絡(luò)接口(例如wifi、ieee802.11)。一個或多個網(wǎng)絡(luò)接口778b可間或在通信上將第二物理主機裝置150耦合到虛擬機遷移控制器102。
一個或多個電路768b可包含適合于執(zhí)行一個或多個機器可讀指令集的一個或多個單核或多核處理器或微處理器。一個或多個電路768b可包含一個或多個微處理器、精簡指令集計算機(risc)、專用集成電路(asic)、數(shù)字信號處理器(dsp)、片上系統(tǒng)(soc)等。
系統(tǒng)存儲器769b可存儲所有或部分基本輸入/輸出系統(tǒng)(bios)、引導(dǎo)序列、固件、啟動例程等。系統(tǒng)存儲器769b可存儲由一個或多個電路768b在初始給電時執(zhí)行的所有或部分虛擬機遷移控制器102操作系統(tǒng)(例如ios?、android?、windows?phone、windows?10等)。
如下示例涉及另外實施例。本公開的如下示例可包括諸如實現(xiàn)多個虛擬機120從第一物理主機系統(tǒng)110到第二物理主機系統(tǒng)150的在線遷移的裝置、系統(tǒng)和方法的主題。
根據(jù)示例1,提供了一種將多個虛擬機從第一物理主機在線遷移到第二物理主機的系統(tǒng)。所述系統(tǒng)可包含通信上耦合到第一物理主機和第二物理主機的至少一個網(wǎng)絡(luò)接口以及通信上耦合到至少一個網(wǎng)絡(luò)接口的至少一個電路。所述系統(tǒng)可進一步包含通信上耦合到至少一個電路的至少一個存儲裝置,至少一個存儲裝置包含機器可讀指令,所述指令當執(zhí)行時使至少一部分電路提供虛擬機遷移控制器,所述虛擬機遷移控制器:對于在第一物理主機上托管的多個虛擬機中的每個虛擬機:確定指示在邏輯上與相應(yīng)虛擬機關(guān)聯(lián)的存儲頁面變臟速率的值;有選擇地分組多個虛擬機中的至少一些虛擬機以提供若干虛擬機組,相應(yīng)虛擬機組中的每個虛擬機都訪問第一物理主機上的同等存儲頁面內(nèi)容部分;以及至少部分基于如下項動態(tài)預(yù)測遷移相應(yīng)虛擬機組的持續(xù)時間:由所述相應(yīng)虛擬機組中的所述虛擬機訪問的所述同等存儲頁面內(nèi)容部分的單個遷移;將相應(yīng)虛擬機組從第一物理主機遷移到第二物理主機的可用帶寬;以及指示在邏輯上與包含在所述相應(yīng)虛擬機組中的每一個所述虛擬機關(guān)聯(lián)的所述存儲頁面變臟速率的值。
示例2可包含示例1的元件,其中所述機器可讀指令可進一步使虛擬機遷移控制器:有選擇地將若干虛擬機組中的每組從第一物理主機遷移到第二物理主機,虛擬機組遷移至少部分基于在可用帶寬遷移相應(yīng)虛擬機組的預(yù)測持續(xù)時間按次序執(zhí)行。
示例3可包含示例1的元件,其中使虛擬機遷移控制器確定指示在邏輯上與相應(yīng)虛擬機關(guān)聯(lián)的存儲頁面變臟速率的值的機器可讀指令可使虛擬機遷移控制器:確定指示在定義的歷史時間間隔上每個相應(yīng)虛擬機的存儲頁面變臟速率的值。
示例4可包含示例3的元件,其中使虛擬機遷移控制器確定指示指示在定義的歷史時間間隔上每個相應(yīng)虛擬機的存儲頁面變臟速率的值的機器可讀指令可使虛擬機遷移控制器:確定指示在60分鐘間隔上每個相應(yīng)虛擬機的存儲頁面變臟速率的歷史值。
示例5可包含示例1的元件,其中使虛擬機遷移控制機器有選擇地分組多個虛擬機中虛擬機的機器可讀指令可使虛擬機遷移控制器:有選擇地將多個虛擬機中的虛擬機組對以提供若干虛擬機對,相應(yīng)虛擬機對中的每個虛擬機訪問至少一個同等存儲頁面內(nèi)容部分。
示例6可包含示例1的元件,其中使虛擬機遷移控制機器有選擇地分組多個虛擬機中虛擬機的機器可讀指令可使虛擬機遷移控制器:有選擇地分組虛擬機使得相應(yīng)虛擬機組中的每個虛擬機訪問至少一個公共存儲頁面。
示例7可包含示例1的元件,其中使虛擬機遷移控制機器有選擇地分組多個虛擬機中虛擬機的機器可讀指令可使虛擬機遷移控制器:有選擇地分組至少一些虛擬機使得相應(yīng)虛擬機組中的每個虛擬機都訪問多個存儲頁面中的至少一個,多個存儲頁面中的每個至少部分包含同等內(nèi)容。
示例8可包含示例7的元件,其中使虛擬機遷移控制器有選擇地分組至少一些虛擬機使得相應(yīng)虛擬機組中的每個虛擬機都訪問多個存儲頁面中的至少一個(多個存儲頁面中的每個至少部分包含同等內(nèi)容)的機器可讀指令可使虛擬機遷移控制器:至少部分基于包含在所述多個存儲頁面中每個頁面的至少一部分中的所述內(nèi)容來確定散列值;檢測具有類似散列值的所述多個存儲頁面內(nèi)的所述至少兩個存儲頁面;以及對于所述檢測的具有類似散列值的所述多個存儲頁面內(nèi)的至少兩個存儲頁面,標識包含在所述至少兩個頁面中每個頁面上的所述同等內(nèi)容。
示例9可包含示例1的元件,其中使虛擬機遷移控制器有選擇地分組多個虛擬機中的至少一些虛擬機的機器可讀指令可使虛擬機遷移控制器有選擇地分組至少一些虛擬機使得相應(yīng)虛擬機組中的每個虛擬機都訪問多個存儲頁面中的至少一個,多個存儲頁面中的每個至少部分包含同等內(nèi)容。
示例10可包含示例9的元件,其中使虛擬機遷移控制器有選擇地分組至少一些虛擬機使得相應(yīng)虛擬機組中的每個虛擬機都訪問多個存儲頁面中的至少一個(多個存儲頁面中的每個至少部分包含同等內(nèi)容)的機器可讀指令可使虛擬機遷移控制器:至少部分基于包含在所述多個存儲頁面中每個頁面的至少一部分中的內(nèi)容來確定指紋值;比較指紋值以標識多個存儲頁面中的至少兩個候選同等存儲頁面;一個字節(jié)一個字節(jié)地比較至少兩個候選同等存儲頁面中的每個;以及至少部分基于一個字節(jié)一個字節(jié)的比較來標識多個存儲頁面內(nèi)具有同等內(nèi)容的至少兩個存儲頁面。
根據(jù)示例11,提供了一種在線虛擬機遷移系統(tǒng)。所述系統(tǒng)可包含至少一個控制器電路以及通信上耦合到至少一個控制器電路的至少一個存儲裝置,至少一個存儲裝置包含機器可執(zhí)行指令,所述指令當由至少一個控制器電路執(zhí)行時使至少一個控制器電路提供虛擬機遷移控制器。虛擬機遷移控制器可確定駐留在第一主機系統(tǒng)上的多個虛擬機中每個虛擬機的頁面變臟速率;有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組,所述虛擬機組中的每組都包含先前訪問至少一個同等存儲頁面內(nèi)容部分的虛擬機;以及至少部分基于所述至少一個同等存儲頁面內(nèi)容部分、包含在相應(yīng)組中的每一個所述虛擬機的所述頁面變臟速率以及可用的網(wǎng)絡(luò)帶寬來確定所述若干虛擬機組中的每組從第一主機系統(tǒng)遷移到第二主機系統(tǒng)的計劃遷移時間。
示例12可包含示例11的元件,其中機器可執(zhí)行指令可進一步使虛擬機遷移控制器由虛擬機遷移控制器確定若干虛擬機組中每組的遷移次序。
示例13可包含示例12的元件,其中使所述虛擬機遷移控制器確定所述若干虛擬機組中每組的遷移次序的所述機器可執(zhí)行指令可進一步使所述虛擬機遷移控制器:至少部分基于所述若干虛擬機組中每個相應(yīng)組的所述計劃遷移時間來確定所述若干虛擬機組中每組的遷移次序。
示例14可包含示例12的元件,其中機器可執(zhí)行指令可進一步使虛擬機遷移控制器:至少部分基于在所述可用帶寬遷移所述相應(yīng)虛擬機組的預(yù)測持續(xù)時間按次序有選擇地將所述若干虛擬機組中的每組從第一主機系統(tǒng)遷移到第二主機系統(tǒng)。
示例15可包含示例11的元件,其中使所述虛擬機遷移控制器確定多個虛擬機中每個的頁面變臟速率的所述機器可執(zhí)行指令可進一步使所述虛擬機遷移控制器:基于所述虛擬機中的每個相應(yīng)虛擬機在定義的時間間隔上的歷史頁面變臟來確定每一個所述虛擬機的頁面變臟速率。
示例16可包含示例11的元件,其中使所述虛擬機遷移控制器有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組的所述機器可執(zhí)行指令可進一步使所述虛擬機遷移控制器:有選擇地將所述多個虛擬機中的每個分組成若干虛擬機對之一,相應(yīng)虛擬機對中的每個虛擬機訪問至少一個同等存儲頁面內(nèi)容部分。
示例17可包含示例11至16中任一示例的元件,其中使所述虛擬機遷移控制器有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組的所述機器可執(zhí)行指令可進一步使所述虛擬機遷移控制器:有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組,所述虛擬機組中的每組都包含先前訪問至少一個公共存儲頁面的虛擬機。
示例17可包含示例11至16中任一示例的元件,其中使所述虛擬機遷移控制器有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組的所述機器可執(zhí)行指令可進一步使所述虛擬機遷移控制器:有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組,所述虛擬機組中的每組都包含先前訪問多個存儲頁面中至少一個的虛擬機,所述多個存儲頁面中的每個至少部分包含所述同等存儲頁面內(nèi)容部分。
示例19可包含示例18的元件,其中使所述虛擬機遷移控制器有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組的所述機器可執(zhí)行指令可進一步使所述虛擬機遷移控制器:至少部分基于包含在所述多個存儲頁面中每個頁面的至少一部分中的所述內(nèi)容來確定散列值;檢測具有類似散列值的所述多個存儲頁面內(nèi)的所述至少兩個存儲頁面;以及
對于所述檢測的具有類似散列值的所述多個存儲頁面內(nèi)的至少兩個存儲頁面,標識包含在所述至少兩個頁面中每個頁面上的所述同等內(nèi)容。
示例20可包含示例11至16中任一示例的元件,其中使所述虛擬機遷移控制器有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組的所述機器可執(zhí)行指令可進一步使所述虛擬機遷移控制器:有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組,所述虛擬機組中的每組都包含先前訪問多個存儲頁面中至少一個的虛擬機,所述多個存儲頁面中的每個都具有同等存儲頁面內(nèi)容。
示例21可包含示例20的元件,其中使所述虛擬機遷移控制器有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組的所述機器可執(zhí)行指令可進一步使所述虛擬機遷移控制器:至少部分基于包含在所述多個存儲頁面中每個頁面的至少一部分中的所述內(nèi)容來確定散列值;檢測具有類似散列值的所述多個存儲頁面內(nèi)的所述至少兩個存儲頁面;以及
對于所述檢測的具有類似散列值的所述多個存儲頁面內(nèi)的至少兩個存儲頁面,標識包含在所述至少兩個頁面中每個頁面上的所述同等內(nèi)容。
根據(jù)示例22,提供了一種在線虛擬機遷移方法。所述方法可包含:對于多個虛擬機中的每個虛擬機,確定在邏輯上與相應(yīng)虛擬機關(guān)聯(lián)的所述存儲頁面變臟速率的值;以及有選擇地分組所述多個虛擬機中的虛擬機以提供若干虛擬機組的部件,相應(yīng)虛擬機組中的每個虛擬機都訪問同等存儲頁面內(nèi)容部分。所述方法可進一步包含:對于每個虛擬機組,至少部分基于如下項動態(tài)預(yù)測遷移所述相應(yīng)虛擬機組的持續(xù)時間:由所述相應(yīng)虛擬機組中的所述虛擬機訪問的所述同等存儲頁面內(nèi)容部分的單個遷移;遷移所述相應(yīng)虛擬機組的可用帶寬;以及指示在邏輯上與包含在所述相應(yīng)虛擬機組中的每一個所述虛擬機關(guān)聯(lián)的所述存儲頁面變臟速率的值。
示例23可包含示例22的元件,并且所述方法此外可包含:至少部分基于以所述可用帶寬遷移所述相應(yīng)虛擬機組的預(yù)測的持續(xù)時間按次序有選擇地遷移所述若干虛擬機組中每組。
示例24可包含示例22的元件,其中確定指示在邏輯上與相應(yīng)虛擬機關(guān)聯(lián)的存儲頁面變臟速率的值可包含:確定指示在定義的歷史時間間隔上每個相應(yīng)虛擬機的存儲頁面變臟速率的值。
示例25可包含示例24的元件,其中確定指示在定義的歷史時間間隔上每個相應(yīng)虛擬機的存儲頁面變臟速率的值可包含確定指示在60分鐘間隔上每個相應(yīng)虛擬機的存儲頁面變臟速率的歷史值。
示例26可包含示例22的元件,其中有選擇地分組所述多個虛擬機中的虛擬機以提供若干虛擬機組的部件,相應(yīng)虛擬機組中的每個虛擬機都訪問至少一個同等存儲頁面內(nèi)容部分可包含:有選擇地將多個虛擬機中的虛擬機組對以提供若干虛擬機對,相應(yīng)虛擬機對中的每個虛擬機可訪問至少一個同等存儲頁面內(nèi)容部分。
示例27可包含示例22的元件,其中有選擇地分組所述多個虛擬機中的虛擬機以提供若干虛擬機組的部件,相應(yīng)虛擬機組中的每個虛擬機都訪問至少一個同等存儲頁面內(nèi)容部分可包含:有選擇地分組虛擬機使得相應(yīng)虛擬機組中的每個虛擬機訪問至少一個公共存儲頁面。
示例28可包含示例22的元件,其中有選擇地分組所述多個虛擬機中的虛擬機以提供若干虛擬機組的部件,相應(yīng)虛擬機組中的每個虛擬機都訪問至少一個同等存儲頁面內(nèi)容部分可包含:有選擇地分組虛擬機使得相應(yīng)虛擬機組中的每個虛擬機訪問具有同等存儲頁面內(nèi)容的多個存儲頁面中的至少一個。
示例29可包含示例28的元件,其中有選擇地分組虛擬機使得相應(yīng)虛擬機組中的每個虛擬機訪問具有同等存儲頁面內(nèi)容的多個存儲頁面中的至少一個可包含至少部分基于包含在所述多個存儲頁面中每個頁面的至少一部分中的所述內(nèi)容來確定散列值;檢測具有類似散列值的所述多個存儲頁面內(nèi)的所述至少兩個存儲頁面;以及對于所述檢測的具有類似散列值的所述多個存儲頁面內(nèi)的至少兩個存儲頁面,標識包含在所述至少兩個頁面中每個頁面上的所述同等內(nèi)容。
示例30可包含示例22的元件,其中有選擇地分組所述多個虛擬機中的虛擬機以提供若干虛擬機組的部件,相應(yīng)虛擬機組中的每個虛擬機都訪問至少一個同等存儲頁面內(nèi)容部分可包含:有選擇地分組虛擬機使得相應(yīng)虛擬機組中的每個虛擬機都訪問多個存儲頁面中的至少一個,多個存儲頁面中的每個至少部分可包含同等內(nèi)容。
示例31可包含示例30的元件,其中有選擇地分組虛擬機使得相應(yīng)虛擬機組中的每個虛擬機都訪問多個存儲頁面中的至少一個(多個存儲頁面中的每個至少部分包含同等內(nèi)容)可包含至少部分基于包含在所述多個存儲頁面中每個頁面的至少一部分中的內(nèi)容來確定指紋值;比較指紋值以標識多個存儲頁面中的至少兩個候選同等存儲頁面;一個字節(jié)一個字節(jié)地比較至少兩個候選同等存儲頁面中的每個;以及至少部分基于一個字節(jié)一個字節(jié)的比較來標識多個存儲頁面內(nèi)具有同等內(nèi)容的至少兩個存儲頁面。
根據(jù)示例32,提供了一種在線虛擬機遷移方法。所述方法可包含由虛擬機遷移控制器確定多個虛擬機中每個的頁面變臟速率。所述方法可進一步包含由所述虛擬機遷移控制器有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組,所述虛擬機組中的每組都包含先前訪問至少一個同等存儲頁面內(nèi)容部分的虛擬機。所述方法此外可包含由所述虛擬機遷移控制器至少部分基于所述至少一個同等存儲頁面內(nèi)容部分、包含在相應(yīng)組中的每一個所述虛擬機的所述頁面變臟速率以及可用的網(wǎng)絡(luò)帶寬來確定所述若干虛擬機組中每組的計劃遷移時間。
示例33可包含示例32的元件,并且所述方法此外可包含:由所述虛擬機遷移控制器確定所述若干虛擬機組中每組的遷移次序。
示例34可包含示例33的元件,其中確定若干虛擬機組中每組的遷移次序可包含由所述虛擬機遷移控制器至少部分基于所述若干虛擬機組中每個相應(yīng)組的所述計劃遷移時間來確定所述若干虛擬機組中每組的遷移次序。
示例35可包含示例33的元件,其中確定多個虛擬機中每個的頁面變臟速率可包含由所述虛擬機遷移控制器基于所述虛擬機中的每個相應(yīng)虛擬機在定義的時間間隔上的歷史頁面變臟來確定每一個所述虛擬機的頁面變臟速率。
示例36可包含示例32的元件,其中有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組可包含由所述虛擬機遷移控制器有選擇地將所述多個虛擬機中的每個分組成若干虛擬機對之一,相應(yīng)虛擬機對中的每個虛擬機訪問至少一個同等存儲頁面內(nèi)容部分。
示例37可包含示例32至36中任一示例的元件,其中有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組可包含由所述虛擬機遷移控制器有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組,所述虛擬機組中的每組都包含先前訪問至少一個公共存儲頁面的虛擬機。
示例38可包含示例32至36中任一示例的元件,其中有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組可包含由所述虛擬機遷移控制器有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組,所述虛擬機組中的每組都包含先前訪問多個存儲頁面中至少一個的虛擬機,所述多個存儲頁面中的每個至少部分包含所述同等存儲頁面內(nèi)容部分。
示例39可包含示例38的元件,其中有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組可包含至少部分基于包含在所述多個存儲頁面中每個頁面的至少一部分中的所述內(nèi)容來確定散列值;檢測具有類似散列值的所述多個存儲頁面內(nèi)的所述至少兩個存儲頁面;以及對于所述檢測的具有類似散列值的所述多個存儲頁面內(nèi)的至少兩個存儲頁面,標識包含在所述至少兩個頁面中每個頁面上的所述同等內(nèi)容。
示例40可包含示例32至36中任一示例的元件,其中有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組可包含由所述虛擬機遷移控制器有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組,所述虛擬機組中的每組都包含先前訪問多個存儲頁面中至少一個的虛擬機,所述多個存儲頁面中的每個都具有同等存儲頁面內(nèi)容。
示例41可包含示例40的元件,其中有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組可包含至少部分基于包含在所述多個存儲頁面中每個頁面的至少一部分中的所述內(nèi)容來確定散列值;檢測具有類似散列值的所述多個存儲頁面內(nèi)的所述至少兩個存儲頁面;以及對于所述檢測的具有類似散列值的所述多個存儲頁面內(nèi)的至少兩個存儲頁面,標識包含在所述至少兩個頁面中每個頁面上的所述同等內(nèi)容。
根據(jù)示例42,提供了一種在線虛擬機遷移系統(tǒng)。所述系統(tǒng)可包含:對于多個虛擬機中的每個虛擬機,用于確定指示在邏輯上與相應(yīng)虛擬機關(guān)聯(lián)的所述存儲頁面變臟速率的值的部件。所述系統(tǒng)此外可包含用于有選擇地分組所述多個虛擬機中的虛擬機以提供若干虛擬機組的部件,相應(yīng)虛擬機組中的每個虛擬機都訪問同等存儲頁面內(nèi)容部分;所述系統(tǒng)此外可包含:對于每個虛擬機組,用于至少部分基于如下項動態(tài)預(yù)測遷移所述相應(yīng)虛擬機組的持續(xù)時間的部件:由所述相應(yīng)虛擬機組中的所述虛擬機訪問的所述同等存儲頁面內(nèi)容部分的單個遷移;遷移所述相應(yīng)虛擬機組的可用帶寬;以及指示在邏輯上與包含在所述相應(yīng)虛擬機組中的每一個所述虛擬機關(guān)聯(lián)的所述存儲頁面變臟速率的值。
示例43可包含示例42的元件,并且所述系統(tǒng)此外可包含:用于至少部分基于以所述可用帶寬遷移所述相應(yīng)虛擬機組的預(yù)測的持續(xù)時間按次序有選擇地遷移所述若干虛擬機組中每組的部件。
示例44可包含示例42的元件,其中用于確定指示在邏輯上與相應(yīng)虛擬機關(guān)聯(lián)的存儲頁面變臟速率的值的部件可包含:用于確定指示在定義的歷史時間間隔上每個相應(yīng)虛擬機的存儲頁面變臟速率的值的部件。
示例45可包含示例44的元件,其中用于確定指示在定義的歷史時間間隔上每個相應(yīng)虛擬機的存儲頁面變臟速率的值的部件可包含用于確定指示在60分鐘間隔上每個相應(yīng)虛擬機的存儲頁面變臟速率的歷史值的部件。
示例46可包含示例42的元件,其中用于有選擇地分組多個虛擬機中的虛擬機的部件可包含用于有選擇地將多個虛擬機中的虛擬機組對以提供若干虛擬機對的部件,相應(yīng)虛擬機對中的每個虛擬機訪問至少一個同等存儲頁面內(nèi)容部分。
示例47可包含示例42的元件,其中用于有選擇地分組多個虛擬機中的虛擬機的部件可包含用于有選擇地分組虛擬機使得相應(yīng)虛擬機組中的每個虛擬機訪問至少一個公共存儲頁面的部件。
示例48可包含示例42的元件,其中用于有選擇地分組多個虛擬機中的虛擬機的部件可包含用于有選擇地分組虛擬機使得相應(yīng)虛擬機組中的每個虛擬機都訪問多個存儲頁面中的至少一個的部件,多個存儲頁面中的每個至少部分包含同等內(nèi)容。
示例49可包含示例48的元件,其中用于有選擇地分組虛擬機使得相應(yīng)虛擬機組中的每個虛擬機都訪問多個存儲頁面中的至少一個(多個存儲頁面中的每個至少部分包含同等內(nèi)容)的部件可包含用于至少部分基于包含在多個存儲頁面中每個頁面的至少一部分中的內(nèi)容來確定散列值的部件;用于檢測具有類似散列值的所述多個存儲頁面內(nèi)的所述至少兩個存儲頁面的部件;以及用于對于檢測的具有類似散列值的多個存儲頁面內(nèi)的至少兩個存儲頁面標識包含在至少兩個頁面中每個頁面上的同等內(nèi)容的部件。
示例50可包含示例48的元件,其中用于有選擇地分組多個虛擬機中的虛擬機的部件可包含用于有選擇地分組虛擬機使得相應(yīng)虛擬機組中的每個虛擬機訪問具有同等存儲頁面內(nèi)容的多個存儲頁面中的至少一個的部件。
示例51可包含示例50的元件,其中用于有選擇地分組虛擬機使得相應(yīng)虛擬機組中的每個虛擬機訪問具有同等存儲頁面內(nèi)容的多個存儲頁面中的至少一個的部件可包含用于至少部分基于包含在所述多個存儲頁面中每個頁面的至少一部分中的內(nèi)容來確定指紋值的部件;用于比較指紋值以標識多個存儲頁面中的至少兩個候選同等存儲頁面的部件;用于一個字節(jié)一個字節(jié)地比較至少兩個候選同等存儲頁面中的每個的部件;以及用于至少部分基于一個字節(jié)一個字節(jié)的比較來標識多個存儲頁面內(nèi)具有同等內(nèi)容的至少兩個存儲頁面的部件。
根據(jù)示例52,提供了一種在線虛擬機遷移系統(tǒng)。所述系統(tǒng)可包含:用于確定在第一主機系統(tǒng)上實現(xiàn)的多個虛擬機中每個虛擬機的頁面變臟速率的部件。所述系統(tǒng)可進一步包含:用于有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組的部件,所述虛擬機組中的每組都包含先前訪問至少一個同等存儲頁面內(nèi)容部分的虛擬機。所述系統(tǒng)此外可包含:用于至少部分基于至少一個同等存儲頁面內(nèi)容部分、包含在相應(yīng)組中的每一個虛擬機的頁面變臟速率以及可用的網(wǎng)絡(luò)帶寬來確定若干虛擬機組中每組的計劃遷移時間的部件。
示例53可包含示例52的元件,并且所述系統(tǒng)此外可包含:用于由虛擬機遷移控制器確定若干虛擬機組中每組的遷移次序的部件。
示例54可包含示例53的元件,其中用于確定若干虛擬機組中每組的遷移次序的部件可包含用于至少部分基于所述若干虛擬機組中每個相應(yīng)組的所述計劃遷移時間來確定所述若干虛擬機組中每組的遷移次序的部件。
示例55可包含示例53的元件,其中用于確定多個虛擬機中每個的頁面變臟速率的部件可包含用于基于虛擬機中的每個相應(yīng)虛擬機在定義的時間間隔上的歷史頁面變臟來確定每一個虛擬機的頁面變臟速率的部件。
示例56可包含示例52的元件,其中用于有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組的部件可包含用于有選擇地將所述多個虛擬機中的每個分組成若干虛擬機對之一的部件,相應(yīng)虛擬機對中的每個虛擬機訪問至少一個同等存儲頁面內(nèi)容部分。
示例57可包含示例52至56中任一示例的元件,其中用于有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組的部件可包含用于由虛擬機遷移控制器有選擇地分組多個虛擬機中的至少一些以形成若干虛擬機組的部件,虛擬機組中的每組都包含先前訪問至少一個公共存儲頁面的虛擬機。
示例58可包含示例52至56中任一示例的元件,其中用于有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組的部件可包含用于由虛擬機遷移控制器有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組的部件,虛擬機組中的每組都包含先前訪問多個存儲頁面中至少一個的虛擬機,多個存儲頁面中的每個至少部分包含所述同等存儲頁面內(nèi)容部分。
示例59可包含示例58的元件,其中用于有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組的部件可包含用于至少部分基于包含在所述多個存儲頁面中每個頁面的至少一部分中的內(nèi)容來確定散列值的部件;用于檢測具有類似散列值的所述多個存儲頁面內(nèi)的所述至少兩個存儲頁面的部件;以及用于對于檢測的具有類似散列值的多個存儲頁面內(nèi)的至少兩個存儲頁面標識包含在至少兩個頁面中每個頁面上的同等內(nèi)容的部件。
示例60可包含示例52至56中任一示例的元件,其中用于有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組的部件可包含由所述虛擬機遷移控制器有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組,所述虛擬機組中的每組都包含先前訪問多個存儲頁面中至少一個的虛擬機,所述多個存儲頁面中的每個都具有同等存儲頁面內(nèi)容。
示例61可包含示例60的元件,其中有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組可包含用于至少部分基于包含在所述多個存儲頁面中每個頁面的至少一部分中的內(nèi)容來確定散列值的部件;用于檢測具有類似散列值的所述多個存儲頁面內(nèi)的所述至少兩個存儲頁面的部件;以及用于對于檢測的具有類似散列值的多個存儲頁面內(nèi)的至少兩個存儲頁面標識包含在至少兩個頁面中每個頁面上的同等內(nèi)容的部件。
根據(jù)示例62,提供了一種存儲裝置,其包含機器可讀指令,所述指令當由電路執(zhí)行時使電路提供虛擬機遷移控制器。虛擬機控制器可確定多個虛擬機中每個的頁面變臟速率,有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組,所述虛擬機組中的每組都包含先前訪問至少一個同等存儲頁面內(nèi)容部分的虛擬機,以及至少部分基于至少一個同等存儲頁面內(nèi)容部分、包含在相應(yīng)組中的每一個虛擬機的頁面變臟速率以及可用的網(wǎng)絡(luò)帶寬來確定若干虛擬機組中每組的計劃遷移時間。
示例63可包含示例62的元件,并且此外可包含當由虛擬機遷移控制器執(zhí)行時可使虛擬機遷移控制器確定若干虛擬機組中每組的遷移次序的機器可讀指令。
示例64可包含示例63的元件,其中使虛擬機遷移控制器確定若干虛擬機組中每組的遷移次序的機器可讀指令可進一步使虛擬機遷移控制器:至少部分基于所述若干虛擬機組中每個相應(yīng)組的所述計劃遷移時間來確定所述若干虛擬機組中每組的遷移次序。
示例65可包含示例63的元件,其中使虛擬機遷移控制器確定多個虛擬機中每個的頁面變臟速率的機器可讀指令可進一步使虛擬機遷移控制器:基于所述虛擬機中的每個相應(yīng)虛擬機在定義的時間間隔上的歷史頁面變臟來確定每一個所述虛擬機的頁面變臟速率。
示例66可包含示例62的元件,其中使虛擬機遷移控制器有選擇地分組多個虛擬機中的至少一些以形成若干虛擬機組的機器可讀指令可進一步使虛擬機遷移控制器:有選擇地將所述多個虛擬機中的每個分組成若干虛擬機對之一,相應(yīng)虛擬機對中的每個虛擬機訪問至少一個同等存儲頁面內(nèi)容部分。
示例67可包含示例62至66中任一示例的元件,其中使虛擬機遷移控制器有選擇地分組多個虛擬機中的至少一些以形成若干虛擬機組的機器可讀指令可進一步使虛擬機遷移控制器:有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組,所述虛擬機組中的每組都包含先前訪問至少一個公共存儲頁面的虛擬機。
示例68可包含示例62至68中任一示例的元件,其中使虛擬機遷移控制器有選擇地分組多個虛擬機中的至少一些以形成若干虛擬機組的機器可讀指令可進一步使虛擬機遷移控制器:有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組,所述虛擬機組中的每組都包含先前訪問多個存儲頁面中至少一個的虛擬機,所述多個存儲頁面中的每個至少部分包含所述同等存儲頁面內(nèi)容部分。
示例69可包含示例68的元件,其中使虛擬機遷移控制器有選擇地分組多個虛擬機中的至少一些以形成若干虛擬機組的機器可讀指令可進一步使虛擬機遷移控制器:至少部分基于包含在多個存儲頁面中每個頁面的至少一部分中的內(nèi)容來確定散列值,檢測具有類似散列值的所述多個存儲頁面內(nèi)的所述至少兩個存儲頁面,以及
對于所述檢測的具有類似散列值的所述多個存儲頁面內(nèi)的至少兩個存儲頁面,標識包含在所述至少兩個頁面中每個頁面上的所述同等內(nèi)容。
示例70可包含示例62至66中任一示例的元件,其中使虛擬機遷移控制器有選擇地分組多個虛擬機中的至少一些以形成若干虛擬機組的機器可讀指令可進一步使虛擬機遷移控制器:有選擇地分組所述多個虛擬機中的至少一些以形成若干虛擬機組,所述虛擬機組中的每組都包含先前訪問多個存儲頁面中至少一個的虛擬機,所述多個存儲頁面中的每個都具有同等存儲頁面內(nèi)容。
示例71可包含示例70的元件,其中使虛擬機遷移控制器有選擇地分組多個虛擬機中的至少一些以形成若干虛擬機組的機器可讀指令可進一步使虛擬機遷移控制器:至少部分基于包含在多個存儲頁面中每個頁面的至少一部分中的內(nèi)容來確定散列值,檢測具有類似散列值的所述多個存儲頁面內(nèi)的所述至少兩個存儲頁面,以及
對于所述檢測的具有類似散列值的所述多個存儲頁面內(nèi)的至少兩個存儲頁面,標識包含在所述至少兩個頁面中每個頁面上的所述同等內(nèi)容。
根據(jù)示例72,提供了一種用于將多個虛擬機從第一主機系統(tǒng)遷移到第二主機系統(tǒng)的系統(tǒng),所述系統(tǒng)布置成執(zhí)行示例32至41中任一示例的方法。
根據(jù)示例73,提供了一種芯片集,其布置成執(zhí)行如示例32至41中任一示例的方法。
根據(jù)示例74,提供了至少一個機器可讀介質(zhì),包括多個指令,所述指令響應(yīng)于在計算裝置上的執(zhí)行而使所述計算裝置執(zhí)行示例32至41中任一示例的方法。
根據(jù)示例75,提供了一種配置用于將多個虛擬機從第一主機系統(tǒng)遷移到第二主機系統(tǒng)的裝置,所述裝置布置成執(zhí)行示例32至41中任一示例的方法。
本文已經(jīng)采用的術(shù)語和表述被用作描述而非限制的說法,并且在使用此類術(shù)語和表述時沒打算排除所示出和描述的特征的任何等同物(或其部分),并且要認識到,各種修改在權(quán)利要求書的范圍內(nèi)是可能的。因而,權(quán)利要求書打算覆蓋所有此類等同物。