国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種小文件合并存儲的方法

2021-01-18 03:37王海霞趙正軍
現(xiàn)代計算機 2020年32期
關(guān)鍵詞:空閑客戶端流程

王海霞,趙正軍

(1.中國電信股份有限公司研究院,廣州 510630;2.廣州智光自動化有限公司,廣州 510760)

0 引言

隨著互聯(lián)網(wǎng)和信息技術(shù)不斷發(fā)展,數(shù)據(jù)信息對經(jīng)濟和社會生活產(chǎn)生重大影響,我們進(jìn)入了一個信息爆炸的時代,每個行業(yè)每天都在制造和產(chǎn)生大量數(shù)據(jù)。IDC白皮書預(yù)測到2025年,全球的數(shù)據(jù)總量將高達(dá)163ZB。尤其是物聯(lián)網(wǎng)、5G和人工智能等新技術(shù)等各種應(yīng)用產(chǎn)生的數(shù)據(jù),呈現(xiàn)指數(shù)級增長,甚至可能會涌現(xiàn)高達(dá)百億級的海量小文件。海量小文件(Lots Of Small Files,LOSF)在數(shù)據(jù)訪問和存儲等方面面臨巨大的挑戰(zhàn),日漸成為業(yè)屆公認(rèn)的難題。

海量小文件問題簡稱LOSF,通常是指文件大小在1MB以內(nèi),數(shù)量級別在百萬及以上。典型應(yīng)用場景,例如我們生活中常用的最大電子商務(wù)網(wǎng)站淘寶,系統(tǒng)平臺上保存大量的圖片文件,平均大小僅為15KB,總量至少超過200億張。還有著名的社交網(wǎng)站Facebook,系統(tǒng)存儲了600億張以上的圖片。還有動漫渲染的后期制作過程中需要大量的視音頻素材,這些文件的大小都集中在10-20KB之間,數(shù)量通常超過500萬個。

目前的文件系統(tǒng),例如本地文件系統(tǒng)、分布式文件系統(tǒng)等,在數(shù)據(jù)管理、數(shù)據(jù)存儲和緩存管理等實現(xiàn)方式和策略都是針對大文件設(shè)計的,例如GlusterFS、GFS、HDFS,海量小文件在現(xiàn)有的文件系統(tǒng)的存儲效率比較低,甚至無法實現(xiàn)快速訪問。

1 LOSF優(yōu)化策略

1.1 硬件優(yōu)化

如果忽略成本的因素,最直接的優(yōu)化策略就是升級硬件配置,通過降低數(shù)據(jù)訪問時間來提高LOSF性能。例如,存儲介質(zhì)用SSD替換原有的機械硬盤,或者增加存儲的Cache,或者采用分層存儲的部署,這樣可以大大提升IOPS/OPS的讀寫性能;或者采用處理性能更強的CPU,直接有效地提升并發(fā)處理能力及I/O訪問速度;還可以增大內(nèi)存容量,顯著提高數(shù)據(jù)讀寫緩存命中率;以及使用傳輸效率更高的網(wǎng)絡(luò)設(shè)備,網(wǎng)絡(luò)訪問的帶寬高,延時小,這樣事務(wù)并發(fā)處理效率高,數(shù)據(jù)訪問的吞吐量大。硬件優(yōu)化的核心思想,就是通過提升硬件的性能,消除I/O物理通道上的障礙,但是代價是成本較高。

1.2 Cache 管理

Cache技術(shù)的優(yōu)化思路是用空間換取時間,通過提高數(shù)據(jù)訪問的緩存命中率,突破數(shù)據(jù)訪問的時間和空間的限制,提升文件訪問的性能。Cache技術(shù)可以應(yīng)用到多個領(lǐng)域,例如CPU的Cache、存儲介質(zhì)Cache和文件系統(tǒng)的Cache等。Cache技術(shù)的特點是先將數(shù)據(jù)集中讀寫到Cache中,然后再將數(shù)據(jù)用異步的方式移到穩(wěn)定的存儲介質(zhì)上。Cache技術(shù)通過異步的數(shù)據(jù)存取的模式來解決數(shù)據(jù)高并發(fā)訪問和延時的問題,有效減小存儲介質(zhì)的訪問次數(shù),來進(jìn)一步提高存儲的效率。但是Cache容量不能無止境的增加,當(dāng)達(dá)到一定閾值時,即便再繼續(xù)增大Cache容量,Cache的命中率也不會有顯著提高。

Cache技術(shù)對訪問過的數(shù)據(jù)進(jìn)行短時間的保留,但是如果數(shù)據(jù)更新頻繁,緩存在性能改善方面的影響不再明顯,因此針對大量小文件的訪問,可以采用先預(yù)測頻繁訪問的文件集合,預(yù)先讀到Cache系統(tǒng)中,有效提高系統(tǒng)存儲的性能。預(yù)存取是一種主動緩存的技術(shù),它充分利用數(shù)據(jù)的空間局部性,對未來可能發(fā)生的數(shù)據(jù)訪問請求進(jìn)行預(yù)測,在實際訪問之前讀取數(shù)據(jù)并緩存,方便用戶快速訪問,有效減少數(shù)據(jù)訪問的時延。對于用戶來說,不是所有的預(yù)測都是有效的,正確的預(yù)測可以提升系統(tǒng)的性能,而不正確的預(yù)測就會造成Cache的浪費,I/O帶寬的占用,還有數(shù)據(jù)訪問的延時。

