當前位置:文書都 >

實用範文 >論文 >

網絡安全設備聯動中小文件存儲優化方法論文

網絡安全設備聯動中小文件存儲優化方法論文

摘要:網絡系統在運行過程中會產生大量日誌,採用Java編程技術將各安全設備日誌轉換為XML文件。在對日誌文件存儲過程中,現有的存儲系統硬件成本高,擴展能力差,數據並行訪問效率低,難以滿足網絡安全設備聯動系統的需求。因此,該文采用基於HDFS的雲存儲系統對日誌文件進行存儲。為了提高基於HDFS的雲存儲系統中小文件存儲效率,該文設計了雲存儲系統中小文件存儲的優化方案,主要在小文件合併和小文件檢索方面做了優化。該方案結合網絡安全設備聯動系統中日誌文件的特點,首先是根據不同設備的文件進行分類,然後根據小文件在合併後的大文件中的偏移量進行檢索。最後採用3組文件集合對優化方案進行了測試,實驗結果表明,在不影響存儲系統運行狀況的基礎上,該方案提高了小文件的存儲效率和讀取效率。

網絡安全設備聯動中小文件存儲優化方法論文

關鍵詞:網絡安全;小文件;Hadoop;存儲優化

中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2015)35-0010-02

1引言

網絡系統在運行過程中會產生大量的系統日誌、應用日誌、安全日誌和網絡日誌,這些日誌包含着關於網絡運行、安全及狀態的數據。隨着採集日誌的大規模增長,現有的存儲系統硬件成本高,擴展能力差,數據並行訪問效率低,難以滿足網絡安全設備聯動系統的需求。因此,提供一種更高性能、更低成本、更好可靠性的易於管理的存儲平台,才能夠幫助該系統用盡可能低的成本應對日益增長的數據存儲需求。HDFS採用主從式架構設計模式(master/slave),一個名稱節點(NameNode)和若干數據節點(DataNode)構成HDFS集羣[1]。HDFS的這種單名稱節點的設計極大地簡化了文件系統的結構,然而也因此引發了HDFS的小文件存儲效率低的問題。HDFS設計之初的目的是存儲大量的大文件,所以需要採用分塊策略先將每個文件分塊,保存機制是每個文件都佔用一個或多個塊。因為HDFS中的每個目錄和文件的元數據信息都存放在名稱節點的內存中,如果系統中存在大量的小文件(指那些比HDFS數據塊(默認為64MB)小得多的文件),則無疑會降低整個存儲系統的存儲效率和存儲能力。然而,在網路安全設備聯動系統[2]存在着大量的小文件。大量的小文件存在於雲存儲系統中無疑會降低整個系統的I/O性能。針對這一問題,本文提出雲存儲中小文件的合併處理方法,以提高小文件的存儲效率,提高整個系統的I/O性能。

2整體方案優化設計

文件的優化方案主要包括4個部分:數據預存儲節點的功能設計,小文件合併方案,小文件索引結構的設計以及小文件合併過程的整體設計。

2.1數據預存儲節點功能設計

數據預存儲節點是在HDFS架構的基礎上新增的節點,它位於客户端與名稱節點和數據節點之間,主要實現對存儲的文件進行預處理,根據文件大小,判斷是否屬於小文件,對於小文件主要完成存儲前的合併,生成索引以及小文件檢索時的文件分離等功能。增加數據預存儲節點之後,在數據存儲的過程中,數據的'流向由從客户端直接到數據節點變成了由客户端先到預存儲節點再到數據節點。

2.2小文件合併算法設計

當客户端寫入小文件時,首先根據小文件的類型對數據預存儲節點進行分組。然後分別將每個分組中的小文件合併成大文件,此時,生成相關小文件索引信息及元數據信息。最後將合併後的文件和相關的元數據,按照原HDFS寫入文件的方式一同上載至HDFS中,其中第二類元數據信息由數據預存儲節點進行存儲,第一類元數據信息由名稱節點進行存儲,數據節點存儲合併成的大文件[3]當客户端需要讀取某個小文件時,從名稱節點獲取小文件所在大文件的元數據信息,然後從數據預存儲節點獲取第二類元數據信息,從數據節點獲取小文件所在的大文件,並在接口中將大文件解檔為若干小文件,並將這些小文件緩存在客户端。為了便於算法描述,對算法裏的符號進行定義:File[type][MD5][key]——緩衝區中待合併的文件;type——日誌文件的類型(1:主機日誌;2:sort日誌;3:防火牆日誌;4:交換機日誌);MD5——文件的MD5值;fi——要合併的第i個文件;xj——合併第j類文件個數。分組合並算法描述如下:(1)初始化,定義一個三維數組File[type][MD5][key],type初始化為1,key值初始化為文件的大小;(2)讀入緩衝區的所有文件大小,更新數組File[type][MD5][key],根據文件的類型更新數組的type值,初始化i=1;(3)採用冒泡排序,分別將數組File[i][MD5][key]從大到小進行排序。首先判斷File[i][MD5][key]的大小,如果所有文件的總大小大於64M,開始進行合併,否則退出程序,i++,等待下次分組合並調度;(4)從最大的文件fi開始分組。如果放入文件fi後,此類文件的總大小小於64M,則存放下一個文件,從數組中把文件fi的記錄刪除,循環這個過程,直到所有的File[i][MD5][key]文件都合併到一起;(5)計算每類文件合併後的大小,文件大小達到63M的調用HDFS命令將文件上載到HDFS上,大小小於63M的文件,再從緩衝區中查找文件進行裝入,返回(2);(6)上載成功;主要是考慮到用户的訪問效率,算法中採用將同類日誌文件進行分組,無論從寫入小文件,還是從讀取小文件方面,都能大大提高HDFS的性能:首先減輕了名稱節點的負擔,在讀取小文件方面,不用連接數據節點讀取,減少文件讀寫的I/O操作,節約大量數據傳輸時間,極大地節省了網絡通信開銷,降低了HDFS的訪問壓力,提高客户端訪問文件的速率和性能。當用户刪除數據時,把合併後的文件取回數據預存儲節點,進行分解,刪除指定文件,再與緩存區中已有的文件進行合併。用户查詢文件時,需要對HDFS索引進行查詢,同時也需要查詢緩衝區裏面的文件。

