人臉識(shí)別等海量小文件場(chǎng)景,需要怎樣的存儲(chǔ)?

根據(jù)IDC在2018年底的預(yù)測(cè)顯示,由于大數(shù)據(jù)、AI、物聯(lián)網(wǎng)、5G等因素的驅(qū)動(dòng),全球的數(shù)據(jù)量在2025年將高達(dá)175ZB(1ZB=1024EB,1EB=1024PB)。在中國(guó)市場(chǎng),由于AI技術(shù)在安防等領(lǐng)域的大規(guī)模落地與應(yīng)用,IDC預(yù)計(jì),中國(guó)將在2025年成為擁有數(shù)據(jù)量最大的地區(qū),甚至超過(guò)整個(gè)EMEA(歐洲+中東+非洲),其中絕大部分?jǐn)?shù)據(jù)是非結(jié)構(gòu)化數(shù)據(jù)。

海量數(shù)據(jù)時(shí)代來(lái)臨,但在這上空飄著一朵烏云——那就是海量小文件的存儲(chǔ)問(wèn)題。

海量小文件是怎么產(chǎn)生的?

海量小文件:業(yè)內(nèi)通常將大小在1MB以內(nèi)的文件稱(chēng)為小文件,百萬(wàn)級(jí)數(shù)量及以上稱(chēng)為海量,由此量化定義海量小文件。

首先我們來(lái)看一下海量小文件是怎么產(chǎn)生的?

人工智能、物聯(lián)網(wǎng)、智慧金融、智能安防、傳感器網(wǎng)絡(luò)、科學(xué)實(shí)驗(yàn)等應(yīng)用的發(fā)展產(chǎn)生了大量數(shù)據(jù),這些數(shù)據(jù)種類(lèi)繁多,大小不一。不僅包括海量的大文件(大于1MB),也包括海量的小文件(小于1MB)。特別是小文件的數(shù)量將達(dá)到千萬(wàn)級(jí)、億級(jí)甚至十億、百億級(jí)。

在智能安防領(lǐng)域有很多典型的海量小文件場(chǎng)景,人臉識(shí)別就是其中之一。人臉識(shí)別的基礎(chǔ)原理,就是通過(guò)將攝像機(jī)拍攝的圖片與視圖庫(kù)進(jìn)行比較,如果匹配則命中。對(duì)于一個(gè)大型城市來(lái)說(shuō),攝像機(jī)抓拍的圖片數(shù)量會(huì)達(dá)到百億級(jí)規(guī)模。在對(duì)這些原始數(shù)據(jù)進(jìn)行分析應(yīng)用的過(guò)程中就會(huì)涉及到對(duì)百億級(jí)規(guī)模的海量小文件的處理。

類(lèi)似的還有智慧金融,這也是一個(gè)會(huì)產(chǎn)生海量小文件的場(chǎng)景。金融業(yè)務(wù)不僅有大量原始票據(jù)通過(guò)掃描形成圖片和描述信息文件,還有電子合同、簽名數(shù)據(jù)、人臉識(shí)別數(shù)據(jù)等。金融的影像數(shù)據(jù)一般單個(gè)文件大小為幾KB至幾百KB不等,文件數(shù)量達(dá)到數(shù)億至數(shù)十億級(jí)規(guī)模,并且逐年增長(zhǎng),需要做長(zhǎng)期的保存。

海量小文件,存儲(chǔ)大煩惱

海量小文件體量龐大,但目前的文件系統(tǒng)包括本地文件系統(tǒng)、分布式文件系統(tǒng)都是匹配大文件場(chǎng)景的。從細(xì)節(jié)來(lái)說(shuō),如對(duì)元數(shù)據(jù)的管理、數(shù)據(jù)布局、緩存管理等的實(shí)現(xiàn)策略都側(cè)重于大文件,導(dǎo)致在海量小文件情況下,存儲(chǔ)處理性能極差。(比如日常的文件拷貝,如果拷貝一個(gè)大文件的電影到移動(dòng)硬盤(pán),拷貝的速度能達(dá)到100MB/S,但是如果拷貝的是超過(guò)上萬(wàn)個(gè)小圖片,拷貝速度可能不到5MB/s)

因此,海量小文件存儲(chǔ)問(wèn)題一直被認(rèn)為是工業(yè)界和學(xué)術(shù)界的難題,是海量數(shù)據(jù)時(shí)代上空飄著的那朵烏云。如前面所講的智能安防、智慧金融的存儲(chǔ)架構(gòu)方案設(shè)計(jì),就需要重點(diǎn)考慮到存儲(chǔ)系統(tǒng)對(duì)于海量小文件的處理性能難題。

