項(xiàng)包括:從所述第一容器的內(nèi)存中讀取所述文件的更新數(shù)據(jù),將所述文件的更新數(shù)據(jù)及其數(shù)據(jù)控制信息,以及對(duì)應(yīng)的Base存儲(chǔ)單元中的源數(shù)據(jù)和所述寫(xiě)操作信息封裝為一個(gè)數(shù)據(jù)項(xiàng),將所述數(shù)據(jù)項(xiàng)保存在所述第一容器存儲(chǔ)單元的一個(gè)存儲(chǔ)文件中。
[0026]本發(fā)明第五方面提供一種數(shù)據(jù)存儲(chǔ)方法,用于計(jì)算機(jī)集群系統(tǒng),所述計(jì)算機(jī)集群系統(tǒng)包括多個(gè)計(jì)算節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)以及存儲(chǔ)管理節(jié)點(diǎn),所述多個(gè)計(jì)算節(jié)點(diǎn)中的每一個(gè)計(jì)算節(jié)點(diǎn)上運(yùn)行多個(gè)容器,所述存儲(chǔ)節(jié)點(diǎn)包括基礎(chǔ)Base存儲(chǔ)單元和多個(gè)容器存儲(chǔ)單元,所述多個(gè)容器存儲(chǔ)單元分別從屬于所述多個(gè)計(jì)算節(jié)點(diǎn)上運(yùn)行的多個(gè)容器,所述管理存儲(chǔ)節(jié)點(diǎn)用于管理所述存儲(chǔ)節(jié)點(diǎn),所述多個(gè)計(jì)算節(jié)點(diǎn)包括第一計(jì)算節(jié)點(diǎn),所述第一計(jì)算節(jié)點(diǎn)上運(yùn)行有第一容器,所述多個(gè)容器存儲(chǔ)單元包括從屬于所述第一容器的第一容器存儲(chǔ)單元;所述方法包括:所述存儲(chǔ)管理節(jié)點(diǎn)接收所述第一計(jì)算節(jié)點(diǎn)發(fā)送的副本建立通知,所述文件的副本建立通知是所述第一計(jì)算節(jié)點(diǎn)檢測(cè)到第一容器中的應(yīng)用通過(guò)可寫(xiě)方式打開(kāi)保存在Base存儲(chǔ)單元中的文件時(shí)發(fā)出的;所述存儲(chǔ)管理節(jié)點(diǎn)開(kāi)始在所述存儲(chǔ)節(jié)點(diǎn)的第一容器存儲(chǔ)單元中建立所述文件的副本;所述存儲(chǔ)管理節(jié)點(diǎn)檢測(cè)到所述文件的副本建立完成時(shí),從所述數(shù)據(jù)項(xiàng)中獲取所述文件的更新數(shù)據(jù),將所述文件的更新數(shù)據(jù)同步到所述文件的副本中,所述數(shù)據(jù)項(xiàng)是所述第一計(jì)算節(jié)點(diǎn)檢測(cè)到所述第一容器中的應(yīng)用對(duì)所述文件進(jìn)行寫(xiě)操作時(shí),獲取所述文件的更新數(shù)據(jù),根據(jù)所述文件的更新數(shù)據(jù)構(gòu)建的。
[0027]結(jié)合第五方面,在第一種可能的實(shí)現(xiàn)方式中,方法還包括:所述存儲(chǔ)管理節(jié)點(diǎn)在所述同步操作完成后,發(fā)送切換通知給所述第一計(jì)算節(jié)點(diǎn),以指示所述第一計(jì)算節(jié)點(diǎn)在所述第一容器中的應(yīng)用對(duì)所述文件繼續(xù)進(jìn)行寫(xiě)操作時(shí),將文件操作對(duì)象切換到所述文件的副本,后續(xù)對(duì)所述文件的更新數(shù)據(jù)直接寫(xiě)入所述文件的副本中。
[0028]結(jié)合第五方面或者第五方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述從所述數(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ù),按照記錄的所述寫(xiě)操作信息,同步到所述文件的副本中。
[0029]本發(fā)明第六方面提供一種數(shù)據(jù)存儲(chǔ)裝置,用于計(jì)算機(jī)設(shè)備,所述計(jì)算機(jī)設(shè)備包括硬件層和運(yùn)行在硬件層上的宿主機(jī),所述宿主機(jī)中運(yùn)行多個(gè)容器,所述硬件層包括基礎(chǔ)Base存儲(chǔ)單元和多個(gè)容器存儲(chǔ)單元,所述多個(gè)容器存儲(chǔ)單元分別從屬于所述多個(gè)容器,所述多個(gè)容器包括第一容器,所述多個(gè)容器存儲(chǔ)單元包括從屬于所述第一容器的第一容器存儲(chǔ)單元;所述裝置包括:副本建立單元,用于檢測(cè)到第一容器中的應(yīng)用通過(guò)可寫(xiě)方式打開(kāi)保存在Base存儲(chǔ)單元中的文件時(shí),開(kāi)始在第一容器存儲(chǔ)單元中建立所述文件的副本;數(shù)據(jù)項(xiàng)構(gòu)建單元,用于檢測(cè)到所述第一容器中的應(yīng)用對(duì)所述文件進(jìn)行寫(xiě)操作時(shí),獲取所述文件的更新數(shù)據(jù),根據(jù)所述文件的更新數(shù)據(jù)構(gòu)建并保存數(shù)據(jù)項(xiàng);數(shù)據(jù)同步單元,用于檢測(cè)到所述文件的副本建立完成時(shí),從所述數(shù)據(jù)項(xiàng)中獲取所述文件的更新數(shù)據(jù),將所述文件的更新數(shù)據(jù)同步到所述文件的副本中。
[0030]結(jié)合第六方面,在第一種可能的實(shí)現(xiàn)方式中,裝置還包括:寫(xiě)入單元,用于在同步操作完成后,如果所述第一容器中的應(yīng)用對(duì)所述文件繼續(xù)進(jìn)行寫(xiě)操作時(shí),將文件操作對(duì)象切換到所述文件的副本,后續(xù)對(duì)所述文件的更新數(shù)據(jù)直接寫(xiě)入所述文件的副本中。
[0031]結(jié)合第六方面或者第六方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)項(xiàng)構(gòu)建單元,具體用于從所述第一容器的內(nèi)存中讀取所述文件的更新數(shù)據(jù),將所述文件的更新數(shù)據(jù)及其數(shù)據(jù)控制信息,以及對(duì)應(yīng)的Base存儲(chǔ)單元中的源數(shù)據(jù)和所述寫(xiě)操作信息封裝為一個(gè)數(shù)據(jù)項(xiàng),將所述數(shù)據(jù)項(xiàng)保存在所述第一容器存儲(chǔ)單元的一個(gè)存儲(chǔ)文件中。
[0032]結(jié)合第六方面或者第六方面的第一種或第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)同步單元,具體用于讀取所述數(shù)據(jù)項(xiàng)信息,將每一個(gè)數(shù)據(jù)項(xiàng)都掛到一個(gè)總的處理隊(duì)列中;依次將所述處理隊(duì)列中每個(gè)數(shù)據(jù)項(xiàng)中記錄的所述文件的更新數(shù)據(jù),按照記錄的所述寫(xiě)操作信息,同步到所述文件的副本中。
[0033]本發(fā)明第七方面提供一種數(shù)據(jù)存儲(chǔ)裝置,用于計(jì)算機(jī)集群系統(tǒng),所述計(jì)算機(jī)集群系統(tǒng)包括多個(gè)計(jì)算節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)以及存儲(chǔ)管理節(jié)點(diǎn),所述多個(gè)計(jì)算節(jié)點(diǎn)中的每一個(gè)計(jì)算節(jié)點(diǎn)上運(yùn)行多個(gè)容器,所述存儲(chǔ)節(jié)點(diǎn)包括基礎(chǔ)Base存儲(chǔ)單元和多個(gè)容器存儲(chǔ)單元,所述多個(gè)容器存儲(chǔ)單元分別從屬于所述多個(gè)計(jì)算節(jié)點(diǎn)上運(yùn)行的多個(gè)容器,所述管理存儲(chǔ)節(jié)點(diǎn)用于管理所述存儲(chǔ)節(jié)點(diǎn),所述多個(gè)計(jì)算節(jié)點(diǎn)包括第一計(jì)算節(jié)點(diǎn),所述第一計(jì)算節(jié)點(diǎn)上運(yùn)行有第一容器,所述多個(gè)容器存儲(chǔ)單元包括從屬于所述第一容器的第一容器存儲(chǔ)單元;所述數(shù)據(jù)存儲(chǔ)裝置部署于所述第一計(jì)算節(jié)點(diǎn),所述裝置包括:發(fā)送單元,用于檢測(cè)到第一容器中的應(yīng)用通過(guò)可寫(xiě)方式打開(kāi)保存在Base存儲(chǔ)單元中的文件時(shí),發(fā)送副本建立通知給所述存儲(chǔ)管理節(jié)點(diǎn),以便所述存儲(chǔ)管理節(jié)點(diǎn)開(kāi)始在所述存儲(chǔ)節(jié)點(diǎn)的第一容器存儲(chǔ)單元中建立所述文件的副本;數(shù)據(jù)項(xiàng)構(gòu)建單元,用于檢測(cè)到所述第一容器中的應(yīng)用對(duì)所述文件進(jìn)行寫(xiě)操作時(shí),獲取所述文件的更新數(shù)據(jù),根據(jù)所述文件的更新數(shù)據(jù)構(gòu)建并保存數(shù)據(jù)項(xiàng),以便所述存儲(chǔ)管理節(jié)點(diǎn)檢測(cè)到所述文件的副本建立完成時(shí),從所述數(shù)據(jù)項(xiàng)中獲取所述文件的更新數(shù)據(jù),將所述文件的更新數(shù)據(jù)同步到所述文件的副本中。
[0034]結(jié)合第七方面,在第一種可能的實(shí)現(xiàn)方式中,裝置還包括:接收單元,用于接收所述存儲(chǔ)管理節(jié)點(diǎn)在所述同步操作完成后發(fā)送的切換通知;寫(xiě)入單元,用于在所述接收單元接收到所述切換通知后,如果所述第一容器中的應(yīng)用對(duì)所述文件繼續(xù)進(jìn)行寫(xiě)操作時(shí),將文件操作對(duì)象切換到所述文件的副本,后續(xù)對(duì)所述文件的更新數(shù)據(jù)直接寫(xiě)入所述文件的副本中。
[0035]結(jié)合第七方面或者第七方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)項(xiàng)構(gòu)建單元,具體用于從所述第一容器的內(nèi)存中讀取所述文件的更新數(shù)據(jù),將所述文件的更新數(shù)據(jù)及其數(shù)據(jù)控制信息,以及對(duì)應(yīng)的Base存儲(chǔ)單元中的源數(shù)據(jù)和所述寫(xiě)操作信息封裝為一個(gè)數(shù)據(jù)項(xiàng),將所述數(shù)據(jù)項(xiàng)保存在所述第一容器存儲(chǔ)單元的一個(gè)存儲(chǔ)文件中。
[0036]本發(fā)明第八方面提供一種數(shù)據(jù)存儲(chǔ)裝置,用于計(jì)算機(jī)集群系統(tǒng),所述計(jì)算機(jī)集群系統(tǒng)包括多個(gè)計(jì)算節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)以及存儲(chǔ)管理節(jié)點(diǎn),所述多個(gè)計(jì)算節(jié)點(diǎn)中的每一個(gè)計(jì)算節(jié)點(diǎn)上運(yùn)行多個(gè)容器,所述存儲(chǔ)節(jié)點(diǎn)包括基礎(chǔ)Base存儲(chǔ)單元和多個(gè)容器存儲(chǔ)單元,所述多個(gè)容器存儲(chǔ)單元分別從屬于所述多個(gè)計(jì)算節(jié)點(diǎn)上運(yùn)行的多個(gè)容器,所述管理存儲(chǔ)節(jié)點(diǎn)用于管理所述存儲(chǔ)節(jié)點(diǎn),所述多個(gè)計(jì)算節(jié)點(diǎn)包括第一計(jì)算節(jié)點(diǎn),所述第一計(jì)算節(jié)點(diǎn)上運(yùn)行有第一容器,所述多個(gè)容器存儲(chǔ)單元包括從屬于所述第一容器的第一容器存儲(chǔ)單元;所述數(shù)據(jù)存儲(chǔ)裝置部署于所述存儲(chǔ)管理節(jié)點(diǎn),所述裝置包括:接收單元,用于接收所述第一計(jì)算節(jié)點(diǎn)發(fā)送的副本建立通知,所述文件的副本建立通知是所述第一計(jì)算節(jié)點(diǎn)檢測(cè)到第一容器中的應(yīng)用通過(guò)可寫(xiě)方式打開(kāi)保存在Base存儲(chǔ)單元中的文件時(shí)發(fā)出的;副本建立單元,用于在所述接收單元收到所述副本建立通知后,開(kāi)始在所述存儲(chǔ)節(jié)點(diǎn)的第一容器存儲(chǔ)單元中建立所述文件的副本;數(shù)據(jù)同步單元,用于檢測(cè)到所述文件的副本建立完成時(shí),從所述數(shù)據(jù)項(xiàng)中獲取所述文件的更新數(shù)據(jù),將所述文件的更新數(shù)據(jù)同步到所述文件的副本中,所述數(shù)據(jù)項(xiàng)是所述第一計(jì)算節(jié)點(diǎn)檢測(cè)到所述第一容器中的應(yīng)用對(duì)所述文件進(jìn)行寫(xiě)操作時(shí),獲取所述文件的更新數(shù)據(jù),根據(jù)所述文件的更新數(shù)據(jù)構(gòu)建的。
[0037]結(jié)合第八方面,在第一種可能的實(shí)現(xiàn)方式中,裝置還包括:發(fā)送單元,用于在所述同步操作完成后,發(fā)送切換通知給所述第一計(jì)算節(jié)點(diǎn),以指示所述第一計(jì)算節(jié)點(diǎn)在所述第一容器中的應(yīng)用對(duì)所述文件繼續(xù)進(jìn)行寫(xiě)操作時(shí),將文件操作對(duì)象切換到所述文件的副本,后續(xù)對(duì)所述文件的更新數(shù)據(jù)直接寫(xiě)入所述文件的副本中。
[0038]結(jié)合第八方面或者第八方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)同步單元,具體用于讀取所述數(shù)據(jù)項(xiàng)信息,將每一個(gè)數(shù)據(jù)項(xiàng)都掛到一個(gè)總的處理隊(duì)列中;依次將所述處理隊(duì)列中每個(gè)數(shù)據(jù)項(xiàng)中記錄的所述文件的更新數(shù)據(jù),按照記錄的所述寫(xiě)操作信息,同步到所述文件的副本中。
[0039]本發(fā)明第九方面提供一種計(jì)算機(jī)設(shè)備,包括:所述計(jì)算機(jī)設(shè)備包括處理器、存儲(chǔ)器、總線和通信接口 ;所述存儲(chǔ)器用于存儲(chǔ)計(jì)算機(jī)執(zhí)行指令,所述處理器與所述存儲(chǔ)器通過(guò)所述總線連接,當(dāng)所述計(jì)算機(jī)設(shè)備運(yùn)行時(shí),所述處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的所述計(jì)算機(jī)執(zhí)行指令,以使所述計(jì)算機(jī)設(shè)備執(zhí)行如本發(fā)明第一方面所述的數(shù)據(jù)存儲(chǔ)方法,或者如本發(fā)明第三方面所述的數(shù)據(jù)存儲(chǔ)方法,或者如本發(fā)明第四方面所述的數(shù)據(jù)存儲(chǔ)方法。
[0040]由上可見(jiàn),本發(fā)明實(shí)施例采用將寫(xiě)操作和建立副本分開(kāi)同時(shí)進(jìn)行,對(duì)Base存儲(chǔ)單元的文件進(jìn)行寫(xiě)操作時(shí),將更新數(shù)據(jù)記錄到數(shù)據(jù)項(xiàng)中,等所述文件的副本建立完成后,在從數(shù)據(jù)項(xiàng)中將更新數(shù)據(jù)同步到文件中的技術(shù)方案,取得了以下技術(shù)效果:由于寫(xiě)操作與建立副本分開(kāi)同時(shí)執(zhí)行,因而可實(shí)時(shí)進(jìn)行寫(xiě)操作,而不必等待文件副本建立完畢,這就大大加快了對(duì)容器中應(yīng)用的數(shù)據(jù)操作的響應(yīng)速度,可有效提高數(shù)據(jù)存儲(chǔ)效率,以及提高容器性能。
【附圖說(shuō)明】
[0041]為了更清楚地說(shuō)明本發(fā)明實(shí)施例技術(shù)方案,下面將對(duì)實(shí)施例和現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0042]圖1是層次化存儲(chǔ)結(jié)構(gòu)訪問(wèn)機(jī)制的示意圖;
[0043]圖2是本發(fā)明一個(gè)實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法的示意圖;
[0044]圖3是本發(fā)明一個(gè)實(shí)施例的容器虛擬化系統(tǒng)的示意圖;
[0045]圖4是本發(fā)明一個(gè)實(shí)施例中容器數(shù)據(jù)記錄操作的示意圖;
[0046]圖5是本發(fā)明一個(gè)實(shí)施例中容器數(shù)據(jù)同步操作的示意圖;
[0047]圖6是本發(fā)明一個(gè)實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置的示意圖;
[0048]圖7a是單個(gè)的計(jì)算機(jī)設(shè)備的架構(gòu)示意圖;
[0049]圖7b是分布式的計(jì)算機(jī)集群系統(tǒng)的架構(gòu)示意圖;
[0050]圖8a是本發(fā)明一個(gè)實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)方法;
[0051]圖Sb是本發(fā)明一個(gè)實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)方法;
[0052]圖9a是本發(fā)明一個(gè)實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)方法;
[0053]圖9b是本發(fā)明一個(gè)實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)方法;
[0054]圖1Oa是本發(fā)明一個(gè)實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)方法;
[0055]圖1Ob是本發(fā)明一個(gè)實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)方法;
[0056]圖1la是本發(fā)明一個(gè)實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置的示意圖;
[0057]圖1lb是本發(fā)明一個(gè)實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置的示意圖;
[0058]圖12a是本發(fā)明一個(gè)實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置的示意圖;
[0059]圖12b是本發(fā)明一個(gè)實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置的示意圖;
[0060]圖13a是本發(fā)明一個(gè)實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置的示意圖;
[0061]圖13b是本發(fā)明一個(gè)實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置的示意圖;
[0062]圖14是本發(fā)明一個(gè)實(shí)施例提供的計(jì)算機(jī)設(shè)備的示意圖。
【具體實(shí)施方式】
[0063]本發(fā)明實(shí)施例提供一種數(shù)據(jù)存儲(chǔ)方法、裝置和設(shè)備,以解決現(xiàn)有技術(shù)中容器對(duì)Base存儲(chǔ)中的文件執(zhí)行的寫(xiě)時(shí)拷貝操作耗時(shí)長(zhǎng),效率低的缺陷。
[0064]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
[0065]下面通過(guò)具體實(shí)施例,分別進(jìn)行詳細(xì)的說(shuō)明。
[0066]請(qǐng)參考圖2和圖3,本發(fā)明實(shí)施例提供一種數(shù)據(jù)存儲(chǔ)方法,該方法用于容器虛擬化系統(tǒng)。
[0067]如圖3所示,所述容器虛擬化系統(tǒng)10中運(yùn)行多個(gè)容器11,所述多個(gè)容器11具有各自的容器存儲(chǔ)單元12,且所述多個(gè)容器11共用基礎(chǔ)(Base)存儲(chǔ)單元13,所述多個(gè)容器11包括第一容器1101,所述第一容器1101具有第一容器存儲(chǔ)單元1201 ;其中,每個(gè)容器11具有自己的內(nèi)存1102。容易理解,所述第一容器11可以是所述多個(gè)