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

?

基于磁盤(pán)緩存技術(shù)與數(shù)據(jù)去重優(yōu)化磁盤(pán)性能表現(xiàn)

2022-07-09 09:23苑舒斌周曉宇韓宇
電子元器件與信息技術(shù) 2022年5期
關(guān)鍵詞:磁盤(pán)命中率硬盤(pán)

苑舒斌,周曉宇,韓宇

中海油信息科技有限公司北京分公司,北京,100010

0 引言

Dedup是一種用于優(yōu)化磁盤(pán)占用空間的方式。它可以將磁盤(pán)中重復(fù)的數(shù)據(jù)合并,并以引用的方式虛擬成多份數(shù)據(jù)。在磁盤(pán)的數(shù)據(jù)內(nèi)容重復(fù)性很高的情況下,相同的數(shù)據(jù)可以只存儲(chǔ)一份,大幅度地減少了磁盤(pán)空間的占用。但同時(shí)也帶來(lái)了數(shù)據(jù)隨機(jī)性上升以及IO性能降低等其他問(wèn)題。

SSD Cache是常見(jiàn)的分層存儲(chǔ)方式之一,通過(guò)將頻繁訪問(wèn)的熱點(diǎn)數(shù)據(jù)存儲(chǔ)在高速存儲(chǔ)中、冷數(shù)據(jù)存儲(chǔ)在低速存儲(chǔ)中,可以起到使用較低的成本達(dá)到較高的磁盤(pán)性能的作用。SSD是最常見(jiàn)的高速非易失性存儲(chǔ),隨機(jī)讀寫(xiě)能力可達(dá)普通機(jī)械硬盤(pán)的100~1000倍,其擁有隨機(jī)讀寫(xiě)性能強(qiáng)、訪問(wèn)延遲低且斷電不丟失數(shù)據(jù)的特點(diǎn),常在分層存儲(chǔ)中作為緩存層使用。

在Dedup的應(yīng)用場(chǎng)景下,IO操作數(shù)量增加,訪問(wèn)延遲敏感性上升,但同時(shí)也帶來(lái)了更密集的數(shù)據(jù)訪問(wèn)。而SSD Cache所使用的LRU算法對(duì)訪問(wèn)數(shù)據(jù)的密集程度較為敏感,因此,對(duì)數(shù)據(jù)進(jìn)行Dedup可以在一定程度上提高Cache的性能表現(xiàn)。虛擬數(shù)據(jù)優(yōu)化器VDO(virtual data optimizer)是由紅帽提供的一款存儲(chǔ)軟件,VDO是一個(gè)內(nèi)核模塊,可以節(jié)省磁盤(pán)空間并減小復(fù)制帶寬。VDO位于任何塊存儲(chǔ)設(shè)備的頂部,提供零塊消除、冗余塊的分解和數(shù)據(jù)壓縮。VDO包含兩個(gè)部分,UDS Portion與VDO Portion。UDS Portion用于存儲(chǔ)每個(gè)塊的獨(dú)特名稱和位置,而VDO Portion用于存儲(chǔ)數(shù)據(jù)內(nèi)容。

OpenCAS是一個(gè)開(kāi)源項(xiàng)目,包括塊緩存軟件庫(kù)、適配器、工具等。此緩存加速軟件的主要目的是通過(guò)使用高性能設(shè)備來(lái)加速后端塊設(shè)備。

在本文的方案中,會(huì)使用這兩個(gè)工具進(jìn)行組合測(cè)試。

1 原理

1.1 VDO 對(duì)磁盤(pán)IO的負(fù)面影響

