System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及基于容器的云計算,具體的說,是涉及基于隊列的容器狀態恢復方法、系統、介質、設備及產品。
技術介紹
1、本部分的陳述僅僅是提供了與本專利技術相關的
技術介紹
信息,不必然構成在先技術。
2、容器的一般設計思想是無狀態,在運行中的容器停止后,再次需要使用就從所依賴的鏡像重新加載。但是在一些面向用戶提供長時間間斷性服務的容器應用中,比如但不限于通過容器向用戶提供云桌面服務、研究開發環境等,用戶在容器內的操作,比如新的軟件包安裝、系統配置修改等,這是以后該用戶使用的基礎。因此專門研制了可再生容器的實現方法:對于需要長時間間斷性的容器服務,在用戶間斷性不使用容器退出時,在銷毀容器過程中保存包含了該用戶對容器改變內容的容器層,從而釋放服務器資源;當用戶需要恢復對容器的使用時,基于所依賴鏡像創建容器過程中,使用上次退出時保存的容器層數據構建容器層,從而再生出用戶對容器所有改變的操作。
3、可再生容器是對傳統容器技術的擴展,實現了面向個體用戶提供間斷性但是長時間使用的支持,在各階段使用中能夠繼承上次使用的容器狀態。這使得容器能夠構造桌面云、開發環境、研究環境等面向個體用戶的容器服務應用。
4、但是,在用戶的使用過程中,往往存在一些誤操作以及其它異常情況,對容器的狀態數據損壞,使得基于所保存的容器層數據內容在重新構建容器時,容器無法正常運行。這會導致用戶長期打造的個性化的容器環境無法繼續運行,不得不從依賴鏡像開始從頭構造容器的狀態環境,會花費大量的精力,甚至無法再現,造成不可彌補的損失。
技術實現思路
1、本專利技術為了解決上述問題,本專利技術提供一種基于隊列的容器狀態恢復方法、系統、介質、設備及產品,通過容器層數據存儲隊列的構建和可再生容器最近多次運行成功運行的容器層數據的保存,在發生容器故障后可以從選擇以前成功運行的容器層數據構造新的容器層,從而回滾到正常狀態恢復運行,實現對故障和誤操作等情況的容錯能力。
2、為了實現上述目的,本專利技術采用如下技術方案:
3、本專利技術的第一個方面提供一種基于隊列的容器狀態恢復方法,其包括:
4、響應于可再生容器故障指令,建立空白目錄作為可讀寫容器層;
5、讀取容器層數據存儲隊列中各元素的時間戳,并從中選擇一個時間戳;
6、對于選中的時間戳對應的元素,提取指針數據,根據指針數據查找容器層打包數據,將所述容器層打包數據解包到所述可讀寫容器層,再生可再生容器在所述選中的時間戳退出時的容器狀態數據;
7、其中,容器層打包數據通過在可再生容器退出時對包含容器狀態的容器層數據進行打包得到,且在可再生容器退出時建立所述元素,所述元素包含可再生容器退出時的時間戳和指向所述容器層打包數據的指針。
8、進一步地,還包括:響應于可再生容器再次運行指令,建立空白目錄作為可讀寫容器層;讀取所述容器層數據存儲隊列的隊尾元素,根據隊尾元素包含的指針數據,找到可再生容器上次退出時的容器層打包數據;將上次退出時的容器層打包數據解包到可讀寫容器層,再生可再生容器在上次退出時的容器狀態數據。
9、進一步地,在可再生容器退出時,若容器層數據存儲隊列已滿,則將容器層數據存儲隊列中的隊首元素出隊,并將隊首元素中的指針所指向的容器層打包數據刪除后,將建立的元素入隊到容器層數據存儲隊列,成為隊尾元素。
10、進一步地,在可再生容器退出時,卸載可再生容器的聯合文件系統,并刪除可讀寫容器層。
11、進一步地,在所述可再生容器首次運行時,建立一個空的持久化保存的容器層數據存儲隊列。
12、進一步地,還包括:以鏡像的各鏡像層作為只讀層,可讀寫容器層作為可讀寫層,聯合文件系統作為可再生容器的文件系統,按照可再生容器的設置加載進程,運行所述可再生容器。
13、本專利技術的第二個方面提供一種基于隊列的容器狀態恢復系統,其包括:
14、目錄建立模塊,其被配置為:響應于可再生容器故障指令,建立空白目錄作為可讀寫容器層;
15、時間戳讀取模塊,其被配置為:讀取容器層數據存儲隊列中各元素的時間戳,并從中選擇一個時間戳;
16、容器狀態再生模塊,其被配置為:對于選中的時間戳對應的元素,提取指針數據,根據指針數據查找容器層打包數據,將所述容器層打包數據解包到所述可讀寫容器層,再生可再生容器在所述選中的時間戳退出時的容器狀態數據;
17、其中,容器層打包數據通過在可再生容器退出時對包含容器狀態的容器層數據進行打包得到,且在可再生容器退出時建立所述元素,所述元素包含可再生容器退出時的時間戳和指向所述容器層打包數據的指針。
18、本專利技術的第三個方面提供一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執行時實現如上述所述的一種基于隊列的容器狀態恢復方法中的步驟。
19、本專利技術的第四個方面提供一種計算機設備,包括計算機可讀存儲介質、處理器及存儲在計算機可讀存儲介質上并可在處理器上運行的計算機程序,所述處理器執行所述程序時實現如上述所述的一種基于隊列的容器狀態恢復方法中的步驟。
20、本專利技術的第五個方面提供一種計算機程序產品,其為一種含有計算機程序的計算機程序產品,當處理器執行所述計算機程序時,實現如上述所述的一種基于隊列的容器狀態恢復方法中的步驟。
21、與現有技術相比,本專利技術的有益效果為:
22、本專利技術通過容器層數據存儲隊列的構建和可再生容器最近多次運行成功運行的容器層數據的保存,在發生容器故障后可以從選擇以前成功運行的容器層數據構造新的容器層,從而回滾到正常狀態恢復運行,實現對故障和誤操作等情況的容錯能力。
本文檔來自技高網...【技術保護點】
1.一種基于隊列的容器狀態恢復方法,其特征在于,包括:
2.如權利要求1所述的一種基于隊列的容器狀態恢復方法,其特征在于,還包括:響應于可再生容器再次運行指令,建立空白目錄作為可讀寫容器層;讀取所述容器層數據存儲隊列的隊尾元素,根據隊尾元素包含的指針數據,找到可再生容器上次退出時的容器層打包數據;將上次退出時的容器層打包數據解包到可讀寫容器層,再生可再生容器在上次退出時的容器狀態數據。
3.如權利要求1所述的一種基于隊列的容器狀態恢復方法,其特征在于,在可再生容器退出時,若容器層數據存儲隊列已滿,則將容器層數據存儲隊列中的隊首元素出隊,并將隊首元素中的指針所指向的容器層打包數據刪除后,將建立的元素入隊到容器層數據存儲隊列,成為隊尾元素。
4.如權利要求1所述的一種基于隊列的容器狀態恢復方法,其特征在于,在可再生容器退出時,卸載可再生容器的聯合文件系統,并刪除可讀寫容器層。
5.如權利要求1所述的一種基于隊列的容器狀態恢復方法,其特征在于,在所述可再生容器首次運行時,建立一個空的持久化保存的容器層數據存儲隊列。
6.如權利
7.一種基于隊列的容器狀態恢復系統,其特征在于,包括:
8.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,該程序被處理器執行時實現如權利要求1-6中任一項所述的一種基于隊列的容器狀態恢復方法中的步驟。
9.一種計算機設備,包括計算機可讀存儲介質、處理器及存儲在計算機可讀存儲介質上并可在處理器上運行的計算機程序,其特征在于,所述處理器執行所述程序時實現如權利要求1-6中任一項所述的一種基于隊列的容器狀態恢復方法中的步驟。
10.一種計算機程序產品,其為一種含有計算機程序的計算機程序產品,其特征在于,當處理器執行所述計算機程序時,實現如權利要求1-6中任一項所述的一種基于隊列的容器狀態恢復方法中的步驟。
...【技術特征摘要】
1.一種基于隊列的容器狀態恢復方法,其特征在于,包括:
2.如權利要求1所述的一種基于隊列的容器狀態恢復方法,其特征在于,還包括:響應于可再生容器再次運行指令,建立空白目錄作為可讀寫容器層;讀取所述容器層數據存儲隊列的隊尾元素,根據隊尾元素包含的指針數據,找到可再生容器上次退出時的容器層打包數據;將上次退出時的容器層打包數據解包到可讀寫容器層,再生可再生容器在上次退出時的容器狀態數據。
3.如權利要求1所述的一種基于隊列的容器狀態恢復方法,其特征在于,在可再生容器退出時,若容器層數據存儲隊列已滿,則將容器層數據存儲隊列中的隊首元素出隊,并將隊首元素中的指針所指向的容器層打包數據刪除后,將建立的元素入隊到容器層數據存儲隊列,成為隊尾元素。
4.如權利要求1所述的一種基于隊列的容器狀態恢復方法,其特征在于,在可再生容器退出時,卸載可再生容器的聯合文件系統,并刪除可讀寫容器層。
5.如權利要求1所述的一種基于隊列的容器狀態恢復方法,其特征在于,在所述可再生容器首次運行時,建立一個...
【專利技術屬性】
技術研發人員:李曉峰,蔡存民,李振,趙昕,崔紅,
申請(專利權)人:浪潮數字山東科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。