具體來(lái)說(shuō),導(dǎo)致海量小文件處理性能差的原因主要有如下三點(diǎn):

元數(shù)據(jù)管理低效的問(wèn)題

講這個(gè)問(wèn)題之前,我們先認(rèn)識(shí)一下元數(shù)據(jù)。在存儲(chǔ)系統(tǒng)中,數(shù)據(jù)分為兩部分進(jìn)行存儲(chǔ):一部分是真實(shí)數(shù)據(jù);另一部分是描述這份數(shù)據(jù)的元數(shù)據(jù),比如文件系統(tǒng)中文件的文件名、文件大小、執(zhí)行權(quán)限等。元數(shù)據(jù)有著明顯特點(diǎn),那就是數(shù)量多,而且容量小。

在通用的文件系統(tǒng)設(shè)計(jì)中,如果需要訪問(wèn)一份真實(shí)的數(shù)據(jù)就需要先訪問(wèn)到該數(shù)據(jù)的元數(shù)據(jù)??墒俏覀冎?,當(dāng)前主流的文件系統(tǒng)基本都是面向大文件設(shè)計(jì)的,在海量小文件的情況下,因?yàn)楸厝粫?huì)產(chǎn)生更大數(shù)量級(jí)的元數(shù)據(jù),這會(huì)放大文件系統(tǒng)擴(kuò)展性差、檢索效率低的問(wèn)題。比如傳統(tǒng)NAS存儲(chǔ)采用二叉樹(shù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)的存放,這種方法在遇到海量小文件的時(shí)候,文件系統(tǒng)在存儲(chǔ)海量小文件的同時(shí)還需要存儲(chǔ)更大數(shù)據(jù)級(jí)的海量元數(shù)據(jù),NAS存儲(chǔ)在擴(kuò)展性和檢索速度方面很容易就達(dá)到了瓶頸。所以,傳統(tǒng)的NAS文件系統(tǒng)在海量小文件下,性能衰減得異常厲害,一般文件數(shù)量級(jí)到達(dá)千萬(wàn)級(jí)的時(shí)候效率就會(huì)變得極其低效。

因此,如果想要徹底解決海量小文件的問(wèn)題,首先就需要存儲(chǔ)系統(tǒng)有一個(gè)健壯高效的元數(shù)據(jù)管理平臺(tái)(庫(kù))。如果沒(méi)有核心技術(shù)解決這個(gè)問(wèn)題,這個(gè)存儲(chǔ)系統(tǒng)即使在其他方面的優(yōu)化做得再好,也僅能滿足幾個(gè)億級(jí)別的小文件存儲(chǔ),而無(wú)法滿足百億級(jí)別的小文件存儲(chǔ)。

I/O訪問(wèn)流程復(fù)雜的問(wèn)題

傳統(tǒng)的文件系統(tǒng)在文件讀寫(xiě)的時(shí)候流程過(guò)于復(fù)雜,在讀取一個(gè)文件的時(shí)候,需要產(chǎn)生多次IO。例如對(duì)于Linux系統(tǒng)在讀取文件的時(shí)候,至少需要先讀取文件目錄元數(shù)據(jù)到內(nèi)存,緊接著把文件的索引節(jié)點(diǎn)(inode)裝載到內(nèi)存,最后再讀取實(shí)際的文件內(nèi)容,在訪問(wèn)數(shù)據(jù)過(guò)程中會(huì)多次讀取元數(shù)據(jù),效率極低。

機(jī)械磁盤(pán)對(duì)于隨機(jī)小IO讀寫(xiě)性能低

當(dāng)前很多文件系統(tǒng)都是將元數(shù)據(jù)分散存儲(chǔ),從真實(shí)存儲(chǔ)的位置來(lái)看分散在存儲(chǔ)的所有磁盤(pán)當(dāng)中,因此元數(shù)據(jù)的讀寫(xiě)屬于隨機(jī)的IO。然而機(jī)械磁盤(pán)對(duì)于隨機(jī)的IO性能極低,因此在海量小文件的場(chǎng)景下由于元數(shù)據(jù)讀寫(xiě)會(huì)產(chǎn)生隨機(jī)高頻次的I/O讀寫(xiě),對(duì)于當(dāng)前以機(jī)械盤(pán)為主的存儲(chǔ)系統(tǒng)來(lái)說(shuō),性能極差。

(采用全閃存效果會(huì)比較好,但是目前來(lái)說(shuō),對(duì)于海量的非結(jié)構(gòu)化數(shù)據(jù)若使用全閃存,從成本來(lái)看并不現(xiàn)實(shí))