VDO訪問(wèn)數(shù)據(jù)時(shí),需要分成兩次IO操作。第一次,先訪問(wèn)UDS Portion,獲取所需要的VDO Block所在位置;第二次訪問(wèn),則對(duì)VDO Block進(jìn)行讀取。這造成了較高的讀放大,并且劣化了讀取的連續(xù)性,對(duì)磁盤(pán)的性能表現(xiàn)有較大的負(fù)面影響。當(dāng)VDO寫(xiě)入數(shù)據(jù)時(shí),第一步是寫(xiě)入操作,VDO會(huì)先分配一個(gè)空閑的VDO Block用于數(shù)據(jù)寫(xiě)入,并修改UDS信息,此過(guò)程產(chǎn)生兩個(gè)IO操作;第二步是Dedup操作,VDO Dedup模塊會(huì)計(jì)算該Block的哈希(Hash),并根據(jù)Hash尋找對(duì)應(yīng)Block。如果沒(méi)有找到,則直接返回;如果找到相同Block,則會(huì)讀出該Block并進(jìn)行比對(duì),如果結(jié)果不同則直接返回,如果結(jié)果相同則修改UDS信息,并廢棄之前的VDO Block。數(shù)據(jù)訪問(wèn)過(guò)程如圖1所示。

圖1 VDO數(shù)據(jù)訪問(wèn)過(guò)程

經(jīng)過(guò)研究可以發(fā)現(xiàn),當(dāng)寫(xiě)入大量數(shù)據(jù)時(shí),每一次寫(xiě)操作會(huì)附帶產(chǎn)生至少兩個(gè)IO操作,最差的情況下會(huì)產(chǎn)生4次IO操作,并且連續(xù)性較差,大幅度劣化了機(jī)械磁盤(pán)的IO表現(xiàn)。而在沒(méi)有VDO的情況下,連續(xù)的數(shù)據(jù)不會(huì)被切分成不連續(xù)的數(shù)據(jù),且每次IO操作嚴(yán)格對(duì)應(yīng)一次物理IO,有利于機(jī)械硬盤(pán)的性能發(fā)揮。磁盤(pán)寫(xiě)操作如圖2所示。

圖2 磁盤(pán)寫(xiě)操作

1.2 緩存命中率與IOPS的關(guān)系

記后備存儲(chǔ)的IOPS為H,Cache的IOPS為S,Cache命中率為r,理論IOPS為C。經(jīng)過(guò)理論計(jì)算可以得出

考慮到S與H的數(shù)值都由硬件決定,在相同的情況下將S記為H,則公式(1)可以繼續(xù)化簡(jiǎn)為

可以看出,在H與不變的情況下,C僅與r相關(guān)。為了方便,在接下來(lái)的計(jì)算中,將r定為100,這個(gè)數(shù)字與本文的測(cè)試環(huán)境是接近的,則可以得到函數(shù)

圖3展示了Cache命中率和IOPS的對(duì)應(yīng)關(guān)系。

圖3 Cache命中率與IOPS的關(guān)系

因此,緩存加速軟件的性能表現(xiàn)與命中率息息相關(guān)。

1.3 緩存命中率與緩存大小的關(guān)系

Cache的命中率隨它的容量增加而提高,它們之間的關(guān)系曲線如圖4所示。在Cache容量比較小的時(shí)候,命中率提高得非???,但根據(jù)邊際效應(yīng)遞減原理,隨著Cache容量的增加,命中率提高的速度逐漸降低。當(dāng)Cache的容量增加到無(wú)窮大時(shí),理論期望命中率可達(dá)到100%,但是這實(shí)際上是做不到的。

1.4 Cache對(duì)VDO讀取性能的提升作用

VDO訪問(wèn)數(shù)據(jù)時(shí),需要分成兩次IO操作。第一次,先訪問(wèn)UDS Portion,獲取所需要的 VDO Block所在位置;第二次訪問(wèn),則對(duì)VDO Block進(jìn)行讀取。由于UDS Portion的容量一般較小,可以認(rèn)為UDS Portion能夠完全被Cache命中,因此,其主要影響的是第二次VDO Block的Cache命中率。經(jīng)過(guò)計(jì)算,可以得到第二個(gè)公式,在帶有VDO的情況下,C的公式為:

