TWI624757B - 資料處理方法、資料處理系統與電腦程式產品 - Google Patents

資料處理方法、資料處理系統與電腦程式產品 Download PDF

Info

Publication number
TWI624757B
TWI624757B TW106117127A TW106117127A TWI624757B TW I624757 B TWI624757 B TW I624757B TW 106117127 A TW106117127 A TW 106117127A TW 106117127 A TW106117127 A TW 106117127A TW I624757 B TWI624757 B TW I624757B
Authority
TW
Taiwan
Prior art keywords
snapshot
data
time
virtual machine
update
Prior art date
Application number
TW106117127A
Other languages
English (en)
Other versions
TW201901425A (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 TW106117127A priority Critical patent/TWI624757B/zh
Priority to CN201710564886.6A priority patent/CN108958880B/zh
Priority to US15/660,957 priority patent/US10467106B2/en
Application granted granted Critical
Publication of TWI624757B publication Critical patent/TWI624757B/zh
Publication of TW201901425A publication Critical patent/TW201901425A/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/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/2038Error 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 with a single idle spare processing component
    • 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
    • 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
    • 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/1466Management of the backup or restore process to make the backup process non-disruptive
    • 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/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
    • 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
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一種資料處理方法、資料處理系統與電腦程式產品。資料處理方法包括:執行運行操作。資料處理方法也包括:在所述運行操作的期間中的預定時間點暫停所述運行操作,且根據在所述運行操作的期間中的所述預定時間點之前所收集的多個更新分頁的傳輸量計算剩餘處理時間。資料處理方法還包括:根據所述剩餘處理時間繼續執行所述運行操作、暫停所述運行操作與執行快照操作以產生對應的資料快照,以及執行傳輸操作以傳送所述資料快照。

Description

資料處理方法、資料處理系統與電腦程式產品
本揭露是有關於一種用於具有容錯機制之虛擬機器架構的伺服器資料處理方法,以及使用此方法的資料處理系統。另外亦有關於使用此方法的一種電腦程式產品。
近年來,隨著網際網路的快速發展,以及雲端運算的興起,對於資訊服務的需求也越來越高,因此,具有高運算能力的虛擬機器(Virtual Machine, VM)被廣泛使用於各種解決方案。例如,透過網際網路結合運行有虛擬機器之大量的伺服器以形成高速運算與具備大量儲存能力的整合式電腦被廣為使用。
為了避免因伺服器故障導致的停機或資料遺失所造成的重大損失,目前可透過虛擬機器容錯(Fault Tolerance, FT)機制,在正在提供服務之伺服器發生故障時,即時且無中斷地切換至另一台伺服器來提供服務。圖1繪示為虛擬機器容錯機制所造成之延遲時間的示意圖。請參照圖1,以伺服器的備份機制為例,具體而言,具有容錯機制之虛擬機器的資料處理週期(例如,備份週期)可分為四個階段:運行操作、快照操作、傳輸操作以及輸出操作,當在前三個階段的操作中接收到來自使用者的工作負載請求時,若有產生用以回應使用者的輸出時,則此些輸出會先被暫存於緩衝記憶體中,直到輸出操作的階段才會被一起輸出。也就是說,在虛擬機器容錯系統中,回應使用者之請求的所有輸出資訊必須在運行操作、快照操作與傳輸操作完成後才會被釋放且傳送給使用者,如此一來,便會造成工作負載的需求所對應的回應資訊在虛擬機器容錯系統中會產生額外的延遲時間。據此,在面對延遲敏感的工作負載需求(例如,線上遊戲、即時交易)時,便無法保證系統回應時間,甚至造成斷線或交易失敗。基此,需要發展一套可以在虛擬機器容錯系統中控制延遲時間的方法,才能滿足此類工作負載的需求。
本揭露實施例提供一種資料處理方法以及使用此方法的資料處理系統與電腦程式產品,其能夠有效地在具有容錯機制之虛擬機器架構中控制工作負載延遲時間。
本揭露的一範例實施例提出一種資料處理方法,本資料處理方法包括:執行運行操作;在所述運行操作的期間中的預定時間點暫停所述運行操作,且根據在所述運行操作的期間中的所述預定時間點之前所收集的多個更新分頁的傳輸量計算剩餘處理時間;根據所述剩餘處理時間繼續執行所述運行操作、暫停所述運行操作與執行快照操作以產生對應的資料快照;以及執行傳輸操作以傳送所述資料快照。
本揭露的一範例實施例提出一種資料處理系統,本資料處理系統包括:第一伺服器與第二伺服器。所述第一伺服器用以運行第一虛擬機器。所述第二伺服器,用以運行第二虛擬機器,所述第二伺服器透過匯流排耦接至所述第一伺服器。所述第一虛擬機器用以在所述運行操作的期間中的預定時間點暫停所述運行操作,且根據在所述運行操作的期間中的所述預定時間點之間所收集的多個更新分頁的傳輸量計算剩餘處理時間。再者,所述第一虛擬機器更用以根據所述剩餘處理時間繼續執行所述運行操作、暫停所述運行操作與執行快照操作以產生對應的資料快照。此外,所述第一虛擬機器更用以執行傳輸操作以傳送所述資料快照。
本揭露的一範例實施例提出一種具有至少一程式碼的電腦程式產品,當電子裝置載入所述至少一程式碼並執行後,可完成上述的資料處理方法。
基於上述,本揭露之範例實施例所提出的資料處理方法及使用此方法的資料處理系統與電腦程式產品能夠根據所收集的更新分頁的傳輸量來預估可繼續執行運行操作的剩餘處理時間,藉此動態地調整資料處理週期中運行操作的執行時間與決定運行操作之後的操作的啟動時間點,據此,可有效地控制虛擬機器之容錯機制所產生的延遲時間,使虛擬機器可在固定的延遲時間內回應。
為讓本揭露能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
為了能夠在具容錯機制的虛擬機器架構中控制工作負載的延遲時間,本揭露藉由預估剩餘處理時間,由此達到將延遲時間控制在所設定的延遲範圍內。
圖2A是根據一範例實施例所繪示之資料處理系統的架構圖,並且圖2B是根據一範例實施例所繪示之資料處理系統的方塊圖。必須了解的是,圖2A與圖2B的範例僅是為了方便說明,並不用以限制本揭露。
請參照圖2A與圖2B,資料處理系統100包括第一伺服器110以及第二伺服器120,第一伺服器110包括處理裝置112、緩衝記憶體114、通訊裝置116以及第一虛擬機器118,而第二伺服器120包括處理裝置122、緩衝記憶體124、通訊裝置126以及第二虛擬機器128。
處理裝置112耦接緩衝記憶體114及通訊裝置116,並且用以控制第一伺服器110的整體運作。例如,處理裝置112為中央處理單元(Central Processing Unit,CPU)。
緩衝記憶體114用以暫存處理裝置112所執行的指令或資料。例如,緩衝記憶體114可以是動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)或靜態隨機存取記憶體(Static Random Access Memory,SRAM)等。然而,必須瞭解的是,本揭露不限於此,緩衝記憶體114也可以是其他適合的記憶體。
通訊裝置116用以透過有線或無線的方式與外部的其他裝置建立網路連結。例如,第一伺服器110可透過通訊裝置116與第二伺服器120通訊。
類似地,處理裝置122、緩衝記憶體124與通訊裝置126分別相同或相似於上述處理裝置112、緩衝記憶體114與通訊裝置116,在此不再重述。
第一伺服器110與第二伺服器120可分別地運轉一個或多個虛擬機器以提供不同的服務。例如,第一虛擬機器118運行在第一伺服器110中,而第二虛擬機器128運行在第二伺服器120中。必須了解的是,本範例以兩個伺服器與兩個虛擬機器為例進行說明,但本揭露並不限於此。也就是說,資料處理系統100可包括兩個以上的伺服器,且每一伺服器可運行有一個或多個虛擬機器。例如,處理系統100更包括一第三伺服器,第三伺服器用以運行至少一虛擬機器(亦稱為第三虛擬機器)。
匯流排130用以提供伺服器傳輸資料之路徑,例如,第一伺服器110與第二伺服器120可透過匯流排130互相傳送需要處理或是需要存取的資料。在本範例實施例中,匯流排130是相容於高速周邊零件連接介面(Peripheral Component Interconnect Express, PCIe)標準。然而,必須瞭解的是,本揭露不限於此,匯流排130亦可以符合其他適合的標準。
具體而言,在伺服器之作業系統的運作中,是以分頁(page)來管理記憶體,當第一虛擬機器118需要修改某一筆記錄中的資料時,第一虛擬機器118會將此資料所在的分頁從硬碟讀到緩衝記憶體114中並修改此分頁中的記錄。此時,緩衝記憶體114中的分頁已與硬碟中所對應的分頁不相同,因此,緩衝記憶體114中被更新過的分頁即稱為更新分頁(dirty page)。
為便於說明本揭露的資料處理方法與資料處理系統的實施方式,以下以伺服器的備份操作作為範例來說明。然而,本揭露的資料處理方法與資料處理系統並不限於適用在備份操作上。本揭露的資料處理方法與資料處理系統也可適用在其他的資料處理操作上,例如資料的複製或搬移等操作。
圖3是根據一範例實施例所繪示之虛擬機器運作的示意圖。
請先參照圖3,具有容錯機制之虛擬機器的資料處理週期(例如,備份週期)可分為運行操作302、快照操作304、傳輸操作306以及輸出操作308等四個階段。一般而言,第一虛擬機器118會在運行操作302中根據來自使用者的請求指令來新增、修改或存取硬碟中的資料。例如,在運行操作302中,第一虛擬機器118會將上述更新分頁以及用以回應使用者的回應資訊暫存於緩衝記憶體114中。透過執行快照操作304可備份運行操作302中所獲得的更新分頁以產生資料快照,並且在完成快照操作304後,第一虛擬機器118會回復執行運行操作302。例如,快照操作304的快照時間大約為1~2毫秒(ms)。在資料處理週期中快照操作304的快照時間相對短,因此,在本範例實施例中,其可被視為一個固定值。而第一虛擬機器118是在傳輸操作306中將資料快照傳送至第二虛擬機器128以完成資料的備份。特別是,當第二伺服器120作為第一伺服器110的備份伺服器時,在資料處理系統100包括多個第一伺服器110的例子中,第二虛擬機器128亦可同時服務此多個第一伺服器110的多個第一虛擬機器118,亦即,第二伺服器120可同時作為多個第一伺服器110的備份伺服器。在完成資料快照的傳輸後,由於更新分頁所對應的資料快照已備份至第二虛擬機器128,因此,倘若當第一伺服器110損壞且無法提供服務時,第二伺服器120的第二虛擬機器128可即時地接替執行第一伺服器110的第一虛擬機器118所運行的工作並提供對應的服務。值得注意的是,在資料處理系統100更包括第三伺服器的例子中,第二虛擬機器128亦會執行快照操作304與傳輸操作306以傳送資料快照至運行於第三伺服器的虛擬機器(例如,第三虛擬機器),由此提供更可靠的備份。此外,輸出操作308則是將用以回應使用者的回應資訊輸出。例如,第一虛擬機器118或第二虛擬機器128會執行輸出操作308以傳送回應資訊至電子裝置。特別是,由於傳輸操作306主要是在傳輸更新分頁,因此,傳輸操作306的時間會根據所收集的更新分頁的傳輸量而改變,據此,本揭露的資料處理系統100即是參照所收集的更新分頁的傳輸量與傳輸操作306的處理時間來控制延遲時間。
更詳細來說,第一虛擬機器118會根據在一預定時間點之前所收集的更新分頁的傳輸量計算一剩餘處理時間,並且根據此剩餘處理時間來執行運行操作302。倘若經過計算之後已無剩餘處理時間,則第一虛擬機器118會直接執行快照操作304與傳輸操作306以將對應的資料快照傳送至第二虛擬機器128。為了更清楚地描述本揭露之資料處理系統100及其虛擬機器的運作,以下的範例將同時參照圖3來進行說明。
圖4A是根據一範例實施例所繪示之資料處理方法的流程圖。
請同時參照圖3與圖4A,在步驟S401中,第一虛擬機器118會執行運行操作302。在運行操作302的期間,第一虛擬機器118會收集多個更新分頁。在步驟S403中,第一虛擬機器118會在運行操作302的期間中的預定時間點T pp暫停運行操作302,且根據在運行操作的期間中的預定時間點T pp之前所收集的多個更新分頁的傳輸量計算剩餘處理時間T R。在預定時間點T pp,第一虛擬機器118的運行操作302已執行了預定時間T P。因此,第一虛擬機器118是根據在預定時間T P內所收集的更新分頁的傳輸量來計算剩餘處理時間T R。接著,在步驟S405中,第一虛擬機器118會根據剩餘處理時間T R繼續執行運行操作302、暫停運行操作302與執行快照操作304以產生對應的資料快照。也就是說,在剩餘處理時間T R中,第一虛擬機器118會繼續收集多個更新分頁。在此,剩餘處理時間T R表示預定時間點T pp至啟動時間點T bk之間的時間。換句話說,第一虛擬機器118可根據所計算的剩餘處理時間T R來決定啟動時間點T bk。啟動時間點T bk是指在一個資料處理週期中,接續在運行操作之後執行的另一個操作開始執行的時間點。在本實施例中,啟動時間點T bk可為快照操作304開始執行的時間點。因此,在第一虛擬機器118根據剩餘處理時間T R繼續執行運行操作302之後,第一虛擬機器118會在啟動時間點T bk暫停運行操作302,並接著執行快照操作304。之後,在步驟S407中,第一虛擬機器118會執行傳輸操作306以傳送資料快照至第二虛擬機器128,由此完成一個資料處理週期。
倘若在資料處理週期的期間中,使用者在時間t 1透過電子裝置140對第一虛擬機器118發出請求指令,則第一虛擬機器118會根據此請求指令執行處理操作以獲得對應此請求指令的回應資訊。在未使用容錯機制之虛擬機器的資料處理系統中,第一虛擬機器118在時間t 1從電子裝置140接收到請求指令,並根據此請求指令執行處理操作以獲得對應請求指令的回應資訊後,可隨即地在時間t 2將回應資訊傳送給至電子裝置140。反之,在使用容錯機制之虛擬機器的資料處理系統中,為確保所有更新分頁皆成功地複製或備份至第二虛擬機器128,第一虛擬機器118會將此些回應資訊先暫存於緩衝記憶體114中,直到其執行完快照操作304與傳輸操作306之後,執行輸出操作308以在時間t 3將回應資訊傳送給電子裝置140。在此,由於時間t 1到時間t 2的回應時間為一固定值,因此,本範例實施例是將時間t 2至時間t 3的期間定義為延遲時間310。然而,本揭露並不限於此,例如,在另一範例實施例中,延遲時間310亦可以是時間t 1到時間t 3的期間。
本揭露即是將上述延遲時間310控制在一特定範圍內,由此可確保資料處理系統100之回應時間可滿足具延遲敏感的工作負載需求。在本揭露範例實施例中,第一虛擬機器118會設定一預期延遲T ML。再者,第一虛擬機器118會根據在預定時間T P內所收集的多個更新分頁的傳輸量與預定時間T P計算預估更新速率,並且根據預估更新速率取得一參數。第一虛擬機器118會根據預期延遲T ML、預定時間T P、產生對應的資料快照的快照時間T b與上述的參數來計算剩餘處理時間T R
特別是,第一虛擬機器118會根據多個先前更新分頁的傳輸量(亦稱為先前傳輸量)與傳輸此些更新分頁的時間(亦稱為先前傳輸時間)計算傳輸速率。預定時間T P與剩餘處理時間T R的總和可表示在啟動時間點T bk之前的運行操作302的運行時間T a,因此第一虛擬機器118可根據預估更新速率、運行時間T a與傳輸速率來取得預估傳輸時間T c。例如,第一虛擬機器118可將預估更新速率乘以運行時間T a來取得對應在運行時間T a中所收集的更新分頁的一預估傳輸量,並且將此預估傳輸量除以傳輸速率來取得預估傳輸時間T c。所取得的剩餘處理時間T R可使運行時間T a、快照時間T b與預估傳輸時間T c的總和非大於(亦即小於或等於)所設定的預期延遲T ML。藉此可將延遲時間310控制在特定範圍內。
如上所述,第一虛擬機器118會根據預估更新速率取得一參數。更詳細來說,第一虛擬機器118是根據預估更新速率與傳輸速率來取得上述的參數。例如,根據預定時間T P、剩餘處理時間T R與預估傳輸時間T c之間的相關性,第一虛擬機器118可計算預估更新速率與傳輸速率的一比值,並且將此比值加1作為上述的參數。在此以R P表示預估更新速率,並以R AVG表示傳輸速率。因此,剩餘處理時間T R可根據以下的公式(1)計算而得。
T R=(T ML-T b)/(1+R P/R AVG)-T P∙∙∙(1)
也就是說,當預估更新速率R P小於傳輸速率R AVG時,剩餘處理時間T R相對較大,而當預估更新速率R P大於傳輸速率時,剩餘處理時間T R相對較少。在預估更新速率R P為最大更新速率的情況下,將不會有多餘的剩餘處理時間T R。最大更新速率可為電子裝置140寫入資料的最大速率,也就是說,各種工作負載產生更新分頁的更新速率不會大於最大更新速率。當預估更新速率R P為最大更新速率時,第一虛擬機器118在預定時間T P內所收集的更新分頁的傳輸量會近似或等於第一虛擬機器118在啟動時間點T bk之前的運行操作302的期間中所能收集的最大傳輸量。
基於上述,在取得剩餘處理時間T R之後,第一虛擬機器118根據剩餘處理時間T R可能會繼續執行運行操作302,或者不繼續執行運行操作302而是執行快照操作304。以下將以圖4B為範例來說明。
圖4B是根據另一範例實施例所繪示之資料處理方法的流程圖。
請同時參照圖3與圖4B,在步驟S421中,第一虛擬機器118會執行運行操作302。在步驟S423中,第一虛擬機器118會在運行操作302的期間中的預定時間點T pp暫停運行操作302,且根據在運行操作的期間中的預定時間點T pp之前所收集的多個第一更新分頁的傳輸量計算剩餘處理時間T R。圖4B的步驟S421~S423的操作與圖4A的步驟S401~S403的操作相同,於此便不再贅述。
在本範例實施例中,在取得剩餘處理時間T R之後,第一虛擬機器118會根據剩餘處理時間T R來決定是否可繼續執行運行操作302。例如,在步驟S425中,第一虛擬機器118會判斷剩餘處理時間T R是否大於0。
倘若剩餘處理時間T R大於0,第一虛擬機器118會判定有多餘的剩餘處理時間T R可繼續執行運行操作302,因而執行步驟S427。在步驟S427中,第一虛擬機器118會根據剩餘處理時間T R繼續執行運行操作302以收集多個第二更新分頁。當繼續執行運行操作302並經過剩餘處理時間T R,第一虛擬機器118會判定已完成根據剩餘處理時間T R繼續執行運行操作302而收集多個第二更新分頁的操作(亦即步驟S427)。而在完成根據剩餘處理時間T R所繼續執行的運行操作302之後,在步驟S429中,第一虛擬機器118會暫停運行操作302並執行快照操作304以產生對應的資料快照。在此情況下,資料快照是根據第一更新分頁與第二更新分頁來產生。在一範例實施例中,在完成根據剩餘處理時間T R所繼續執行的運行操作302的時間點相當於啟動時間點T bk。因此,第一虛擬機器118會在啟動時間點T bk執行步驟S429。之後,在步驟S431中,第一虛擬機器118會執行傳輸操作306以傳送資料快照至第二虛擬機器128,由此完成一個資料處理週期。
然而,倘若剩餘處理時間T R非大於0,第一虛擬機器118不會繼續執行運行操作302而會直接執行步驟S429。也就是說,在判斷出沒有多餘的剩餘處理時間T R之後,第一虛擬機器118會直接執行步驟S429而暫停運行操作302並執行快照操作304以產生對應的資料快照。在一範例實施例中,預定時間點T pp會相當於啟動時間點T bk。由於第一虛擬機器118並未繼續執行運行操作302,因此在啟動時間點T bk之前不會收集到第一更新分頁以外的其他更新分頁。在此情況下,資料快照是僅根據第一更新分頁來產生。之後,在步驟S431中,第一虛擬機器118會執行傳輸操作306以傳送資料快照至第二虛擬機器128,由此完成一個資料處理週期。
在一範例實施例中,第一虛擬機器118可將所收集的更新分頁切分成多個資料單元,並且根據此些資料單元中實際被更新的資料單元來取得更新分頁的傳輸量。實際被更新的資料單元的數目不會大於從所收集的更新分頁切分出的多個資料單元的數目。在執行快照操作304時,第一虛擬機器118會根據實際被更新的資料單元來產生對應的資料快照。以上述的第一更新分頁為例,第一虛擬機器118可將每一個第一更新分頁切分成128個第一資料單元,並且從此些第一資料單元中判斷出實際被更新的一個或多個第二資料單元。所有第一更新分頁中實際被更新的多個第二資料單元的總資料量即為所有第一更新分頁的傳輸量。第一虛擬機器118也可以相同於上述的方式來取得所有第二更新分頁的傳輸量。
此外,第一虛擬機器118還可基於上述將每個更新分頁切分成多個資料單元的方式,根據對應多個檢查時間點的傳輸量來預估之後的傳輸量。在此,對應某個檢查時間點的傳輸量是指對應在運行操作的期間中的此檢查時間點之前所收集的更新分頁的傳輸量。為便於說明,一個資料單元的資料量稱為1資料單位,並且1資料單位可為多個位元(bits)。
在一範例實施例中,預估的傳輸量可藉由將在某個檢查時間點的傳輸量除以對應此檢查時間點的經過時間所取得的數值乘以一預估時間來取得。例如,假設預估時間為5毫秒,並且每1毫秒檢查一次。在第一個檢查時間點(亦即經過1毫秒)取得的傳輸量為2資料單位,因此在5毫秒時取得的傳輸量可被預估為10資料單位。在第二個檢查時間點(亦即經過2毫秒)取得的傳輸量為5資料單位,因此在5毫秒時取得的傳輸量可被預估為12.5資料單位(亦即5/2*5=12.5)。
在另一範例實施例中,預估的傳輸量也可藉由將在某個檢查時間點的傳輸量與前一個檢查時間點的傳輸量之間的傳輸量差異值乘以一預估時間來取得。例如,假設預估時間為5毫秒,並且每1毫秒檢查一次。在第一個檢查時間點(亦即經過1毫秒)取得的傳輸量為2單位,並且開始到第一個檢查點之間的傳輸量差異值為2單位,因此在5毫秒時取得的傳輸量可被預估為10單位(亦即2*5=10)。在第二個檢查時間點(亦即經過2毫秒)取得的傳輸量為5單位,並且第二個檢查時間點與第一檢查時間點之間的傳輸量差異值為3單位,因此在5毫秒時取得的傳輸量可被預估為15單位(亦即3*5=15)。
基於上述取得預估的傳輸量的方式,預期延遲T ML與預定時間點T pp可藉由實驗的方式來取得最適合的數值。在一範例實施例中,預期延遲T ML可設定為10毫秒。此外,假設一個預期延遲T ML為1時間單位,而對應預定時間點T pp的預定時間T P則可設定為0.4時間單位。例如,倘若預期延遲T ML為10毫秒,則對應預定時間點T pp的預定時間T P可設定為4毫秒。也就是說,運行操作302被執行了4毫秒時的時間點即為預定時間點T P
舉例而言,在預期延遲T ML為10毫秒的例子中,預定時間T P為4毫秒。假設第一虛擬機器118在預定時間T P內所收集的更新分頁的傳輸量相當於100個更新分頁的大小。例如,一個更新分頁的大小為4KB(Bytes),則100個更新分頁的大小即為400KB。接著,第一虛擬機器118會根據在預定時間T P內所收集的更新分頁的傳輸量計算出預估更新速率為100KB/每毫秒。假設傳輸速率為200KB/每毫秒(亦即相當於50個更新分頁/每毫秒),因此第一虛擬機器118可根據前述的公式(1)計算出剩餘處理時間為2毫秒。基此,第一虛擬機器118會繼續執行運行操作302並且在經過2毫秒之後暫停運行操作302而執行快照操作304。
本揭露的另一範例實施例提出一種電腦程式產品,用以執行上述的資料處理方法。此電腦程式產品包括至少一程式碼,且由電子裝置(例如第一伺服器110或第二伺服器120)的處理裝置載入並執行此至少一程式碼之後,可完成上述的資料處理方法以及資料處理系統100的功能。
綜上所述,本揭露範例實施例的資料處理方法及其處理系統與電腦程式產品可藉由所收集之更新分頁的傳輸量來預估可繼續執行運行操作的剩餘處理時間來動態地調整運行操作的執行時間與決定啟動時間點,據此,可將延遲時間控制在特定的預期延遲時間內,進而有效地改善延遲敏感的工作負載需求因延遲時間過長而造成的服務中斷,且提升使用者的操作體驗。
雖然本揭露已以實施例揭露如上,然其並非用以限定本揭露,任何所屬技術領域中具有通常知識者,在不脫離本揭露的精神和範圍內,當可作些許的更動與潤飾,故本揭露的保護範圍當視後附的申請專利範圍所界定者為準。
100‧‧‧資料處理系統
110‧‧‧第一伺服器
112、122、602‧‧‧處理裝置
114、124、604‧‧‧緩衝記憶體
116、126、606‧‧‧通訊裝置
118‧‧‧第一虛擬機器
120‧‧‧第二伺服器
128‧‧‧第二虛擬機器
130‧‧‧匯流排
140‧‧‧電子裝置
302‧‧‧運行操作
304‧‧‧快照操作
306‧‧‧傳輸操作
308‧‧‧輸出操作
310‧‧‧延遲時間
Tbk‧‧‧啟動時間點
Tpp‧‧‧預定時間點
Ta‧‧‧運行時間
Tb‧‧‧快照時間
Tc‧‧‧預估傳輸時間
TP‧‧‧預定時間
TR‧‧‧剩餘處理時間
TML‧‧‧預期延遲
t1、t2、t3‧‧‧時間
S401、S403、S405、S407、S421、S423、S425、S427、S429、S431‧‧‧資料處理方法的步驟
圖1繪示為虛擬機器容錯機制所造成之延遲時間的示意圖。 圖2A是根據一範例實施例所繪示之資料處理系統的架構圖。 圖2B是根據一範例實施例所繪示之資料處理系統的方塊圖。 圖3是根據一範例實施例所繪示之虛擬機器運作的示意圖。 圖4A是根據一範例實施例所繪示之資料資料處理方法的流程圖。 圖4B是根據另一範例實施例所繪示之資料處理方法的流程圖。

