我覺得自己很有必要對當今主流的分布式文件系統(Distributed File System,DFS)做系統的研究,總結優缺點,為下一步的工作提供必要的參考。因此,我動手搜集了不少資料,并進行了很初步的學習,以后我會把自己對DFS的學習心得整理起來,陸續放到博客上來。這就當是開篇吧,嘿嘿
分布式文件系統概述
文件系統是操作系統的一個重要組成部分,通過對操作系統所管理的存儲空間的抽象,向用戶提供統一的、對象化的訪問接口,屏蔽對物理設備的直接操作和資源管理。
根據計算環境和所提供功能的不同,文件系統可劃分為四個層次,從低到高依次是:單處理器單用戶的本地文件系統,如DOS的文件系統;多處理器單用戶的本地文件系統,如OS/2的文件系統;多處理器多用戶的本地文件系統,如Unix的本地文件系統;多處理器多用戶的分布式文件系統,如Lustre文件系統。
本地文件系統(Local File System)是指文件系統管理的物理存儲資源直接連接在本地節點上,處理器通過系統總線可以直接訪問。分布式文件系統(Distributed File System)是指文件系統管理的物理存儲資源不一定直接連接在本地節點上,而是通過計算機網絡與節點相連。
由于互聯網應用的不斷發展,本地文件系統由于單個節點本身的局限性,已經很難滿足海量數據存取的需要了,因而不得不借助分布式文件系統,把系統負載轉移到多個節點上。
傳統的分布式文件系統(如NFS)中,所有數據和元數據存放在一起,通過單一的存儲服務器提供。這種模式一般稱之為帶內模式(In-band Mode)。隨著客戶端數目的增加,服務器就成了整個系統的瓶頸。因為系統所有的數據傳輸和元數據處理都要通過服務器,不僅單個服務器的處理能力有限,存儲能力受到磁盤容量的限制,吞吐能力也受到磁盤I/O和網絡I/O的限制。在當今對數據吞吐量要求越來越大的互聯網應用中,傳統的分布式文件系統已經很難滿足應用的需要。
于是,一種新的分布式文件系統的結構出現了,那就是利用存儲區域網絡(SAN)技術,將應用服務器直接和存儲設備相連接,大大提高數據的傳輸能力,減少數據傳輸的延時。在這樣的結構里,所有的應用服務器都可以直接訪問存儲在SAN中的數據,而只有關于文件信息的元數據才經過元數據服務器處理提供,減少了數據傳輸的中間環節,提高了傳輸效率,減輕了元數據服務器的負載。每個元數據服務器可以向更多的應用服務器提供文件系統元數據服務。這種模式一般稱之為帶外模式(Out-of-band Mode)。***近的Storage Tank、CXFS、Lustre、BWFS等都采用這樣的結構,因此它們可以取得更好的性能和擴展性。區分帶內模式和帶外模式的主要依據是,關于文件系統元數據操作的控制信息是否和文件數據一起都通過服務器轉發傳送。前者需要服務器轉發,后者是直接訪問。