1.3 小文件合并存儲

對于大量小文件而言,可以采用小文件合并存儲的優(yōu)化策略,首先,減少元數(shù)據(jù)數(shù)量。先將多個小文件合并成一個大文件,通過減少文件數(shù)量來提升元數(shù)據(jù)的訪問和查詢效率,減少文件讀寫的I/O操作次數(shù),節(jié)約數(shù)據(jù)傳輸?shù)臅r間。合并成大文件存儲在文件系統(tǒng)上,可以降低文件系統(tǒng)的I/O的壓力,提升存儲性能。在小文件合并存儲的同時,會生成索引文件,訪問數(shù)據(jù)時通過索引來查找,索引文件可以先預(yù)存到Cache中,這樣讀寫小文件時,只需要一次I/O就可實現(xiàn)。

對比傳統(tǒng)的文件系統(tǒng),文件的元數(shù)據(jù)和數(shù)據(jù)是存儲在文件系統(tǒng)的不同的地方,而小文件合并存儲的方式是將元數(shù)據(jù)和數(shù)據(jù)連續(xù)存儲在大文件中,這樣增加了單個小文件內(nèi)部的數(shù)據(jù)局部性,存儲系統(tǒng)上的I/O方式由隨機轉(zhuǎn)換成了順序,大大提高I/O讀寫性能。此外,采用小文件單獨存儲,磁盤上會產(chǎn)生大量的碎片。采用小文件合并存儲的方式,磁盤上的碎片會隨著文件數(shù)量大幅減少而降低,有效提高LOSF存儲效率。

傳統(tǒng)的文件系統(tǒng),系統(tǒng)讀寫文件時,主要的系統(tǒng)開銷在open調(diào)用方面,例如路徑查找和路徑解析。采用小文件合并存儲的機制,I/O訪問流程也會發(fā)生變化,多個小文件合并成一個大文件,open系統(tǒng)調(diào)用的開銷轉(zhuǎn)換成了seek操作,先訪問Cache中的索引,再在大文件對應(yīng)的位置上查找,節(jié)省了之前的大部分的系統(tǒng)調(diào)用的開銷。

小文件合并存儲的方式,對于存在大量修改和刪除操作的存儲系統(tǒng)不是很適用。文件在修改和刪除操作時,存儲系統(tǒng)會產(chǎn)生大量碎片,執(zhí)行碎片整理,又會產(chǎn)生額外系統(tǒng)開銷。如果不進(jìn)行空間整理,采用直接追加寫的方式,就會導(dǎo)致數(shù)據(jù)分布的隨機性增加,浪費存儲空間,降低性能,這些問題的存在,是小文件合并存儲的優(yōu)化策略所面臨的挑戰(zhàn)。

2 小文件合并存儲改進(jìn)方案

綜上所述,小文件合并存儲是解決目前LOSF問題最為有效的策略。著名的社交網(wǎng)站Facebook和電子商務(wù)網(wǎng)站淘寶等都采用了這種方式。小文件合并存儲的機制,核心思想是將多個小文件合并成一個大文件中,合并時同步生成索引文件,小文件的元數(shù)據(jù),例如位置信息、文件名稱等與實際文件是分開存儲的,在具體訪問文件的時候,會首先獲取元數(shù)據(jù)的offset和size等關(guān)鍵信息,然后依據(jù)索引檢索實際文件。

但是這種合并存儲方法也存在以下一些問題:

小文件以合并存儲的方式存放到磁盤上,小文件之間需要嚴(yán)格的邊界來區(qū)分,一旦寫入便不能再修改邊界,因此在不同數(shù)據(jù)塊上修改或刪除單個小文件時,無法立即回收存儲空間,會產(chǎn)生一些磁盤碎片,不僅造成訪問性能下降,還導(dǎo)致磁盤空間浪費。

本文提出對一種改進(jìn)的小文件合并存儲的方法,針對現(xiàn)有的小文件合并存儲的方法在修改和刪除單個小文件時,無法立即回收存儲空間,導(dǎo)致磁盤空間浪費等問題,提出以文件的大小為參數(shù),先對小文件進(jìn)行分組,再對同一組的小文件進(jìn)行合并存儲在同一個數(shù)據(jù)塊中,存儲時優(yōu)先選擇數(shù)據(jù)塊中空閑的單元。在修改單個小文件時,如果修改后的文件大小發(fā)生變化,就將小文件移至其對應(yīng)的文件組里,存儲到相應(yīng)的數(shù)據(jù)塊里;如果修改后的文件大小不變,就直接修改。這樣可以減少因修改和刪除單個小文件產(chǎn)生的數(shù)據(jù)塊中空閑單元,優(yōu)化數(shù)據(jù)布局,及時回收存儲空間,提高磁盤空間的利用率,彌補現(xiàn)有的合并存儲方法的不足。

