虛擬機遷移記錄管理方法及系統的制作方法
【技術領域】
[0001 ]本發明涉及虛擬機管理技術,更為具體地,涉及虛擬機迀移記錄管理技術。
【背景技術】
[0002]在云計算背景下,尤其是私有云,云運維人員希望能夠對租戶系統或是應用所在的虛擬機的進行強監控,但發生物理機故障會產生人為或是自動的虛擬機迀移,在多次迀移后,虛擬機的分布會變得雜亂無章。
[0003]每次虛擬機發生迀移操作時,都會記錄log,運維人員可通過log來追溯虛擬機迀移的歷史,但這種方式需大量人力和時間,且容易發生疏漏。
[0004]還有一種方式是在傳統關系數據庫中記錄虛擬機迀移過程。這種方式中,傳統的關系數據庫信息冗余度大,不直觀,對于復雜的查詢需求實現困難。
【發明內容】
[0005]有鑒于此,本發明提供虛擬機迀移記錄管理方法,其包括:a)要迀移的虛擬機發送迀移請求給管理機;b)管理機解析該虛擬請求,以獲得虛擬機迀移相關的信息;c)管理機依據所解析的該虛擬機迀移相關的信息,檢查第二數據庫中是否有與該虛擬機迀移相關的信息所涉及的虛擬機與物理機的信息;d)在步驟c的檢查結果為缺少部分或全部信息的情況下,管理機自第一數據庫獲取所缺信息,并將所獲取的信息寫入第二數據庫;以及e)如果步驟c中檢查結果為不缺少或在步驟d中管理機將所獲取的信息寫入第二數據庫后,在第二數據庫中生成要迀移的虛擬機的迀移記錄。
[0006]根據本發明示例的虛擬機迀移記錄管理方法,其中,所述虛擬機迀移相關的信息至少包括該要迀移的虛擬機的虛擬機ID、原物理機ID、目的物理機ID以及當前的系統時間。
[0007]根據本發明示例的虛擬機迀移記錄管理方法,其中,所述第一數據庫是虛擬機創建時寫入數據的數據庫。
[0008]根據本發明示例的虛擬機迀移記錄管理方法,其中,所述第一數據庫是NOVA數據庫。
[0009]根據本發明示例的虛擬機迀移記錄管理方法,其中,所述第二數據庫是圖形數據庫Neo4j ο
[0010]本發明還提供虛擬機迀移記錄管理系統,該系統包括:設置在各虛擬機出的請求發送單元,其用于在虛擬機要迀移時發送迀移請求;設置在管理機的接收處理單元,其用于接收迀移請求并解析該請求以獲得虛擬機迀移相關的信息;設置在管理機的信息檢查單元,其用于依據所解析的該虛擬機迀移相關的信息,檢查第二數據庫中是否有與該虛擬機迀移相關的信息所涉及的虛擬機與物理機的信息;設置在管理機的信息獲取單元,其用于在信息檢查單元的檢查結果為缺少部分或全部信息的情況下,管理機自第一數據庫獲取所缺信息,并將所獲取的信息寫入第二數據庫;設置在管理機的迀移記錄生成單元,其用于在信息檢查單元檢查結果為不缺少或信息獲取單元將所獲取的信息寫入第二數據庫后,生在第二數據庫中生成要迀移的虛擬機的迀移記錄。
[0011]根據本發明示例的虛擬機迀移記錄管理系統,其中,所述第一數據庫是虛擬機創建時寫入數據的數據庫。
[0012]根據本發明示例的虛擬機迀移記錄管理系統,其中,所述第一數據庫是NOVA數據庫。
[0013]根據本發明示例的虛擬機迀移記錄管理系統,其中,所述第二數據庫是圖形數據庫Neo4j ο
[0014]采用本發明示例的虛擬機迀移記錄管理系統或執行根據本發明示例的虛擬機迀移記錄管理方法,可自動記錄虛擬機迀移歷史。
【附圖說明】
[0015]圖1是根據本發明一個實施例的虛擬機迀移記錄管理方法的流程圖。
[0016]圖2示意了該虛擬機迀移記錄管理系統的機構示意圖。
[0017]圖3是根據本發明示例的虛擬機迀移狀態拓撲圖。
【具體實施方式】
[0018]現在參照附圖描述本發明的示意性示例。相同的附圖標號表示相同的元件。下文描述的各實施例有助于本領域技術人員透徹理解本發明,且意在示例而非限制。除非另有限定,文中使用的術語(包括科學、技術和行業術語)具有與本發明所屬領域的技術人員普遍理解的含義相同的含義。此外,流程圖中各步驟的先后順序也不以圖示的順序為限。
[0019]在結合附圖詳細描述本發明的示例之前,在此首先大體介紹一些背景。
[0020]虛擬機迀移一般分為兩種,一種是由運維人員操作的有計劃的迀移,另一種是無計劃的意外迀移。有計劃的迀移一般發生在物理機需要升級操作系統、升級環境以及計劃內檢查維修等情況下。這種有計劃的迀移可進一步細分為在虛擬機非運行狀態下的冷迀移,以及在虛擬機運行狀態下的熱迀移。無計劃的意外迀移一般發生在物理機意外宕機時,為了不影響業務,會將這臺虛擬機迀移到其他物理機并啟動。
[0021]Neo4j是一種完全兼容ACID的圖形數據庫。Neo4j將數據以一種針對圖形網絡進行過優化的格式保存在磁盤上。Neo4j具有傳統數據庫的所有特性,例如恢復、兩階段提交以及符合XA等,它的內核是一個速度極快的圖形引擎。Neo4j可支持通過元模型構造圖形結構以及一種SparQL兼容的RDF TripleStore實現或一組公共圖形算法的實現。
[0022]圖1是根據本發明一個實施例的虛擬機迀移記錄管理方法的流程圖。該迀移記錄管理方法應用的環境包括多個虛擬機、管理機、第一數據庫與第二數據庫。多個虛擬機與管理機通信連接。管理機可以是服務器、或其它可執行數據處理的電子設備。
[0023]根據本發明的一些示例,第一數據庫指的是虛擬機創建時,寫入相關數據的數據庫。幾乎在所有的虛擬機管理系統中,都有該第一數據庫。虛擬機創建時寫入第一數據庫的數據一般包括虛擬機ID,與該虛擬機對應的物理機的物理機ID,以及該虛擬機的IP地址、磁盤鏡像文件所在位置等信息。在本文中,“ID”指的是標識,其可以是名稱也可是可識別擁有該ID的部件的標號、符號等。例如,虛擬機ID可以是為虛擬機設立的名稱,也可以是可識別該虛擬機的符號,只要可唯一標識該虛擬機即可。
[0024]根據本發明的一個具體示例,該第一數據庫為NOVA數據庫。
[0025]根據本發明的一些示例,第二數據庫在本申請中為圖形數據庫Neo4j。
[0026]回到圖1,在步驟10,要迀移的虛擬機發送迀移請求給管理機。要迀移的虛擬機可以是有計劃迀移的虛擬機也可以是意外迀移的虛擬機。在本文以下的各示例中,以虛擬機A作為要迀移的虛擬機且假定其為有計劃迀移的虛擬機;以虛擬機B作為因意外宕機而迀移的虛擬機。在發送的迀移請求中,包括如下四項數據:要迀移的虛擬機的ID、原物理機ID,目的物理機ID以及系統時間。其中,系統時間就是發起該迀移請求時的系統時間。
[0027]在步驟12,管理機解析該虛擬請求,以獲得虛擬機迀移相關的信息。解析該虛擬請求后,管理機可獲得一個四元組數據,其包括要迀移的虛擬機的ID、原物理機ID,目的物理機ID以及系統時間。
[0028]在步驟12之后,管理機依據所解析的該虛擬機迀移相關的信息,檢查第二數據庫中是否有與該虛擬機迀移相關的信息所涉及的虛擬機與物理機的信息。具體而言,在步驟12之后,進行到步驟14。
[0029]在步驟14,管理機依據解析獲得的虛擬機ID檢查該第二數據庫中是否存在該虛擬機的相關信息。一般而言,如果該虛擬機從未進行過迀移,則第二數據庫中一般就不存在該虛擬機的相關記錄,也就是說該第二數據庫中沒有該虛擬機。
[0030]如果步驟14中的檢查結果是該第二數據庫中不存在該虛擬機,則進到步驟16。在步驟16,管理機向第二數據庫發出信息獲取請求,以自該第二數據庫中獲取該虛擬機的相關信息。
[0031]在步驟16之后,進到步驟18,管理機依據解析后獲得的原物理機ID檢查該第二數據庫中是否存在該物理機的相關信息。
[0032]如果步驟18的檢查結果是存在,則進到步驟20,通過數據庫驅動程序訪問第二數據庫,將所獲取的相關信息寫入到第二數據庫,并生成關于該要迀移的虛擬機的迀移記錄,其中,所獲取的相關信息可能僅是該物理機的相關信息,還可能僅是該虛擬機的相關信息,也可能既有該物理機的相關信息又有該虛擬機的相關信息。