2.3小文件索引結構的設計

在小文件合併之後,僅僅根據名稱節點中存儲的元數據信息不能檢索到小文件,為了提高檢索效率,需要為所有小文件構建相應的索引,使用户能夠通過索引快速的檢索到小文件。小文件索引信息是在小文件合併成大文件之後生成的,保存在數據預存儲節點中,通過此類元數據信息,再結合名稱節點中的第一類元數據信息,才能正確找到小文件的存儲位置。所以小文件的索引信息對於後期的小文件檢索極其重要,其中要包含小文件的一些重要信息:File_name類型為String,表示小文件名稱;File_size類型為int,表示小文件大小;File_type類型為int,表示小文件類型;Merge_file_nam類型為string,表示小文件合併成大文件後的名稱;File_offset類型為int,當前小文件在合併文件中的偏移量;time類型為long,表示文件的寫入時間;If_use類型為bool,表示文件是否存在。

2.4小文件合併過程的整體設計

大致流程如下:當需要寫入文件時,首先將數據傳輸到數據預存儲節點,判斷文件大小,如果文件大小超過了HDFS數據塊的大小,則直接存入數據節點,並將元數據信息寫入到名稱節點;如果需要寫入的文件屬於小文件,則先判斷小文件的類型,然後根據2.2中設計的小文件合併算法將小文件合併,生成索引信息,在這個合併的過程中,不斷地將正在合併的小文件索引信息插入到小文件索引信息列表中,當合並文件塊達到合適的大小時,客户端將寫文件請求發送到名稱節點將合併後的文件存儲到相應的數據節點中。

3實驗驗證

實驗需要搭建Hadoop集羣,集羣中包括4個節點:一台Na-meNode,二台DataNode,以及客户端用來提交數據的NameNode。使用VMware7.0來模擬Linux環境[4,5台機器上模擬海量小文件的存儲和訪問操作。本文隨機選取了10000個xml日誌數據文件,文件大小分佈情況為:200kB佔1%,300kB佔2%,400kB佔10%,500kB佔20%,600kB佔30%,700kB佔20%,800kB佔10%,900kB佔4%,1000kB佔3%,可見文件大小集中在400kb到1000kb之間。為了直觀的反應優化方案在處理小文件和大文件時的系統性能,本文在測試數據中分別選取了100、1000、10000組數據,按照以上測試和執行程序步驟,對文件寫入時間進行測試,測試結果如圖1所示。實驗結果表明,隨着文件數量的增多,寫入文件所用時間增長趨勢的變化緩慢,説明本文設計的Hadoop小文件存儲優化方案在寫入海量小文件時性能更高。

4結論

本文首先對網絡安全設備聯動系統的數據轉化為XML文檔,然後對文件的特點及文件大小的分佈進行了分析。針對HDFS對小文件存儲效率低的問題,對小文件存儲方案進行了優化,設計了小文件分組合並的算法。最後搭建了Hadoop集羣環境,對改進的方案進行測試,實驗結果表明,本文設計的Hadoop小文件存儲優化方案在寫入文件所用時間增長趨勢的變化緩慢,説明本方案在寫入海量小文件時具有很高的性能,在不影響存儲系統運行狀況的基礎上,該方案提高了小文件的存儲效率和讀取效率。

參考文獻:

[1]廖彬,於炯,張陶,楊興耀.基於分佈式文件系統HDFS的節能算法[J].計算機學報,2013(05):1047-1064.

[2]傅穎勛,羅聖美,舒繼武.安全雲存儲系統與關鍵技術綜述[J].計算機研究與發展,2013,50(1):136-145

[3]DLTennenhouse,JMSmith,WDSincoskie,veyofActiveNetworksResearch[J]CommunicationsMagazine,1997,35(l):80-86.

[4]許春玲,張廣泉.分佈式文件系統HadoopHDFS與傳統文件系統LinuxFS的比較與分析[J].蘇州大學學報(工科版),2010,04:5-9+19.

[5]崔傑,李陶深,蘭紅星.基於Hadoop的海量數據存儲平台設計與開發[J].計算機研究與發展,2012(S1):12-18.

  • 文章版權屬於文章作者所有,轉載請註明 https://wenshudu.com/shiyongfanwen/lunwen/ox30oo.html
專題