本公開的實施例涉及存儲領(lǐng)域,并且更具體地涉及文件系統(tǒng)的管理方法、裝置、集群、產(chǎn)品和介質(zhì)。
背景技術(shù):
1、文件系統(tǒng)被用于組織和管理文件和目錄,其提供了一種結(jié)構(gòu)化的方式來存儲和訪問文件,使得用戶和應用等能夠方便地對文件進行管理和操作。文件系統(tǒng)將物理存儲設(shè)備(諸如,機械硬盤、固態(tài)硬盤等)抽象為一個邏輯空間,通過分配和管理磁盤空間來存儲文件。文件系統(tǒng)通常使用層次化的目錄結(jié)構(gòu),使得文件基于目錄與文件之間的嵌套關(guān)系而被有序地組織起來。文件系統(tǒng)還提供了對文件的命名、刪除、復制、移動和修改等操作。此外,文件系統(tǒng)可以跟蹤文件的屬性(例如,創(chuàng)建時間、修改時間、權(quán)限等),并且提供安全性和訪問控制功能,以確保只有授權(quán)的用戶能夠訪問和修改文件。
2、通常,文件系統(tǒng)以樹結(jié)構(gòu)管理該文件系統(tǒng)的目錄和文件,例如b+樹。當需要查找某個目錄或文件時,基于樹結(jié)構(gòu)中的信息,可以定位到查找目標。然而,當盤上的樹結(jié)構(gòu)中的節(jié)點出現(xiàn)損壞情況下,會丟失文件。在問題節(jié)點是靠近根節(jié)點的節(jié)點或者就是根節(jié)點本身的情況下,將會導致大量甚至全部文件的丟失。
技術(shù)實現(xiàn)思路
1、根據(jù)本公開的一些實施例,提供了一種文件系統(tǒng)的管理方案。通過根據(jù)本公開的實施例的文件系統(tǒng)的管理方案,能夠提高文件系統(tǒng)的容災性,使得在劣化發(fā)生時,減少丟失文件數(shù)并降低損壞半徑。
2、在本公開的第一方面,提供了一種文件系統(tǒng)的管理方法。該方法包括在文件系統(tǒng)的磁盤的第一地址段分配一個超級塊,超級塊區(qū)用于記錄文件系統(tǒng)的系統(tǒng)元數(shù)據(jù)。該方法還包括在磁盤的第二地址段分配至少一個子空間區(qū)域,至少一個子空間區(qū)域包括哈希索引區(qū)和數(shù)據(jù)區(qū),哈希索引區(qū)用于以哈希結(jié)構(gòu)管理文件系統(tǒng),其中哈希索引區(qū)包括n個桶,每個桶用于存儲哈希值與桶索引值匹配的至少一個鍵,至少一個鍵用于指示文件系統(tǒng)的數(shù)據(jù)在數(shù)據(jù)區(qū)的存儲位置,n是大于1的正整數(shù)。該方法還包括在磁盤的第三地址段分配一個超級塊備份,超級塊備份為超級塊中記錄的文件系統(tǒng)的系統(tǒng)元數(shù)據(jù)的備份。以此方式,能夠在保證文件系統(tǒng)一致性、完整性和可靠性的前提下,同時提高文件系統(tǒng)的容災能力,使得即使在劣化發(fā)生時,將劣化限制在較小的范圍內(nèi),減少丟失文件數(shù)并降低了損壞半徑。
3、在一些實施例中,第一地址段、第二地址段和第三地址段在磁盤上組成連續(xù)的地址段。如此,有助于標識與文件系統(tǒng)相對應的盤上結(jié)構(gòu),并且進一步促進文件和目錄等的查找和取回。
4、在一些實施例中,該方法還包括:根據(jù)文件系統(tǒng)的擴容閾值,確定文件系統(tǒng)是否滿足哈希擴容條件;若滿足哈希擴容條件,根據(jù)線性哈希算法,對哈希索引區(qū)進行擴容。如此,能夠解決由于元數(shù)據(jù)分布而引起的沖突問題,并且使得桶的利用率不會太低,同時也不會導致過多的元素的重新哈希。
5、在一些實施例中,該方法還包括將擴容后的哈希索引區(qū)分配在至少一個子空間區(qū)域的一個或多個子空間區(qū)域中。如此,促進哈希索引區(qū)的靈活分配。
6、在一些實施例中,該方法還包括:接收對至少一個子空間區(qū)域進行擴容的請求;如果至少一個子空間區(qū)域的第一子空間區(qū)域小于預設(shè)空間大小,將第一子空間區(qū)域增大至預設(shè)空間大?。蝗绻辽僖粋€子空間區(qū)域的每個子空間區(qū)域等于預設(shè)空間大小,增加第二子空間區(qū)域。如此,能夠取決于使用需求而進行空間擴容,并且擴容后的每個子空間區(qū)域都具有預設(shè)空間大小,從而促進了文件和目錄的尋址。
7、在一些實施例中,該方法還包括:在磁盤的第三地址段后增加第四地址段和第五地址段,第三地址段、第四地址段和第五地址段組成連續(xù)的地址段;在磁盤的第五地址段分配一個超級塊備份,將所述第三地址段的超級塊備份的系統(tǒng)元數(shù)據(jù)的備份拷貝至第五地址段;回收第三地址段的超級塊備份的系統(tǒng)元數(shù)據(jù)的備份;在磁盤的第三地址段和第四地址段分配第二子空間區(qū)域。
8、在一些實施例中,至少一個子空間區(qū)域還包括日志區(qū),日志區(qū)通過事務模型對至少一個子空間進行擴容,事務模型用于對至少一個子空間區(qū)域進行擴容的過程進行隔離。如此,有助于確保擴容過程的一致性和可靠性,并且防止擴容期間的數(shù)據(jù)沖突或意外錯誤對系統(tǒng)造成的不良影響。
9、根據(jù)本公開的第二方面,提供了一種用于一種文件系統(tǒng)的管理裝置。該裝置包括:超級塊分配模塊,用于在文件系統(tǒng)的磁盤的第一地址段分配一個超級塊,超級塊區(qū)用于記錄文件系統(tǒng)的系統(tǒng)元數(shù)據(jù)。該裝置還包括子空間區(qū)域分配模塊,用于在磁盤的第二地址段分配至少一個子空間區(qū)域,至少一個子空間區(qū)域包括哈希索引區(qū)和數(shù)據(jù)區(qū),哈希索引區(qū)用于以哈希結(jié)構(gòu)管理文件系統(tǒng),其中哈希索引區(qū)包括n個桶,每個桶用于存儲哈希值與桶索引值匹配的至少一個鍵,至少一個鍵用于指示文件系統(tǒng)的數(shù)據(jù)在數(shù)據(jù)區(qū)的存儲位置,n是大于1的正整數(shù)。該裝置還包括超級塊備份分配模塊,用于在磁盤的第三地址段分配一個超級塊備份,超級塊備份為超級塊中記錄的文件系統(tǒng)的系統(tǒng)元數(shù)據(jù)的備份。
10、根據(jù)本公開的第三方面,提供了一種計算設(shè)備。該計算設(shè)備包括處理器和存儲器,該存儲器存儲有指令,這些指令在被處理器執(zhí)行時,使得計算設(shè)備執(zhí)行根據(jù)本公開的第一方面所述的方法。
11、根據(jù)本公開的第四方面,提供了一種計算設(shè)備集群。該計算設(shè)備集群包括至少一個計算設(shè)備,每個計算設(shè)備包括處理器和存儲器。該至少一個計算設(shè)備的處理器用于執(zhí)行該至少一個計算設(shè)備的存儲器中所存儲的指令,以使得計算設(shè)備集群執(zhí)行本公開的第一方面所述的方法。在一些實施例中,計算設(shè)備集群包括一個計算設(shè)備。在另一些實施例中,計算設(shè)備集群包括多個計算設(shè)備。在一些實施例中,計算設(shè)備可以是服務器,例如是中心服務器、邊緣服務器,或者是本地數(shù)據(jù)中心中的本地服務器。在一些實施例中,計算設(shè)備也可以是臺式機、筆記本電腦或者智能手機等終端設(shè)備。
12、根據(jù)本公開的第五方面,提供了一種計算機可讀存儲介質(zhì)。該計算機可讀存儲介質(zhì)存儲有計算機程序指令,當這些計算機程序指令由計算設(shè)備集群執(zhí)行時,計算設(shè)備集群執(zhí)行根據(jù)本公開的第一方面所述的方法。
13、根據(jù)本公開的第六方面,提供了一種計算機程序產(chǎn)品。該計算機程序產(chǎn)品包括指令,當這些指令由計計算設(shè)備集群運行時,使得計算設(shè)備集群執(zhí)行根據(jù)本公開的第一方面所述的方法。在一些實施例中,程序產(chǎn)品可以包括一個或多個軟件安裝包,在需要使用前述第一方面或其可能的變形提供的方法的情況下,可以下載或拷貝軟件安裝包并在計算設(shè)備上執(zhí)行。
14、請注意,提供
技術(shù)實現(xiàn)要素:
部分是為了以簡化的形式介紹一系列概念,下面將在具體實施方式中進一步描述這些概念。發(fā)明內(nèi)容部分無意于標識本公開內(nèi)容的關(guān)鍵特征或必要特征,也無意于限制本公開內(nèi)容的范圍。
1.一種文件系統(tǒng)的管理方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法包括:
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述在所述磁盤的第二地址段分配至少一個子空間區(qū)域,所述至少一個子空間區(qū)域包括哈希索引區(qū)和數(shù)據(jù)區(qū)之后,所述方法包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)線性哈希算法,對所述哈希索引區(qū)進行擴容之后,包括:
5.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述在所述磁盤的第二地址段分配至少一個子空間區(qū)域之后,還包括:
6.根據(jù)權(quán)利要求5所述的方法,所述如果所述至少一個子空間區(qū)域的每個子空間區(qū)域等于所述預設(shè)空間大小,增加第二子空間區(qū)域,包括:
7.根據(jù)權(quán)利要求1所述的方法,所述至少一個子空間區(qū)域還包括日志區(qū),所述方法包括:
8.一種文件系統(tǒng)的擴容裝置,其特征在于,所述裝置包括:
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于:
10.根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,所述在所述磁盤的第二地址段分配至少一個子空間區(qū)域,所述至少一個子空間區(qū)域包括哈希索引區(qū)和數(shù)據(jù)區(qū)之后,所述裝置包括:
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述根據(jù)線性哈希算法,對所述哈希索引區(qū)進行擴容之后,所述哈希索引區(qū)擴容模塊:
12.根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,所述在所述磁盤的第二地址段分配至少一個子空間區(qū)域之后,所述裝置還包括:
13.根據(jù)權(quán)利要求12所述的裝置,所述如果所述至少一個子空間區(qū)域的每個子空間區(qū)域等于所述預設(shè)空間大小,增加第二子空間區(qū)域,所述子空間區(qū)域擴容模塊:
14.根據(jù)權(quán)利要求8所述的裝置,所述至少一個子空間區(qū)域還包括日志區(qū),
15.一種計算設(shè)備集群,其特征在于,包括至少一個計算設(shè)備,每個計算設(shè)備包括處理器和存儲器;
16.一種計算機可讀存儲介質(zhì),其特征在于,包括計算機程序指令,當所述計算機程序指令由計算設(shè)備集群執(zhí)行時,所述計算設(shè)備集群執(zhí)行如權(quán)利要求1-7中任一項的方法。
17.一種包含指令的計算機程序產(chǎn)品,其特征在于,當所述指令被計算設(shè)備集群運行時,使得所述計算設(shè)備集群執(zhí)行如權(quán)利要求1-7中任一項所述的方法。