TW202234256A - 虛擬機器的備用方法與備用系統 - Google Patents

虛擬機器的備用方法與備用系統 Download PDF

Info

Publication number
TW202234256A
TW202234256A TW110106621A TW110106621A TW202234256A TW 202234256 A TW202234256 A TW 202234256A TW 110106621 A TW110106621 A TW 110106621A TW 110106621 A TW110106621 A TW 110106621A TW 202234256 A TW202234256 A TW 202234256A
Authority
TW
Taiwan
Prior art keywords
virtual machine
management module
data
memory
machine management
Prior art date
Application number
TW110106621A
Other languages
English (en)
Other versions
TWI763331B (zh
Inventor
蘇璟瑋
楊健宏
Original Assignee
威聯通科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 威聯通科技股份有限公司 filed Critical 威聯通科技股份有限公司
Priority to TW110106621A priority Critical patent/TWI763331B/zh
Priority to US17/227,403 priority patent/US11334450B1/en
Application granted granted Critical
Publication of TWI763331B publication Critical patent/TWI763331B/zh
Publication of TW202234256A publication Critical patent/TW202234256A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

一種虛擬機器的備用方法與備用系統。由第一虛擬機器管理模組複製第一虛擬機器的寫入IO請求的資料而產生複製資料,其中寫入IO請求用以請求對第一虛擬機器的磁碟進行資料寫入操作。由第一虛擬機器管理模組於第一虛擬機器運行時將複製資料傳輸至第二虛擬機器管理模組。由第二虛擬機器管理模組接收複製資料而依據複製資料對第二虛擬機器管理模組的第二虛擬機器的磁碟進行資料寫入操作。在第一虛擬機器暫停運行時,由第二虛擬機器管理模組對第二虛擬機器的磁碟進行快照操作而產生快照資料。

Description

虛擬機器的備用方法與備用系統
本發明是有關於一種資料備份技術,且特別是有關於一種虛擬機器的備用方法與備用系統。
近年來,隨著網際網路的快速發展,以及雲端運算的興起,許多企業對於資訊服務的需求也越來越高,因此,具有高運算能力的虛擬機器(Virtual Machine,VM)被廣泛使用於各種解決方案。每個虛擬機器都可運行獨立的作業系統和應用程式,且同一台實體機器(Physical machines,PM)上可同時執行多部虛擬機器。實體機器的硬體運算資源可由多部虛擬機器共享。
當實體機器發生故障或無法正常運作時,原本運行其上的虛擬機器將無法提供正常服務,進而導致用戶無法獲取虛擬機器提供的相關應用服務。因此,為了避免因實體機器故障導致虛擬機器停機或資料遺失所造成的重大損失,目前有一種應用主動待命(Active-Standby)架構的虛擬機器高可用性(High-Availability,HA)技術被提出來。高可用性叢集中的實體機器均會受到監控,如果實體機器發生故障而導致主動虛擬機器無法提供服務,待命虛擬機器將可在備用實體機器上被啟動來接續提供服務。可想而知,在此高可用性架構中,虛擬機器的備份動作是必須的,且虛擬機器的備份時機、備份頻率以及備份方式都會直接影響備份成效與備份所需的停機時間(downtime)。因此,如何設計出完善且符合需求的虛擬機器備份方法實為本領域技術人員關心的核心議題。
有鑑於此,本發明提出一種虛擬機器的備用方法與備用系統,其可提昇備份效率並縮短備份虛擬機器所需的停機時間。
本發明實施例提供一種虛擬機器的備用方法,其包括下列步驟。由第一虛擬機器管理模組複製第一虛擬機器的寫入IO請求的資料而產生複製資料,其中寫入IO請求用以請求對第一虛擬機器的磁碟進行資料寫入操作。由第一虛擬機器管理模組於第一虛擬機器運行時將複製資料傳輸至第二虛擬機器。由第二虛擬機器管理模組接收複製資料而依據複製資料對第二虛擬機器管理模組的第二虛擬機器的磁碟進行資料寫入操作。在第一虛擬機器暫停運行時,由第二虛擬機器管理模組對第二虛擬機器的磁碟進行快照操作而產生快照資料。
在本發明的一實施例中,上述的第一虛擬機器於檢查時間點(checkpoint)暫停運行,快照資料反映第一虛擬機器的磁碟於檢查時間點的狀態。
在本發明的一實施例中,上述的虛擬機器的備份方法更包括下列步驟。在第一虛擬機器暫停運行時,由第一虛擬機器管理模組將第一虛擬機器的第一記憶體的至少一經修改分頁(dirty pages)傳送至第二虛擬機器管理模組。由第二虛擬機器管理模組接收至少一經修改分頁而將至少一經修改分頁儲存至第二虛擬機器的第二記憶體中的備份暫存區域。在一實施例中,第二記憶體中的一部分區域劃分為備份暫存區域。
在本發明的一實施例中,在上述的由第二虛擬機器管理模組反應於接收至少一經修改分頁而將至少一經修改分頁儲存至第二虛擬機器的第二記憶體中的步驟之後,所述方法更包括下列步驟。在第一虛擬機器運行時,由第二虛擬機器依據至少一經修改分頁更新第二記憶體中的主要儲存區域。在一實施例中,第二記憶體中的另一部分區域劃分為主要儲存區域。
在本發明的一實施例中,上述的在第一虛擬機器暫停運行時,由第一虛擬機器管理模組將第一記憶體的至少一經修改分頁傳送至第二虛擬機器管理模組的步驟包括:反應於計時器的預設週期期滿,由第一虛擬機器於檢查時間點暫停運行;以及反應於計時器的預設週期期滿,由第一虛擬機器管理模組將第一記憶體的至少一經修改分頁傳送至第二虛擬機器管理模組。
在本發明的一實施例中,上述的在第一虛擬機器暫停運行時,由第一虛擬機器管理模組將第一記憶體的至少一經修改分頁傳送至第二虛擬機器管理模組的步驟包括:反應於第一記憶體的至少一經修改分頁累積至預設資料量,由第一虛擬機器於檢查時間點暫停運行;以及反應於第一記憶體的至少一經修改分頁累積至預設資料量,由第一虛擬機器管理模組將第一記憶體的至少一經修改分頁傳送至第二虛擬機器管理模組。
在本發明的一實施例中,上述的虛擬機器的備份方法更包括下列步驟。當第一虛擬機器故障時,由第二虛擬機器管理模組進行還原程序而使用快照資料對第二虛擬機器的磁碟進行回復(rollback)操作。
本發明實施例提供一種虛擬機器的備用系統,其包括第一計算機裝置與第二計算裝置。第一計算機裝置包含運行有第一虛擬機器的第一虛擬機器管理模組。第一虛擬機器管理模組複製第一虛擬機器的寫入IO請求的資料而產生複製資料,且寫入IO請求用以請求對第一虛擬機器的磁碟進行資料寫入操作。第二計算機裝置連接至第一計算機裝置且包含運行有第二虛擬機器的第二虛擬機器管理模組。第一虛擬機器管理模組於第一虛擬機器運行時將複製資料傳輸至第二虛擬機器管理模組,而第二虛擬機器管理模組接收複製資料而依據複製資料對第二虛擬機器的磁碟進行資料寫入操作。在第一虛擬機器操作暫停運行時,第二虛擬機器管理模組對第二虛擬機器的磁碟進行快照操作而產生快照資料。
基於上述,於本發明的實施例中,於第一虛擬機器運行的期間,第一虛擬機器的磁碟備份將持續性進行,使得第一虛擬機器的磁碟可同步到第二虛擬機器的磁碟。在第一虛擬機器於檢查時間點進入暫停運行狀態之後,第二虛擬機器管理模組可對第二虛擬機器的磁碟進行快照操作而產生對應至檢查時間點的快照資料。據此,無須於停機時間執行備份第一虛擬機器的磁碟所需的資料複製與資料傳輸,進而大幅縮短備份所需的停機時間。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
本發明的部份實施例接下來將會配合附圖來詳細描述,以下的描述所引用的元件符號,當不同附圖出現相同的元件符號將視為相同或相似的元件。這些實施例只是本發明的一部份,並未揭示所有本發明的可實施方式。更確切的說,這些實施例只是本發明的專利申請範圍中的系統與方法的範例。
圖1A是依照本發明一實施例的虛擬機器的備份系統的方塊圖。圖1B是依照本發明一實施例的虛擬機器的備份系統的示意圖。請合併參照圖1A與圖1B,虛擬機器的備份系統10包括第一計算機裝置110與第二計算機裝置120。第一計算機裝置110與第二計算機裝置120又稱為實體機器(Physical machines,PM),其可由伺服器電腦等各種實體電子設備來實施。
第一計算機裝置110包括處理器111、儲存裝置112,以及通訊介面113。第二計算機裝置120包括處理器121、儲存裝置122,以及通訊介面123。第一計算機裝置110與第二計算機裝置120可經由通訊介面113與通訊介面123而相連,並據以傳輸資料或進行通訊。
儲存裝置112、122用以儲存資料與供處理器111、121存取的程式碼(例如作業系統、應用程式、驅動程式)等等,其可由任意型式的非暫態性、揮發性、非揮發性的記憶體來實現。例如,儲存裝置112、122可以是任意型式的固定式或可移動式隨機存取記憶體(random access memory,RAM)、唯讀記憶體(read-only memory,ROM)、快閃記憶體(flash memory)、硬碟、固態硬碟、混合式硬碟或其組合,本揭露不在此設限。
處理器111、121分別用以控制第一計算機裝置110與第二計算機裝置120的運作,其可例如是中央處理單元(central processing unit,CPU)、應用處理器(application processor,AP),或是其他可程式化之一般用途或特殊用途的微處理器(microprocessor)、數位訊號處理器(digital signal processor,DSP)、或其他類似裝置、積體電路及其組合,本揭露不在此設限。
通訊介面113、123可以是支援各種無線以及有線通訊的傳輸介面,本揭露不在此設限。
第一計算機裝置110與第二計算機裝置120可分別地運行一個或多個虛擬機器。於圖1B的範例中,第一計算機裝置110包含運行有第一虛擬機器VM1的第一虛擬機器管理模組21,而第二計算機裝置120包含運行有第二虛擬機器VM2的第二虛擬機器管理模組22。必須了解的是,本範例以兩個計算機裝置與兩個虛擬機器為例進行說明,但本揭露並不限於此。第一虛擬機器管理模組21與第二虛擬機器管理模組22可分別由第一計算機裝置110與第二計算機裝置120的軟體元件與硬體元件的組合實作而得。
第一虛擬機器管理模組21包括第一虛擬機器VM1與第一虛擬機器管理邏輯H1。第二虛擬機器管理模組22包括第二虛擬機器VM2與第二虛擬機器管理邏輯H2。詳細而言,運行於第一計算機裝置110上的一或多個虛擬機器可共享第一計算機裝置110提供的實體運算資源,像是處理器111的計算資源與儲存裝置112的儲存資源。第一計算機裝置110所執行的第一虛擬機器管理邏輯H1負責將實體運算資源配置給每個虛擬機器,從而將虛擬機器的作業系統與硬體分離。亦即,第一虛擬機器管理邏輯H1例如可實施為虛擬機器管理程式(Hypervisor)或虛擬機器監控程序(Virtual Machine Monitor,VMM)。基於相似原理,透過第二虛擬機器管理邏輯H2配置實體運算資源,運行於第二計算機裝置120上的一或多個虛擬機器可共享第二計算機裝置120提供的實體運算資源。基此,如圖1B所示,第一虛擬機器VM1可包括第一記憶體M1以及磁碟D1,並獨立執行有自己的作業系統。相似的,第二虛擬機器VM2可包括第二記憶體M2以及磁碟D2,並獨立執行有自己的作業系統。
需特別說明的是,於一些實施例中,於虛擬機器高可用性技術的主動待命(Active-Standby)架構中,第一虛擬機器VM1可稱為主要虛擬機器(Primary virtual machine,PVM),而第二虛擬機器VM2可稱為待命虛擬機器(Standby virtual machine,SVM)。亦即,第二虛擬機器VM2是第一虛擬機器VM1無法正常提供服務時的備用虛擬機器。可想而知,為了讓第二虛擬機器VM2可替代第一虛擬機器VM1而接續提供服務給使用者,將第一虛擬機器VM1的系統執行狀態與儲存資料備份至第二虛擬主機VM2是必須的。
圖2是依照本發明一實施例的虛擬機器的備份方法的流程圖。請參照圖2,本實施例的方式適用於上述實施例中的備份系統10,以下即搭配備份系統10中的各項元件說明本實施例的詳細步驟。於步驟S201,由第一虛擬機器管理模組21複製第一虛擬機器VM1的寫入IO請求的資料而產生複製資料。其中,寫入IO請求用以請求對第一虛擬機器VM1的磁碟D1進行資料寫入操作,其可包括直接IO(Direct IO)請求或緩存IO(Buffer IO)請求。詳細而言,當第一虛擬機器VM1的應用程式或作業系統發出用以將資料寫入磁碟D1的寫入IO請求時,第一虛擬機器管理模組21可依據這些寫入IO請求而對磁碟D1進行資料寫入操作,並且第一虛擬機器管理模組21可複製這些寫入IO請求的資料而產生複製資料。此複製資料可包括寫入IO請求中的寫入資料與寫入位址。
於步驟S202,由第一虛擬機器管理模組21於第一虛擬機器VM1運行時將複製資料傳輸至第二虛擬機器管理模組22。換言之,第一虛擬機器管理模組21可於第一虛擬機器VM1正常運行的期間持續地複製寫入IO請求的資料並將複製資料傳送至第二虛擬機器管理模組22。於步驟S203,由第二虛擬機器管理模組22接收複製資料而依據複製資料對第二虛擬機器管理模組22的第二虛擬機器VM2的磁碟D2進行資料寫入操作。由此可知,於第一虛擬機器VM1操作於正常運行狀態的期間,第一虛擬機器VM1的磁碟D1所儲存的資料可同步複製至第二虛擬機器VM2的磁碟D2。
接著,於步驟S204,在第一虛擬機器VM1暫停運行時,由第二虛擬機器管理模組22對第二虛擬機器VM2的磁碟D2進行快照操作而產生關聯於磁碟D2的快照資料。在第一虛擬機器VM1暫停運行的期間,第一虛擬機器VM1的應用程式或作業系統不會發出請求寫入資料的寫入IO請求,因而此關聯於磁碟D2的快照資料可視為於特定時間點上磁碟D1的備份資料。其中,第一虛擬機器VM1於上述特定時間點自運行狀態切換為暫停運行狀態,於後續實施例中此特定時間點可稱之為檢查時間點。
據此,透過運行中第一虛擬機器VM1的磁碟D1所儲存的資料可同步複製至第二虛擬機器VM2的磁碟D2並對第二虛擬機器VM2的磁碟D2進行快照操作,第一虛擬機器VM1的磁碟D1於特定時間點上的儲存資料可成功地被備份,且第一虛擬機器VM1無須長時間暫停運行來將磁碟D1的資料複製備份至磁碟D2。於是,於一些實施例中,當第一虛擬機器VM1故障時,第二虛擬機器管理模組22可進行還原程序而使用快照資料對第二虛擬機器VM2的磁碟D2進行一回復(rollback)操作。
圖3是依照本發明一實施例的虛擬機器的備份方法的示意圖。請參照圖3,第一虛擬機器管理模組21的第一虛擬機器VM1可發出用以請求對磁碟D1進行資料寫入操作的寫入IO請求32、33。於本範例中,寫入IO請求32為直接IO請求,因此第一虛擬機器VM1可直接將寫入IO請求32提供給第一虛擬機器管理模組21的複製模組34。於一些實施例中,複製模組34可由驅動程式來實現。之後,磁碟D1將依據寫入IO請求32進行資料寫入操作,且複製模組34可複製寫入IO請求32的資料而產生複製資料。此複製資料可透過Linux系統的網路塊裝置(Network Block Device,NBD)技術而傳遞至第二虛擬機器VM2的磁碟D2。更詳細而言,透過於第一虛擬機器管理模組21佈署nbd客戶端(nbd-client)35以及於第二虛擬機器管理模組22佈署nbd服務器端(nbd-server)36,第一虛擬機器管理模組21可透過TCP/IP網路而將複製資料傳遞至第二虛擬機器管理模組22,以使複製資料可隨後寫入第二虛擬機器VM2的磁碟D2。
另一方面,於本範例中,寫入IO請求33為緩衝IO請求,資料將先寫入第一記憶體M1的頁快取(page cache)中。之後,頁快取裡的資料將在特定時候再一併被寫入(flush)到磁碟D1,與此同時,複製模組34可據以複製寫入IO請求33的資料而產生複製資料。類似的,此複製資料可透過nbd客戶端35與nbd服務器端36而傳遞至第二虛擬機器管理模組22,以使複製資料可隨後寫入第二虛擬機器VM2的磁碟D2。
基此,第一虛擬機器管理模組21可於第一虛擬機器VM1運行的情況下持續地將寫入磁碟D1的資料同步至磁碟D2。當第一虛擬機器VM1於檢查時間點暫停運行,第二虛擬機器管理模組22可對磁碟D2進行快照操作而獲取快照資料37。
另外需說明的是,於一些實施例中,除了備份第一虛擬機器VM1的磁碟D1的資料之外,第一記憶體M1的記錄資料也需要被備份至第二記憶體M2,以將第一虛擬機器VM1的系統執行狀態與記憶體狀態備份至第二虛擬機器VM2。如圖3所示,於第一虛擬機器VM1暫停運行時,第一虛擬機器管理模組21可將第一記憶體M1的經修改分頁傳送給第二虛擬機器管理模組22,第二虛擬機器管理模組22先將這些經修改分頁記錄於第二記憶體M2的一備份暫存區域中。此備份暫存區域專門用來記錄來自第一虛擬機器VM1的經修改分頁。待完成這些經修改分頁的傳輸與儲存之後,第一虛擬機器VM1便可切換回運行狀態。之後,第二虛擬機器管理模組22可利用備份暫存區域中的經修改分頁來更新第二記憶體M2之主要儲存區域的記憶體狀態,使第一記憶體M1於檢查時間點時的記憶體狀態可備份至第二記憶體M2的主要儲存區域。後續實施例將有進一步說明。
圖4是依照本發明一實施例的虛擬機器的備份方法的流程圖。請參照圖4,本實施例的方式適用於上述實施例中的備份系統10,以下即搭配備份系統10中的各項元件說明本實施例的詳細步驟。於步驟S401,由第一虛擬機器管理模組21複製第一虛擬機器VM1的寫入IO請求的資料而產生複製資料。於步驟S402,由第一虛擬機器管理模組21於第一虛擬機器VM1運行時將複製資料傳輸至第二虛擬機器管理模組22。於步驟S403,由第二虛擬機器管理模組22接收複製資料而依據複製資料對第二虛擬機器VM2的磁碟D2進行資料寫入操作。步驟S401~步驟S403的操作詳細內容可由前述實施例得知,於此不再贅述。
於步驟S404,第一虛擬機器VM1於檢查時間點暫停運行。當第一虛擬機器VM1於停機時間(downtime)操作於暫停運行狀態的期間,第一虛擬機器VM1停止提供服務給使用者,不會有任何資料寫入第一記憶體M1與磁碟D1。
於步驟S405,在第一虛擬機器操作於暫停運行時,由第二虛擬機器管理模組22對第二虛擬機器VM2的磁碟D2進行快照操作而產生關聯於第二虛擬機器VM2的磁碟D2的快照資料。步驟S405的操作詳細內容可由前述實施例得知,於此不再贅述。可知的,第一虛擬機器VM1於檢查時間點(checkpoint)進入暫停運行狀態,而關聯於磁碟D2的快照資料反映磁碟D1於檢查時間點的狀態。
於步驟S406,在第一虛擬機器VM1暫停運行時,由第一虛擬機器管理模組21將第一記憶體M1的至少一經修改分頁傳送至第二虛擬機器管理模組22。詳細而言,第一虛擬機器管理模組21可收集在上一個檢查時間點之後有被更新的經修改分頁,並將所收集的經修改分頁傳送至第二虛擬機器管理模組22。
於步驟S407,由第二虛擬機器管理模組22接收至少一經修改分頁而至少一經修改分頁儲存至第二虛擬機器VM2的第二記憶體M2中。具體而言,第二虛擬機器VM2會先將這些經修改分頁記錄於第二記憶體M2中的備份暫存區域中。此備份暫存區域專門用來暫存來自第一虛擬機器VM1的經修改分頁。
於步驟S408,第一虛擬機器VM1切換至正常運行狀態。可知的,在第一虛擬機器VM1暫停運行時,第一記憶體M1的經修改分頁可備份至第二記憶體M2且第二虛擬機器管理模組22會完成磁碟D2的磁碟快照。需說明的是,第一虛擬機器VM1暫停運行的時間長度是依據經修改分頁的資料量而決定。經修改分頁的資料量越多,需要花費較多停機時間來傳送經修改分頁。經修改分頁的資料量越少,需要花費較少停機時間來傳送經修改分頁。
接著,於步驟S409,在第一虛擬機器VM1操作於運行狀態的期間,由第二虛擬機器管理模組22依據至少一經修改分頁更新第二記憶體M2。具體而言,第二虛擬機器管理模組22可依據備份暫存區域中的經修改分頁來更新第二記憶體M2之主要儲存區域的記憶體狀態,使第二記憶體M2的主要儲存區域的資料儲存狀態可相同於第一記憶體M1於檢查時間點時的資料儲存狀態。基於圖4的實施例可知,磁碟D1的備份操作與第一記憶體M1的備份操作是以分開處理的,而第一虛擬機器VM1僅需要較短的停機時間來完成記憶體備份。
圖5A與圖5B是依照本發明一實施例的備份虛擬機器的三個階段的示意圖。請先合併參照圖5A與圖5B,於一些實施例中,虛擬機器的備份週期可分成三個階段,其分別為複製階段(Replication stage)S1、遷移階段(Migration stage)S2,以及快照階段(Snapshot stage)S3。於複製階段S1,第一虛擬機器VM1運行。於遷移階段S2與快照階段S3,第一虛擬機器VM1暫停運行。表1顯示出一實施例中第一虛擬機器VM1與第二虛擬機器VM2各自分別於三個階段的運作狀態與第一虛擬機器管理模組21與第二虛擬機器管理模組22所執行的操作。 表1
  第一虛擬機器的運作狀態 第一虛擬機器管理模組執行操作 第二虛擬機的運作狀態 第二虛擬機器管理模組執行操作
複製階段 運行 複製寫入IO請求的資料並傳輸複製資料 暫停運行 (1)接收複製資料並對第二虛擬機器的磁碟進行資料寫入操作 (2)依據經修改分頁更新第二記憶體
遷移階段 暫停運行 傳送經修改分頁 暫停運行 接收與儲存經修改分頁
快照階段 暫停運行   暫停運行 進行快照操作
於圖5A的範例中,第一虛擬機器VM1於檢查時間點C1從複製階段S1進入遷移階段S2。在第一虛擬機器管理模組21與第二虛擬機器管理模組22完成遷移階段S2所需執行的相關操作後,第二虛擬機器管理模組22再進入快照階段S3而對磁碟D2進行快照操作。或者,於圖5B的範例中,第一虛擬機器VM1於檢查時間點C1從複製階段S1進入快照階段S3。在第二虛擬機器管理模組22完成快照階段S3所需執行的相關操作後,在第一虛擬機器管理模組21與第二虛擬機器管理模組22再進入遷移階段而進行備份記憶體的相關操作。亦即,本發明對於遷移階段S2與快照階段S3的先後順序並不加以限制,其可視實際應用而決定。參照圖5A與圖5B可知,於快照階段S3產生的快照資料可用以將磁碟D2還原至磁碟D1於檢查時間點C1的狀態。於遷移階段S2傳遞的經修改分頁可用以將第二記憶體M2還原至第一記憶體M1於檢查時間點C1的狀態。
值得一提的是,於一些實施例中,複製階段S1的時間長度可為固定值。或者,於一些實施例中,複製階段S1的時間長度可為變動值,其是依據第一虛擬機器管理模組21所收集的經修改分頁的資料量而動態決定。換言之,於一些實施例中,檢查時間點可週期性設置。於一些實施例中,檢查時間點可依據第一記憶體M1之寫入資料的累積資料量而設置。
於一些實施例中,反應於計時器的預設週期期滿,由第一虛擬機器VM1於檢查時間點暫停運行。反應於計時器的預設週期期滿,由第一虛擬機器管理模組21將第一記憶體M1的至少一經修改分頁傳送至第二虛擬機器管理模組22。換言之,第一虛擬機器VM1可每隔一預設週期就進入暫停運行狀態,而預設週期的時間長度為第一虛擬機器VM1操作於運行狀態的時間長度。預設週期的時間長度可視實際需求而設置,本揭露對此不限制。
於一些實施例中,反應於第一記憶體M1的至少一經修改分頁累積至預設資料量,由第一虛擬機VM1器於一檢查時間點暫停運行。反應於第一記憶體M1的至少一經修改分頁累積至預設資料量,由第一虛擬機器管理模組21將第一記憶體M1的至少一經修改分頁傳送至第二虛擬機器管理模組22。預設資料量可視實際需求而設置,本揭露對此不限制。換言之,當第一記憶體M1頻繁地執行資料寫入操作時,為了避免經修改分頁的傳輸時間太長,檢查時間點是反應於第一記憶體M1的至少一經修改分頁累積至預設資料量而設置。舉例而言,當第一記憶體M1的至少一經修改分頁累積至2GB時,第一虛擬機器VM1於檢查時間點進入暫停運行狀態。
此外,於一些實施例中,檢查時間點可於不同時段而分別依據至少一經修改分頁的累積資料量或計時器的預設週期而設置。具體而言,於IO負載量高的時段內,檢查時間點可依據至少一經修改分頁的累積資料量而設置。於IO負載量低的時段內,檢查時間點可依據計時器的預設週期而設置。或者,於一些實施例中,檢查時間點可同時依據至少一經修改分頁的累積資料量與計時器的預設週期而決定。圖6是依照本發明一實施例的決定檢查時間點的流程圖。請參照圖6,於步驟S601,第一虛擬機器VM1操作於運行狀態,即第一虛擬機器VM1的虛擬作業系統運行。於步驟S602,第一虛擬機器管理模組21判斷自前一檢查時間點開始累積的第一記憶體M1的經修改分頁是否累積至預設資料量。若步驟S602判斷為是,於步驟S604,第一虛擬機器VM1於當前的檢查時間點進入暫停運行狀態,即第一虛擬機器VM1的虛擬作業系統暫停運行。若步驟S602判斷為否,於步驟S603,第一虛擬機器管理模組21判斷計時器的預設週期是否期滿。若步驟S603判斷為是,於步驟S604,第一虛擬機器VM1於當前的檢查時間點進入暫停運行狀態。若步驟S603判斷為否,回到步驟S601,第一虛擬機器VM1操作於運行狀態。
圖7是依照本發明一實施例的第二虛擬機器進行還原程序的時序示意圖。請參照圖7,假設第一虛擬機器VM1於時間點T1故障而無法提供服務,第二虛擬機器管理模組22可執行還原程序(recovery process),使最近的檢查時間點C1上的磁碟D1與第一記憶體M1的儲存資料可還原至磁碟D2與第二記憶體M2內。更詳細而言,第二虛擬機器管理模組22可利用於遷移階段S2接收的經修改分頁來更新第二記憶體M2,第二虛擬機器管理模組22可利用快照階段S3產生的快照資料來對磁碟D2進行回復(rollback)操作。此回復操作之實施細節為本領域技術人員所知,故不在此重複贅述。接著,第二虛擬機器VM2的虛擬作業系統可啟動,以接替第一虛擬機器VM1提供服務給使用者,從而實現虛擬機器的高可用性。
綜上所述,於本發明實施例中,於備份虛擬機器的過程中,磁碟的備份操作與記憶體的備份操作分開處理。運行中的第一虛擬機器管理模組可將複製資料持續地傳送至第二虛擬機器管理模組,使第二虛擬機器管理模組可依據複製資料對第二虛擬機器的磁碟進行資料寫入操作。據此,磁碟的備份資料無須於停機時間進行傳輸,因此第一虛擬機器可於較短的停機時間內完成記憶體的備份操作。在停機時間可降低的情況下,單位時間內可容許更多的檢查時間點,從而漸少資料損失量。除此之外,由於檢查時間點可週期性設置或動態依據記憶體的資料寫入量而設置,因此檢查時間點的設置更為彈性且可因應不同IO負載的需求,從而提昇備份效能。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10:備份系統 110:第一計算機裝置 120:第二計算機裝置 112、122:儲存裝置 111、121:處理器 113、123:通訊介面 21:第一虛擬機器管理模組 22:第二虛擬機器管理模組 H1:第一虛擬機器管理邏輯 H2:第二虛擬機器管理邏輯 M1:第一記憶體 D1:磁碟 M2:第二記憶體 D2:磁碟 VM1:第一虛擬機器 VM2:第二虛擬機器 32、33:寫入IO請求 34:複製模組 35:nbd客戶端 36:nbd客戶端 37:快照資料 S1:複製階段 S2:遷移階段 S3:快照階段 C1:檢查時間點 T1:時間點 S201~S202、S401~S409、S601~S604:步驟
圖1A是依照本發明一實施例的虛擬機器的備份系統的方塊圖。 圖1B是依照本發明一實施例的虛擬機器的備份系統的示意圖。 圖2是依照本發明一實施例的虛擬機器的備份方法的流程圖。 圖3是依照本發明一實施例的虛擬機器的備份方法的示意圖。 圖4是依照本發明一實施例的虛擬機器的備份方法的流程圖。 圖5A與圖5B是依照本發明一實施例的備份虛擬機器的三個階段的示意圖。 圖6是依照本發明一實施例的決定檢查時間點的流程圖。 圖7是依照本發明一實施例的第二虛擬機器進行還原程序的示意圖。
S201~S204:步驟

Claims (14)

  1. 一種虛擬機器的備份方法,包括: 由一第一虛擬機器管理模組複製一第一虛擬機器的一寫入輸入輸出(Input/Output,IO)請求的資料而產生複製資料,其中該寫入IO請求用以請求對該第一虛擬機器的磁碟進行資料寫入操作; 由該第一虛擬機器管理模組於該第一虛擬機器運行時將該複製資料傳輸至一第二虛擬機器管理模組; 由該第二虛擬機器管理模組接收該複製資料而依據該複製資料對該第二虛擬機器管理模組的一第二虛擬機器的磁碟進行資料寫入操作;以及 在該第一虛擬機器暫停運行時,由該第二虛擬機器管理模組對該第二虛擬機器的磁碟進行一快照操作而產生一快照資料。
  2. 如請求項1所述的虛擬機器的備份方法,其中該第一虛擬機器於一檢查時間點(checkpoint)暫停運行,該快照資料反映該第一虛擬機器的磁碟於該檢查時間點的狀態。
  3. 如請求項1所述的虛擬機器的備份方法,其中該第一虛擬機器於一檢查時間點暫停運行,而所述方法更包括: 在該第一虛擬機器暫停運行時,由該第一虛擬機器管理模組將該第一虛擬機器的第一記憶體的至少一經修改分頁(dirty pages)傳送至該第二虛擬機器管理模組;以及 由該第二虛擬機器管理模組反應於接收該至少一經修改分頁而將該至少一經修改分頁儲存至該第二虛擬機器的第二記憶體中的備份暫存區域。
  4. 如請求項3所述的虛擬機器的備份方法,其中在由該第二虛擬機器管理模組反應於接收該至少一經修改分頁而將該至少一經修改分頁儲存至該第二虛擬機器的該第二記憶體中的備份暫存區域的步驟之後,所述方法更包括: 在該第一虛擬機器運行時,由該第二虛擬機器管理模組依據該至少一經修改分頁更新該第二記憶體中的主要儲存區域。
  5. 如請求項3所述的虛擬機器的備份方法,其中在該第一虛擬機器暫停運行時,由該第一虛擬機器管理模組將該第一記憶體的該至少一經修改分頁傳送至該第二虛擬機器管理模組的步驟包括: 反應於一計時器的一預設週期期滿,由該第一虛擬機器於一檢查時間點暫停運行;以及 反應於該計時器的該預設週期期滿,由該第一虛擬機器管理模組將該第一記憶體的該至少一經修改分頁傳送至該第二虛擬機器管理模組。
  6. 如請求項3所述的虛擬機器的備份方法,其中在該第一虛擬機器暫停運行時,由該第一虛擬機器管理模組將該第一記憶體的該至少一經修改分頁傳送至該第二虛擬機器管理模組的步驟包括: 反應於該第一記憶體的該至少一經修改分頁累積至預設資料量,由該第一虛擬機器於一檢查時間點暫停運行;以及 反應於該第一記憶體的該至少一經修改分頁累積至預設資料量,由該第一虛擬機器管理模組將該第一記憶體的該至少一經修改分頁傳送至該第二虛擬機器管理模組。
  7. 如請求項1所述的虛擬機器的備份方法,所述方法更包括: 當該第一虛擬機器故障時,由該第二虛擬機器管理模組使用該快照資料對該第二虛擬機器的磁碟進行一回復(rollback)操作。
  8. 一種虛擬機器的備份系統,包括: 一第一計算機裝置,包含運行第一虛擬機器的一第一虛擬機器管理模組,其中該第一虛擬機器管理模組複製該第一虛擬機器的的一寫入IO請求的資料而產生複製資料,且該寫入IO請求用以請求對該第一虛擬機器的磁碟進行資料寫入操作;以及 一第二計算機裝置,連接至該第一計算機裝置且包含運行有第二虛擬機器的一第二虛擬機器管理模組, 其中,該第一虛擬機器管理模組於該第一虛擬機器運行時將該複製資料傳輸至該第二虛擬機器管理模組,而該第二虛擬機器管理模組接收該複製資料而依據該複製資料對該第二虛擬機器的磁碟進行資料寫入操作, 其中,在該第一虛擬機器暫停運行時,該第二虛擬機器管理模組對該第二虛擬機器的磁碟進行一快照操作而產生快照資料。
  9. 如請求項8所述的虛擬機器的備份系統,其中該第一虛擬機器於一檢查時間點(checkpoint)暫停運行,該快照資料反映該第一虛擬機器的磁碟於該檢查時間點的狀態。
  10. 如請求項8所述的虛擬機器的備份系統,其中該第一虛擬機器於一檢查時間點暫停運行,在該第一虛擬機器暫停運行時,該第一虛擬機器管理模組將該第一虛擬機器的第一記憶體的至少一經修改分頁傳送至該第二虛擬機器管理模組,而該第二虛擬機器管理模組反應於接收該至少一經修改分頁而將該至少一經修改分頁儲存至該第二虛擬機器的第二記憶體中。
  11. 如請求項10所述的虛擬機器的備份系統,其中在該第一虛擬機器運行時,該第二虛擬機器管理模組依據該至少一經修改分頁更新該第二虛擬機器的該第二記憶體。
  12. 如請求項10所述的虛擬機器的備份系統,其中反應於一計時器的一預設週期期滿,該第一虛擬機器於一檢查時間點暫停運行;以及反應於該計時器的該預設週期期滿,該第一虛擬機器管理模組將該第一記憶體的該至少一經修改分頁傳送至該第二虛擬機器管理模組。
  13. 如請求項10所述的虛擬機器的備份系統,其中反應於該第一記憶體的該至少一經修改分頁累積至預設資料量,該第一虛擬機器於一檢查時間點暫停運行;以及反應於該第一記憶體的該至少一經修改分頁累積至預設資料量,該第一虛擬機器管理模組將該第一記憶體的該至少一經修改分頁傳送至該第二虛擬機器管理模組。
  14. 如請求項8所述的虛擬機器的備份系統,其中當該第一虛擬機器故障時,該第二虛擬機器管理模組使用該快照資料對該第二虛擬機器的磁碟進行一回復操作。
TW110106621A 2021-02-25 2021-02-25 虛擬機器的備用方法與備用系統 TWI763331B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW110106621A TWI763331B (zh) 2021-02-25 2021-02-25 虛擬機器的備用方法與備用系統
US17/227,403 US11334450B1 (en) 2021-02-25 2021-04-12 Backup method and backup system for virtual machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW110106621A TWI763331B (zh) 2021-02-25 2021-02-25 虛擬機器的備用方法與備用系統

Publications (2)

Publication Number Publication Date
TWI763331B TWI763331B (zh) 2022-05-01
TW202234256A true TW202234256A (zh) 2022-09-01

Family

ID=81588979

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110106621A TWI763331B (zh) 2021-02-25 2021-02-25 虛擬機器的備用方法與備用系統

Country Status (2)

Country Link
US (1) US11334450B1 (zh)
TW (1) TWI763331B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9189265B2 (en) * 2006-12-21 2015-11-17 Vmware, Inc. Storage architecture for virtual machines
JP5742410B2 (ja) 2011-04-11 2015-07-01 日本電気株式会社 フォールトトレラント計算機システム、フォールトトレラント計算機システムの制御方法、及びフォールトトレラント計算機システムの制御プログラム
TWI624757B (zh) * 2017-05-24 2018-05-21 財團法人工業技術研究院 資料處理方法、資料處理系統與電腦程式產品
TWI669605B (zh) * 2018-06-29 2019-08-21 財團法人工業技術研究院 虛擬機器群組的容錯方法及其容錯系統
US11099956B1 (en) * 2020-03-26 2021-08-24 Commvault Systems, Inc. Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations

Also Published As

Publication number Publication date
TWI763331B (zh) 2022-05-01
US11334450B1 (en) 2022-05-17

Similar Documents

Publication Publication Date Title
US10067837B1 (en) Continuous data protection with cloud resources
US20230254205A1 (en) Dynamic reconfiguration of resilient logical modules in a software defined server
US9529885B1 (en) Maintaining consistent point-in-time in asynchronous replication during virtual machine relocation
US9389976B2 (en) Distributed persistent memory using asynchronous streaming of log records
US7523344B2 (en) Method and apparatus for facilitating process migration
JP5742410B2 (ja) フォールトトレラント計算機システム、フォールトトレラント計算機システムの制御方法、及びフォールトトレラント計算機システムの制御プログラム
US8307363B2 (en) Virtual machine system, restarting method of virtual machine and system
WO2021129733A1 (zh) 云操作系统的管理方法、装置、服务器、管理系统及介质
US11550820B2 (en) System and method for partition-scoped snapshot creation in a distributed data computing environment
JP6123626B2 (ja) 処理再開方法、処理再開プログラムおよび情報処理システム
WO2016018262A1 (en) Storage transactions
US20210089379A1 (en) Computer system
US8639968B2 (en) Computing system reliability
WO2024051292A1 (zh) 数据处理系统、内存镜像方法、装置和计算设备
US10241874B2 (en) Checkpoint method for a highly available computer system
CN106775846B (zh) 用于物理服务器的在线迁移的方法及装置
AU2014314984B2 (en) Data processing method and device
US20230333945A1 (en) Scalable Low-Loss Disaster Recovery for Data Stores
TWI763331B (zh) 虛擬機器的備用方法與備用系統
US9952941B2 (en) Elastic virtual multipath resource access using sequestered partitions
US11238010B2 (en) Sand timer algorithm for tracking in-flight data storage requests for data replication
US11392423B2 (en) Method for running a quorum-based system by dynamically managing the quorum
US11010351B1 (en) File system replication between software defined network attached storage processes using file system snapshots
US11288004B1 (en) Consensus-based authority selection in replicated network-accessible block storage devices
US20240070035A1 (en) Information processing system and backup method