解決海量小文件存儲(chǔ)難題,需要對(duì)癥下藥

綜合上述分析,如果想要解決好海量小文件的存儲(chǔ)難題,就需要對(duì)癥下藥。對(duì)于海量小文件的存儲(chǔ)優(yōu)化可以從元數(shù)據(jù)管理、數(shù)據(jù)組織、I/O 流程優(yōu)化與緩存管理(業(yè)界通常稱(chēng)為Cache管理)等幾個(gè)方面下手。具體的技術(shù)包括通過(guò)優(yōu)化元數(shù)據(jù)管理與數(shù)據(jù)組織方式、小文件合并、優(yōu)化緩存命中率等方面,來(lái)提升海量小文件的存儲(chǔ)性能支撐,從而達(dá)到提升海量小文件訪問(wèn)效率的目的。

元數(shù)據(jù)的承載。正如上文所說(shuō),海量小文件處理的瓶頸在于對(duì)元數(shù)據(jù)的處理,業(yè)內(nèi)通常采用分布式數(shù)據(jù)庫(kù)實(shí)現(xiàn)。通過(guò)對(duì)元數(shù)據(jù)進(jìn)行獨(dú)立組織與承載,并通過(guò)元數(shù)據(jù)語(yǔ)義優(yōu)化、寫(xiě)入優(yōu)化等,降低元數(shù)據(jù)在IO路徑和資源等方面不必要的性能消耗與寫(xiě)入次數(shù)。匹配上優(yōu)化的技術(shù),減少I(mǎi)O數(shù)量,比如在處理業(yè)務(wù)高并發(fā)的時(shí)候,將并發(fā)的多個(gè)操作合并成一個(gè)操作,進(jìn)一步提升吞吐。最后,為了進(jìn)一步保障元數(shù)據(jù)的小IO高性能,通常將元數(shù)據(jù)存儲(chǔ)在SSD的數(shù)據(jù)分層空間中,進(jìn)一步加速元數(shù)據(jù)的訪問(wèn)效率。

分布式智能緩存技術(shù)。針對(duì)海量小文件設(shè)計(jì)的分布式智能緩存層,能夠讓小文件在寫(xiě)入SSD后即返回,縮短IO路徑,有效降低時(shí)延,提高性能。同時(shí)還可以有效降低原生糾刪碼的I/O寫(xiě)入放大的問(wèn)題,提高原生糾刪碼的性能,進(jìn)一步提升分布式存儲(chǔ)對(duì)海量小文件的性能支持。

小文件合并。通過(guò)將小文件落在智能緩存的同時(shí)還能夠?qū)⑿∥募诰€合并成大IO,然后通過(guò)條帶化技術(shù)(將大數(shù)據(jù)切分成小數(shù)據(jù)并發(fā)存儲(chǔ)到不同硬盤(pán))寫(xiě)入HDD,極大地提升了IO的性能。并且小文件合并還能夠減少文件數(shù)量,從而減少對(duì)應(yīng)的元數(shù)據(jù)數(shù)量,來(lái)提升性能。

行業(yè)難題與機(jī)遇往往相伴而行,各大廠商在攻克海量小文件存儲(chǔ)難題上各顯神通,既有老牌廠商,也有近年來(lái)異軍突起的新銳玩家。在這其中,深信服存儲(chǔ)宛若一個(gè)老道的新手,在海量小文件的處理上攜清晰的解題思路強(qiáng)勢(shì)入局。根據(jù)深信服公開(kāi)的技術(shù)資料來(lái)看,其EDS對(duì)企業(yè)級(jí)分布式存儲(chǔ)處理海量小文件的性能優(yōu)化思路與前面講的幾點(diǎn)不謀而合,其核心技術(shù)點(diǎn)可以歸納為三點(diǎn):

第一,深信服推出了一個(gè)全新的分布式數(shù)據(jù)庫(kù)PhxKV來(lái)對(duì)獨(dú)立承載元數(shù)據(jù)。PhxKV具備優(yōu)秀的性能擴(kuò)展能力,能夠輕松承載數(shù)百億規(guī)模的元數(shù)據(jù),成為深信服支撐百億海量小文件高性能的堅(jiān)實(shí)基礎(chǔ)。深信服內(nèi)部進(jìn)行的性能測(cè)試顯示,PhxKV使用兩核時(shí)的吞吐,就能和MongoDB使用17核時(shí)的吞吐相當(dāng)。

第二,通過(guò)智能緩存技術(shù),采用高性能的SSD來(lái)加速海量小文件的讀寫(xiě)效率并縮短I/O路徑。

