• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      消費(fèi)級混合式固態(tài)存儲分析與研究

      2022-05-28 07:54:42羅龍飛李蓍城
      集成技術(shù) 2022年3期
      關(guān)鍵詞:存儲設(shè)備容量沖突

      羅龍飛 李蓍城 石 亮

      (華東師范大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 上海 200062)

      1 引 言

      隨著消費(fèi)級終端的逐漸普及,閃存存儲設(shè)備步入了快速發(fā)展階段。相較于傳統(tǒng)的硬盤,閃存存儲設(shè)備功耗低、抗震強(qiáng)、性能更佳,可以滿足用戶的日常需求。相較于其他非易失性存儲,閃存存儲設(shè)備具有更大容量、更低價(jià)格和更優(yōu)性價(jià)比。因此,閃存存儲設(shè)備已成為消費(fèi)級終端的主流存儲設(shè)備。

      閃存存儲設(shè)備內(nèi)部由通道、芯片、晶元、平面、塊和頁面組成,同時(shí)閃存具有寫前擦除、擦除粒度與訪問粒度不一致和擦除次數(shù)有限的特點(diǎn)。閃存轉(zhuǎn)換層(Flash Translation Layer,F(xiàn)TL)的提出有助于更好地使用閃存存儲設(shè)備。FTL 的主要功能包括地址映射、垃圾回收和磨損均衡等。

      (1)地址映射:地址映射是為了將主機(jī)端發(fā)送的邏輯地址轉(zhuǎn)換成實(shí)際存儲在閃存存儲設(shè)備中的物理地址。映射表為主要的元數(shù)據(jù),維護(hù)了邏輯地址到物理地址的轉(zhuǎn)換和一些頁面的存儲狀態(tài)標(biāo)識。

      (2)垃圾回收:閃存具有寫前擦除的特性,且擦除粒度大于訪問粒度,因此為避免頻繁的擦除操作,數(shù)據(jù)的更新將寫入新的頁面。隨著數(shù)據(jù)逐漸寫入,閃存存儲設(shè)備中布滿了已被更新的無效數(shù)據(jù)。這部分無效數(shù)據(jù)所占用的物理地址空間將由 FTL 通過垃圾回收的操作進(jìn)行回收。

      (3)磨損均衡:閃存的擦除次數(shù)有限,頻繁使用同一個塊將會導(dǎo)致該塊壽命縮短,閃存存儲設(shè)備隨之損失空間容量。為避免該情況,F(xiàn)TL 通過磨損均衡使所有塊的擦除次數(shù)相近。磨損均衡分為動態(tài)磨損均衡和靜態(tài)磨損均衡,前者是在選擇寫入數(shù)據(jù)的塊時(shí),優(yōu)先選擇擦除次數(shù)低的塊;后者是對長期未擦除的塊進(jìn)行垃圾回收,使壽命長的塊可被使用。

      隨著技術(shù)的發(fā)展,閃存存儲設(shè)備從每個存儲單元存儲 1 位數(shù)據(jù)(Single-Level Cell,SLC)提升到存儲 4 位數(shù)據(jù)(Quad-Level Cell,QLC)。另外,閃存結(jié)構(gòu)也從二維平面閃存發(fā)展至三維堆疊式閃存。這些技術(shù)的發(fā)展使閃存的密度增加、容量增加和價(jià)格下降的同時(shí),也導(dǎo)致閃存的性能下降、可靠性變差且壽命縮短。為解決這一矛盾,混合式閃存應(yīng)運(yùn)而生。混合式閃存通過同時(shí)存在 SLC 和高密度存儲單元,如 QLC(本文中均以QLC 代表高密度存儲單元),使閃存存儲設(shè)備同時(shí)具有大容量、低價(jià)格、高性能、高可靠性和長壽命的特性。因此,混合式閃存是當(dāng)今消費(fèi)級終端領(lǐng)域的主流存儲設(shè)備,如 Intel 665P、Micron Crucial P1、Intel 670P 和 Intel Optane H10 均使用了混合式閃存。研究混合式閃存是進(jìn)一步提升消費(fèi)級終端的用戶體驗(yàn)的關(guān)鍵。但混合式閃存中存在兩種具有不同特性的存儲,導(dǎo)致 FTL 算法邏輯中需要增加數(shù)據(jù)放置、介質(zhì)間數(shù)據(jù)遷移等操作,設(shè)計(jì)更為復(fù)雜和困難。

      本文針對市場目前最新的混合式閃存設(shè)備,首先介紹了混合式閃存的架構(gòu)和特性,通過理論分析發(fā)展方向;其次通過真實(shí)設(shè)備的實(shí)驗(yàn)數(shù)據(jù)來挖掘其中存在的問題;最后,介紹國內(nèi)外的相關(guān)研究進(jìn)展,并進(jìn)行比較分析,以期為學(xué)術(shù)界和產(chǎn)業(yè)界對混合式閃存的進(jìn)一步研究提供一定參考價(jià)值。

      2 混合式閃存的架構(gòu)

      混合式閃存中存在兩種架構(gòu),一種是SLC 與 QLC 完全獨(dú)立,采用不同的介質(zhì),如Intel Optane H10 中 SLC 采用與 QLC 不同的3D Xpoint 介質(zhì);另一種是采用模擬 SLC 技術(shù)(pseudo SLC,pSLC),即通過 QLC 只存儲 1 位數(shù)據(jù)來模擬 SLC,其中 SLC 與 QLC 共享通道、芯片、晶元、平面和塊。相較而言,模擬 SLC技術(shù)具有更高的性價(jià)比,在消費(fèi)級終端領(lǐng)域更受歡迎,如 Intel 665P、Micron Crucial P1 和 Intel 670P 均使用模擬 SLC 技術(shù)。因此,本文以模擬SLC 技術(shù)為混合式閃存架構(gòu),其中本節(jié)將介紹模擬 SLC 技術(shù)、數(shù)據(jù)通路和該架構(gòu)所具有的特點(diǎn)。

      2.1 模擬 SLC

      相較于 SLC,QLC 每個存儲單元所存的數(shù)據(jù)位數(shù)更多,導(dǎo)致其閾值電壓更密集,難以區(qū)分。同時(shí),電荷之間的相互干擾也會更大,因而 QLC的訪問性能、壽命和可靠性均遠(yuǎn)遜色于 SLC。相關(guān)研究表明,SLC 與 QLC 的讀寫延遲的差距在20 倍左右,擦除壽命在 30 倍左右[1-2]。為了彌補(bǔ)兩者之間的差距,提出了模擬 SLC 技術(shù)。

      模擬 SLC 技術(shù)通過僅存儲 1 位數(shù)據(jù)到QLC,減少了閾值電壓分布,同時(shí)降低了電荷之間的干擾,使其具備接近 SLC 的訪問性能、壽命和可靠性。與獨(dú)立 SLC 和 QLC 組成方式不同的是,模擬 SLC 可以與 QLC 隨時(shí)相互轉(zhuǎn)換,以滿足不同場景下的需求。圖 1 展示了基于模擬SLC 技術(shù)的混合式閃存架構(gòu)。在每個平面中具有多個塊,部分塊中的 QLC 采用模擬 SLC 模式,其余采用 QLC 模式。模擬 SLC 分為兩部分,一部分是靜態(tài) SLC,其中的模擬 SLC 不會轉(zhuǎn)換成QLC;另一部分是動態(tài) SLC,其中的模擬 SLC隨著混合式閃存中存儲數(shù)據(jù)量的增大而動態(tài)轉(zhuǎn)換成 QLC,也會隨著存儲數(shù)據(jù)量的減少轉(zhuǎn)換回SLC。以 1 TB 的 Intel 665P(初始包含 12 GB 靜態(tài) SLC 和 120 GB 動態(tài) SLC,其余為 QLC)為例,所有模擬 SLC 均勻分布在各個平面中。當(dāng)混合式閃存內(nèi)數(shù)據(jù)量多時(shí),120 GB 動態(tài) SLC 將轉(zhuǎn)換成 QLC 來增加可存儲容量;當(dāng)數(shù)據(jù)量少時(shí),QLC 可轉(zhuǎn)換回動態(tài) SLC 來提升混合式閃存的性能,這個過程最多可轉(zhuǎn)換至 120 GB 動態(tài)SLC。因此,通過同時(shí)使用模擬 SLC 和 QLC,混合式閃存設(shè)備可同時(shí)具備高性能、大容量和高可靠性的特性。

      圖1 基于模擬 SLC 技術(shù)的混合式閃存架構(gòu)Fig. 1 The architecture of hybrid flash memory based on pseudo SLC

      然而,設(shè)備空間占有率的提升會使混合式閃存設(shè)備的性能和可靠性下降,用戶在使用過程中會逐漸感受到設(shè)備卡頓等情況,影響體驗(yàn)感。為緩解該問題,應(yīng)對混合式閃存設(shè)備中的數(shù)據(jù)進(jìn)行精細(xì)的組織管理,避免無效數(shù)據(jù)占用設(shè)備空間,并充分利用介質(zhì)特性。

      2.2 數(shù)據(jù)通路

      2.2.1 寫數(shù)據(jù)通路

      由于模擬 SLC 具有更好的性能和可靠性,現(xiàn)有的混合式閃存設(shè)備通常使用模擬 SLC 作為前端緩沖區(qū),即所有的數(shù)據(jù)先寫入模擬 SLC 來提升性能,同時(shí)利用高擦除次數(shù)的特性來保護(hù)QLC 不被快速地磨損消耗。QLC 作為后端主存,存儲模擬 SLC 中剔除的數(shù)據(jù)。將數(shù)據(jù)從模擬 SLC 中剔除到 QLC 的操作稱為數(shù)據(jù)遷移。觸發(fā)數(shù)據(jù)遷移的條件通常有兩個:設(shè)備空閑時(shí)和SLC 容量空間不足時(shí)。寫數(shù)據(jù)通路如圖 2 中①所示,主機(jī)下發(fā)的寫請求先寫入模擬 SLC 中,QLC 中的數(shù)據(jù)寫入是由模擬 SLC 中的數(shù)據(jù)遷移所帶來的。

      圖2 混合式閃存的數(shù)據(jù)通路Fig. 2 The data path of hybrid flash memory

      當(dāng) SLC 容量空間不足時(shí),由于閃存擦除是以塊為粒度,因此數(shù)據(jù)遷移將至少以塊為粒度,將其中的有效數(shù)據(jù)遷移至 QLC 后擦除該塊。因此,數(shù)據(jù)遷移的開銷相較于數(shù)據(jù)訪問是巨大的。然而,模擬 SLC 中的空間有限,當(dāng)數(shù)據(jù)逐步寫入時(shí),將會產(chǎn)生數(shù)據(jù)遷移與主機(jī)數(shù)據(jù)寫入的沖突。這將對主機(jī)數(shù)據(jù)寫入產(chǎn)生巨大的影響,降低設(shè)備性能。如圖 1 所示,通道 0 和通道 1 分別表示當(dāng) SLC 和 QLC 中發(fā)生垃圾回收(Garbage Collection,GC)時(shí)與普通訪問的讀寫請求發(fā)生沖突,通道 2 表示當(dāng) SLC 與 QLC 之間發(fā)生數(shù)據(jù)遷移時(shí)與普通訪問的讀寫請求發(fā)生沖突。因此,對于混合式存儲設(shè)備,數(shù)據(jù)的寫入策略應(yīng)根據(jù)數(shù)據(jù)的屬性和設(shè)備的使用情況進(jìn)行精細(xì)設(shè)計(jì),避免內(nèi)部數(shù)據(jù)遷移對設(shè)備性能的影響。

      2.2.2 讀數(shù)據(jù)通路

      與寫數(shù)據(jù)通路不同的是,讀取數(shù)據(jù)的通路取決于數(shù)據(jù)存放的位置。在設(shè)備的使用過程中,部分?jǐn)?shù)據(jù)由模擬 SLC 遷移至 QLC。因此,從混合式閃存設(shè)備中讀取數(shù)據(jù)時(shí),可能會從模擬 SLC 和QLC 中進(jìn)行讀取,如圖 2 中②所示。閃存在讀取數(shù)據(jù)時(shí)會向相鄰的頁施加通路電壓,因此當(dāng)一個頁面數(shù)據(jù)被頻繁讀取時(shí),會導(dǎo)致其他頁面的數(shù)據(jù)出現(xiàn)錯誤讀取的情況。同時(shí),由于 QLC 中的電壓分布狀態(tài)更多、狀態(tài)之間的電壓間隔更小,因此QLC 中的讀干擾現(xiàn)象相較于模擬 SLC 更為嚴(yán)重。

      傳統(tǒng)解決 QLC 中讀干擾嚴(yán)重的方式有兩種。第一種是記錄頁面讀取次數(shù),將即將產(chǎn)生干擾的數(shù)據(jù)重新寫入,但是這種方式會產(chǎn)生額外的寫入操作,影響壽命。第二種是降低通路電壓,降低讀取數(shù)據(jù)時(shí)對其他頁面的影響,但是過低的通路電壓可能導(dǎo)致讀取失敗。在混合式閃存設(shè)備中,模擬 SLC 為緩解讀干擾提供了新的思路。

      2.2.3 讀寫沖突

      閃存由于讀取延遲和寫入延遲差異較大,當(dāng)寫請求阻塞讀請求時(shí),會導(dǎo)致讀請求的延遲大幅增加,影響用戶體驗(yàn),這種情況稱為讀寫沖突,如圖 1 通道 3 所示。在混合式閃存設(shè)備中,模擬SLC 和 QLC 共享通道、芯片、晶元和平面,容易導(dǎo)致模擬 SLC 和 QLC 的請求之間產(chǎn)生沖突。由于模擬 SLC 和 QLC 的延遲差異很大,在混合式閃存設(shè)備中讀寫沖突的問題更加嚴(yán)重。

      在傳統(tǒng)的解決方案中,讀優(yōu)先策略被廣泛采用。當(dāng)讀請求與寫請求同時(shí)在隊(duì)列中等待時(shí),讀請求將被優(yōu)先處理以避免被寫請求阻塞。而在混合式閃存中,除了讀寫請求屬性外,模擬 SLC與 QLC 的性能差異使調(diào)度成為一個更復(fù)雜的問題。其余在單種存儲介質(zhì)下的讀寫沖突解決方案在混合式閃存中也變得更為復(fù)雜,需要考慮的因素更多。因此,針對混合式閃存讀寫沖突問題的解決方案需要進(jìn)一步探索。

      3 關(guān)鍵問題測試與分析

      為了進(jìn)一步探索混合式閃存的特性和存在的問題,本文設(shè)計(jì)了多個實(shí)驗(yàn),涵蓋不同層級,包括文件系統(tǒng)和塊設(shè)備層,以及不同場景(標(biāo)準(zhǔn)負(fù)載、真實(shí)負(fù)載、應(yīng)用啟動和開啟內(nèi)存交換)。從寫特征、讀特征、讀寫沖突和容量特征 4 個角度對混合式閃存設(shè)備中存在的問題進(jìn)行分析。

      3.1 實(shí)驗(yàn)配置

      本文使用 Intel 665P、Intel 670P 和 Micron Crucial P1 作為混合式閃存,使用某廠商企業(yè)級固態(tài)硬盤 SSD-A①作為 SLC 的純盤,即僅包含 SLC 一種介質(zhì),使用某廠商企業(yè)級固態(tài)硬盤SSD-B①作為一個存儲單元存儲 3 位數(shù)據(jù)(Triple-Level Cell,TLC)的純盤。Fio[3]用于生成塊設(shè)備層各種類型的讀寫負(fù)載。IOzone[4]用于生成各種基本文件操作并測試性能。Filebench[5]用于模擬重放應(yīng)用程序產(chǎn)生的文件系統(tǒng)層負(fù)載。Blktrace[6]用于統(tǒng)計(jì)每一條請求的延遲信息。Debugfs[7]用于確定每一個邏輯地址對應(yīng)的具體文件。同時(shí),本文在多個文件系統(tǒng)下進(jìn)行測試。其中包括第四代擴(kuò)展文件系統(tǒng)(Fourth Extended Filesystem,EXT4)、閃存友好文件系統(tǒng)(Flash-Friendly File System,F(xiàn)2FS)和 B 樹文件系統(tǒng)(B-Tree File System,BTRFS)。

      3.2 寫特征

      3.2.1 文件系統(tǒng)層

      為了從文件系統(tǒng)層挖掘混合式閃存的寫特征,本文通過 IOzone 默認(rèn)順序?qū)懞碗S機(jī)寫模式向混合式閃存和兩種純盤下發(fā)大小為 8 G 的文件系統(tǒng)級標(biāo)準(zhǔn)寫負(fù)載,并設(shè)置混合式閃存的設(shè)備占用率為 10% 和 90%。實(shí)驗(yàn)結(jié)果如圖 3 所示,其中縱坐標(biāo)是以 10% 填充率的混合盤帶寬為基準(zhǔn),不同固態(tài)盤帶寬相較于其帶寬的比例。在多種文件系統(tǒng)下,混合式閃存在低設(shè)備占用率下寫性能與純盤相近;但在高設(shè)備占用率下,寫性能明顯弱于兩種純盤。這是因?yàn)樵诟咴O(shè)備占用率下,模擬 SLC 中的空間已被占滿,當(dāng)繼續(xù)寫入數(shù)據(jù)時(shí)會觸發(fā)內(nèi)部的數(shù)據(jù)遷移,影響主機(jī)端的寫性能。對于 SSD-A 和 SSD-B 兩種介質(zhì)的純盤,其性能差異不大,這是因?yàn)?TLC 頁面讀取速度雖然較慢,但是 TLC 訪問粒度大,使其具有更高的并行性來獲得性能提升,彌補(bǔ)與 SLC 之間的性能差異。

      圖3 文件系統(tǒng)層寫特征實(shí)驗(yàn)結(jié)果Fig. 3 The experimental results of write characteristics in filesystem layer

      3.2.2 塊設(shè)備層

      為了從塊設(shè)備層挖掘混合式閃存的寫特征,本文通過 Fio 向混合式閃存下發(fā)塊設(shè)備級的隨機(jī)寫和順序?qū)懙臉?biāo)準(zhǔn)負(fù)載,觀察混合式閃存的表現(xiàn)。其中,順序?qū)懙年?duì)列長度為 64,請求大小為1 MB;隨機(jī)寫為隨機(jī)寫入指定文件 5 次,請求大小為 4 KB。分別向混合式閃存設(shè)備中填充不同設(shè)備容量百分比(25%~75%)的數(shù)據(jù),圖 4 是混合式閃存在順序?qū)憳?biāo)準(zhǔn)負(fù)載下的表現(xiàn)。實(shí)驗(yàn)結(jié)果顯示,在多個混合式閃存下,無論設(shè)備填充率為多少,當(dāng)數(shù)據(jù)持續(xù)寫入 SLC 時(shí),混合式 SSD的性能比單獨(dú)的 SLC 或 QLC 都差。這同樣是因?yàn)槟M SLC 的空間有限,當(dāng)數(shù)據(jù)持續(xù)寫入 SLC時(shí)會觸發(fā)數(shù)據(jù)遷移,導(dǎo)致性能坍塌。圖 5 是混合式閃存在隨機(jī)寫標(biāo)準(zhǔn)負(fù)載下的表現(xiàn)。實(shí)驗(yàn)結(jié)果顯示,混合式閃存在隨機(jī)寫負(fù)載下會產(chǎn)生性能波動。這是由于模擬 SLC 的容量較小,造成隨機(jī)寫入的數(shù)據(jù)無法在模擬 SLC 區(qū)域中得到充分的更新,從而導(dǎo)致低效垃圾回收,并產(chǎn)生性能波動。

      圖4 塊設(shè)備層順序?qū)憣?shí)驗(yàn)結(jié)果Fig. 4 The experimental results of sequential writes in block device layer

      圖5 塊設(shè)備層隨機(jī)寫實(shí)驗(yàn)結(jié)果Fig. 5 The experimental results of random writes in block device layer

      3.3 讀特征

      3.3.1 文件系統(tǒng)層

      本文通過 IOzone 默認(rèn)順序讀和隨機(jī)讀模式向混合式閃存和兩種純盤下發(fā)大小為 6 GB 的文件系統(tǒng)級標(biāo)準(zhǔn)讀負(fù)載,同時(shí)設(shè)置設(shè)備占用率為10% 和 90%,來從文件系統(tǒng)層挖掘混合式閃存的讀特征。實(shí)驗(yàn)結(jié)果如圖 6 所示,無論是在低設(shè)備占用率還是高設(shè)備占用率下,混合式閃存的讀性能表現(xiàn)穩(wěn)定。這是因?yàn)閮?nèi)部數(shù)據(jù)遷移等操作是由寫入數(shù)據(jù)所觸發(fā)的,而在標(biāo)準(zhǔn)讀負(fù)載下,不會觸發(fā)混合式閃存中的內(nèi)部數(shù)據(jù)遷移等操作。

      圖6 文件系統(tǒng)層讀特征實(shí)驗(yàn)結(jié)果Fig. 6 The experimental results of read characteristics in filesystem layer

      3.3.2 塊設(shè)備層

      為了從塊設(shè)備層探尋混合式閃存具有的讀特征,本文設(shè)計(jì)使用 Fio 讀取在混合式閃存中保存時(shí)間不同的數(shù)據(jù),實(shí)驗(yàn)結(jié)果如圖 7 所示。其中,情況 1 為讀取剛寫入混合式閃存的數(shù)據(jù),其延遲相應(yīng)為模擬 SLC ?延遲;情況 2 為讀取已寫入混合式閃存一段時(shí)間的數(shù)據(jù),其延遲相應(yīng)為QLC 延遲。圖 7 中任意坐標(biāo)點(diǎn)(x,y)的含義為所有讀請求中x% 的讀請求的完成延遲低于y。如(50.00%, 58)和(50.00%, 128)的含義分別為在情況 1 下 50.00% 的讀請求延遲低于 58 μs,而在情況 2 下 50.00% 的讀請求的完成延遲低于128 μs。從實(shí)驗(yàn)結(jié)果可以看出,混合式閃存中讀取不同保存時(shí)間數(shù)據(jù)的延遲不同。這是由于當(dāng)數(shù)據(jù)在混合式閃存中保存一段時(shí)間后將會被遷移至QLC 中。同時(shí),由于混合式閃存的真實(shí)設(shè)備會從QLC 中直接讀取數(shù)據(jù),并且真實(shí)設(shè)備的讀取策略不會將熱數(shù)據(jù)緩存至模擬 SLC 中,性能和可靠性將成為問題。具體而言,QLC 相對較差的性能會影響熱據(jù)的訪問性能,同時(shí)相較于 SLC而言,頻繁從 QLC 中讀取更容易導(dǎo)致讀干擾產(chǎn)生,進(jìn)而影響設(shè)備的可靠性。

      圖7 塊設(shè)備層讀特征實(shí)驗(yàn)結(jié)果Fig. 7 The experimental results of read characteristics in block device layer

      3.3.3 應(yīng)用啟動運(yùn)行

      為了探索應(yīng)用啟動運(yùn)行時(shí)的讀特征,本文首先對混合式閃存進(jìn)行日常使用,之后對應(yīng)用啟動的關(guān)鍵數(shù)據(jù)進(jìn)行讀取,實(shí)驗(yàn)結(jié)果如圖 8 所示。從實(shí)驗(yàn)結(jié)果可以看出,關(guān)鍵數(shù)據(jù)(Libmerge.so)的讀取延遲為 QLC 的讀取延遲。在日常使用中,混合式閃存啟動相關(guān)的關(guān)鍵數(shù)據(jù)會被遷移到 QLC區(qū)域,且該過程用戶不可知。這將導(dǎo)致用戶在日常使用過程中發(fā)現(xiàn),剛安裝的應(yīng)用啟動運(yùn)行速度快,而使用一段時(shí)間的應(yīng)用啟動運(yùn)行速度慢。

      圖8 關(guān)鍵數(shù)據(jù)訪問延遲Fig. 8 The access latency of critical data

      3.4 讀寫沖突

      3.4.1 文件系統(tǒng)層

      本文通過 Filebench 對混合式閃存和 SLC 純盤下發(fā)不同讀寫比例的文件系統(tǒng)級真實(shí)負(fù)載,觀察混合式閃存的讀寫混合性能表現(xiàn)。真實(shí)負(fù)載的特征如表 1 所示,實(shí)驗(yàn)結(jié)果如圖 9 所示。其中,實(shí)線表示純盤在各文件系統(tǒng)下的性能,虛線表示混合盤在各文件系統(tǒng)下的性能。從實(shí)驗(yàn)結(jié)果可以看出,對于非讀密集型讀寫混合負(fù)載,純盤的性能明顯優(yōu)于混合式閃存。這是由于混合式閃存中多種介質(zhì)的訪問延遲不同,使其讀寫沖突現(xiàn)象更嚴(yán)重。

      圖9 文件系統(tǒng)層讀寫沖突實(shí)驗(yàn)結(jié)果Fig. 9 The experimental results of read/write interference in filesystem layer

      表1 真實(shí)負(fù)載的特征Table 1 The characteristics of real traces

      3.4.2 塊設(shè)備層

      本文通過 Fio 下發(fā)不同比例的讀寫請求,觀察混合式閃存的讀性能表現(xiàn),來探索讀寫沖突的特點(diǎn),實(shí)驗(yàn)結(jié)果如圖 10 所示。其中,負(fù)載大小為 64 MB,采用隨機(jī)讀寫模式,隊(duì)列長度為 64,請求大小為 4 KB。圖 10 將所有讀請求按照延遲從小到大順序排列,顯示位于所有讀請求百分比位置讀請求完成延遲,RW 表示讀寫請求占比,W90+ 表示寫入數(shù)據(jù)量將會觸發(fā)混合式閃存中的數(shù)據(jù)遷移。從圖中可以看出,純盤仍然存在讀寫沖突問題,但混合式閃存因性能差異和內(nèi)部數(shù)據(jù)遷移的影響,使得讀性能進(jìn)一步惡化。

      圖10 塊設(shè)備層讀寫沖突實(shí)驗(yàn)結(jié)果Fig. 10 The experimental results of read/write interference in block device layer

      3.4.3 應(yīng)用啟動運(yùn)行

      為了觀察應(yīng)用啟動運(yùn)行過程中混合式閃存的讀寫沖突表現(xiàn),本文設(shè)計(jì)通過對混合式閃存施加內(nèi)存壓力和 IO 壓力,觀察讀請求的性能表現(xiàn)。對于應(yīng)用啟動,通過提前啟動多個應(yīng)用來觸發(fā)內(nèi)存交換(圖中的 SWAP)從而施加內(nèi)存壓力,以及通過下載視頻(圖中的 MD)來施加 IO 壓力,實(shí)驗(yàn)結(jié)果如圖 11 所示。從圖中可以看出,后臺進(jìn)程的寫請求會導(dǎo)致應(yīng)用啟動過程中讀請求產(chǎn)生嚴(yán)重尾端延遲問題。如圖 12 所示,對于應(yīng)用運(yùn)行,通過同時(shí)運(yùn)行多個應(yīng)用來施加內(nèi)存壓力(圖中的 case 2)。從圖中可以看出,后臺內(nèi)存交換進(jìn)程的寫請求也會導(dǎo)致應(yīng)用運(yùn)行過程中嚴(yán)重尾端延遲問題。

      圖11 應(yīng)用啟動請求延遲的累積分布Fig. 11 Latency cumulative distribution of application launching

      圖12 應(yīng)用運(yùn)行請求延遲的累積分布Fig. 12 Latency cumulative distribution of application running

      3.5 容量特征

      為了探索混合式閃存的容量特征,即寫入數(shù)據(jù)量對混合式閃存帶來的影響,本文通過 Fio 向混合式閃存中緩存不同數(shù)據(jù)量(占設(shè)備容量的百分比)的數(shù)據(jù),觀察緩存數(shù)據(jù)的數(shù)據(jù)量對混合式閃存性能的影響。其中,順序?qū)懻埱蟠笮?1 MB,隨機(jī)寫請求大小為 4 KB,隊(duì)列長度都設(shè)置為 32。實(shí)驗(yàn)結(jié)果如圖 13 所示。對于數(shù)據(jù)緩存,本地訪問性能高于網(wǎng)絡(luò)帶寬使緩存數(shù)據(jù)的訪問性能應(yīng)隨著緩存數(shù)據(jù)量的增加而增加。然而,從圖中可以看出,隨著緩存數(shù)據(jù)量的增加,混合式閃存中緩存數(shù)據(jù)的訪問性能反而下降。這是因?yàn)殡S著緩存數(shù)據(jù)的增加,模擬 SLC 會更多地轉(zhuǎn)換成 QLC,從而導(dǎo)致混合式閃存的整體性能下降。

      圖13 緩存數(shù)據(jù)性能表現(xiàn)Fig. 13 The performance of cached data

      3.6 總結(jié)

      本節(jié)對真實(shí)混合式存儲設(shè)備進(jìn)行多個層次(文件系統(tǒng)層和塊設(shè)備層)、多種應(yīng)用場景(各種真實(shí)負(fù)載和標(biāo)準(zhǔn)負(fù)載)和多角度(寫特征、讀特征、讀寫沖突和容量特征)的全方位詳細(xì)分析,挖掘其中的特性和存在的問題。對于寫特征,無論從文件系統(tǒng)還是塊設(shè)備層,混合式存儲更易因內(nèi)部數(shù)據(jù)遷移導(dǎo)致主機(jī)請求訪問性能下降。對于讀特征,QLC 中的直接讀取現(xiàn)象會影響設(shè)備的性能和可靠性。對于讀寫沖突,因混合式設(shè)備中各請求延遲差異大以及數(shù)據(jù)遷移等行為更多,導(dǎo)致讀寫沖突的現(xiàn)象更明顯。對于容量特征,在混合式設(shè)備中緩存數(shù)據(jù)量增多并不能帶來更好的性能。

      4 前沿研究進(jìn)展

      針對以上混合式閃存中存在的問題,本節(jié)將介紹相關(guān)的解決思路和最新的研究進(jìn)展。針對寫特征相關(guān)研究,主要分為如何充分利用模擬 SLC加速數(shù)據(jù)寫入的同時(shí)避免性能坍塌,以及如何降低由于模擬 SLC 容量較小導(dǎo)致的低效垃圾回收的問題。針對讀特征相關(guān)研究,主要分為如何充分利用模擬 SLC 加速讀性能,以及如何避免QLC 的頻繁讀取導(dǎo)致的讀干擾問題。針對讀寫沖突相關(guān)研究,主要是如何避免讀寫數(shù)據(jù)通路發(fā)生爭用。針對容量特征相關(guān)研究,主要是如何控制混合式閃存的數(shù)據(jù)落盤從而避免設(shè)備占用率高導(dǎo)致的過多模擬 SLC 轉(zhuǎn)換成 QLC。

      4.1 寫特征

      根據(jù)混合式閃存架構(gòu)的分析和實(shí)驗(yàn)數(shù)據(jù)結(jié)果可知,模擬 SLC 的容量較小,當(dāng)寫入數(shù)據(jù)量過多時(shí)會導(dǎo)致數(shù)據(jù)從模擬 SLC 向 QLC 遷移,這時(shí)混合式閃存的整體性能將會受到較大影響。為解決該問題,現(xiàn)有的研究方案集中于開辟直接寫入QLC 的數(shù)據(jù)通路[8-11]。但由于 QLC 的性能、可靠性和壽命等問題,需要對 QLC 中寫入的數(shù)據(jù)進(jìn)行控制。Stoica 等[8]通過建立理論模型論證了進(jìn)行冷熱數(shù)據(jù)分離的必要性,直接將冷數(shù)據(jù)寫入QLC 中將帶來較大的整體性能提升。這是由于冷數(shù)據(jù)的訪問次數(shù)較少,若存儲在模擬 SLC 中會占用空間,減少對模擬 SLC 的數(shù)據(jù)訪問,同時(shí)導(dǎo)致數(shù)據(jù)遷移的發(fā)生。然而,對于冷熱數(shù)據(jù)的識別僅是通過預(yù)先標(biāo)識,并未提供冷熱數(shù)據(jù)識別的方法。Shi 等[9]根據(jù)請求大小來對數(shù)據(jù)進(jìn)行冷熱分類。這是因?yàn)樵獢?shù)據(jù)多為小請求,且對于性能的影響更為關(guān)鍵。因此當(dāng)請求下發(fā)時(shí),根據(jù)當(dāng)前請求的大小處于歷史請求大小中的位置,決定該請求是否為熱請求。Li 等[10]綜合考慮請求的訪問次數(shù)和最近訪問時(shí)間來判斷請求的熱度,通過一定長度的最近最少使用(Least Recently Used,LRU)鏈表來記錄請求的最近訪問時(shí)間,同時(shí)會記錄請求的訪問次數(shù)。HyFlex[11]中進(jìn)一步增加設(shè)置了觸發(fā)數(shù)據(jù)寫入 QLC 的條件。其認(rèn)為數(shù)據(jù)坍塌往往是模擬 SLC 空間不夠用導(dǎo)致的,因此僅當(dāng)混合式閃存中有效數(shù)據(jù)量快速增長時(shí)才有模擬SLC 空間不夠用的風(fēng)險(xiǎn),此時(shí)才將部分?jǐn)?shù)據(jù)寫入QLC。這樣可以充分利用模擬 SLC 的性能,同時(shí)避免性能坍塌情況的出現(xiàn)。然而,現(xiàn)有的數(shù)據(jù)識別策略均還未達(dá)到準(zhǔn)確識別的程度,因此未來如何對數(shù)據(jù)識別放置才能充分利用好模擬 SLC 和QLC 的特性仍有廣闊的研究空間。

      另一方面,由于模擬 SLC 空間區(qū)域較小,數(shù)據(jù)無法得以充分更新,導(dǎo)致很多后續(xù)將被更新的數(shù)據(jù)提前寫入 QLC。此時(shí)會帶來額外的數(shù)據(jù)寫入,加速混合式閃存的磨損,同時(shí)模擬 SLC 區(qū)域中垃圾回收的效率低將導(dǎo)致混合式閃存的整體性能下降。HyFlex[11]中提出,當(dāng)模擬 SLC 區(qū)域中垃圾回收的效率較低時(shí),利用 QLC 可以動態(tài)轉(zhuǎn)換成模擬 SLC 的特性,將部分 QLC 臨時(shí)轉(zhuǎn)換成模擬 SLC 來提供更多空間進(jìn)行數(shù)據(jù)更新,提升垃圾回收的效率。除此之外,該類問題的研究較少,仍需要進(jìn)行更多的探索來進(jìn)一步解決該問題。

      4.2 讀特征

      根據(jù)讀數(shù)據(jù)通路的理論分析和實(shí)驗(yàn)結(jié)果可知,混合式閃存中數(shù)據(jù)會經(jīng)過數(shù)據(jù)遷移放入 QLC中,并可能從 QLC 中被頻繁讀取,導(dǎo)致嚴(yán)重的讀干擾問題。為了解決這一問題,現(xiàn)有的研究方案主要是兩種思路,一種是降低通路電壓,另一種是進(jìn)行數(shù)據(jù)搬移。Cai 等[12]提出根據(jù)每個塊每天出錯的次數(shù)和 ECC 可糾錯的位數(shù)來動態(tài)調(diào)整頁面讀取的通路電壓,從而最小化頁面讀取對其他頁面造成的讀干擾。與之不同的是,Werner 等[13]通過讀刷新的方式來解決該問題——當(dāng)讀請求服務(wù)時(shí),其相應(yīng)區(qū)域的讀計(jì)數(shù)便會增加,當(dāng)區(qū)域的讀計(jì)數(shù)值達(dá)到產(chǎn)生讀干擾的限制時(shí),該區(qū)域的數(shù)據(jù)將被寫入新的空閑區(qū)域,從而避免讀干擾帶來的影響。Li 等[14]在此基礎(chǔ)上優(yōu)化了數(shù)據(jù)寫入的位置選擇,將被頻繁讀取的數(shù)據(jù)放入擦除次數(shù)少以及累積讀取次數(shù)少的塊。然而,現(xiàn)有關(guān)于讀干擾的研究仍集中于非混合式閃存,并未考慮如何利用模擬 SLC 的可靠性來更好地解決該問題。

      從 QLC 中頻繁讀取數(shù)據(jù)除了會帶來可靠性問題外,其性能也會降低,尤其是在關(guān)鍵數(shù)據(jù)被遷移至 QLC 之后,對用戶體驗(yàn)的影響更嚴(yán)重。Sun 等[15]提出使用 LRU 鏈表維護(hù)最近訪問的數(shù)據(jù)信息,并通過數(shù)據(jù)是否位于 LRU 鏈表來判斷數(shù)據(jù)的冷熱,將其中的熱數(shù)據(jù)從 QLC 遷移至快速存儲介質(zhì)。Chen 等[16]提出將小數(shù)據(jù)文件固定在 SLC 中進(jìn)行訪問。這是因?yàn)殛P(guān)鍵數(shù)據(jù)往往是小數(shù)據(jù),如元數(shù)據(jù),同時(shí)對于 QLC 而言訪問大數(shù)據(jù)時(shí)可以利用其內(nèi)部的并行性,從而提升性能。因此,將小數(shù)據(jù)文件固定在 SLC 中可以提升設(shè)備的訪問性能和用戶體驗(yàn)。然而,現(xiàn)有的數(shù)據(jù)識別方式仍然無法準(zhǔn)確判斷數(shù)據(jù)的屬性,若過多的數(shù)據(jù)存儲在模擬 SLC 中,將會導(dǎo)致數(shù)據(jù)遷移,影響混合式閃存的整體訪問性能。因此,如何準(zhǔn)確識別數(shù)據(jù)特性從而更好地利用模擬 SLC 和QLC 的特性,以及如何根據(jù)模擬 SLC 的使用狀態(tài)來動態(tài)調(diào)整數(shù)據(jù)的放置策略將成為此類研究的重難點(diǎn)。

      4.3 讀寫沖突

      根據(jù)混合式閃存數(shù)據(jù)通路的理論分析和實(shí)驗(yàn)結(jié)果可知,由于兩種介質(zhì)的訪問性能差異性和架構(gòu)的復(fù)雜性,混合式閃存中的讀寫沖突相較于純盤更為嚴(yán)重。為了解決該問題,現(xiàn)有的解決方案主要分為 3 種:基于請求調(diào)度、基于數(shù)據(jù)冗余和基于數(shù)據(jù)分區(qū)。Nguyen 等[17]和 Gao 等[18]通過優(yōu)先調(diào)度讀請求來避免寫請求長時(shí)間阻塞讀請求,Wu 等[19]提出當(dāng)寫請求正在執(zhí)行時(shí)讀請求被下發(fā)——將當(dāng)前的寫請求掛起執(zhí)行讀請求。HotR[20-23]提出將頻繁訪問的數(shù)據(jù)復(fù)制一份放到專門的區(qū)域,當(dāng)讀寫請求發(fā)生沖突時(shí),從該區(qū)域讀取數(shù)據(jù),從而緩解讀寫沖突。Lv 等[24]提出大部分?jǐn)?shù)據(jù)為只讀數(shù)據(jù)或只寫數(shù)據(jù),因此將空間劃分為讀區(qū)域和寫區(qū)域來分別存放相應(yīng)訪問類型的數(shù)據(jù),從而避免讀寫沖突。

      現(xiàn)有的這些解決方案并未充分利用混合式閃存的特性。基于請求調(diào)度的策略并未將混合式閃存中不同介質(zhì)讀寫延遲的不同特性納入考量,特別是對 QLC 的讀取延遲與模擬 SLC 的寫入延遲相差不大的情況。基于數(shù)據(jù)冗余和數(shù)據(jù)分區(qū)的策略并未考慮混合式閃存中具有兩種不同介質(zhì),因此如何放置不同類別的數(shù)據(jù)從而更好地利用好不同介質(zhì)的特性仍然有待探索。

      4.4 容量特征

      根據(jù)混合式閃存架構(gòu)的理論分析和實(shí)驗(yàn)結(jié)果可知,當(dāng)緩存數(shù)據(jù)量過多時(shí),不僅無法提升緩存數(shù)據(jù)的訪問性能,反而會導(dǎo)致過多的模擬 SLC轉(zhuǎn)換成 QLC,從而影響混合式閃存的整體性能。為解決該問題,DFCache[25]提出由于緩存數(shù)據(jù)中大部分網(wǎng)絡(luò)數(shù)據(jù)不會被再次訪問,因此設(shè)計(jì)提出緩存文件篩選器和緩存空間管理器。緩存文件篩選器根據(jù)數(shù)據(jù)的訪問頻次來決定緩存數(shù)據(jù)是否值得被緩存,緩存空間管理器通過限制緩存空間的大小和設(shè)計(jì)緩存數(shù)據(jù)剔除策略來使緩存數(shù)據(jù)總是小于設(shè)備中剩余模擬 SLC 空間的大小,從而避免過多的緩存數(shù)據(jù)寫入混合式閃存。該方法減少了緩存數(shù)據(jù)量,避免了無用的緩存數(shù)據(jù)造成混合式閃存的整體性能下降。CacheSifter[26]同樣提出很多緩存文件未被使用便被刪除,不同的是他提出使用機(jī)器學(xué)習(xí)的方式來對緩存文件進(jìn)行分類,基于緩存數(shù)據(jù)的活躍期進(jìn)行分別管理,只將必要的緩存文件寫回混合式閃存,從而提升混合式閃存的性能和壽命。對于混合式閃存容量特征的相關(guān)研究,一方面緩存數(shù)據(jù)的管理仍具有探索空間,考慮如何更準(zhǔn)確地設(shè)計(jì)識別關(guān)鍵緩存數(shù)據(jù),從而提升緩存數(shù)據(jù)的訪問性能,同時(shí)避免過多緩存數(shù)據(jù)影響混合式閃存的整體性能;另一方面需要探索更多類型數(shù)據(jù)進(jìn)行針對性識別管理,避免容量特征的相關(guān)問題。

      5 結(jié)論與展望

      混合式閃存已成為消費(fèi)級終端的主流存儲設(shè)備,然而現(xiàn)有研究仍未對其中所存在的問題和特性進(jìn)行充分的探索。本文從混合式閃存的架構(gòu)出發(fā),從多個層級(文件系統(tǒng)層和塊設(shè)備層)、多個場景(各種真實(shí)負(fù)載和標(biāo)準(zhǔn)負(fù)載)以及多個角度(讀特征、寫特征、讀寫沖突和容量特征)探索其中存在的真實(shí)問題,并針對這些問題的現(xiàn)有研究進(jìn)行了歸納和梳理。同時(shí),進(jìn)一步對混合式閃存的寫特征、讀特征、讀寫沖突和容量特征的現(xiàn)有研究進(jìn)行綜合比較,探討和評述未來的發(fā)展方向。對于混合式閃存而言,如何對其中的數(shù)據(jù)進(jìn)行準(zhǔn)確識別劃分從而更好地利用兩種介質(zhì)的特性是未來的關(guān)鍵問題。

      猜你喜歡
      存儲設(shè)備容量沖突
      耶路撒冷爆發(fā)大規(guī)模沖突
      “三宜”“三不宜”化解師生沖突
      井岡教育(2020年6期)2020-12-14 03:04:32
      Windows 7下USB存儲設(shè)備接入痕跡的證據(jù)提取
      基于Flash芯片的新型存儲設(shè)備數(shù)據(jù)恢復(fù)技術(shù)研究
      SnO2納米片容量異常行為的新解釋
      2015年上半年我國風(fēng)電新增并網(wǎng)容量916萬千瓦
      風(fēng)能(2015年8期)2015-02-27 10:15:12
      2015年一季度我國風(fēng)電新增并網(wǎng)容量470萬千瓦
      風(fēng)能(2015年5期)2015-02-27 10:14:46
      用批處理管理計(jì)算機(jī)USB設(shè)備的使用
      “鄰避沖突”的破解路徑
      浙江人大(2014年6期)2014-03-20 16:20:40
      焊管(2013年11期)2013-04-09 07:16:58
      肇东市| 淳化县| 西充县| 沁阳市| 晋州市| 惠东县| 克什克腾旗| 从江县| 开化县| 曲水县| 威宁| 民丰县| 乌海市| 项城市| 香格里拉县| 阿拉善左旗| 来凤县| 金沙县| 屏东市| 大同县| 汉川市| 墨脱县| 宝坻区| 三河市| 鄂托克前旗| 泰和县| 徐汇区| 成武县| 汕尾市| 郁南县| 江津市| 常宁市| 四会市| 济南市| 通化县| 新晃| 全南县| 临汾市| 巩留县| 丰都县| 于都县|