GVDS:面向广域高性能计算环境的虚拟数据空间
點擊上方藍字關注我們
GVDS:面向廣域高性能計算環境的虛擬數據空間
肖利民1,2,?宋堯1,2,?秦廣軍3,?周漢杰1,2,?王超波1,2,?韋冰1,2,?魏巍4,?霍志勝1,2
1?北京航空航天大學計算機學院,北京 100191
2?軟件開發環境國家重點實驗室,北京 100191
3?北京聯合大學智慧城市學院,北京 100101
4?西安理工大學計算機科學與工程學院,陜西 西安 710048
?
摘要:廣域高性能計算環境是支撐科技創新和社會經濟發展的核心信息基礎設施。然而,在廣域高性能計算環境中,異構存儲資源在地理位置上的分散分布導致無法發揮廣域存儲資源的聚合效應,難以滿足對廣域分布數據的統一管理和高效訪問需求。為此,提出了虛擬數據空間構建方法及數據訪問性能優化方法,并實現了一個面向廣域高性能計算環境的全局虛擬數據空間(GVDS)。GVDS可聚合廣域分布的異構存儲資源,形成統一的虛擬數據空間,有效支撐用戶以統一訪問模式高效訪問廣域分散的異構存儲資源,實現廣域環境中分布數據的跨域共享和協同處理。測試結果表明,與國際領先的面向廣域高性能計算環境的OneData、GFFS等存儲系統相比,GVDS實現了相當的功能,且數據訪問性能明顯提升。
關鍵詞:全局虛擬數據空間?;?廣域高性能計算環境?;?高效數據訪問?;?異構存儲資源
論文引用格式:
肖利民, 宋堯, 秦廣軍, 等. GVDS:面向廣域高性能計算環境的虛擬數據空間[J]. 大數據, 2021, 7(2): 123-146.
XIAO L M, SONG Y, QIN G J, et al. GVDS: a global virtual data space for wide-area high-performance computing environments[J]. Big Data Research, 2021, 7(2): 123-146.
1 引言
國家高性能計算環境擁有大量的計算與存儲資源。根據中國國家網格(CNGrid)發布的《國家高性能計算環境發展報告(2002—2017年)》,截至2017年年底,我國國家網格節點單位達到19家,聚合計算資源超過200 PFlops,總存儲資源超過178 PB。然而這些節點地理位置分散,如何發揮資源聚合效應并統籌使用這些廣域資源一直是國家高性能計算環境發展面臨的一個挑戰性問題。網格技術常被用于解決此類廣域資源聚合問題。網格技術能夠將網絡上松散的計算與存儲資源聚合起來,隱藏資源的異構性,并最終向用戶呈現一個虛擬的超級計算機。當前CNGrid中的計算資源已可做到全局調度使用,然而存儲資源仍處于廣域分散且隔離自治的狀態,未能實現統一管理和共享訪問。當研究人員需要跨機構協同工作以及分享大規模的數據文件時,通常需要通過網格的數據傳輸工具將與計算任務相關的輸入文件傳輸到計算中心內部的存儲集群中。在計算任務執行完成后,超算用戶需要顯式指定計算任務的輸出文件來完成計算結果的回傳。因此,現存的基礎設施依然無法提供簡單有效的數據訪問與共享模式。
科學計算應用通常需要依賴外部數據文件,而其輸入數據時常來源于多個超級計算中心(以下簡稱為超算中心)。以全基因組關聯分析應用為例,其不同機構的基因庫位于不同的超算中心,主應用位于某一個超算中心,當執行全基因組關聯分析任務時,主應用需要訪問多個超算中心的基因庫,并劃分出多個作業。每個作業都只需要訪問基因庫中所有文件的某一個文件片段,并進行關聯分析。這種情況下,數據跨域分散且隔離自治未得到有效匯聚,難以實現對該應用數據的有效管理和共享,無法充分發揮多個超算中心并發處理海量數據的能力,導致各超算中心數據的重復存儲以及較低的數據處理效率。此外,現有的跨域存儲系統和訪問方法不適用于廣域高性能計算環境。因此,當前國家高性能計算環境亟須聚合廣域分散的存儲資源,以形成全局統一的數據空間,在此基礎上,針對用戶和應用對數據空間的多樣化訪問需求進行分區管理、共享和隔離,并在廣域環境中提供數據空間的高效訪問。可統一管理和高效訪問的全局數據空間的形成主要面臨如下挑戰:
● 當前國家高性能計算環境存儲資源廣域分散且隔離自治,缺乏適用于廣域高性能計算環境,能屏蔽底層文件系統異構性,并支持統一管理、分區共享及視圖隔離的全局數據空間;
● 在帶寬受限且高時延的廣域環境下,難以實現高效的遠程數據訪問,難以滿足廣域分布數據訪問需求。
針對上述挑戰,本文提出了虛擬數據空間構建方法及數據訪問性能優化方法,并實現了一個面向廣域高性能計算環境的、訪問模式統一且高效的全局虛擬數據空間(global virtual data space, GVDS)。GVDS是一個跨域分布式存儲系統,單個GVDS實例可以直接部署到超算中心,并且通過與其他超算中心中的GVDS實例協作來實現存儲資源的聚合。用戶或計算節點通過運行在用戶空間的GVDS實例,可以以POSIX文件訪問接口的模式訪問由跨域分散的異構存儲資源聚合而成的數據空間。GVDS隱藏了數據傳輸過程,簡化了多超算中心間數據訪問與調度的模式。
本文的主要貢獻包括以下兩個方面。
● 設計了一個面向廣域高性能計算環境的全局虛擬數據空間系統——GVDS。GVDS隱藏了底層存儲訪問接口、廣域網鏈路、數據副本等的差異與復雜性,提供統一接口,以輕松管理、共享和訪問跨域分散在多個超算中心的存儲資源。
● 設計了高效的廣域網遠程數據訪問機制,通過通信優化、數據預讀與緩存、數據副本等技術有效提升了數據文件的實時訪問速度。
2 相關工作
Lustre、Ceph和GPFS等文件系統能夠在本地數據中心內實現統一訪問和數據共享,其向上隱藏了分布式存儲系統數據調度的復雜性,使得數據訪問和共享就像使用本地文件系統一樣容易。但是在廣域高性能計算環境中,此類問題變得更加復雜,系統的用戶往往來自不同的地域和機構,因此需要整合跨域分散的異構存儲資源,并對其進行統一管理和訪問。
針對跨域異構資源聚合和統一管理及訪問問題,目前已有許多關于廣域存儲系統的研究工作。點對點技術在網絡存儲系統解決廣域數據訪問和共享問題上發揮了重要作用。這些存儲系統通常基于一致性哈希進行數據分區,在分區節點內采用鍵值結構組織目錄樹。此類系統去中心化的架構設計使其避免了單點瓶頸,并且還具有較小的集群擴容代價與縮容代價。不過此類架構難以被直接應用于廣域高性能計算環境,因其采用一致性哈希隨機地決定文件的放置位置,而忽視了文件之間的關聯性以及用戶的訪問成本。WAS(Windows Azure storage)是一種兼具高可用、安全、可伸縮性和可靠性的云存儲系統。其基于共享口令的文件訪問授權使用戶之間極易共享數據。然而WAS不支持差量更新,即使僅覆寫了文件的一小部分,也需要將整個文件全量上傳到遠程數據中心,因此會導致巨大的網絡和磁盤開銷。近年來,部分研究人員提出了關于面向分布式計算和高性能計算的廣域文件系統的構想。Lustre-WAN是嘗試將并行文件系統部署到廣域的方案。實驗結果表明,它可以在100 Gbit/s專線網絡上提供較高的聚合訪問性能。然而其局限在于要求所有數據中心部署相同的文件系統,即Lustre。Gfarm是一個廣域分布式文件系統,由一個元數據節點、多個數據節點組成,同樣提供了易用的廣域數據訪問接口。然而Gfarm存在單點故障問題,即元數據節點出現的網絡故障會導致整個系統崩潰。CalvinFS是一種基于廣域副本的高可用廣域分布式文件系統。CalvinFS利用分布式數據庫系統進行元數據管理,并以數據塊為建立副本的基本單元。但CalvinFS使用鍵值的方式組織元數據,并將文件或目錄的絕對路徑作為鍵,因此遞歸的目錄操作可能會導致性能顯著下降。OneData是一種用于全局數據存儲和共享的解決方案,它是PL-Grid Plus項目的一部分。OneData引入了Space和Provider的概念,以隱藏數據廣域分布的復雜性。Space是用戶數據存儲的載體, Provider是提供存儲資源的組織機構,每個Space可以由一個或多個Provider保存。然而OneData的目錄樹操作會被映射為大量的NoSQL操作,導致其數據庫面臨極大的負載壓力,從而成為性能瓶頸。全局聯合文件系統(global federated file system,GFFS)是美國國家科學基金會的極限科學與工程發現環境(extreme science and engineering discovery environment,XSEDE)項目中用于聚合廣域分散自治存儲資源的全局聯合文件系統。與OneData緊密的元數據管理不同, GFFS通過一種松散的頂層元數據組織實現了異構存儲資源的聚合,這種資源聚合形式支持個人計算機、大學校園存儲集群、云存儲等多種來源的存儲資源便捷地接入GFFS。GFFS的元數據分多級管理,即頂層元數據集中式管理,存儲集群上的元數據分散自治管理。因此,GFFS訪問流程中單一的頂層元數據服務器可能會成為瓶頸,導致訪問性能受限。
針對大數據稀疏問題,參考文獻在基于異構眾核的超級計算機上,從主存儲器訪問、進程間/節點間通信、并行化和負載均衡等方向開展了對存儲資源訪問性能的優化方法研究,但廣域環境因其受限的網絡帶寬和高訪問時延為數據訪問性能帶來了挑戰。為了提升對廣域環境中存儲資源的訪問能力,歐洲數據網格(EU data grid,EUDG)?、開放網格服務基礎設施(open grid services infrastructure, OGSI)等網格計算系統中應用了大量I/O優化手段。遺憾的是,它們最終都沒有實現從用戶本地環境到網格環境的完全無縫和透明。Globus項目中提供了副本定位服務(replica location service, RLS)、網格文件傳輸協議(grid file transfer protocol,GridFTP)以及遠程I/O庫(remote I/O,RIO)等工具供用戶高效使用網絡資源,然而用戶需要通過GridFTP顯式地管理和檢查文件狀態、來回復制文件,便捷性較低。作為廣域存儲系統中的常見技術,預取和緩存是提升元數據和數據訪問性能的重要手段。網絡文件系統4.1版本(network file system v4.1,vNFS)以數據塊為粒度對數據進行預取,當應用請求的數據量小于一個數據塊時,系統預取整個數據塊,以減少后續訪問的網絡開銷。但在帶寬受限且時延高的廣域網環境中,vNFS小粒度地預取數據塊會導致較大的訪問時延。參考文獻在密集型I/O環境中提出了一種面向突發負載的預取性能優化方法,對突發I/O進行在線識別以進行數據預取,從而有效地節省維護數據關聯性所需的資源。但此類方法大多面向單一類型的訪問負載,在混合負載中無法有效地識別訪問特征。數據副本也是廣域存儲系統中一種常用的訪問性能優化手段。SPANStore鍵值存儲系統通過其定位服務器根據每個云平臺的存儲價格和負載狀態決定文件及其副本存放地址,客戶端通過本地云存儲平臺的元數據索引到最近的目標副本地址,然后訪問該副本,以提升訪問性能。然而SPANStore的解決方案是面向云環境的,其面向云存儲成本的副本策略無法直接用于高性能計算環境。參考文獻針對邊緣計算與云計算協作場景提出了一種數據副本布局策略,在存儲空間有限及最長數據訪問時間約束等限制條件下,通過啟發式算法計算副本放置位置,以降低數據訪問時延。但是其中心化、全信息感知的靜態副本放置策略會帶來較大的信息采集開銷。而參考文獻采用了一種局部信息感知的副本策略,其中WARP算法基于對副本一致性維護開銷的分析,通過感知副本的數據寫入操作,決定副本的最優數量與位置。但只針對寫操作的感知導致該副本動態布局在讀性能優化方面仍存在提升空間。
綜上所述,在廣域高性能計算場景中,現有系統都無法完全滿足對廣域分布數據的統一管理和高效訪問需求,因此筆者設計并實現了全局虛擬數據空間,以聚合廣域分散異構存儲資源,并支持統一且高效的訪問模式。
3 方法和關鍵技術
為了構建適用于廣域高性能計算環境的全局數據空間,并實現對廣域分布數據的統一管理和高效訪問,本文針對存儲資源廣域分散且隔離自治的國家高性能計算環境中全局虛擬數據空間構建問題,研究了一套適用于廣域高性能計算環境的虛擬數據空間構建方法,以實現跨域異構存儲資源的統一管理。此外,本文針對帶寬受限且時延高的廣域網環境下的數據高效訪問問題,提出了一套數據訪問性能優化方法,以實現對廣域分布數據的高效訪問。
3.1 虛擬數據空間構建方法
為了構建適用于廣域高性能計算環境,能屏蔽底層文件系統異構性,并支持統一管理、分區共享及視圖隔離的全局數據空間,本節提出了基于廣域分散自治存儲資源的虛擬數據空間構建方法。該方法需聚合已部署在多個超算中心中的異構存儲資源,形成數據空間,并根據高性能計算環境用戶及應用對數據空間的多樣化訪問需求進行分區管理、共享和隔離。因此,針對廣域分散存儲資源聚合問題、數據的多樣化共享問題及用戶訪問控制問題3個子問題,研究并建立了一套虛擬數據空間構建方法。通過分散自治存儲資源的聚合方法,實現存儲資源的全局統一邏輯視圖;通過可定制數據區域劃分和空間分配方法,實現區域虛擬視圖,以隱藏數據分布的復雜性,并提供統一的數據分區管理;通過視圖隔離和訪問控制機制,實現用戶及用戶組之間的數據共享和隔離。
3.1.1 分散自治存儲資源聚合方法
針對高性能計算環境存儲資源廣域分散、無法充分發揮廣域資源聚合效應的問題,GVDS使用基于全局路徑的名字空間,以實現廣域分散、自治異構存儲資源的聚合。
GVDS對廣域分散的存儲資源從本地、局域、廣域3個層級進行逐層聚合,形成全局統一的名字空間,以支撐分散異構存儲資源的聚合管理和統一訪問。GVDS基于單機文件系統和并行文件系統對存儲資源進行本地聚合和局域聚合,并將所有超算中心的存儲資源以存儲集群的粒度映射到管理節點維護的存儲資源名字空間中,以進行廣域層級資源聚合。如圖1(a)所示,每個并行文件系統的根目錄都鏈接到全局管理節點維護的全局名字空間中的邏輯節點,邏輯節點的信息和組織關系被管理節點記錄在數據庫中,底層存儲集群的幾個重要屬性,包括資源的通用唯一識別碼(universally unique identifier,UUID)、超算中心的UUID、已分配容量、已使用容量、可用容量和資源狀態等,進而聚合所有存儲資源,形成全局數據空間。
圖1???分散自治存儲資源聚合方法
GVDS被部署在多個超算中心內,并聚合了Lustre、Gluster、MooseFS等多種并行或分布式文件系統。如圖1(b)所示,GVDS的3層資源聚合方法表現出了良好的聚合性能,以較低的性能損失聚合了廣域分散且自治異構的存儲資源,實現了GVDS的聚合資源管理和統一訪問接口。
3.1.2 可定制數據區域劃分和空間分配方法
廣域分散存儲資源聚合后,針對數據的便捷管理和共享問題,GVDS引入了“區域”與“空間”的概念,以隱藏數據分布的復雜性,并實現數據的統一管理和共享。區域是對分散數據進行統一管理和共享的平臺,空間是承載數據文件的邏輯實體,是存儲空間分配、集群映射等的基礎控制單元。一個區域通常由多個空間組成。GVDS區域劃分和空間分配如圖2所示,GVDS中可構建個人私有區域、群組共享區域、全局共享區域等不同類型的區域,以作為定制化數據存儲和共享的基礎,而作為分散數據的集合體,每個區域下設多個空間,這些空間被分配至不同超算中心內的存儲集群上,作為承載分散數據的實體。例如圖2中,用戶1可訪問個人私有區域“用戶1”、群組共享區域“高能物理”以及全局共享區域,而其個人私有區域“用戶1”內的數據則被分散存儲于超算中心1內的存儲集群1-1和超算中心m內的存儲集群m-1上的不同空間內。
GVDS通過構建區域,讓用戶視圖在區域粒度實現隔離,從而隱藏全局數據空間的管理復雜性,而空間創建時的資源分配被映射為邏輯節點創建子節點的操作,進而被映射為不同類型底層存儲集群的具體操作。如圖2所示,用戶可以根據需要自定義多個區域,不同科研領域的數據集、用戶的私有數據集等均可以存儲至不同區域中。同時,GVDS允許用戶將新創建的空間映射到存儲集群的基礎存儲容器中,例如并行文件系統的數據目錄。如果用戶在創建空間時未指定映射的目錄路徑,則系統會自動根據存儲集群剩余容量、區域關聯度、用戶關聯度等信息選擇合適的存儲集群節點,并創建一個新的映射目錄。
圖2???區域劃分和空間分配
GVDS能較好地支持相同類型的數據存儲在不同的超算中心的場景。例如在氣象預測場景中,異地站點收集的測量數據需要被存儲于就近的超算中心,并且進行預處理,因此相同類型的數據需要被分配到不同的超算中心。區域和空間的引入可以有效地管理這些地理分布的數據,如圖2中,用戶可以為氣象預測數據創建一個區域,然后在該區域中創建多個空間,并將空間各自映射到距離站點較近的超算中心,以存儲相關數據。
GVDS可定制化的數據區域劃分和空間分配滿足了用戶對數據管理和共享的多樣化需求,可支撐個人、群組、全局等不同層級的數據管理和共享。此外,GVDS以拓展屬性接口形式提供了擴展應用程序接口(application programming interface, API),用于獲取空間實際映射位置信息。這允許高性能計算環境中的作業調度程序有感知地將作業調度到數據文件所在的計算中心,以最大化數據局部性,從而降低遠程數據訪問或遷移的開銷。
3.1.3 視圖隔離與訪問控制機制
為了支持GVDS中數據的安全共享和隔離,針對用戶訪問控制問題,本節研究了GVDS中視圖隔離和訪問控制機制。如第3.1.2節所述,GVDS中的區域可以在多用戶之間共享。創建區域后,該區域的所有者可以將區域的訪問權限授予其他用戶或用戶組。例如,用戶可以創建一個區域,并向一個用戶組授予其對該區域的只讀權限,然后該用戶組的成員將繼承用戶組的只讀權限,并且能夠訪問該用戶的區域。
GVDS管理節點的數據庫中記錄了每個區域對用戶和用戶組的訪問控制列表權限。當用戶登錄GVDS客戶端時,將獲取其可訪問的區域列表,管理節點將使用N1QL在數據庫中搜尋所有該用戶可見的區域。并且客戶端會定期向管理節點發送區域請求,以獲取最新的區域信息。
GVDS使用一對多映射模型來控制訪問權限,一個GVDS賬號將會被映射到多個超算中心的專屬本地賬號或者GVDS統一賬號。如果用戶賬號被映射到超算中心專屬本地賬號,則該賬號名下的所有映射到該超算中心的空間在存儲集群中的所有者等信息都會變更為專屬賬戶用戶,基于此,本地超算中心計算節點上的GVDS客戶端即可繞過I/O代理直接訪問空間中的文件。如果用戶賬戶被映射到GVDS統一賬戶,則其權限將采用GVDS的區域空間權限管理機制,通過管理節點鑒權產生的憑證經由I/O代理訪問相應數據空間。
基于視圖隔離和訪問控制機制, GVDS建立了全局一站式權限控制和認證體系,實現了廣域分散存儲資源的共享和隔離訪問。
3.2 數據訪問性能優化方法
GVDS聚合了跨域分散且異構的存儲資源,形成了統一的虛擬數據空間,并面向用戶和應用提供統一的訪問接口及便捷的管理和共享。然而,仍需進行大量的性能優化工作才能滿足用戶對廣域分布數據高性能、低時延的訪問需求。因此,本節研究了虛擬數據空間中的數據訪問性能優化方法。針對帶寬受限且時延高的廣域網環境下的高效數據讀、寫及數據優化布局3個子問題,通過基于負載特征的數據預讀方法,實現高效的數據讀取;通過基于請求合并的回寫緩存方法,有效提升數據寫性能;通過副本布局及一致性同步方法,實現數據塊副本的廣域優化布局及低開銷同步。在本節中,筆者將詳細描述這些性能優化措施。
3.2.1 基于負載特征的數據預讀方法
針對廣域帶寬受限且數據廣域分布場景下的數據高效讀取需求,GVDS實現了基于負載特征的自適應增量預讀方法,通過感知訪問的帶寬負載、文件I/O等特征,基于緩存的命中概率動態調整預讀塊的長度,實現了廣域環境下多文件海量數據的高效訪問。
在讀取數據時,如果在客戶端緩存中找到請求的數據,即可確認讀取完成。而當發生緩存未命中時,則需要通過與I/O代理聯系來讀取請求的數據。如圖3(a)所示,GVDS使用文件緩存控制塊來記錄文件訪問特征,并決定是否需要進行預讀以及確定預讀的步長。當用戶提交文件讀請求時,文件緩存控制塊會記錄該文件的歷史訪問信息,并根據其訪問的數據塊大小、存儲區地址、歷史預讀塊及其命中率等信息分析其訪問特征。文件訪問的隨機讀和順序讀特征是GVDS預讀機制是否發揮作用的關鍵,當GVDS的預讀機制發現當前文件的歷史順序訪問數據量已經超過預設的啟動閾值之后,將會啟動預讀機制,分配預讀緩存,并行預讀若干個數據塊。在預讀機制啟動后,GVDS預讀機制則會根據預讀緩存的命中率進行增量預讀,即在判定預讀緩存被訪問后,自適應地增加預讀數據量。此外,預讀的數據量與預讀步長正相關,而預讀步長則由帶寬壓力和文件I/O特征等負載特征綜合決定,以平衡系統負載和數據訪問性能。其中,帶寬壓力由I/O請求調度器提供,其與I/O請求調度器中等待隊列中的請求數量成正比,較大的帶寬壓力意味著較大的I/O負載,此時預讀步長會自適應地減小,以減輕負載;文件I/O特征則包括文件的預讀命中率、I/O請求最大吞吐量等,較高的預讀命中率和較大的I/O請求吞吐量都會增加預讀步長,以提升訪問性能。
如圖3(b)、圖3(c)所示,GVDS的數據預讀方法可有效地提升順序讀時的數據訪問性能,而隨機讀取時,面對讀放大問題,GVDS通過動態訪問模式檢測動態調整預讀機制,從而獲取較低的性能損失。綜上所述,GVDS通過基于負載特征的數據預讀方法實現了廣域環境中的數據高效讀取。
圖3???基于負載特征的數據預讀方法
3.2.2 基于請求合并的回寫緩存方法
在數據寫入方面,針對廣域環境中的數據高效寫入需求,GVDS實現了基于請求合并的回寫緩存方法。GVDS客戶端聚合可亂序執行的數據I/O請求,并通過回寫緩存將虛擬數據空間客戶端提交的數據暫時緩存在本地,由后臺線程異步提交,進而提升遠程數據的寫入性能。
數據寫入請求將數據寫入客戶端緩存而非數據源,客戶端不斷將緩存數據刷新回數據源。由于可同時將多個寫入請求發送到遠程超算中心內部署的I/O代理上,因此GVDS采用異步寫方式顯著提高寫性能。此外,每個請求都需要通過高時延廣域網絡通信,這會帶來較大的網絡開銷,并且對文件的多個不連續部分的訪問請求經常被交叉提交,因此如圖4(a)所示,在將寫請求發送到I/O代理之前,用戶級別的守護程序會合并這些請求,以提高I/O性能。
圖4???基于請求合并的回寫緩存方法
為了提高并發請求處理的性能, GVDS客戶端允許存在多個線程,以便每個線程可以獨立選擇和處理隊列中的并發請求。當從I/O代理接收到響應時,用戶級別的守護程序會將其寫回到用戶空間文件系統(filesystem in userspace,FUSE)的內核模塊,然后驅動程序將請求標記為已完成,并喚醒用戶進程。
如圖4(b)所示,GVDS請求合并方法能有效地提升小數據訪問塊時的寫入性能,因為其對請求的合并能有效地降低高時延網絡通信開銷。但是受到FUSE請求切割機制的約束,在數據訪問塊大于64 KB時,請求合并方法將無明顯的性能優化。此外,GVDS基于請求合并的回寫緩存方法能從整體上保持較高的遠程數據寫入性能。
3.2.3 副本布局及一致性同步方法
除了對數據讀取和寫入進行優化外,數據布局也是提升系統跨域訪問性能的重要方法之一。針對廣域環境中的數據優化布局問題,GVDS中設計并實現了一種數據塊粒度的多副本機制及副本間的一致性同步方法,以優化數據在廣域環境中的布局,并實現低開銷的副本同步。
首先,GVDS基于負載特征感知實現副本的動態布局。如圖5(a)所示,GVDS基于本地超算采集的I/O負載特征來預估并構建以訪問時延為收益的計算模型,并結合對副本異地更新I/O負載的感知來決策副本的創建與布局。為了避免負載特征的采集給I/O代理帶來過大的開銷,客戶端維護其本地打開的遠程文件的歷史訪問請求統計信息,并周期性地提交給I/O代理的負載特征度量子系統。GVDS副本動態布局策略能夠憑借有限時間窗口內的局部數據訪問信息、歷史積累的目錄及文件訪問模式統計量對文件的負載特征進行識別,并根據識別到的數據負載特征實現副本動態布局。圖5(b)表明,GVDS中的副本布局方法能有效地提升廣域環境中的文件訪問性能。
圖5???負載特征感知的副本動態布局方法
對于數據并發寫的一致性問題,GVDS采用一種因果一致的副本數據索引同步方法。如圖6(b)所示,GVDS通過I/O請求邏輯時間戳對訪問請求進行定序,并基于多版本區段樹的數據索引方法解決索引更新請求亂序到達的沖突問題,實現了副本數據并發寫的因果一致性。保證因果一致的I/O請求邏輯時間戳主要由版本矢量、機器時間戳以及源超算中心3個值構成。其中,版本矢量用于標記請求之間的因果依賴關系,機器時間戳以及源超算中心的ID號用于為I/O請求提供全序關系,以在因果一致性模型的并行更新時解決沖突。此外,I/O代理節點會為目標副本文件構建多版本區段樹,并通過樹的版本回滾來解決網絡包亂序到達導致的并發沖突。
圖6???副本空間一致性保證
如圖7所示,相對于訪問廣域中的數據空間,在應用副本布局及一致性同步方法時,GVDS能實現低時延的副本空間訪問。綜上所述,GVDS通過優化的副本布局實現了廣域數據的高效訪問,并在多副本之間形成了低開銷的有效同步。
圖7???副本空間與廣域空間的訪問性能對比
4 系統設計與實現
4.1 GVDS軟件體系結構
GVDS中引入了用戶、用戶組、區域、空間等實體,以實現對廣域分散存儲資源的聚合、共享與隔離。GVDS實體關系如圖8所示。
每個GVDS用戶都對應一個包含基本權限信息、組關系和區域空間列表的GVDS賬戶,例如在圖8中,用戶3與區域1和區域2關聯,即區域1、區域2對用戶3可見。用戶組由多個用戶組成,用于進行批量的數據共享和訪問權限控制,組的權限將被其成員用戶繼承,例如在圖8中,用戶1和用戶2是同一用戶組的成員,因此用戶1和用戶2將繼承用戶組對區域1的訪問權限。區域可以隱藏數據訪問的復雜性,并簡化數據共享過程,用戶數據在區域級別共享,用戶通過加入區域來獲取某些領域或者科研機構所共享的數據集。空間用于隱藏數據位置映射的復雜性,并簡化對數據的訪問,是保存用戶數據的邏輯容器及數據調度和副本控制的一級單位。創建空間時,調度程序會根據存儲集群剩余容量、區域關聯度、用戶關聯度等信息將空間映射到合理的超算中心。空間的存儲資源由超算中心的I/O代理提供。如在圖8中,區域1中含有空間1和空間2兩個空間,空間1和空間2分別存儲于超算中心1和超算中心2中,并分別由部署于兩個超算中心的I/O代理1和I/O代理2提供訪問支持,同時I/O代理2還支持區域2下的空間3。
圖8???GVDS實體關系
GVDS軟件體系結構如圖9所示。GVDS管理節點中的模塊提供對存儲資源的管理功能,并使用分布式數據庫維護控制信息,包括存儲資源狀態、用戶與組成員信息、區域信息與空間信息、I/O代理拓撲圖等信息,該數據庫部署在每個超算中心,并且彼此同步。I/O代理節點向廣域網暴露存儲資源的訪問接口。GVDS客戶端從GVDS入口點獲取超算中心的拓撲圖,并且以網絡連接質量為標準,對所有超算中心進行排序。GVDS客戶端會優先選擇同一超算中心的GVDS管理節點實例,其次選擇網絡距離最近的超算中心管理節點實例。GVDS客戶端向管理節點拉取用戶身份認證、用戶可訪問的區域及空間等信息。經由管理節點身份驗證的客戶端有權訪問GVDS廣域環境中的所有I/O代理節點,并且從其名下的空間讀寫文件數據。在數據訪問過程中,客戶端會將客戶端視圖的邏輯文件路徑轉換為GVDS全局資源路徑,該全局資源路徑最終在I/O代理中被轉化為實際資源存儲路徑。GVDS客戶端基于FUSE構建POSIX訪問接口,將POSIX語義的請求轉換為GVDS語義的請求,并發送到I/O代理端數據訪問模塊處理,實現統一訪問接口。此外,GVDS客戶端的預讀和緩存機制及I/O代理節點中的副本機制將優化廣域環境中的數據訪問性能,以實現高效數據訪問。
圖9???GVDS軟件體系結構
4.2 系統實現
GVDS系統架構如圖10所示,GVDS系統可以部署在多個超算中心內,基于每個超算中心內的存儲資源構建若干個管理節點和I/O代理節點。GVDS客戶端通常被部署于超算中心內的計算節點上,也可以被部署在超算中心之外,并通過廣域網訪問超算中心的存儲資源。
圖10???GVDS系統架構
4.2.1 管理節點
單個超算中心需要至少一個管理節點,管理節點通過使用全局知識構建的全局名字空間,極大地簡化了存儲資源聚合、空間放置決策和I/O代理管理。為了降低管理節點的負載,避免管理節點成為文件訪問性能瓶頸,盡量避免其參與到主I/O路徑中。GVDS管理節點僅維護用戶視圖中第一級區域和第二級空間的元數據信息,空間下文件的元數據全部由空間所映射超算中心的I/O代理維護。GVDS客戶端僅在初次訪問或者區域空間的元數據緩存超時時,才會向管理節點發起數據訪問請求。
客戶端在訪問文件時,會與管理節點和I/O代理節點產生交互。客戶端請求由管理節點維護的區域和空間信息,獲取與當前登錄用戶關聯的區域和空間信息、集群拓撲圖等。基于從管理節點獲取的信息,客戶端將構建一個由區域邏輯節點和空間邏輯節點組成的兩級目錄樹。進入區域目錄時,客戶端需要向管理節點發送帶有區域ID的請求,以獲取有關區域內的空間信息。空間信息則包含空間全局映射統一資源標識符(uniform resource identifier, URI)、空間權限信息等,其中空間全局映射URI是存儲用戶文件的I/O代理入口點。管理節點動態采集I/O代理的負載信息,監控其健康狀態,并且向客戶端反饋I/O代理的負載信息,不可用的I/O代理將會被管理節點屏蔽,避免客戶端數據訪問超時對計算任務產生影響。客戶端可以基于緩存局部性、最低負載等策略選擇同一超算中心內的任意一個I/O代理訪問其空間。
為了提高可靠性與自治性,GVDS環境中的每個超算中心均部署了一個分布式數據庫實例。主機使用Couchbase[33]數據庫系統存儲用戶、區域、空間、I/O代理和存儲資源等信息,并且依賴其跨數據中心復制機制實現超算中心間跨域的最終一致的控制信息復制。客戶端和I/O代理通常與位于同一超算中心的管理節點聯系,以避免廣域網通信的開銷。當同一超算中心中的管理節點發生故障時,客戶端和I/O代理會聯系較近的超算中心的管理節點。
4.2.2 I/O代理節點
I/O代理節點為客戶端提供空間分配的存儲資源的訪問接口。I/O代理節點的挑戰在于保證實際應用的文件操作與客戶端POSIX語義請求的一致性。例如當客戶端打開文件時,需要獲取文件句柄,以進行后續的文件讀取/寫入。如果選擇讓I/O代理節點執行同樣的打開文件操作、返回文件句柄,并且讓客戶端在隨后的文件讀寫中使用文件句柄作為文件訪問入口點,這種操作的一一對應反而將造成與實際效果的不一致。例如,當I/O代理負載平衡、I/O代理句柄過多自動刪除、句柄號長時間未用被回收并被其他客戶端使用時,都會發生因句柄失效而產生的不一致操作。
而生成GVDS環境中全局唯一句柄號的開銷過于龐大,因此I/O代理使用文件路徑打開文件,然后執行實際的讀寫操作,最后關閉文件。并且,為了減少文件打開帶來的開銷以及文件關閉引發的不必要的緩存沖刷操作,I/O代理將文件路徑作為鍵來緩存文件句柄,采用最近最少使用(least recently used,LRU)策略驅逐長期未訪問的句柄,并實際關閉該文件。
4.2.3 GVDS客戶端
用戶應用程序使用GVDS客戶端訪問文件。GVDS客戶端基于FUSE向用戶應用程序提供POSIX文件訪問接口。它一般被安裝在超算中心內的計算節點上,用于獲取執行計算時所需的數據;或者被安裝在用戶PC上,用于上傳輸入文件或者瀏覽計算結果。GVDS客戶端在用戶空間中提供訪問服務,與大多數本地文件系統相似, GVDS提供讀取、寫入、刪除文件的操作,以及創建、移動和刪除目錄的操作。用戶應用程序使用客戶端文件視圖中的邏輯文件路徑來訪問文件數據,而無須知道文件實際所處的超算中心。訪問文件時,客戶端將邏輯文件路徑轉換為GVDS全局資源路徑,并且根據文件的全局資源路徑從GVDS環境拓撲圖中尋找適合的I/O代理,將POSIX語義的文件訪問請求翻譯為GVDS文件訪問請求格式,并最終向I/O代理入口點提交請求。
5 實驗驗證
為了從各個方面評估本文提出的系統,筆者在國家高性能計算環境以及阿里云環境中對GVDS進行了實驗驗證。在國家高性能計算環境中廣域分布的5個超算節點部署了GVDS,并測試了GVDS的功能及性能。此外,在阿里云中的5個跨域分布的數據中心中部署了GVDS以及流行的網絡存儲系統,以進行性能對比測試,并驗證了GVDS系統在不同環境中的適用性。
5.1 功能驗證
在GVDS功能驗證方面,在部署的實驗平臺中開展了GVDS典型使用場景測試驗證工作。通過數據區域的定制化共享、遠程大數據集的按需實時訪問、廣域分布數據的多中心協同處理等GVDS使用場景,驗證GVDS系統全局統一視圖、廣域數據共享、遠程數據按需訪問、跨域數據協同處理等重要功能。
(1)典型使用場景1:數據區域的定制化共享
當前高性能計算環境中,在數據廣域分散、各中心隔離自治的情況下,GVDS提供了一種能滿足用戶多樣化共享需求的靈活數據共享模式。如圖11(a)所示,利用GVDS數據區域管理和權限管理等功能,可將數據區域定制化共享給個體用戶、群組用戶、全部用戶等多層級,獲得可靠安全且靈活的數據分區能力。驗證情況如圖11(b)所示。
圖11???數據區域的定制化共享
(2)典型使用場景2:遠程大數據集的按需實時訪問
針對國家高性能計算環境中用戶對遠程大規模數據集的訪問需求,現有的訪問模式在進行跨域訪問和管理時較為困難,甚至需要遠程遷移整個數據集。GVDS系統可通過統一文件虛擬視圖,以標準文件訪問接口直接跨域訪問大數據集中的任何數據,如圖12(a)所示。GVDS系統可按需實時訪問所需數據塊,而不必傳輸整個大數據集。驗證情況如圖12(b)所示。
圖12???遠程大數據集的按需實時訪問
(3)典型使用場景3:廣域分布數據的多中心協同處理
隨著科學和工程問題的復雜化,對跨域分布數據的多中心協同處理已成為未來大型應用重要的發展趨勢。為了滿足上述需求,如圖13所示,GVDS系統基于廣域分布數據的全局統一視圖支撐數據多中心協同處理。計算任務可以分布于不同的超算中心,并可直接訪問分布于不同地點的數據,數據的分布和遷移由GVDS透明地完成。
圖13???廣域分布數據的多中心協同處理
5.2 性能測試
筆者在國家高性能計算環境中進行了GVDS系統訪問性能和網絡傳輸帶寬的對比測試,采用了4種不同平均帶寬的跨超算中心鏈路進行文件讀寫壓力測試,并記錄了GVDS的文件讀寫吞吐速率與網絡傳輸帶寬比值。各超算節點間的平均網絡傳輸帶寬分別為中國科學院超級計算中心(簡稱中科院超算中心)到國家超級計算濟南中心(簡稱濟南超算中心)112 125 KB/s、中科院超算中心到上海超級計算中心(簡稱上海超算中心)82 083 KB/s、國家超級計算長沙中心(簡稱長沙超算中心)到國家超級計算廣州中心(簡稱廣州超算中心)3 887 KB/s、長沙超算中心到上海超算中心118 KB/s。圖14表明,在多種廣域網絡鏈路條件下, GVDS文件寫入性能平均能達到約80%的最大網絡傳輸速率,讀取性能平均能達到約50%的最大網絡傳輸帶寬速率。
圖14???不同數據訪問塊大小下的數據訪問性能
此外,在阿里云的5個數據中心進行了GVDS與3個網絡存儲系統的性能對比測試。5個數據中心分別位于北京、上海、青島、深圳和成都,每個中心各創建3~4臺2xLarge的云服務器(elastic compute service,ECS)實例,每臺實例擁有廣域網的32 Mbit/s帶寬。將GVDS與以下3個存儲系統進行比較:安全外殼協議文件系統(secure shell file system,SSHFS)、網絡文件系統(network file system,NFS)、OneData。筆者使用Fio生成所需類型的I/O操作,以評估所有系統的數據訪問性能。
圖15展示了多種存儲系統在廣域環境中的元數據訪問性能對比。可以看出,基于GVDS在元數據訪問方面的優化工作, GVDS的文件創建速度僅次于NFS,且文件刪除速度快于其他網絡文件系統。此外,GVDS為了優化元數據訪問性能,對目錄項元數據進行了預讀優化。這種優化在創建或刪除文件等元數據操作時會有較好的優化效果,在列文件目錄操作時會導致不必要的開銷,同時OneData實現了元數據的自管理推送更新且SSHFS對目錄項有緩存優化,因此GVDS的性能略低于OneData和SSHFS。
圖15???不同數據訪問塊大小下的數據順序訪問性能
對于順序讀、寫壓力測試,單個壓力器線程以不同的數據塊大小順序刷入10 GB的數據,而單次實驗中,壓力器讀取或寫入的數據塊的大小是相同的。如圖16(a)所示,對于數據順序寫入,當單次寫入數據塊小于256 KB時,GVDS、SSHFS、OneData的吞吐量要遠遠高于NFS。原因在于,寫入請求在NFS中串行提交、同步寫入,數據塊越小時,相同I/O量的網絡請求數量越多,而每次寫入都需要串行通過高時延的廣域網通信,從而導致了NFC較差的寫入性能。SSHFS、GVDS和OneData均選擇了回寫機制刷寫緩存到遠程數據中心,這有益于提升性能,但是違背了客戶端同步寫入的語義,引入了數據丟失的風險。為了解決這個風險,GVDS只對遠程數據中心或者訪問數據塊大小小于“帶寬×時延÷2”的請求進行回寫緩存,并且當應用程序開啟同步標志時,還會優先選擇磁盤文件作為持久緩存,盡量保證數據持久性。與此同時,在塊大小從512 KB增加到4 096 KB的過程中,NFS的吞吐量顯著增加,并且基本達到網絡帶寬瓶頸。從實驗結果可以看到,GVDS基本具有最佳的寫入性能,相比SSHFS和OneData,分別平均高9.94%和49.18%。
圖16???不同數據訪問塊大小下的數據順序訪問性能
圖16(b)顯示了順序讀取數據的實驗結果。GVDS順序讀性能相比SSHFS、OneData和NFS,分別平均高131.22%、52.84%和35.89%。當單次讀取數據塊小于256 KB時,GVDS的文件讀取性能一直有較高的優勢,這是因為GVDS針對廣域網環境特性設計了鏈式預讀機制。GVDS依賴文件的歷史訪問負載特征進行預讀判斷,相比SSHFS以及OneData的固定塊預讀機制,能更早地觸發預讀,并且兩次預讀之間沒有明顯的停頓時間。當塊大小超過256 KB時,NFS展現出比所有基于FUSE接口的網絡存儲系統更高的吞吐量。這是由于FUSE會將大塊數據讀過程切分為對多個128 KB大小固定塊的串行子過程,成倍提高了請求的總響應時間以及請求總數。而NFS的大塊數據讀子過程為并行執行,沒有該缺陷。
對于隨機讀、寫壓力測試,單個壓力器將1 GB數據隨機寫入具有不同塊大小的文件中,或從具有不同塊大小的文件中隨機讀取數據。如圖17(a)所示,隨著塊大小的增加,GVDS、SSHFS與OneData的隨機寫性能沒有明顯變化,其瓶頸均在于廣域網鏈路帶寬。其原因與順序寫入相同,三者均采用了回寫緩存以加速寫入過程,并且GVDS提供了更強的數據持久性。塊大小增加到512 KB后,NFS與其他網絡存儲系統的寫入性能基本持平,達到廣域網鏈路瓶頸。在隨機寫過程中,由于數據塊相互覆蓋的情況以及緩存導致的誤差, GVDS的寫入性能在部分測試項中略微超過了鏈路最大帶寬。
圖17???不同數據訪問塊大小下的數據隨機訪問性能
如圖17(b)所示,當數據訪問塊大小在128 KB以下時,NFS性能與SSHFS相差不大,訪問塊大小超過128 KB以后,由于FUSE的串行子過程機制,基于FUSE訪問接口的3個網絡存儲系統(SSHFS、OneData以及GVDS)表現均劣于NFS。并且在隨機讀負載下,預讀機制并沒有發揮作用,反而擠占了OneData以及GVDS的正常訪問流量,導致這兩者的隨機讀訪問性能低于同類型的SSHFS。
綜上所述,在對廣域分布數據的訪問性能方面,GVDS在順序讀寫和隨機寫性能上優于其他主流網絡文件系統,而在隨機讀性能方面仍存在進一步的優化空間。
6 結束語
GVDS是為了滿足國家高性能計算環境中對廣域分布數據的統一管理和高效訪問需求而設計并實現的跨域分布式存儲系統。GVDS不僅是國家高性能計算環境中提供基礎存儲服務的工具,還能與CNGrid基礎架構進行結合,進而豐富其數據層面的跨域協作與資源共享。
GVDS具有以下優點。
● 位于異地超算中心的異構存儲資源可以被統一管理、共享和訪問。由抽象的區域、空間以及空間內部實際目錄與文件所構建的文件系統視圖可以提供透明的跨域數據共享與隔離。
● 支持文件數據按需加載。通過數據塊粒度的數據遷移可以從遠程超算中心加載文件的任意數據片段,而不必下載整個文件,大大減少了通過網絡傳輸的數據量。
● 支持高效的數據訪問。通過預讀、副本等數據訪問性能優化方法可以支撐高效的遠程數據訪問,而且簡化了現有的顯式數據遷移和部署過程。
今后筆者將進一步優化GVDS的廣域數據訪問性能,針對隨機讀方面存在的問題開展相關的優化方法研究工作,進而使GVDS系統能有效地支撐大型計算應用的高效訪問和跨域協作。
作者簡介
肖利民(1970-),男,博士,北京航空航天大學計算機學院教授、博士生導師,計算機科學技術系主任,計算機系統結構研究所副所長,中國計算機學會(CCF)大數據專家委員會委員、高性能計算專業委員會常務委員、容錯計算專業委員會委員,中國電子學會云計算專家委員會委員,國家計算機科學技術名詞審定委員會委員,國家科技基礎條件平臺專家組成員,工業和信息化部電子科學技術委員會委員,中國工程院中國信息與電子工程科技發展戰略研究中心專家委員會特聘專家。主要研究方向為計算機體系結構、計算機軟件系統、高性能計算、云計算、虛擬化技術等。先后獲得國家科技進步獎二等獎、北京市科學技術獎一等獎、中國科學院科技進步獎一等獎、原信息產業部信息產業重大技術發明獎、科技部國家重點新產品獎等國家級和省部級科技獎勵。
宋堯(1994-),男,北京航空航天大學計算機學院博士生,主要研究方向為高性能計算、分布式存儲、分布式調度系統、存算聯動調度等。
秦廣軍(1977-),男,博士,北京聯合大學智慧城市學院講師,CCF會員,主要研究方向為高性能計算、存儲系統、大數據和機器學習等。作為項目骨干參與了國家863計劃項目、國家重點研發計劃項目、國家自然科學基金項目、北京市自然科學基金項目等。
周漢杰(1995-),男,北京航空航天大學計算機學院碩士生,主要研究方向為分布式文件系統、高性能計算、網絡安全等。
王超波(1997-),男,北京航空航天大學計算機學院碩士生,主要研究方向為分布式文件系統、高性能計算、軟件工程等。
韋冰(1990-),男,北京航空航天大學計算機學院博士生,主要研究方向為網絡存儲、數據容錯、大數據處理、分布式計算等。
魏巍(1975-),男,博士,西安理工大學計算機科學與工程學院副教授,IEEE、CCF高級會員,FGCS、AHSWN、IEICE、KSII等期刊編委會成員,IEEETPDS、TVT、TIP、TMC、TWC、JNCA和其他多個Elsevier期刊的定期審稿人。作為首席研究員和技術成員,主持了多項研究項目。主要研究方向為無線網絡、無線傳感器網絡應用、圖像處理、移動計算、分布式計算、普適計算、物聯網、傳感器數據云等。
霍志勝(1983-),男,博士,北京航空航天大學計算機學院助理研究員,作為項目主持人和項目骨干,主持和參與了博士后基金面上項目、國家重點研發計劃項目、國家自然科學基金面上項目等。主要研究方向為大數據存儲、分布式存儲系統、分布式/并行文件系統等。
聯系我們:
Tel:010-81055448
? ? ? ?010-81055490
? ? ? ?010-81055534
E-mail:bdr@bjxintong.com.cn?
http://www.infocomm-journal.com/bdr
http://www.j-bigdataresearch.com.cn/
轉載、合作:010-81055537
大數據期刊
《大數據(Big Data Research,BDR)》雙月刊是由中華人民共和國工業和信息化部主管,人民郵電出版社主辦,中國計算機學會大數據專家委員會學術指導,北京信通傳媒有限責任公司出版的期刊,已成功入選中國科技核心期刊、中國計算機學會會刊、中國計算機學會推薦中文科技期刊,并被評為2018年、2019年國家哲學社會科學文獻中心學術期刊數據庫“綜合性人文社會科學”學科最受歡迎期刊。
關注《大數據》期刊微信公眾號,獲取更多內容
總結
以上是生活随笔為你收集整理的GVDS:面向广域高性能计算环境的虚拟数据空间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Navicat中直接向表里添加数据
- 下一篇: jsp设置背景图片并使得图片扩大到整个屏