本技術(shù)涉及存儲,尤其涉及一種數(shù)據(jù)存儲方法及相關(guān)裝置。
背景技術(shù):
1、在部分存儲系統(tǒng)的存儲介質(zhì)中,如固態(tài)硬盤(solid?state?disk或solid?statedrive,ssd)等,通常采用寫重定向(redirection?on?write,row)機制寫入新數(shù)據(jù)。即,當存儲系統(tǒng)接收新數(shù)據(jù)時,新數(shù)據(jù)會被寫入存儲系統(tǒng)的空白塊中,而原先的數(shù)據(jù)會被標記為垃圾數(shù)據(jù)等待回收。
2、在存儲系統(tǒng)收到數(shù)據(jù)的過程中,若數(shù)據(jù)無法湊滿完整的分條,則需要對分條中未寫滿的部分進行補零,以生成校驗數(shù)據(jù)。但是,上述操作會增加寫放大,造成額外空間開銷。
技術(shù)實現(xiàn)思路
1、本技術(shù)提供了一種數(shù)據(jù)存儲方法及相關(guān)裝置,能夠減少寫放大。
2、第一方面,本技術(shù)提供了一種數(shù)據(jù)存儲方法,該方法可以應(yīng)用于存儲技術(shù)領(lǐng)域,主要包括:
3、當存儲系統(tǒng)的負載低時,選擇以小校驗組的方式對存儲系統(tǒng)收到的數(shù)據(jù)進行存儲,其中,小校驗組包括數(shù)據(jù)塊和校驗塊;當存儲系統(tǒng)的負載高時,選擇以大校驗組的方式對存儲系統(tǒng)收到的數(shù)據(jù)進行存儲,其中,大校驗組包括數(shù)據(jù)塊和校驗塊,大校驗組中的數(shù)據(jù)塊的數(shù)量大于小校驗組中的數(shù)據(jù)塊的數(shù)量。
4、在本技術(shù)中,根據(jù)存儲系統(tǒng)的負載高低對校驗組進行動態(tài)調(diào)整,在存儲系統(tǒng)的負載低時,使用小校驗組存儲數(shù)據(jù),避免了數(shù)據(jù)無法湊滿分條需要補零而造成額外開銷的問題,減少了寫放大,提升了存儲系統(tǒng)的整體性能和壽命。在存儲系統(tǒng)的負載高時,使用大校驗組存儲數(shù)據(jù),提高盤利用率。實現(xiàn)了根據(jù)存儲系統(tǒng)的負載高低,動態(tài)調(diào)整數(shù)據(jù)的存儲方式,進一步提升了存儲系統(tǒng)的性能,減少了系統(tǒng)開銷。
5、在第一方面的一種可能實現(xiàn)方式中,存儲系統(tǒng)將數(shù)據(jù)以寫重定向row的方式進行存儲。
6、存儲系統(tǒng)在收到數(shù)據(jù)時,將數(shù)據(jù)以寫重定向的方式進行存儲。在存儲系統(tǒng)的負載低時,若數(shù)據(jù)無法湊滿盤的滿分條,一般會通過補零的方式湊滿分條,以生成校驗數(shù)據(jù),增加了寫放大,造成了額外開銷。該種實現(xiàn)方式中,存儲系統(tǒng)通過接收到的數(shù)據(jù)動態(tài)調(diào)整存儲的數(shù)據(jù)塊的數(shù)量,避免了無效補零,減少了寫放大。
7、在第一方面的一種可能實現(xiàn)方式中,對存儲系統(tǒng)收到的數(shù)據(jù)進行存儲,包括:
8、存儲系統(tǒng)將小校驗組以及大校驗組中的數(shù)據(jù)發(fā)送給本地或者遠端的存儲器進行存儲,不同的存儲器保存不同的塊。
9、該種實現(xiàn)方式中,存儲系統(tǒng)采用存儲器對數(shù)據(jù)進行存儲,數(shù)據(jù)塊和校驗塊中的每個塊均對應(yīng)不同的存儲器,以將數(shù)據(jù)存儲到不同的存儲器中。
10、在第一方面的一種可能實現(xiàn)方式中,還包括:
11、在對存儲器做垃圾回收時,存儲系統(tǒng)按照大校驗組,對存儲器中以小校驗組存儲的有效數(shù)據(jù)進行遷移。
12、該種實現(xiàn)方式中,在對存儲器進行垃圾回收時,存儲系統(tǒng)采用大校驗組對存儲器中以小校驗組存儲的有效數(shù)據(jù)進行遷移,從而恢復(fù)存儲器的容量利用率。
13、在第一方面的一種可能實現(xiàn)方式中,大校驗組和小校驗組中校驗塊的數(shù)量相同。
14、該種實現(xiàn)方式中,無論存儲系統(tǒng)的負載高或者低,均假設(shè)生成的校驗塊的數(shù)量相同,以根據(jù)收到的數(shù)據(jù)動態(tài)調(diào)整數(shù)據(jù)塊的數(shù)量,選擇不同數(shù)量的數(shù)據(jù)塊進行數(shù)據(jù)的存儲,避免了數(shù)據(jù)無法湊滿分條需要補零而造成額外開銷的問題,減少了寫放大。
15、在第一方面的一種可能實現(xiàn)方式中,存儲系統(tǒng)是集中式存儲設(shè)備或者存儲服務(wù)器。
16、該種實現(xiàn)方式中,存儲系統(tǒng)適用于集中式分布場景,存儲系統(tǒng)是集中式存儲設(shè)備或者存儲服務(wù)器。
17、在第一方面的一種可能實現(xiàn)方式中,存儲系統(tǒng)是分布式存儲系統(tǒng),或者是組成分布式存儲系統(tǒng)中的一個分布式存儲設(shè)備。
18、該種實現(xiàn)方式中,存儲系統(tǒng)適用于分布式分布場景,存儲系統(tǒng)為分布式存儲系統(tǒng),或者是組成分布式存儲系統(tǒng)中的一個分布式存儲設(shè)備。
19、第二方面,本技術(shù)提供了一種數(shù)據(jù)存儲裝置,有益效果可以參見第一方面的描述,此處不再贅述。該裝置具有實現(xiàn)上述第一方面的方法實例中行為的功能。該功能可以通過硬件實現(xiàn),也可以通過硬件執(zhí)行相應(yīng)的軟件實現(xiàn)。該硬件或軟件包括一個或多個與上述功能相對應(yīng)的模塊。在一個可能的設(shè)計中,該裝置包括:
20、第一存儲模塊,用于當數(shù)據(jù)存儲裝置的負載低時,選擇以小校驗組的方式對數(shù)據(jù)存儲裝置收到的數(shù)據(jù)進行存儲,小校驗組包括數(shù)據(jù)塊和校驗塊;
21、第二存儲模塊,用于當數(shù)據(jù)存儲裝置的負載高時,選擇以大校驗組的方式對數(shù)據(jù)存儲裝置收到的數(shù)據(jù)進行存儲,其中,大校驗組包括數(shù)據(jù)塊和校驗塊,大校驗組中的數(shù)據(jù)塊的數(shù)量大于小校驗組中的數(shù)據(jù)塊的數(shù)量。
22、在第二方面的一種可能實現(xiàn)方式中,數(shù)據(jù)存儲裝置將數(shù)據(jù)以寫重定向row的方式進行存儲。
23、在第二方面的一種可能實現(xiàn)方式中,對數(shù)據(jù)存儲裝置收到的數(shù)據(jù)進行存儲,包括:
24、數(shù)據(jù)存儲裝置將小校驗組以及大校驗組中的數(shù)據(jù)發(fā)送給本地或者遠端的存儲器進行存儲,不同的存儲器保存不同的塊。
25、在第二方面的一種可能實現(xiàn)方式中,還包括:
26、在對存儲器做垃圾回收時,數(shù)據(jù)存儲裝置按照大校驗組對存儲器中的有效數(shù)據(jù)進行遷移。
27、在第二方面的一種可能實現(xiàn)方式中,大校驗組和小校驗組中校驗塊的數(shù)量相同。
28、在第二方面的一種可能實現(xiàn)方式中,數(shù)據(jù)存儲裝置是集中式存儲設(shè)備或者存儲服務(wù)器。
29、在第二方面的一種可能實現(xiàn)方式中,數(shù)據(jù)存儲裝置是分布式存儲系統(tǒng),或者是組成分布式存儲系統(tǒng)中的一個分布式存儲設(shè)備。
30、第三方面,本技術(shù)提供了一種控制器,其特征在于,包括內(nèi)存和處理器,內(nèi)存中存儲數(shù)據(jù)和可在處理器上運行的程序,處理器執(zhí)行程序時,控制器實現(xiàn)上述第一方面或第一方面的任一可能的實現(xiàn)方式中的方法。
31、第四方面,本技術(shù)提供了一種存儲系統(tǒng),包括多個存儲設(shè)備,其特征在于,當存儲系統(tǒng)的負載低時,選擇以小校驗組的方式將收到的數(shù)據(jù)存儲到存儲系統(tǒng)的存儲設(shè)備中,小校驗組包括數(shù)據(jù)塊和校驗塊;
32、當存儲系統(tǒng)的負載高時,選擇以大校驗組的方式將收到的數(shù)據(jù)存儲到存儲系統(tǒng)的存儲設(shè)備中,小校驗組包括數(shù)據(jù)塊和校驗塊,大校驗組中的數(shù)據(jù)塊的數(shù)量大于小校驗組中的數(shù)據(jù)塊的數(shù)量。
33、第五方面,本身請?zhí)峁┝艘环N存儲系統(tǒng),每個存儲設(shè)備管理多個存儲器,其中,存儲系統(tǒng)用于:
34、把同一個校驗組的塊保存于多個存儲設(shè)備,不同的存儲設(shè)備保存不同的塊;或者,
35、把同一個校驗組的塊保存于多個存儲器,不同的存儲器保存不同的塊。
36、第六方面,本技術(shù)提供了一種計算機程序產(chǎn)品,該計算機產(chǎn)品被計算機執(zhí)行時,實現(xiàn)上述第一方面或第一方面的任一可能的實現(xiàn)方式中的方法。
37、第七方面,本技術(shù)提供了一種芯片系統(tǒng),該芯片系統(tǒng)包括處理器,用于實現(xiàn)上述第一方面或第一方面的任一可能的實現(xiàn)方式中的方法。在一種可能的設(shè)計中,芯片系統(tǒng)還包括存儲器,用于保存程序指令和/或數(shù)據(jù)。該芯片系統(tǒng),可以由芯片構(gòu)成,也可以包括芯片和其它分立器件。
38、上述第二至第七方面的方案,用于實現(xiàn)或配合實現(xiàn)上述第一方面或其中任一種可能的實現(xiàn)方式中的方法,因此能夠與第一方面達到相同或相應(yīng)的有益效果,此處不再進行贅述。