一種虛擬機磁盤數據遷移方法及系統的制作方法
【技術領域】
[0001]本發明涉及數據迀移技術領域,特別涉及一種虛擬機磁盤數據迀移方法及系統。
【背景技術】
[0002]目前,對虛擬機磁盤數據進行迀移的過程通常是,先在第一輪迀移過程中,將待迀移磁盤中所有的數據全部拷貝至目標磁盤,并且在上述第一輪迀移過程中如果接收到虛擬機發起的磁盤寫請求,則利用與該磁盤寫請求對應的數據對上述待迀移磁盤相應的數據塊進行更新;在接下來的第二輪迀移過程中,繼續將當前待迀移磁盤中包括更新數據的所有數據拷貝至上述目標磁盤,從而實現對虛擬機磁盤數據的實時同步迀移。然而,在上述第二輪迀移過程中,不僅把更新的數據迀移至目標磁盤,還需要把待迀移磁盤中沒有經過更新的數據再次迀移至目標磁盤,這樣導致了數據迀移量非常多,既消耗了大量的系統資源,還使得數據迀移過程的時間較長。
[0003]綜上所述可以看出,如何在對虛擬機磁盤數據進行迀移的過程中,降低數據迀移量,以減少系統資源的消耗和縮短迀移時間是目前亟待解決的問題。
【發明內容】
[0004]有鑒于此,本發明的目的在于提供一種虛擬機磁盤數據迀移方法及系統,實現了在對虛擬機磁盤數據進行迀移的過程中,降低數據迀移量的目的,從而減少了系統資源的消耗以及縮短了迀移時間。其具體方案如下:
[0005]—種虛擬機磁盤數據迀移方法,包括:
[0006]確定源服務器上的虛擬機資源以及目標服務器上的目標資源;其中,所述虛擬機資源至少包括所述源服務器上的待迀移磁盤,所述目標資源至少包括所述目標服務器上的待接收磁盤;
[0007]在所述源服務器上創建備用磁盤,其中,所述備用磁盤的磁盤地址表與所述待迀移磁盤的磁盤地址表互為映射關系;
[0008]觸發主迀移過程,以將所述待迀移磁盤上所有的虛擬機磁盤數據全部迀移至所述待接收磁盤,并且,在所述主迀移過程中,將虛擬機對所述待迀移磁盤的磁盤寫請求重定向至所述備用磁盤;
[0009]觸發從迀移過程,以將在所述主迀移過程中所述備用磁盤上的更新數據迀移至所述待接收磁盤。
[0010]優選的,所述虛擬機資源還包括虛擬機內存資源、CPU資源、I/O資源和網絡資源;并且,所述目標資源包含的資源與所述虛擬機資源保持一致。
[0011 ] 優選的,所述方法還包括,當所述主迀移過程結束后,將所述虛擬機掛起。
[0012]優選的,所述方法還包括,觸發對所述待迀移磁盤的循環迀移過程,所述循環迀移過程包括N輪數據迀移過程,每一輪數據迀移過程均包括一次主迀移過程和一次從迀移過程,其中,N為正整數。
[0013]優選的,所述循環迀移過程的循環終止條件為N等于預設值。
[0014]優選的,將所述備用磁盤上的更新數據迀移至所述待接收磁盤的過程,包括:
[0015]對所述備用磁盤上的更新數據進行壓縮,并將壓縮后的數據迀移至所述待接收磁盤。
[0016]優選的,所述對所述備用磁盤上的更新數據進行壓縮的過程,包括:
[0017]利用WKdm算法,對所述備用磁盤上的更新數據進行壓縮。
[0018]本發明還公開了一種虛擬機磁盤數據迀移系統,包括:
[0019]資源確定模塊,用于確定源服務器上的虛擬機資源以及目標服務器上的目標資源;其中,所述虛擬機資源至少包括所述源服務器上的待迀移磁盤,所述目標資源至少包括所述目標服務器上的待接收磁盤;
[0020]磁盤創建模塊,用于在所述源服務器上創建備用磁盤,其中,所述備用磁盤的磁盤地址表與所述待迀移磁盤的磁盤地址表互為映射關系;
[0021]主觸發模塊,用于觸發主迀移過程,以將所述待迀移磁盤上所有的虛擬機磁盤數據全部迀移至所述待接收磁盤,并且,在所述主迀移過程中,將虛擬機對所述待迀移磁盤的磁盤寫請求重定向至所述備用磁盤;
[0022]從觸發模塊,用于觸發從迀移過程,以將在所述主迀移過程中所述備用磁盤上的更新數據迀移至所述待接收磁盤。
[0023]優選的,所述從觸發模塊包括:
[0024]從觸發單元,用于觸發從迀移過程;
[0025]數據壓縮單元,用于當所述從觸發單元觸發從迀移過程后,對所述備用磁盤上的更新數據進行壓縮;
[0026]數據迀移單元,用于對所述數據壓縮單元得到的壓縮數據迀移至所述待接收磁盤。
[0027]優選的,所述數據壓縮單元,具體用于利用WKdm算法,對所述備用磁盤上的更新數據進行壓縮。
[0028]本發明中,虛擬機磁盤數據迀移方法包括:確定源服務器上的虛擬機資源以及目標服務器上的目標資源;其中,虛擬機資源至少包括源服務器上的待迀移磁盤,目標資源至少包括目標服務器上的待接收磁盤;在源服務器上創建備用磁盤,其中,備用磁盤的磁盤地址表與待迀移磁盤的磁盤地址表互為映射關系;觸發主迀移過程,以將待迀移磁盤上所有的虛擬機磁盤數據全部迀移至待接收磁盤,并且,在主迀移過程中,將虛擬機對待迀移磁盤的磁盤寫請求重定向至備用磁盤;觸發從迀移過程,以將在主迀移過程中備用磁盤上的更新數據迀移至待接收磁盤。可見,本發明通過將虛擬機在主迀移過程中對待迀移磁盤的磁盤寫請求重定向至備用磁盤,從而實現了利用備用磁盤來存儲更新數據,這樣在從迀移過程中,只需要將備用磁盤中的更新數據迀移至待接收磁盤便可,而無需對沒有更新過的數據進行迀移,由此實現了在對虛擬機磁盤數據進行迀移的過程中,降低數據迀移量的目的,從而減少了系統資源的消耗以及縮短了迀移時間。
【附圖說明】
[0029]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
[0030]圖1為本發明實施例公開的一種虛擬機磁盤數據迀移方法流程圖;
[0031]圖2為本發明實施例公開的一種虛擬機磁盤數據迀移系統應用結構示意圖;
[0032]圖3為本發明實施例公開的一種具體的虛擬機磁盤數據迀移系統應用結構示意圖。
【具體實施方式】
[0033]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0034]本發明實施例公開了一種虛擬機磁盤數據迀移方法,參見圖1所示,該方法包括:
[0035]步驟Sll:確定源服務器上的虛擬機資源以及目標服務器上的目標資源;其中,虛擬機資源至少包括源服務器上的待迀移磁盤,目標資源至少包括目標服務器上的待接收磁盤;
[0036]步驟S12:在源服務器上創建備用磁盤,其中,備用磁盤的磁盤地址表與待迀移磁盤的磁盤地址表互為映射關系;
[0037]步驟S13:觸發主迀移過程,以將待迀移磁盤上所有的虛擬機磁盤數據全部迀移至待接收磁盤,并且,在主迀移過程中,將虛擬機對待迀移磁盤的磁盤寫請求重定向至備用磁盤;
[0038]步驟S14:觸發從迀移過程,以將在主迀移過程中備用磁盤上的更新數據迀移至待接收磁盤。
[0039]需要說明的是,上述虛擬機資源還包括虛擬機內存資源、CPU資源、I/O資源和網絡資源;并且,上述目標資源包含的資源與虛擬機資源保持一致,也即,上述目標資源包含與上述虛擬機資源相一致的資源。
[0040]本發明實施例中,虛擬機磁盤數據迀移方法包括:確定源服務器上的虛擬機資源以及目標服務器上的目標資源;其中,虛擬機資源至少包括源服務器上的待迀移磁盤,目標資源至少包括目標服務器上的待接收磁盤;在源服務器上創建備用磁盤,其中,備用磁盤的磁盤地址表與待迀移磁盤的磁盤地址表互為映射關系;觸發主迀移過程,以將待迀移磁盤上所有的虛擬機磁盤數據全部迀移至待接收磁盤,并且,在主迀移過程中,將虛擬機對待迀移磁盤的磁盤寫請求重定向至備用磁盤;觸發從迀移過程,以將在主迀移過程中備用磁盤上的更新數據迀移至待接收磁盤。
[0041]可見,本發明實施例通過將虛擬機在主迀移過程中對待迀移磁盤的磁盤寫請求重定向至備用磁盤,從而實現了利用備用磁盤來存儲更新數據,這樣在從迀移過程中,只需要將備用磁盤中的更新數據迀移至待接收磁盤便可,而無