Claims (16)

  1. 一種資料處理方法,該資料處理方法包括:設定一預期延遲,執行一運行操作;在該運行操作的期間中的一預定時間點暫停該運行操作,且根據在該運行操作的期間中的該預定時間點之前所收集的多個更新分頁的一傳輸量計算一剩餘處理時間;根據該剩餘處理時間繼續執行該運行操作、暫停該運行操作與執行一快照操作以產生對應的一資料快照;以及執行一傳輸操作以傳送該資料快照,其中根據在該運行操作的期間中的該預定時間點之前所收集的所述多個更新分頁的該傳輸量計算該剩餘處理時間的步驟包括:根據所述多個更新分頁的該傳輸量與對應該預定時間點的該預定時間計算一預估更新速率,根據該預估更新速率取得一參數,以及根據該預期延遲、對應該預定時間點的一預定時間、產生對應的該資料快照的一快照時間與該參數來計算該剩餘處理時間,其中對應該預定時間點的該預定時間與該剩餘處理時間的總和等於該運行操作的一運行時間,並且該運行時間、該快照時間與傳送該資料快照的一預估傳輸時間的總和非大於該預期延遲。
  2. 如申請專利範圍第1項所述的資料處理方法,更包括:根據多個先前更新分頁的一先前傳輸量與傳輸所述多個先前 更新分頁的一先前傳輸時間計算一傳輸速率,其中根據該預估更新速率取得該參數的步驟包括:根據該預估更新速率與該傳輸速率取得該參數。
  3. 如申請專利範圍第1項所述的資料處理方法,其中在該運行操作的期間中的該預定時間點之前所收集的多個更新分頁包括多個第一更新分頁,其中根據該剩餘處理時間繼續執行該運行操作、暫停該運行操作與執行該快照操作以產生對應的該資料快照的步驟包括:倘若該剩餘處理時間大於0時,根據該剩餘處理時間繼續執行該運行操作以收集多個第二更新分頁,並且在完成根據該剩餘處理時間所繼續執行的該運行操作之後,暫停該運行操作並執行該快照操作以產生對應的該資料快照,其中該資料快照是根據所述多個第一更新分頁與所述多個第二更新分頁而產生。
  4. 如申請專利範圍第3項所述的資料處理方法,其中根據該剩餘處理時間繼續執行該運行操作、暫停該運行操作與執行該快照操作以產生對應的該資料快照的步驟更包括:倘若該剩餘處理時間非大於0時,暫停該運行操作並執行該快照操作以產生對應的該資料快照,其中該資料快照是根據所述多個第一更新分頁而產生。
  5. 如申請專利範圍第1項所述的資料處理方法,更包括:將所述多個更新分頁切分成多個第一資料單元;以及 根據所述多個第一資料單元取得多個第二資料單元,且根據所述多個第二資料單元取得所述多個更新分頁的該傳輸量,其中所述多個第二資料單元的數目非大於所述多個第一資料單元的數目。
  6. 如申請專利範圍第1項所述的資料處理方法,更包括:從一電子裝置接收一請求指令,且根據該請求指令執行一處理操作以獲得對應該請求指令的一回應資訊;以及在執行該快照操作與該傳輸操作之後,執行一輸出操作以傳送該回應資訊至該電子裝置。
  7. 如申請專利範圍第1項所述的資料處理方法,更包括:在完成該快照操作後,回復執行該運行操作。
  8. 一種資料處理系統,包括:一第一伺服器,用以運行一第一虛擬機器,其中該第一虛擬機器用以執行一運行操作;以及一第二伺服器,用以運行一第二虛擬機器,該第二伺服器透過一匯流排耦接至該第一伺服器,其中該第一虛擬機器用以在該運行操作的期間中的一預定時間點暫停該運行操作,且根據在該運行操作的期間中的該預定時間點之前所收集的多個更新分頁的一傳輸量計算一剩餘處理時間,其中該第一虛擬機器更用以根據該剩餘處理時間繼續執行該運行操作、暫停該運行操作與執行一快照操作以產生對應的一資 料快照,其中,該第一虛擬機器更用以執行一傳輸操作以傳送該資料快照,其中該第一虛擬機器更用以設定一預期延遲,其中該第一虛擬機器更用以根據所述多個更新分頁的該傳輸量與對應該預定時間點的該預定時間計算一預估更新速率,根據該預估更新速率取得一參數,並且根據該預期延遲、對應該預定時間點的一預定時間、產生對應的該資料快照的一快照時間與該參數來計算該剩餘處理時間,其中對應該預定時間點的該預定時間與該剩餘處理時間的總和等於該運行操作的一運行時間,並且該運行時間、該快照時間與傳送該資料快照的一預估傳輸時間的總和非大於該預期延遲。
  9. 如申請專利範圍第8項所述的資料處理系統,其中該第一虛擬機器更用以根據多個先前更新分頁的一先前傳輸量與傳輸所述多個先前更新分頁的一先前傳輸時間計算一傳輸速率,並且根據該預估更新速率與該傳輸速率取得該參數。
  10. 如申請專利範圍第8項所述的資料處理系統,其中在該運行操作的期間中的該預定時間點之前所收集的多個更新分頁包括多個第一更新分頁,其中倘若該剩餘處理時間大於0時,該第一虛擬機器用以根據該剩餘處理時間繼續執行該運行操作以收集多個第二更新分頁,並且在完成根據該剩餘處理時間所繼續執行的該運行操作之 後,暫停該運行操作並執行該快照操作以產生對應的該資料快照,其中該資料快照是根據所述多個第一更新分頁與所述多個第二更新分頁而產生。
  11. 如申請專利範圍第10項所述的資料處理系統,其中倘若該剩餘處理時間非大於0時,該第一虛擬機器用以執行暫停該運行操作並執行該快照操作以產生對應的該資料快照,其中該資料快照是根據所述多個第一更新分頁而產生。
  12. 如申請專利範圍第8項所述的資料處理系統,其中該第一虛擬機器更用以將所述多個更新分頁切分成多個第一資料單元,根據所述多個第一資料單元取得多個第二資料單元,且根據所述多個第二資料單元取得所述多個更新分頁的該傳輸量,其中所述多個第二資料單元的數目非大於所述多個第一資料單元的數目。
  13. 如申請專利範圍第8項所述的資料處理系統,其中該第一虛擬機器更用以從一電子裝置接收一請求指令,且根據該請求指令執行一處理操作以獲得對應該請求指令的一回應資訊,其中該第一虛擬機器更用以在執行該快照操作與該傳輸操作之後,執行一輸出操作以傳送該回應資訊至該電子裝置。
  14. 如申請專利範圍第8項所述的資料處理系統,其中該第一虛擬機器更用以在完成該快照操作後,回復執行該運行操作。
  15. 如申請專利範圍第8項所述的資料處理系統,其中該匯流排符合一高速周邊零件連接介面標準。
  16. 一種電腦程式產品,具有至少一程式碼,當一電子裝置載入該至少一程式碼並執行後,可完成申請專利範圍第1項所述之方法。