此外,在訪問(wèn)不同的VDO邏輯塊時(shí),若其內(nèi)容相同,則會(huì)被分配到相同的VDO Block中,這可以提升VDO Block訪問(wèn)的命中率,對(duì)性能提升有一定的正面作用,當(dāng)環(huán)境恰當(dāng)?shù)臅r(shí)候,甚至可以達(dá)到或者超過(guò)SSD Cache的性能。下面是在真實(shí)環(huán)境下進(jìn)行的熱點(diǎn)分析。

在不同的環(huán)境中,熱點(diǎn)數(shù)據(jù)的重復(fù)程度有相當(dāng)大的區(qū)別。本文以云環(huán)境的數(shù)據(jù)讀取情況為例,選取了一個(gè)磁盤(pán),在這個(gè)磁盤(pán)上一共啟動(dòng)了6臺(tái)虛擬機(jī),其會(huì)不斷地產(chǎn)生大量數(shù)據(jù)訪問(wèn)。通過(guò)對(duì)數(shù)據(jù)的跟蹤發(fā)現(xiàn),在使用相同的256G SSD對(duì)1.5TB硬盤(pán)進(jìn)行加速的情況下,SSD Cache的命中率為90%;而在類似的環(huán)境中,使用Dedup去重后,再進(jìn)行跟蹤,日志顯示命中率為97%。

那么,帶入之前的兩個(gè)公式,本文可以得出以下結(jié)論。在使用Dedup之前,SSD Cache可以帶來(lái)9.2倍的性能提升;而在使用Dedup之后,可以獲得20.1倍的性能提升。并且當(dāng)繼續(xù)增大,提升的比例也會(huì)繼續(xù)增大;當(dāng)=1000時(shí),Dedup與Cache的搭配可以獲得31.3倍的性能提升,而單純的Cache只能獲得9.9倍的提升。也就是說(shuō),當(dāng)Cache的性能提高的時(shí)候,使用Dedup可以獲得更高的邊際效益[1]。

1.5 Cache對(duì)VDO寫(xiě)入性能的提升作用

VDO寫(xiě)入大量重復(fù)數(shù)據(jù)時(shí),會(huì)產(chǎn)生大量附帶的讀操作與3個(gè)寫(xiě)操作,但是當(dāng)使用SSD Cache時(shí),讀操作可以被Cache儲(chǔ)存,寫(xiě)操作則會(huì)被合并。因此,本文可以減少1次讀寫(xiě)操作,將最差情況下的3次IO操作減少到最差情況的2次IO操作。同時(shí),由于SSD本身的讀寫(xiě)特性,VDO讀取數(shù)據(jù)連續(xù)性較低的問(wèn)題也可以被大幅度緩解。

2 方案

在傳統(tǒng)的單層存儲(chǔ)中,發(fā)起的訪問(wèn)請(qǐng)求會(huì)被傳遞給真實(shí)的物理設(shè)備,物理設(shè)備根據(jù)請(qǐng)求的偏移量進(jìn)行讀取,然后返回結(jié)果,IO性能僅取決于硬盤(pán)設(shè)備本身。但在本文的分層存儲(chǔ)模型中,當(dāng)用戶發(fā)起訪問(wèn)請(qǐng)求時(shí),會(huì)先經(jīng)過(guò)VDO層,VDO再將請(qǐng)求發(fā)送給OpenCAS層,OpenCAS從硬盤(pán)或緩存中讀取數(shù)據(jù),并將結(jié)果返回給VDO。具體過(guò)程如圖4所示。此時(shí),IO的性能同時(shí)受到硬盤(pán)、緩存設(shè)備、緩存策略以及緩存命中率的影響[2]。

圖4 所提分層存儲(chǔ)過(guò)程

根據(jù)不同情況,本文選取了兩種典型的Cache策略。

2.1 直寫(xiě)優(yōu)化模式

