TWI826093B - 虛擬機器備援方法及系統 - Google Patents
虛擬機器備援方法及系統 Download PDFInfo
- Publication number
- TWI826093B TWI826093B TW111141793A TW111141793A TWI826093B TW I826093 B TWI826093 B TW I826093B TW 111141793 A TW111141793 A TW 111141793A TW 111141793 A TW111141793 A TW 111141793A TW I826093 B TWI826093 B TW I826093B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- virtual machine
- host
- location information
- key value
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000008859 change Effects 0.000 claims description 20
- 238000012790 confirmation Methods 0.000 claims description 5
- 230000001960 triggered effect Effects 0.000 claims description 3
- 238000002360 preparation method Methods 0.000 claims 1
- 230000007246 mechanism Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一種虛擬機器備援方法,包括以第一主機執行:擷取虛擬機器對硬碟映像檔的寫入請求,其中寫入請求包含寫入資料、輸入位置資訊及輸出位置資訊,將寫入資料複製到第一主機的資料暫存區,將對應寫入資料的第一鍵值、輸入位置資訊及輸出位置資訊存入第一資源位置結構,暫停虛擬機器的運作,並根據第一資源位置結構及第一鍵值與對應於既存資料的第二鍵值的比較結果產生第二資源位置結構,以及根據第二資源位置結構輸出備援資料組至第二主機,備援資料組在第一鍵值與第二鍵值相同時包括第二資源位置結構及既存資料與寫入資料中的僅一者。
Description
本發明係關於一種虛擬機器備援方法及系統。
為了提供系統服務的可靠性及讓服務不中斷,特別是提供雲端運算服務的系統及主機,許多種類的備援技術正持續發展與進步。虛擬機器在上述技術的支持下,已可於主機故障的狀況時快速移轉至備用主機上運行並持續提供服務。既有的虛擬機器會對硬碟資料進行備份,例如備份記憶體與主機狀態等運算資源,達成完整虛擬機器備援與資料完整性的目標。
然而,於備用主機的保護啟用後,及虛擬機器對頻繁儲存資料的應用程式(例如,資料庫)進行寫入時,作業系統及應用程式的快取機制會產生相同資料內容但位於不同位址上。因此,備用主機需花費較長的時間及需要較大的頻寬來處理額外的資料副本,導致備份時間增加,也影響了虛擬機器中應用程式的執行效能。
鑒於上述,本發明提供一種解決上述問題及高即時性的虛擬機器備援方法及系統。
依據本發明一實施例的一種虛擬機器備援方法,包括以第一主機執行:擷取虛擬機器對硬碟映像檔的寫入請求,其中寫入請求包含寫入資料、輸入位置資訊及輸出位置資訊;將寫入資料複製到第一主機的資料暫存區;計算寫入資料的第一鍵值;將第一鍵值、輸入位置資訊及輸出位置資訊存入第一資源位置結構;暫停虛擬機器的運作,並根據第一資源位置結構及判斷第一鍵值與對應於輸入位置資訊的第二鍵值的比較結果產生第二資源位置結構,其中第二鍵值對應於資料暫存區中的既存資料;以及根據第二資源位置結構輸出備援資料組至第二主機,以供第二主機產生虛擬機器的副本及硬碟映像檔的副本,其中當第一鍵值與第二鍵值相同時,備援資料組包含第二資源位置結構以及既存資料與寫入資料中的僅一者。
依據本發明一實施例的一種虛擬機器備援系統包括第一主機以及第二主機。第一主機包括虛擬機器、資料暫存區以及硬碟映像檔,虛擬機器連接於資料暫存區,第一主機用於輸出備援資料組。第二主機連接於第一主機,第二主機用於接收備援資料組,以及產生虛擬機器的副本及硬碟映像檔的副本。第一主機更用於執行:擷取虛擬機器對硬碟映像檔的寫入請求,其中寫入請求包含寫入資料、輸入位置資訊及輸出位置資訊;將寫入資料複製到資料暫存區;計算寫入資料的第一鍵值;將第一鍵值、輸入位置資訊及輸出位置資訊存入第一資源位置結構;暫停虛擬機器的運作,並根據第一資源位置結構及判斷第一鍵值與對應於輸入位置資訊的第二鍵值的比較結果產生第二資源位置結構,其中第二鍵值對應於資料暫存區中的既存資料;以及根據第二資源位置結構輸出備援資料組至第二主機,以供第二主機產生虛擬機器的副本及硬碟映像檔的副本,其中當第一鍵值與第二鍵值相同時,備援資料組包含第二資源位置結構以及既存資料與寫入資料中的僅一者。
綜上所述,依據本發明一或多個實施例所示的虛擬機器備援方法及系統,可以即時地擷取虛擬機器的運作資料,且透過對寫入資料進行去重複,可以降低傳輸備援資料組所需的網路頻寬及所需的時間。另外,透過擷取及暫存第一鍵值、輸入位置資訊及輸出位置資訊存入第一資源位置結構的機制,當後續第一主機需暫停第一虛擬機器的運作時,第一主機不需再次從第一硬碟的硬碟映像檔讀取資料,而是可使用第一資源位置結構及/或第一資料暫存區中的資料。因此,可以加速暫停第一虛擬機器以取得備援資料組的流程。依據本發明一或多個實施例所示的虛擬機器備援方法及系統可以適用於本地端機房或異地端機房的虛擬機器備援情境。此外,當與異地端機房間是處於低頻寬環境下時,也可以有更佳的目標還原點(recovery point,RPO),以減少損失資料。
以上之關於本揭露內容之說明及以下之實施方式之說明係用以示範與解釋本發明之精神與原理,並且提供本發明之專利申請範圍更進一步之解釋。
以下在實施方式中詳細敘述本發明之詳細特徵以及優點,其內容足以使任何熟習相關技藝者了解本發明之技術內容並據以實施,且根據本說明書所揭露之內容、申請專利範圍及圖式,任何熟習相關技藝者可輕易地理解本發明相關之目的及優點。以下之實施例係進一步詳細說明本發明之觀點,但非以任何觀點限制本發明之範疇。
請參考圖1,圖1係依據本發明一實施例所繪示的虛擬機器備援系統的方塊圖。如圖1所示,虛擬機器備援系統1包括第一主機10以及第二主機20。第一主機10及第二主機20可各為一台電腦或伺服器,且第一主機10與第二主機20可以透過有線或無線的方式連接,例如乙太網路、區域網路、Wifi、藍牙、行動網路、低軌道衛星通訊網路等,本發明不對第一主機10與第二主機20之間的連線方式予以限制。第一主機10可作為第一虛擬機器101主要運行之主機,第二主機20可作為備份第一虛擬機器101的運作狀態之主機。換言之,第一主機10可為使用者正在操作的電腦或伺服器,第二主機20可為另一台電腦或伺服器,第二主機20的第二虛擬機器201用於備份第一虛擬機器101的記憶體內容、硬碟映像檔內容及處理器的狀態等。因此,當第一主機10的第一虛擬機器101因故障或各種因素暫停運作時,第二主機20的第二虛擬機器201可以還原第一主機10的第一虛擬機器101在暫停運作前的運作狀態。
第一主機10包括第一虛擬機器101、第一資料同步模組102、第一資源管理模組103、第一資料暫存區104、第一硬碟105以及代理模組106。第一資料同步模組102、第一資源管理模組103及代理模組106可為以軟體實現的模組,且這些模組可由電腦的處理器執行。第一資料暫存區104可為電腦的記憶體中的儲存區塊,第一硬碟105可為電腦中的實體硬碟或虛擬硬碟。第一硬碟105可用於儲存第一主機10的硬碟映像檔,代理模組106可以為輸入/輸出(input/output,I/O)代理模組。第一資料同步模組102連接於第一虛擬機器101與第一資源管理模組103之間。第一資源管理模組103連接於第一資料暫存區104及代理模組106,且存有第一資源位置結構。第一資料暫存區104連接於代理模組106,且代理模組106更連接於第一硬碟105。上述各模組的功能於後描述。
第二主機20包括第二虛擬機器201、第二資料同步模組202、第二資源管理模組203、第二資料暫存區204以及第二硬碟205。第二資料同步模組202及第二資源管理模組203可為以軟體實現的模組,且這些模組可由電腦的處理器執行。第二資料暫存區204可為電腦的記憶體中的儲存區塊,第二硬碟205可為電腦中的實體硬碟或虛擬硬碟,第二硬碟205可用於儲存第一主機10的硬碟映像檔的副本。第二資料同步模組202連接於第一資料同步模組102、第二虛擬機器201、第二資源管理模組203以及第二硬碟205,且第二資源管理模組203連接於第二資料暫存區204。上述各模組的功能於後描述。
為了更詳細說明第一主機10以及第二主機20的運作,請一併參考圖1及圖2,其中圖2係依據本發明一實施例所繪示的虛擬機器備援方法的流程圖。依據本發明一實施例的虛擬機器備援方法由第一主機10執行,如圖2所示,包括:步驟S201:擷取虛擬機器對硬碟映像檔的寫入請求,其中寫入請求包含寫入資料、輸入位置資訊及輸出位置資訊;步驟S203:將寫入資料複製到第一主機的資料暫存區;步驟S205:計算寫入資料的第一鍵值;步驟S207:將第一鍵值、輸入位置資訊及輸出位置資訊存入第一資源位置結構;步驟S209:暫停虛擬機器的運作,並根據第一資源位置結構及判斷第一鍵值與對應於輸入位置資訊的第二鍵值的比較結果產生第二資源位置結構,其中第二鍵值對應於資料暫存區中的既存資料;以及步驟S211:根據第二資源位置結構輸出備援資料組至第二主機,以供第二主機產生虛擬機器的副本及硬碟映像檔的副本,其中當第一鍵值與第二鍵值相同時,備援資料組包含第二資源位置結構以及既存資料與寫入資料中的僅一者。
當虛擬機器備援系統1啟用後,於熱備援模式下可透過增量背景備份方式持續於第二主機20建立最新的虛擬機器副本,此時的虛擬機器備援系統1於第一主機10的背景會做機遇性備份及傳送部分資料。當虛擬機器備援系統1判斷第二主機20的虛擬機器副本需更新時,虛擬機器備援系統1將暫停第一主機10,以取得第一主機10當下一致的處理器內部資料、記憶體與硬碟狀態,將自第一主機10取得的所有資料(包含處理器內部資料、記憶體與硬碟狀態)傳送到第二主機20,第二主機20接收第一主機10的完整所有資料即可還原到此時間點(此取得當下一致的狀態的動作一般稱作建立檢查點)。為了將寫入請求備份到第一資料暫存區104做進一步處理,故使用代理模組106來代理第一虛擬機器101對第一硬碟105的硬碟映像檔寫入,並擷取該寫入請求的資料內容,將其複製到第一資料暫存區104。故虛擬機器備援系統1於建立檢查點後將執行複製第一硬碟105寫入請求,即步驟S201,第一主機10的代理模組106擷取第一虛擬機器101對第一硬碟105的硬碟映像檔的寫入請求,其中寫入請求至少包含寫入資料、輸入位置資訊及輸出位置資訊。寫入資料為第一虛擬機器101請求對第一硬碟105的硬碟映像檔寫入的資料內容,輸入位置資訊為產生寫入資料的第一虛擬機器101的記憶體位置,輸出位置資訊為第一虛擬機器101請求於第一硬碟105的硬碟映像檔進行寫入的位置或位移資訊。簡言之,寫入資料為待寫入的資料,輸入位置資訊為寫入資料的來源位置,輸出位置資訊為寫入資料的目標位置或寫入資料於硬碟映像檔之位移。
於步驟S203,代理模組106將寫入資料複製到第一資料暫存區104。具體而言,第一資料暫存區104可包括記憶體區塊及硬碟映像檔區塊,記憶體區塊用於暫存寫入資料的輸入位置資訊(例如,記憶體位址)、資料大小及資料位址;硬碟映像檔區塊用於暫存寫入資料。代理模組106可以是以稀疏檔案(sparse file)的形式,將寫入資料存入第一資料暫存區104的硬碟映像檔區塊。因此,在第一資料暫存區104中,只有寫入資料被分配到儲存空間,第一資料暫存區104中硬碟映像檔區塊其餘的儲存空間則為空(empty)的空洞(hole),如此可減少記憶體空間使用。代理模組在存入寫入資料時會覆蓋第一資料暫存區104的硬碟映像檔區塊中的歷史寫入資料,因此,當第一虛擬機器101對第一硬碟105的映像檔的同一範圍進行重複寫入時,可以避免記錄到過時的多餘資料。於步驟S203,代理模組106可同時將寫入資料寫入第一硬碟105的硬碟映像檔。第一資料同步模組102可將經壓縮的第一虛擬機器101的記憶體變更內容存入第一資料暫存區104,以及將記憶體變更內容對應的鍵值存入第一資料暫存區104。透過步驟S203的暫存機制,當虛擬機器備援系統1為建立檢查點而須停止第一虛擬機器101以確保資料一致性時,將無須再次從第一硬碟105的硬碟映像檔讀取資料,而是使用第一資料暫存區104硬碟映像檔區塊的副本。可加速第一虛擬機器101暫停時取得硬碟映像檔同步資料的流程。
於步驟S205,代理模組106將寫入資料映射成固定大小的值以取得第一鍵值。舉例而言,代理模組106可以對寫入資料進行雜湊運算,並將產生的雜湊值作為第一鍵值。第一鍵值可視為是寫入請求的識別碼,用於代表寫入資料、輸入位置資訊及輸出位置資訊。
於步驟S207,第一資源管理模組103包含去重複子模組並從代理模組106接收第一鍵值,並將第一鍵值、輸入位置資訊及輸出位置資訊存入第一資源位置結構。第一資源位置結構可以記錄各寫入請求的輸入位置資訊、輸出位置資訊以及鍵值之間的對應關係。具體而言,第一資源位置結構可以鍵-值(key-value)結構實現,例如雜湊表(hash table)、二元樹(binary tree)等方式實現,本發明不予以為限。在本文中,第一鍵值及下述的第二鍵值及第三鍵值指的是鍵-值結構中的「鍵(key)」,而寫入資料、輸入位置資訊及輸出位置資訊可視為鍵-值結構中的「值(value)」。
為便於理解,以下是以表格的方式示例性地表示第一資源位置結構。如下表1所示,假設代理模組106擷取到的寫入請求包括第一輸入位置資訊及第一輸出位置資訊,且寫入請求對應的鍵值為第一鍵值,則第一資源管理模組103可將第一輸入位置資訊填入「輸入位置資訊」的欄位,將第一輸出位置資訊填入「輸出位置資訊」的欄位,以及將第一鍵值填入「鍵值」的欄位。
表1
輸入位置資訊 | 輸出位置資訊 | 鍵值 |
第一輸入位置資訊 | 第一輸出位置資訊 | 第一鍵值 |
第一虛擬機器101內的客體(guest)作業系統會持續變更記憶體內容及第一硬碟105中的硬碟映像檔。因此,於步驟S209,第一主機10需暫停第一虛擬機器101的運作,以儲存在這個時間點的最終版本的記憶體內容、第一硬碟105中的硬碟映像檔及處理器狀態等。
在暫停第一虛擬機器101的運作後,第一資源管理模組103中的去重複子模組根據第一資源管理模組103中的第一資源位置結構以及第一鍵值與對應於前述輸入位置資訊的第二鍵值之間的比對結果產生第二資源位置結構。詳言之,第二鍵值是對第一資料暫存區104中的既存資料映射成固定大小的值,且第二鍵值可以是儲存在第一資料暫存區104中,其中既存資料的產生時間點晚於第一虛擬機器101輸出寫入請求的時間點。既存資料可以是第一主機10的第一資料同步模組102隨機或定期地壓縮對應輸入位置資訊的原始資料而產生,即既存資料可以是第一資料同步模組102壓縮前述來源記憶體位置的原始資料而產生。換言之,前述存入第一資料暫存區104後的記憶體變更內容可作為既存資料。
所述比較結果指示第一鍵值與第二鍵值彼此相同或不同。因此,於步驟S209,第一資源管理模組103中的去重複子模組基於比較結果及第一資源位置結構產生第二資源位置結構,並且可將第二資源位置結構存入第一資源管理模組103。換言之,第一主機10可將第一資源位置結構的至少一部分作為第二資源位置結構,且所述至少一部分包括第一鍵值、輸入位置資訊以及輸出位置資訊,透過步驟S209將第一資料暫存區104的資料去重複可節省網路頻寬、達到高即時性,提升至毫秒等級備援的同步效率。
於步驟S211,第一主機10的第一資料同步模組102根據第二資源位置結構輸出備援資料組至第二主機20的第二資料同步模組202,以供第二主機20產生第一虛擬機器101的副本及第一硬碟105的硬碟映像檔的副本,其中當第一鍵值與第二鍵值相同時,備援資料組包含第二資源位置結構以及既存資料與寫入資料中的僅一者。
具體地,請一併參考步驟S209及步驟S211,當比較結果指示第一鍵值與第二鍵值相同時,表示寫入資料與既存資料是重複的資料,第一資源管理模組103直接將第一資源位置結構作為第二資源位置結構,且備援資料組包含既存資料而不包含寫入資料。當比較結果指示第一鍵值與第二鍵值不同時,表示寫入資料與既存資料是不同的資料,第一資源管理模組103移除第一資源位置結構中的輸入位置資訊與輸出位置資訊的對應關係以產生第二資源位置結構。
因此,於步驟S211,第一資料同步模組102從第一資源管理模組103讀取第二資源位置結構,且若第一鍵值與第二鍵值相同時,第一資料同步模組102根據第二資源位置結構從第一資料暫存區104讀取既存資料。接著,第一資料同步模組102輸出備援資料組至第二資料同步模組202,而不輸出寫入資料,其中備援資料組包括第二資源位置結構及既存資料。換言之,當第一鍵值與第二鍵值相同時,則欲傳送的第二資源位置結構內記錄的是已先儲存過的資料的硬碟位址及記憶體位址,並略過重複的資料內容。
反之,當第一鍵值與第二鍵值不同時,第一資料同步模組102根據第二資源位置結構從第一資料暫存區104讀取既存資料及寫入資料,使備援資料組包括第二資源位置結構、既存資料及寫入資料,及輸出備援資料組至第二資料同步模組202。
簡言之,備援資料組可以包含第二資源位置結構、記憶體同步資料暫存區以及硬碟同步資料暫存區中沒有被第二資源位置結構記錄有對應關係的資料。
另外,步驟S209中所述的「暫停第一虛擬機器101的運作」可以是第一主機10以固定頻率(例如,每秒2次到每秒200次)暫停第一虛擬機器101的運作;第一主機10以固定時間間隔暫停第一虛擬機器101的運作;第一主機10在第一虛擬機器101處於閒置狀態的時間達預設時間時暫停第一虛擬機器101的運作;或是第一主機10接收使用者的指令而暫停第一虛擬機器101的運作。因此,在步驟S209之前,第一主機10可能已多次擷取及儲存寫入請求(例如,多次執行步驟S201、S203、S205及S207),故第一資源位置結構可以包括多個鍵值、輸入位置資訊及輸出位置資訊的多筆對應關係(例如,表1有多列的資料),其中所述多筆對應關係分別對應於多次寫入請求。因此,步驟S209所述的鍵值的比較可以對第一資源位置結構中的每筆對應關係執行。因記憶體變更內容皆由第一資料同步模組102進行儲存,代理模組106不涉及記憶體變更資料的儲存與鍵值計算,故在第一主機10暫停第一虛擬機器101的運作之前或第一主機10暫停第一虛擬機器101的運作時,第一主機10的第一資料同步模組102更會取得記憶體變更資料,並將記憶體變更資料存入記憶體同步資料暫存區,故此處存入記憶體同步資料暫存區的資料就是既存資料。
第二資料同步模組202在收到備援資料組後,可以將備援資料組的第二資源位置結構存入第二資源管理模組203,以及將備援資料組中的資料存入第二資料暫存區204。因此,第二資料同步模組202可以根據第二資源管理模組203中的第二資源位置結構以及第二資料暫存區204中的資料產生第一虛擬機器101的副本及第一硬碟105的硬碟映像檔的副本。
此外,在步驟S211之後,即在第一資料同步模組102輸出備援資料組至第二主機20後,第一資料同步模組102可通知第一資源管理模組103,以由第一資源管理模組103重置第二資源位置結構。換言之,在輸出備援資料組至第二主機20後,第一主機10可清除第二資源位置結構中的內容。
此外,同樣在步驟S211之後,第二主機20的第二資料同步模組202可發送確認(ACK)訊號至第一主機10的第一資料同步模組102。第一資料同步模組102在受確認訊號觸發後可運行第一虛擬機器101,以使第一主機10的第一虛擬機器101恢復運行。另外,第二主機20亦可以是在完成對備援資料組的解析,且判斷備援資料組中的第二資源位置結構及既存資料/寫入資料的格式符合系統(例如,第二主機20)的規範格式,以及判斷第二資料暫存區204中存在去重複的資料(即寫入資料)所對應的原始資料後,再發送確認訊號至第一主機10的第一資料同步模組102。
另需說明的是,第一資料同步模組102可以是依據資料的儲存位址順序輸出資料,即第一資料同步模組102依據儲存空間上的順序(如記憶體位置由低至高)輸出資料,而非時間上的順序。舉例而言,若第一虛擬機器101的既存資料比其在第一資源位置結構中對應的寫入資料還要早傳送,且該既存資料之第二鍵值尚未被機遇性地計算,或是此既存資料位於臨時清單,則第一資料同步模組102在傳送的同時會計算其第二鍵值,以供後續傳送該寫入資料時,比對寫入資料對應的第一鍵值與此既存資料對應的第二鍵值。
反之,若第一虛擬機器101的寫入資料比其在第一資源位置結構中對應的既存資料還要早傳送,若該既存資料沒有被機遇性地計算鍵值導致第二鍵值尚未被計算,則使得第一主機10需先計算第二鍵值後才能傳送,進而造成第一主機10的傳輸作業被迫暫停。因此,為了避免上述情況,第一資料同步模組102可將對應此寫入資料之既存資料加入臨時清單,延後此寫入資料的傳送,待該既存資料之第二鍵值計算完成可供比對後才繼續傳送此寫入資料。同時第一資料同步模組102則可以傳送其他寫入資料至第二資料同步模組202。
在圖2中,步驟S203係繪示為執行在步驟S205之前,但步驟S203亦可執行在步驟S205之後,或步驟S203可與步驟S205被同時執行。另外,步驟S209較佳係執行在步驟S207之後。
請接著一併參考圖1及圖3,其中圖3係依據本發明另一實施例所繪示的虛擬機器備援方法的流程圖。圖3所示的步驟S301、S303及S305可以是執行在圖2的步驟S209中,進一步而言是在步驟S209所述的暫停第一虛擬機器101的運作中。在第一主機10暫停第一虛擬機器101的運作時,第一主機10可以進一步執行:步驟S301:判斷第一資源位置結構中是否存在對應異動的分頁位置資訊;若步驟S301的判斷結果為「是」,執行步驟S303:計算對應分頁位置資訊的資料的第三鍵值以作為第二鍵值;以及若步驟S301的判斷結果為「否」,執行步驟S305:視為第一鍵值與第二鍵值比較結果相同。
於步驟S301,第一主機10的第一資源管理模組103判斷第一資源位置結構中是否存在對應異動的分頁位置資訊。具體而言,為了提升檔案存取的效率,作業系統可使用分頁快取的機制將第一硬碟105中的硬碟資料位址映射到第一虛擬機器101的對應輸入位置資訊的記憶體空間中。因此,第一硬碟105中的硬碟資料與部分的記憶體空間中的資料實際上相同。
當對應輸入位置資訊的記憶體空間中的原始資料被第一主機10的作業系統修改,且第一資源位置結構中存在此原始資料的輸入位置資訊、輸出位置資訊以及鍵值之間的對應關係時,第一資源位置結構中的輸入位置資訊便產生所述異動,而被修改的原始資料的記憶體位址即為對應異動的分頁位置資訊。需說明的是,第一資源位置結構中的異動可以文字、符號等標記的方式實現,本發明不予以限制。
若第一資源位置結構中存在對應異動的分頁位置資訊,則於步驟S303,第一主機10對異動的分頁位置資訊的原始資料、輸入位置資訊及輸出位置資訊映射成固定大小的值以取得第三鍵值,並以第三鍵值作為前述的第二鍵值。反之,若第一資源位置結構中不存在對應異動的分頁位置資訊,則於步驟S305,視為第一鍵值與第二鍵值比較結果相同,以產生圖2的步驟S209所述的第一鍵值與第二鍵值的比較結果。
另外,在判斷第一資源位置結構中是否存在對應異動的分頁位置資訊之前,第一主機10的代理模組106可先將第一虛擬機器101的分頁位置資訊作為輸入位置資訊。因此,代理模組106可依據分頁位置資訊查找第一虛擬機器101的記憶體,進而較快速地找出第一虛擬機器101的記憶體中與寫入資料相符的部分。
請接著一併參考圖1及圖4,其中圖4係依據本發明又一實施例所繪示的虛擬機器備援方法的流程圖。本實施例的虛擬機器備援方法除了圖2所示的步驟,更在第一資料同步模組102輸出備援資料組至第二資料同步模組202(圖2步驟S211)後,包含由第二主機20執行:步驟S401:判斷第二資源位置結構中具有對應關係的輸入位置資訊及輸出位置資訊;步驟S403:依據去重複資料產生還原資料,其中去重複資料為備援資料組中的既存資料或寫入資料;步驟S405:至少依據去重複資料及輸入位置資訊產生虛擬機器的副本;以及步驟S407:至少依據還原資料及輸出位置資訊產生硬碟映像檔的副本。
在接收備援資料組後,第二資料同步模組202解析備援資料組,將備援資料組中的第二資源位置結構存入第二資源管理模組203,以及根據備援資料組中的第二資源位置結構將既存資料/寫入資料存入第二資料暫存區204。因此,於步驟S401,第二資源管理模組203可判斷第二資源位置結構中具有對應關係的輸入位置資訊與輸出位置資訊,其中此對應關係代表第一鍵值與該第二鍵值相同。
在判斷具有對應關係的輸入位置資訊與輸出位置資訊後,於步驟S403,第二資料同步模組202複製去重複資料中的既存資料以產生還原資料。於步驟S405,第二資料同步模組202依據去重複資料中的既存資料及輸入位置資訊產生第一虛擬機器101的記憶體變更資料的副本,並將第一虛擬機器101的記憶體變更資料的副本寫入第二虛擬機器201的記憶體。於步驟S407,第二資料同步模組202依據還原資料及輸出位置資訊產生第一硬碟105的硬碟映像檔的變更資料的副本,並將第一硬碟105的硬碟映像檔的變更資料的副本寫入第二硬碟205。
簡言之,於步驟S403,第二資料同步模組202根據第二資源位置結構將既存資料還原成還原資料;於步驟S405,第二資料同步模組202至少依據既存資料及輸入位置資訊產生第一虛擬機器101的副本,並將第一虛擬機器101的副本寫入第二虛擬機器201的記憶體,以由第二虛擬機器201還原第一虛擬機器101的運作狀態;以及於步驟S407,第二資料同步模組202至少依據還原資料及輸出位置資訊產生第一硬碟105的硬碟映像檔的副本,並將第一硬碟105的硬碟映像檔的副本寫入第二硬碟205,以由第二硬碟205還原第一硬碟105的運作狀態。
進一步而言,當備援資料組包含未記錄於第二資源位置結構的對應關係中的其他資料(後稱剩餘資料)時,第二資料同步模組202所產生的副本更可以是依據剩餘資料。具體地,第二資料同步模組202可根據對應於記憶體同步資料暫存區的剩餘資料產生第一虛擬機器101的副本的一部分,且可根據對應於硬碟同步資料暫存區的剩餘資料產生第一硬碟105的硬碟映像檔的副本。
另外,第二主機20在收到備援資料組後,第二虛擬機器201可透過無回報的(gratuitous)位址解析協定(address resolution protocol,ARP)向第一主機10所連接的網路宣告第一虛擬機器101的新的位置(即第二虛擬機器201的位置),使連接於第一主機10的其他主機及/或網路設備的位址解析協定表格可以被更新,進而接續第一主機10的第一虛擬機器101的運作。
在圖4中,步驟S405係繪示為執行在步驟S407之前,但步驟S405亦可執行在步驟S407之後,或步驟S405可與步驟S407被同時執行。
在實際應用時,當第一虛擬機器101暫停運作並輸出備援資料組至第二主機20,但第二主機20未能接手第一主機10的網路連線時,第二主機20可先計時並判斷是否逾時(timeout)。當第二主機20判斷逾時的狀況發生時,第二主機20可基於第一虛擬機器101的副本接手第一虛擬機器101的運作,及基於第一硬碟105的硬碟映像檔的副本接手第一硬碟105的運作。
此外,第二主機20可對第一主機10在傳送備援資料組時的狀態進行檢查,以避免第一虛擬機器101及第二虛擬機器102同時運作而導致的核心分裂(或稱腦裂(split-brain))的狀況。舉例而言,第二主機20可對第一主機10傳送的連線進行活性(active)監測;第二主機20與第一主機10之間可有共享的暫時儲存空間,而第二主機20可檢測與第一主機10在此暫時儲存空間的溝通情況;或第二主機20可透過心跳(heartbeat)機制檢查與第一主機10之間的網路連線。
請參考下表2,其中表2示出了本案能夠提升同步效率及降低傳輸備援資料所需的網路頻寬的佐證資料,並以正在執行資料庫壓力測試(例如,TPC-C)的虛擬機器作為圖1所示的第一虛擬機器101,及將第一主機10暫停第一虛擬機器101的運作的固定時間間隔設定為60秒。
如表2所示,相較於先前技術,依據本案實施例的虛擬機器備援方法及系統,產生備援資料的平均時間降低了約75%,備援資料的平均大小降低了約89%。因此,從表2可知,依據本案實施例的虛擬機器備援方法及系統有效減少產生備援資料所需的時間,及有效減少傳輸備援資料組所需的頻寬。
表2
產生備援資料的平均時間(毫秒) | 備援資料的平均大小(MB) | |
先前技術 | 3403 | 2433 |
本案技術 | 825 | 269 |
綜上所述,依據本發明一或多個實施例所示的虛擬機器備援方法及系統,可以即時地擷取虛擬機器的運作資料,且透過對寫入資料進行去重複,可以降低傳輸備援資料組所需的網路頻寬及所需的時間,達到毫秒等級的備援。另外,透過擷取及暫存第一鍵值、輸入位置資訊及輸出位置資訊存入第一資源位置結構的機制,當後續第一主機需暫停第一虛擬機器的運作時,第一主機不需再次從第一硬碟的硬碟映像檔讀取資料,而是可使用第一資源位置結構及/或第一資料暫存區中的資料。因此,可以加速暫停第一虛擬機器以取得備援資料組的流程。依據本發明一或多個實施例所示的虛擬機器備援方法及系統可以適用於本地端機房或異地端機房的虛擬機器備援情境。此外,當異地端機房間是處於低頻寬環境下時,也可以有更佳的目標還原點(recovery point,RPO),以減少損失資料。此外,透過檢查第一主機在傳送備援資料組時的狀態,可避免核心分裂(或稱腦裂)的狀況。
雖然本發明以前述之實施例揭露如上,然其並非用以限定本發明。在不脫離本發明之精神和範圍內,所為之更動與潤飾,均屬本發明之專利保護範圍。關於本發明所界定之保護範圍請參考所附之申請專利範圍。
S201,S203,S205,S207,S209,S211,S301,S303,S305,S401,S403,S405,S407,S409:步驟
1:虛擬機器備援系統
10:第一主機
101:第一虛擬機器
102:第一資料同步模組
103:第一資源管理模組
104:第一資料暫存區
105:第一硬碟
106:代理模組
20:第二主機
201:第二虛擬機器
202:第二資料同步模組
203:第二資源管理模組
204:第二資料暫存區
205:第二硬碟
圖1係依據本發明一實施例所繪示的虛擬機器備援系統的方塊圖。
圖2係依據本發明一實施例所繪示的虛擬機器備援方法的流程圖。
圖3係依據本發明另一實施例所繪示的虛擬機器備援方法的流程圖。
圖4係依據本發明又一實施例所繪示的虛擬機器備援方法的流程圖。
S201,S203,S205,S207,S209,S211:步驟
Claims (18)
- 一種虛擬機器備援方法,包含以一第一主機執行: 擷取一虛擬機器對一硬碟映像檔的一寫入請求,其中該寫入請求包含一寫入資料、一輸入位置資訊及一輸出位置資訊;將該寫入資料複製到該第一主機的一資料暫存區;計算該寫入資料的一第一鍵值;將該第一鍵值、該輸入位置資訊及該輸出位置資訊存入一第一資源位置結構;暫停該虛擬機器的運作,並根據該第一資源位置結構及判斷該第一鍵值與對應於該輸入位置資訊的一第二鍵值的比較結果產生一第二資源位置結構,其中該第二鍵值對應於該資料暫存區中的一既存資料;以及根據該第二資源位置結構輸出一備援資料組至一第二主機,以供該第二主機產生該虛擬機器的副本及該硬碟映像檔的副本,其中當該第一鍵值與該第二鍵值相同時,該備援資料組包含該第二資源位置結構以及該既存資料與該寫入資料中的僅一者。
- 如請求項1所述的虛擬機器備援方法,更包含: 以該第一主機壓縮對應該輸入位置資訊的一原始資料以產生該既存資料。
- 如請求項1所述的虛擬機器備援方法,其中將該寫入資料複製到該第一主機的該資料暫存區包含: 以一稀疏檔案格式將該寫入請求存入該第一主機的該資料暫存區。
- 如請求項1所述的虛擬機器備援方法,其中在暫停該虛擬機器的該運作時,更包含: 判斷該第一資源位置結構中是否存在對應一異動的一分頁位置資訊;以及當該第一資源位置結構中存在對應該異動的該分頁位置資訊時,計算對應該分頁位置資訊的資料的一第三雜湊值以作為該第二鍵值。
- 如請求項4所述的虛擬機器備援方法,其中在判斷該第一資源位置結構中是否存在對應該異動的該分頁位置資訊之前,該方法包含: 將該虛擬機器的該分頁位置資訊作為該輸入位置資訊。
- 如請求項1所述的虛擬機器備援方法,其中該第一資源位置結構包含該輸入位置資訊與該輸出位置資訊之間的一對應關係,該方法更包含: 當該第一鍵值與該第二鍵值不同時,移除該資源位置結構中的該輸入位置資訊與該輸出位置資訊的該對應關係以產生該第二資源位置結構,其中該備援資料組包含該第二資源位置結構、該既存資料及該寫入資料。
- 如請求項1所述的虛擬機器備援方法,其中該虛擬機器係一第一虛擬機器,該資料暫存區係一第一資料暫存區,於輸出該備援資料組至該第二主機後,該方法更包含以該第二主機執行: 當該第二資源位置結構包含該輸入位置資訊及該輸出位置資訊之間的一對應關係時,依據一去重複資料產生一還原資料,其中該去重複資料為該備援資料組中的該既存資料或該寫入資料;至少依據該去重複資料及該輸入位置資訊產生該虛擬機器的該副本;以及至少依據該還原資料及該輸出位置資訊產生該硬碟映像檔的該副本。
- 如請求項1所述的虛擬機器備援方法,其中於輸出該備援資料組至該第二主機後,該方法更包含: 以該第一主機受該第二主機輸出的一確認訊號觸發而運行該虛擬機器。
- 如請求項1所述的虛擬機器備援方法,其中於輸出該備援資料組至該第二主機後,該方法更包含:重置該第二資源位置結構。
- 一種虛擬機器備援系統,包含: 一第一主機,包含一虛擬機器、一資料暫存區以及一硬碟映像檔,該虛擬機器連接於該資料暫存區,該第一主機用於輸出一備援資料組;以及一第二主機,連接於該第一主機,該第二主機用於接收該備援資料組,以及產生該虛擬機器的副本及該硬碟映像檔的副本, 其中該第一主機更用於執行:擷取該虛擬機器對該硬碟映像檔的一寫入請求,其中該寫入請求包含一寫入資料、一輸入位置資訊及一輸出位置資訊;將該寫入資料複製到該資料暫存區;計算該寫入資料的一第一鍵值;將該第一鍵值、該輸入位置資訊及該輸出位置資訊存入一第一資源位置結構;暫停該虛擬機器的運作,並根據該第一資源位置結構及判斷該第一鍵值與對應於該輸入位置資訊的一第二鍵值的比較結果產生一第二資源位置結構,其中該第二鍵值對應於該資料暫存區中的一既存資料;以及根據該第二資源位置結構輸出該備援資料組至該第二主機,以供該第二主機產生該虛擬機器的副本及該硬碟映像檔的副本,其中當該第一鍵值與該第二鍵值相同時,該備援資料組包含該第二資源位置結構以及該既存資料與該寫入資料中的僅一者。
- 如請求項10所述的虛擬機器備援系統,其中該第一主機更用於壓縮對應該輸入位置資訊的一原始資料以產生該既存資料。
- 如請求項10所述的虛擬機器備援系統,其中該第一主機將該寫入資料複製到該資料暫存區包含: 以一稀疏檔案格式將該寫入資料存入該資料暫存區。
- 如請求項10所述的虛擬機器備援系統,其中在暫停該虛擬機器的該運作時,該第一主機更用於執行: 判斷該第一資源位置結構中是否存在對應一異動的一分頁位置資訊;以及當該第一資源位置結構中存在對應該異動的該分頁位置資訊時,計算對應該分頁位置資訊的資料的一第三鍵值以作為該第二鍵值。
- 如請求項13所述的虛擬機器備援系統,其中在判斷該第一資源位置結構中是否存在對應該異動的該分頁位置資訊之前,該第一主機更用於將該虛擬機器的該分頁位置資訊作為該輸入位置資訊。
- 如請求項10所述的虛擬機器備援系統,其中該第一資源位置結構包含該輸入位置資訊與該輸出位置資訊之間的一對應關係,該第一主機更用於執行: 當該第一鍵值與該第二鍵值不同時,移除該第一資源位置結構中的該輸入位置資訊與該輸出位置資訊的該對應關係以產生該第二資源位置結構,其中該備援資料組包含該第二資源位置結構、該既存資料及該寫入資料。
- 如請求項10所述的虛擬機器備援系統,其中該虛擬機器係一第一虛擬機器,該資料暫存區係一第一資料暫存區,該第二主機於接收該備援資料組後,該第二主機更用於執行: 當該第二資源位置結構包含該輸入位置資訊及該輸出位置資訊之間的一對應關係時,依據一去重複資料產生一還原資料,其中該去重複資料為該備援資料組中的該既存資料或該寫入資料;至少依據該去重複資料及該輸入位置資訊產生該虛擬機器的該副本;以及至少依據該還原資料及該輸出位置資訊產生該硬碟映像檔的該副本。
- 如請求項10所述的虛擬機器備援系統,其中該第二主機於接收該備援資料組後,該第二主機更用於輸出一確認訊號至該第一主機,及該第一主機受該確認訊號觸發而運行該虛擬機器。
- 如請求項10所述的虛擬機器備援系統,其中該第一主機於輸出該備援資料組至該第二主機後,更重置該第二資源位置結構。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111141793A TWI826093B (zh) | 2022-11-02 | 2022-11-02 | 虛擬機器備援方法及系統 |
US18/197,582 US20240143455A1 (en) | 2022-11-02 | 2023-05-15 | Virtual machine backup system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111141793A TWI826093B (zh) | 2022-11-02 | 2022-11-02 | 虛擬機器備援方法及系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI826093B true TWI826093B (zh) | 2023-12-11 |
TW202420077A TW202420077A (zh) | 2024-05-16 |
Family
ID=90053165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111141793A TWI826093B (zh) | 2022-11-02 | 2022-11-02 | 虛擬機器備援方法及系統 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240143455A1 (zh) |
TW (1) | TWI826093B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201416881A (zh) * | 2013-12-09 | 2014-05-01 | Annethen Technology Co Ltd | 分散式記憶體磁碟群集儲存系統運作方法 |
TW201642620A (en) * | 2014-06-05 | 2016-12-01 | Cavium Inc | Systems and methods for secured backup of hardware security modules for cloud-based web services |
US9864656B1 (en) * | 2011-06-30 | 2018-01-09 | EMC IP Holding Company LLC | Key value databases for virtual backups |
CN109726042A (zh) * | 2017-10-27 | 2019-05-07 | 群晖科技股份有限公司 | 文件备份装置及方法 |
US10496838B1 (en) * | 2017-10-06 | 2019-12-03 | EMC IP Holding Company LLC | Security protection for virtual machine backups |
CN112540873A (zh) * | 2020-12-03 | 2021-03-23 | 华云数据控股集团有限公司 | 容灾方法、装置、电子设备及容灾系统 |
CN114579559A (zh) * | 2020-11-30 | 2022-06-03 | 华为云计算技术有限公司 | 数据同步方法及装置、计算机设备、存储介质 |
-
2022
- 2022-11-02 TW TW111141793A patent/TWI826093B/zh active
-
2023
- 2023-05-15 US US18/197,582 patent/US20240143455A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9864656B1 (en) * | 2011-06-30 | 2018-01-09 | EMC IP Holding Company LLC | Key value databases for virtual backups |
TW201416881A (zh) * | 2013-12-09 | 2014-05-01 | Annethen Technology Co Ltd | 分散式記憶體磁碟群集儲存系統運作方法 |
TW201642620A (en) * | 2014-06-05 | 2016-12-01 | Cavium Inc | Systems and methods for secured backup of hardware security modules for cloud-based web services |
US10496838B1 (en) * | 2017-10-06 | 2019-12-03 | EMC IP Holding Company LLC | Security protection for virtual machine backups |
CN109726042A (zh) * | 2017-10-27 | 2019-05-07 | 群晖科技股份有限公司 | 文件备份装置及方法 |
CN114579559A (zh) * | 2020-11-30 | 2022-06-03 | 华为云计算技术有限公司 | 数据同步方法及装置、计算机设备、存储介质 |
CN112540873A (zh) * | 2020-12-03 | 2021-03-23 | 华云数据控股集团有限公司 | 容灾方法、装置、电子设备及容灾系统 |
Also Published As
Publication number | Publication date |
---|---|
US20240143455A1 (en) | 2024-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200409738A1 (en) | Virtual machine backup from computing environment to storage environment | |
US10191677B1 (en) | Asynchronous splitting | |
US10467246B2 (en) | Content-based replication of data in scale out system | |
US8738813B1 (en) | Method and apparatus for round trip synchronous replication using SCSI reads | |
US9875042B1 (en) | Asynchronous replication | |
US8706694B2 (en) | Continuous data protection of files stored on a remote storage device | |
US8689047B2 (en) | Virtual disk replication using log files | |
US10140303B1 (en) | Application aware snapshots | |
US10002048B2 (en) | Point-in-time snap copy management in a deduplication environment | |
US10496487B1 (en) | Storing snapshot changes with snapshots | |
US20070055710A1 (en) | BLOCK SNAPSHOTS OVER iSCSI | |
US9639295B1 (en) | Method and apparatus for reducing splitter latency using parallel splitting | |
JP2005292952A (ja) | ストレージシステム、ストレージ装置及びリモートコピー方法 | |
US20110225382A1 (en) | Incremental replication using snapshots | |
US11240306B2 (en) | Scalable storage system | |
JP2016513306A (ja) | データ格納方法、データストレージ装置、及びストレージデバイス | |
CN111316251B (zh) | 可扩展存储系统 | |
US11614879B2 (en) | Technique for replicating oplog index among nodes of a cluster | |
WO2018076633A1 (zh) | 一种远程数据复制方法、存储设备及存储系统 | |
US11983438B2 (en) | Technique for improving operations log indexing | |
US20230350760A1 (en) | Physical size api for snapshots backed up to object store | |
EP3495939B1 (en) | Method and device for storing data in distributed block storage system, and computer readable storage medium | |
US20240061603A1 (en) | Co-located Journaling and Data Storage for Write Requests | |
TWI826093B (zh) | 虛擬機器備援方法及系統 | |
CN113544635A (zh) | 存储系统中数据处理方法、装置以及存储系统 |