本申請大體上涉及存儲器管理,包含但不限于用于通過跨越多個存儲設備(例如,固態硬盤(ssd)中的多個存儲管芯)分配冗余數據塊來存儲數據的方法、系統和非暫時性計算機可讀介質。
背景技術:
1、存儲器應用于計算機系統中以存儲指令和數據。數據是根據存儲在存儲器中的指令而由計算機系統的一個或多個處理器處理。在計算機系統的不同部分中使用多個存儲單元以服務于不同功能。具體地說,計算機系統包含非易失性存儲器,其充當輔助存儲器以在計算機系統從電源解耦時保持存儲在其上的數據。輔助存儲器的示例包含但不限于硬盤驅動器(hdd)和固態硬盤(ssd)。計算機系統的輔助存儲器時常應用廉價磁盤冗余陣列(raid),其是將多個物理存儲驅動器組合到單個或多個邏輯單元中以用于數據冗余和優化性能的虛擬化數據存儲技術。raid可以配置到ssd中的不同層級中,從而實現改進的性能水平和數據安全性。全球網絡存儲工業協會(snia)標準化了raid層級及其相關聯的數據格式。數據中心ssd通常應用具有專用奇偶校驗位(raid?4)或分布式奇偶校驗位(raid?5)的塊級條帶化(striping)以滿足不可校正位錯誤率(uber)要求。然而,raid?4或raid?5無法在需要具有xor條帶內的頻繁非同步更新的許多開放式隔離單元的一些替換模式中有效地應用。應用實用的數據存儲和驗證機制以存儲涉及許多開放隔離單元的數據將是有益的。
技術實現思路
1、本申請的各種實施例涉及用于通過跨越多個存儲設備(例如,nand管芯)且基于多個raid方案(例如,raid?1和raid?4)分配冗余數據塊來存儲數據的方法、系統、設備、非暫時性計算機可讀介質。第一層級raid包含raid?1,且應用于響應于主機寫入而緩沖數據。所述數據在兩個相異存儲設備(例如,兩個nand管芯)上成鏡像。所述數據的副本寫入在第一隔離單元(例如,另一存儲設備的存儲塊)中。當存儲系統完全填滿包含所述第一隔離單元的一個或多個隔離單元時,所述存儲系統生成用于經由分批方式存儲在所述第一隔離單元中的數據的完整性數據且根據第二層級raid(例如,raid?4或raid?5)存儲所述完整性數據。在存儲所述完整性數據之后,使根據所述第一層級raid存儲的所述數據的至少一個副本失效或釋放。raid?1應用于以非同步寫入存儲具有精細數據粒度級的數據,且raid?4和raid?5應用于分批存儲由完整性數據保護的數據。在示例放置模式中,raid?1在使用更暫時存儲空間的同時在精細數據粒度級上提供更佳性能。相反,raid?4和raid?5節省在raid1中為數據重復而浪費的存儲空間,且無法提供與raid?1相同的數據粒度級。在本申請的各種實施例中,聯合地應用兩個層級的raid方案以得益于raid?1的精細數據粒度級以及raid4或raid?5的高存儲空間利用率兩者,由此以合理硬件成本滿足存儲系統的uber要求。
2、在一個方面中,一種方法實施在電子系統處以將數據存儲在存儲系統(例如,包含多個存儲通道)上。所述方法包含:使用戶數據在兩個相異存儲設備上成鏡像;基于所述用戶數據生成完整性數據;以及將所述用戶數據的完整性數據存儲在完整性存儲設備上。所述方法進一步包含根據所述用戶數據的所述完整性數據存儲在所述完整性存儲設備上的確定,釋放在所述兩個相異存儲設備中的至少一者上成鏡像的所述用戶數據。在一些實施例中,所述兩個相異存儲設備與所述完整性存儲設備對應于ssd的不同nand管芯。
3、在一些實施例中,存儲區包含所述完整性存儲設備的存儲塊和包含第一數據存儲設備的多個數據存儲設備的多個存儲塊。所述方法進一步包含:將所述用戶數據的副本存儲在所述第一數據存儲設備上,且所述完整性數據是基于包含所述第一數據存儲設備的數據存儲設備的子集中的每個數據存儲設備的用戶數據的子集而生成。此外,在一些實施例中,所述方法進一步包含確定所述存儲區的所述多個數據存儲設備的一個或多個存儲塊是否被填滿。所述用戶數據的所述完整性數據是根據所述多個數據存儲設備的一個或多個存儲塊填滿的確定而基于所述用戶數據生成且存儲在所述完整性存儲設備上。另外,在一些實施例中,所述方法包含通過以下操作從所述第一數據存儲設備擦除所述用戶數據的所述副本:更新所述完整性數據以從應用于生成所述完整性數據的用戶數據的所述子集排除存儲在所述第一數據存儲設備上的所述用戶數據的所述副本;以及修改邏輯-物理(l2p)表以使存儲所述用戶數據的所述副本的所述第一數據存儲設備的物理地址和與所述用戶數據相關聯的對應邏輯地址解除關聯。
4、本申請的一些實施方案包含一種電子設備,所述電子設備包含一個或多個處理器,和存儲器,所述存儲器上存儲有指令,所述指令在由所述一個或多個處理器執行時使所述處理器對存儲系統(例如,一個或多個ssd)執行上述方法中的任一者。
5、一些實施方案包含一種非暫時性計算機可讀存儲介質,其存儲一個或多個程序。所述一個或多個程序包含指令,所述指令在由一個或多個處理器執行時使所述處理器對存儲系統(例如,一個或多個ssd)實施上述方法中的任一者。
6、提及這些說明性實施例和實施方案并非為了限制或限定本公開,而是提供示例以輔助理解本公開。在具體實施方式中論述了額外實施例且在那里提供了進一步的描述。
1.一種用于存儲數據的方法,其包括:
2.根據權利要求1所述的方法,其中存儲區包含所述完整性存儲設備的存儲塊和包含第一數據存儲設備的多個數據存儲設備的多個存儲塊,所述方法進一步包括:
3.根據權利要求2所述的方法,其進一步包括:
4.根據權利要求2或3所述的方法,其進一步包括通過以下操作從所述第一數據存儲設備擦除所述用戶數據的所述副本:
5.根據權利要求4所述的方法,其進一步包括:
6.根據權利要求4或5所述的方法,其中通過以下操作從所述第一數據存儲設備擦除所述用戶數據的所述副本:
7.根據權利要求2至6中任一項所述的方法,其進一步包括:
8.根據權利要求1至7中任一項所述的方法,其中所述兩個相異存儲設備中的每一者包含四層級單元(qlc)固態硬盤(ssd)管芯且具有多個存儲塊,且每個存儲塊包含多個存儲頁,其中的每一者包含多個四層級存儲單元。
9.根據權利要求1至8中任一項所述的方法,其包括:
10.根據權利要求9所述的方法,其中:
11.根據權利要求9或10所述的方法,其中所述用戶數據包含第一用戶數據,且所述數據文件進一步包含第二用戶數據,所述方法進一步包括:
12.根據權利要求1至11中任一項所述的方法,其中所述兩個相異存儲設備和所述完整性存儲設備中的每一者包含一個或多個存儲管芯。
13.根據權利要求1至12中任一項所述的方法,其中所述兩個相異存儲設備中的每一者包含以下各者中的一者:單層級單元(slc)存儲管芯,和多層級單元(mlc)存儲管芯。
14.根據權利要求1至13中任一項所述的方法,其中所述完整性存儲設備包含mlc存儲管芯和slc存儲管芯中的一者且具有多個存儲塊,且每個存儲塊包含多個存儲頁,其中的每一者包含多個mlc或slc。
15.根據權利要求1至14中任一項所述的方法,其中所述兩個相異存儲設備和完整性存儲設備中的至少一者包含選自由以下組成的群組的存儲類存儲器(scm):相變存儲器(pcm)、電阻性隨機存取存儲器(reram)、磁阻性隨機存取存儲器(mram),和3d?xpoint存儲器。
16.根據權利要求1至15中任一項所述的方法,其中所述兩個相異存儲設備和所述完整性存儲設備中的每一者包含存儲系統的相異存儲管芯。
17.根據權利要求1至16中任一項所述的方法,其中基于所述用戶數據的副本而生成且存儲所述完整性數據,且不對于在所述兩個相異存儲設備上成鏡像的所述用戶數據生成所述完整性數據。
18.根據權利要求1至17中任一項所述的方法,其中所述用戶數據包含第一用戶數據,所述方法進一步包括用于以下操作的指令:
19.一種電子設備,其包括:
20.一種非暫時性計算機可讀介質,其上存儲有指令,所述指令在由一個或多個處理器執行時使所述處理器執行根據權利要求1至18中任一項所述的方法。