在線遷移方法、裝置和系統的制作方法
【專利摘要】本發明實施例提供一種在線遷移方法、裝置和系統。該方法包括:在接收到遷移服務器發送的遷移命令時,創建第一內存塊區域,并將第一內存塊區域掛載到遷移目錄下,遷移命令包含遷移目錄;將遷移目錄的IO重定向至第一內存塊區域,第一內存塊區域用于存儲數據;將遷移目錄對應的本地硬盤數據遷移至遷移目的端;將第一內存塊區域中的數據復制至遷移目的端,并存儲在本地硬盤后釋放第一內存塊區域;結束在線遷移。本發明實施例通過文件系統的IO重定向功能,將遷移過程中產生的變化數據寫入到第一內存塊區域,實現文件系統級別快照,可支持LVM卷和非LVM卷,實現數據一致性,確保在線遷移后,遷移目的端中操作系統及其上的應用軟件的正常運行。
【專利說明】 在線遷移方法、裝置和系統
【技術領域】
[0001]本發明實施例涉及通信技術,尤其涉及一種在線遷移方法、裝置和系統。
【背景技術】
[0002]服務器虛擬化技術是當前的熱點,而虛擬機遷移技術,由于具有簡化系統維護管理,提高系統負載均衡,增強系統容錯和優化系統電源管理等優勢,則是虛擬化技術當中的執占。
[0003]其中,虛擬機遷移技術包括物理機到虛擬機的遷移(英文:Physical-to-Virtual,簡稱:P2V)和虛擬機到虛擬機的遷移(英文:Virtual-to_Virtual,簡稱:V2V)。在Linux操作系統中,對于邏輯卷管理(英文:Logical Volume Manager,簡稱:LVM)卷,P2V和V2V的在線遷移通過LVM提供的設備級別的快照功能保證LVM卷的數據一致性。但對于非LVM卷,其數據一致性則無法得到保證,進而導致遷移后的虛擬機無法啟動或業務無法正常運行。
【發明內容】
[0004]本發明實施例提供一種在線遷移方法、裝置和系統,以實現P2V和V2V的在線遷移對非LVM卷及LVM卷的數據一致性的保證,確保遷移后的遷移目的端正常啟動或業務正常運行。
[0005]第一方面,本發明實施例提供一種在線遷移方法,包括:
[0006]在接收到遷移服務器發送的遷移命令時,創建第一內存塊區域,并將所述第一內存塊區域掛載到遷移目錄下,所述遷移命令包含所述遷移目錄;
[0007]將所述遷移目錄的輸入輸出1重定向至所述第一內存塊區域,所述第一內存塊區域用于存儲所述在線遷移過程中產生的數據;
[0008]將所述遷移目錄對應的本地硬盤數據遷移至遷移目的端;
[0009]將所述第一內存塊區域中的數據復制至所述遷移目的端,并存儲在所述本地硬盤后釋放所述第一內存塊區域;
[0010]結束所述在線遷移。
[0011]結合第一方面,在第一方面的第一種可能的實現方式中,所述創建第一內存塊區域,包括:
[0012]根據第一預設空間大小,創建所述第一內存塊區域,所述第一預設空間根據業務數據變化量設定。
[0013]結合第一方面或第一方面的第一種可能的實現方式,在第一方面的第二種可能的實現方式中,所述將所述遷移目錄1重定向至所述第一內存塊區域,包括:
[0014]加載文件系統的驅動模塊,所述文件系統具有1重定向功能;
[0015]在所述遷移目錄下,建立所述文件系統,將所述遷移目錄1重定向至所述第一內存塊區域。
[0016]結合第一方面、第一方面的第一種至第二種可能的實現方式中任意一種,在第一方面的第三種可能的實現方式中,結束所述在線遷移之前,所述方法還包括:
[0017]周期性檢測所述第一內存塊區域中的數據占用的空間;
[0018]若確定所述第一內存塊區域中的數據占用的空間小于或等于第一預設閾值,則將所述第一內存塊區域中的數據存儲在所述本地硬盤后釋放所述第一內存塊區域;
[0019]若確定所述第一內存塊區域中的數據占用的空間大于所述第一預設閾值,則創建新的第一內存塊區域掛載至所述遷移目錄下,并將所述遷移目錄1重定向至所述新的第一內存塊區域;同時,將所述第一內存塊區域中的數據復制到所述遷移目的端,并存儲在所述本地硬盤后釋放所述第一內存塊區域;將所述新的第一內存塊區域作為所述第一內存塊區域,執行所述周期性檢測所述第一內存塊區域中的數據占用的空間,直至所述在線遷移結束。
[0020]結合第一方面、第一方面的第一種至第三種可能的實現方式中任意一種,在第一方面的第四種可能的實現方式中,結束所述在線遷移的條件還包括:
[0021]接收到所述遷移目的端反饋的所述遷移目錄對應的硬盤數據寫失敗信息,或接收到所述遷移目的端反饋的所述第一內存塊區域中的數據寫失敗信息。
[0022]結合第一方面、第一方面的第一種至第四種可能的實現方式中任意一種,在第一方面的第五種可能的實現方式中,所述在接收到遷移服務器發送的遷移命令之后,所述方法還包括:
[0023]在所述在線遷移過程中,接收所述遷移服務器發送的遷移任務執行狀態查詢,并反饋當時的遷移任務執行結果給所述遷移服務器,以使所述遷移服務器根據該當時的遷移任務執行結果判斷所述在線遷移是否結束。
[0024]結合第一方面、第一方面的第一種至第五種可能的實現方式中任意一種,在第一方面的第六種可能的實現方式中,結束所述在線遷移之前,所述方法還包括:
[0025]接收所述遷移服務器下發的同步命令,所述同步命令包含同步目錄;
[0026]創建第二內存塊區域,并將所述第二內存塊區域掛載到所述同步目錄下;
[0027]將所述同步目錄的1重定向至所述第二內存塊區域,所述第二內存塊區域用于存儲所述同步過程中產生的數據;
[0028]將所述同步目錄對應的本地硬盤數據遷移至所述遷移目的端;
[0029]將所述第二內存塊區域中的數據復制至所述遷移目的端,并存儲在所述本地硬盤后釋放所述第二內存塊區域;
[0030]接收所述遷移服務器發送的終止命令。
[0031]結合第一方面的第六種可能的實現方式,在第一方面的第七種可能的實現方式中,所述創建第二內存塊區域,包括:
[0032]根據第二預設空間大小,創建所述第二內存塊區域,所述第二預設空間根據業務數據變化量設定。
[0033]結合第一方面的第六種或第七種可能的實現方式,在第一方面的第八種可能的實現方式中,所述將所述同步目錄的1重定向至所述第二內存塊區域,包括:
[0034]加載文件系統的驅動模塊,所述文件系統具有1重定向功能;
[0035]在所述同步目錄下,建立所述文件系統,將所述同步目錄1重定向至所述第二內存塊區域。
[0036]結合第一方面的第六種至第八種可能的實現方式中任意一種,在第一方面的第九種可能的實現方式中,所述通過所述文件系統的所述1重定向功能,將所述同步目錄1重定向至所述第二內存塊區域之后,所述方法還包括:
[0037]周期性檢測所述第二內存塊區域中的數據占用的空間;
[0038]若確定所述第二內存塊區域中的數據占用的空間小于或等于第二預設閾值,則將所述第二內存塊區域中的數據復制到所述遷移目的端,并存儲在所述本地硬盤后釋放所述第二內存塊區域,并結束同步任務;
[0039]若確定所述第二內存塊區域中的數據占用的空間大于所述第二預設閾值,則創建新的第二內存塊區域掛載至所述同步目錄下,并將所述同步目錄1重定向至所述新的第二內存塊區域;同時,將所述第二內存塊區域中的數據復制到所述遷移目的端,并存儲在所述本地硬盤后釋放所述第二內存塊區域;將所述新的第二內存塊區域作為所述第二內存塊區域,執行所述周期性檢測所述第二內存塊區域中的數據占用的空間,直至結束所述同步任務。
[0040]結合第一方面的第六種至第九種可能的實現方式中任意一種,在第一方面的第十種可能的實現方式中,所述接收所述遷移服務器下發的同步命令之后,所述方法還包括:
[0041]在同步過程中,接收所述遷移服務器發送的同步任務執行狀態查詢,并反饋當時的同步任務執行結果給所述遷移服務器。
[0042]結合第一方面的第六種至第十種可能的實現方式中任意一種,在第一方面的第十一種可能的實現方式中,所述終止命令的下發條件為用戶手動終止、到達預設的終止時間、所述同步任務執行結果為所述同步目錄對應的硬盤數據寫失敗信息和所述同步任務執行結果為所述第二內存塊區域中的數據寫失敗信息中的任一項。
[0043]結合第一方面的第六種至第十一種可能的實現方式中任意一種,在第一方面的第十二種可能的實現方式中,所述遷移命令、所述同步命令和所述終止命令為通過事件驅動產生,通過套接字socket的方式下發,或,通過安全協議SSH命令的方式下發。
[0044]第二方面,本發明實施例提供一種在線遷移方法,包括:
[0045]到達啟動時間后,下發遷移命令給遷移源,所述遷移命令包含遷移目錄,所述啟動時間和遷移目錄均為預先設置的;
[0046]在遷移過程中,周期性查詢所述遷移源的同步任務執行狀態;
[0047]接收所述遷移源反饋的遷移任務執行結果;
[0048]若確定所述遷移任務執行結果為結束,則停止查詢,結束所述在線遷移。
[0049]結合第二方面,在第二方面的第一種可能的實現方式中,結束所述在線遷移之前,所述方法還包括:
[0050]到達預先設置的同步任務啟動時間,下發同步命令給所述遷移源,所述同步命令包含同步目錄;
[0051]滿足預設條件時,發送終止命令給所述遷移源,所述預設條件為用戶手動終止、到達預設的終止時間和由同步任務執行結果觸發中的任一項。
[0052]結合第二方面的第一種可能的實現方式,在第二方面的第二種可能的實現方式中,所述接收所述遷移服務器下發的同步命令之后,所述方法還包括:
[0053]在同步過程中,周期性查詢所述遷移源的同步任務執行狀態,并接收所述遷移源反饋的所述同步任務執行結果。
[0054]結合第二方面的第二種可能的實現方式,在第二方面的第三種可能的實現方式中,所述遷移命令、所述同步命令和所述終止命令為通過事件驅動產生,通過套接字socket的方式下發,或,通過安全協議SSH命令的方式下發。
[0055]第三方面,本發明實施例提供一種在線遷移裝置,包括:
[0056]接收模塊,用于接收到遷移服務器發送的遷移命令,所述遷移命令包含遷移目錄;
[0057]處理模塊,用于在所述接收模塊接收到所述遷移命令時,創建第一內存塊區域,并將所述第一內存塊區域掛載到所述遷移目錄下;將所述遷移目錄的輸入輸出1重定向至所述第一內存塊區域,所述第一內存塊區域用于存儲所述在線遷移過程中產生的數據;將所述遷移目錄對應的本地硬盤數據遷移至遷移目的端;將所述第一內存塊區域中的數據復制至所述遷移目的端,并存儲在所述本地硬盤后釋放所述第一內存塊區域;及,結束所述在線遷移。
[0058]結合第三方面,在第三方面的第一種可能的實現方式中,所述處理模塊用于所述創建第一內存塊區域,具體為:
[0059]根據第一預設空間大小,創建所述第一內存塊區域,所述第一預設空間根據業務數據變化量設定。
[0060]結合第三方面或第三方面的第一種可能的實現方式,在第三方面的第二種可能的實現方式中,所述處理模塊用于將所述遷移目錄1重定向至所述第一內存塊區域,具體為:
[0061]加載文件系統的驅動模塊,所述文件系統具有1重定向功能;
[0062]在所述遷移目錄下,建立所述文件系統,將所述遷移目錄1重定向至所述第一內存塊區域。
[0063]結合第三方面、第三方面的第一種至第二種可能的實現方式中任意一種,在第三方面的第三種可能的實現方式中,所述處理模塊還用于:
[0064]在結束所述在線遷移之前,周期性檢測所述第一內存塊區域中的數據占用的空間;
[0065]若確定所述第一內存塊區域中的數據占用的空間小于或等于第一預設閾值,則將所述第一內存塊區域中的數據存儲在所述本地硬盤后釋放所述第一內存塊區域;
[0066]若確定所述第一內存塊區域中的數據占用的空間大于所述第一預設閾值,則創建新的第一內存塊區域掛載至所述遷移目錄下,并將所述遷移目錄1重定向至所述新的第一內存塊區域;同時,將所述第一內存塊區域中的數據復制到所述遷移目的端,并存儲在所述本地硬盤后釋放所述第一內存塊區域;將所述新的第一內存塊區域作為所述第一內存塊區域,執行所述周期性檢測所述第一內存塊區域中的數據占用的空間,直至所述在線遷移結束。
[0067]結合第三方面、第三方面的第一種至第三種可能的實現方式中任意一種,在第三方面的第四種可能的實現方式中,所述接收模塊還用于接收所述遷移目的端反饋的所述遷移目錄對應的硬盤數據寫失敗信息,或接收所述遷移目的端反饋的所述第一內存塊區域中的數據寫失敗信息;
[0068]所述處理模塊結束所述在線遷移的條件還包括:
[0069]所述接收模塊接收到所述遷移目的端反饋的所述遷移目錄對應的硬盤數據寫失敗信息,或接收到所述遷移目的端反饋的所述第一內存塊區域中的數據寫失敗信息。
[0070]結合第三方面、第三方面的第一種至第四種可能的實現方式中任意一種,在第三方面的第五種可能的實現方式中,所述裝置還包括發送模塊,
[0071]所述接收模塊,還用于在接收到遷移服務器發送的遷移命令之后,在所述在線遷移過程中,接收所述遷移服務器發送的遷移任務執行狀態查詢;
[0072]所述發送模塊,用于反饋當時的遷移任務執行結果給所述遷移服務器,以使所述遷移服務器根據該當時的遷移任務執行結果判斷所述在線遷移是否結束。
[0073]結合第三方面、第三方面的第一種至第五種可能的實現方式中任意一種,在第三方面的第六種可能的實現方式中,所述接收模塊還用于在結束所述在線遷移之前,接收所述遷移服務器下發的同步命令,所述同步命令包含同步目錄;
[0074]所述處理模塊,還用于創建第二內存塊區域,并將所述第二內存塊區域掛載到所述同步目錄下;將所述同步目錄的1重定向至所述第二內存塊區域,所述第二內存塊區域用于存儲所述同步過程中產生的數據;將所述同步目錄對應的本地硬盤數據遷移至所述遷移目的端;將所述第二內存塊區域中的數據復制至所述遷移目的端,并存儲在所述本地硬盤后釋放所述第二內存塊區域;
[0075]所述接收模塊還用于接收所述遷移服務器發送的終止命令。
[0076]結合第三方面的第六種可能的實現方式,在第三方面的第七種可能的實現方式中,所述處理模塊用于所述創建第二內存塊區域,具體為:
[0077]根據第二預設空間大小,創建所述第二內存塊區域,所述第二預設空間根據業務數據變化量設定。
[0078]結合第三方面的第六種或第七種可能的實現方式,在第三方面的第八種可能的實現方式中,所述處理模塊用于所述將所述同步目錄的1重定向至所述第二內存塊區域,具體為:
[0079]加載文件系統的驅動模塊,所述文件系統具有1重定向功能;
[0080]在所述同步目錄下,建立所述文件系統,將所述同步目錄1重定向至所述第二內存塊區域。
[0081]結合第三方面的第六種至第八種可能的實現方式中任意一種,在第三方面的第九種可能的實現方式中,所述處理模塊還用于:
[0082]在所述通過所述文件系統的所述1重定向功能,將所述同步目錄1重定向至所述第二內存塊區域之后,周期性檢測所述第二內存塊區域中的數據占用的空間;
[0083]若確定所述第二內存塊區域中的數據占用的空間小于或等于第二預設閾值,則將所述第二內存塊區域中的數據復制到所述遷移目的端,并存儲在所述本地硬盤后釋放所述第二內存塊區域,并結束同步任務;
[0084]若確定所述第二內存塊區域中的數據占用的空間大于所述第二預設閾值,則創建新的第二內存塊區域掛載至所述同步目錄下,并將所述同步目錄1重定向至所述新的第二內存塊區域;同時,將所述第二內存塊區域中的數據復制到所述遷移目的端,并存儲在所述本地硬盤后釋放所述第二內存塊區域;將所述新的第二內存塊區域作為所述第二內存塊區域,執行所述周期性檢測所述第二內存塊區域中的數據占用的空間,直至結束所述同步任務。
[0085]結合第三方面的第六種至第九種可能的實現方式中任意一種,在第三方面的第十種可能的實現方式中,所述接收模塊還用于:
[0086]在所述接收所述遷移服務器下發的同步命令之后,在同步過程中,接收所述遷移服務器發送的同步任務執行狀態查詢;
[0087]所述發送模塊還用于反饋當時的同步任務執行結果給所述遷移服務器。
[0088]結合第三方面的第六種至第十種可能的實現方式中任意一種,在第三方面的第十一種可能的實現方式中,所述終止命令的下發條件為用戶手動終止、到達預設的終止時間、所述同步任務執行結果為所述同步目錄對應的硬盤數據寫失敗信息和所述同步任務執行結果為所述第二內存塊區域中的數據寫失敗信息中的任一項。
[0089]結合第三方面的第六種至第十一種可能的實現方式中任意一種,在第三方面的第十二種可能的實現方式中,所述遷移命令、所述同步命令和所述終止命令為通過事件驅動產生,通過套接字socket的方式下發,或,通過安全協議SSH命令的方式下發。
[0090]第四方面,本發明實施例提供一種在線遷移裝置,包括:
[0091]發送模塊,用于到達啟動時間后,下發遷移命令給遷移源,所述遷移命令包含遷移目錄,所述啟動時間和遷移目錄均為預先設置的;
[0092]處理模塊,用于在遷移過程中,周期性查詢所述遷移源的同步任務執行狀態;
[0093]接收模塊,用于接收所述遷移源反饋的遷移任務執行結果;
[0094]所述處理模塊還用于若確定所述遷移任務執行結果為結束,則停止查詢,結束所述在線遷移。
[0095]結合第四方面,在第四方面的第一種可能的實現方式中,所述發送模塊還用于:
[0096]結束所述在線遷移之前,到達預先設置的同步任務啟動時間,下發同步命令給所述遷移源,所述同步命令包含同步目錄;
[0097]滿足預設條件時,發送終止命令給所述遷移源,所述預設條件為用戶手動終止、到達預設的終止時間和由同步任務執行結果觸發中的任一項。
[0098]結合第四方面的第一種可能的實現方式,在第四方面的第二種可能的實現方式中,所述處理模塊還用于:
[0099]在同步過程中,周期性查詢所述遷移源的同步任務執行狀態;
[0100]所述接收模塊還用于接收所述遷移源反饋的所述同步任務執行結果。
[0101]結合第四方面的第二種可能的實現方式,在第四方面的第三種可能的實現方式中,所述遷移命令、所述同步命令和所述終止命令為通過事件驅動產生,通過套接字socket的方式下發,或,通過安全協議SSH命令的方式下發。
[0102]第五方面,本發明實施例提供一種在線遷移系統,包括:遷移目的端、如第三方面任一項所述的在線遷移裝置和第四方面任一項所述的在線遷移裝置。
[0103]本發明實施例通過文件系統的1重定向功能,將遷移過程中產生的變化數據寫入到第一內存塊區域,相對于現有技術中通過LVM提供的設備級別的快照功能,本發明實施例實現文件系統級別快照,可同時支持LVM卷和非LVM卷,從而能實現數據一致性的保證,確保在線遷移后,遷移目的端中操作系統及其上的應用軟件的正常運行。
【專利附圖】
【附圖說明】
[0104]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖做一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0105]圖1為本發明在線遷移方法實施例一的流程圖;
[0106]圖2為本發明在線遷移方法實施例二中組件對接方式示意圖;
[0107]圖3為本發明在線遷移方法實施例二中遷移過程的信令圖;
[0108]圖4為本發明在線遷移方法實施例三的流程圖;
[0109]圖5為本發明在線遷移方法實施例四中同步過程的信令圖;
[0110]圖6為本發明在線遷移方法實施例五中組件對接方式示意圖;
[0111]圖7為現有技術在線遷移過程示例圖;
[0112]圖8為本發明在線遷移過程示例圖;
[0113]圖9為本發明在線遷移裝置實施例一的結構示意圖;
[0114]圖10為本發明在線遷移裝置實施例二的結構示意圖;
[0115]圖11為本發明在線遷移裝置實施例三的結構示意圖;
[0116]圖12為本發明在線遷移裝置實施例四的結構示意圖;
[0117]圖13為本發明在線遷移裝置實施例五的結構示意圖;
[0118]圖14為本發明在線遷移裝置實施例六的結構示意圖。
【具體實施方式】
[0119]為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0120]通信領域中,狹義的云計算指信息技術(英文informat1n Technology,簡稱:IT)基礎設施的交付和使用模式,指通過網絡以按需、易擴展的方式獲得所需資源;廣義的云計算指服務的交付和使用模式,指通過網絡以按需、易擴展的方式獲得所需服務,這種服務可以是IT和軟件、互聯網相關,也可是其他服務。云計算的核心思想是將大量用網絡連接的計算資源統一管理和調度,構成一個計算資源池向用戶按需服務。
[0121]其中,提供資源的網絡被稱為“云”。“云”中的資源在使用者看來是可以無限擴展的,并且可以隨時獲取,按需使用,隨時擴展及按使用付費。
[0122]目前云計算使用虛擬化技術將固態的物理服務器,網絡設備,存儲設備變成虛擬計算資源,虛擬網絡資源,虛擬機存儲資源,將這些虛擬的資源靈活組合變成虛擬機,即虛擬資源計算機。
[0123]遷移技術為服務器虛擬化和虛擬機跨云平臺遷移提供了便捷的方法。目前主流虛擬化廠商如威睿(英文:VMware),思杰(英文:Citrix),微軟(英文:Microsoft),紅帽(英文:Redhat),華為等都提供了各自的遷移組件。
[0124]具體地,P2V指將物理服務器上的操作系統及其上的應用軟件和數據遷移到云平臺中的虛擬機上。在遷移方式上,P2V分為在線P2V和離線P2V。其中,在線P2V是指物理服務器在正常運行的情況下,將其操作系統及其上的應用軟件和數據遷移到目的虛擬機;離線P2V是指物理服務器在停機的情況下,將其操作系統及其上的應用軟件和數據遷移到目的虛擬機。
[0125]V2V是將源虛擬機上的操作系統及其上的應用軟件和數據遷移到目的虛擬機上,涉及到同構云平臺和異構云平臺。在遷移方式上,V2V分為在線V2V和離線V2V。在線V2V是指源虛擬機在正常運行的情況下,將其操作系統及其上的應用軟件和數據遷移到目的虛擬機;離線V2V是指將源虛擬機在停機的情況下,將其操作系統及其上的應用軟件和數據遷移到目的虛擬機。
[0126]需要說明的是,遷移的性能指標包括三個方面:整體遷移時間,從遷移源開始遷移到遷移結束的時間;停機時間,遷移過程中,業務中斷時間;對應用程序的性能影響,遷移對于遷移源上運行服務性能的的影響程度。
[0127]Linux操作系統中,例如ext2、ext3、ext4和reiserfs等文件系統本身不具備快照功能,遷移過程中因業務系統在運行,不斷有數據產生,導致遷移后遷移源和遷移目的端的數據不一致。
[0128]圖1為本發明在線遷移方法實施例一的流程圖。本發明實施例提供一種在線遷移方法,該方法可以由在線遷移裝置執行,該裝置可以獨立設置,也可以集成設置在例如虛擬機或物理服務器等設備中。如圖1所示,本實施例的方法包括:
[0129]S101、在接收到遷移命令時,創建第一內存塊區域,并將該第一內存塊區域掛載到遷移目錄下。
[0130]其中,遷移命令包含遷移目錄。這里,“第一”僅為區分不同的內存塊區域,該第一內存塊區域的大小可以是任意的,通常情況下,默認其大小為1024MB(英文:MByte)。
[0131 ] 將第一內存塊區域掛載至遷移目錄下,使其可以被訪問。
[0132]S102、將遷移目錄的1重定向至第一內存塊區域,第一內存塊區域用于存儲在線遷移過程中產生的數據。
[0133]操作系統中,有些文件系統具有輸入輸出(英文:Input/Output,簡稱:10)重定向功能,例如Linux操作系統中的Un1n mount文件系統。本發明實施例利用文件系統可以1重定向的功能,將遷移目錄的1重定向至第一內存塊區域,這樣,在遷移過程中產生的數據會存儲在該第一內存塊區域中。
[0134]S103、將遷移目錄對應的本地硬盤數據遷移至遷移目的端。
[0135]該步驟中,首先實現遷移目錄對應的本地硬盤數據的遷移。由于S102中將遷移目錄的1重定向至第一內存塊區域,因此,在遷移過程中,遷移目錄對應的本地硬盤數據是在線遷移啟動之前已保存的數據,是相對固定的,故通過網絡傳輸,將這部分數據遷移至遷移目的端相應目錄。
[0136]對在線遷移過程中產生的數據,通過S104實現在線遷移。
[0137]S104、將第一內存塊區域中的數據復制至遷移目的端,并存儲在本地硬盤后釋放第一內存塊區域。
[0138]將遷移過程中,第一內存塊區域中的數據寫入本地硬盤和遷移目的端。
[0139]S105、結束在線遷移。
[0140]本發明實施例通過文件系統的1重定向功能,將遷移過程中產生的變化數據寫入到第一內存塊區域,相對于現有技術中通過LVM提供的設備級別的快照功能,本發明實施例實現文件系統級別快照,可同時支持LVM卷和非LVM卷,從而能實現數據一致性的保證,確保在線遷移后,遷移目的端中操作系統及其上的應用軟件的正常運行。
[0141]另外,現有技術中提供的設備級別的快照功能需要卷組(英文:Volume Group,簡稱:VG)有空間剩余;本發明通過將變化數據寫入第一內存塊區域,從而無需卷組有空間剩余即可實現快照功能;將遷移目錄1重定向到第一內存塊區域,可提高讀寫效率,減少遷移源及遷移目的端磁盤的寫數據時間。
[0142]在上述實施例中,創建第一內存塊區域可以包括:根據第一預設空間大小,創建第一內存塊區域。其中,第一預設空間大小可以根據實際需求進行設置,在此不做限定,例如,第一預設空間可以根據業務數據變化量設定。
[0143]進一步地,S102可以包括:加載文件系統的驅動模塊,該文件系統具有1重定向功能;在遷移目錄下,建立文件系統,將遷移目錄1重定向至第一內存塊區域。另外,在結束在線遷移之前,該方法還可以包括:卸載上述文件系統。
[0144]可選地,S105之前,在線遷移方法還可以包括:周期性檢測第一內存塊區域中的數據占用的空間;若確定第一內存塊區域中的數據占用的空間小于或等于第一預設閾值,則將第一內存塊區域中的數據存儲在本地硬盤后釋放第一內存塊區域;若確定第一內存塊區域中的數據占用的空間大于第一預設閾值,則創建新的第一內存塊區域掛載至遷移目錄下,并將遷移目錄1重定向至該新的第一內存塊區域;同時,將第一內存塊區域中的數據復制到遷移目的端,并存儲在本地硬盤后釋放該第一內存塊區域;將新的第一內存塊區域作為第一內存塊區域,執行所述周期性檢測第一內存塊區域中的數據占用的空間,直至在線遷移結束。
[0145]其中,第一預設閾值小于或等于第一內存塊區域占用的空間。第一預設閾值的設置依據例如為本次業務遷移允許的數據差異量,默認為第一內存塊區域占用空間的2/3,現網中可以根據業務數據變化情況靈活調整,等等。
[0146]由于第一內存塊區域的大小是固定的,因此,其數據存儲能力也是固定的。該實施例通過周期性檢測獲得第一內存塊區域中的數據占用的空間,以根據第一內存塊區域已存儲的數據大小,確定后續操作。
[0147]當第一內存塊區域中的數據占用的空間小于或等于第一預設閾值時,說明遷移過程中產生的數據的大小在本次業務遷移允許的數據差異量內,并且不會影響遷移后遷移目的端中操作系統及其上的應用軟件的正常運行。這時,只將該部分數據寫入本地硬盤后釋放即可,無需再復制到遷移目的端。
[0148]當第一內存塊區域中的數據占用的空間大于第一預設閾值時,說明遷移過程中產生的數據的大小超過本次業務遷移允許的數據差異量。這時,創建新的第一內存塊區域掛載至遷移目錄下,并將遷移目錄1重定向至該新的第一內存塊區域。同時,將第一內存塊區域中的數據復制到遷移目的端,并儲在本地硬盤后釋放該第一內存塊區域;將新的第一內存塊區域作為第一內存塊區域,執行所述周期性檢測。
[0149]本發明實施例通過文件系統的1重定向功能,將遷移過程中產生的變化數據寫入到第一內存塊區域,從而無需卷組有空間剩余即可實現快照功能;相對于現有技術中通過LVM提供的設備級別的快照功能,本發明實施例實現文件系統級別快照,可同時支持LVM卷和非LVM卷;通過第一內存塊區域中的數據占用的空間與第一預設閾值的對比,執行不同的寫處理,保證新產生的變化數據在本次業務遷移允許的數據差異量內,并且不會影響遷移目的端中操作系統及其上的應用軟件的正常運行,從而能實現數據一致性,還可提高讀寫效率,減少遷移源及遷移目的端磁盤的寫數據時間;另外,采用多級第一內存塊區域管理,防止數據溢出。
[0150]下面采用幾個具體的實施例,對圖1所示方法實施例的技術方案進行詳細說明。
[0151]一種可選的實施例中,通過遷移服務器、遷移源代理、Un1n mount與遷移目的服務器之間交互實施本發明實施例提供的在線遷移方法。
[0152]圖2為本發明在線遷移方法實施例二中組件對接方式示意圖。如圖2所示,遷移服務器與遷移源代理,及遷移源代理與遷移目的服務器,通過事件(英文=Event)驅動產生信令交互。可選地,通過R3(英文:Request, Response, Result)機制保證信令交互可靠及時。另外,遷移服務器與數據庫全程消息交互,數據庫用于保存遷移服務器中的預設數據;遷移源代理通過命令行接口與文件系統交互,該實施例中以Un1n mount為例說明。例如,遷移服務器通過套接字(英文socket)或安全協議(英文=Secure Shell,簡稱:SSH)命令的方式下發遷移命令給遷移源代理。
[0153]具體地,遷移服務器下發遷移命令給遷移源代理。遷移源代理加載Un1n mount的驅動模塊,按照第一預設空間大小創建第一內存塊區域,并掛載在遷移目錄下,遷移源代理調用Un1n mount接口在遷移目錄中建立聯合目錄,將10重定向到第一內存塊區域,此時遷移目錄對應的本地硬盤數據只讀,變化數據寫入第一內存塊區域。遷移源代理將遷移目錄對應的本地硬盤數據遷移到遷移目的服務器。
[0154]遷移源代理循環檢測第一內存塊區域對應的數據占用的空間是否超過第一預設閥值,如果超過第一預設閥值,將該第一內存塊區域中的數據凍結,分配新的第一內存塊區域,將10重定向到該新的第一內存塊區域,供變化數據寫入,同時,向遷移源代理和遷移目的服務器對應磁盤各寫入一份內存凍結數據,寫入完成后,釋放該第一內存塊區域;如果沒有超過第一預設閥值,將第一內存塊區域中的數據寫入遷移源代理的本地硬盤,并卸載聯合目錄,結束本次在線遷移。
[0155]圖3為本發明在線遷移方法實施例二中遷移過程的信令圖。如圖3所示,該實施例中的方法可以包括:
[0156]S301、遷移服務器與數據庫全程消息交互。
[0157]S302、遷移服務器接收用戶輸入參數的操作。
[0158]S303、遷移服務器將上述參數保存到數據庫中。
[0159]其中,用戶輸入的參數可以包括:遷移目錄和遷移啟動時間。
[0160]可選地,上述參數全部或部分已存儲在數據庫中,因此,S302和S303為可選步驟。
[0161]S304、遷移服務器生成遷移命令。
[0162]具體地,遷移服務器根據上述參數生成遷移命令,遷移命令至少包含遷移目錄,以通知遷移源代理對哪些數據進行遷移。
[0163]S305、遷移服務器下發遷移命令給遷移源代理。
[0164]例如,遷移服務器通過套接字(英文socket)的方式下發遷移命令給遷移源代理。
[0165]S306、遷移源代理在接收到遷移命令后,加載Un1n mount的驅動模塊。
[0166]S307、遷移源代理創建第一內存塊區域,并將第一內存塊區域掛載至遷移目錄。
[0167]S308、遷移源代理在遷移目錄中建立Un1n mount。
[0168]S309、遷移源代理將遷移目錄的1重定向至第一內存塊區域。
[0169]S310、遷移源代理將遷移目錄對應的本地硬盤數據遷移至遷移目的服務器。
[0170]S311、遷移目的服務器反饋遷移目錄對應的硬盤數據寫入執行結果給遷移源代理。
[0171]若遷移目的服務器反饋的遷移目錄對應的硬盤數據寫入執行結果為寫成功信息,則執行S312 ;若遷移目的服務器反饋的遷移目錄對應的硬盤數據寫入執行結果為寫失敗信息,則執行S325。
[0172]S312、遷移源代理周期性查詢第一內存塊區域中的數據占用的空間是否超過第一預設閾值。
[0173]若第一內存塊區域中的數據占用的空間大于第一預設閾值,則執行S313 ;若第一內存塊區域中的數據占用的空間小于或等于第一預設閾值,則執行S319。
[0174]S313、遷移源代理創建新的第一內存塊區域掛載至遷移目錄下。
[0175]S314、將遷移目錄的1重定向至該新的第一內存塊區域。
[0176]S315、遷移源代理將上述第一內存塊區域中的數據存儲在本地硬盤。
[0177]S316、遷移源代理上述第一內存塊區域中的數據復制至遷移目的服務器。
[0178]S317、遷移目的服務器反饋第一內存塊區域中的數據寫入執行結果給遷移源代理。
[0179]若遷移目的服務器反饋的第一內存塊區域中的數據寫入執行結果為第一內存塊區域中的數據寫成功信息,則執行S318;若遷移目的服務器反饋的第一內存塊區域中的數據寫入執行結果為第一內存塊區域中的數據寫失敗信息,則執行S325。
[0180]S318、遷移源代理釋放上述第一內存塊區域。
[0181]將該新的第一內存塊區域作為上述第一內存塊區域,重復執行S312直至在線遷移結束。
[0182]S319、遷移源代理將第一內存塊區域中的數據存儲在本地硬盤后釋放。
[0183]S320、遷移源代理卸載 Un1n mount。
[0184]具體地,遷移源代理調用Un1n mount接口卸載文件系統。
[0185]S321、遷移源代理將該次在線遷移置為結束標志。
[0186]可選地,遷移源代理中設置狀態標志位,該狀態標志位用于指示運行態和結束態,當遷移服務器查詢遷移任務執行狀態時,遷移源代理將該狀態標志位傳遞給遷移服務器,以使遷移服務器獲知當前遷移任務的運行狀態。
[0187]S322、遷移源代理接收遷移服務器發送的遷移任務執行狀態查詢。
[0188]具體地,遷移服務器周期性發送遷移任務執行狀態查詢給遷移源代理。
[0189]S323、遷移源代理反饋當時的遷移任務執行結果給遷移服務器。
[0190]在線遷移過程中,遷移源代理接收遷移服務器發送的遷移任務執行狀態查詢,并反饋當時的遷移任務執行結果給遷移服務器。
[0191]S324、遷移服務器根據該當時的遷移任務執行結果判斷在線遷移是否結束。
[0192]例如,當遷移服務器檢測到遷移源代理結束標志后,執行S325,結束本次在線遷移。否則,重復執行S321。
[0193]補充說明的是,S321的執行不限于S320之后,在整個在線遷移過程中,遷移源代理在接收到遷移命令之后至在線遷移結束的任意時刻,都可以執行S321,本發明不對其進行限制。
[0194]S325、結束在線遷移。
[0195]執行上述操作之后,由于數據的一致性得到保證,保證了遷移目的服務器中的操作系統及其上的應用正常運行,對于實時性要求較高的業務系統遷移,可以通過配置實時同步任務降低業務中斷時間。
[0196]在現有技術中,若遷移后虛擬機不能正常運行,就會多次停機遷移源,進行增量同步;同時,數據遷移完成后,一般業務驗證過程較長,導致業務切換前數據增量壓力大,同樣需要較長的增量同步時間。部分工具通過Linux操作系統自帶的Inotify文件系統事件監控框架,監控文件系統操作,比如讀取、寫入和創建,達到實時同步的目的。但通過Inotify文件系統監聽,遷移源和遷移目的端之間交互較為頻繁。
[0197]為克服上述缺陷,本發明在上述實施例的基礎上,進一步地,通過執行實時同步任務減少停機次數,降低業務中斷時間;同時降低遷移源和遷移目的端交互次數。
[0198]執行同步任務過程與上述在線遷移過程基本一致,主要區別在于:在在線遷移過程中,遷移源自動判斷任務是否終止;在執行同步任務過程中,遷移源在接收到遷移服務器下發的終止命令之后,結束遷移。
[0199]圖4為本發明在線遷移方法實施例三的流程圖。如圖4所示,在圖1所示實施例的基礎上,在線遷移方法可以包括:
[0200]S101、在接收到遷移命令時,創建第一內存塊區域,并將該第一內存塊區域掛載到遷移目錄下。
[0201]S102、將遷移目錄的1重定向至第一內存塊區域,該第一內存塊區域用于存儲在線遷移過程中產生的數據。
[0202]S103、將遷移目錄對應的本地硬盤數據遷移至遷移目的端。
[0203]S104、將第一內存塊區域中的數據復制至遷移目的端,并存儲在本地硬盤后釋放。
[0204]S401、接收遷移服務器下發的同步命令,該同步命令包含同步目錄。
[0205]其中,同步目錄與遷移目錄可以相同,也可以不同。例如,遷移目錄為C盤和D盤,同步目錄僅為D盤下data目錄,等等,此處不再一一列舉。
[0206]S402、創建第二內存塊區域,并將第二內存塊區域掛載到同步目錄下。
[0207]這里,“第二”僅為區分不同的內存塊區域,例如與上述第一內存塊區域進行區分,該第二內存塊區域的大小可以是任意的,通常情況下,默認其大小為1024MB(英文:MByte,簡稱:ΜΒ) ο
[0208]將第二內存塊區域掛載至同步目錄下,使其可以被訪問。
[0209]S403、將同步目錄的1重定向至第二內存塊區域,該第二內存塊區域用于存儲同步過程中產生的數據。
[0210]通過文件系統的1重定向功能,將同步目錄的1重定向至第二內存塊區域,這樣,在同步過程中產生的數據會存儲在該第二內存塊區域中。
[0211]S404、將同步目錄對應的本地硬盤數據遷移至遷移目的端。
[0212]該步驟中,首先實現同步目錄對應的本地硬盤數據的遷移。由于S403中將同步目錄的1重定向至第二內存塊區域,因此,在同步過程中,同步目錄對應的本地硬盤數據是在同步任務啟動之前已保存的數據,是相對固定的,故通過網絡傳輸,將這部分數據遷移至遷移目的端相應目錄。
[0213]對同步過程中產生的數據,通過S405實現在線遷移。
[0214]S405、將第二內存塊區域中的數據復制至遷移目的端,并存儲在本地硬盤后釋放第二內存塊區域。
[0215]將同步過程中,第二內存塊區域中的數據寫入本地硬盤和遷移目的端。
[0216]S406、接收遷移服務器發送的終止命令。
[0217]S105、結束在線遷移。
[0218]本發明實施例在保證在線遷移數據一致性的同時,通過執行同步任務減少停機次數,降低業務中斷時間,及降低遷移源和遷移目的端交互次數,實現文件實時同步。
[0219]在上述實施例中,創建第二內存塊區域,可以包括:根據第二預設空間大小,創建第二內存塊區域。其中,第二預設空間大小可以根據實際需求進行設置,在此不做限定,例如,第二預設空間可以根據業務數據變化量設定。
[0220]進一步地,S403可以包括:加載文件系統的驅動模塊,該文件系統具有1重定向功能;在同步目錄下,建立文件系統,將同步目錄1重定向至第二內存塊區域。另外,在結束同步任務之前,該方法還可以包括:卸載文件系統。
[0221]可選地,S430之后,在線遷移方法還可以包括:周期性檢測第二內存塊區域中的數據占用的空間;若確定第二內存塊區域中的數據占用的空間小于或等于第二預設閾值,則將第二內存塊區域中的數據復制到遷移目的端,并存儲在本地硬盤后釋放該第二內存塊區域,并結束同步任務;若確定第二內存塊區域中的數據占用的空間大于第二預設閾值,則創建新的第二內存塊區域掛載至同步目錄下,并將同步目錄1重定向至新的第二內存塊區域;同時,將第二內存塊區域中的數據復制到遷移目的端,并存儲在本地硬盤后釋放;將新的第二內存塊區域作為第二內存塊區域,執行所述周期性檢測第二內存塊區域中的數據占用的空間,直至結束同步任務。
[0222]其中,第二預設閾值小于或等于第二內存塊區域占用的空間。第二預設閾值的設置依據例如為本次數據同步允許的數據差異量,默認為第二內存塊區域占用空間的2/3,現網中可以根據業務數據變化情況靈活調整,等等。
[0223]由于第二內存塊區域的大小是固定的,因此,其數據存儲能力也是固定的。該實施例通過周期性檢測獲得第二內存塊區域中的數據占用的空間,以根據第二內存塊區域已存儲的數據大小,確定后續操作。
[0224]當第二內存塊區域中的數據占用的空間小于或等于第二預設閾值時,說明同步過程中產生的數據的大小在本次數據同步允許的數據差異量內,并且不會影響遷移后遷移目的端中操作系統及其上的應用軟件的正常運行。這時,同步過程中產生的數據的大小沒有超過第二預設閥值,會等待遷移服務器下發的命令,做下一步的操作,如終止在線遷移。
[0225]當第二內存塊區域中的數據占用的空間大于第二預設閾值時,說明同步過程中產生的數據的大小超過本次數據同步允許的數據差異量。這時,創建新的第二內存塊區域掛載至遷移目錄下,并將同步目錄1重定向至該新的第二內存塊區域。同時,將第二內存塊區域中的數據復制到遷移目的端,并儲在本地硬盤后釋放;將新的第二內存塊區域作為第二內存塊區域,執行所述周期性檢測。
[0226]本發明實施例通過文件系統的1重定向功能,將同步過程中產生的變化數據寫入到第二內存塊區域,并通過第二內存塊區域中的數據占用的空間與第二預設閾值的對t匕,執行不同的處理,保證新產生的變化數據全部寫入本地硬盤和遷移目的端,從而能實現實時同步,還可提高讀寫效率,減少遷移源及遷移目的端磁盤的寫數據時間及業務停機時間,保證每一次同步遷移目的端業務的可用性,節省迭代驗證時間;另外,采用多級內存塊區域管理,防止數據溢出。
[0227]對同步過程主要描述如下:
[0228]遷移服務器下發同步命令給遷移源代理。遷移源代理加載Un1n mount的驅動模塊,按照第二預設空間大小創建第二內存塊區域,并掛載至同步目錄下;遷移源代理調用Un1n mount接口在同步目錄中建立聯合目錄,將1重定向到第二內存塊區域,此時同步目錄對應的本地硬盤數據只讀,變化數據寫入第二內存塊區域。遷移源代理將該同步目錄對應的本地硬盤數據遷移到遷移目的服務器,遷移源代理檢測兩端數據變化情況,只復制變化的數據。
[0229]遷移源代理循環檢測第二內存塊區域中的數據占用的空間是否超過第二預設閥值,如果超過第二預設閥值,將該第二內存塊區域中的數據凍結,分配新的第二內存塊區域,將1重定向到該新的第二內存塊區域,供變化數據寫入。同時,向遷移源代理和遷移目的服務器對應磁盤各寫入一份內存凍結數據,寫入完成后,釋放該第二內存塊區域;如果沒有超過第二預設閥值,在接收到終止命令后,將第二內存塊區域中的數據寫入遷移源代理的本地硬盤及遷移目的服務器,并卸載聯合目錄,結束本次同步任務。
[0230]一種可選的實施例中,通過遷移服務器、遷移源代理、Un1n mount與遷移目的服務器之間交互說明同步過程。參考圖2所示組件對接方式。
[0231]圖5為本發明在線遷移方法實施例四中同步過程的信令圖。如圖5所示,該實施例中的方法可以包括:
[0232]S501、遷移服務器與數據庫全程消息交互。
[0233]S502、遷移服務器接收用戶輸入參數的操作。
[0234]S503、遷移服務器將上述參數保存到數據庫中。
[0235]其中,用戶輸入的參數可以包括:同步目錄、同步啟動時間及終止命令觸發條件坐寸ο
[0236]可選地,上述參數全部或部分已存儲在數據庫中,因此,S502和S503為可選步驟。
[0237]S504、遷移服務器生成同步命令。
[0238]具體地,遷移服務器根據上述參數生成同步命令,同步命令至少包含同步目錄,以通知遷移源代理對哪些數據進行同步。
[0239]遷移服務器根據同步啟動時間,啟動同步任務。到達同步啟動時間時,執行S505,傳遞同步任務配置信息。
[0240]S505、遷移服務器下發同步命令給遷移源代理。
[0241]可選地,例如遷移服務器通過SSH命令的方式下發遷移命令給遷移源代理,本發明不以此為限。
[0242]此后,遷移服務器會周期性檢測同步任務執行情況,即S519 ;并判斷是否滿足終止命令下發條件,如果滿足,下發終止命令,執行S522。
[0243]S506、遷移源代理在接收到同步命令后,加載Un1n mount的驅動模塊。
[0244]具體地,遷移源代理接收遷移服務器下發的同步命令后,記錄同步任務配置信息,開始同步前準備,加載Un1n mount的驅動模塊。
[0245]S507、遷移源代理創建第二內存塊區域,并將第二內存塊區域掛載至同步目錄。
[0246]S508、遷移源代理在同步目錄中建立Un1n mount。
[0247]具體地,遷移源代理調用Un1n mount接口,建立文件系統,即聯合目錄。
[0248]S509、遷移源代理將同步目錄的10重定向至第二內存塊區域。
[0249]S510、遷移源代理將同步目錄對應的本地硬盤數據遷移至遷移目的服務器。
[0250]S511、遷移目的服務器反饋同步目錄對應的硬盤數據寫入執行結果給遷移源代理。
[0251]若遷移目的服務器反饋的同步目錄對應的硬盤數據寫入執行結果為寫成功信息,則執行S512 ;若遷移目的服務器反饋的同步目錄對應的硬盤數據寫入執行結果為寫失敗信息,則結束在線遷移。
[0252]S512、遷移源代理周期性查詢第二內存塊區域中的數據占用的空間是否超過第二預設閾值。
[0253]若第二內存塊區域中的數據占用的空間大于第二預設閾值,則執行S513 ;若第二內存塊區域中的數據占用的空間小于或等于第二預設閾值,則執行S519。
[0254]S513、遷移源代理創建新的第二內存塊區域掛載至同步目錄下。
[0255]S514、將同步目錄的10重定向至該新的第二內存塊區域。
[0256]其中,S513和 S514 同 S507。
[0257]S515、遷移源代理將上述第二內存塊區域中的數據存儲在本地硬盤。
[0258]S516、遷移源代理上述第二內存塊區域中的數據復制至遷移目的服務器。
[0259]S517、遷移目的服務器反饋第二內存塊區域中的數據寫入執行結果給遷移源代理。
[0260]若遷移目的服務器反饋的第二內存塊區域中的數據寫入執行結果為第二內存塊區域中的數據寫成功信息,則執行S518 ;若遷移目的服務器反饋的第二內存塊區域中的數據寫入執行結果為第二內存塊區域中的數據寫失敗信息,則在接收遷移服務器發送的同步任務執行狀態查詢時,將該寫入執行結果反饋給遷移服務器。
[0261]S518、遷移源代理釋放上述第二內存塊區域。
[0262]該步驟之后,將該新的第二內存塊區域作為上述第二內存塊區域,重復執行S512直至同步過程結束。
[0263]S519、遷移源代理接收遷移服務器發送的同步任務執行狀態查詢。
[0264]S520、遷移源代理反饋當時的同步任務執行結果給遷移服務器。
[0265]在同步過程中,遷移源代理接收遷移服務器發送的同步任務執行狀態查詢,并反饋當時的同步任務執行結果給遷移服務器。
[0266]S521、遷移服務器根據該當時的同步任務執行結果判斷同步過程是否結束。
[0267]例如,同步任務執行結果為同步目錄對應的硬盤數據寫失敗信息,或同步任務執行結果為第二內存塊區域中的數據寫失敗信息時,結束在線遷移。
[0268]補充說明的是,S519的執行不限于S518之后,在整個同步過程中,遷移源代理在接收到同步命令之后至同步過程結束的任意時刻,都可以執行S519,本發明不對其進行限制。
[0269]S522、遷移服務器發送終止命令給遷移源代理。
[0270]該終止命令的下發條件可以為用戶手動終止、到達預設的終止時間、同步任務執行結果為同步目錄對應的硬盤數據寫失敗信息和同步任務執行結果為第二內存塊區域中的數據寫失敗信息中的任一項,本發明不以此為限。
[0271]具體地,用戶可以通過遷移服務器界面顯示的任務執行情況,手動終止同步過程;或,預先設定同步任務終止時間;或,遷移服務器檢測到連續N分鐘內,第二內存塊區域的使用率低于第二預設閥值的10%,等,觸發同步任務終止。
[0272]S523、遷移源代理將第二內存塊區域中的數據存儲在本地硬盤。
[0273]S524、遷移源代理將第二內存塊區域中的數據復制至遷移目的服務器后釋放。
[0274]具體地,遷移源代理將第二內存塊區域中的數據復制至遷移目的服務器,可選地,遷移目的服務器反饋第二內存塊區域中的數據寫入執行結果給遷移源代理。若遷移目的服務器反饋的第二內存塊區域中的數據寫入執行結果為第二內存塊區域中的數據寫成功信息,則釋放該第二內存塊區域,并執行S525 ;若遷移目的服務器反饋的第二內存塊區域中的數據寫入執行結果為第二內存塊區域中的數據寫失敗信息,則結束在線遷移。
[0275]S525、遷移源代理卸載 Un1n mount。
[0276]具體地,遷移源代理調用Un1n mount接口卸載文件系統。
[0277]S526、遷移源代理反饋終止命令執行結果給遷移服務器。
[0278]至此,在線遷移結束。
[0279]另一種可選的實施例中,通過遷移服務器、遷移源服務器與遷移目的服務器之間交互實施本發明實施例提供的在線遷移方法。
[0280]圖6為本發明在線遷移方法實施例五中組件對接方式示意圖。如圖6所示,遷移服務器與遷移源服務器,及遷移源服務器與遷移目的服務器,通過事件(英文=Event)驅動產生信令交互。可選地,通過R3(英文:Request, Response, Result)機制保證信令交互可靠及時。另外,遷移服務器與數據庫全程消息交互,數據庫用于保存遷移服務器中的預設數據。該實施例與上述實施例的區別在于:該實施例中,遷移源服務器通過SSH命令與文件系統,例如Un1n mount通信,不采用遷移源端部署遷移源代理的方式。
[0281]該實施例中,遷移服務器與遷移源服務器的每一次交互都需要通過SSH命令的方式,交互較為頻繁,且網絡依賴性較高。另外,遷移源服務器與Un1n mount耦合,增加了系統的復雜度。
[0282]該實施例中的信令交互與圖3及圖5所示技術方案類似,此處不再贅述。
[0283]上述實施例以Linux操作系統中的在線遷移為例進行說明,采用Un1n mount文件系統的1重定向功能,通過策略控制,保證數據一致性和文件實時同步,但本發明不以此為限。對于其它操作系統,比如Windows操作系統,只要能夠實現類似的重定向技術,也可以使用本發明提供的在線遷移技術方案。
[0284]在本發明任一實施例中,遷移命令、同步命令和終止命令為通過事件驅動產生,通過socket的方式下發,或,通過SSH命令的方式下發。
[0285]圖7為現有技術在線遷移過程示例圖。如圖7所示,在時間軸上采用方框表示不同的時間段。具體地,數據遷移時采用LVM快照或無快照;然后,遷移目的端測試驗證數據遷移是否成功,其中,判斷數據遷移是否成功的依據為遷移目的端業務能夠正常運行;若遷移目的端業務正常運行,則完成在線遷移,停止遷移源業務,進行最后的增量同步及業務切換;若不成功,即遷移目的端業務無法運行,則停機遷移源業務進行增量同步;增量同步之后,遷移目的端再測試驗證遷移目的端系統及服務能否正常運行;若正常,則完成在線遷移,停止遷移源業務,進行最后的增量同步及業務切換;若不成功,即遷移目的端系統或業務無法啟動,則停機遷移源業務再次進行增量同步,以此類推,直至遷移目的端正常啟動。
[0286]圖8為本發明在線遷移過程示例圖。如圖8所示,在時間軸上采用方框表示不同的時間段。具體地,數據遷移時采用Un1n mount保證數據一致性,保證了遷移后,目的端系統及業務能夠正常運行;對于業務實時性要求不高的遷移,則完成在線遷移,停止遷移源業務,進行最后的增量同步及業務切換;對于實時性要求較高的業務,則通過在線實時同步減少遷移源停機時間;實時同步完成之后,停止遷移源業務,進行最后的增量同步及業務切換。
[0287]本發明實施例還提供一種在線遷移方法,該方法也可以由在線遷移裝置執行,該裝置可以集成在如服務器等設備中,例如上述實施例中的遷移服務器。該方法包括:到達啟動時間后,下發遷移命令給遷移源,遷移命令包含遷移目錄,啟動時間和遷移目錄均為預先設置的;在遷移過程中,周期性查詢遷移源的同步任務執行狀態;接收所遷移源反饋的遷移任務執行結果;若確定遷移任務執行結果為結束,則停止查詢,結束在線遷移。其中,該實施例與圖1或圖3所示實施例相對應,具體描述可參考上述實施例,此處不再贅述。
[0288]可選地,與圖4或圖5所示實施例相對應,結束在線遷移之前,上述方法還可以包括:到達預先設置的同步任務啟動時間,下發同步命令給所述遷移源,同步命令包含同步目錄;滿足預設條件時,發送終止命令給遷移源,所述預設條件為用戶手動終止、到達預設的終止時間和由所述同步任務執行結果觸發中的任一項。進一步地,接收遷移服務器下發的同步命令之后,該方法還可以包括:在同步過程中,周期性查詢遷移源的同步任務執行狀態,并接收遷移源反饋的同步任務執行結果。其中,遷移命令、同步命令和終止命令為通過事件驅動產生,通過socket的方式下發,或,通過SSH命令的方式下發。
[0289]圖9為本發明在線遷移裝置實施例一的結構示意圖。如圖9所示,在線遷移裝置90包括:接收模塊91和處理模塊92。
[0290]其中,接收模塊91用于接收到遷移服務器發送的遷移命令,遷移命令包含遷移目錄;處理模塊92用于在接收模塊91接收到遷移命令時,創建第一內存塊區域,并將第一內存塊區域掛載到遷移目錄下;將遷移目錄的10重定向至第一內存塊區域,該第一內存塊區域用于存儲在線遷移過程中產生的數據;將遷移目錄對應的本地硬盤數據遷移至遷移目的端;將第一內存塊區域中的數據復制至遷移目的端,并存儲在本地硬盤后釋放第一內存塊區域;及,結束在線遷移。
[0291]本實施例的裝置,可以用于執行圖1所示方法實施例的技術方案,其實現原理和技術效果類似,此處不再贅述。
[0292]可選地,處理模塊92用于創建第一內存塊區域時,具體為:根據第一預設空間大小,創建第一內存塊區域,該第一預設空間根據業務數據變化量設定。
[0293]處理模塊92用于將遷移目錄1重定向至第一內存塊區域,具體為:加載文件系統的驅動模塊,該文件系統具有1重定向功能;在遷移目錄下,建立文件系統,將遷移目錄1重定向至第一內存塊區域。
[0294]在上述基礎上,處理模塊92還可以用于:在結束在線遷移之前,周期性檢測第一內存塊區域中的數據占用的空間;若確定第一內存塊區域中的數據占用的空間小于或等于第一預設閾值,則將第一內存塊區域中的數據存儲在本地硬盤后釋放第一內存塊區域;若確定第一內存塊區域中的數據占用的空間大于第一預設閾值,則創建新的第一內存塊區域掛載至遷移目錄下,并將遷移目錄1重定向至新的第一內存塊區域;同時,將第一內存塊區域中的數據復制到遷移目的端,并存儲在本地硬盤后釋放第一內存塊區域;將新的第一內存塊區域作為第一內存塊區域,執行上述周期性檢測第一內存塊區域中的數據占用的空間,直至在線遷移結束。
[0295]進一步地,接收模塊91還可以用于接收遷移目的端反饋的遷移目錄對應的硬盤數據寫失敗信息,或接收遷移目的端反饋的第一內存塊區域中的數據寫失敗信息。此時,處理模塊92結束在線遷移的條件還可以包括:接收模塊91接收到遷移目的端反饋的遷移目錄對應的硬盤數據寫失敗信息,或接收到遷移目的端反饋的第一內存塊區域中的數據寫失敗信息。
[0296]圖10為本發明在線遷移裝置實施例二的結構示意圖。如圖10所示,在如圖9所示實施例的基礎上,在線遷移裝置90還可以包括發送模塊93。該實施例中,接收模塊91還可以用于在接收到遷移服務器發送的遷移命令之后,在在線遷移過程中,接收遷移服務器發送的遷移任務執行狀態查詢;發送模塊93用于反饋當時的遷移任務執行結果給遷移服務器,以使遷移服務器根據該當時的遷移任務執行結果判斷在線遷移是否結束。
[0297]本實施例的裝置,可以用于執行圖4所示方法實施例的技術方案,其實現原理和技術效果類似,此處不再贅述。
[0298]在上述基礎上,接收模塊91還可以用于:在結束在線遷移之前,接收遷移服務器下發的同步命令,同步命令包含同步目錄。處理模塊92還可以用于創建第二內存塊區域,并將第二內存塊區域掛載到同步目錄下;將同步目錄的1重定向至第二內存塊區域,第二內存塊區域用于存儲同步過程中產生的數據;將同步目錄對應的本地硬盤數據遷移至遷移目的端;將第二內存塊區域中的數據復制至遷移目的端,并存儲在本地硬盤后釋放第二內存塊區域。接收模塊91還可以用于接收遷移服務器發送的終止命令。
[0299]其中,處理模塊92用于創建第二內存塊區域,具體為:根據第二預設空間大小,創建第二內存塊區域,該第二預設空間根據業務數據變化量設定。
[0300]處理模塊92用于將同步目錄的1重定向至第二內存塊區域,具體為:加載文件系統的驅動模塊,文件系統具有1重定向功能;在同步目錄下,建立文件系統,將同步目錄1重定向至第二內存塊區域。
[0301]進一步地,處理模塊92還可以用于:在通過文件系統的1重定向功能,將同步目錄1重定向至第二內存塊區域之后,周期性檢測第二內存塊區域中的數據占用的空間;若確定第二內存塊區域中的數據占用的空間小于或等于第二預設閾值,則將第二內存塊區域中的數據復制到遷移目的端,并存儲在本地硬盤后釋放第二內存塊區域,并結束同步任務;若確定第二內存塊區域中的數據占用的空間大于第二預設閾值,則創建新的第二內存塊區域掛載至同步目錄下,并將同步目錄1重定向至新的第二內存塊區域;同時,將第二內存塊區域中的數據復制到遷移目的端,并存儲在本地硬盤后釋放第二內存塊區域;將新的第二內存塊區域作為所述第二內存塊區域,執行周期性檢測第二內存塊區域中的數據占用的空間,直至結束同步任務。
[0302]可選地,接收模塊91還可以用于:在接收遷移服務器下發的同步命令之后,在同步過程中,接收遷移服務器發送的同步任務執行狀態查詢。發送模塊93還可以用于反饋當時的同步任務執行結果給遷移服務器。
[0303]上述終止命令的下發條件為用戶手動終止、到達預設的終止時間、同步任務執行結果為同步目錄對應的硬盤數據寫失敗信息和同步任務執行結果為第二內存塊區域中的數據寫失敗信息中的任一項等。
[0304]需要說明的是,在本發明任一實施例中,遷移命令、同步命令和終止命令為通過事件驅動產生,通過socket的方式下發,或,通過SSH命令的方式下發。
[0305]圖11為本發明在線遷移裝置實施例三的結構示意圖。如圖11所示,在線遷移裝置I1包括:發送模塊111、處理模塊112和接收模塊113。
[0306]其中,發送模塊111用于到達啟動時間后,下發遷移命令給遷移源,該遷移命令包含遷移目錄,啟動時間和遷移目錄均為預先設置的;處理模塊112用于在遷移過程中,周期性查詢遷移源的同步任務執行狀態;接收模塊113用于接收遷移源反饋的遷移任務執行結果;處理模塊112還可以用于若確定遷移任務執行結果為結束,則停止查詢,結束在線遷移。
[0307]可選地,發送模塊111還可以用于:結束在線遷移之前,到達預先設置的同步任務啟動時間,下發同步命令給遷移源,該同步命令包含同步目錄;滿足預設條件時,發送終止命令給遷移源,該預設條件為用戶手動終止、到達預設的終止時間和由同步任務執行結果觸發中的任一項。
[0308]進一步地,處理模塊112還可以用于:在同步過程中,周期性查詢遷移源的同步任務執行狀態;接收模塊還可以用于接收遷移源反饋的同步任務執行結果。其中,遷移命令、同步命令和終止命令為通過事件驅動產生,通過socket的方式下發,或,通過SSH命令的方式下發。
[0309]本實施例的裝置,可以用于執行圖1或圖4所示方法實施例的對應側的技術方案,其實現原理和技術效果類似,此處不再贅述。
[0310]圖12為本發明在線遷移裝置實施例四的結構示意圖。如圖12所示,在線遷移裝置120包括:接收器121和處理器122。
[0311]其中,接收器121用于接收到遷移服務器發送的遷移命令,遷移命令包含遷移目錄;處理器122用于在接收器121接收到遷移命令時,創建第一內存塊區域,并將第一內存塊區域掛載到遷移目錄下;將遷移目錄的1重定向至第一內存塊區域,該第一內存塊區域用于存儲在線遷移過程中產生的數據;將遷移目錄對應的本地硬盤數據遷移至遷移目的端;將第一內存塊區域中的數據復制至遷移目的端,并存儲在本地硬盤后釋放第一內存塊區域;及,結束在線遷移。
[0312]本實施例的裝置,可以用于執行圖1所示方法實施例的技術方案,其實現原理和技術效果類似,此處不再贅述。
[0313]可選地,處理器122用于創建第一內存塊區域時,具體為:根據第一預設空間大小,創建第一內存塊區域,該第一預設空間根據業務數據變化量設定。
[0314]處理器122用于將遷移目錄1重定向至第一內存塊區域,具體為:加載文件系統的驅動模塊,該文件系統具有1重定向功能;在遷移目錄下,建立文件系統,將遷移目錄1重定向至第一內存塊區域。
[0315]在上述基礎上,處理器122還可以用于:在結束在線遷移之前,周期性檢測第一內存塊區域中的數據占用的空間;若確定第一內存塊區域中的數據占用的空間小于或等于第一預設閾值,則將第一內存塊區域中的數據存儲在本地硬盤后釋放第一內存塊區域;若確定第一內存塊區域中的數據占用的空間大于第一預設閾值,則創建新的第一內存塊區域掛載至遷移目錄下,并將遷移目錄1重定向至新的第一內存塊區域;同時,將第一內存塊區域中的數據復制到遷移目的端,并存儲在本地硬盤后釋放第一內存塊區域;將新的第一內存塊區域作為第一內存塊區域,執行上述周期性檢測第一內存塊區域中的數據占用的空間,直至在線遷移結束。
[0316]進一步地,接收器121還可以用于接收遷移目的端反饋的遷移目錄對應的硬盤數據寫失敗信息,或接收遷移目的端反饋的第一內存塊區域中的數據寫失敗信息。此時,處理器122結束在線遷移的條件還可以包括:接收器121接收到遷移目的端反饋的遷移目錄對應的硬盤數據寫失敗信息,或接收到遷移目的端反饋的第一內存塊區域中的數據寫失敗信肩、O
[0317]圖13為本發明在線遷移裝置實施例五的結構示意圖。如圖13所示,在如圖12所示實施例的基礎上,在線遷移裝置120還可以包括發送器123。該實施例中,接收器121還可以用于在接收到遷移服務器發送的遷移命令之后,在在線遷移過程中,接收遷移服務器發送的遷移任務執行狀態查詢;發送器123用于反饋當時的遷移任務執行結果給遷移服務器,以使遷移服務器根據該當時的遷移任務執行結果判斷在線遷移是否結束。
[0318]本實施例的裝置,可以用于執行圖4所示方法實施例的技術方案,其實現原理和技術效果類似,此處不再贅述。
[0319]在上述基礎上,接收器121還可以用于:在結束在線遷移之前,接收遷移服務器下發的同步命令,同步命令包含同步目錄。處理器122還可以用于創建第二內存塊區域,并將第二內存塊區域掛載到同步目錄下;將同步目錄的1重定向至第二內存塊區域,第二內存塊區域用于存儲同步過程中產生的數據;將同步目錄對應的本地硬盤數據遷移至遷移目的端;將第二內存塊區域中的數據復制至遷移目的端,并存儲在本地硬盤后釋放第二內存塊區域。接收器121還可以用于接收遷移服務器發送的終止命令。
[0320]其中,處理器122用于創建第二內存塊區域,具體為:根據第二預設空間大小,創建第二內存塊區域,該第二預設空間根據業務數據變化量設定。
[0321]處理器122用于將同步目錄的1重定向至第二內存塊區域,具體為:加載文件系統的驅動模塊,文件系統具有1重定向功能;在同步目錄下,建立文件系統,將同步目錄1重定向至第二內存塊區域。
[0322]進一步地,處理器122還可以用于:在通過文件系統的1重定向功能,將同步目錄1重定向至第二內存塊區域之后,周期性檢測第二內存塊區域中的數據占用的空間;若確定第二內存塊區域中的數據占用的空間小于或等于第二預設閾值,則將第二內存塊區域中的數據復制到遷移目的端,并存儲在本地硬盤后釋放第二內存塊區域,并結束同步任務;若確定第二內存塊區域中的數據占用的空間大于第二預設閾值,則創建新的第二內存塊區域掛載至同步目錄下,并將同步目錄1重定向至新的第二內存塊區域;同時,將第二內存塊區域中的數據復制到遷移目的端,并存儲在本地硬盤后釋放第二內存塊區域;將新的第二內存塊區域作為所述第二內存塊區域,執行周期性檢測第二內存塊區域中的數據占用的空間,直至結束同步任務。
[0323]可選地,接收器121還可以用于:在接收遷移服務器下發的同步命令之后,在同步過程中,接收遷移服務器發送的同步任務執行狀態查詢。發送器123還可以用于反饋當時的同步任務執行結果給遷移服務器。
[0324]上述終止命令的下發條件為用戶手動終止、到達預設的終止時間、同步任務執行結果為同步目錄對應的硬盤數據寫失敗信息和同步任務執行結果為第二內存塊區域中的數據寫失敗信息中的任一項等。
[0325]需要說明的是,在本發明任一實施例中,遷移命令、同步命令和終止命令為通過事件驅動產生,通過socket的方式下發,或,通過SSH命令的方式下發。
[0326]圖14為本發明在線遷移裝置實施例六的結構示意圖。如圖14所示,在線遷移裝置140包括:發送器141、處理器142和接收器143。
[0327]其中,發送器141用于到達啟動時間后,下發遷移命令給遷移源,該遷移命令包含遷移目錄,啟動時間和遷移目錄均為預先設置的;處理器142用于在遷移過程中,周期性查詢遷移源的同步任務執行狀態;接收器143用于接收遷移源反饋的遷移任務執行結果;處理器142還可以用于若確定遷移任務執行結果為結束,則停止查詢,結束在線遷移。
[0328]可選地,發送器141還可以用于:結束在線遷移之前,到達預先設置的同步任務啟動時間,下發同步命令給遷移源,該同步命令包含同步目錄;滿足預設條件時,發送終止命令給遷移源,該預設條件為用戶手動終止、到達預設的終止時間和由同步任務執行結果觸發中的任一項。
[0329]進一步地,處理器142還可以用于:在同步過程中,周期性查詢遷移源的同步任務執行狀態;接收器還可以用于接收遷移源反饋的同步任務執行結果。其中,遷移命令、同步命令和終止命令為通過事件驅動產生,通過socket的方式下發,或,通過SSH命令的方式下發。
[0330]本實施例的裝置,可以用于執行圖1或圖4所示方法實施例的對應側的技術方案,其實現原理和技術效果類似,此處不再贅述。
[0331]本發明實施例還提供一種在線遷移系統,該在線遷移系統包括:遷移目的端,如圖9或圖10所示的在線遷移裝置,及如圖11所述的在線遷移裝置。
[0332]本領域普通技術人員可以理解:實現上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質中。該程序在執行時,執行包括上述各方法實施例的步驟;而前述的存儲介質包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。
[0333] 最后應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的范圍。
【權利要求】
1.一種在線遷移方法,其特征在于,包括: 在接收到遷移服務器發送的遷移命令時,創建第一內存塊區域,并將所述第一內存塊區域掛載到遷移目錄下,所述遷移命令包含所述遷移目錄; 將所述遷移目錄的輸入輸出1重定向至所述第一內存塊區域,所述第一內存塊區域用于存儲所述在線遷移過程中產生的數據; 將所述遷移目錄對應的本地硬盤數據遷移至遷移目的端; 將所述第一內存塊區域中的數據復制至所述遷移目的端,并存儲在所述本地硬盤后釋放所述第一內存塊區域; 結束所述在線遷移。
2.根據權利要求1所述的方法,其特征在于,所述創建第一內存塊區域,包括: 根據第一預設空間大小,創建所述第一內存塊區域,所述第一預設空間根據業務數據變化量設定。
3.根據權利要求1或2所述的方法,其特征在于,所述將所述遷移目錄1重定向至所述第一內存塊區域,包括: 加載文件系統的驅動模塊,所述文件系統具有1重定向功能; 在所述遷移目錄下,建立所述文件系統,將所述遷移目錄1重定向至所述第一內存塊區域。
4.根據權利要求1-3任一項所述的方法,其特征在于,結束所述在線遷移之前,所述方法還包括: 周期性檢測所述第一內存塊區域中的數據占用的空間; 若確定所述第一內存塊區域中的數據占用的空間小于或等于第一預設閾值,則將所述第一內存塊區域中的數據存儲在所述本地硬盤后釋放所述第一內存塊區域; 若確定所述第一內存塊區域中的數據占用的空間大于所述第一預設閾值,則創建新的第一內存塊區域掛載至所述遷移目錄下,并將所述遷移目錄1重定向至所述新的第一內存塊區域;同時,將所述第一內存塊區域中的數據復制到所述遷移目的端,并存儲在所述本地硬盤后釋放所述第一內存塊區域;將所述新的第一內存塊區域作為所述第一內存塊區域,執行所述周期性檢測所述第一內存塊區域中的數據占用的空間,直至所述在線遷移結束。
5.根據權利要求1-4任一項所述的方法,其特征在于,結束所述在線遷移的條件還包括: 接收到所述遷移目的端反饋的所述遷移目錄對應的硬盤數據寫失敗信息,或接收到所述遷移目的端反饋的所述第一內存塊區域中的數據寫失敗信息。
6.根據權利要求1-5任一項所述的方法,其特征在于,所述在接收到遷移服務器發送的遷移命令之后,所述方法還包括: 在所述在線遷移過程中,接收所述遷移服務器發送的遷移任務執行狀態查詢,并反饋當時的遷移任務執行結果給所述遷移服務器,以使所述遷移服務器根據該當時的遷移任務執行結果判斷所述在線遷移是否結束。
7.根據權利要求1-6任一項所述的方法,其特征在于,結束所述在線遷移之前,所述方法還包括: 接收所述遷移服務器下發的同步命令,所述同步命令包含同步目錄; 創建第二內存塊區域,并將所述第二內存塊區域掛載到所述同步目錄下; 將所述同步目錄的1重定向至所述第二內存塊區域,所述第二內存塊區域用于存儲所述同步過程中產生的數據; 將所述同步目錄對應的本地硬盤數據遷移至所述遷移目的端; 將所述第二內存塊區域中的數據復制至所述遷移目的端,并存儲在所述本地硬盤后釋放所述第二內存塊區域; 接收所述遷移服務器發送的終止命令。
8.根據權利要求7所述的方法,其特征在于,所述創建第二內存塊區域,包括: 根據第二預設空間大小,創建所述第二內存塊區域,所述第二預設空間根據業務數據變化量設定。
9.根據權利要求7或8所述的方法,其特征在于,所述將所述同步目錄的1重定向至所述第二內存塊區域,包括: 加載文件系統的驅動模塊,所述文件系統具有1重定向功能; 在所述同步目錄下,建立所述文件系統,將所述同步目錄1重定向至所述第二內存塊區域。
10.根據權利要求7-9任一項所述的方法,其特征在于,所述通過所述文件系統的所述1重定向功能,將所述同步目錄1重定向至所述第二內存塊區域之后,所述方法還包括: 周期性檢測所述第二內存塊區域中的數據占用的空間; 若確定所述第二內存塊區域中的數據占用的空間小于或等于第二預設閾值,則將所述第二內存塊區域中的數據復制到所述遷移目的端,并存儲在所述本地硬盤后釋放所述第二內存塊區域,并結束同步任務; 若確定所述第二內存塊區域中的數據占用的空間大于所述第二預設閾值,則創建新的第二內存塊區域掛載至所述同步目錄下,并將所述同步目錄1重定向至所述新的第二內存塊區域;同時,將所述第二內存塊區域中的數據復制到所述遷移目的端,并存儲在所述本地硬盤后釋放所述第二內存塊區域;將所述新的第二內存塊區域作為所述第二內存塊區域,執行所述周期性檢測所述第二內存塊區域中的數據占用的空間,直至結束所述同步任務。
11.根據權利要求7-10任一項所述的方法,其特征在于,所述接收所述遷移服務器下發的同步命令之后,所述方法還包括: 在同步過程中,接收所述遷移服務器發送的同步任務執行狀態查詢,并反饋當時的同步任務執行結果給所述遷移服務器。
12.根據權利要求7-11任一項所述的方法,其特征在于,所述終止命令的下發條件為用戶手動終止、到達預設的終止時間、所述同步任務執行結果為所述同步目錄對應的硬盤數據寫失敗信息和所述同步任務執行結果為所述第二內存塊區域中的數據寫失敗信息中的任一項。
13.根據權利要求7-12任一項所述的方法,其特征在于,所述遷移命令、所述同步命令和所述終止命令為通過事件驅動產生,通過套接字socket的方式下發,或,通過安全協議SSH命令的方式下發。
14.一種在線遷移方法,其特征在于,包括: 到達啟動時間后,下發遷移命令給遷移源,所述遷移命令包含遷移目錄,所述啟動時間和遷移目錄均為預先設置的; 在遷移過程中,周期性查詢所述遷移源的同步任務執行狀態; 接收所述遷移源反饋的遷移任務執行結果; 若確定所述遷移任務執行結果為結束,則停止查詢,結束所述在線遷移。
15.根據權利要求14所述的方法,其特征在于,結束所述在線遷移之前,所述方法還包括: 到達預先設置的同步任務啟動時間,下發同步命令給所述遷移源,所述同步命令包含同步目錄; 滿足預設條件時,發送終止命令給所述遷移源,所述預設條件為用戶手動終止、到達預設的終止時間和由同步任務執行結果觸發中的任一項。
16.根據權利要求15所述的方法,其特征在于,所述接收所述遷移服務器下發的同步命令之后,所述方法還包括: 在同步過程中,周期性查詢所述遷移源的同步任務執行狀態,并接收所述遷移源反饋的所述同步任務執行結果。
17.根據權利要求16所述的方法,其特征在于,所述遷移命令、所述同步命令和所述終止命令為通過事件驅動產生,通過套接字socket的方式下發,或,通過安全協議SSH命令的方式下發。
18.—種在線遷移裝置,其特征在于,包括: 接收模塊,用于接收到遷移服務器發送的遷移命令,所述遷移命令包含遷移目錄; 處理模塊,用于在所述接收模塊接收到所述遷移命令時,創建第一內存塊區域,并將所述第一內存塊區域掛載到所述遷移目錄下;將所述遷移目錄的輸入輸出1重定向至所述第一內存塊區域,所述第一內存塊區域用于存儲所述在線遷移過程中產生的數據;將所述遷移目錄對應的本地硬盤數據遷移至遷移目的端;將所述第一內存塊區域中的數據復制至所述遷移目的端,并存儲在所述本地硬盤后釋放所述第一內存塊區域;及,結束所述在線遷移。
19.根據權利要求18所述的裝置,其特征在于,所述處理模塊用于所述創建第一內存塊區域,具體為: 根據第一預設空間大小,創建所述第一內存塊區域,所述第一預設空間根據業務數據變化量設定。
20.根據權利要求18或19所述的裝置,其特征在于,所述處理模塊用于將所述遷移目錄1重定向至所述第一內存塊區域,具體為: 加載文件系統的驅動模塊,所述文件系統具有1重定向功能; 在所述遷移目錄下,建立所述文件系統,將所述遷移目錄1重定向至所述第一內存塊區域。
21.根據權利要求18-20任一項所述的裝置,其特征在于,所述處理模塊還用于: 在結束所述在線遷移之前,周期性檢測所述第一內存塊區域中的數據占用的空間; 若確定所述第一內存塊區域中的數據占用的空間小于或等于第一預設閾值,則將所述第一內存塊區域中的數據存儲在所述本地硬盤后釋放所述第一內存塊區域; 若確定所述第一內存塊區域中的數據占用的空間大于所述第一預設閾值,則創建新的第一內存塊區域掛載至所述遷移目錄下,并將所述遷移目錄1重定向至所述新的第一內存塊區域;同時,將所述第一內存塊區域中的數據復制到所述遷移目的端,并存儲在所述本地硬盤后釋放所述第一內存塊區域;將所述新的第一內存塊區域作為所述第一內存塊區域,執行所述周期性檢測所述第一內存塊區域中的數據占用的空間,直至所述在線遷移結束。
22.根據權利要求18-21任一項所述的裝置,其特征在于,所述接收模塊還用于接收所述遷移目的端反饋的所述遷移目錄對應的硬盤數據寫失敗信息,或接收所述遷移目的端反饋的所述第一內存塊區域中的數據寫失敗信息; 所述處理模塊結束所述在線遷移的條件還包括: 所述接收模塊接收到所述遷移目的端反饋的所述遷移目錄對應的硬盤數據寫失敗信息,或接收到所述遷移目的端反饋的所述第一內存塊區域中的數據寫失敗信息。
23.根據權利要求18-22任一項所述的裝置,其特征在于,所述裝置還包括發送模塊, 所述接收模塊,還用于在接收到遷移服務器發送的遷移命令之后,在所述在線遷移過程中,接收所述遷移服務器發送的遷移任務執行狀態查詢; 所述發送模塊,用于反饋當時的遷移任務執行結果給所述遷移服務器,以使所述遷移服務器根據該當時的遷移任務執行結果判斷所述在線遷移是否結束。
24.根據權利要求18-23任一項所述的裝置,其特征在于, 所述接收模塊,還用于在結束所述在線遷移之前,接收所述遷移服務器下發的同步命令,所述同步命令包含同步目錄; 所述處理模塊,還用于創建第二內存塊區域,并將所述第二內存塊區域掛載到所述同步目錄下;將所述同步目錄的1重定向至所述第二內存塊區域,所述第二內存塊區域用于存儲所述同步過程中產生的數據;將所述同步目錄對應的本地硬盤數據遷移至所述遷移目的端;將所述第二內存塊區域中的數據復制至所述遷移目的端,并存儲在所述本地硬盤后釋放所述第二內存塊區域; 所述接收模塊還用于接收所述遷移服務器發送的終止命令。
25.根據權利要求24所述的裝置,其特征在于,所述處理模塊用于所述創建第二內存塊區域,具體為: 根據第二預設空間大小,創建所述第二內存塊區域,所述第二預設空間根據業務數據變化量設定。
26.根據權利要求24或25所述的裝置,其特征在于,所述處理模塊用于所述將所述同步目錄的1重定向至所述第二內存塊區域,具體為: 加載文件系統的驅動模塊,所述文件系統具有1重定向功能; 在所述同步目錄下,建立所述文件系統,將所述同步目錄1重定向至所述第二內存塊區域。
27.根據權利要求24-26任一項所述的裝置,其特征在于,所述處理模塊還用于: 在所述通過所述文件系統的所述1重定向功能,將所述同步目錄1重定向至所述第二內存塊區域之后,周期性檢測所述第二內存塊區域中的數據占用的空間; 若確定所述第二內存塊區域中的數據占用的空間小于或等于第二預設閾值,則將所述第二內存塊區域中的數據復制到所述遷移目的端,并存儲在所述本地硬盤后釋放所述第二內存塊區域,并結束同步任務; 若確定所述第二內存塊區域中的數據占用的空間大于所述第二預設閾值,則創建新的第二內存塊區域掛載至所述同步目錄下,并將所述同步目錄1重定向至所述新的第二內存塊區域;同時,將所述第二內存塊區域中的數據復制到所述遷移目的端,并存儲在所述本地硬盤后釋放所述第二內存塊區域;將所述新的第二內存塊區域作為所述第二內存塊區域,執行所述周期性檢測所述第二內存塊區域中的數據占用的空間,直至結束所述同步任務。
28.根據權利要求24-27任一項所述的裝置,其特征在于,所述接收模塊還用于: 在所述接收所述遷移服務器下發的同步命令之后,在同步過程中,接收所述遷移服務器發送的同步任務執行狀態查詢; 所述發送模塊還用于反饋當時的同步任務執行結果給所述遷移服務器。
29.根據權利要求24-28任一項所述的裝置,其特征在于,所述終止命令的下發條件為用戶手動終止、到達預設的終止時間、所述同步任務執行結果為所述同步目錄對應的硬盤數據寫失敗信息和所述同步任務執行結果為所述第二內存塊區域中的數據寫失敗信息中的任一項。
30.根據權利要求24-29任一項所述的裝置,其特征在于,所述遷移命令、所述同步命令和所述終止命令為通過事件驅動產生,通過套接字socket的方式下發,或,通過安全協議SSH命令的方式下發。
31.一種在線遷移裝置,其特征在于,包括: 發送模塊,用于到達啟動時間后,下發遷移命令給遷移源,所述遷移命令包含遷移目錄,所述啟動時間和遷移目錄均為預先設置的; 處理模塊,用于在遷移過程中,周期性查詢所述遷移源的同步任務執行狀態; 接收模塊,用于接收所述遷移源反饋的遷移任務執行結果; 所述處理模塊還用于若確定所述遷移任務執行結果為結束,則停止查詢,結束所述在線遷移。
32.根據權利要求31所述的裝置,其特征在于,所述發送模塊還用于: 結束所述在線遷移之前,到達預先設置的同步任務啟動時間,下發同步命令給所述遷移源,所述同步命令包含同步目錄; 滿足預設條件時,發送終止命令給所述遷移源,所述預設條件為用戶手動終止、到達預設的終止時間和由同步任務執行結果觸發中的任一項。
33.根據權利要求32所述的裝置,其特征在于,所述處理模塊還用于: 在同步過程中,周期性查詢所述遷移源的同步任務執行狀態; 所述接收模塊還用于接收所述遷移源反饋的所述同步任務執行結果。
34.根據權利要求33所述的裝置,其特征在于,所述遷移命令、所述同步命令和所述終止命令為通過事件驅動產生,通過套接字socket的方式下發,或,通過安全協議SSH命令的方式下發。
35.一種在線遷移系統,其特征在于,包括:遷移目的端、如權利要求18-30任一項所述 的在線遷移裝置和如權利要求31-34任一項所述的在線遷移裝置。
【文檔編號】H04L29/08GK104468521SQ201410640111
【公開日】2015年3月25日 申請日期:2014年11月13日 優先權日:2014年11月13日
【發明者】路凱 申請人:華為技術有限公司