介紹幾個典型的分布式文件系統(tǒng)。Frangipani是一個伸縮性很好的高性能分布式文件系統(tǒng),該系統(tǒng)采用了兩層的服務體系架構:底層是一個分布式存儲服務,該服務能夠自動管理可伸縮、高可用的虛擬磁盤;在這個分布式存儲服務上層運行著Frangipani分布式文件系統(tǒng)。JetFile是一個基于P2P的組播技術、支持在Internet這樣的異構環(huán)境中分享文件的分布式文件系統(tǒng)。Ceph是一個高性能并且可靠的分布式文件系統(tǒng),它通過把數(shù)據(jù)和對數(shù)的管理在最大程度上分開來獲取極佳的I/O性能。
Google File System(GFS)是Google公司設計的可伸縮的分布式文件系統(tǒng)。Google公司的工程師在考慮了分布式文件系統(tǒng)的設計準則的基礎上,又發(fā)現(xiàn)了以下幾個不同于傳統(tǒng)分布式文件系統(tǒng)的需求:(1)PC服務器極易發(fā)生故障,造成節(jié)點失效,故障的原因多種多樣,有機器本身的、網(wǎng)絡的、管理員引起的及外部環(huán)境引起的,因此需要對整個系統(tǒng)中的節(jié)點進行監(jiān)控,檢測出現(xiàn)的錯誤,并開發(fā)相應的容錯和故障恢復機制;(2)在云計算環(huán)境中,海量的結構化數(shù)據(jù)被保存為非常大的文件,一般為GB量級,因此需要改變原有的基于對中小文件(KB或者MB量級)進行管理的文件系統(tǒng)設計準則,以適應對超大文件的訪問;(3)系統(tǒng)中對文件的寫操作絕大多數(shù)是追加操作,也就是在文件的末尾寫入數(shù)據(jù),在文件中間寫入數(shù)據(jù)的情況其實很少發(fā)生,而且數(shù)據(jù)一旦被寫入,絕大多數(shù)情況下都是被順序地讀取,不會被修改,因此在設計系統(tǒng)時把優(yōu)化重點放在追加操作上,就可以大幅度提高系統(tǒng)的性能;(4)設計系統(tǒng)時要考慮開放的、標準的操作接口,并隱藏文件系統(tǒng)下層的負載均衡、冗余復制等細節(jié),這樣才可以方便地被上層系統(tǒng)大規(guī)模地使用。因此,CFS能夠很好地支持大規(guī)模海量數(shù)據(jù)處理應用程序。
云計算的出現(xiàn)給分布式存儲帶來了新的需求和挑戰(zhàn)。在云計算環(huán)境中,數(shù)據(jù)的存儲和操作都是以服務的形式提供的;數(shù)據(jù)的類型多種多樣,包括了普通文件、虛擬機鏡像文件這樣的二進制大文件、類似XML的格式化數(shù)據(jù),甚至數(shù)據(jù)庫的關系型數(shù)據(jù)等;云計算的分布式存儲服務設計必須考慮到各種不同數(shù)據(jù)類型的大規(guī)模存儲機制,以及數(shù)據(jù)操作的性能、可靠性、安全性和簡單性。