新四季網

一種計算機容錯方法及系統的製作方法

2023-05-11 03:21:06

一種計算機容錯方法及系統的製作方法
【專利摘要】本發明提供一種計算機容錯方法及系統。所述計算機容錯方法應用於包括主用設備和備用設備的計算機容錯系統中,所述主用設備和備用設備都包括建立在虛擬化內核上的客戶虛擬機,所述計算機容錯方法包括:預設虛擬內存同步的觸發條件;當所述觸發條件發生時,完成一次所述主用設備和所述備用設備的虛擬內存同步;當所述主用設備發生故障時,停止所述主用設備的所述客戶虛擬機的運行,並啟動所述備用設備的客戶虛擬機的運行。本發明的技術方案能夠預防故障停機風險,當主用設備發生故障時,業務將直接遷移到備用設備,應用連續不間斷,無任何數據丟失,可靠性更高;並且該技術方案獨立於作業系統層,應用更為廣泛。
【專利說明】一種計算機容錯方法及系統

【技術領域】
[0001]本發明涉及一種計算機安全系統,特別是涉及一種計算機容錯方法及系統。

【背景技術】
[0002]隨著信息科技的快速發展,尤其是物聯網與雲計算的興起,計算機系統對社會經濟的發展影響越來越大。計算機系統不僅應用在數據信息的管理和維護,而且也應用在工業控制與生產執行。如製造業過程控制系統、工廠製造執行系統、企業網數據中心系統,計算機系統成為了工業IT基礎架構的的核心。計算機系統的部件可能發生故障,如果計算機系統的部件發生故障,難免會影響計算機系統的運行,甚至導致計算機系統崩潰。這樣,如何保證計算機系統在發生故障時,計算機系統能夠正常工作或恢復正常工作,就成為了計算機系統發展的一個關鍵問題。
[0003]針對計算機系統故障導致的計算機系統的安全穩定問題,人們提出了不少解決方案,包括微軟公司的MSCS故障轉移集群方案,RoseHA集群軟體方案,Vmware虛擬化HA方案等。但這些解決方案的設計思路均是採用主從設備的故障切換,實現主機發生故障後客戶機系統快速恢復。即主機發生故障時,從機接管並重啟關鍵應用服務。但這種設計有著明顯的缺陷,不僅當應用服務在主從之間重啟切換會導致業務系統中斷運行,而且該系統往往結構複雜,對軟體系統和應用環境有很大的限制。
[0004]鑑於此,如何找到一種能夠在計算機系統發生故障時,計算機系統的業務運行也能保證連續不中斷的計算機容錯方法及系統,就成為了本領域技術人員亟待解決的問題。


【發明內容】

