TW201814520A - 運用於雲端服務之虛擬機之封包察覺式容錯方法及系統、電腦可讀取之記錄媒體及電腦程式產品 - Google Patents

運用於雲端服務之虛擬機之封包察覺式容錯方法及系統、電腦可讀取之記錄媒體及電腦程式產品 Download PDF

Info

Publication number
TW201814520A
TW201814520A TW105130142A TW105130142A TW201814520A TW 201814520 A TW201814520 A TW 201814520A TW 105130142 A TW105130142 A TW 105130142A TW 105130142 A TW105130142 A TW 105130142A TW 201814520 A TW201814520 A TW 201814520A
Authority
TW
Taiwan
Prior art keywords
main
backup
packet
virtual machine
check code
Prior art date
Application number
TW105130142A
Other languages
English (en)
Other versions
TWI592796B (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 TW105130142A priority Critical patent/TWI592796B/zh
Application granted granted Critical
Publication of TWI592796B publication Critical patent/TWI592796B/zh
Priority to US15/707,882 priority patent/US10402264B2/en
Publication of TW201814520A publication Critical patent/TW201814520A/zh

Links

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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2035Error 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 processing functionality is redundant without idle spare hardware
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2048Error 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 processing functionality is redundant where the redundant components share neither address space nor persistent storage
    • 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/2097Error 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 maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes

Abstract

一種運用於雲端服務之虛擬機之封包察覺式容錯方法,該方法包括下列步驟:由主要輸入處理單元接收上傳封包;由主要輸入處理單元將上傳封包複製給備援輸入處理單元;由主要執行單元運算上傳封包以產生主要輸出封包,並傳送於主要輸出處理單元,由備援執行單元運算上傳封包以產生備援輸出封包,並傳送於備援輸出處理單元;由主要容錯控制元件接收主要輸出處理單元傳送之主要輸出封包,且接收備援輸出處理單元傳送之備援輸出封包之備援封包檢查碼;以及由主要容錯控制元件比較主要輸出封包之主要封包檢查碼與備援封包檢查碼是否一致。

Description

運用於雲端服務之虛擬機之封包察覺式容錯方法及系統、電腦可讀取之記錄媒體及電腦程式產品
本發明有關於電腦之技術領域,特別有關於一種運用於雲端服務之虛擬機之封包察覺式容錯方法及系統、電腦可讀取之記錄媒體及電腦程式產品。
隨著虛擬化技術的廣泛應用,提供各式各樣網際網路服務虛擬機也被部署到雲端服務上。虛擬化技術的容錯服務在保護關鍵任務(mission-critical)的服務上扮演重要的角色,因為它可以在不被使用者察覺的情況下讓這些服務提供不間斷的運行。
虛擬化容錯技術主要基於虛擬機的備援,也就是說,用來備援的虛擬機執行在一台實體主機上,而用來執行關鍵任務服務的虛擬機則是在另外一台實體主機上執行,雙方透過連續檢查點(continuous checkpointing)的技術來維持不間斷的備份以進行復原的工作。
習知Kerami是架構在KVM(Kernel Virtual Machine)上虛擬機容錯開源(open source)專案,其透過分別至於兩台不同實體主機以採用連續檢查點技術的虛擬機持續性同步來達成零停機(Zero-Downtime)的容錯功能。
Kemari透過修改自QEMU-KVM Live Migration的架 構,不斷地把主要虛擬機上的記憶體狀態以及設備狀態傳送到備援虛擬機上,以達成同步的目的。Kemari透過不斷地從主要虛擬機把狀態同步到備援虛擬機上,當主要虛擬機發生錯誤時,備援虛擬機即可在偵測錯誤後接手繼續執行原來在主要虛擬機上的工作。
然而,採用連續檢查點方法之Kemari在從主要虛擬機把狀態同步到備援虛擬機時,會經常地停止主要虛擬機上的執行動作,而嚴重地影響主要虛擬機的效能。
有鑒於上述問題,本發明之目的係提供一種運用於雲端服務之虛擬機之封包察覺式容錯方法及系統、電腦可讀取之記錄媒體及電腦程式產品,其使用改良式的架構針對提供網路服務的雲端虛擬機的容錯作最佳化的設計,以封包比對的方式降低容錯系統同步機制時所需的計算資源,進而提升主要虛擬機的效能。
本發明之第一態樣提供一種運用於雲端服務之虛擬機之封包察覺式容錯方法,該方法應用於架構有一主要實體機器層、架構在該主要實體機器層上之一主要虛擬機管理系統層及一主要虛擬機層之一主要主機及架構有一備援實體機器層、架構在該備援實體機器層上之一備援虛擬機管理系統層及一備援虛擬機層之一備援主機,該方法包括下列步驟:由該主要虛擬機層之一主要輸入處理單元接收上傳至雲端服務之一上傳封包;由該主要輸入處理單元將該上傳封包複製給該備援虛擬機層之一備援輸入處理單元;由該主要虛擬機管理系統層之一主要執行單元運算在該主要輸入 處理單元中之該上傳封包以產生一主要輸出封包,並傳送於該主要虛擬機層之一主要輸出處理單元,由該備援虛擬機管理系統層之一備援執行單元運算在該備援輸入處理單元中之該上傳封包以產生一備援輸出封包,並傳送於該備援虛擬機層之一備援輸出處理單元;由該主要虛擬機層之一主要容錯控制元件接收該主要輸出處理單元傳送之該主要輸出封包,且接收該備援輸出處理單元傳送之該備援輸出封包之一備援封包檢查碼;以及由該主要容錯控制元件比較該主要輸出封包之一主要封包檢查碼與該備援封包檢查碼是否一致,以判斷該主要主機之虛擬機與該備援主機之虛擬機是否同步。
本發明之第二態樣提供一種運用於雲端服務之虛擬機之封包察覺式容錯系統,該系統包括:一主要主機,其包括:一主要實體機器層;一主要虛擬機管理系統層,架構在該主要實體機器層上,其包括:一主要執行單元,運算一上傳封包以產生一主要輸出封包;以及一主要虛擬機層,其包括:一主要輸入處理單元,接收上傳至雲端服務之該上傳封包,將該上傳封包傳送至該主要執行單元;一主要輸出處理單元,接收該主要執行單元傳送之該主要輸出封包;以及一主要容錯控制元件,接收一備援封包檢查碼及該主要輸出 處理單元傳送之該主要輸出封包,比較該主要輸出封包之一主要封包檢查碼與該備援封包檢查碼是否一致;以及一備援主機,其包括:一備援實體機器層;一備援虛擬機管理系統層,架構在該備援實體機器層上,其包括:一備援執行單元,運算該上傳封包以產生一備援輸出封包;以及一備援虛擬機層,其包括:一備援輸入處理單元,由該主要輸入處理單元複製該上傳封包至該備援輸入處理單元,將該上傳封包傳送至該備援執行單元;以及一備援輸出處理單元,接收該備援執行單元傳送之該備援輸出封包,傳送該備援輸出封包之該備援封包檢查碼至該主要容錯控制元件。
本發明之第三態樣提供一種內儲一程式之電腦可讀取之記錄媒體,當運用於雲端服務之虛擬機之一封包察覺式容錯系統於該電腦可讀取之記錄媒體載入該程式並執行後,可完成本發明第一態樣之方法。
本發明之第四態樣提供一種內儲一程式之電腦程式產品,當運用於雲端服務之虛擬機之一封包察覺式容錯系統於該電腦程式產品載入該程式並執行後,可完成本發明第一態樣之方法。
10‧‧‧封包察覺式容錯系統
12‧‧‧主要主機
14‧‧‧備援主機
16‧‧‧主要實體機器層
18‧‧‧主要虛擬機管理系統層
20‧‧‧主要虛擬機層
22‧‧‧備援實體機器層
24‧‧‧備援虛擬機管理系統層
26‧‧‧備援虛擬機層
28‧‧‧主要I/O裝置
30‧‧‧主要執行單元
32‧‧‧主要虛擬機狀態記憶體
34‧‧‧主要容錯控制元件
36‧‧‧主要輸入處理單元
38‧‧‧主要輸出處理單元
40‧‧‧主要狀態容錯元件
42‧‧‧備援I/O裝置
44‧‧‧備援執行單元
46‧‧‧備援虛擬機狀態記憶體
48‧‧‧備援容錯控制元件
50‧‧‧備援輸入處理單元
52‧‧‧備援輸出處理單元
54‧‧‧檢查點模組
56‧‧‧前次檢查點模組
圖1為本發明之運用於雲端服務之虛擬機之封包察覺式容錯系統之方塊圖;圖2為本發明之運用於雲端服務之虛擬機之封包察覺式容錯方法之流程圖;圖3為本發明與習知技術關於每分鐘操作量(Operations Per Minute)之比較圖式;以及圖4為本發明與習知技術關於響應時間(Response time)之比較圖式。
為使熟習本發明所屬技術領域之一般技藝者能更進一步了解本發明,下文特列舉本發明之較佳實施例,並配合所附圖式,詳細說明本發明的構成內容及所欲達成之功效。
圖1為本發明之運用於雲端服務之虛擬機之封包察覺式容錯系統之方塊圖。在圖1中,封包察覺式容錯系統10包括一主要主機12及一備援主機14。主要主機12包括一主要實體機器層16、一主要虛擬機管理系統層18及一主要虛擬機層20。例如為KVM(Kernel Virtual Machine)之主要虛擬機管理系統層18架構在主要實體機器層16上。備援主機14包括一備援實體機器層22、一備援虛擬機管理系統層24及一備援虛擬機層26。例如為KVM之備援虛擬機管理系統層24架構在備援實體機器層22上。
主要虛擬機管理系統層18包括一主要I/O裝置28、一主要執行單元30及一主要虛擬機狀態記憶體32。主要虛擬機層20包括一主要容錯控制元件34、一主要輸入處理單元36、一主要輸出處理單元38及一主要狀態容錯元件40。
備援虛擬機管理系統層24包括一備援I/O裝置42、一備援執行單元44及一備援虛擬機狀態記憶體46。備援虛擬機層26包括一備援容錯控制元件48、一備援輸入處理單元50、一備援輸出處理單元52、一檢查點模組54及一前次檢查點模組56。
由使用者之終端機(未圖示)上傳至雲端服務之一上傳封包先由主要實體機器層16的作業系統轉傳到主要虛擬機管理系統層18以周邊裝置驅動程式模擬之主要I/O裝置28。然後主要容錯控制元件34控制主要輸入處理單元36,而由主要輸入處理單元36接收主要I/O裝置28傳送之上傳封包。
當主要輸入處理單元36要將上傳封包複製到備援輸入處理單元50時,主要容錯控制單元34會停止用以模擬處理器之主要執行單元30進行運算,主要容錯控制單元34亦會通知備援容錯控制單元48,而由備援容錯控制單元48停止用以模擬處理器之備援執行單元44進行運算,之後主要容錯控制單元34控制主要輸入處理單元36將上傳封包複製到備援輸入處理單元50。
在主要輸入處理單元36將上傳封包複製到備援輸入處理單元50後,主要容錯控制單元34啟動主要執行單元30對主要輸入處理單元36中之上傳封包進行運算,其運算產生的一主要輸出封包傳送至主要輸出處理單元38中;而且主要容錯控制單元34通知備援容錯控制單元48進行封包之運算,使備援容錯控制單元48啟動備援執行單元44以對備援輸入處理單元50中之上傳封包進行運算,其運算產生的一備援輸出封包傳送至備援輸出處理單元52中。
其中,主要執行單元30在執行運算時會對用作模擬記憶體之主要虛擬機狀態記憶體32進行資料的讀寫,以產生主要虛擬機 狀態記憶體32之髒分頁(Dirty Page)的資料,備援執行單元44在執行運算時會對用作模擬記憶體之備援虛擬機狀態記憶體46進行資料的讀寫,以產生備援虛擬機狀態記憶體46之髒分頁的資料。
當主要執行單元30產生主要輸出封包時,主要容錯控制元件34會停止主要執行單元30之運算,且主要容錯控制元件34要求備援容錯控制元件48停止備援執行單元44之運算,以進行主要主機12之虛擬機與備援主機14之虛擬機之同步。
主要輸出處理單元38將主要輸出封包暫存於主要容錯控制元件34中,備援輸出處理單元52將備援輸出封包之一備援封包檢查碼(Check Sum)傳送至主要容錯控制元件34中。
主要容錯控制元件34將主要輸出封包之主要封包檢查碼與備援封包檢查碼進行比較,判斷主要封包檢查碼與備援封包檢查碼是否一致。其中,主要容錯控制元件34在比較主要封包檢查碼與備援封包檢查碼不為一致的情況、在接收到沒有預期的備援封包檢查碼的情況、或者沒有接收到預期應有的備援封包檢查碼的情況下判斷主要主機12之虛擬機與備援主機14之虛擬機皆非同步。
當主要主機12之虛擬機與備援主機14之虛擬機為同步時,主要容錯控制元件34控制主要輸出處理單元38,由主要輸出處理單元38將主要輸出封包傳送到主要I/O裝置28,並由主要實體機器層16的作業系統將主要I/O裝置28中之主要輸出封包進行雲端服務之下載,以將主要輸出封包下載至使用者之終端機上。
主要容錯控制元件34發出一為同步結果給備援容錯控制元件48,備援輸出處理單元52(亦即備援主機14)不會進行任何備援輸出封包之輸出,備援容錯控制元件48控制檢查點模組54存取備援 虛擬機狀態記憶體46之資料(包含髒分頁之資料)以在前次檢查點模組56進行備份,該備份資料作為主要主機12之虛擬機與備援主機14之虛擬機此次同步之資料。
當主要主機12之虛擬機與備援主機14之虛擬機不為同步(即上述三種情況之一者時,主要容錯控制元件34控制主要狀態容錯元件40存取主要虛擬機狀態記憶體32中之髒分頁的資料作為一同步更新資料,並將同步更新資料傳送至檢查點模組54。
主要容錯控制元件34發出一不為同步結果給備援容錯控制元件48,以進行主要主機12之虛擬機與備援主機14之虛擬機之同步,備援容錯控制元件48控制檢查點模組54以將前次檢查點模組56中一前次同步資料與該同步更新資料進行整合,以成為一檢查點同步資料,接著檢查點模組54以該檢查點同步資料對前次檢查點模組56及備援虛擬機狀態記憶體46進行備份及更新,所備份及更新的資料作為主要主機12之虛擬機與備援主機14之虛擬機此次同步之資料。
當完成主要主機12之虛擬機與備援主機14之虛擬機之同步時,備援容錯控制元件48發出一同步結束信號給主要容錯控制元件34,使主要容錯控制元件34控制主要輸出處理單元38,由主要輸出處理單元38將主要輸出封包傳送到主要I/O裝置28,並由主要實體機器層16的作業系統將主要I/O裝置28中之主要輸出封包進行雲端服務之下載,以將主要輸出封包下載至使用者之終端機上。
圖2為本發明之運用於雲端服務之虛擬機之封包察覺式容錯方法之流程圖,在說明圖2之流程時同時參照圖1之元件符號說明。
在圖2中,由使用者之終端機(未圖示)上傳至雲端服務 之一上傳封包先由主要實體機器層16的作業系統轉傳到主要虛擬機管理系統層18之主要I/O裝置28。然後主要容錯控制元件34控制主要輸入處理單元36,而由主要輸入處理單元36接收主要I/O裝置28傳送之上傳封包(步驟S100)。
接著,由主要輸入處理單元36將上傳封包複製到備援輸入處理單元50,此時,主要容錯控制單元34會停止主要執行單元30進行運算,主要容錯控制單元34亦會通知備援容錯控制單元48,而由備援容錯控制單元48停止備援執行單元44進行運算,之後主要容錯控制單元34控制主要輸入處理單元36將上傳封包複製到備援輸入處理單元50(步驟S102)。
在主要輸入處理單元36將上傳封包複製到備援輸入處理單元50後,主要容錯控制單元34啟動主要執行單元30對主要輸入處理單元36中之上傳封包進行運算,其在執行運算時會對主要虛擬機狀態記憶體32進行資料的讀寫,以產生主要虛擬機狀態記憶體32之髒分頁的資料,且主要執行單元30所運算產生的一主要輸出封包傳送至主要輸出處理單元38中;主要容錯控制單元34通知備援容錯控制單元48進行封包之運算,使備援容錯控制單元48啟動備援執行單元44以對備援輸入處理單元50中之上傳封包進行運算,其在執行運算時會對備援虛擬機狀態記憶體46進行資料的讀寫,以產生備援虛擬機狀態記憶體46之髒分頁的資料,備援執行單元44所運算產生的一備援輸出封包傳送至備援輸出處理單元52中(步驟S104)。
當主要執行單元30產生主要輸出封包時,主要容錯控制元件34會停止主要執行單元30之運算,且主要容錯控制元件34要求備援容錯控制元件48停止備援執行單元44之運算,以進行主要主 機12之虛擬機與備援主機14之虛擬機之同步。
由主要輸出處理單元38將主要輸出封包暫存於主要容錯控制元件34中,備援輸出處理單元52將備援輸出封包之一備援封包檢查碼傳送至主要容錯控制元件34中(步驟S106)。
由主要容錯控制元件34將主要輸出封包之主要封包檢查碼與備援封包檢查碼進行比較,判斷主要封包檢查碼與備援封包檢查碼是否一致,亦即判斷主要主機12之虛擬機與備援主機14之虛擬機是否同步(步驟S108)。其中,由主要容錯控制元件34在比較主要封包檢查碼與備援封包檢查碼不為一致的情況、在接收到沒有預期的備援封包檢查碼的情況、或者沒有接收到預期應有的備援封包檢查碼的情況下判斷主要主機12之虛擬機與備援主機14之虛擬機皆非同步。
若主要主機12之虛擬機與備援主機14之虛擬機為同步,則主要容錯控制元件34控制主要輸出處理單元38,由主要輸出處理單元38將主要輸出封包傳送到主要I/O裝置28,並由主要實體機器層16的作業系統將主要I/O裝置28中之主要輸出封包進行雲端服務之下載,以將主要輸出封包下載至使用者之終端機上(步驟S110)。
由主要容錯控制元件34發出一為同步結果給備援容錯控制元件48,備援輸出處理單元52(亦即備援主機14)不會進行任何備援輸出封包之輸出,由備援容錯控制元件48控制檢查點模組54存取備援虛擬機狀態記憶體46之資料(包含髒分頁之資料)以在前次檢查點模組56進行備份,該備份資料作為主要主機12之虛擬機與備援主機14之虛擬機此次同步之資料。
若主要主機12之虛擬機與備援主機14之虛擬機不為同步(即上述三種情況之一者),則主要容錯控制元件34控制主要狀態容 錯元件40存取主要虛擬機狀態記憶體32中之髒分頁的資料作為一同步更新資料,並將同步更新資料傳送至檢查點模組54(步驟S112)。
由主要容錯控制元件34發出一不為同步結果給備援容錯控制元件48,以進行主要主機12之虛擬機與備援主機14之虛擬機之同步,備援容錯控制元件48控制檢查點模組54以將前次檢查點模組56中一前次同步資料與由主要狀態容錯元件40傳送之該同步更新資料進行整合,以成為一檢查點同步資料,接著由檢查點模組54以該檢查點同步資料對前次檢查點模組56及備援虛擬機狀態記憶體46進行備份及更新,所備份及更新的資料作為主要主機12之虛擬機與備援主機14之虛擬機此次同步之資料(步驟S114)。
當完成主要主機12之虛擬機與備援主機14之虛擬機之同步時,備援容錯控制元件48發出一同步結束信號給主要容錯控制元件34,以進行步驟S110之程序。
本發明採用運用於雲端服務之虛擬機之封包察覺式容錯系統及方法,以封包比對的方式降低虛擬機之容錯系統同步機制時所需的計算資源,如圖3為本發明與習知技術關於每分鐘操作量(Operations Per Minute,OPM)之比較圖式及圖4為本發明與習知技術關於響應時間(Response time)之比較圖式所示。其中,使用的實驗環境為兩台4核心的i7-3770 CPU的電腦,具有4GB的記憶體,500GB的硬碟以及1Gbps的網路介面,並採用DVD store benchmark之測試軟體進行測試,該測試軟體是由Dell所開發,其模擬一個DVD store網頁的流量,使用者可以進行註冊帳戶,搜尋DVD等動作在使用者設計好的database上,透過對於資料庫的交易請求以得到該資料庫系統的每分鐘操作量,響應時間等等的量化數據,在圖式中,Native是指在沒 有執行容錯的情況下之效能,M-FVTM表示本發明之效能,Kemari表示習知技術之效能。
在圖3中,Native的每分鐘操作量是1869.67,本發明之M-FVTM的每分鐘操作量是1018.62,習知Kemari的每分鐘操作量是150.8,可以發現本發明的每分鐘操作量高於Kemari的每分鐘操作量。在圖4中,Native的響應時間是509.44ms,本發明之M-FVTM的響應時間是820.32ms,習知Kemari的響應時間是6004.4ms,可以發現本發明的響應時間優於Kemari的響應時間。
本發明之上述運用於雲端服務之虛擬機之封包察覺式容錯方法可以一程式型態來完成,並可將該程式儲存於一電腦可讀取之記錄媒體,當運用於雲端服務之虛擬機之封包察覺式容錯系統於該電腦可讀取之記錄媒體載入該程式並執行後,便可完成如上述說明及圖式中所示之方法步驟。
同樣地,本發明之上述之方法可以一電腦程式產品來完成,當運用於雲端服務之虛擬機之封包察覺式容錯系統例如從網路下載該電腦程式產品並執行後,便可完成如上述說明及圖式中所示之方法步驟。
本發明係提供一種運用於雲端服務之虛擬機之封包察覺式容錯方法及系統、電腦可讀取之記錄媒體及電腦程式產品,其特點係使用改良式的架構針對提供網路服務的雲端虛擬機的容錯作最佳化的設計,以封包比對的方式降低容錯系統同步機制時所需的計算資源,進而提升主要虛擬機的效能。
雖然本發明已參照較佳具體例及舉例性附圖敘述如上,惟其應不被視為係限制性者。熟悉本技藝者對其形態及具體例之 內容做各種修改、省略及變化,均不離開本發明之申請專利範圍之所主張範圍。

Claims (8)

  1. 一種運用於雲端服務之虛擬機之封包察覺式容錯方法,該方法應用於架構有一主要實體機器層、架構在該主要實體機器層上之一主要虛擬機管理系統層及一主要虛擬機層之一主要主機及架構有一備援實體機器層、架構在該備援實體機器層上之一備援虛擬機管理系統層及一備援虛擬機層之一備援主機,該方法包括下列步驟:由該主要虛擬機層之一主要輸入處理單元接收上傳至雲端服務之一上傳封包;由該主要輸入處理單元將該上傳封包複製給該備援虛擬機層之一備援輸入處理單元;由該主要虛擬機管理系統層之一主要執行單元運算在該主要輸入處理單元中之該上傳封包以產生一主要輸出封包,並傳送於該主要虛擬機層之一主要輸出處理單元,由該備援虛擬機管理系統層之一備援執行單元運算在該備援輸入處理單元中之該上傳封包以產生一備援輸出封包,並傳送於該備援虛擬機層之一備援輸出處理單元;由該主要虛擬機層之一主要容錯控制元件接收該主要輸出處理單元傳送之該主要輸出封包,且接收該備援輸出處理單元傳送之該備援輸出封包之一備援封包檢查碼;以及由該主要容錯控制元件比較該主要輸出封包之一主要封包檢查碼與該備援封包檢查碼是否一致,以判斷該主要主機之虛擬機與該備援主機之虛擬機是否同步。
  2. 如請求項1之方法,其中,在由該主要容錯控制元件比較該主要輸出封包之該主要封包檢查碼與該備援封包檢查碼是否一致之步驟中,由該主要容錯控制元件在比較該主要封包檢查碼與該備援封包檢 查碼不為一致的情況、在接收到沒有預期的該備援封包檢查碼的情況、及在沒有接收到預期應有的該備援封包檢查碼的情況之任一情況判斷該主要主機之虛擬機與該備援主機之虛擬機皆非同步。
  3. 如請求項1之方法,其中,在由該主要容錯控制元件比較該主要輸出封包之該主要封包檢查碼與該備援封包檢查碼是否一致之步驟之後,包括以下步驟;若該主要封包檢查碼與該備援封包檢查碼一致,則由該主要輸出處理單元將該主要輸出封包進行雲端服務之下載;若該主要封包檢查碼與該備援封包檢查碼不一致,則由該主要虛擬機層之一主要狀態容錯元件存取該主要虛擬機層之一主要虛擬機狀態記憶體中之一髒分頁的資料作為一同步更新資料,並將該同步更新資料傳送至該備援虛擬機層之一檢查點模組,其中該髒分頁的資料係該主要執行單元對該主要虛擬機狀態記憶體進行讀寫的資料;由該檢查點模組將該備援虛擬機層之一前次檢查點模組中一前次同步資料與該同步更新資料進行整合,以成為一檢查點同步資料;由該檢查點模組以該檢查點同步資料對該前次檢查點模組及該備援虛擬機管理系統層之一備援虛擬機狀態記憶體進行更新;以及由該主要輸出處理單元將該主要輸出封包進行雲端服務之下載。
  4. 一種運用於雲端服務之虛擬機之封包察覺式容錯系統,該系統包括:一主要主機,其包括:一主要實體機器層;一主要虛擬機管理系統層,架構在該主要實體機器層上,其包括:一主要執行單元,運算一上傳封包以產生一主要輸出封包;以 及一主要虛擬機層,其包括:一主要輸入處理單元,接收上傳至雲端服務之該上傳封包,將該上傳封包傳送至該主要執行單元;一主要輸出處理單元,接收該主要執行單元傳送之該主要輸出封包;以及一主要容錯控制元件,接收一備援封包檢查碼及該主要輸出處理單元傳送之該主要輸出封包,比較該主要輸出封包之一主要封包檢查碼與該備援封包檢查碼是否一致;以及一備援主機,其包括:一備援實體機器層;一備援虛擬機管理系統層,架構在該備援實體機器層上,其包括:一備援執行單元,運算該上傳封包以產生一備援輸出封包;以及一備援虛擬機層,其包括:一備援輸入處理單元,由該主要輸入處理單元複製該上傳封包至該備援輸入處理單元,將該上傳封包傳送至該備援執行單元;以及一備援輸出處理單元,接收該備援執行單元傳送之該備援輸出封包,傳送該備援輸出封包之該備援封包檢查碼至該主要容錯控制元件。
  5. 如請求項4之系統,其中,該主要容錯控制元件在比較該主要封包檢查碼與該備援封包檢查碼不為一致的情況、在接收到沒有預期的該備援封包檢查碼的情況、及沒有接收到預期應有的該備援封包檢查碼的情況之任一情況判斷該主要主機之虛擬機與該備援主機之虛擬機 皆非同步。
  6. 如請求項4之系統,進一步包括:該主要輸出處理單元將該主要輸出封包進行雲端服務之下載;該主要虛擬機層之一主要狀態容錯元件,存取該主要虛擬機層之一主要虛擬機狀態記憶體中之一髒分頁的資料作為一同步更新資料,其中該髒分頁的資料係該主要執行單元對該主要虛擬機狀態記憶體進行讀寫的資料;該備援虛擬機層之一前次檢查點模組,備份有一前次同步資料;以及該備援虛擬機層之一檢查點模組,接收該主要狀態容錯元件傳送之該同步更新資料,將該前次檢查點模組中之該前次同步資料與該同步更新資料進行整合,以成為一檢查點同步資料,以該檢查點同步資料對該前次檢查點模組及該備援虛擬機管理系統層之一備援虛擬機狀態記憶體進行更新。
  7. 一種內儲一程式之電腦可讀取之記錄媒體,當運用於雲端服務之虛擬機之一封包察覺式容錯系統於該電腦可讀取之記錄媒體載入該程式並執行後,可完成請求項1至3中任一項之方法。
  8. 一種內儲一程式之電腦程式產品,當運用於雲端服務之虛擬機之一封包察覺式容錯系統於該電腦程式產品載入該程式並執行後,可完成請求項1至3中任一項之方法。
TW105130142A 2016-09-19 2016-09-19 運用於雲端服務之虛擬機之封包察覺式容錯方法及系統、電腦可讀取之記錄媒體及電腦程式產品 TWI592796B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW105130142A TWI592796B (zh) 2016-09-19 2016-09-19 運用於雲端服務之虛擬機之封包察覺式容錯方法及系統、電腦可讀取之記錄媒體及電腦程式產品
US15/707,882 US10402264B2 (en) 2016-09-19 2017-09-18 Packet-aware fault-tolerance method and system of virtual machines applied to cloud service, computer readable record medium and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW105130142A TWI592796B (zh) 2016-09-19 2016-09-19 運用於雲端服務之虛擬機之封包察覺式容錯方法及系統、電腦可讀取之記錄媒體及電腦程式產品

Publications (2)

Publication Number Publication Date
TWI592796B TWI592796B (zh) 2017-07-21
TW201814520A true TW201814520A (zh) 2018-04-16

Family

ID=60048392

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105130142A TWI592796B (zh) 2016-09-19 2016-09-19 運用於雲端服務之虛擬機之封包察覺式容錯方法及系統、電腦可讀取之記錄媒體及電腦程式產品

Country Status (2)

Country Link
US (1) US10402264B2 (zh)
TW (1) TWI592796B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10394641B2 (en) * 2017-04-10 2019-08-27 Arm Limited Apparatus and method for handling memory access operations
US10909002B2 (en) 2018-06-29 2021-02-02 Industrial Technology Research Institute Fault tolerance method and system for virtual machine group
TWI669605B (zh) * 2018-06-29 2019-08-21 財團法人工業技術研究院 虛擬機器群組的容錯方法及其容錯系統
US11068351B2 (en) * 2018-11-19 2021-07-20 International Business Machines Corporation Data consistency when switching from primary to backup data storage
US11416277B2 (en) * 2019-11-22 2022-08-16 Nutanix, Inc. Situation-aware virtual machine migration

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100403293C (zh) 2002-01-28 2008-07-16 特瑞帝德国际公司 用于阶层式服务和内容分布的网络系统方法和协定
CN101778091B (zh) 2009-01-08 2012-07-18 王垒 可扩充式安全服务器交替系统
TWI537828B (zh) 2010-12-21 2016-06-11 萬國商業機器公司 虛擬機管理的方法及其電腦系統之裝置和電腦程式
TWI535249B (zh) 2014-02-12 2016-05-21 D Link Corp Automate the way to extend the network cache system
TWI522804B (zh) * 2014-04-23 2016-02-21 威盛電子股份有限公司 快閃記憶體控制器以及資料儲存裝置以及快閃記憶體控制方法
US9626254B2 (en) * 2014-06-26 2017-04-18 Hewlett Packard Enterprise Development Lp Backup and non-staged recovery of virtual environment data

Also Published As

Publication number Publication date
TWI592796B (zh) 2017-07-21
US20180083729A1 (en) 2018-03-22
US10402264B2 (en) 2019-09-03

Similar Documents

Publication Publication Date Title
US11016857B2 (en) Microcheckpointing with service processor
US9823973B1 (en) Creating consistent snapshots in a virtualized environment
US9632881B1 (en) Replication of a virtual distributed volume
US9015121B1 (en) Unified virtual machine and data storage snapshots
US9471590B2 (en) Method and apparatus for replicating virtual machine images using deduplication metadata
US9189339B1 (en) Replication of a virtual distributed volume with virtual machine granualarity
JP4796398B2 (ja) メタデータの複製および復元のための方法、システム、および製品
US9037822B1 (en) Hierarchical volume tree
US8028192B1 (en) Method and system for rapid failback of a computer system in a disaster recovery environment
US7992031B2 (en) Automated disaster recovery planning
TW201814520A (zh) 運用於雲端服務之虛擬機之封包察覺式容錯方法及系統、電腦可讀取之記錄媒體及電腦程式產品
JP4791051B2 (ja) 任意数のバックアップ・コンポーネント用のシステム・アーキテクチャのための方法、システム、およびコンピュータ・プログラム
US9110693B1 (en) VM mobility over distance
US9569517B1 (en) Fault tolerant distributed key-value storage
US9652333B1 (en) Maintaining stored data consistency of a plurality of related virtual machines across a plurality of sites during migration
US20070234342A1 (en) System and method for relocating running applications to topologically remotely located computing systems
US20130091376A1 (en) Self-repairing database system
WO2010002408A1 (en) Verification of remote copies of data
CN106293998A (zh) 一种基于快照技术的系统备份方法
Hursey Coordinated checkpoint/restart process fault tolerance for MPI applications on HPC systems
US10970181B2 (en) Creating distributed storage during partitions
US11176003B2 (en) Restoration of data when point in time copy operations are performed during asynchronous copy
US9529679B2 (en) Volume snapshot in a shared environment
US10048890B1 (en) Synchronizing catalogs of virtual machine copies
CN110413370B (zh) 用于实现依赖原始设备映射盘的虚拟机的数据备份的方法和系统

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees