趙鐵柱
(東莞理工學院工程技術研究院 廣東 523808)
文件系統是基于操作系統的,用于存儲程序和數據,向用戶提供統一的,抽象的接口。文獻[1]指出將文件系統劃分為四個層次,即單處理器單用戶的本地文件系統;多處理器單用戶的本地文件系統;多處理器單用戶的本地文件系統和多處理器多用戶的分布式文件系統。文件系統按照底層數據分析和管理的范圍可分為本地文件系統和分布式文件系統。
并行文件系統是一種特殊的分布式文件系統。所謂并行文件系統是指應用于多機環境的網絡文件系統,單個文件的數據采用分條等形式存放于不同的I/O節點之上,支持多機多個進程的并發存取,同時支持元數據和數據的分布存放,并提供單一的目錄空間。而要實現一個完整的并行文件系統,需要實現如下兩個方面:第一,實現單一的文件映像,并行文件存放在盤陣上的具體分布情況對于用戶來說是透明的,并行文件系統在用戶看來是一完整的樹型結構,在調用時只要給出文件名即可;第二,采用條帶(Stripe)和分區(Partition)技術,支持一個文件數據在多個磁盤之上和多個進程之間的分布,即多個進程并發讀寫多個磁盤上的數據。
隨著高性能計算技術的發展,大規模并行科學計算的應用范圍也在不斷拓寬。為了適應I/O密集型應用的需要,高性能計算技術的系統設計更著重于提高并行I/O能力,即支持并發讀/寫。現在,越來越多的并行計算系統由于同時采用多個CPU,使計算能力與I/O速度的不匹配問題變得更加嚴重。除了RAID陣列等技術外,高吞吐量,高I/O帶寬,可擴展的并行文件系統提供了一種更好的I/O瓶頸的解決途徑。它可以將多個結點上的磁盤組織成為全局的存儲系統,提供更大的存儲容量和聚集的I/O帶寬,并可以隨系統規模擴大而擴展。
目前國內外有各種各樣的并行文件系統主要分為兩類:商業并行文件系統和研究型并行文件系統。商業并行文件系統有GPFS(general parallel file system)[2],GFS(global file system)[3],Lustre[4]等。這類系統可以提供高性能I/O,但往往依賴于特定的平臺以及特定的設備。研究型并行文件系統有PVFS(parallel virtual file system)[5],HDFS(Hadoop Distributed File System)[6],pNFS(pNFS File System)[7]等,它們往往側重某一方面。
雖然文件系統種類繁多,但是不存在一種文件系統擁有十全十美的優點,他們在都擁有各自的特色,在不同的領域能夠體現自己的優勢。對于并行文件系統來說,高性能,高可用,和高擴展性是衡量一個文件系統優秀性的三個重要指標。隨著硬件技術的發展,對高可用和擴展性的需求逐漸超過了對文件系統高性能的要求。并行文件系統通常考慮3類問題:①透明性。并行文件系統所管理的存儲資源分布在服務器系統內的若干節點上,但用戶在使用這些資源時,希望其如同單機文件系統一樣方便;②可靠性。分布式系統環境通常要求具有高可靠性,而數據的高可靠性是整個系統可靠性的基礎;③動態性。由于分布式系統的節點數量可能隨時隨地變化,因此并行文件系統管理的文件對象也是隨時變化的。
并行文件系統是高性能系統的基石,它的I/O性能研究是一個十分熱門的領域。I/O瓶頸越發成為高性能系統發展的重要因素,而并行文件系統正是減輕I/O瓶頸性價比最高的方法。本文系統地研究并行文件系統的I/O特征和關鍵技術。對并行系統性能優化有很大的指導作用,同時給并行文件系統的設計和性能評估提供重要的參考價值。
高性能并行文件系統以其存儲容量大、高聚合I/O性能、高數據容錯性、高可擴展性等特點,成為了應對海量數據管理的最有效方法。并行文件系統是高性能系統的基礎,并行文件系統的性能直接高性能系統的性能,故并行文件系統的I/O性能是一個重要評價指標。通過研究并行文件系統的系統架構和性能因素,并行文件系統I/O性能研究可分為以下幾個方面:
并行文件系統基本思想是利用并行計算機豐富的硬件資源將數據分布到多個I/O節點,利用磁盤數據的并行訪問和并行通道傳輸來獲得較大的I/O帶寬。因而文件在I/0節點上的組織形式和散布形式是決定文件訪問并行度的關鍵因素之一。并行文件系統的組織方式有簡單的一維分段方式,也有按二維乃至多維方式來組織的。常見文件散布方式有:①循環放置;②條帶化方式;③Hash方式;④用戶自定義方式。選擇合適的文件散布方式對I/O節點的負載平衡、獲得較好的I/O性能有著較大的影響,目前的研究主要集中在優化存儲組織架構和優化條帶化分配算法。
用戶在訪問數據前必須事先訪問元數據服務器獲得訪問數據的位置信息。很多并行文件系統的元數據服務器都是限制系統可擴展性的瓶頸。元數據服務器有集中式和分布式兩種結構。在集中式元數據服務器結構中,用戶訪問數據前都必須先請求元數據服務器,由元數據服務器查詢訪問對象的位置,然后再將請求轉發到訪問數據所在的I/O節點。在分布式元數據服務器結構中,元數據服務器的功能分散到各個計算節點和I/O節點上。集中式結構實現較為簡單,但可擴展性較差。分布式結構的元數據服務器功能分散且性能較高,但會增加計算節點的計算量,增加復雜度。因此究竟采用哪種結構要對應用需求進行詳細的分析,需綜合權衡。另外,能否將集中式與分布式兩種結構結合起來,也是一個值得探討的課題。元數據的管理也是提高并行文件性能的一個重要因素,目前也有很多研究者正在研究一些有效的元數據管理策略如二級元數據管理[8]。
圖1所示是Lustre文件系統的中Client和Storage節點的層次結構。目前一些文獻通過優化數據訪問路徑來還到優化整個并行文件系統性能的目的,主要以以下兩個方面:①基于用戶空間的RDMA策略;②采取各種RDMA優化方法,減少通信與處理時間。