[0005]鑑於以上所述現有技術的缺點,本發明的目的在於提供一種計算機容錯方法及系統,用於解決現有技術中在計算機系統發生故障時,業務運行會被中斷的問題。
[0006]為實現上述目的及其他相關目的,本發明提供一種計算機容錯方法,應用於包括主用設備和備用設備的計算機容錯系統中,所述主用設備和備用設備都包括建立在虛擬化內核上的客戶虛擬機,所述基於虛擬內存同步的容錯方法包括:預設虛擬內存同步的觸發條件;當所述觸發條件發生時,完成一次所述主用設備和所述備用設備的虛擬內存同步;
[0007]所述基於虛擬內存同步的容錯方法還包括:當所述主用設備發生故障時,停止所述主用設備的所述客戶虛擬機的運行,並啟動所述備用設備的客戶虛擬機的運行,讓所述備用設備接管所述主用設備的工作。
[0008]所述完成一次所述主用設備和所述備用設備的虛擬內存同步包括:暫停所述主用設備的所述客戶虛擬機的運行,實現所述備用設備的客戶虛擬機的內存頁面內容與所述主用設備的客戶虛擬機的內存頁面內容完全一致;重新啟動所述主用設備的所述客戶虛擬機運行,所述主用設備的所述客戶虛擬機完成本次虛擬內存同步中的所包含的I/o操作,並保證所述主用設備的磁碟數據與所述備用設備的磁碟數據完全一致。
[0009]所述實現所述備用設備的客戶虛擬機的頁面內容與所述主用設備的客戶虛擬機的頁面內容完全一致包括:確定從上一次所述觸發條件發生到當前所述觸發條件發生時客戶虛擬機中頁面內容發生改變的虛擬內存頁,並將所有的所確定的虛擬內存頁的內容傳輸到所述備用設備,使得所述備用設備中所述客戶虛擬機的與所述所確定的虛擬內存頁相應的虛擬內存頁的內容與所述主用設備中所確定的虛擬內存頁的內容一致。
[0010]所述虛擬內存同步的觸發條件包括:所述主用設備的所述虛擬客戶機上發生I/O狀態變化。
[0011]本發明還提供一種計算機容錯系統,包括主用設備與備用設備,所述主用設備與所述備用設備都包括同步軟體模塊、故障管理模塊、客戶虛擬機模塊;所述計算機容錯系統運行時,所述主用設備與所述備用設備的同步軟體模塊、故障管理模塊、客戶虛擬機模塊都運行在虛擬化內核上,分別對應所述虛擬化內核上的同步軟體進程、故障管理進程、客戶虛擬機;其中:所述客戶虛擬機用於實現應用程式的運行;主用設備的所述客戶虛擬機處於運行狀態,所述備用設備的所述客戶虛擬機處於同步運行但不可被訪問管理狀態;所述同步軟體進程用於預設虛擬內存同步的觸發條件,當所述觸發條件發生時,實現主用設備與所述備用設備之間的虛擬內存同步;主用設備的所述同步軟體進程處於運行狀態,所述備用設備的所述同步軟體進程處於同步運行但不可被訪問管理狀態;所述故障管理進程用於實現對所述主用設備硬體、所述客戶虛擬機以及所述同步軟體進程的管理與故障恢復;主用設備的所述故障管理進程處於運行狀態,所述備用設備的所述故障管理進程處於同步運行但不可被訪問管理狀態。
[0012]所述虛擬內存同步的實現方法包括:暫停所述主用設備的所述客戶虛擬機運行,確定從上一次所述觸發條件發生到當前所述觸發條件發生時客戶虛擬機中頁面內容發生改變的虛擬內存頁,並對所述頁面內容發生改變的虛擬內存頁進行同步,使得所述備用設備中所述客戶虛擬機的相應的虛擬內存頁的內容與所述主用設備中所述頁面內容發生改變的虛擬內存頁的內容一致;同時,主用設備與備用設備將內存頁內容寫入到各自的邏輯磁碟卷中,然後釋放I/o緩衝區;重新恢復所述主用設備的所述客戶虛擬機運行,所述主用設備的所述客戶虛擬機完成本次虛擬內存同步中的所包含的I/o讀寫操作,並保證所述主用設備的磁碟數據與所述備用設備的磁碟數據一致。
[0013]所述虛擬內存同步的觸發條件包括:所述主用設備的所述客戶虛擬機發生I/O狀態變化。
[0014]所述虛擬客戶機上的存儲I/O操作最大讀寫速度為50MB每秒。
[0015]所述虛擬客戶機上的網絡I/O操作最大讀寫速度為5MB每秒。
[0016]當所述主用設備的所述故障管理進程檢測到所述主用設備發生故障時,停止所述主用設備的所述客戶虛擬機的運行,並啟動所述備用設備的客戶虛擬機運行,啟動所述備用設備的同步軟體進程以及故障管理進程的運行,讓所述備用設備接管所述主用設備的工作。
[0017]如上所述,本發明的一種計算機容錯方法及系統,具有以下有益效果:能夠預防故障停機風險,當主用設備發生故障時,業務將遷移到備用設備,由於備用設備的內存數據在檢查點保持與主用設備的內存數據同步,因此作業系統及軟體程序可以連續運行不受影響,業務零秒中斷,應用連續不間斷,無任何數據丟失,可靠性更高;並且該技術方案獨立於作業系統層,應用更為廣泛。

【專利附圖】

【附圖說明】
[0018]圖1顯示為本發明的一種計算機容錯方法的一實施例的流程示意圖。
[0019]圖2顯示為本發明的一種計算機容錯方法的一實施例的虛擬內存同步執行示意圖。
[0020]圖3顯示為本發明的一種計算機容錯系統的一實施例的模塊示意圖。
[0021]圖4顯示為本發明的一種計算機容錯系統的一實施例的結構示意圖。
[0022]元件標號說明
[0023]I計算機容錯系統
[0024]11主用設備
[0025]111客戶虛擬機模塊
[0026]112同步軟體模塊
[0027]113故障管理模塊
[0028]12備用設備
[0029]121客戶虛擬機模塊
[0030]122同步軟體模塊
[0031]123故障管理模塊
[0032]SI ?S3 步驟

