本公開涉及云平臺,尤其涉及一種云平臺容器管理方法、裝置和存儲介質(zhì)。
背景技術:
1、serverless是一種正在興起的云服務計算模式,用戶將自己需要執(zhí)行的代碼(即函數(shù))上傳到serverless云平臺上,并設置好相應的觸發(fā)條件,對應的條件發(fā)生時,云平臺會負責創(chuàng)建對應的執(zhí)行環(huán)境來執(zhí)行用戶代碼,并且隨著執(zhí)行請求的負載動態(tài)地調(diào)整分配的資源,例如在更多的服務器上啟動更多的執(zhí)行環(huán)境??梢钥吹?,通過serverless可以將傳統(tǒng)的運維、擴容、資源分配等任務移交給云平臺,用戶只需要關心其業(yè)務代碼邏輯。另一方面,serverless按真正的函數(shù)執(zhí)行時間進行計費,當沒有負載或請求時,不收取任何費用,這種模式非常適合負載波動較大或請求量不確定的應用。
2、serverless本身作為一種云服務,需要提供資源隔離以及安全隔離,目前常用的運行環(huán)境通常是虛擬機或者容器。由于特殊的計費模式,對于云平臺而言不可能長時間維護空閑函數(shù)的運行環(huán)境,云平臺理想的情況是不為任何空閑函數(shù)付出額外的資源,但是實際上很難做到這一點,如果一個函數(shù)需要執(zhí)行時發(fā)現(xiàn)沒有運行環(huán)境,則需要從頭進行創(chuàng)建(也叫做冷啟動)運行環(huán)境,它會引入較大的計算資源開銷,畢竟在運行環(huán)境創(chuàng)建期間也不會收取費用,并且,容器冷啟動帶來的延遲也會影響用戶側(cè)的體驗。從頭創(chuàng)建運行環(huán)境還會導致內(nèi)存重復和利用率低的問題。
技術實現(xiàn)思路
1、有鑒于此,本公開提出了一種云平臺容器管理方法、裝置和存儲介質(zhì)。
2、根據(jù)本公開的一方面,提供了一種云平臺容器管理方法。該方法包括:
3、基于一個或多個類別的函數(shù)生成快照,快照表示對應函數(shù)初始化后的內(nèi)存狀態(tài);
4、基于快照為各函數(shù)的進程生成內(nèi)存模板,內(nèi)存模板用于將函數(shù)的進程的虛擬地址映射至物理地址;
5、響應于存在目標函數(shù)運行請求,為目標函數(shù)運行請求分配目標容器;
6、根據(jù)目標函數(shù)對應的快照和內(nèi)存模塊,對目標容器進行恢復,恢復后的目標容器用于在云平臺中執(zhí)行目標函數(shù)運行請求。
7、在一種可能的實現(xiàn)方式中,根據(jù)目標函數(shù)對應的快照和內(nèi)存模塊,對目標容器進行恢復,包括:
8、根據(jù)目標函數(shù)對應的快照,創(chuàng)建目標進程,并將目標進程加入目標容器;
9、將目標函數(shù)對應的內(nèi)存模板拷貝至目標進程中,得到恢復后的目標容器。
10、在一種可能的實現(xiàn)方式中,基于一個或多個類別的函數(shù)生成快照,包括:
11、針對各類別的函數(shù)分別生成快照;
12、根據(jù)內(nèi)存池中已存儲的快照對新生成的快照進行去重操作,將去重后的快照存儲至內(nèi)存池中。
13、在一種可能的實現(xiàn)方式中,根據(jù)內(nèi)存池中已存儲的快照對新生成的快照進行去重操作,將去重后的快照存儲至內(nèi)存池中,包括:
14、針對新生成的快照和已存儲的快照中的每一頁,判斷二者的哈希值是否相同;
15、響應于二者的哈希值相同,對該頁中進行逐字節(jié)對比,以判斷新生成的快照和已存儲的快照是否重復;
16、對于重復的新生成的快照和已存儲的快照,選擇其中一個快照存儲至內(nèi)存池中。
17、在一種可能的實現(xiàn)方式中,內(nèi)存模板包括函數(shù)的進程的虛擬內(nèi)存區(qū)域和頁表,頁表用于將虛擬內(nèi)存區(qū)域的虛擬地址映射至物理地址。
18、在一種可能的實現(xiàn)方式中,物理地址包括計算快速鏈接cxl內(nèi)存的地址,該方法還包括:
19、對cxl內(nèi)存中的數(shù)據(jù)進行寫保護標記。
20、在一種可能的實現(xiàn)方式中,物理地址包括遠程直接內(nèi)存訪問rdma內(nèi)存的地址,與rdma內(nèi)存關聯(lián)的頁表被標記為無效頁表。
21、在一種可能的實現(xiàn)方式中,響應于存在目標函數(shù)運行請求,為目標函數(shù)運行請求分配目標容器,包括:
22、響應于存在目標函數(shù)運行請求,從沙箱池中確定空閑的容器,沙箱池中包括一個或多個已運行過函數(shù)進程的容器;
23、對空閑的容器進行調(diào)整,得到目標容器。
24、在一種可能的實現(xiàn)方式中,對空閑的容器進行調(diào)整,得到目標容器,包括:
25、響應于空閑的容器中的源函數(shù)類型與目標函數(shù)類型不同,在空閑的容器中卸載與源函數(shù)關聯(lián)的第一文件系統(tǒng),第一文件系統(tǒng)中包括特定于源函數(shù)的依賴項;
26、將與目標函數(shù)關聯(lián)的第二文件系統(tǒng)掛載至空閑的容器中,第二文件系統(tǒng)中包括特定于目標函數(shù)的依賴項。
27、在一種可能的實現(xiàn)方式中,根據(jù)目標函數(shù)對應的快照,創(chuàng)建目標進程,包括:
28、在創(chuàng)建目標進程的過程中指定目標進程所屬的控制組。
29、在一種可能的實現(xiàn)方式中,云平臺為serverless云平臺。
30、根據(jù)本公開的另一方面,提供了一種云平臺容器管理裝置。該裝置包括:
31、第一生成模塊,用于基于一個或多個類別的函數(shù)生成快照,快照表示對應函數(shù)初始化后的內(nèi)存狀態(tài);
32、第二生成模塊,用于基于快照為各函數(shù)的進程生成內(nèi)存模板,內(nèi)存模板用于將函數(shù)的進程的虛擬地址映射至物理地址;
33、分配模塊,用于響應于存在目標函數(shù)運行請求,為目標函數(shù)運行請求分配目標容器;
34、恢復模塊,用于根據(jù)目標函數(shù)對應的快照和內(nèi)存模塊,對目標容器進行恢復,恢復后的目標容器用于在云平臺中執(zhí)行目標函數(shù)運行請求。
35、在一種可能的實現(xiàn)方式中,恢復模塊,用于:
36、根據(jù)目標函數(shù)對應的快照,創(chuàng)建目標進程,并將目標進程加入目標容器;
37、將目標函數(shù)對應的內(nèi)存模板拷貝至目標進程中,得到恢復后的目標容器。
38、在一種可能的實現(xiàn)方式中,第一生成模塊,用于:
39、針對各類別的函數(shù)分別生成快照;
40、根據(jù)內(nèi)存池中已存儲的快照對新生成的快照進行去重操作,將去重后的快照存儲至內(nèi)存池中。
41、在一種可能的實現(xiàn)方式中,根據(jù)內(nèi)存池中已存儲的快照對新生成的快照進行去重操作,將去重后的快照存儲至內(nèi)存池中,包括:
42、針對新生成的快照和已存儲的快照中的每一頁,判斷二者的哈希值是否相同;
43、響應于二者的哈希值相同,對該頁中進行逐字節(jié)對比,以判斷新生成的快照和已存儲的快照是否重復;
44、對于重復的新生成的快照和已存儲的快照,選擇其中一個快照存儲至內(nèi)存池中。
45、在一種可能的實現(xiàn)方式中,內(nèi)存模板包括函數(shù)的進程的虛擬內(nèi)存區(qū)域和頁表,頁表用于將虛擬內(nèi)存區(qū)域的虛擬地址映射至物理地址。
46、在一種可能的實現(xiàn)方式中,物理地址包括計算快速鏈接cxl內(nèi)存的地址,該裝置還包括:
47、標記模塊,用于對cxl內(nèi)存中的數(shù)據(jù)進行寫保護標記。
48、在一種可能的實現(xiàn)方式中,物理地址包括遠程直接內(nèi)存訪問rdma內(nèi)存的地址,與rdma內(nèi)存關聯(lián)的頁表被標記為無效頁表。
49、在一種可能的實現(xiàn)方式中,分配模塊,用于:
50、響應于存在目標函數(shù)運行請求,從沙箱池中確定空閑的容器,沙箱池中包括一個或多個已運行過函數(shù)進程的容器;
51、對空閑的容器進行調(diào)整,得到目標容器。
52、在一種可能的實現(xiàn)方式中,對空閑的容器進行調(diào)整,得到目標容器,包括:
53、響應于空閑的容器中的源函數(shù)類型與目標函數(shù)類型不同,在空閑的容器中卸載與源函數(shù)關聯(lián)的第一文件系統(tǒng),第一文件系統(tǒng)中包括特定于源函數(shù)的依賴項;
54、將與目標函數(shù)關聯(lián)的第二文件系統(tǒng)掛載至空閑的容器中,第二文件系統(tǒng)中包括特定于目標函數(shù)的依賴項。
55、在一種可能的實現(xiàn)方式中,根據(jù)目標函數(shù)對應的快照,創(chuàng)建目標進程,包括:
56、在創(chuàng)建目標進程的過程中指定目標進程所屬的控制組。
57、在一種可能的實現(xiàn)方式中,云平臺為serverless云平臺。
58、根據(jù)本公開的另一方面,提供了一種云平臺容器管理裝置,包括:處理器;用于存儲處理器可執(zhí)行指令的存儲器;其中,所述處理器被配置為在執(zhí)行所述存儲器存儲的指令時,實現(xiàn)上述方法。
59、根據(jù)本公開的另一方面,提供了一種非易失性計算機可讀存儲介質(zhì),其上存儲有計算機程序指令,其中,所述計算機程序指令被處理器執(zhí)行時實現(xiàn)上述方法。
60、根據(jù)本公開的另一方面,提供了一種計算機程序產(chǎn)品,包括計算機可讀代碼,或者承載有計算機可讀代碼的非易失性計算機可讀存儲介質(zhì),當所述計算機可讀代碼在電子設備的處理器中運行時,所述電子設備中的處理器執(zhí)行上述方法。
61、根據(jù)本技術實施例,通過為函數(shù)生成快照并基于快照為函數(shù)進程生成內(nèi)存模塊,當存在目標函數(shù)運行請求時,根據(jù)目標函數(shù)對應的快照和內(nèi)存模塊,對目標容器進行恢復,可以實現(xiàn)通過快照恢復技術和內(nèi)存共享,可以快速實現(xiàn)內(nèi)存狀態(tài)的恢復,以在云平臺中執(zhí)行目標函數(shù)運行請求,降低了隔離環(huán)境的創(chuàng)建開銷,減小了冷啟動帶來的計算資源開銷和延遲。通過容器的復用降低了容器的內(nèi)存占用率,優(yōu)化了內(nèi)存資源占用,減少內(nèi)存重復提高了內(nèi)存利用率。
62、根據(jù)下面參考附圖對示例性實施例的詳細說明,本公開的其它特征及方面將變得清楚。