1. 程式人生 > >如何區分分散式/叢集/並行檔案系統?

如何區分分散式/叢集/並行檔案系統?

分散式檔案系統、叢集檔案系統、並行檔案系統,這三種概念很容易混淆,實際中大家也經常不加區分地使用。總是有人問起這三者的區別和聯絡,其實它們之間在概念上的確有交叉重疊的地方,但是也存在顯著不同之處。

分散式檔案系統

自然地,“分散式”是重點,它是相對與本地檔案系統而言的。分散式檔案系統通常指C/S架構或網路檔案系統,使用者資料沒有直接連線到本地主機,而是儲存在遠端儲存伺服器上。NFS/CIFS是最為常見的分散式檔案系統,這就是我們說的NAS系統。分散式檔案系統中,儲存伺服器的節點數可能是1個(如傳統NAS),也可以有多個(如叢集NAS)。對於單個節點的分散式檔案系統來說,存在單點故障和效能瓶頸問題。除了NAS以外,典型的分散式檔案系統還有AFS,以及下面將要介紹的叢集檔案系統(如Lustre, GlusterFS, PVFS2等)。

叢集檔案系統

“叢集”主要分為高效能叢集HPC(High Performance Cluster)、高可用叢集HAC(High Availablity Cluster)和負載均衡叢集LBC(Load Balancing Cluster)。叢集檔案系統是指協同多個節點提供高效能、高可用或負載均衡的檔案系統,它是分散式檔案系統的一個子集,消除了單點故障和效能瓶問題。對於客戶端來說叢集是透明的,它看到是一個單一的全域性名稱空間,使用者檔案訪問請求被分散到所有叢集上進行處理。此外,可擴充套件性(包括Scale-Up和Scale-Out)、可靠性、易管理等也是叢集檔案系統追求的目標。在元資料管理方面,可以採用專用的伺服器,也可以採用伺服器叢集,或者採用完全對等分佈的無專用元資料伺服器架構。目前典型的叢集檔案系統有SONAS, ISILON, IBRIX, NetAPP-GX, Lustre, PVFS2, GlusterFS, Google File System, LoongStore, CZSS等。

並行檔案系統

這種檔案系統能夠支援並行應用,比如MPI。在並行檔案系統環境下,所有客戶端可以在同一時間併發讀寫同一個檔案。併發讀,大部分檔案系統都能夠實現。併發寫實現起來要複雜許多,既要保證資料一致性,又要最大限度提高並行性,因此在鎖機制方面需要特別設計,如細粒度的位元組鎖。通常SAN共享檔案系統都是並行檔案系統,如GPFS、StorNext、GFS、BWFS,叢集檔案系統大多也是並行檔案系統,如Lustre, Panasas等。

如何區分?

區分這三者的重點是“分散式”、“叢集”、“並行”三個字首關鍵字。簡單來說,非本地直連的、通過網路連線的,這種為分散式檔案系統;分散式檔案系統中,伺服器節點由多個組成的,這種為叢集檔案系統;支援並行應用(如MPI)的,這種為並行檔案系統。在上面所舉的例子中也可以看出,這三個概念之間具有重疊之處,比如Lustre,它既是分散式檔案系統,也是叢集和並行檔案系統。但是,它們也有不同之處。叢集檔案系統是分散式檔案系統,但反之則不成立,比如NAS、AFS。SAN檔案系統是並行檔案系統,但可能不是叢集檔案系統,如StorNext。GFS、HDFS之類,它們是叢集檔案系統,但可能不是並行檔案系統。實際中,三者概念搞理清後,分析清楚檔案系統的特徵,應該還是容易正確地為其劃分類別的。