該模式下,SSD Cache不會(huì)提升VDO的寫(xiě)入性能,但是會(huì)提升VDO的讀取能力。在此種方案下,當(dāng)數(shù)據(jù)被寫(xiě)入VDO時(shí),VDO Block與UDS索引的改動(dòng)會(huì)被同時(shí)寫(xiě)入Cache與后備存儲(chǔ)中,其所需要的時(shí)間與直接落盤(pán)一致。當(dāng)VDO需要讀取數(shù)據(jù)時(shí),UDS數(shù)據(jù)存在于Cache中,VDO Block則會(huì)先從Cache中尋找,然后再?gòu)暮髠浯鎯?chǔ)中加載。因?yàn)椴煌壿媺K可以對(duì)應(yīng)同一個(gè)VDO Block,因此Cache命中率可以得到一定程度的提升。

2.2 寫(xiě)回優(yōu)化模式

該模式下,SSD Cache將會(huì)同時(shí)進(jìn)行Cache寫(xiě)入與讀取。在此種方案下,當(dāng)數(shù)據(jù)被寫(xiě)入VDO時(shí),VDO Block與UDS索引的改動(dòng)會(huì)被先寫(xiě)入Cache中,其所需要的時(shí)間遠(yuǎn)短于寫(xiě)入后備存儲(chǔ)所需要的時(shí)間。Cache會(huì)將寫(xiě)入的數(shù)據(jù)合并之后再落盤(pán),可以提高數(shù)據(jù)寫(xiě)入的連續(xù)程度,提高性能。當(dāng)VDO需要讀取數(shù)據(jù)時(shí),UDS數(shù)據(jù)存在于Cache中,VDO Block則先從Cache中尋找,再?gòu)暮髠浯鎯?chǔ)中加載。因?yàn)椴煌壿媺K可以對(duì)應(yīng)同一個(gè)VDO Block,因此Cache命中率同樣可以得到一定程度的提升。

根據(jù)兩種優(yōu)化模式的特點(diǎn),在測(cè)試中,本文選取了寫(xiě)回優(yōu)化模式作為本次測(cè)試的策略[3]。

3 測(cè)試結(jié)果

對(duì)本文所提方案的正確性進(jìn)行驗(yàn)證,測(cè)試環(huán)境為CentOS7.5操作系統(tǒng)、4塊6T磁盤(pán)組成RAID5、Intel S4510 960G。

3.1 機(jī)械硬盤(pán)和純Dedup模式的測(cè)試結(jié)果

機(jī)械硬盤(pán)模式的測(cè)試結(jié)果如表1所示。

表1 機(jī)械硬盤(pán)測(cè)試結(jié)果

純Dedup模式的測(cè)試結(jié)果如表2所示。

表2 純Dedup模式測(cè)試結(jié)果

對(duì)比裸盤(pán)與純Dedup模式可以發(fā)現(xiàn),4K隨機(jī)寫(xiě)有一定優(yōu)化,4K隨機(jī)讀的性能則降低了一半。這是由于4K隨機(jī)寫(xiě)在寫(xiě)入時(shí)分配的是連續(xù)的物理塊,可以提高連續(xù)性,一定程度上提高了寫(xiě)入性能;而其他情況則會(huì)降低讀寫(xiě)的連續(xù)性,且一次IO請(qǐng)求會(huì)產(chǎn)生兩次真實(shí)IO請(qǐng)求,導(dǎo)致性能嚴(yán)重下降。

3.2 SSD Cache的性能

測(cè)試時(shí),Cache命中率均維持在90%左右。根據(jù)SSD的標(biāo)稱性能,SSD的寫(xiě)入IOPS為60K,在SSD Cache開(kāi)啟寫(xiě)回模式下,進(jìn)行4K讀取時(shí)的性能提升了9.6倍;而按照理論計(jì)算,性能提升應(yīng)為9.9倍,結(jié)果與計(jì)算基本一致。在4K寫(xiě)入的情況下,數(shù)據(jù)會(huì)先寫(xiě)入SSD中。因此,其性能取決于SSD的性能與SSD Cache軟件的性能,測(cè)試的結(jié)果與SSD的標(biāo)稱性能一致[4]。SSD Cache的性能測(cè)試結(jié)果如表3所示。