第三,通過(guò)小文件合并技術(shù)來(lái)降低文件的數(shù)量,從而減少整體I/O讀寫(xiě)頻次來(lái)提高I/O性能。

尤其是針對(duì)海量小文件的頑疾,深信服企業(yè)級(jí)分布式存儲(chǔ)EDS在性能提升方面表現(xiàn)搶眼,并且在權(quán)威機(jī)構(gòu)測(cè)試和用戶的實(shí)際應(yīng)用中得到檢驗(yàn)。

日前,深信服企業(yè)級(jí)分布式存儲(chǔ)EDS通過(guò)中國(guó)泰爾實(shí)驗(yàn)室權(quán)威機(jī)構(gòu)多項(xiàng)指標(biāo)測(cè)試驗(yàn)證,其中對(duì)海量小文件承載的性能表現(xiàn)很搶眼。根據(jù)測(cè)試數(shù)據(jù),深信服EDS通過(guò)三節(jié)點(diǎn)構(gòu)建的對(duì)象存儲(chǔ)能夠輕松承載100億小文件,且性能抖動(dòng)不超過(guò)5%;對(duì)象上傳速度達(dá)到15,000個(gè)/s,對(duì)象下載速度達(dá)到40,000個(gè)/s。

深信服EDS中國(guó)泰爾實(shí)驗(yàn)室測(cè)試內(nèi)容及結(jié)果

筆者還了解到,深信服EDS在處理海量小文件時(shí)呈現(xiàn)出的高性能,是通過(guò)軟件機(jī)制和優(yōu)化來(lái)最大程度發(fā)揮硬件長(zhǎng)處、激發(fā)硬件潛能,最終實(shí)現(xiàn)用更低成本的硬件平臺(tái),也能夠獲得高性能,帶來(lái)的是更具性價(jià)比的解題思路。

海量小文件案例實(shí)踐

據(jù)深信服透露,南方某市公安反恐工程項(xiàng)目采用了深信服分布式存儲(chǔ)進(jìn)行智能安防的數(shù)據(jù)存儲(chǔ),其中涉及到3.5PB的視頻存儲(chǔ)以及數(shù)十億級(jí)別的人臉識(shí)別的海量小文件存儲(chǔ),是一個(gè)典型的大文件與海量小文件混合存儲(chǔ)的場(chǎng)景。

深信服企業(yè)級(jí)分布式存儲(chǔ)EDS采用對(duì)象存儲(chǔ)與平臺(tái)進(jìn)行對(duì)接,系統(tǒng)峰值每秒有將近3,000張圖片寫(xiě)入存儲(chǔ)系統(tǒng)。目前存儲(chǔ)系統(tǒng)內(nèi)保存的海量小文件數(shù)量已經(jīng)超過(guò)50億,而且還在不斷增長(zhǎng)當(dāng)中。得益于深信服在海量小文件的性能優(yōu)化,使得EDS平臺(tái)能夠從容應(yīng)對(duì)大并發(fā)的人臉識(shí)別系統(tǒng),并且滿足后續(xù)針對(duì)原始圖片數(shù)據(jù)的二次挖掘應(yīng)用。

對(duì)于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)來(lái)說(shuō),攻克了海量小文件存儲(chǔ)難題,基本代表了該存儲(chǔ)能夠適配絕大多數(shù)非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的場(chǎng)景。深信服分布式存儲(chǔ)基于軟件定義技術(shù)、采用通用的X86服務(wù)器與以太網(wǎng)交換機(jī),激發(fā)硬件潛能,在海量數(shù)據(jù)時(shí)代幫助用戶構(gòu)建一個(gè)可靠、高性能、智能管理的海量數(shù)據(jù)存儲(chǔ)平臺(tái)。

免責(zé)聲明:此文內(nèi)容為第三方自媒體作者發(fā)布的觀察或評(píng)論性文章,所有文字和圖片版權(quán)歸作者所有,且僅代表作者個(gè)人觀點(diǎn),與極客網(wǎng)無(wú)關(guān)。文章僅供讀者參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。投訴郵箱:editor@fromgeek.com。

極客網(wǎng)企業(yè)會(huì)員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。

2020-03-13
人臉識(shí)別等海量小文件場(chǎng)景,需要怎樣的存儲(chǔ)?
從細(xì)節(jié)來(lái)說(shuō),如對(duì)元數(shù)據(jù)的管理、數(shù)據(jù)布局、緩存管理等的實(shí)現(xiàn)策略都側(cè)重于大文件,導(dǎo)致在海量小文件情況下,存儲(chǔ)處理性能極差。

長(zhǎng)按掃碼 閱讀全文