TW106117127A 2017-05-24 2017-05-24 資料處理方法、資料處理系統與電腦程式產品 TWI624757B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW106117127A TWI624757B (zh) 2017-05-24 2017-05-24 資料處理方法、資料處理系統與電腦程式產品
CN201710564886.6A CN108958880B (zh) 2017-05-24 2017-07-12 数据处理方法与数据处理系统
US15/660,957 US10467106B2 (en) 2017-05-24 2017-07-27 Data processing method, data processing system, and non-transitory computer program product for controlling a workload delay time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106117127A TWI624757B (zh) 2017-05-24 2017-05-24 資料處理方法、資料處理系統與電腦程式產品

Publications (2)

Publication Number Publication Date
TWI624757B true TWI624757B (zh) 2018-05-21
TW201901425A TW201901425A (zh) 2019-01-01

Family

ID=62951743

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106117127A TWI624757B (zh) 2017-05-24 2017-05-24 資料處理方法、資料處理系統與電腦程式產品

Country Status (3)

Country Link
US (1) US10467106B2 (zh)
CN (1) CN108958880B (zh)
TW (1) TWI624757B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10379923B2 (en) * 2017-09-15 2019-08-13 International Business Machines Corporation Efficiently repairing virtual machines by means of DVFS-aware proactive scheduling
US11366681B2 (en) * 2019-03-27 2022-06-21 Amazon Technologies, Inc. Chaining virtual machines
US10963287B2 (en) 2019-03-27 2021-03-30 Amazon Technologies, Inc. Reducing request latency in a multi-tenant web service host
US11467858B2 (en) 2019-03-27 2022-10-11 Amazon Technologies, Inc. Techniques for performing continuation workflows
US11409619B2 (en) 2020-04-29 2022-08-09 The Research Foundation For The State University Of New York Recovering a virtual machine after failure of post-copy live migration
TWI763331B (zh) * 2021-02-25 2022-05-01 威聯通科技股份有限公司 虛擬機器的備用方法與備用系統
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521071A (zh) * 2011-11-24 2012-06-27 广州杰赛科技股份有限公司 一种基于私有云的虚拟机维护方法
US20140149695A1 (en) * 2012-11-28 2014-05-29 Red Hat Israel, Ltd. Creating a virtual machine from a snapshot
CN104572248A (zh) * 2014-12-17 2015-04-29 中电科华云信息技术有限公司 虚拟机动态保存快照的方法
TWI584131B (zh) * 2015-12-14 2017-05-21 財團法人工業技術研究院 伺服器備份方法及其備份系統

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US370645A (en) * 1887-09-27 Henry okdenstein
US8074035B1 (en) * 2003-07-22 2011-12-06 Acronis, Inc. System and method for using multivolume snapshots for online data backup
US8429359B1 (en) * 2004-12-31 2013-04-23 Symantec Operating Corporation Method and apparatus for dynamically backing up database files
US8499297B2 (en) 2008-10-28 2013-07-30 Vmware, Inc. Low overhead fault tolerance through hybrid checkpointing and replay
US8201169B2 (en) 2009-06-15 2012-06-12 Vmware, Inc. Virtual machine fault tolerance
US8549241B2 (en) * 2010-01-06 2013-10-01 Vmware, Inc. Method and system for frequent checkpointing
US8812907B1 (en) 2010-07-19 2014-08-19 Marathon Technologies Corporation Fault tolerant computing systems using checkpoints
CN102136993B (zh) 2010-07-29 2016-12-21 华为技术有限公司 一种数据迁移的方法、装置和系统
US9170891B1 (en) * 2012-09-10 2015-10-27 Amazon Technologies, Inc. Predictive upload of snapshot data
JP5561334B2 (ja) * 2012-09-27 2014-07-30 日本電気株式会社 データ転送装置
CN103019884B (zh) 2012-11-21 2015-07-01 北京航空航天大学 基于虚拟机快照的内存页去重方法及装置
US8983961B2 (en) 2012-11-29 2015-03-17 International Business Machines Corporation High availability for cloud servers
WO2014133491A1 (en) * 2013-02-27 2014-09-04 Hewlett-Packard Development Company, L.P. Selecting a backup type based on changed data
US9563452B2 (en) * 2013-06-28 2017-02-07 Sap Se Cloud-enabled, distributed and high-availability system with virtual machine checkpointing
WO2015102873A2 (en) * 2013-12-30 2015-07-09 Stratus Technologies Bermuda Ltd. Dynamic checkpointing systems and methods
TWI509426B (zh) * 2014-09-17 2015-11-21 Prophetstor Data Services Inc 用於達成無干擾性資料重建的系統
CN104268003B (zh) 2014-09-30 2017-11-14 南京理工大学 一种适用于虚拟机动态迁移的内存状态迁移方法
US9817689B2 (en) * 2015-02-27 2017-11-14 Red Hat, Inc. Dirty page tracking of guest-uncached memory
CN106528189B (zh) * 2015-09-10 2019-05-28 阿里巴巴集团控股有限公司 一种启动备份任务的方法、装置及电子设备
US10326836B2 (en) * 2015-12-08 2019-06-18 Pure Storage, Inc. Partially replicating a snapshot between storage systems
CN106326041A (zh) * 2016-08-31 2017-01-11 杭州沃趣科技股份有限公司 一种用于数据库秒级恢复的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521071A (zh) * 2011-11-24 2012-06-27 广州杰赛科技股份有限公司 一种基于私有云的虚拟机维护方法
US20140149695A1 (en) * 2012-11-28 2014-05-29 Red Hat Israel, Ltd. Creating a virtual machine from a snapshot
CN104572248A (zh) * 2014-12-17 2015-04-29 中电科华云信息技术有限公司 虚拟机动态保存快照的方法
TWI584131B (zh) * 2015-12-14 2017-05-21 財團法人工業技術研究院 伺服器備份方法及其備份系統