表3 SSD Cache測(cè)試性能

3.3 SSD Cache與Dedup聯(lián)用情況下的性能

測(cè)試時(shí),Cache命中率均維持在97%左右。4K的隨機(jī)讀取性能相對(duì)機(jī)械盤(pán)提升了26.5倍,根據(jù)SSD的性能計(jì)算,讀取性能應(yīng)能提升到30倍,與計(jì)算基本相符。寫(xiě)入的性能相比SSD Cache模式降低至1/3,但依然能提升機(jī)械硬盤(pán)20倍的性能。如表4所示。

表4 SSD Cache與Dedup聯(lián)用性能

在此次測(cè)試中,SSD Cache的緩存磁盤(pán)處于有較多空余空間的狀態(tài)。在寫(xiě)回模式下,當(dāng)Dirty數(shù)據(jù)超過(guò)限制后,寫(xiě)入性能會(huì)下降到與直接寫(xiě)入硬盤(pán)相同。此時(shí),可以認(rèn)為與純Dedup模式下的數(shù)據(jù)一致[5]。

4 結(jié)語(yǔ)

經(jīng)過(guò)以上測(cè)試,可以得到的結(jié)論是:SSD Cache與Dedup的聯(lián)合使用可以進(jìn)一步提升性能,根據(jù)不同的SSD性能與命中率,提升效果也不同。根據(jù)實(shí)際測(cè)試的情況,Dedup與SSD Cache的聯(lián)用基本可以達(dá)到理論上的性能,印證了理論的正確性,但是由于SSD的性能依然受到數(shù)據(jù)隨機(jī)性的影響,因此實(shí)測(cè)數(shù)據(jù)和理論不完全相符。

但本次實(shí)驗(yàn)依然存在不足之處,可以繼續(xù)進(jìn)行改進(jìn)以提升性能。比如說(shuō),將Dedup的寫(xiě)入操作進(jìn)行分類,改善底層的連續(xù)性,并選擇性地進(jìn)行緩存,以減少寫(xiě)入時(shí)對(duì)SSD Cache的沖擊。

此外,本次測(cè)試中使用了寫(xiě)回策略進(jìn)行優(yōu)化,但SSD Cache在使用寫(xiě)回策略時(shí),同樣存在一些潛在問(wèn)題。根據(jù)不同的實(shí)現(xiàn)方法,SSD Cache在寫(xiě)回模式下,可能存在斷電后數(shù)據(jù)丟失、緩存寫(xiě)滿后性能下降的問(wèn)題,并不是萬(wàn)能的解決方案。

猜你喜歡
磁盤(pán)命中率硬盤(pán)
PCle 4.0平臺(tái)的性價(jià)比之選!WD_BLACK SN770固態(tài)硬盤(pán)
基于文獻(xiàn)回顧的罰球命中率與軀干穩(wěn)定性影響因素研究
它的好 它的壞 詳解動(dòng)態(tài)磁盤(pán)
解決Windows磁盤(pán)簽名沖突
Windows系統(tǒng)下動(dòng)態(tài)磁盤(pán)卷的分析與研究
克隆硬盤(pán)很簡(jiǎn)單
讓子彈飛
子彈不長(zhǎng)眼
插拔硬盤(pán)所引起的硬盤(pán)啟動(dòng)順序更改
达孜县| 新野县| 舞阳县| 新乡县| 舒城县| 黄龙县| 济源市| 屯门区| 嘉兴市| 抚州市| 全州县| 瑞丽市| 苗栗县| 彩票| 拜泉县| 广水市| 潍坊市| 成都市| 临朐县| 峨山| 南郑县| 醴陵市| 康平县| 高雄县| 焦作市| 汉阴县| 合肥市| 西贡区| 常宁市| 大城县| 龙州县| 宁安市| 团风县| 西城区| 化州市| 米泉市| 房山区| 杭锦旗| 阿拉善右旗| 长宁县| 龙门县|