趙鐵柱
(東莞理工學院工程技術(shù)研究院 廣東 523808)
文件系統(tǒng)是基于操作系統(tǒng)的,用于存儲程序和數(shù)據(jù),向用戶提供統(tǒng)一的,抽象的接口。文獻[1]指出將文件系統(tǒng)劃分為四個層次,即單處理器單用戶的本地文件系統(tǒng);多處理器單用戶的本地文件系統(tǒng);多處理器單用戶的本地文件系統(tǒng)和多處理器多用戶的分布式文件系統(tǒng)。文件系統(tǒng)按照底層數(shù)據(jù)分析和管理的范圍可分為本地文件系統(tǒng)和分布式文件系統(tǒng)。
并行文件系統(tǒng)是一種特殊的分布式文件系統(tǒng)。所謂并行文件系統(tǒng)是指應用于多機環(huán)境的網(wǎng)絡文件系統(tǒng),單個文件的數(shù)據(jù)采用分條等形式存放于不同的I/O節(jié)點之上,支持多機多個進程的并發(fā)存取,同時支持元數(shù)據(jù)和數(shù)據(jù)的分布存放,并提供單一的目錄空間。而要實現(xiàn)一個完整的并行文件系統(tǒng),需要實現(xiàn)如下兩個方面:第一,實現(xiàn)單一的文件映像,并行文件存放在盤陣上的具體分布情況對于用戶來說是透明的,并行文件系統(tǒng)在用戶看來是一完整的樹型結(jié)構(gòu),在調(diào)用時只要給出文件名即可;第二,采用條帶(Stripe)和分區(qū)(Partition)技術(shù),支持一個文件數(shù)據(jù)在多個磁盤之上和多個進程之間的分布,即多個進程并發(fā)讀寫多個磁盤上的數(shù)據(jù)。
隨著高性能計算技術(shù)的發(fā)展,大規(guī)模并行科學計算的應用范圍也在不斷拓寬。為了適應I/O密集型應用的需要,高性能計算技術(shù)的系統(tǒng)設(shè)計更著重于提高并行I/O能力,即支持并發(fā)讀/寫。現(xiàn)在,越來越多的并行計算系統(tǒng)由于同時采用多個CPU,使計算能力與I/O速度的不匹配問題變得更加嚴重。除了RAID陣列等技術(shù)外,高吞吐量,高I/O帶寬,可擴展的并行文件系統(tǒng)提供了一種更好的I/O瓶頸的解決途徑。它可以將多個結(jié)點上的磁盤組織成為全局的存儲系統(tǒng),提供更大的存儲容量和聚集的I/O帶寬,并可以隨系統(tǒng)規(guī)模擴大而擴展。
目前國內(nèi)外有各種各樣的并行文件系統(tǒng)主要分為兩類:商業(yè)并行文件系統(tǒng)和研究型并行文件系統(tǒng)。商業(yè)并行文件系統(tǒng)有GPFS(general parallel file system)[2],GFS(global file system)[3],Lustre[4]等。這類系統(tǒng)可以提供高性能I/O,但往往依賴于特定的平臺以及特定的設(shè)備。研究型并行文件系統(tǒng)有PVFS(parallel virtual file system)[5],HDFS(Hadoop Distributed File System)[6],pNFS(pNFS File System)[7]等,它們往往側(cè)重某一方面。
雖然文件系統(tǒng)種類繁多,但是不存在一種文件系統(tǒng)擁有十全十美的優(yōu)點,他們在都擁有各自的特色,在不同的領(lǐng)域能夠體現(xiàn)自己的優(yōu)勢。對于并行文件系統(tǒng)來說,高性能,高可用,和高擴展性是衡量一個文件系統(tǒng)優(yōu)秀性的三個重要指標。隨著硬件技術(shù)的發(fā)展,對高可用和擴展性的需求逐漸超過了對文件系統(tǒng)高性能的要求。并行文件系統(tǒng)通常考慮3類問題:①透明性。并行文件系統(tǒng)所管理的存儲資源分布在服務器系統(tǒng)內(nèi)的若干節(jié)點上,但用戶在使用這些資源時,希望其如同單機文件系統(tǒng)一樣方便;②可靠性。分布式系統(tǒng)環(huán)境通常要求具有高可靠性,而數(shù)據(jù)的高可靠性是整個系統(tǒng)可靠性的基礎(chǔ);③動態(tài)性。由于分布式系統(tǒng)的節(jié)點數(shù)量可能隨時隨地變化,因此并行文件系統(tǒng)管理的文件對象也是隨時變化的。
并行文件系統(tǒng)是高性能系統(tǒng)的基石,它的I/O性能研究是一個十分熱門的領(lǐng)域。I/O瓶頸越發(fā)成為高性能系統(tǒng)發(fā)展的重要因素,而并行文件系統(tǒng)正是減輕I/O瓶頸性價比最高的方法。本文系統(tǒng)地研究并行文件系統(tǒng)的I/O特征和關(guān)鍵技術(shù)。對并行系統(tǒng)性能優(yōu)化有很大的指導作用,同時給并行文件系統(tǒng)的設(shè)計和性能評估提供重要的參考價值。
高性能并行文件系統(tǒng)以其存儲容量大、高聚合I/O性能、高數(shù)據(jù)容錯性、高可擴展性等特點,成為了應對海量數(shù)據(jù)管理的最有效方法。并行文件系統(tǒng)是高性能系統(tǒng)的基礎(chǔ),并行文件系統(tǒng)的性能直接高性能系統(tǒng)的性能,故并行文件系統(tǒng)的I/O性能是一個重要評價指標。通過研究并行文件系統(tǒng)的系統(tǒng)架構(gòu)和性能因素,并行文件系統(tǒng)I/O性能研究可分為以下幾個方面:
并行文件系統(tǒng)基本思想是利用并行計算機豐富的硬件資源將數(shù)據(jù)分布到多個I/O節(jié)點,利用磁盤數(shù)據(jù)的并行訪問和并行通道傳輸來獲得較大的I/O帶寬。因而文件在I/0節(jié)點上的組織形式和散布形式是決定文件訪問并行度的關(guān)鍵因素之一。并行文件系統(tǒng)的組織方式有簡單的一維分段方式,也有按二維乃至多維方式來組織的。常見文件散布方式有:①循環(huán)放置;②條帶化方式;③Hash方式;④用戶自定義方式。選擇合適的文件散布方式對I/O節(jié)點的負載平衡、獲得較好的I/O性能有著較大的影響,目前的研究主要集中在優(yōu)化存儲組織架構(gòu)和優(yōu)化條帶化分配算法。
用戶在訪問數(shù)據(jù)前必須事先訪問元數(shù)據(jù)服務器獲得訪問數(shù)據(jù)的位置信息。很多并行文件系統(tǒng)的元數(shù)據(jù)服務器都是限制系統(tǒng)可擴展性的瓶頸。元數(shù)據(jù)服務器有集中式和分布式兩種結(jié)構(gòu)。在集中式元數(shù)據(jù)服務器結(jié)構(gòu)中,用戶訪問數(shù)據(jù)前都必須先請求元數(shù)據(jù)服務器,由元數(shù)據(jù)服務器查詢訪問對象的位置,然后再將請求轉(zhuǎn)發(fā)到訪問數(shù)據(jù)所在的I/O節(jié)點。在分布式元數(shù)據(jù)服務器結(jié)構(gòu)中,元數(shù)據(jù)服務器的功能分散到各個計算節(jié)點和I/O節(jié)點上。集中式結(jié)構(gòu)實現(xiàn)較為簡單,但可擴展性較差。分布式結(jié)構(gòu)的元數(shù)據(jù)服務器功能分散且性能較高,但會增加計算節(jié)點的計算量,增加復雜度。因此究竟采用哪種結(jié)構(gòu)要對應用需求進行詳細的分析,需綜合權(quán)衡。另外,能否將集中式與分布式兩種結(jié)構(gòu)結(jié)合起來,也是一個值得探討的課題。元數(shù)據(jù)的管理也是提高并行文件性能的一個重要因素,目前也有很多研究者正在研究一些有效的元數(shù)據(jù)管理策略如二級元數(shù)據(jù)管理[8]。
圖1所示是Lustre文件系統(tǒng)的中Client和Storage節(jié)點的層次結(jié)構(gòu)。目前一些文獻通過優(yōu)化數(shù)據(jù)訪問路徑來還到優(yōu)化整個并行文件系統(tǒng)性能的目的,主要以以下兩個方面:①基于用戶空間的RDMA策略;②采取各種RDMA優(yōu)化方法,減少通信與處理時間。
圖1 Lustre中Client和Storage節(jié)點的層次結(jié)構(gòu)
在存儲節(jié)點和客戶端節(jié)點在同一個節(jié)點上時,文獻[9]提出了一個在用戶空間上的活動存儲方案,這種方法使得存儲節(jié)點能訪問文件系統(tǒng)中的所有文件和本地的文件,相對于傳統(tǒng)的基于核的實現(xiàn)方案,能顯著的減少存儲節(jié)點和計算節(jié)點間的網(wǎng)絡流量,提高文件系統(tǒng)的訪問性能。
許多并行文件系統(tǒng)具有文件條帶法功能,通過文件條帶化提高并行聚合I/O,提高數(shù)據(jù)的可用性,同時有些文件也具有合并文件分塊的功能,文獻[10]發(fā)現(xiàn)較寬的條帶寬度有時會帶來性能的下降,即條帶化粒度應該保持在某個平衡點,太粗或太細都會影響I/O性能。作者提出了兩種技術(shù):寫分割和層次化條帶策略來減少條帶化的負載,提高聚合I/O性能。
在并行系統(tǒng)或網(wǎng)絡計算中,可靠性是一個重要的考慮因素。在并行I/O子系統(tǒng)設(shè)計中,RAID設(shè)計的不同策略為可靠性提供了很好的模式,建立在RAID上的系統(tǒng),如在PIOUS中,基于事務日志的方式對文件進行操作,在故障時可以從原來的保存點繼續(xù)執(zhí)行。不同的應用,不同體系結(jié)構(gòu)的機器對并行文件系統(tǒng)有著不同的要求,應根據(jù)不同的實際要求、應用環(huán)境的特點和應用的側(cè)重點等方面,對上述各種存在的問題,進行有針對性的解決,以求達到系統(tǒng)的最佳性能。并行文件系統(tǒng)通過將文獻分塊存儲到各個存儲節(jié)點,來獲取較高的I/O 吞吐量,然而文件系統(tǒng)的可靠性和可用性將大打折扣,文獻[11]提出了一種基于LMR(Logic Mirror Ring)的方法來提高并行文件系統(tǒng)的可靠性和可用性,LMR在不改變原有系統(tǒng)的拓撲結(jié)構(gòu)的基礎(chǔ)上,通過在現(xiàn)在IO節(jié)點之間建立鏡像和Failover來提高可靠性和可用性。在并行文件系統(tǒng)研究中,依靠存儲分布提高I/O性能的一個重要技術(shù)是冗余磁盤陣列,使用許多小磁盤集合在一起提高磁盤性能和數(shù)據(jù)的可用性。并行文件系統(tǒng)使用多個客戶可以并發(fā)地存取網(wǎng)絡存儲節(jié)點中的數(shù)據(jù),通常采用條帶化的策略來并行化數(shù)據(jù)存取,提供了更高的I/O性能和可擴展性。
研究現(xiàn)在并行文件系統(tǒng)架構(gòu)和性能影響因素,分析并行環(huán)境下的工作I/O負載特性,能對實際的并行文件系統(tǒng)的設(shè)計,調(diào)優(yōu)和評估起到積級的指導作用??偟膩碚f,并行文件系統(tǒng)I/O研究難點和熱點包括5個方面:①并行文件系統(tǒng)I/O架構(gòu)和性能影響因素;②不同工作負載下的I/O特性和并行文件系統(tǒng)性能表現(xiàn),分析與預測I/O行為;③具有自適應性的并行文件系統(tǒng)I/O性能模型;④具有針對系統(tǒng)類型特性的并行文件系統(tǒng)I/O性能預測模型;⑤并行文件系統(tǒng)I/O參數(shù)估計和參數(shù)調(diào)優(yōu)策略。
并行文件系統(tǒng)性能的進一步研究包括以下幾個方面:①建立具有自適應性的并文件系統(tǒng)性能評估模型,該模型能適合各種工作負載。能根據(jù)工作負載的實際場景來調(diào)優(yōu)性能參數(shù),提高并行文件系統(tǒng)的聚合I/O。同時提高模型的可用性和可擴展性,在性能和復雜度上達到較優(yōu)級的平衡;②設(shè)計一個并文件系統(tǒng)性能預測模型,該預測模型具有針對系統(tǒng)類型的特性。根據(jù)不同的文件系統(tǒng)特點預測相應的性能表現(xiàn),指導并行文件系統(tǒng)的設(shè)計,減少成本;③性能模型和性能預測模型在參數(shù)估計和調(diào)優(yōu)方面,也應具有針對系統(tǒng)類型的特點。能根據(jù)具體的文件系統(tǒng)框架,場景需求來提高預測的準確度。
[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.