圖1 Lustre中Client和Storage節點的層次結構
在存儲節點和客戶端節點在同一個節點上時,文獻[9]提出了一個在用戶空間上的活動存儲方案,這種方法使得存儲節點能訪問文件系統中的所有文件和本地的文件,相對于傳統的基于核的實現方案,能顯著的減少存儲節點和計算節點間的網絡流量,提高文件系統的訪問性能。
許多并行文件系統具有文件條帶法功能,通過文件條帶化提高并行聚合I/O,提高數據的可用性,同時有些文件也具有合并文件分塊的功能,文獻[10]發現較寬的條帶寬度有時會帶來性能的下降,即條帶化粒度應該保持在某個平衡點,太粗或太細都會影響I/O性能。作者提出了兩種技術:寫分割和層次化條帶策略來減少條帶化的負載,提高聚合I/O性能。
在并行系統或網絡計算中,可靠性是一個重要的考慮因素。在并行I/O子系統設計中,RAID設計的不同策略為可靠性提供了很好的模式,建立在RAID上的系統,如在PIOUS中,基于事務日志的方式對文件進行操作,在故障時可以從原來的保存點繼續執行。不同的應用,不同體系結構的機器對并行文件系統有著不同的要求,應根據不同的實際要求、應用環境的特點和應用的側重點等方面,對上述各種存在的問題,進行有針對性的解決,以求達到系統的最佳性能。并行文件系統通過將文獻分塊存儲到各個存儲節點,來獲取較高的I/O 吞吐量,然而文件系統的可靠性和可用性將大打折扣,文獻[11]提出了一種基于LMR(Logic Mirror Ring)的方法來提高并行文件系統的可靠性和可用性,LMR在不改變原有系統的拓撲結構的基礎上,通過在現在IO節點之間建立鏡像和Failover來提高可靠性和可用性。在并行文件系統研究中,依靠存儲分布提高I/O性能的一個重要技術是冗余磁盤陣列,使用許多小磁盤集合在一起提高磁盤性能和數據的可用性。并行文件系統使用多個客戶可以并發地存取網絡存儲節點中的數據,通常采用條帶化的策略來并行化數據存取,提供了更高的I/O性能和可擴展性。
研究現在并行文件系統架構和性能影響因素,分析并行環境下的工作I/O負載特性,能對實際的并行文件系統的設計,調優和評估起到積級的指導作用。總的來說,并行文件系統I/O研究難點和熱點包括5個方面:①并行文件系統I/O架構和性能影響因素;②不同工作負載下的I/O特性和并行文件系統性能表現,分析與預測I/O行為;③具有自適應性的并行文件系統I/O性能模型;④具有針對系統類型特性的并行文件系統I/O性能預測模型;⑤并行文件系統I/O參數估計和參數調優策略。
并行文件系統性能的進一步研究包括以下幾個方面:①建立具有自適應性的并文件系統性能評估模型,該模型能適合各種工作負載。能根據工作負載的實際場景來調優性能參數,提高并行文件系統的聚合I/O。同時提高模型的可用性和可擴展性,在性能和復雜度上達到較優級的平衡;②設計一個并文件系統性能預測模型,該預測模型具有針對系統類型的特性。根據不同的文件系統特點預測相應的性能表現,指導并行文件系統的設計,減少成本;③性能模型和性能預測模型在參數估計和調優方面,也應具有針對系統類型的特點。能根據具體的文件系統框架,場景需求來提高預測的準確度。
[1]Satyanarayanan M.A Survey of Distributed File Systems[J].Annual Review of Computer Science, 1989,4:73-104.
[2]IBM Corp.General Parallel File System[EB/OL].http://www-03.ibm.com/systems/software/gpfs/.
[3]Google Corp.Google File System[EB/OL].http://labs.google.com/papers/gfs.html.
[4]Oracle Corp.Lustre File System[EB/OL].http://wiki.lustre.org/index.php/Main_Page.
[5]Clemson University and NASA Lab.Parallel Virtual File System[EB/OL].http://www.pvfs.org/.
[6]Apache Software Foundation.Hadoop Distributed File System[EB/OL].http://hadoop.apache.org/hdfs/.
[7]The Internet Engineering Steering Group.pNFS File System[EB/OL].http://www.pnfs.com/.
[8]Wang F, Yue Y L, Feng D.High Availability Storage System Based on Two-level Metadata Management [C] // the Proceedings of the 2007 Japan-China Joint Workshop on Frontier of Computer Science and Technology (FCST 2007), 2007:41-48.
[9] Piernas J, Nieplocha J, Felix E J.Evaluation of Active Storage Strategies for the Lustre Parallel File System [C] // the 2007 ACM/IEEE Conference on Supercomputing (SC’07), 2007:1-10.
[10]Yu W, Vetter J S, Canon R S.Exploiting Lustre File Joining for Effective Collective IO [C] // the Seventh IEEE International Symposium on Cluster Computing and the Grid (CCGrid2007),2007:267-274.
[11] Zhang H, Wu W, Dong X.A High Availability Mechanism for Parallel File System [C] // the 6th International Workshop on Advanced Parallel Processing Technologies (APPT 2005), LNCS 3756, 2005:194-203.