本技術(shù)涉及云計(jì)算領(lǐng)域,并且更具體地,涉及一種數(shù)據(jù)存儲方法、數(shù)據(jù)存儲裝置、計(jì)算設(shè)備集群、計(jì)算機(jī)程序產(chǎn)品、計(jì)算機(jī)可讀存儲介質(zhì)。
背景技術(shù):
1、現(xiàn)有的云廠商均可以為租戶提供數(shù)據(jù)存儲服務(wù),對于租戶需要低成本長期保存的數(shù)據(jù),云廠商可以提供離線存儲設(shè)備進(jìn)行存儲。該離線存儲設(shè)備例如可以包括磁帶、光盤等非易失性存儲設(shè)備。但在租戶需要取回?cái)?shù)據(jù)時(shí),必須將離線存儲設(shè)備加載至驅(qū)動(dòng)器中,并尋址到指定位置才可以取回?cái)?shù)據(jù)。因此,取回?cái)?shù)據(jù)的時(shí)延主要取決于等待驅(qū)動(dòng)器空閑的排隊(duì)時(shí)間、機(jī)械臂加載離線存儲設(shè)備的時(shí)間和尋址時(shí)間之和。但在租戶需要取回的數(shù)據(jù)量較大時(shí),受限于驅(qū)動(dòng)器個(gè)數(shù),取回?cái)?shù)據(jù)的時(shí)間較長,效率較低。并且,為了數(shù)據(jù)存儲的可靠性,目前常用的存儲技術(shù)為糾刪碼(erasure?code,ec)技術(shù)。ec技術(shù)可以將一個(gè)文件切分為多個(gè)分片,并該多個(gè)分片分別存儲至多個(gè)不同的存儲設(shè)備中。在使用ec技術(shù)進(jìn)行存儲時(shí),取回一個(gè)文件需要調(diào)用多個(gè)驅(qū)動(dòng)器來分別訪問多個(gè)存儲設(shè)備,才可以取回該文件的所有數(shù)據(jù),因此導(dǎo)致取回文件的效率較低。
2、因此,如何提高存儲方法在取回文件時(shí)的效率成為亟待解決的問題。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供一種數(shù)據(jù)存儲方法、數(shù)據(jù)存儲裝置、計(jì)算設(shè)備集群、計(jì)算機(jī)程序產(chǎn)品、計(jì)算機(jī)可讀存儲介質(zhì),可以提高數(shù)據(jù)存儲方法在取回文件時(shí)的效率。
2、第一方面,提供了一種數(shù)據(jù)存儲方法,該方法應(yīng)用于云管理平臺。該云管理平臺用于管理提供云服務(wù)的基礎(chǔ)設(shè)施,該基礎(chǔ)設(shè)施包括存儲設(shè)備集群。該存儲設(shè)備集群包括多個(gè)分布式存儲設(shè)備。該方法包括:接收租戶的第一請求信息,該第一請求信息用于獲取第一文件;根據(jù)第一請求信息,確定第一文件所在的第一數(shù)據(jù)塊集合,該第一數(shù)據(jù)塊集合中包括一個(gè)或多個(gè)文件,該第一數(shù)據(jù)塊集合中包括的文件的屬性相同,該第一數(shù)據(jù)塊集合存儲在多個(gè)分布式存儲設(shè)備中的一個(gè)存儲設(shè)備中;根據(jù)第一數(shù)據(jù)塊集合,確定第一數(shù)據(jù)塊集合所在的第一存儲設(shè)備;從第一存儲設(shè)備中讀取第一文件。
3、本技術(shù)實(shí)施例中,云管理平臺可以將屬性相同的至少一個(gè)文件合并為一個(gè)數(shù)據(jù)塊集合,并將該數(shù)據(jù)塊集合存儲至一個(gè)存儲設(shè)備中。即,租戶的一個(gè)文件可以盡量存儲在一個(gè)存儲設(shè)備中,且租戶的屬性相同的多個(gè)文件可以盡量存儲在一個(gè)存儲設(shè)備中,因此在取回該一個(gè)或多個(gè)文件時(shí),需要訪問的存儲設(shè)備的數(shù)量較少,因此可以節(jié)約取回文件的時(shí)間,提高取回文件的效率。
4、結(jié)合第一方面,在第一方面的某些實(shí)現(xiàn)方式中,接收租戶的第二請求信息,該第二請求信息用于獲取多個(gè)文件,多個(gè)文件的屬性相同;根據(jù)第二請求信息,確定多個(gè)文件所在的第二數(shù)據(jù)塊集合;根據(jù)第二數(shù)據(jù)塊集合,確定第二數(shù)據(jù)塊集合所在的第二存儲設(shè)備;從第二存儲設(shè)備中讀取多個(gè)文件。
5、本技術(shù)實(shí)施例中,云管理平臺可以將屬性相同的多個(gè)文件合并為一個(gè)數(shù)據(jù)塊集合,并存儲在一個(gè)存儲設(shè)備中,從而在取回該多個(gè)文件時(shí)僅需訪問一個(gè)存儲設(shè)備,進(jìn)而可以提高取回文件的效率。
6、結(jié)合第一方面,在第一方面的某些實(shí)現(xiàn)方式中,接收租戶的配置信息,該配置信息包括至少一個(gè)文件中每個(gè)文件的屬性;根據(jù)配置信息和至少一個(gè)文件,確定n個(gè)數(shù)據(jù)塊集合,該n個(gè)數(shù)據(jù)塊集合中的每個(gè)數(shù)據(jù)塊集合包括至少一個(gè)文件中的一個(gè)或多個(gè)文件,每個(gè)數(shù)據(jù)塊集合包括的文件的屬性相同,該n個(gè)數(shù)據(jù)塊集合包括第一數(shù)據(jù)塊集合,n為大于或等于1的正整數(shù);將n個(gè)數(shù)據(jù)塊集合分別存儲至至少一個(gè)分布式存儲設(shè)備中的n個(gè)存儲設(shè)備中。
7、本技術(shù)實(shí)施例中,云管理平臺可以將屬性相同的至少一個(gè)文件合并為一個(gè)數(shù)據(jù)塊集合,并將該數(shù)據(jù)塊集合存儲至一個(gè)存儲設(shè)備中,從而在取回該一個(gè)或多個(gè)文件時(shí),僅需訪問較少的存儲設(shè)備,進(jìn)而可以節(jié)約取回文件的時(shí)間,提高取回文件的效率。
8、結(jié)合第一方面,在第一方面的某些實(shí)現(xiàn)方式中,文件的屬性包括以下至少一項(xiàng):文件所屬的存儲桶的標(biāo)識信息、文件所在的目錄、文件的保存時(shí)間、文件的存儲類型、文件的大小、文件的名稱,文件的存儲類型用于指示文件的訪問頻率。
9、本技術(shù)實(shí)施例中,可以根據(jù)文件的不同屬性,將屬性相同的多個(gè)文件合并為一個(gè)數(shù)據(jù)塊集合,從而在租戶需要取回文件時(shí),提高取回文件的效率。
10、結(jié)合第一方面,在第一方面的某些實(shí)現(xiàn)方式中,根據(jù)至少一個(gè)文件中每個(gè)文件的屬性,確定至少一個(gè)文件集合,每個(gè)文件集合中包括至少一個(gè)文件中同一屬性的所有文件;根據(jù)至少一個(gè)文件集合,確定n個(gè)數(shù)據(jù)塊集合,每個(gè)數(shù)據(jù)塊集合包括至少一個(gè)文件集合中一個(gè)文件集合中的一個(gè)或多個(gè)文件,且每個(gè)數(shù)據(jù)塊集合的大小小于或等于第一預(yù)設(shè)閾值。
11、本技術(shù)實(shí)施例中,可以根據(jù)文件的屬性,將租戶的至少一個(gè)文件劃分為不同的文件集合,從而對一個(gè)文件集合中的文件進(jìn)行合并,進(jìn)而確定至少一個(gè)數(shù)據(jù)塊集合。
12、結(jié)合第一方面,在第一方面的某些實(shí)現(xiàn)方式中,根據(jù)n個(gè)數(shù)據(jù)塊集合,確定m個(gè)校驗(yàn)數(shù)據(jù)塊集合,m個(gè)校驗(yàn)數(shù)據(jù)塊集合用于在n個(gè)數(shù)據(jù)塊集合中的一個(gè)或多個(gè)數(shù)據(jù)塊集合發(fā)生故障時(shí)進(jìn)行恢復(fù),m為大于或等于1的正整數(shù);將m個(gè)校驗(yàn)數(shù)據(jù)塊集合存儲至至少一個(gè)分布式存儲設(shè)備中的m個(gè)存儲設(shè)備中,m個(gè)存儲設(shè)備與n個(gè)存儲設(shè)備為不同存儲設(shè)備。
13、本技術(shù)實(shí)施例中,在存儲n個(gè)數(shù)據(jù)塊集合時(shí),還可以根據(jù)n個(gè)數(shù)據(jù)塊集合確定m個(gè)校驗(yàn)數(shù)據(jù)塊集合,從而便于在該n個(gè)數(shù)據(jù)塊集合中的部分?jǐn)?shù)據(jù)塊集合出現(xiàn)故障時(shí)進(jìn)行恢復(fù),進(jìn)而可以提高數(shù)據(jù)存儲的可靠性。
14、結(jié)合第一方面,在第一方面的某些實(shí)現(xiàn)方式中,每個(gè)數(shù)據(jù)塊集合包括p個(gè)數(shù)據(jù)塊,每個(gè)校驗(yàn)數(shù)據(jù)塊集合包括p個(gè)校驗(yàn)數(shù)據(jù)塊,根據(jù)n個(gè)數(shù)據(jù)塊集合中每個(gè)數(shù)據(jù)塊集合的第p個(gè)數(shù)據(jù)塊,確定m個(gè)校驗(yàn)數(shù)據(jù)塊集合中每個(gè)校驗(yàn)數(shù)據(jù)塊集合的第p個(gè)校驗(yàn)數(shù)據(jù)塊,第p個(gè)數(shù)據(jù)塊和/或第p個(gè)校驗(yàn)數(shù)據(jù)塊的大小小于或等于第二預(yù)設(shè)閾值,p=1,......,p,p為大于或等于1的正整數(shù)。
15、本技術(shù)實(shí)施例中,可以將n個(gè)數(shù)據(jù)塊集合中的每個(gè)數(shù)據(jù)塊集合劃分為至少一個(gè)數(shù)據(jù)塊,并根據(jù)每個(gè)數(shù)據(jù)塊集合的一個(gè)數(shù)據(jù)塊確定m個(gè)校驗(yàn)數(shù)據(jù)塊集合的一個(gè)校驗(yàn)數(shù)據(jù)塊,從而確定該m個(gè)校驗(yàn)數(shù)據(jù)塊集合,進(jìn)而可以節(jié)約確定m個(gè)校驗(yàn)數(shù)據(jù)塊集合時(shí)的計(jì)算資源開銷和內(nèi)存開銷。
16、結(jié)合第一方面,在第一方面的某些實(shí)現(xiàn)方式中,將n個(gè)數(shù)據(jù)塊集合中每個(gè)數(shù)據(jù)塊集合的第p個(gè)數(shù)據(jù)塊分別存儲至n個(gè)存儲設(shè)備中;將m個(gè)校驗(yàn)數(shù)據(jù)塊集合中每個(gè)校驗(yàn)數(shù)據(jù)塊集合的第p個(gè)校驗(yàn)數(shù)據(jù)塊分別存儲至m個(gè)存儲設(shè)備中。
17、本技術(shù)實(shí)施例中,可以將n個(gè)數(shù)據(jù)塊集合和m個(gè)校驗(yàn)數(shù)據(jù)塊集合分別存儲至n+m個(gè)存儲設(shè)備中,從而實(shí)現(xiàn)分布式存儲,進(jìn)而可以提高數(shù)據(jù)存儲的可靠性。
18、結(jié)合第一方面,在第一方面的某些實(shí)現(xiàn)方式中,一個(gè)數(shù)據(jù)塊集合的p個(gè)數(shù)據(jù)塊在一個(gè)存儲設(shè)備中連續(xù)存儲,一個(gè)校驗(yàn)數(shù)據(jù)塊集合的p個(gè)校驗(yàn)數(shù)據(jù)塊在一個(gè)存儲設(shè)備中連續(xù)存儲。
19、本技術(shù)實(shí)施例中,一個(gè)數(shù)據(jù)塊集合可以在存儲設(shè)備中連續(xù)存儲,從而使得租戶在取回文件時(shí),僅讀取一個(gè)存儲設(shè)備中的連續(xù)存儲空間即可取回該文件,進(jìn)而可以提高取回文件的效率。
20、結(jié)合第一方面,在第一方面的某些實(shí)現(xiàn)方式中,n個(gè)數(shù)據(jù)塊集合的屬性相同,每個(gè)數(shù)據(jù)塊集合的屬性根據(jù)每個(gè)數(shù)據(jù)塊集合中包括的文件的屬性確定,n個(gè)存儲設(shè)備為一組存儲設(shè)備。
21、本技術(shù)實(shí)施例中,可以將屬性相同的n個(gè)數(shù)據(jù)塊集合存儲至一組存儲設(shè)備中,從而可以提高取回多個(gè)文件時(shí)的效率。
22、示例性地,該一組存儲設(shè)備可以是物理位置相接近的一組存儲設(shè)備。例如,該一組存儲設(shè)備可以是位于同一機(jī)架上的存儲設(shè)備。或者,該一組存儲設(shè)備可以是位于不同機(jī)架上的相同位置的存儲設(shè)備?;蛘撸撘唤M存儲設(shè)備可以是標(biāo)識信息相接近的一組存儲設(shè)備。例如,該一組存儲設(shè)備的標(biāo)識信息為數(shù)字時(shí),該一組存儲設(shè)備中每個(gè)存儲設(shè)備的標(biāo)識信息可以依次遞減或遞增。
23、結(jié)合第一方面,在第一方面的某些實(shí)現(xiàn)方式中,生成第一映射關(guān)系,該第一映射關(guān)系用于指示每個(gè)文件所在的數(shù)據(jù)塊集合的標(biāo)識信息。
24、本技術(shù)實(shí)施例中,在生成n個(gè)數(shù)據(jù)塊集合時(shí),可以記錄每個(gè)數(shù)據(jù)塊集合和每個(gè)文件的對應(yīng)關(guān)系,從而便于租戶取回文件。
25、結(jié)合第一方面,在第一方面的某些實(shí)現(xiàn)方式中,生成第二映射關(guān)系,該第二映射關(guān)系用于指示每個(gè)數(shù)據(jù)塊集合所在的存儲設(shè)備的標(biāo)識信息。
26、本技術(shù)實(shí)施例中,在將n個(gè)數(shù)據(jù)塊集合存儲至n個(gè)存儲設(shè)備時(shí),可以記錄每個(gè)存儲設(shè)備與每個(gè)數(shù)據(jù)塊集合的對應(yīng)關(guān)系,從而便于租戶取回文件。
27、結(jié)合第一方面,在第一方面的某些實(shí)現(xiàn)方式中,該至少一個(gè)分布式存儲設(shè)備為非易失性存儲設(shè)備。
28、本技術(shù)實(shí)施例中,存儲文件或數(shù)據(jù)塊集合的存儲設(shè)備可以為非易失性存儲設(shè)備,從而可以提高數(shù)據(jù)存儲的可靠性。
29、第二方面,提供了一種數(shù)據(jù)存儲裝置。該裝置包括用于實(shí)現(xiàn)第一方面或第一方面的任一種可能的實(shí)現(xiàn)方式的模塊。
30、第三方面,本技術(shù)提供了一種計(jì)算設(shè)備集群,包括至少一個(gè)計(jì)算設(shè)備,每個(gè)計(jì)算設(shè)備包括處理器和存儲器;至少一個(gè)計(jì)算設(shè)備的處理器用于執(zhí)行至少一個(gè)計(jì)算設(shè)備的存儲器中存儲的指令,以使得計(jì)算設(shè)備集群執(zhí)行上述第一方面或第一方面中的任意一種實(shí)現(xiàn)方式的方法。
31、第四方面,本技術(shù)提供了一種包含指令的計(jì)算機(jī)程序產(chǎn)品,當(dāng)指令被計(jì)算機(jī)設(shè)備集群運(yùn)行時(shí),使得計(jì)算機(jī)設(shè)備集群執(zhí)行上述第一方面或第一方面中的任意一種實(shí)現(xiàn)方式的方法。
32、第五方面,本技術(shù)提供了一種計(jì)算機(jī)可讀存儲介質(zhì),包括計(jì)算機(jī)程序指令,當(dāng)計(jì)算機(jī)程序指令由計(jì)算設(shè)備集群執(zhí)行時(shí),計(jì)算設(shè)備集群執(zhí)行上述第一方面或第一方面中的任意一種實(shí)現(xiàn)方式的方法。