3 小文件合并存儲改進(jìn)方案具體流程

3.1 新增文件的流程

(1)客戶端發(fā)出請求

(2)判斷文件大小

(3)根據(jù)文件大小選擇數(shù)據(jù)塊組group_x

(4)在數(shù)據(jù)塊組 group_x中找到一個可寫的block_id

(5)判斷block_id中是否有空閑的存儲單元

(6)如果沒有,對同一組待寫的小文件合并成一個大文件,如果有,在block_id中選擇空閑的存儲單元

(7)把文件寫入磁盤,同時生成元數(shù)據(jù)+索引文件

(8)向客戶端返回成功信息

小文件合并存儲改進(jìn)方案在新增文件時,會以文件的大小為參數(shù),先對小文件進(jìn)行分組,再對同一組的小文件進(jìn)行合并存儲在同一個數(shù)據(jù)塊中,存儲時優(yōu)先選擇block中空閑的單元。而原有方案不考慮文件大小,對新增文件直接合并,以追寫的方式,存儲在數(shù)據(jù)塊中。

圖1 新增文件流程圖

3.2 刪除文件的流程

(1)客戶端請求

(2)查找文件的元數(shù)據(jù),獲取文件名稱、位置信息等屬性

(3)確認(rèn)文件所在group_x和block_id

(4)根據(jù)元數(shù)據(jù)和索引表的文件名稱、offset和size,找到文件File_xx

(5)刪除File_xx,修改文件File_xx的存儲單元變?yōu)榭臻e狀態(tài),同時更新元數(shù)據(jù)和索引表

(6)向客戶端返回成功信息

小文件合并存儲改進(jìn)方案在刪除文件時,會將文件所在的存儲單元修改為空閑狀態(tài),當(dāng)有相同大小的文件寫入時,優(yōu)先考慮。

圖2 修改文件流程圖

3.3 修改文件的流程

(1)客戶端請求

(2)判斷文件大小是否變化

(3)如果是,把文件File_xx看作一份新文件處理,增加新文件(詳見新增文件流程),刪除舊文件(詳見刪除文件流程)

(4)如果不是,查找文件的元數(shù)據(jù),獲取文件名稱、位置信息等屬性,確認(rèn)文件所在group_x和block_id,根據(jù)元數(shù)據(jù)和索引表的文件名稱、offset和size,找到文件File_xx,修改 File_xx

(5)向客戶端返回成功信息

小文件合并存儲改進(jìn)方案在修改文件時,會先判斷文件大小是否發(fā)生改變,如果發(fā)生改變,會將文件看作一份新文件處理,同時刪除舊文件。

圖3 刪除文件流程圖

4 小文件合并存儲改進(jìn)方案的優(yōu)點

小文件合并存儲改進(jìn)方案相對于現(xiàn)有方案,具備以下優(yōu)點:

(1)及時回收存儲空間,有效減少磁盤碎片;

(2)優(yōu)化數(shù)據(jù)布局,提高磁盤空間的利用率;

(3)顯著提高存儲系統(tǒng)的數(shù)據(jù)訪問的效率。

小文件合并存儲改進(jìn)方案將來可能的應(yīng)用場景,分布式存儲系統(tǒng)和海量小文件云存儲等。

5 結(jié)語

本文在分析海量小文件存儲的主要問題的基礎(chǔ)上,探討了LOSF優(yōu)化策略,提出了一種小文件合并存儲的改進(jìn)方法和流程,具體包括新增文件、刪除文件和修改文件的流程,并闡明了小文件合并存儲改進(jìn)方案的主要優(yōu)點,為小文件合并存儲提供了一種解決方案。

猜你喜歡
空閑客戶端流程
你的手機安裝了多少個客戶端
“人民網(wǎng)+客戶端”推出數(shù)據(jù)新聞
——穩(wěn)就業(yè)、惠民生,“數(shù)”讀十年成績單
工星人平臺注冊流程
“鳥”字謎
與元英&宮脅咲良零距離 from IZ*ONE
西灣村采風(fēng)
違反流程 致命誤判
彪悍的“寵”生,不需要解釋
虛擬專用網(wǎng)絡(luò)訪問保護(hù)機制研究
四川省高考志愿填報流程簡圖
吴堡县| 吴桥县| 四平市| 闵行区| 搜索| 广东省| 信阳市| 乌鲁木齐县| 乌苏市| 辉南县| 东源县| 剑阁县| 灵寿县| 赤城县| 苏州市| 新安县| 云安县| 双峰县| 武定县| 石泉县| 泸溪县| 汪清县| 新竹市| 赤壁市| 新沂市| 仪陇县| 高碑店市| 邛崃市| 溧水县| 吴川市| 松原市| 南江县| 亳州市| 汉中市| 左权县| 丰县| 石狮市| 象山县| 深州市| 乌苏市| 白朗县|