白祎花



摘 要:?設計了一款網絡分布式文件系統。該系統基于軟件定義網絡,通過充分應用其底層網絡動態數據資源完成實時數據傳輸最佳路徑的獲取,使分布式文件系統的性能通過有效導引分布式文件系統中的大數據流而得以顯著提高。通過構建的分布式文件系統原型對文件讀寫及修復操作進行測試,同傳統網絡環境相比,基于軟件定義網絡環境的分布式文件系統的讀寫及修復能力均得以顯著提升,更適用于網絡數據流量大且異構明顯的情況。
關鍵詞:?分布式文件系統; 軟件定義網絡; 實現路徑
中圖分類號: TP 316.4? ? ? 文獻標志碼: A
Design and Implementation Path of Distributed File System Based on Network
BAI Yihua
(School of Administration, Shanxi Technical College of Finance & Economics, Xianyang, Shanxi 712000, China)
Abstract:
This paper mainly designs a network distributed file system. The system is based on the software-defined network. By fully applying the underlying network dynamic data resources to complete the acquisition of the best path for real-time data transmission, the performance of the distributed file system is effectively guided. The large data stream in the distributed file system is significantly improved. The file read and write and repair operations are tested by the built-in distributed file system prototype. Compared with the traditional network environment, the read/write and repair capabilities of the distributed file system based on the software-defined network environment are significantly improved, and are more suitable for the network. The case where the data traffic is large and the heterogeneity is obvious.
Key words:
distributed file system; software-defined network; implementation path
0 引言
快速發展的移動互聯網帶來了網絡數據量的爆炸式增長,在復雜龐大的數據中通常隱藏著巨大的潛在價值,需采用技術手段收集、分析、挖掘和處理以獲取有價值的信息,傳統的超級計算機已經難以滿足處理海量數據的需求,增加了處理的時間和經濟成本還,上層用戶需求對網絡架構提出了更高的要求,在多個設備上存儲數據可有效解決這些問題,隨著新型技術的普及應用(包括云計算、虛擬化等)網絡中協議復雜程度不斷提高,對網絡服務質量的要求隨著不斷提高。
1 現狀分析
提高底層網絡的智能程度以迅速感知并適應上層應用的變化,是提升應用性能及用戶體驗的有效手段,因此如何高效的管理分布式的存儲設備成為急需解決的問題,構建分布式文件系統使各存儲設備協同工作并將良好的數據訪問性能提供給用戶成為研究的重點。通過了解和控制底層網絡狀況并在此基礎上對其核心操作算法進行改進是提升DFS性能的有效手段,將 SDN應用于數據中心網絡中的研究較多,例如,對基于流的網絡監控在OpenFlow網絡中的實現路徑的研究(包括吞吐率、延遲和數據包丟失等),實現細粒度的數據中心流量工程的建立;Google B4作為首個在實際系統中應用軟件定義網絡,對在全球數據中心傳輸和備份數據及其對WAN 范圍流量工程的要求進行了研究,并設計了基于SDN的負載均衡方案以便提供更好的云服務[1]。將網絡資源服務(可配置)利用軟件定義網絡提供給用戶,獲取實時網絡情況為大數據應用創造有利條件。本文完成了基于軟件定義網絡環境的分布式文件系統原型的構建,采用彈性樹修復(FTR)算法,針對異構的存儲節點基于網絡編碼思想對實際存儲環境異構性(包括數據存儲量和可用帶寬等)作為重點考慮。
2 系統設計
2.1 軟件定義網絡和分布式文件系統的連接
軟件定義網絡能夠高度抽象和解耦網絡(包括設備控制層、數據轉發層等),結合高度虛擬化的網絡硬件,實現對整個網絡通過軟件編程重新定義,能夠獲取動態的網絡變化信息,有效彌補了傳統網絡的不足,提高了網絡的智能性和靈活性,SDN可實時監控和管理網絡資源,將具有參考價值的信息提供給上層應用,根據上層應用要求實時配置網絡資源。由網絡文件系統發展而來的分布式文件系統(DFS)屬于網絡資源密集型應用,具備強大的數據存儲能力及可擴展性,分布式文件系統通常由多個存儲節點、一個以上的控制節點及運行軟件構成,整個數據中心受到分布式文件系統性能的直接影響。SDN的接口結構同DFS均采用C/S架構與集中控制易于結合使用,SDN具備底層網絡通信及自定義數據流向(以上層業務邏輯為依據)功能。DFS的節點同SDN網絡通過OpenFlow(SDN網絡的南向接口協議)交換機互連,由SDN Controller控制DFS產生的數據流量,OpenFlow交換機以流表(由多條由匹配字段及轉發操作構成的流表項按優先級排列組成)作為核心,在設計Controller和DFS的NameNode這兩個中央控制的節點時采用了結合式和分離式,結合式在同一邏輯節點上實現2個中心控制節點(作為不同的進程),信息交換以進程間通信的方式完成,然后通過分離式在兩個邏輯節點上實現將2個中心控制節點(位于不同的實體機)[2]。
2.2 SDN在分布式文件系統中的應用
通過SDN 網絡對上層應用進行及時感知和反饋以優化系統的性能,在SDN Controller通過一組 API即中間件(Middleware)實現對DFSNameNode的調用,包括底層網絡信息的獲取及按照指定路徑發送數據等,如圖1所示[3]。
本文的設計特點在于:(1)在后臺基于 SDN Controller對動態更新的拓撲流圖(底層網絡,包括連接信息、各節點信息、節點間的最短路徑信息等)進行維護,以便真實反映出底層網絡的變化情況,每次查詢可在常數時間內給出答復,同時提供相應的API訪問DFS;(2)OpenFlow協議中存在包括id及priority字段在內的VLAN標志,可實現包括傳統網絡隔離在內的多種功能,通過匹配這2個字段對特定的流表項進行指定,實現在保證已有網絡功能的基礎上特定流量按指定路徑的傳輸過程;(3)在分布式文件系統插入流表有超時機制,需通過計算估計超時時間,從節點A、B簡的路徑經過交換機即會下發對應流表,通過本次傳輸時間和會話保護時間相加得到各流表項的超時時間;(4)本文分布式文件系統中包含控制流(包括指令交互流和元數據信息交換流,流量小而持續)和數據流(流量大而集中),在本文的系統中只對優化路徑在數據流傳輸前進行計算并下發流表;(5)本文設計包括提供控制流的通信功能的傳統基于IP 路由、提供系統數據流通信功能的基于SDN的智能路由兩種路由策略[4]。
2.3 系統架構設計
本文所設計的分布式文件系統的整體架構,如圖2所示。
SDN網絡結構位于中間層,其主要功能在于底層網絡數據的傳輸;圍繞中間層部署的是DFS的各種角色節點,客戶端(Client)和數據節點(DN,以Rack為單位部署)通過OpenFlow交換機實現互連,各DataNode(位于DFS中)在數據中心中均同ToR交換機連接,若各交換機均支持OpenFlow協議則DFS中的網絡流量能夠運行于SDN網絡中,即可實現監控和管理等優化效果,本文在同一臺服務器上實現NameNode(命名空間)和Controlle(控制點)的整合即ControlNode(控制節點)[5]。
3 網絡分布式文件系統主要功能的實現
(1) 讀文件操作
在 SDN 網絡上完成全部網絡通信過程,文件讀寫的具體步驟為:首先由Client 將具體的一個讀文件請求發送至ControlNode,并由其負責對該文件信息進行查詢完成數據傳輸的起始和目的節點的確定,在此基礎上完成最佳路徑的計算及流表的下發,實現路徑的部署;接下來ControlNode將處理完的需讀取文件的信息返回給用戶Client,提示文件可開始讀取;然后Client將數據傳輸請求發送給目標 DataNode ,DataNode完成處理后將數據返回給Client ,以剛建立的路徑作為其數據傳輸路徑;接收到數據后Client對其進行解碼、校驗后將讀取成功標志返回至ControlNode,ControlNode據此將本次建立的路徑刪除[6]。
(2) 寫文件操作
結合SDN 的文件上傳功能,寫文件的具體步驟為:ControlNode在接收到由Client發送的寫文件請求后,據此完成目標存儲節點的確定及用戶同目標節點間最佳路徑的計算,并向交換機下發流表;接下來Client會接收到ControlNode返回的成功準備路徑標志,并在此基礎上完成同目標存儲節點間連接的建立以有效滿足數據傳輸需求;數據中心中接收到Client數據傳輸的首個存儲節點后,接下來通過Pipeline形式的運用完成數據到其他節點的傳輸過程;ControlNode在接收到成功寫數據標志后(由目標存儲節點返回)對新添加的流表項進行刪除操作[7]。
(3) 文件修復操作
本文文件系統采用了FTR 算法對文件進行修復,文件修復的具體步驟為:完成一條修復任務的讀取后(位于修復隊列中),修復的目標節點(newcomer)的選擇及數據提供節點的確定均通過 ControlNode完成從而計算出最佳路徑并下發流表,在此基礎上完成對數據傳輸路徑的部署;參與修復的各節點會接收到來自ControlNode的開始修復消息,據此完成實際的數據傳輸和計算過程;最終ControlNode會接收到來自Newcomer的修復完成消息,然后對建立的路徑進行刪除操作[8]。
4 系統測試及結果分析
4.1 實驗設計
為了測試本文所設計的分布式文件系統的有效性,通過一個系統原型的建立與實現,客戶端和數據存儲節點采用PC四臺(搭載Ubuntu系統),具體配置如表1所示。
系統主要由ControlNode(包括Floodlight Controller和NameNode)、SDN網絡、DataNode部分及Client構成,網絡的動態拓撲流圖位于對底層OpenFlow交換機起到控制作用的Controller節點上,SDN網絡使用輕量級的網絡仿真平臺Mininet(含有強大的API,支持OpenFlow協議)搭建實現虛擬較為真實的網絡環境,Mininet的VM使用PC運行。將文件的讀、寫、修復(FTR 算法)操作作為主要測試對象完成實驗[9]。
4.2 實驗結果分析
測試文件讀寫時,基于IP的路由只以鏈路連接信息為依據計算最短路徑路由,基于可用帶寬的路由的最短路徑根據鏈路上帶寬的權值計算。帶寬隨機分布于指定范圍,多次測量文件取平均值,針對帶寬差異性的測試結果,如圖3所示。
每隔十秒微小改動網絡的帶寬,多次測量大小相同的文件取平均值,采集拓撲信息頻率對文件讀寫的影響情況如圖4所示。
測試文件修復時,針對不同的參數對比了FTR 算法和 STAR算法,如圖5所示,證明了FTR算法更適用于SDN提供的網絡數據[10]。
實驗結果表明使用SDN提供的底層網絡數據使分布式文件系統的讀寫性能得以顯著提高,計算最短路徑和下發流表所需時間對系統不產生影響的同時提高了系統效率,每次只需查詢和少量的計算,文件修復的測試對比結果表明在網絡環境異構情況下使用FTR算法可顯著較少數據修復時間,證明了基于SDN的分布式文件系統的處理效率得以顯著提升,能夠達到控制整個網絡的目的。
5 總結
傳統分布式文件系統對底層網絡考慮不足,降低了其讀寫性能及文件修復性能,本文通過設計分布式文件系統原型有效實現了讀/寫文件和文件修復的基本操作功能,以SDN
的底層網絡信息為依據優化算法使系統性能得以顯著提升,實驗測試結果表明基于軟件定義網絡環境的分布式文件系統的讀寫及修復能力均得以顯著提升,具有較高的實際應用價值。
參考文獻
[1] 林朝熾.基于Elastic Stack的分布式數據采集與分析平臺探索[J].網絡安全技術與應用,2019(2):378-379.
[2] 陳付梅,韓德志,畢坤,等.大數據環境下的分布式數據流處理關鍵技術探析[J].計算機應用,2017(3):620-627.
[3] Sun Lili, Yang Yang, Xiong Zenggang, et al. Intelligent Block Placement Strategy in Heterogeneous Hadoop Clusters[J]. Journal of Convergence Information Technology, 2013(8):1142-1150.
[4] S R Balasundaram, S Vengadeswaran. An Optimal Data Placement Strategy for Improving System Performance of Massive Data Applications Using Graph Clustering[J].International Journal of Ambient Computing and Intelligence, 2018, 9(3):15-30.
[5] Xiong Fu, Wenjie Liu, Yeliang Cang, et al. Optimized Data Replication for Small Files in Cloud Storage Systems[J]. Mathematical Problems in Engineering, 2016(8):837-894.
[6] 劉澤華,趙文琦,張楠.基于Scrapy技術的分布式爬蟲的設計與優化[J]. 信息技術與信息化, 2018(Z1):121-126.
[7] 徐時芳,羅曉賓,陳陽華.基于Spark的分布式大數據分析建模系統的設計與實現[J].現代電子技術,2018(20):172-175.
[8] 廖先富,劉俊男.基于Django與HDFS的分布式三維模型文件數據庫構建[J].電子技術與軟件工程,2018(18):189-191.
[9] 鄒振宇,鄭烇,王嵩,等.基于HDFS的云存儲系統小文件優化方案[J]. 計算機工程, 2016(3):34-40.
[10] 袁麗娜.HDFS數據副本均衡放置策略的改進[J]. 計算機科學, 2017(S2):397-400.
(收稿日期: 2019.07.10)