一種分布式文件系統子樹存儲方法及裝置與流程
2023-05-22 04:18:51

本申請涉及分布式文件系統元數據性能優化領域,特別涉及一種分布式文件系統子樹存儲方法及裝置。
背景技術:
信息技術的高速發展,隨之而來的是更多的數據需要存儲,因此就需要文件系統來管理存儲數據。文件系統中的數據分為數據和元數據,數據指的是普通文件中的實際數據,而元數據指用來描述一個文件特徵的系統數據,例如訪問權限、文件擁有者以及文件的儲存的分布信息等。在集群文件系統中,目錄信息包括文件在磁碟上的位置以及磁碟在集群中的位置。用戶需要操作一個文件必須首先讀取到文件的元數據,才能定位到文件的位置並且得到文件的內容或相關屬性。
因此,在面對數量繁多的文件的應用場景中,操作文件的性能就受制於元數據的讀取寫入性能。所以在讀取元數據中,通常元數據集群通常將目錄信息中的目錄劃分為多個目錄子樹,將這些子樹的負載壓力均分到元數據服務上。通過將目錄存儲壓力進行劃分,到每個目錄子樹上,減少了部分的目錄負載壓力。
而一般元數據集群將目錄子樹信息存儲到日誌中,通過日誌存儲目錄子樹信息。由於日誌是分段存儲的,因此每個日誌端都要保存一份子樹信息,以保證子樹信息的正確性。因此當文件數量較多時,子樹信息的數量也會指數級的增加,所需要的日誌數據因此變得龐大,影響日誌的讀取組度,進而影響元數據的性能。
因此,如何解決分布式文件系統中元數據性能問題,是本領域技術人員需要重點探討的問題。
技術實現要素:
本申請的目的是提供一種分布文件系統子樹存儲方法及裝置,通過使用ssd盤作為存儲元數據的磁碟,還有使用對象存儲的存儲文件方式,優化了元數據中的子樹的讀取性能,加快了元數據的操作速度,使元數據的性能得到了很大的提升。
為解決上述技術問題,本申請提供一種分布式文件系統子樹存儲方法,該方法包括:
元數據集群對目錄進行分區處理,得到目錄子樹;
為每一個所述目錄子樹的信息和所述目錄子樹對應的權限信息分配一個元數據服務,作為子樹信息;
將所述子樹信息存儲到以ssd盤為基礎的元數據池。
可選的,當所述目錄子樹變化時,還包括:
以日誌的形式記錄所述目錄子樹的變化,得到子樹變化日誌;
當所述子樹變化日誌存檔時,根據所述子樹變化日誌對保存的所述子樹信息進行更新,並將更新後的所述子樹信息存入所述元數據池的相應對象中。
可選的,還包括:
將所述目錄對應的數據,以對象存儲的方式存儲在以sata盤為基礎的數據池中。
可選的,所述權限信息還包括:
訪問權限、文件擁有者以及文件數據塊的分布信息。
本申請還提供一種分布式文件系統子樹存儲裝置,該裝置包括:
分區處理模塊,用於元數據集群對目錄進行分區處理,得到目錄子樹;
分配服務模塊,用於為每一個所述目錄子樹的信息和所述目錄子樹對應的權限信息分配一個元數據服務,作為子樹信息;
元數據存儲模塊,用於將所述子樹信息存儲到以ssd盤為基礎的元數據池。
可選的,還包括:更新模塊,其中,所述更新模塊包括:
更新獲取單元,用於以日誌的形式記錄所述目錄子樹的變化,得到子樹變化日誌;
更新單元,用於當所述子樹變化日誌存檔時,根據所述子樹變化日誌對保存的所述子樹信息進行更新,並將更新後的所述子樹信息存入所述元數據池的相應對象中。
可選的,還包括:
數據存儲模塊,用於將所述目錄對應的數據,以對象存儲的方式存儲在以sata盤為基礎的數據池中。
本申請所提供的一種分布式文件系統子樹存儲方法,包括步驟:元數據集群對目錄進行分區處理,得到目錄子樹;為每一個所述目錄子樹的信息和權限信息分配一個元數據服務,並保存作為子樹信息;將所述子樹信息存儲到以ssd盤為基礎的元數據池。
通過使用ssd盤作為存儲元數據的磁碟,可以利用ssd的快速讀取的特點,加快文件系統對元數據的操作性能。由於用戶對文件的操作速度由元數據的操作速度決定,因此也提高整個文件系統的性能。本申請還提供一種分布式文件系統子樹存儲裝置,具有上述有益效果,在此不做贅述。
附圖說明
為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
圖1為本申請實施例提供的分布式文件系統子樹存儲的流程圖;
圖2為本申請實施例提供的目錄子樹更新的流程圖;
圖3為本申請實施例提供的分布式文件系統子樹存儲裝置的框圖;
圖4為本申請實施例提供的更新模塊與數據存儲模塊的框圖;
圖5為本申請實施例提供的一種具體的子樹分區概念圖;
圖6為本申請實施例提供的一種具體的子樹存儲示意圖。
具體實施方式
本申請的核心是提供一種分布式文件系統子樹存儲方法及裝置,可以提高文件系統的性能。
為使本申請實施例的目的、技術方案和優點更加清楚,下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本申請一部分實施例,而不是全部的實施例。基於本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本申請保護的範圍。
請參考圖1,圖1為本申請實施例提供的分布式文件系統子樹存儲的流程圖。
本方法實施例,可以包括步驟:
s100,元數據集群對目錄進行分區處理,得到目錄子樹;
s200,為每一個所述目錄子樹的信息和所述目錄子樹對應的權限信息分配一個元數據服務,作為子樹信息;
s300,將所述子樹信息存儲到以ssd盤為基礎的元數據池。
在步驟s100中,需要說明的是,元數據集群擁有元數據管理功能,也可以看作是元數據管理器的集合。通常在面對大量數據文件時目錄樹信息會顯得龐大臃腫,因此將目錄樹劃分為目錄子樹來管理,並且可以將子樹的壓力負載均分到元數據服務上,而劃分子樹的數量可以根據文件目錄的大小來決定,在本實施例中不做限定。
通過ssd盤為基礎的元數據池處理元數據io,通過sata盤為基礎的數據池處理數據io,可以在成本可控下達到較優的數據處理方案。同時,元數據io通過元數據集群進行劃分等其他處理,再存儲至元數據池中,因此可以將元數據集群看作元數據的管理器的集合。通過元數據集群處理,目錄被劃分為子樹信息存至元數據池,同時目錄中的其他元數據也被存至元數據池。
其中,其他元數據,也可以叫做其他信息包括訪問權限、文件擁有者以及文件數據塊的分布信息,在本實施例中只列出如上信息,可以根據存儲的內容對所存儲的信息進行增減,在此不做限定。
本申請實施例提供了一種分布式文件系統子樹存儲方法,可以通過將決定數據性能的元數據遷移到ssd磁碟中進行讀寫操作,具有較快的讀寫速度,同時提高文件系統的性能。
請參考圖2,圖2為本申請實施例提供的目錄子樹更新的流程圖。
基於上述實施例,本實施例在目錄子樹發生變化時,還可以包括:
s410,以日誌的形式記錄所述目錄子樹的變化,得到子樹變化日誌;
s420,當所述子樹變化日誌存檔時,根據所述子樹變化日誌對保存的所述子樹信息進行更新,並將更新後的所述子樹信息存入所述元數據池的相應對象中。
在文件系統子樹發生變化時,首先寫入的是元數據池的日誌盤,當日誌盤落盤時重新計算子樹信息。將新的子樹信息落到元數據池的特定對象中。
基於上述實施例,本實施例還可以包括:
將該目錄對應的數據,以對象存儲的方式存儲在以sata盤為基礎的數據池中。
文件系統會把存儲的文件數據分為元數據和數據,其中,目錄對應的數據指的是該數據,也就是元數據中目錄指向的數據。而對於該數據的存儲方式一般有快存儲方式和文件存儲方式,但是快存儲雖然讀寫速度較快但不利於數據的共享,而文件存儲利於數據的共享但讀寫速度較慢,因此本實施例選用對象存儲方式,具有較快的讀寫速度同時利於共享。同時提供文件系統讀寫對象接口,方便子樹發生時立即更新子樹信息。
本申請實施例提供了一種分布式文件系統子樹存儲方法,可以通過上述方法能夠提高文件系統的子樹的存儲讀取的效率,從而提高文件系統的運行性能。
下面對本申請實施例提供的分布式文件系統子樹存儲裝置進行介紹,下文描述的分布式文件系統子樹存儲裝置與上文描述的分布式文件系統子樹存儲方法可相互對應參照。
請參考圖3,圖3為本申請實施例提供的分布式文件系統子樹存儲裝置的框圖。
本裝置實施例,可以包括:
分區處理模塊100,用於元數據集群對目錄進行分區處理,得到目錄子樹;
分配服務模塊200,用於為每一個所述目錄子樹的信息和所述目錄子樹對應的權限信息分配一個元數據服務,作為子樹信息;
元數據存儲模塊300,用於將所述子樹信息存儲到以ssd盤為基礎的元數據池。
請參考圖4,圖4為本申請實施例提供的更新模塊與數據存儲模塊的框圖。
基於上述實施例,本實施例還可以包括更新模塊400,所述更新模塊400包括:
更新獲取單元410,用於以日誌的形式記錄所述目錄子樹的變化,得到子樹變化日誌;
更新單元420,用於當所述子樹變化日誌存檔時,根據所述子樹變化日誌對保存的所述子樹信息進行更新,並將更新後的所述子樹信息存入所述元數據池的相應對象中。
基於上述實施例,本實施例還可以包括:
數據存儲模塊500,用於將所述目錄對應的數據,以對象存儲的方式存儲在以sata盤為基礎的數據池中。
下面,請參考圖5,圖5提供了一種具體的子樹分區概念圖。
如圖,根據目錄的結構將目錄分為圖中的多個目錄子樹,每個目錄子樹有一個子樹根,子樹根目錄是每個目錄子樹的重要標記,用於區分不同的目錄子樹。該目錄子樹的信息也包括子樹根的信息。同時目錄子樹信息對應了相關的權限信息,也同時和目錄子樹的信息分配一個元數據服務。
圖6為提供了一種具體的子樹存儲示意圖。
如圖中所示,劃分目錄子樹隨後,將目錄子樹以及分配的其他信息和元數據服務,作為子樹信息存儲到元數據池,在本實施例中元數據池使用ssd磁碟作為存儲介質,ssd盤又叫做固態硬碟,相比起一般的sata磁碟具有較高的讀取和寫入速度,因此在對元數據進行操作時可以保持較高性能,以及較高的每秒操作次數。
說明書中各個實施例採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對於實施例公開的裝置而言,由於其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
專業人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬體、計算機軟體或者二者的結合來實現,為了清楚地說明硬體和軟體的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬體還是軟體方式來執行,取決於技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本申請的範圍。
結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬體、處理器執行的軟體模塊,或者二者的結合來實施。軟體模塊可以置於隨機存儲器(ram)、內存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬碟、可移動磁碟、cd-rom、或技術領域內所公知的任意其它形式的存儲介質中。
以上對本申請所提供的分布文件系統子樹存儲方法及系統進行了詳細介紹。本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本申請的方法及其核心思想。應當指出,對於本技術領域的普通技術人員來說,在不脫離本申請原理的前提下,還可以對本申請進行若干改進和修飾,這些改進和修飾也落入本申請權利要求的保護範圍內。