【具體實施方式】
[0033]以下通過特定的具體實例說明本發明的實施方式,本領域技術人員可由本說明書所揭露的內容輕易地了解本發明的其他優點與功效。本發明還可以通過另外不同的【具體實施方式】加以實施或應用,本說明書中的各項細節也可以基於不同觀點與應用,在沒有背離本發明的精神下進行各種修飾或改變。
[0034]需要說明的是,本實施例中所提供的圖示僅以示意方式說明本發明的基本構想,遂圖式中僅顯示與本發明中有關的組件而非按照實際實施時的組件數目、形狀及尺寸繪製,其實際實施時各組件的型態、數量及比例可為一種隨意的改變,且其組件布局型態也可能更為複雜。
[0035]本發明提供一種基於虛擬內存同步的容錯方法,應用於包括主用設備和備用設備的計算機容錯系統中,所述主用設備可以為主伺服器或主機等,所述備用設備是和所述主用設備的軟硬體設置完全相同的設備,包括從伺服器、從機等。所述主用設備和備用設備都包括建立在虛擬化內核上的客戶虛擬機。所述主用設備(主機)和備用設備(從機)之間通常基於同步乙太網絡級聯、無透明橋接NTB(None Transparent Bridge)級聯或者infiniband網絡級聯方式,從機節點也必須依據足夠的帶寬用於檢測點(內存頁面數據同步)的通信需要。在一個實施例中,如圖1所示,所述基於虛擬內存同步的容錯方法包括:
[0036]步驟SI,預設虛擬內存同步的觸發條件。所述虛擬內存同步的觸發條件可以包括:所述主機設備上的虛擬客戶機上發生I/o狀態變化。I/O狀態變化不僅包括存儲I/O狀態或網絡I/o狀態變化,而且這個變化不局限於數據變化,包括各種I/O請求變化,各類狀態變化。在一個實施例中,虛擬內存同步的觸發條件是,主用設備上虛擬客戶機系統的I/o狀態變化,包括磁碟、網絡數據變化、資源佔用狀態、時間狀態和連結狀態等等。具體地,系統中主用設備的中央處理器啟動同步軟體進程,時刻監視所述虛擬客戶機I/o狀態變化,每一次變化都會生成虛擬內存同步的觸發條件並確定檢查點(checkpoint),並執行虛擬內存頁面同步。
[0037]步驟S2,當所述觸發條件發生時,完成一次所述主用設備和所述備用設備的虛擬內存同步。當所述觸發條件發生時,需要完成一次所述主用設備和所述備用設備的虛擬內存同步。具體地,當所述觸發條件發生時,將暫停所述主用設備的所述客戶虛擬機運行,即保持(Held)主機為「準備」的狀態,這種「準備」狀態被稱為檢查點(Checkpoint)或檢測點。一次觸發條件發生到下一個觸發條件發生的時間間隔,即一個檢查點到另一個檢查點的時間,可稱為檢查點周期。在一個實施例中,確定從上一次所述觸發條件發生到當前所述觸發條件發生時客戶虛擬機中頁面內容發生改變的虛擬內存頁,並將所有的所確定的虛擬內存頁的內容傳輸到所述備用設備,使得所述備用設備中所述客戶虛擬機的虛擬內存頁的內容與所述主用設備中所確定的虛擬內存頁的內容一致。具體地,主用設備將記錄在一個檢查點周期內發生的虛擬內存頁面修改情況,在進行與備用設備的虛擬內存同步時,只對所述發送修改的虛擬內存頁面進行同步,以實現所述備用設備的客戶虛擬機的頁面內容與所述主用設備的客戶虛擬機的頁面內容完全一致。該方法為通常在虛擬內存同步中採用的方法。在另一個實施例中,在進行與備用設備的虛擬內存同步時,將主用設備中所述客戶虛擬機的所有的虛擬內存頁的內容傳輸到所述備用設備中,使得所述備用設備中所述客戶虛擬機中所有的虛擬內存頁與所述主用設備中所述客戶虛擬機的相應的虛擬內存頁一致。即對所述主用設備中的所有虛擬內存頁面進行同步,以實現所述備用設備的客戶虛擬機的頁面內容與所述主用設備的客戶虛擬機的頁面內容完全一致。同時,主用設備與備用設備將內存頁內容以Block (數據塊)形式寫入到各自的邏輯磁碟卷中,基於磁碟扇區bitmap索引實現增量同步,此時,所述備用設備的中央處理器反饋一個ACK信號給所述主用設備的中央處理器(CPU),磁碟同步完成並確認數據一致。然後中央處理器釋放I/O緩衝區。重新恢復所述主用設備所述客戶虛擬機運行,所述客戶虛擬機完成本次虛擬內存同步中的所包含的I/O讀寫操作,並保證所述主用設備的磁碟數據與所述備用設備的磁碟數據一致。並保證所述主用設備的磁碟數據與所述備用設備的磁碟數據一致。
[0038]圍繞一個I/O狀態變化生成一個檢查點,並進行虛擬內存頁同步,主用設備上的虛擬客戶機系統對磁碟與網絡的管理依託「I/o緩衝區」,每一個檢查點周期內同步結束後,I/o新請求才得以釋放,並準備執行下一個檢查點周期。單位時間內檢查點發生的次數被稱為檢查點率,單位可以包括「每秒周期」。計算機系統中應用負載的特性決定了檢查點的周期頻率。檢查點周期內收集有多少內存頁面已被修改,主要取決於主用設備虛擬客戶機系統I/o狀態改變的頻率。每秒減少檢查點的周期,客戶作業系統有更大的潛力來做大量地運算。較高的檢查點率,代表可衡量的資源佔用。通常小於200周期每秒意味著系統並不繁忙。檢查點的周期會佔用物理機內存資源和同步網絡帶寬。較高的檢查點率,將導致在I/o緩衝區的釋放周期與I/O網絡延遲都會更小。隨著I/O狀態改變(如網絡活動)的增力口,更頻繁的檢查點周期與所產生到的延遲減小。不同的業務類型通常具有不同的內存同步頻率,如:計算探測業務為每秒1-10次;內存探測業務為每秒10-50次;文件複製業務為每秒5-20次;SQL查詢業務為每秒10-30次;網絡文件傳輸業務為每秒50-200次;SQL交易中度業務每秒50-500次;SQL交易頻繁業務為每秒500-1500次。為保障客戶應用的實效性,虛擬I/O請求響應包括磁碟和網絡均採用流量控制措施。在一個實施例中,對於網絡(每個虛擬網卡)為每秒最大5MB文件傳輸帶寬,對於磁碟,最大每秒50MB文件讀寫。
[0039]在一個實施例中,如圖2所示,主用設備的I/O狀態包括存儲和網絡I/O狀態都被關聯至內存同步進程中,網絡狀態被保持(Hold)在活躍的主機節點I/O緩衝區中,存儲讀寫狀態在主節點上執行,但是存儲寫狀態在從節點上被保持(Hold)在I/O緩衝區中。每次I/O狀態變化都會被監視,確定其類型及判斷是否需要觸發檢查點,是否需要內存頁面同步。如果需要,正在主機節點中運行中的客戶虛擬機系統被停止,並且從上一次檢查點之後到此檢查點周期內的內存頁面修改內容進行收集並傳送到備用節點上的內存同步進程中。一旦從主機節點捕獲到內存頁面修改內容,客戶虛擬機系統VM將再次繼續運行…從主機節點上運行的內存同步進程,會將修改過的頁面內容映射到本地內存中,並觸發一組執行請求,分別釋放主機節點I/O緩衝區中的網絡傳輸請求和從主機節點I/O緩衝區中的磁碟寫請求。特別需要注意的是磁碟寫請求僅被保持(Hold)在從主機節點上,因此從主機磁碟內容代表「執行檢查點前」的鏡像數據,如果檢查點完成之前主機節點發生宕機,從機節點保存的是上一個檢查點完成的數據,並重新生成I/O傳輸請求。在恢復過程中,會通過磁碟鏡像方式保障兩側數據的一致性。這種做法,可以避免故障轉移期間磁碟數據重複寫入。
[0040]在一個實施例中,所述基於虛擬內存同步的容錯方法還包括:
[0041]步驟S3,當所述主用設備發生故障時,停止所述主用設備的所述客戶虛擬機的運行,並啟動所述備用設備的客戶虛擬機的運行,讓所述備用設備接管所述主用設備的工作。具體地,當所述故障管理模塊檢測到所述主用設備發生故障時,停止所述主用設備的所述客戶虛擬機的運行,並啟動所述備用設備的客戶虛擬機的運行及I/o對外通信,接受客戶端訪問管理運行;完成一次對所述虛擬客戶機訪問控制的轉移。在一個實施例中,虛擬機客戶機內存遷移過程中不會使用I/o緩衝區,一次成功的內存遷移結束後,會有一個短暫網絡請求停頓,客戶虛擬機在原備用節點上運行並確認檢查點周期,然而這個網絡請求停頓周期小於I毫秒,對於業務網絡傳輸來說可以忽略不計的,乙太網連結狀態和TCP數據傳輸不受任何影響。因此兌現了任意主機故障發生時,業務切換零秒中斷。此時,由於主用設備(主機)節點發生故障,虛擬內存同步進程停止運行,客戶虛擬機已不再容錯運行,它被稱為「降級」狀態,工作狀態為單工模式。磁碟1/0(寫入)複製停止。
[0042]在客戶虛擬機的虛擬內存同步過程中,客戶虛擬機的活動狀態包括以下幾種:1,開機/啟動狀態:啟動客戶虛擬機系統後一段時間,一旦網絡通信通順,狀態可以轉換到「運行」。這個狀態之前的過程,稱為「啟動」。2,正在停止/停止狀態:關閉請求已發送到客戶虛擬機作業系統。直到虛擬機斷開連接內部總線,它表示在一個「正在停止」狀態。之後,定義為停止狀態。3,正在運行狀態:當可以確認客戶虛擬機的網絡通信和磁碟讀寫狀態成立,該狀態被表示為「正在運行」。4,遷移狀態:當一個客戶虛擬機訪問權限在主用設備節點到備用設備節點間遷移(直到它已成功轉移至從節點上運行)的狀態,定義為「遷移」。
[0043]本發明還提供一種計算機容錯系統。在一個實施例中,如圖3所示,計算機容錯系統I包括主用設備11與備用設備12。所述主用設備11可以為主伺服器或主機等,所述備用設備12是和所述主用設備11的軟硬體設置完全相同的設備,包括從伺服器、從機等。所述主用設備11和備用設備12都包括建立在虛擬化內核上的客戶虛擬機。所述主用設備(主機、主伺服器、主機節點等)11和備用設備(從機、從伺服器、從機節點等)12之間通常基於同步乙太網絡級聯、無透明橋接NTB (None Transparent Bridge)級聯或者infiniband網絡級聯方式,從機節點也必須依據足夠的帶寬用於檢測點(內存頁面數據同步)的通信需要。
[0044]所述主用設備11包括客戶虛擬機模塊111、同步軟體模塊112以及故障管理模塊113 ;所述備用設備12包括客戶虛擬機模塊121、同步軟體模塊122以及故障管理模塊123。所述計算機容錯系統I運行時,所述主用設備11與所述備用設備12的同步軟體模塊(112和122)、故障管理模塊(113和123)、客戶虛擬機模塊(111和112)都運行在虛擬化內核上,分別對應所述虛擬化內核上的同步軟體進程、故障管理進程、客戶虛擬機。即所述主用設備11的同步軟體模塊(112)、故障管理模塊(113)、客戶虛擬機模塊(111)都運行在所述主用設備11的虛擬化內核上,分別對應主用設備11的所述虛擬化內核上的同步軟體進程(112)、故障管理進程(113)、客戶虛擬機(111)。所述備用設備12的同步軟體模塊(122)、故障管理模塊(123)、客戶虛擬機模塊(112)都運行在所述備用設備12的虛擬化內核上,分別對應備用設備12的所述虛擬化內核上的同步軟體進程(122)、故障管理進程(123)、客戶虛擬機(121)。
[0045]所述客戶虛擬機(111和121)用於實現應用程式的運行。其中,主用設備11的所述客戶虛擬機111處於運行狀態,所述備用設備12的所述客戶虛擬機121處於停止狀態。
[0046]所述同步軟體模塊或同步軟體進程(112和122)用於預設虛擬內存同步的觸發條件,當所述觸發條件發生時,實現主用設備11與所述備用設備12之間的虛擬內存同步。所述虛擬內存同步的觸發條件可以包括:主用設備上虛擬客戶機系統的I/O狀態變化。具體地,I/O狀態變化不僅包括存儲I/O狀態或網絡I/O狀態變化,而且這個變化不局限於數據變化,包括各種I/o請求變化,各類狀態變化。系統中主用設備11的每次I/O狀態變化都會被監視,確定其類型及判斷是否需要觸發檢查點,是否需要內存頁面同步。在一個實施例中,主從設備之間虛擬內存同步的觸發條件是,主用設備上虛擬客戶機系統的I/o狀態變化,包括磁碟、網絡數據變化、資源佔用狀態、時間狀態和連結狀態等等。
[0047]所述主用設備11與所述備用設備12之間虛擬內存同步的實現方法包括:停止所述主用設備11的所述客戶虛擬機111,確定從上一次所述觸發條件發生到當前所述觸發條件發生時客戶虛擬機111中頁面內容發生改變的虛擬內存頁,並對所述頁面內容發生改變的虛擬內存頁進行同步,使得所述備用設備12中所述客戶虛擬機121的相應的虛擬內存頁的內容與所述主用設備11中所述頁面內容發生改變的虛擬內存頁的內容一致;重新啟動所述客戶虛擬機111運行,所述客戶虛擬機111完成本次虛擬內存同步中的所包含的I/o操作,並以磁碟鏡像方式保證所述主用設備11的磁碟數據與所述備用設備12的磁碟數據—致。
[0048]所述觸發條件發生時,將停止所述主用設備11的所述客戶虛擬機111,即保持(Held)主機為「準備」的狀態,這種「準備」狀態被稱為檢查點(Checkpoint)或檢測點。一次觸發條件發生到下一個觸發條件發生的時間間隔,即一個檢查點到另一個檢查點的時間,可稱為檢查點周期。在一個實施例中,確定從上一次所述觸發條件發生到當前所述觸發條件發生時客戶虛擬機111中頁面內容發生改變的虛擬內存頁,並將所有的所確定的虛擬內存頁的內容傳輸到所述備用設備12,使得所述備用設備12中所述客戶虛擬機121的與所述所確定的虛擬內存頁相應的虛擬內存頁的內容與所述主用設備11中所確定的虛擬內存頁的內容一致。具體地,主用設備11將記錄在一個檢查點周期內發生的虛擬內存頁面修改情況,在進行與備用設備12的虛擬內存同步時,只對所述發送修改的虛擬內存頁面進行同步,以實現所述備用設備12的客戶虛擬機121的頁面內容與所述主用設備11的客戶虛擬機111的頁面內容完全一致。該方法為通常在虛擬內存同步中採用的方法。在另一個實施例中,在進行與備用設備12的虛擬內存同步時,將主用設備11中所述客戶虛擬機111的所有的虛擬內存頁的內容傳輸到所述備用設備12中,使得所述備用設備12中所述客戶虛擬機121中所有的虛擬內存頁與所述主用設備11中所述客戶虛擬機111的相應的虛擬內存頁一致。即對所述主用設備11中的所有虛擬內存頁面進行同步,以實現所述備用設備12的客戶虛擬機121的頁面內容與所述主用設備11的客戶虛擬機111的頁面內容完全一致。接著,將重新啟動所述主用設備11的所述客戶虛擬機111運行,所述主用設備11的所述客戶虛擬機111完成本次虛擬內存同步中的所包含的I/o操作,並保證所述主用設備11的磁碟數據與所述備用設備12的磁碟數據一致。
[0049]業務網絡傳輸必須圍繞一個檢查點進行同步,網絡傳輸依託「I/O緩衝區」,每一個檢查點周期內同步結束後,I/o新請求才得以釋放,並準備執行下一個檢查點周期。單位時間內檢查點發生的次數被稱為檢查點率,單位可以包括「每秒周期」。計算機系統中應用負載的特性決定了檢查點的周期頻率。檢查點周期內收集有多少內存頁面已被修改,主要取決於網絡1/0(發送)速率。每秒減少檢查點的周期,客戶作業系統有更大的潛力來做大量地運算。較高的檢查點率,代表可衡量的資源佔用。通常小於200周期每秒意味著系統並不繁忙。檢查點的周期會佔用物理機內存資源和同步網絡帶寬。較高的檢查點率,將導致在I/O緩衝區的釋放周期與I/O網絡延遲都會更小。隨著網絡活動的增加,更頻繁的檢查點周期與所產生到的延遲減小。為保障客戶應用的實效性,虛擬I/o請求響應包括磁碟和網絡均採用流量控制措施。在一個實施例中,對於網絡(每個虛擬網卡)為每秒最大5MB文件傳輸帶寬,對於磁碟,最大每秒50MB文件讀寫。
[0050]在一個實施例中,主用設備11 (包括主機或主伺服器等)為主機節點。主機節點的存儲和網絡I/O操作都被關聯到內存同步進程中,網絡狀態被保持(Hold)在活躍的主機節點I/O緩衝區中,存儲讀寫狀態在主節點上執行,但是存儲寫狀態在從節點上被保持(Hold)在I/O緩衝區中。每次網絡傳輸請求都會被監視,確定其類型及判斷是否需要觸發檢查點,是否需要內存頁面同步。如果需要,正在主機節點中運行中的客戶虛擬機系統111被停止,並且從上一次檢查點之後到此檢查點周期內的內存頁面修改內容進行收集並傳送到備用節點上的內存同步進程中。一旦從主機節點捕獲到內存頁面修改內容,客戶虛擬機系統VM將再次繼續運行…從主機節點上運行的內存同步進程,會將修改過的頁面內容映射到本地內存中,並觸發一組執行請求,分別釋放主機節點I/O緩衝區中的網絡傳輸請求和從主機節點I/O緩衝區中的磁碟寫請求。特別需要注意的是磁碟寫請求僅被保持(Hold)在從主機節點上,因此從主機磁碟內容代表「執行檢查點前」的鏡像數據,如果檢查點完成之前主機節點發生宕機,從機節點保存的是上一個檢查點完成的數據,並重新生成I/O傳輸請求。在恢復過程中,會通過磁碟鏡像方式保障兩側數據的一致性。
[0051]所述故障管理模塊或故障管理進程(113和123)用於實現對所述主用設備硬體、所述客戶虛擬機(111和121)以及所述同步軟體模塊(112和122)的管理與故障恢復。具體地,當所述故障管理模塊檢測到所述主用設備發生故障時,停止所述主用設備的所述客戶虛擬機的運行,並啟動所述備用設備的客戶虛擬機的運行。進一步地,當所述故障管理模塊檢測到所述主用設備發生故障時,停止所述主用設備的所述客戶虛擬機的運行,並啟動所述備用設備的客戶虛擬機的運行及I/o對外通信,接受客戶端訪問管理運行;完成一次對所述虛擬客戶機訪問控制的轉移。
[0052]在一個實施例中,如圖4所示,圖中的故障檢測(即故障管理模塊113和123)通過私有網絡相連,網絡控制模塊負責內存同步進程(內存同步模塊112和122實現)執行主用設備11和備用設備12之間的虛擬內存同步的數據傳輸。當主用設備11發生故障時,將實現虛擬客戶機的遷移,即從主用設備11的虛擬客戶機111運行遷移到備用設備12的虛擬客戶機121上運行。虛擬客戶機內存遷移過程中(從虛擬客戶機111遷移到虛擬客戶機121運行)不會使用I/O緩衝區。此時,備用設備12將變成主用設備11運行虛擬客戶機(121變成111),原來的主用設備將停止使用。一次成功的內存遷移結束後,會有一個短暫網絡請求停頓,客戶虛擬機111在原備用節點上運行並確認檢查點周期,然而這個網絡請求停頓周期小於I毫秒,對於業務網絡傳輸來說可以忽略不計的,乙太網連結狀態和TCP數據傳輸不受任何影響。因此兌現了任意主機故障發生時,業務切換零秒中斷。此時,如果主用設備(主機)節點發生宕機故障,虛擬內存同步進程停止運行,客戶虛擬機111已不再容錯運行,它被稱為「降級」狀態,工作狀態為單工模式。只會運行在單一主用設備上,磁碟I/o複製進程停止運行。更重要的是,如果原來主用設備(主機)11節點故障,但非停機狀態,如網絡中斷,風扇故障等,虛擬客戶機雖然發生遷移,即從主用設備11的虛擬客戶機111運行遷移到備用設備12的虛擬客戶機121上運行。但是虛擬內存同步進程依舊正常運行,磁碟同步也正常進行。只是原備用設備12將變成主用設備11,虛擬客戶機執行了遷移(121變成111)。此時虛擬客戶機111處於部分單元的容錯狀態,它也被稱為「降級」狀態,工作狀態為非完全容錯模式。正是因為這個特徵優勢,可以實現所述主用設備與所述備用設備的故障交叉出現,或稱為交叉配合工作,比如,所述主用設備網絡節點發送故障,所述備用設備磁碟節點發生故障,所述虛擬客戶機依舊正常運行。
[0053]在一個實施例中,計算機容錯系統將兩臺配置相同的伺服器I號網口(NIC I)對連(一臺為主機,一臺為從機),採用超五類雙絞線。將集成的雙萬兆網口對聯,採用多模光纖跳線LC接頭。採用的是KVM虛擬化內核,安裝開源宿主系統Cent OS Linux6.5或以上版本,安裝KVM虛擬機組件並啟用。應用程式APP或資料庫等在虛擬客戶機(121變成111)上運行,同步軟體模塊(112和122)包括提供內存同步和選擇仲裁服務,避免同步連結中斷時系統發生「腦裂」現象。故障管理模塊(113和123)創建了一個DomainO虛擬主機,可以選擇Cent OS或者其他主流品牌的Linux系統;並採用了 Apache tomcat Server來自定義開發用戶界面Π (User interface) 0故障管理模塊(113和123)導入伺服器主板IPMI數據包,能夠實現對整個容錯系統的瀏覽器方式維護,維護對象包括主機硬體,客戶虛擬機及同步運行狀態,具備資源配置和故障處理功能。
[0054]綜上所述,本發明一種計算機容錯方法及系統,具有以下有益效果:能夠預防故障停機風險,當主用設備發生故障時,業務將遷移到備用設備,由於備用設備的內存數據在檢查點保持與主用設備的內存數據同步,因此作業系統及軟體程序可以連續運行不受影響,業務零秒遷移,應用連續不間斷,無任何數據丟失,可靠性更高;並且該技術方案獨立於作業系統層,應用更為廣泛。所以,本發明有效克服了現有技術中的種種缺點而具高度產業利用價值。
[0055]上述實施例僅例示性說明本發明的原理及其功效,而非用於限制本發明。任何熟悉此技術的人士皆可在不違背本發明的精神及範疇下,對上述實施例進行修飾或改變。因此,舉凡所屬【技術領域】中具有通常知識者在未脫離本發明所揭示的精神與技術思想下所完成的一切等效修飾或改變,仍應由本發明的權利要求所涵蓋。
【權利要求】
1.一種計算機容錯方法,應用於包括主用設備和備用設備的計算機容錯系統中,其特徵在於,所述主用設備和備用設備都包括建立在虛擬化內核上的客戶虛擬機,所述計算機容錯方法包括: 預設虛擬內存同步的觸發條件; 當所述觸發條件發生時,完成一次所述主用設備和所述備用設備的虛擬內存同步。
2.根據權利要求1所述的計算機容錯方法,其特徵在於:所述計算機容錯方法還包括:當所述主用設備發生故障時,停止所述主用設備的所述客戶虛擬機的運行,並啟動所述備用設備的客戶虛擬機的運行,讓所述備用設備接管所述主用設備的工作。
3.根據權利要求1所述的計算機容錯方法,其特徵在於:所述完成一次所述主用設備和所述備用設備的虛擬內存同步包括:暫停所述主用設備的所述客戶虛擬機的運行,實現所述備用設備的客戶虛擬機的內存頁面內容與所述主用設備的客戶虛擬機的內存頁面內容完全一致;重新啟動所述主用設備的所述客戶虛擬機運行,所述主用設備的所述客戶虛擬機完成本次虛擬內存同步中的所包含的I/o操作,並保證所述主用設備的磁碟數據與所述備用設備的磁碟數據完全一致。
4.根據權利要求3所述的計算機容錯方法,其特徵在於:所述實現所述備用設備的客戶虛擬機的頁面內容與所述主用設備的客戶虛擬機的頁面內容完全一致包括:確定從上一次所述觸發條件發生到當前所述觸發條件發生時客戶虛擬機中頁面內容發生改變的虛擬內存頁,並將所有的所確定的虛擬內存頁的內容傳輸到所述備用設備,使得所述備用設備中所述客戶虛擬機的與所述所確定的虛擬內存頁相應的虛擬內存頁的內容與所述主用設備中所確定的虛擬內存頁的內容一致。
5.根據權利要求1所述的計算機容錯方法,其特徵在於:所述虛擬內存同步的觸發條件包括:所述主用設備的所述虛擬客戶機上發生I/o狀態變化。
6.一種計算機容錯系統,包括主用設備與備用設備,其特徵在於:所述主用設備與所述備用設備都包括同步軟體模塊、故障管理模塊、客戶虛擬機模塊;所述計算機容錯系統運行時,所述主用設備與所述備用設備的同步軟體模塊、故障管理模塊、客戶虛擬機模塊都運行在虛擬化內核上,分別對應所述虛擬化內核上的同步軟體進程、故障管理進程、客戶虛擬機; 其中: 所述客戶虛擬機用於實現應用程式的運行;主用設備的所述客戶虛擬機處於運行狀態,所述備用設備的所述客戶虛擬機處於同步運行但不可被訪問管理狀態; 所述同步軟體進程用於預設虛擬內存同步的觸發條件,當所述觸發條件發生時,實現主用設備與所述備用設備之間的虛擬內存同步;主用設備的所述同步軟體進程處於運行狀態,所述備用設備的所述同步軟體進程處於同步運行但不可被訪問管理狀態; 所述故障管理進程用於實現對所述主用和備用設備的硬體、所述客戶虛擬機以及所述同步軟體進程的管理與故障恢復;主用設備的所述故障管理進程處於運行狀態,所述備用設備的所述故障管理進程處於同步運行但不可被訪問管理狀態。
7.根據權利要求6所述的計算機容錯系統,其特徵在於:所述虛擬內存同步的實現方法包括:暫停所述主用設備的所述客戶虛擬機運行,確定從上一次所述觸發條件發生到當前所述觸發條件發生時客戶虛擬機中頁面內容發生改變的虛擬內存頁,並對所述頁面內容發生改變的虛擬內存頁進行同步,使得所述備用設備中所述客戶虛擬機的相應的虛擬內存頁的內容與所述主用設備中所述頁面內容發生改變的虛擬內存頁的內容一致;同時,主用設備與備用設備將內存頁內容寫入到各自的邏輯磁碟卷中,然後釋放I/o緩衝區;重新恢復所述主用設備的所述客戶虛擬機運行,所述主用設備的所述客戶虛擬機完成本次虛擬內存同步中的所包含的I/o讀寫操作,並保證所述主用設備的磁碟數據與所述備用設備的磁碟數據一致。
8.根據權利要求6所述的計算機容錯系統,其特徵在於:所述虛擬內存同步的觸發條件包括:所述主用設備的所述客戶虛擬機發生I/O狀態變化。
9.根據權利要求6所述的計算機容錯系統,其特徵在於:所述虛擬客戶機上的存儲I/O操作最大讀寫速度為50MB每秒。
10.根據權利要求6所述的計算機容錯系統,其特徵在於:所述虛擬客戶機上的網絡I/O操作最大讀寫速度為5MB每秒。
11.根據權利要求6所述的計算機容錯系統,其特徵在於:當所述主用設備的所述故障管理進程檢測到所述主用設備發生故障時,停止所述主用設備的所述客戶虛擬機的運行,並啟動所述備用設備的客戶虛擬機的運行,啟動所述備用設備的同步軟體進程以及故障管理進程的運行,讓所述備用設備接管所述主用設備的工作。
【文檔編號】G06F11/20GK104391764SQ201410632804
【公開日】2015年3月4日 申請日期:2014年11月11日 優先權日:2014年10月22日
【發明者】杜志軍, 許葉峰, 馮智宏, 鍾豪, 張志強, 張麗娟 申請人:上海海得控制系統股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