操作系統層次的工作階段容錯的移轉方法及系統的制作方法【專利摘要】本公開提供一種操作系統層次的工作階段容錯的移轉方法以及使用該方法的系統。該方法包含以下步驟。當伺服器操作系統失效時,選擇虛擬機器進行容錯的移轉。通過相應于此虛擬機器的超級監督程序將虛擬機器的存儲器及本地儲存裝置映射至分散式共享存儲器及云端儲存空間中的失效伺服器操作系統使用的實體存儲器空間及實體儲存空間,以及通過此超級監督程序從分散式快取系統取得失效伺服器操作系統的操作系統狀態。【專利說明】操作系統層次的工作階段容錯的移轉方法及系統
技術領域:
[0001]本發明涉及一種容錯的移轉技術,特別涉及一種操作系統層次的工作階段容錯的移轉方法以及使用該方法的系統。【
背景技術:
】[0002]多層式架構是一種客戶端-伺服器架構,其中,使用者接口、功能處理邏輯、數據儲存及數據存取執行于獨立的模塊中,通常是運行在不同的平臺。多個節點協同運作于一個客戶端工作階段,起始于一個前端,用以完成一個客戶端具狀態的傳輸控制協議/網際網絡協議(TCP/IP,Transmiss1nControlProtocol/InternetProtocol)通信,經過一或多個實施應用程序邏輯的層,并且結束于管理一致性數據的數據庫或儲存伺服器。然而,操作系統層次的錯誤通常難以恢復,造成應用程序中的數據遺失。因此,需要一種操作系統層次的工作階段容錯的移轉方法以及使用該方法的系統,用以解決如上所述的缺陷。【
發明內容】[0003]本發明的實施例提出一種操作系統層次的工作階段容錯的移轉方法,包含以下步驟。當伺服器操作系統失效時,選擇虛擬機器進行容錯的移轉。通過相應于此虛擬機器的超級監督程序將虛擬機器的存儲器及本地儲存裝置映射至分散式共享存儲器及云端儲存空間中的失效伺服器操作系統使用的實體存儲器空間及實體儲存空間,以及通過此超級監督程序從分散式快取系統取得失效伺服器操作系統的操作系統狀態。[0004]本發明的實施例提出一種操作系統層次的工作階段容錯的移轉,包含伺服器操作系統、虛擬機器、分散式快取系統、分散式共享存儲器及云端儲存空間以及健康監督器。健康監督器用以當伺服器操作系統失效時,選擇此虛擬機器進行容錯的移轉;通過相應于虛擬機器的超級監督程序將虛擬機器的存儲器及本地儲存裝置映射至分散式共享存儲器及云端儲存空間中的失效伺服器操作系統使用的實體存儲器空間及實體儲存空間;以及通過超級監督程序從分散式快取系統取得失效伺服器操作系統的操作系統狀態。【附圖說明】[0005]圖1是依據本發明實施例的操作系統層次的工作階段容錯的移轉系統的系統架構圖。[0006]圖2A是依據本發明實施例的多層次架構示意圖。[0007]圖2B是依據本發明實施例的容錯的移轉后的多層次架構示意圖。[0008]圖3是依據本發明實施例的計算機裝置的系統架構圖。[0009]圖4是依據本發明實施例的沖洗更新交易方法流程圖。[0010]圖5是依據本發明實施例的周期性檢查示意圖。[0011]圖6是依據本發明實施例的容錯的移轉方法流程圖。[0012]附圖標iP,說曰月:[0013]110客戶端;[0014]130負載平衡單元;[0015]150A、150B、150C實體計算裝置;[0016]151A、151B、151C虛擬機器;[0017]153A、153B、153C超級監督程序;[0018]170分散式快取系統;[0019]190分散式共享存儲器及云端儲存空間;[0020]160_1、160_2、…、160_i數據庫前端模塊;[0021]170_1、170_2、…、170_i巨量數據儲存節點;[0022]210瀏覽器;[0023]220A、220B通信協議連線;[0024]230A、230B應用程序;[0025]240A、240B數據庫連線;[0026]250數據庫;[0027]310處理單元;[0028]320顯示單元;[0029]330輸入裝置;[0030]340儲存裝置;[0031]350存儲器;[0032]360通信接口;[0033]S411?S471方法步驟;[0034]t時間區間;[0035]S611?S657方法步驟。【具體實施方式】[0036]以下說明是為完成發明的較佳實現方式,其目的在于描述本發明的基本精神,但并不用以限定本發明。實際的【
發明內容】必須參考的權利要求范圍。[0037]必須了解的是,使用于本說明書中的“包含”、“包括”等詞,是用以表示存在特定的技術特征、數值、方法步驟、操作處理、元件以及/或組件,但并不排除可加上更多的技術特征、數值、方法步驟、操作處理、元件、組件,或以上的任意組合。[0038]于權利要求中使用如“第一”、“第二〃、“第三〃等詞是用來修飾權利要求中的元件,并非用來表示之間具有優先權順序,先行關系,或者是一個元件先于另一個元件,或者是執行方法步驟時的時間先后順序,僅用來區別具有相同名字的元件。[0039]圖1是依據本發明實施例的操作系統層次的工作階段容錯的移轉系統的系統架構圖。負載平衡單元(loadbalancer)130可包含健康監督器(healthmonitor),用以接收虛擬機器(VMOS,VirtualMachine)定期發送心跳信號(heartbeatsignal)。當健康監督器接收到一個虛擬機器發送的心跳信號及代表此虛擬機器仍持續正常運行。當健康監督器于一段預設時間后都沒有接收到一個虛擬機器的心跳信號,則判斷此虛擬機器失效,并觸發容錯的移轉處理。于此需注意的是,健康監督器也可以不整合于負載平衡單元130內,而為一個獨立的模塊。執行于實體計算裝置中的虛擬機器,例如虛擬機器151A,通常需要存儲器儲存工作階段中需要的數據,例如,執行變數(runtimevariables)、數據表(datatables)、與客戶端110進行加密通信的憑證(certificate)、與數據庫進行數據庫連線的憑證等,以及儲存裝置,用以儲存各式各樣的電子文件,例如,網頁、文件、音頻文件、視頻文件等。虛擬機器151A又可稱為伺服器操作系統(serverOS),用以根據客戶端110的請求提供各式各樣的應用程序服務。虛擬機器151A并不直接使用實體計算裝置150A中的存儲器和儲存裝置來儲存工作階段中所需要的數據以及各式各樣的電子文件,而是通過超級監督程序153A將工作階段中所需要的數據以及各式各樣的電子文件儲存至分散式共享存儲器及云端儲存空間(distributedshare-memory-and-cloud-storage)190。當虛擬機器151A失效時,健康監督器可啟動虛擬機器151B(又可稱為胚胎虛擬機器embryoVM),并且將啟動的虛擬機器151B使用的存儲器及本地儲存裝置映射(map)至先前虛擬機器151A使用的分散式共享存儲器及云端儲存空間190中的實體存儲器空機及實體儲存空間,使得先前執行于虛擬機器151A的應用程序依然可通過虛擬機器151B存取分散式共享存儲器及云端儲存空間中的數據及文件。于此需注意的是,另一種容錯的移轉的方法可將儲存于實體計算裝置150A中的存儲器和儲存裝置的數據和文件迀移(migrate)到實體計算裝置150B中的存儲器和儲存裝置。然而,數據和文件的迀移會耗費大量的時間而無法在逾時(timeout)前將應用程序的執行移轉至新啟動的虛擬機器,造成工作階段失敗(sess1nfail)。而使用如上所述的映射方法可降低工作階段失敗的風險。對應于虛擬機器151A、151B及151C的操作系統狀態(OSstates)儲存于分散式快取系統(distributedcachesystem)170。虛擬機器151A、151B及151C分別通過超級監督程序(hypervisor)153A、153B及153C存取分散式快取系統170及分散式共享存儲器及云端儲存空間190中的數據與文件。超級監督程序153A、153B或153C負責與分散式快取系統170間進行錯誤控制(例如處理封包丟失的情況)以及與分散式共享存儲器及云端儲存空間190間進行錯誤控制。此外,超級監督程序153A、153B或153C負責操作實施于高可用環境(例如數據鏡像技術)的分散式快取系統170與分散式共享存儲器及云端儲存空間190。超級監督程序可確保相應的虛擬機器獲得正確的數據或文件。虛擬機器151B可通過超級監督程序153B從分散式快取系統170取得虛擬機器151A發生錯誤前的最后操作系統狀態,以及從分散式共享存儲器及云端儲存空間190取得虛擬機器151A發生錯誤前的最后工作階段數據以及文件。[0040]于容錯的移轉時,虛擬機器151B可重建所需的連線。舉例來說,圖2A是依據本發明實施例的多層次架構示意圖。執行于虛擬機器151A的應用程序230A與瀏覽器210(又可稱為先行層)間建立通信協議連線220A,并且將通信協議憑證儲存于分散式共享存儲器及云端儲存空間190中所配置的實體存儲器空間。此外,執行于虛擬機器151A的應用程序230A與數據庫250(又可稱為接續層)間建立數據庫連線240A,并且將數據庫憑證儲存于分散式共享存儲器及云端儲存空間190中所配置的實體存儲器空間。圖2B是依據本發明實施例的容錯的移轉后的多層次架構示意圖。當應用程序230A發生錯誤時,可將應用程序230A中的工作(tasks)移轉至虛擬機器151B中執行的應用程序230B。應用程序230B取得映射的存儲器中的通信協議憑證,并且使用此通信協議憑證與瀏覽器210間建立新的通信協議連線220B,以及,取得映射的存儲器中的數據庫憑證,并且使用此數據庫憑證與數據庫250間建立新的數據庫連線240B。[0041]負載平衡單元130、虛擬機器151A及超級監督程序153A可整合于一部計算機裝置中,也可分散在不同的計算機裝置。類似地,成對的虛擬機器151B及超級監督程序153B,或者,成對的虛擬機器151C及超級監督程序153C可整合于一部計算機裝置中,也可分散在不同的計算機裝置。分散式快取系統170可包含多部的計算機裝置,用以儲存及鏡射相應于伺服器操作系統的操作系統狀態。分散式共享存儲器及云端儲存空間190可包含多部的計算機裝置,用以實施相應于伺服器操作系統的存儲器及本地儲存裝置。圖3是依據本發明實施例的計算機裝置的系統架構圖。處理單元310可使用多種方式實施,例如以專用硬件電路或通用硬件(例如,單一處理器、具平行處理能力的多處理器、圖形處理器或其他具運算能力的處理器),并且在執行程序碼或軟件時,提供之后所描述的功能。系統架構另包含存儲器350用以儲存執行過程中需要的數據,例如,執行變數、數據表、操作系統狀態以及與客戶端Il0進行加密通信的憑證等,以及儲存裝置340,用以儲存各式各樣的電子文件,例如,網頁、文件、音頻文件、視頻文件等。系統架構另包含通信接口360,讓處理單元310可藉以跟其他電子裝置進行溝通。通信接口360可以是區域網絡(localareanetwork,LAN)通信模塊或無線區域網絡通信模塊(WLAN)。輸入裝置330可包含鍵盤、鼠標、觸控面板等。使用者可按壓鍵盤上的硬鍵來輸入字元,通過操作鼠標來控制鼠標,或者是在觸控面板制造手勢來控制執行中的應用程序。手勢可包含單擊、雙擊、單指拖曳、多指拖曳等,但不限定于此。顯示單元320可包含顯示面板(例如,薄膜液晶顯示面板、有機發光二極管面板或其他具顯示能力的面板),用以顯示輸入的字元、數字、符號、拖曳鼠標的移動軌跡、繪制的圖案或應用程序所提供的畫面,提供給使用者觀看。[0042]圖4是依據本發明實施例的沖洗更新交易方法流程圖。此方法當伺服器操作系統中的程序碼被處理單元310載入并執行時實施。此方法周期性檢查是否到達檢查點(步驟S411),并且執行后續的沖洗更新及恢復程序(步驟S431至S471)。沖洗更新及恢復程序是將一段時間中針對分散式快取系統170以及分散式共享存儲器及云端儲存空間190的交易(transact1ns)搜集成一個原子操作(atomicoperat1n),并且在原子操作中的任一交易失敗時恢復原子操作中已經執行過的交易。圖5是依據本發明實施例的周期性檢查示意圖。處理單元110每隔一段時間t,執行如圖4所示的方法流程。詳細來說,于時間到達檢查點后(步驟S411),紀錄沖洗更新前的狀態(步驟S431)。于步驟S431,這些狀態包含分散式快取系統170中關聯于伺服器操作系統的操作系統狀態、分散式共享存儲器及云端儲存空間190中關聯于伺服器操作系統的數據與文件、針對分散式快取系統170的未沖洗更新交易以及針對分散式共享存儲器及云端儲存空間190的未沖洗更新交易。針對分散式快取系統170的未沖洗更新交易包括新增、刪除及更新操作系統狀態。針對分散式共享存儲器及云端儲存空間190的未沖洗更新交易包含新增、刪除及更新工作階段中需要的數據,以及各式各樣的電子文件。接著,判斷最近一次的沖洗更新是否失敗(步驟S433),若是則繼續累積針對分散式快取系統170以及分散式共享存儲器及云端儲存空間190的交易至下一個檢查點(步驟S411);否則,執行沖洗更新程序(步驟S435)。于此需注意的是,當最近一次的沖洗更新失敗時,更新狀態旗標設為“偽”值。于步驟S433,伺服器操作系統可通過更新狀態旗標判斷最近一次的沖洗更新是否失敗。于步驟S435,伺服器操作系統執行原子操作中針對分散式快取系統170以及分散式共享存儲器及云端儲存空間190的所有交易,并且搜集每一個交易的執行結果(成功或失敗)。于執行沖洗更新程序后(步驟S435),進行兩個判斷:包含判斷所有針對分散式快取系統170的交易是否成功(步驟S451),以及判斷所有針對分散式共享存儲器及云端儲存空間190的交易是否成功(步驟S453)。當兩個條件都滿足時(步驟S451中“是”的路徑及S453中“是”的路徑),則代表這次的沖洗更新程序成功,并繼續累積新的交易至下一個檢查點(步驟S411)。當兩個條件都滿足時,伺服器操作系統更將更新狀態旗標設為“真”值。當其中一個條件不滿足時(步驟S451中“否”的路徑或步驟S453中“否”的路徑),恢復至沖洗更新前的狀態(步驟S471)。于步驟S471,伺服器操作系統更將更新狀態旗標設為“偽”值。[0043]圖6是依據本發明實施例的容錯的移轉方法流程圖。此方法當相關程序碼被處理單元310載入并執行時實施。首先,健康監督器周期性的判斷伺服器操作系統是否失效(步驟S611)。一旦檢測到伺服器操作系統失效時(步驟S611中“是”的路徑),健康監督器選擇一個虛擬機器(又可稱為胚胎虛擬機器)進行容錯的移轉(步驟S613)。胚胎虛擬機器是指一個空的虛擬機器,并沒有映射到分散式共享存儲器及云端儲存空間190中的任何的實體存儲器與儲存裝置,亦沒有儲存任何的操作系統狀態。接著,一方面,健康監督器停止伺服器操作系統(步驟S631)。另一方面,健康監督器將胚胎虛擬機器的媒體存取控制(MAC,MediaAccessControl)位址改為相同于失效伺服器操作系統的媒體存取控制位址(步驟S651),通過相應的超級監督程序將胚胎虛擬機器的存儲器及本地儲存裝置映射至分散式共享存儲器及云端儲存空間190中的失效伺服器操作系統的實體存儲器空間及實體儲存空間(步驟S653),通過相應的超級監督程序從分散式快取系統170取得失效伺服器操作系統的操作系統狀態(步驟S655),以及使用映射的實體存儲器空間中工作階段所需要的數據,例如執行變數、數據表、憑證等,重新建立胚胎虛擬機器與先行層及接續層的連線(步驟S657)。舉例來說,當健康監督器選擇虛擬機器151B進行容錯的移轉時(步驟S613),通過超級監督程序153B進行存儲器及本地儲存裝置的映射(步驟S653),以及取得操作系統狀態(步驟S655)。此外,步驟S657的實例可參考圖2A及圖2B的描述。于此需注意的是,當完成步驟S651至S657的組態后,虛擬機器151B成為新的伺服器操作系統。一旦虛擬機器151B成為新的伺服器操作系統后,執行如圖4所述的沖洗更新交易方法。[0044]雖然圖1中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,以實現更佳的技術效果。此外,雖然圖4及圖6的方法流程圖采用特定的順序來執行,但是在不違法發明精神的情況下,本領域技術人員可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明并不局限于僅使用如上所述的順序。[0045]雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述并非用以限縮本發明。相反地,此發明涵蓋了本領域技術人員顯而易見的修改與相似設置。所以,權利要求保護范圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。【主權項】1.一種操作系統層次的工作階段容錯的移轉方法,由一處理單元執行,包含:當一伺服器操作系統失效時,選擇一虛擬機器進行容錯的移轉;通過相應于上述虛擬機器的一超級監督程序將上述虛擬機器的一存儲器及一本地儲存裝置映射至一分散式共享存儲器及云端儲存空間中的上述失效伺服器操作系統使用的一實體存儲器空間及一實體儲存空間;以及通過上述超級監督程序從一分散式快取系統取得上述失效伺服器操作系統的一操作系統狀態。2.如權利要求1所述的操作系統層次的工作階段容錯的移轉方法,其中,于一段預設時間后都沒有接收到上述伺服器操作系統的一心跳信號,判斷上述伺服器操作系統失效。3.如權利要求1所述的操作系統層次的工作階段容錯的移轉方法,還包含:將上述虛擬機器的一媒體存取控制位址改為相同于上述失效伺服器操作系統的媒體存取控制位址。4.如權利要求3所述的操作系統層次的工作階段容錯的移轉方法,還包含:從上述映射實體存儲器空間取得一第一憑證,并且使用上述第一憑證與上述虛擬機器的一先行層間建立一第一連線;以及從上述映射實體存儲器空間取得一第二憑證,并且使用上述第二憑證與上述虛擬機器的一接續層間建立一第二連線。5.如權利要求4所述的操作系統層次的工作階段容錯的移轉方法,還包含:上述虛擬機器周期性到達一檢查點后,執行一沖洗更新及恢復程序。6.如權利要求5所述的操作系統層次的工作階段容錯的移轉方法,其中,上述沖洗更新及恢復程序將一段時間中針對上述分散式快取系統以及上述分散式共享存儲器及云端儲存空間的交易搜集成一原子操作,并且在上述原子操作中的任一交易失敗時恢復上述原子操作中已經執行過的交易。7.如權利要求1所述的操作系統層次的工作階段容錯的移轉方法,還包含:停止上述失效伺服器操作系統。8.如權利要求1所述的操作系統層次的工作階段容錯的移轉方法,其中,上述超級監督程序與上述分散式快取系統之間進行錯誤控制,上述超級監督程序與上述分散式共享存儲器及云端儲存空間之間進行錯誤控制,以及上述超級監督程序操作實施于高可用環境的上述分散式快取系統及上述分散式共享存儲器及云端儲存空間。9.一種操作系統層次的工作階段容錯的移轉系統,包含:一伺服器操作系統;一虛擬機器;一分散式快取系統;一分散式共享存儲器及云端儲存空間;以及一健康監督器,用以當上述伺服器操作系統失效時,選擇上述虛擬機器進行容錯的移轉;通過相應于上述虛擬機器的一超級監督程序將上述虛擬機器的一存儲器及一本地儲存裝置映射至上述分散式共享存儲器及云端儲存空間中的上述失效伺服器操作系統使用的一實體存儲器空間及一實體儲存空間;以及通過上述超級監督程序從上述分散式快取系統取得上述失效伺服器操作系統的一操作系統狀態。10.如權利要求9所述的操作系統層次的工作階段容錯的移轉系統,其中上述健康監督器于一段預設時間后都沒有接收到上述伺服器操作系統的一心跳信號,判斷上述伺服器操作系統失效。11.如權利要求9所述的操作系統層次的工作階段容錯的移轉系統,其中,上述健康監督器將上述虛擬機器的一媒體存取控制位址改為相同于上述失效伺服器操作系統的媒體存取控制位址。12.如權利要求11所述的操作系統層次的工作階段容錯的移轉系統,其中,上述虛擬機器通過超級監督程序從上述映射實體存儲器空間取得一第一憑證,并且使用上述第一憑證與上述虛擬機器的一先行層間建立一第一連線;以及上述虛擬機器通過超級監督程序從上述映射實體存儲器空間取得一第二憑證,并且使用上述第二憑證與上述虛擬機器的一接續層間建立一第二連線。13.如權利要求12所述的操作系統層次的工作階段容錯的移轉系統,其中,上述虛擬機器周期性到達一檢查點后,執行一沖洗更新及恢復程序。14.如權利要求13所述的操作系統層次的工作階段容錯的移轉系統,其中,上述沖洗更新及恢復程序將一段時間中針對上述分散式快取系統以及上述分散式共享存儲器及云端儲存空間的交易搜集成一原子操作,并且在上述原子操作中的任一交易失敗時恢復上述原子操作中已經執行過的交易。15.如權利要求9所述的操作系統層次的工作階段容錯的移轉系統,其中,上述健康監督器停止上述失效伺服器操作系統。16.如權利要求9所述的操作系統層次的工作階段容錯的移轉系統,其中,上述超級監督程序與上述分散式快取系統的間進行錯誤控制,上述超級監督程序與上述分散式共享存儲器及云端儲存空間的間進行錯誤控制,以及上述超級監督程序操作實施于高可用環境的上述分散式快取系統及上述分散式共享存儲器及云端儲存空間。【文檔編號】G06F11/07GK105893108SQ201510038121【公開日】2016年8月24日【申請日】2015年1月26日【發明人】陳志明【申請人】緯創資通股份有限公司