統(tǒng)包括多個(gè)計(jì)算節(jié)點(diǎn)和存儲節(jié)點(diǎn)以及存儲管理節(jié)點(diǎn),所述多個(gè)計(jì)算節(jié)點(diǎn)中的每一個(gè)計(jì)算節(jié)點(diǎn)上運(yùn)行多個(gè)容器,所述存儲節(jié)點(diǎn)包括基礎(chǔ)Base存儲單元和多個(gè)容器存儲單元,所述多個(gè)容器存儲單元分別從屬于所述多個(gè)計(jì)算節(jié)點(diǎn)上運(yùn)行的多個(gè)容器,所述管理存儲節(jié)點(diǎn)用于管理所述存儲節(jié)點(diǎn),所述多個(gè)計(jì)算節(jié)點(diǎn)包括第一計(jì)算節(jié)點(diǎn),所述第一計(jì)算節(jié)點(diǎn)上運(yùn)行有第一容器,所述多個(gè)容器存儲單元包括從屬于所述第一容器的第一容器存儲單元;
[0158]所述數(shù)據(jù)存儲裝置部署于所述存儲管理節(jié)點(diǎn),所述裝置可包括:
[0159]接收單元801,用于接收所述第一計(jì)算節(jié)點(diǎn)發(fā)送的副本建立通知,所述文件的副本建立通知是所述第一計(jì)算節(jié)點(diǎn)檢測到第一容器中的應(yīng)用通過可寫方式打開保存在Base存儲單元中的文件時(shí)發(fā)出的;
[0160]副本建立單元802,用于在所述接收單元收到所述副本建立通知后,開始在所述存儲節(jié)點(diǎn)的第一容器存儲單元中建立所述文件的副本;
[0161]數(shù)據(jù)同步單元803,用于檢測到所述文件的副本建立完成時(shí),從所述數(shù)據(jù)項(xiàng)中獲取所述文件的更新數(shù)據(jù),將所述文件的更新數(shù)據(jù)同步到所述文件的副本中,所述數(shù)據(jù)項(xiàng)是所述第一計(jì)算節(jié)點(diǎn)檢測到所述第一容器中的應(yīng)用對所述文件進(jìn)行寫操作時(shí),獲取所述文件的更新數(shù)據(jù),根據(jù)所述文件的更新數(shù)據(jù)構(gòu)建的。
[0162]請參考圖13b,本發(fā)明一些實(shí)施例中,所述裝置還可以包括:
[0163]發(fā)送單元804,用于在所述同步操作完成后,發(fā)送切換通知給所述第一計(jì)算節(jié)點(diǎn),以指示所述第一計(jì)算節(jié)點(diǎn)在所述第一容器中的應(yīng)用對所述文件繼續(xù)進(jìn)行寫操作時(shí),將文件操作對象切換到所述文件的副本,后續(xù)對所述文件的更新數(shù)據(jù)直接寫入所述文件的副本中。
[0164]本發(fā)明一些實(shí)施例中,所述數(shù)據(jù)同步單元803,具體用于讀取所述數(shù)據(jù)項(xiàng)信息,將每一個(gè)數(shù)據(jù)項(xiàng)都掛到一個(gè)總的處理隊(duì)列中;依次將所述處理隊(duì)列中每個(gè)數(shù)據(jù)項(xiàng)中記錄的所述文件的更新數(shù)據(jù),按照記錄的所述寫操作信息,同步到所述文件的副本中。
[0165]可以理解,本發(fā)明實(shí)施例的數(shù)據(jù)存儲裝置的各個(gè)功能模塊的功能可根據(jù)上述方法實(shí)施例中的方法具體實(shí)現(xiàn),其具體實(shí)現(xiàn)過程可參照上述方法實(shí)施例中的相關(guān)描述,此處不再贅述。
[0166]由上可見,在本發(fā)明的一些可行的實(shí)施方式中,采用將寫操作和建立副本分開同時(shí)進(jìn)行,對Base存儲單元的文件進(jìn)行寫操作時(shí),將更新數(shù)據(jù)記錄到數(shù)據(jù)項(xiàng)中,等所述文件的副本建立完成后,在從數(shù)據(jù)項(xiàng)中將更新數(shù)據(jù)同步到文件中的技術(shù)方案,取得了以下技術(shù)效果:由于寫操作與建立副本分開同時(shí)執(zhí)行,因而可實(shí)時(shí)進(jìn)行寫操作,而不必等待文件副本建立完畢,這就大大加快了對容器中應(yīng)用的數(shù)據(jù)操作的響應(yīng)速度,可有效提高數(shù)據(jù)存儲效率,以及提高容器性能。
[0167]本發(fā)明實(shí)施例還提供一種計(jì)算機(jī)存儲介質(zhì),該計(jì)算機(jī)存儲介質(zhì)可存儲有程序,該程序執(zhí)行時(shí)包括上述方法實(shí)施例中記載的數(shù)據(jù)存儲方法的部分或全部步驟。
[0168]請參考圖14,本發(fā)明實(shí)施例還提供一種計(jì)算機(jī)設(shè)備90,可包括:
[0169]所述計(jì)算機(jī)設(shè)備包括處理器901、存儲器902、總線903和通信接口 904 ;
[0170]所述存儲器902用于存儲計(jì)算機(jī)執(zhí)行指令,所述處理器901與所述存儲器902通過所述總線903連接,當(dāng)所述計(jì)算機(jī)設(shè)備90運(yùn)行時(shí),所述處理器901執(zhí)行所述存儲器902存儲的所述計(jì)算機(jī)執(zhí)行指令,以使所述計(jì)算機(jī)設(shè)備90執(zhí)行如圖2實(shí)施例中所述的數(shù)據(jù)存儲方法,或者如圖8a或8b實(shí)施例所述的數(shù)據(jù)存儲方法,或者如圖9a或9b實(shí)施例所述的數(shù)據(jù)存儲方法,或者如圖1Oa或1b實(shí)施例所述的數(shù)據(jù)存儲方法。
[0171]可以理解,本發(fā)明實(shí)施例的計(jì)算機(jī)設(shè)備的各個(gè)功能模塊的功能可根據(jù)上述方法實(shí)施例中的方法具體實(shí)現(xiàn),其具體實(shí)現(xiàn)過程可參照上述方法實(shí)施例中的相關(guān)描述,此處不再贅述。
[0172]由上可見,在本發(fā)明的一些可行的實(shí)施方式中,采用將寫操作和建立副本分開同時(shí)進(jìn)行,對Base存儲單元的文件進(jìn)行寫操作時(shí),將更新數(shù)據(jù)記錄到數(shù)據(jù)項(xiàng)中,等所述文件的副本建立完成后,在從數(shù)據(jù)項(xiàng)中將更新數(shù)據(jù)同步到文件中的技術(shù)方案,取得了以下技術(shù)效果:由于寫操作與建立副本分開同時(shí)執(zhí)行,因而可實(shí)時(shí)進(jìn)行寫操作,而不必等待文件副本建立完畢,這就大大加快了對容器中應(yīng)用的數(shù)據(jù)操作的響應(yīng)速度,可有效提高數(shù)據(jù)存儲效率,以及提高容器性能。
[0173]本發(fā)明實(shí)施例技術(shù)方案尤其適用于大規(guī)模部署容器應(yīng)用的場景。大規(guī)模部署容器應(yīng)用的場景下,特別是互聯(lián)網(wǎng)、私有云等大規(guī)模使用容器的場景下,容器Base存儲中的大文件較大、較多,這樣容器應(yīng)用要對這些文件寫入數(shù)據(jù)時(shí)完成建立副本就會占用很長時(shí)間,等到建立副本后再執(zhí)行寫入操作則會導(dǎo)致容器應(yīng)用的讀寫請求不能及時(shí)響應(yīng)。
[0174]采用本發(fā)明技術(shù)方案,使得容器對Base存儲中的大文件執(zhí)行寫操作時(shí)不用等容器完成Base存儲大文件的副本建立后再執(zhí)行。這樣大大加快了對容器應(yīng)用讀寫請求的響應(yīng),從而提尚效率以及容器的性能。
[0175]本發(fā)明當(dāng)前在單節(jié)點(diǎn)以及分布式計(jì)算和存儲的場景下,都能實(shí)現(xiàn)存儲訪問的優(yōu)化和效率的提升,同時(shí)在異構(gòu)眾核架構(gòu)下的容器虛擬化方向也會帶來性能和效率的提高。容器虛擬化已經(jīng)大規(guī)模部署在互聯(lián)網(wǎng),私有云等場景下,因此本發(fā)明技術(shù)方案的使用場景會很廣泛。
[0176]在上述實(shí)施例中,對各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳細(xì)描述的部分,可以參見其它實(shí)施例的相關(guān)描述。
[0177]需要說明的是,對于前述的各方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述動作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其它順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
[0178]本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計(jì)算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:ROM、RAM、磁盤或光盤等。
[0179]以上對本發(fā)明實(shí)施例所提供的數(shù)據(jù)存儲方法、裝置和設(shè)備進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
【主權(quán)項(xiàng)】
1.一種數(shù)據(jù)存儲方法,其特征在于,用于容器虛擬化系統(tǒng),所述容器虛擬化系統(tǒng)中運(yùn)行多個(gè)容器,所述多個(gè)容器具有各自的容器存儲單元,且所述多個(gè)容器共用基礎(chǔ)Base存儲單元,所述多個(gè)容器包括第一容器,所述第一容器具有第一容器存儲單元;所述方法包括: 檢測到第一容器中的應(yīng)用通過可寫方式打開保存在Base存儲單元中的文件時(shí),開始在第一容器存儲單元中建立所述文件的副本; 檢測到所述第一容器中的應(yīng)用對所述文件進(jìn)行寫操作時(shí),獲取所述文件的更新數(shù)據(jù),根據(jù)所述文件的更新數(shù)據(jù)構(gòu)建并保存數(shù)據(jù)項(xiàng); 檢測到所述文件的副本建立完成時(shí),從所述數(shù)據(jù)項(xiàng)中獲取所述文件的更新數(shù)據(jù),將所述文件的更新數(shù)據(jù)同步到所述文件的副本中。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 同步操作完成后,如果所述第一容器中的應(yīng)用對所述文件繼續(xù)進(jìn)行寫操作時(shí),將文件操作對象切換到所述文件的副本,后續(xù)對所述文件的更新數(shù)據(jù)直接寫入所述文件的副本中。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取所述文件的更新數(shù)據(jù),根據(jù)所述文件的更新數(shù)據(jù)構(gòu)建并保存數(shù)據(jù)項(xiàng)包括: 從所述第一容器的內(nèi)存中讀取所述文件的更新數(shù)據(jù),將所述文件的更新數(shù)據(jù)及其數(shù)據(jù)控制信息,以及對應(yīng)的Base存儲單元中的源數(shù)據(jù)和所述寫操作信息封裝為一個(gè)數(shù)據(jù)項(xiàng),將所述數(shù)據(jù)項(xiàng)保存在所述第一容器存儲單元的一個(gè)存儲文件中。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述從所述數(shù)據(jù)項(xiàng)中獲取所述文件的更新數(shù)據(jù),將所述文件的更新數(shù)據(jù)同步到所述文件的副本中包括: 讀取所述數(shù)據(jù)項(xiàng)信息,將每一個(gè)數(shù)據(jù)項(xiàng)都掛到一個(gè)總的處理隊(duì)列中; 依次將所述處理隊(duì)列中每個(gè)數(shù)據(jù)項(xiàng)中記錄的所述文件的更新數(shù)據(jù),按照記錄的所述寫操作信息,同步到所述文件的副本中。
5.根據(jù)權(quán)利要求1至4中任一所述的方法,其特征在于, 所述容器虛擬化系統(tǒng)部署于單個(gè)計(jì)算機(jī)設(shè)備上,所述計(jì)算機(jī)設(shè)備包括硬件層和運(yùn)行在硬件層上的宿主機(jī),所述多個(gè)容器運(yùn)行在所述宿主機(jī)中,所述硬件層包括所述Base存儲單元和所述多個(gè)容器存儲單元,所述多個(gè)容器存儲單元分別從屬于所述多個(gè)容器。
6.根據(jù)權(quán)利要求1至4中任一所述的方法,其特征在于, 所述容器虛擬化系統(tǒng)部署于分布式的計(jì)算機(jī)集群系統(tǒng)中,所述計(jì)算機(jī)集群系統(tǒng)包括多個(gè)計(jì)算節(jié)點(diǎn)和存儲節(jié)點(diǎn)以及存儲管理節(jié)點(diǎn),所述多個(gè)容器分布式的運(yùn)行于所述多個(gè)計(jì)算節(jié)點(diǎn)中,所述存儲節(jié)點(diǎn)包括所述基礎(chǔ)Base存儲單元和所述多個(gè)容器存儲單元,所述多個(gè)容器存儲單元分別從屬于所述多個(gè)容器,所述管理存儲節(jié)點(diǎn)用于管理所述存儲節(jié)點(diǎn),所述多個(gè)計(jì)算節(jié)點(diǎn)包括第一計(jì)算節(jié)點(diǎn),所述第一容器運(yùn)行在所述第一計(jì)算節(jié)點(diǎn)中。
7.一種數(shù)據(jù)存儲裝置,其特征在于,用于容器虛擬化系統(tǒng),所述容器虛擬化系統(tǒng)中運(yùn)行多個(gè)容器,所述多個(gè)容器具有各自的容器存儲單元,且所述多個(gè)容器共用基礎(chǔ)Base存儲單元,所述多個(gè)容器包括第一容器,所述第一容器具有第一容器存儲單元;所述數(shù)據(jù)存儲裝置包括: 容器數(shù)據(jù)記錄模塊,用于檢測到第一容器中的應(yīng)用通過可寫方式打開保存在Base存儲單元中的文件時(shí),發(fā)送同步通知給容器數(shù)據(jù)同步模塊; 所述容器數(shù)據(jù)同步模塊,用于在收到所述同步通知后,開始在第一容器存儲單元中建立所述文件的副本; 所述容器數(shù)據(jù)記錄模塊,還用于檢測到所述第一容器中的應(yīng)用對所述文件進(jìn)行寫操作時(shí),獲取所述文件的更新數(shù)據(jù),根據(jù)所述文件的更新數(shù)據(jù)構(gòu)建并保存數(shù)據(jù)項(xiàng); 所述容器數(shù)據(jù)同步模塊,還用于檢測到所述文件的副本建立完成時(shí),從所述數(shù)據(jù)項(xiàng)中獲取所述文件的更新數(shù)據(jù),將所述文件的更新數(shù)據(jù)同步到所述文件的副本中。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于, 所述容器數(shù)據(jù)同步模塊,還用于在同步操作完成后,發(fā)送切換通知給容器數(shù)據(jù)記錄模塊; 所述容器數(shù)據(jù)記錄模塊,還用于接收到切換通知后,如果檢測到所述第一容器中的應(yīng)用對所述文件繼續(xù)進(jìn)行寫操作時(shí),將文件操作對象切換到所述文件的副本,后續(xù)對所述文件的更新數(shù)據(jù)直接寫入所述文件的副本中。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于, 所述容器數(shù)據(jù)記錄模塊,具體用于從所述第一容器的內(nèi)存中讀取所述文件的更新數(shù)據(jù),將所述文件的更新數(shù)據(jù)及其數(shù)據(jù)控制信息,以及對應(yīng)的Base存儲單元中的源數(shù)據(jù)和所述寫操作信息封裝為一個(gè)數(shù)據(jù)項(xiàng),將所述數(shù)據(jù)項(xiàng)保存在所述第一容器存儲單元的一個(gè)存儲文件中。
10.根據(jù)權(quán)利要求7所述的裝置,其特征在于, 所述容器數(shù)據(jù)同步模塊,具體用于讀取所述數(shù)據(jù)項(xiàng)信息,將每一個(gè)數(shù)據(jù)項(xiàng)都掛到一個(gè)總的處理隊(duì)列中;依次將所述處理隊(duì)列中每個(gè)數(shù)據(jù)項(xiàng)中記錄的所述文件的更新數(shù)據(jù),按照記錄的所述寫操作信息,同步到所述文件的副本中。
11.根據(jù)權(quán)利要求7至10中任一所述的裝置,其特征在于, 所述容器虛擬化系統(tǒng)部署于單個(gè)計(jì)算機(jī)設(shè)備上,所述計(jì)算機(jī)設(shè)備包括硬件層和運(yùn)行在硬件層上的宿主機(jī),所述多個(gè)容器運(yùn)行在所述宿主機(jī)中,所述硬件層包括所述Base存儲單元和所述多個(gè)容器存儲單元,所述多個(gè)容器存儲單元分別從屬于所述多個(gè)容器。
12.根據(jù)權(quán)利要求7至10中任一所述的裝置,其特征在于, 所述容器虛擬化系統(tǒng)部署于分布式的計(jì)算機(jī)集群系統(tǒng)中,所述計(jì)算機(jī)集群系統(tǒng)包括多個(gè)計(jì)算節(jié)點(diǎn)和存儲節(jié)點(diǎn)以及存儲管理節(jié)點(diǎn),所述多個(gè)容器分布式的運(yùn)行于所述多個(gè)計(jì)算節(jié)點(diǎn)中,所述存儲節(jié)點(diǎn)包括所述基礎(chǔ)Base存儲單元和所述多個(gè)容器存儲單元,所述多個(gè)容器存儲單元分別從屬于所述多個(gè)容器,所述管理存儲節(jié)點(diǎn)用于管理所述存儲節(jié)點(diǎn),所述多個(gè)計(jì)算節(jié)點(diǎn)包括第一計(jì)算節(jié)點(diǎn),所述第一容器運(yùn)行在所述第一計(jì)算節(jié)點(diǎn)中。
13.—種數(shù)據(jù)存儲方法,其特征在于,用于計(jì)算機(jī)設(shè)備,所述計(jì)算機(jī)設(shè)備包括硬件層和運(yùn)行在硬件層上的宿主機(jī),所述宿主機(jī)中運(yùn)行多個(gè)容器,所述硬件層包括基礎(chǔ)Base存儲單元和多個(gè)容器存儲單元,所述多個(gè)容器存儲單元分別從屬于所述多個(gè)容器,所述多個(gè)容器包括第一容器,所述多個(gè)容器存儲單元包括從屬于所述第一容器的第一容器存儲單元;所述方法包括: 檢測到第一容器中的應(yīng)用通過可寫方式打開保存在Base存