搜狐首頁 新聞 宮主大人2

手機搜狐

SOHU.COM

浪潮AS13000爲你破解小文件存儲的大難題

搜狐新聞 07-16 17:31

導語:海量小文件的元數據管理、存儲性能以及訪問效率等問題是目前學術界和工業界公認的難題。浪潮AS13000軟件定義存儲系統利用包括小文件聚合功能在內的獨特技術,幫助用戶應對存儲資源浪費、效率低下等諸多挑戰,成就大數據與人工智能時代的企業核心競爭力。

海量小文件存儲訪問帶來公認難題

當今世界,互聯網、大數據應用迅猛發展,物聯網、人工智能、雲計算 技術日新月異,隨之而來的是各種企業和個人應用持續不斷地産生億級甚至是百億級的海量小文件。這些小文件的元數據管理、存儲性能以及訪問效率等問題因而成爲學術界和工業界公認的難題。

例如,國內目前最大的電商網站淘寶存儲的商品圖片超過 200 億張,這些文件的平均大小僅爲 15KB 左右,國外著名的社交網站Facebook 存儲的圖片總量更是超過了600億張;在線視頻播放服務中,每個視頻會被切片服務器分割成 1MB 左右的分片文件,一部動畫電影所包含的圖片文件可能會超過 500 萬張,平均大小爲15KB;一些在線閱讀圖書每頁內容均會被掃描成大約幾十KB的圖片文件……

因此,在購物網站、廣電、網絡視頻等場景下的應用,存儲系統中小文件數量衆多,其空間占用一般在1M以下,操作特征爲一次寫入,多次讀取。由于每個小文件存儲都會執行一次全寫流程,操作頻繁,使得分布式文件系統的磁盤壓力劇增並導致以下兩方面的問題:

資源浪費:海量小文件的數據讀取時,往往每個小文件的大小都小于一次數據傳輸的最小塊大小。也就是無論真正有用的數據量多大,都會獲取固定大小的數據,這使得有用數據占獲取數據量比例過低,從而導致內存、帶寬的浪費。

高訪問延遲:當用戶讀取大量小文件時,首先選擇與元數據服務器交互,當訪問過于集中、信息交互過于頻繁時,所産生的延遲顯而易見。並且,由于很多系統目前並沒有提供針對高訪問延遲的預取功能,在數據存儲中沒有考慮文件之間的關聯性,因而加劇了延遲問題。

浪潮AS13000二大必殺技應對海量小文件存儲挑戰

針對上述難題,浪潮AS13000軟件定義存儲系統推出了自己的獨門絕技,來幫助用戶應對典型應用場景下的存儲挑戰。這其中包括:面向全局存儲資源的條帶化,確保應用數據的並發寫入、讀取;提供小文件聚合功能,有效降低小文件寫入磁盤次數、減輕寫數據壓力;提高磁盤使用率,讀小文件時將所在對象讀入緩存,提高讀命中率、縮短讀I/O路徑。本文重點闡述浪潮AS13000在小文件IO優化方面的技術優勢。

技術優勢一::小文件聚合解決存儲性能大難題

首先,浪潮AS13000小文件聚合技術將碎片化小文件聚合成一個大文件,在數據讀寫時提前讀取相關數據,提高緩存命中率,使得小文件(128KB以內)讀寫性能提高100%,讀集群性能提高50%。

圖1:小文件聚合技術示意圖
圖1:小文件聚合技術示意圖

原因在于,相比小文件,聚合文件在寫入時大幅減少了數據寫OSD(基于對象的存儲設備)的次數,減少了OSD的寫入壓力,因而大大減少了客戶端對本地緩存(內存)的使用。小文件順序寫時,數據寫OSD次數分別可以減少99.9%(4KB),98.4%(64KB),96.8%(128KB)。

AS13000在小文件順序讀時,亦可以有效縮短IO路徑。原因是,在聚合條件下,小文件分別可以獲得99.9%(4KB),98.4%(64KB),96.8%(128KB)的緩存命中率,從而縮短IO路徑,提升讀文件性能,小文件隨機讀的緩存命中率也能達到85%以上。

其次,以重新寫代替修改寫,降低寫延遲。由于小文件一般情況下一次寫操作即可完成,同時爲了降低複雜度,AS13000對于已下盤到聚合文件的小文件不采取修改寫方式,而是采取"讀取源文件-刪除聚合文件中的源文件-重新寫普通文件"的方式進行修改寫入,以降低寫延遲。第三,建立智能定時掃描、碎片整理、垃圾清理機制,提高存儲空間利用率。在聚合文件中,多個源文件共用一個對象,刪除源文件並不能真正釋放所占用的空間,所以導致存儲空間的浪費;同時,源文件數量的減少還導致在讀取文件時緩存命中率降低,影響讀性能。爲此,AS13000采用可配置的定時掃描聚合文件信息:聚合文件的使用率低于p(設定值)且t時間(設定值)內沒有修改過,則將聚合文件放入清理隊列;掃描處理完所有聚合文件,若清理隊列有需要清理的聚合文件,則觸發碎片整理,從而提高空間利用率。

垃圾清理的任務就是計算聚合文件中有效數據在文件總大小中的占比,當低于設定的阈值,且當聚合文件在t時間內無修改時,系統對聚合文件進行清理,以提高存儲空間利用率、提升小文件讀性能。

圖2:聚合文件使用率低于p值時進行垃圾清理,重新寫入新聚合文件
圖2:聚合文件使用率低于p值時進行垃圾清理,重新寫入新聚合文件

技術優勢二:通過數據預讀提高讀取速度

浪潮AS13000在讀取某個目錄下的文件時,會順序預加載該文件後面的幾個文件內容到緩存中,以加快其讀取速度;此外,還使用多節點並發讀操作,以加快預讀速度。

圖3:數據預讀技術加快存儲數據讀取速度
圖3:數據預讀技術加快存儲數據讀取速度

同時,在非同步讀取目錄下的文件時,AS13000還會觸發對其後續文件的讀請求,且這些讀請求是異步的,不影響本次用戶讀操作的返回。如果用戶緊接著讀取下一個文件,且此操作不是同步操作,那麽就可以直接將本地緩存的數據讀出,從而避免了與OSD的交互,提高了性能。

與此同時,在預讀文件時,若有對該文件的寫入操作,AS13000會把當前讀文件放入到等待讀隊列中並返回,等寫完成後再發信號通知重新讀該文件,並將之放入到本地緩存,從而提高用戶讀取速度。

由于上述獨特的技術機制,浪潮AS13000軟件定義存儲産品很好地解決了小文件讀寫速度慢、訪問延遲高、資源浪費等問題,幫助廣電、電商、網絡視頻等用戶從容應對海量小文件存儲與訪問挑戰。目前,AS13000系統已經在中國資源衛星應用中心、國家廣電總局、濟南商行、中國移動、成都交通等金融、電信、政府、公安、大企業等行業客戶中得到廣泛應用,充分驗證了其領先技術。未來,浪潮AS13000軟件定義存儲將繼續引領大數據與人工智能時代的存儲技術,爲用戶增加其企業的核心競爭力不斷創新。

小編:李俊鵬

精選