Also Published As

Publication number Publication date
CN108958880B (zh) 2021-02-26
US20180341555A1 (en) 2018-11-29
US10467106B2 (en) 2019-11-05
TW201901425A (zh) 2019-01-01
CN108958880A (zh) 2018-12-07

Similar Documents

Publication Publication Date Title
TWI624757B (zh) 資料處理方法、資料處理系統與電腦程式產品
US10824408B2 (en) Method for automatic application deployment and cloud management node
US10411953B2 (en) Virtual machine fault tolerance method, apparatus, and system
CN106874143B (zh) 服务器备份方法及其备份系统
CN109522087B (zh) 基于国产申威处理器的虚拟机构建方法和系统
WO2019195969A1 (zh) 数据同步处理的方法和装置
Svärd et al. Principles and performance characteristics of algorithms for live VM migration
EP2746948A1 (en) Device and method for optimization of data processing in a MapReduce framework
US20200125403A1 (en) Dynamic multitasking for distributed storage systems
JP2016526735A (ja) 仮想ハドゥープマネジャ
JP2003131900A (ja) サーバシステム運用管理方式
Deshpande et al. Scatter-gather live migration of virtual machines
WO2019028682A1 (zh) 一种多系统共享内存的管理方法及装置
TW201347459A (zh) 管理方法及其系統
US11003379B2 (en) Migration control apparatus and migration control method
EP2498163A2 (en) Information Processing Apparatus and Time-of-Day Control Method
Chanchio et al. Time-bound, thread-based live migration of virtual machines
Li et al. Efficient live virtual machine migration for memory write-intensive workloads
CN112328365A (zh) 一种虚拟机迁移方法、装置、设备及存储介质
JP2015148890A (ja) 情報処理装置、情報処理システム、および情報処理システムの制御方法
US10310890B2 (en) Control method for virtual machine system, and virtual machine system
JP2012093899A (ja) 計算機システム、シミュレーション方法、及びプログラム
CN109426544A (zh) 虚拟机部署方法和装置
AU2014314984B2 (en) Data processing method and device
US9690619B2 (en) Thread processing method and thread processing system for setting for each thread priority level of access right to access shared memory