本申請公開了創建虛擬機系統盤快照的方法和裝置。所述方法的一具體實施方式包括:接收虛擬機快照的創建指令;判斷虛擬機是否處于開機狀態;若虛擬機處于開機狀態,響應于接收到創建指令,重命名虛擬機系統盤文件中的頂層文件;響應于重命名頂層文件完成,新建頂層文件,將新建頂層文件的依賴指向重命名后的頂層文件,并且打開新建的頂層文件;判斷上一次創建快照是否成功;若成功,將重命名后的頂層文件作為第一快照文件;上傳第一快照文件至文件管理服務器。該實施方式實現了在創建虛擬機系統盤快照時,無需停止虛擬機的工作就可以創建快照,減少了創建快照需要備份的數據量以及占用的存儲空間,并且減少了上傳快照時所占用的網絡帶寬。
【技術實現步驟摘要】
本申請涉及計算機
,具體涉及虛擬機
,尤其涉及創建虛擬機系統盤快照的方法和裝置。
技術介紹
現有的創建虛擬機快照的方法,通常采用內置磁盤快照(Internal disksnapshot)技術來創建快照,獲取快照點的磁盤狀態。這種創建虛擬機快照的方法,在虛擬機關機狀態和開機狀態都可以創建,例如,在硬件虛擬化技術qemu-kvm類型的虛擬機中使用‘qemu_img’命令創建關機狀態的磁盤快照(Cold-Snapshot);使用‘savevm’命令創建開機狀態的磁盤快照(Live-Snapshot)。然而,上述的創建虛擬機系統盤快照的方法,由于在創建快照的同時也拷貝了內存狀態,數據和快照均保存在單個qcow2格式的文件中,存在以下問題:若關閉虛擬機創建快照,則影響虛擬機的工作效率;若在虛擬機的開機狀態創建快照,則創建的快照文件的大小與虛擬機的磁盤文件大小相同,需要備份的數據量大、占用的存儲空間大,并且上傳時占用的網絡帶寬較多。
技術實現思路
本申請的目的在于提出一種改進的創建虛擬機系統盤快照的方法和裝置,來解決以上
技術介紹
部分提到的技術問題。第一方面,本申請提供了一種創建虛擬機系統盤快照的方法,所述方法包括:接收虛擬機快照的創建指令;判斷虛擬機是否處于開機狀態;若所述虛擬機處于開機狀態,響應于接收到所述創建指令,重命名虛擬機系統盤文件中的頂層文件;響應于重命名所述頂層文件完成,新建頂層文件,將所述新建頂層文件的依賴指向重命名后的頂層文件,并且打開新建的頂層文件;判斷上一次創建快照是否成功;若成功,將所述重命名后的頂層文件作為第一快照文件;上傳所述第一快照文件至文件管理服務器。在一些實施例中,所述方法還包括:響應于上傳成功,判斷所述重命名后的頂層文件的依賴是否為歷史快照文件;若所述重命名后的頂層文件的依賴文件為歷史快照文件,則將所述重命名后的頂層文件與所述歷史快照文件合并為新的歷史快照文件;將所述新建的頂層文件的依賴修改為所述新的歷史快照文件,重新打開新建的頂層文件。在一些實施例中,所述將所述重命名后的頂層文件與所述歷史快照文件合并為新的歷史快照文件包括:將所述重命名后的頂層文件和所述歷史快照文件作為源文件進行備份;確認備份文件的依賴關系與源文件的依賴關系是否相同;若不同,將備份文件的依賴關系修改為與源文件的依賴關系相同;若相同,對所述備份文件進行合并,得到所述新的歷史快照文件;刪除所述源文件。在一些實施例中,所述判斷上一次創建快照是否成功包括:提取所有被依賴文件的唯一識別碼;判斷所述唯一識別碼是否存在于已上傳的數據庫的快照列表中;若存在,則確定上一次創建快照成功;若不存在,則確定上一次創建快照失敗。在一些實施例中,所述方法還包括:若上一次創建快照失敗,則將上一次創建快照生成的重命名后的頂層文件與當前創建快照生成的重命名后的頂層文件合并為第二快照文件;上傳所述第二快照文件至文件管理服務器。在一些實施例中,所述方法還包括:若所述虛擬機關機,響應于接收到所述創建指令,復制所述虛擬機系統盤文件的頂層文件,得到第三快照文件;上傳所述第三快照文件至文件管理服務器。在一些實施例中,所述方法還包括:接收快照回滾指令;響應于接收到所述快照回滾指令,從所述文件管理服務器下載與所述快照回滾指令相適應的快照文件;若下載的快照文件為多個,合并下載的快照文件。在一些實施例中,所述接收快照回滾指令包括:呈現選擇回滾指令的界面;接收對所述回滾指令的第一選擇操作;響應于接收到所述第一選擇操作,呈現選擇回滾時間點的界面;接收對所述回滾時間點的第二選擇操作;以及所述響應于接收到所述快照回滾指令,從所述文件管理服務器下載與所述快照回滾指令相適應的快照文件包括:響應于接收到所述第二選擇操作,從所述文件管理服務器下載與所述第二選擇操作相適應的快照文件。在一些實施例中,所述虛擬機為通過開源的云計算管理平臺架構OpenStack基于硬件虛擬化技術qemu-kvm創建的虛擬機;以及所述虛擬機的系統盤文件格式采用qcow2格式的鏈式結構。在一些實施例中,所述系統盤文件的鏈長不大于4。第二方面,本申請提供了創建虛擬機系統盤快照的裝置,所述裝置包括:第一接收單元,用于接收虛擬機快照的創建指令;第一判斷單元,用于判斷虛擬機是否處于開機狀態;命名單元,用于若所述虛擬機處于開機狀態,響應于接收到所述創建指令,重命名虛擬機系統盤文件中的頂層文件;新建單元,用于響應于重命名所述頂層文件完成,新建頂層文件,將所述新建頂層文件的依賴指向重命名后的頂層文件,并且打開新建的頂層文件;第二判斷單元,用于判斷上一次創建快照是否成功;確定單元,用于若上一次創建快照成功,將所述重命名后的頂層文件作為第一快照文件;第一上傳單元,用于上傳所述第一快照文件至文件管理服務器。在一些實施例中,所述裝置還包括:第三判斷單元,用于響應于上傳成功,判斷所述重命名后的頂層文件的依賴是否為歷史快照文件;第一合并單元,用于若所述重命名后的頂層文件的依賴文件為歷史快照文件,則將所述重命名后的頂層文件與所述歷史快照文件合并為新的歷史快照文件;修改單元,用于將所述新建的頂層文件的依賴修改為所述新的歷史快照文件,重新打開新建的頂層文件。在一些實施例中,所述第一合并單元包括:備份子單元,用于將所述重命名后的頂層文件和所述歷史快照文件作為源文件進行備份;確認子單元,用于確認備份文件的依賴關系與源文件的依賴關系是否相同;修改子單元,用于若確認備份文件的依賴關系與源文件的依賴關系不同,將備份文件的依賴關系修改為與源文件的依賴關系相同;合并子單元,用于若確認備份文件的依賴關系與源文件的依賴關系相同,對所述備份文件進行合并,得到所述新的歷史快照文件;刪除子單元,用于刪除所述源文件。在一些實施例中,所述第二判斷單元包括:提取子單元,用于提取所有被依賴文件的唯一識別碼;判斷子單元,用于判斷所述唯一識別碼是否存在于已上傳的數據庫的快照列表中;第一確定子單元,用于若所述唯一識別碼存在于已上傳的數據庫的快照列表中,則確定上一次創建快照成功;第二確定子單元,用于若所述唯一識別碼不存在于已上傳的數據庫的快照列表中,則上一次創建快照失敗。在一些實施例中,所述裝置還包括:第二合并單元,用于若確定上一次創建快照失敗,則將上一次創建快照生成的重命名后的頂層文件與當前創建快照生成的重命名后的頂層文件合并為第二快照文件;第二上傳單元,用于上傳所述第二快照文件至文件管理服務器。在一些實施例中,所述裝置還包括:復制單元,用于若所述虛擬機關機,響應于接收到所述創建指令,復制所述虛擬機系統盤文件的頂層文件,得到第三快照文件;第三上傳單元,用于上傳所述第三快照文件至文件管理服務器。在一些實施例中,所述裝置還包括:第二接收單元,用于接收快照回滾指令;下載單元,用于響應于接收到所述快照回滾指令,從所述文件管理服務器下載與所述快照回滾指令相適應的快照文件;第三合并單元,用于若下載的快照文件為多個,合并下載的快照文件。在一些實施例中,所述第二接收單元包括:第一呈現子單元,用于呈現選擇回滾指令的界面;第一接收子單元,用于接收對所述回滾指令的第一選擇操作;第二呈現子單元,用于響應于接收到所述第一選擇操作,呈現選擇回滾時間點的界面;第二接本文檔來自技高網...
【技術保護點】
一種創建虛擬機系統盤快照的方法,其特征在于,所述方法包括:接收虛擬機快照的創建指令;判斷虛擬機是否處于開機狀態;若所述虛擬機處于開機狀態,響應于接收到所述創建指令,重命名虛擬機系統盤文件中的頂層文件;響應于重命名所述頂層文件完成,新建頂層文件,將所述新建頂層文件的依賴指向重命名后的頂層文件,并且打開新建的頂層文件;判斷上一次創建快照是否成功;若成功,將所述重命名后的頂層文件作為第一快照文件。上傳所述第一快照文件至文件管理服務器。
【技術特征摘要】
【專利技術屬性】
技術研發人員:張宇,
申請(專利權)人:北京百度網訊科技有限公司,
類型:發明
國別省市:北京;11
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。