(基於表的對映)
該方案將元資料的分布記錄在乙個全域性的對映表中,應用在集群儲存系統中,則是將每個檔案與其家元資料伺服器的對應關係記錄在全域性對映表中,將該錶儲存在所有的元資料伺服器上即能快速定位檔案請求的家元資料伺服器,該方案的確定在於其可擴充套件性太差,在大規模的儲存系統中,所包含檔案的數量都是千萬級的,對映表需要占用的記憶體空間過大,同時查表的開銷也會相當大以至於影響到元資料伺服器的效能。在乙個包含108檔案,使用16位元組記錄檔名,2位元組記錄元資料伺服器id的系統中,對映表占用的空間為1.8g。xfs提出了一種粗粒度的對映表方案,將一組具有某一特性的檔案對映到相應的元資料伺服器。
(基於hash的對映)
基於餘數的hash方案被很多系統採用,如lustre,vesta,intermezzo,該方案使用檔名hash出乙個整數,並對元資料伺服器的數量取餘,根據餘數將該檔案分配到相應的伺服器,這種方案能將檔案均衡的分配到各個元資料伺服器。該方案的不足之處在於,當檔案被重新命名時,其hash值需要重新計算,即應該分配到乙個新的伺服器,這就需要元資料在各個伺服器之間遷移,即使檔案的元資料很小,但當有大量的檔案需要被遷移時,磁碟和網路的開銷都是很大的,會影響到系統的整體效能。
3, static tree partitioning
(靜態樹分割槽對映)
靜態樹分割槽方案是一種將元資料操作分布到一組元資料伺服器的簡單方式,通常需要管理員配置檔案樹的某些目錄應該分布到某乙個元資料伺服器上,如nfs,afs,coda使用這種方案。該方案在資料訪問模式比較統一,訪問比較均衡的情況下,工作得很好,開銷很小。但由於資料的訪問通常會出現偏態分布,導致出現某個伺服器出現熱點的情形,從而不利於整個系統的擴充套件。
4, dynamic tree partitioning
(動態樹分割槽對映)
動態樹分割槽在靜態樹分割槽的基礎上提高了擴充套件性,該方案對接近根的目錄進行hash來選擇元資料伺服器,並且當某個元資料伺服器負載較大時,該伺服器會自動遷移一部分檔案到負載較輕的伺服器上。但該方案有如下三點不足:首先,該方案需要每個伺服器上有乙個精確的負載計算方案,並且各個伺服器需要週期性的交換負載資訊;其次,當某個元資料伺服器加入或者離開時,所有的目錄需要重新計算hash以分配到新的伺服器中,在pb級的儲存系統中,會造成很大的開銷;最後,當資料的訪問熱點不斷變化時,會導致頻繁的元資料遷移操作。
綜上所述,基於hash的方案能均衡元資料分布,並能提供快速的查詢服務,但對於目錄操作如列出某個目錄下所有檔案,遍歷目錄數時的許可權檢查等操作效率卻相當低,並且當元資料伺服器加入或退出時,重新計算hash並分布元資料會導致很重的系統開銷;基於對映表的方案不會涉及到資料遷移,但其所需要的儲存空間開銷及查表的時間開銷很大;靜態樹分配方案不涉及資料遷移,記憶體空間開銷小,並能提供快速的目錄操作,但它不能實現負載均衡,容易出現熱點;動態樹分配方案類似於hash分配方案,能提供快速的超找操作和小的記憶體空間開銷,但它需要依賴於系統的負載檢測工具,檔案遷移來均衡負載。下表顯示了不同的方案在負載均衡,遷移代價,查詢時間,記憶體開銷,目錄操作等方面的比較。
不同分布方案的比較(n為檔案數,d為目錄數)
從上表可以看出,乙個高效的元資料管理方案至少應該考慮下面幾點:
1,共享的單命名空間:所有的儲存裝置被虛擬成乙個單獨的儲存卷,所有的客戶共享相同的檢視,這樣簡化了使用者資料的管理。
2,可擴充套件的元資料管理服務:當系統規模增大時,元資料管理的開銷不會呈線性增長。
3,零資料遷移:儘管元資料大小很小,但在大規模系統中,很多的檔案元資料遷移也會引起很大的磁碟及網路開銷,因此負載均衡盡量不需要通過資料遷移來完成。
4,靈活的放置策略:使得某個檔案被分布到任何乙個元資料伺服器成為可能,這樣便於實施負載均衡策略,元資料預取方案以提高系統的整體效能。
分布式檔案系統
分布式檔案系統 概述 系統管理員可以利用分布式檔案系統 dfs 使使用者訪問和管理那些物理上跨網路分布的檔案更加容易。通過 dfs,可以使分布在多個伺服器上的檔案在使用者面前顯示時,就如同位於網路上的乙個位置。使用者在訪問檔案時不再需要知道和指定它們的實際物理位置。例如,如果您的銷售資料分散在某個域...
分布式檔案系統
常見的分布式檔案系統有,gfs hdfs lustre ceph gridfs mogilefs tfs fastdfs等。各自適用於不同的領域。它們都不是系統級的分布式檔案系統,而是應用級的分布式檔案儲存服務。google學術 這是眾多分布式檔案系統的起源 google file system 大...
分布式檔案系統
缺點是檔案路徑是一致的,只能用於嵌入式檔案的儲存,沒有辦法作為系統請求檔案的儲存,不過對於web2.0可以從設計層面進行一些改善,將使用者的資料互動更多地方在伺服器端,而不是資料庫中,比如使用者的文章就在 com yyy裡面,但是這又帶來一些新的問題,檔案同步負載均衡等問題。現在著眼於將自製的web...