0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于SSD緩存軟件MaxIO的詳細(xì)解析

SSDFans ? 2018-01-31 11:51 ? 次閱讀

閃存SSD基本成為當(dāng)前IT基礎(chǔ)設(shè)施中必不可少的元素。高IOPS、低延時(shí)和高帶寬是SSD的顯著特點(diǎn),單塊SSD的IOPS可以達(dá)到數(shù)萬(wàn)甚至百萬(wàn)之多,帶寬達(dá)到數(shù)GB/s,而延遲僅為幾十微秒,性能完全可以和高端存儲(chǔ)相媲美。SSD有效消除了計(jì)算和存儲(chǔ)的巨大鴻溝,解決了I/O性能瓶頸問題,尤其是I/O隨機(jī)讀寫能力。

在計(jì)算機(jī)系統(tǒng)中,CPU中有L1,L2、甚至有L3 Cache;Linux有Page Cache,MySQL有BufferCache/QueryCache;IO系統(tǒng)中RAID卡/磁盤也有Cache;在大型互聯(lián)網(wǎng)系統(tǒng)中,數(shù)據(jù)庫(kù)前面一般也都有一層MemCache。Cache是容量與性能之間取得平衡的結(jié)果,以更低的成本,獲得更高的收益,是系統(tǒng)設(shè)計(jì)應(yīng)遵循的原則。

目前閃存的價(jià)格已經(jīng)逼近SAS硬盤,但相對(duì)SATA硬盤還是要高于許多,迫于成本因素,全SSD存儲(chǔ)方案應(yīng)用仍然較少,多數(shù)應(yīng)用以SSD混合存儲(chǔ)配置為主,從而獲得較高的性價(jià)比。通常情況下,我們假設(shè)熱點(diǎn)數(shù)據(jù)占10-20%,配置相應(yīng)比例的SSD存儲(chǔ),采用Cache加速或Tier分層模式將熱點(diǎn)數(shù)據(jù)存儲(chǔ)在SSD存儲(chǔ)中,一旦熱點(diǎn)數(shù)據(jù)超過預(yù)先設(shè)置閾值或觸發(fā)遷移策略,則按相應(yīng)淘汰算法將較冷數(shù)據(jù)遷回HDD磁盤存儲(chǔ),從而期望在性能和容量方面達(dá)到整體平衡。

當(dāng)然混合存儲(chǔ)也并非完美。SSD擅長(zhǎng)的隨機(jī)讀寫,帶寬并不是它的強(qiáng)項(xiàng),對(duì)于帶寬型應(yīng)用,SSD對(duì)性能并沒有太大幫助,HDD存儲(chǔ)也容易堆疊起來。關(guān)于熱點(diǎn)數(shù)據(jù)占比,這個(gè)并不好估計(jì),如果SSD配置不足,性能會(huì)變得更差,SSD被寫滿時(shí)性能可能會(huì)出現(xiàn)較大的波動(dòng)。因此,實(shí)際應(yīng)用中要結(jié)合I/O特點(diǎn)設(shè)計(jì)合理的混合存儲(chǔ)模式,如果實(shí)在不合適,還是推薦使用全SSD存儲(chǔ),或者人工將應(yīng)用負(fù)載分配到SSD或HDD存儲(chǔ)中。

MaxIO簡(jiǎn)介MaxIO是一款SSD智能緩存加速軟件,利用I/O訪問的局部性原理,采用SSD作為傳統(tǒng)塊設(shè)備的緩存,充分利用SSD的I/O特點(diǎn)和性能優(yōu)勢(shì),專門針對(duì)慢速的HDD塊存儲(chǔ)進(jìn)行高效加速。MaxIO幾乎可以為任何塊設(shè)備創(chuàng)建緩存并提升性能,包括物理磁盤、基于RAID的DAS設(shè)備、SAN卷、Device Mapper卷,甚至軟RAID。

MaxIO采用了獨(dú)特且高效的緩存技術(shù)來加速企業(yè)級(jí)存儲(chǔ)應(yīng)用,對(duì)I/O進(jìn)行智能分析,根據(jù)加速設(shè)備SSD的大小,將更多更常用的熱點(diǎn)數(shù)據(jù)放置于高速SSD介質(zhì)中,有效縮短應(yīng)用等待數(shù)據(jù)的時(shí)間。MaxIO支持多種靈活的加速模式,針對(duì)不同的業(yè)務(wù)場(chǎng)景,可發(fā)揮不同的加速效果,包括透寫(Write Through)、回寫(Write Back)和只讀(Read Only或Write Around)三種加速模式。

MaxIO可以部署在任意X86硬件上,包括服務(wù)器和軟件定義存儲(chǔ)系統(tǒng),因此可以在存儲(chǔ)層和計(jì)算層靈活實(shí)現(xiàn)加速,且僅占用極少的系統(tǒng)CPU和內(nèi)存資源,能夠采用SSD為更多的應(yīng)用提供I/O性能加速。MaxIO采用透明加速配置,可在線增加或刪除加速模塊,應(yīng)用無需做任何配置更改,因此對(duì)企業(yè)應(yīng)用場(chǎng)景不產(chǎn)生任何干擾。MaxIO具有友好的硬件兼容性,廣泛支持各個(gè)廠商的SATA/SAS/PCIe/NVMe SSD。

MaxIO架構(gòu)

工作原理SSD Cache的基本原理很簡(jiǎn)單(如下圖所示),利用I/O訪問的局部性原理,將熱點(diǎn)數(shù)據(jù)放置在SSD上,下次再次訪問熱點(diǎn)數(shù)據(jù)時(shí),不需要經(jīng)過傳統(tǒng)硬盤的處理,而是直接在SSD上命中,極大的縮短IO響應(yīng)時(shí)間。

基于SSD緩存軟件MaxIO的詳細(xì)解析

SSD Cache的實(shí)現(xiàn)方式有多種,基于Linux內(nèi)核機(jī)制的實(shí)現(xiàn)主要有DM-Cache與IO攔截兩種方式,其中Flashcache是DM-Cache實(shí)現(xiàn)方式的典型代表,而MaxIO采用的是IO攔截實(shí)現(xiàn)方式。值得一提,正是因?yàn)闆]有采用Device Mapper機(jī)制,MaxIO不用創(chuàng)建新的DM設(shè)備,從而可以實(shí)現(xiàn)對(duì)應(yīng)用進(jìn)行靈活的透明加速。

Device mapper是Linux內(nèi)核中提供的一種從邏輯設(shè)備到物理設(shè)備的映射框架機(jī)制,在該機(jī)制下用戶可以很方便地根據(jù)需要制定實(shí)現(xiàn)存儲(chǔ)資源的管理策略。Device mapper在內(nèi)核中是作為一個(gè)塊設(shè)備驅(qū)動(dòng)被注冊(cè)的,它包含mapped device、映射表、target device三個(gè)重要對(duì)象概念。Device mapper本質(zhì)功能就是根據(jù)映射關(guān)系和target driver描述的IO處理規(guī)則,將IO請(qǐng)求從邏輯設(shè)備mapped device轉(zhuǎn)發(fā)相應(yīng)的target device上。DM-Cache正是利用了Device Mapper這一原理。將HDD 磁盤與SSD硬盤作為DM中的Target Device,聚合成為一個(gè)虛擬設(shè)備(Cache設(shè)備),同時(shí)將HDD磁盤與SSD硬盤Block進(jìn)行映射。Dm-Cache根據(jù)映射規(guī)則,可以將對(duì)HDD磁盤的操作轉(zhuǎn)換為對(duì)SSD硬盤的操作,從而實(shí)現(xiàn)將熱點(diǎn)數(shù)據(jù)存儲(chǔ)在SSD中的功能。HDD磁盤對(duì)SSD硬盤Block的映射,可以為簡(jiǎn)單的線性映射,也可以采用Hash映射。

IO攔截Cache實(shí)現(xiàn)的基本原理是對(duì)Linux通用塊層BIO請(qǐng)求進(jìn)行攔截,在Block Layer實(shí)現(xiàn)某些分發(fā)函數(shù)的鉤子函數(shù),同樣需要將磁盤Block與SSD硬盤Block進(jìn)行映射,根據(jù)映射規(guī)則以及操作類型決定是否將磁盤操作轉(zhuǎn)換為對(duì)SSD硬盤的操作。如在write-around模式中,則只需要對(duì)讀操作進(jìn)行處理:根據(jù)映射規(guī)則,首先查看Block是否存在SSD中,如果不存在,則從HDD中讀取,并寫入到SSD中,然后返回;如果已經(jīng)存在SSD中,則直接將讀請(qǐng)求轉(zhuǎn)換為對(duì)SSD映射Block的讀請(qǐng)求。

基于SSD緩存軟件MaxIO的詳細(xì)解析

如上圖軟件架構(gòu)所示,MaxIO緩存引擎主要由三個(gè)核心組件組成:

元數(shù)據(jù)管理引擎:管理內(nèi)存中的元數(shù)據(jù),維護(hù)高速緩存塊映射表;

緩存策略引擎:管理SSD緩存的I/O讀寫和替換策略;

數(shù)據(jù)遷移引擎:管理SSD緩存中的數(shù)據(jù)遷入和遷出;

MaxIO以固定大小的數(shù)據(jù)塊為單位進(jìn)行緩存加速,緩存策略包括只讀(Read-only或Write-around)、寫回(Write-back)和寫穿(Write-through)。數(shù)據(jù)塊存儲(chǔ)在SSD緩存中,直到被緩存的新數(shù)據(jù)塊所替換, 替換策略有LRU、FIFO和Random可供選擇。

MaxIO還包括兩個(gè)重要的子組件:性能分析器和GUI / CLI管理工具。性能分析器跟蹤和分析緩存性能,輸出信息可以幫助管理員監(jiān)控緩存效果和調(diào)整和緩存策略。MaxIO有兩種模式管理工具:可視GUI工具和命令行CLI工具,滿足不同管理員需要和喜好。MaxIO的模式引擎是模塊化的,允許動(dòng)態(tài)創(chuàng)建和變更緩存配置,可以使用CLI或GUI更改緩存策略(Read-only、Write-back和Write-through)和替換策略(FIFO,LRU和Random)。

元數(shù)據(jù)管理MaxIO元數(shù)據(jù)引擎將SSD中的高速緩存集映射到源塊設(shè)備扇區(qū)集合上,每個(gè)高速緩存集為2MB,支持2KB/4KB/8KB緩存塊大小,緩存塊默認(rèn)大小為4KB,每個(gè)緩存集包含512塊。選擇默認(rèn)值4KB,因?yàn)榇蠖鄶?shù)存儲(chǔ)系統(tǒng)的通用I/O塊大小也是4KB。假設(shè)800GB SSD,包含400K個(gè)緩存集(1組=2MB(512*4KB))。MaxIO內(nèi)置了性能分析器可以為選擇緩存塊大小提供參考數(shù)據(jù),性能分析器可以運(yùn)行多次,每次使用不同的塊大小,以確定不同的塊大小對(duì)MaxIO性能的影響,從而根據(jù)實(shí)際應(yīng)用場(chǎng)景選擇合適的塊大小以獲得最佳的性能加速效果。

高速緩存的元數(shù)據(jù)運(yùn)行時(shí)存儲(chǔ)在系統(tǒng)內(nèi)存,以提供高速緩存頁(yè)最快的映射。為了確保這不會(huì)對(duì)應(yīng)用程序的性能造成負(fù)擔(dān),MaxIO已被設(shè)計(jì)為非常高效地使用內(nèi)存頁(yè)。高速緩存所需的內(nèi)存約為高速緩存大小的0.1%,比如800GB高速緩存僅需要占用800MB系統(tǒng)內(nèi)存。元數(shù)據(jù)的副本存儲(chǔ)在緩存SSD中以幫助熱啟動(dòng),當(dāng)高速緩存被禁用時(shí),內(nèi)存中的元數(shù)據(jù)被寫入SSD,使得當(dāng)高速緩存被重新啟用時(shí),其數(shù)據(jù)可立即使用。

緩存策略緩存策略就是SSD高速緩存的I/O操作方式,不同的緩存模式將決定系統(tǒng)的性能。緩存模式描述緩存如何處理從主機(jī)到HDD的讀取和寫入操作,處理器從HDD讀取數(shù)據(jù)塊時(shí),該數(shù)據(jù)的副本被寫入SSD高速緩存。如果高速緩存中存在空塊,則將新塊寫入空塊中的一個(gè);如果高速緩存已滿并且沒有用于該數(shù)據(jù)的空間,則按照設(shè)置的緩存替換策略從高速緩存中驅(qū)逐舊塊,新的塊被寫在被逐出的塊空間上。MaxIO支持三種緩存策略:只讀、透寫、回寫。

只讀(Read-only)

基于SSD緩存軟件MaxIO的詳細(xì)解析

Read-only模式只對(duì)讀操作進(jìn)行緩存,寫操作不緩存。對(duì)于寫請(qǐng)求,寫入數(shù)據(jù)未存在緩存中時(shí),直接寫入HDD,高速緩存將忽略該數(shù)據(jù);如果寫入數(shù)據(jù)在高速緩存中存在,為保證數(shù)據(jù)一致性該高速緩存塊被置為無效。對(duì)于讀操作,如果在SSD中命中則直接返回,未命中則將數(shù)據(jù)復(fù)制到SSD中。這種模式非常適合讀多寫少的場(chǎng)景。只讀模式讀寫流程如上圖所示:

寫流程:寫操作不緩存,則直接寫HDD普通硬盤。即為:寫1;

讀流程:讀流程是需要分為以下2種情況:

(1) 讀的數(shù)據(jù)緩存在SSD設(shè)備中,數(shù)據(jù)可能是之前讀或者寫的數(shù)據(jù)(緩存到SSD中的),此時(shí)可以直接將SSD數(shù)據(jù)返回。流程為讀3;

(2) 讀的數(shù)據(jù)沒有緩存在SSD設(shè)備中,數(shù)據(jù)可能是第一次讀取,也可能是之前讀的數(shù)據(jù)但是已經(jīng)被覆蓋,此時(shí),首先需要將數(shù)據(jù)從磁盤上讀取到SSD中,然后從SSD中將數(shù)據(jù)返回。流程為讀1->讀2->讀3。

透寫(Write-through)

基于SSD緩存軟件MaxIO的詳細(xì)解析

Write-through模式下,對(duì)于讀數(shù)據(jù),全部緩存到高速設(shè)備SSD設(shè)備上;對(duì)于寫操作,也緩存到高速設(shè)備SSD中,同時(shí)也寫入到HDD中。這種模式比較適合讀多寫少,并且寫的數(shù)據(jù)是最近訪問的熱點(diǎn)數(shù)據(jù)場(chǎng)景。這種模式因?yàn)閷懸餐瑫r(shí)寫到HDD中,所以寫的性能得不到加速,但是數(shù)據(jù)最安全。透寫模式讀寫流程如上圖所示:

寫流程:SSD與HDD均需要寫入,所以寫1與寫2操作都是需要的。

讀流程:需要分為以下兩種情況處理

(1) 讀的數(shù)據(jù)緩存在SSD設(shè)備中,數(shù)據(jù)可能是之前讀或者寫的數(shù)據(jù),此時(shí)可以直接將SSD數(shù)據(jù)返回。流程為讀3;

(2) 讀的數(shù)據(jù)沒有緩存在SSD設(shè)備中,數(shù)據(jù)可能是第一次讀取,也可能是之前讀或者寫的數(shù)據(jù)但是已經(jīng)被覆蓋,此時(shí),首先需要將數(shù)據(jù)從磁盤上讀取到SSD中,然后從SSD中將數(shù)據(jù)返回。流程為讀1->讀2->讀3。

回寫(Write-back)

基于SSD緩存軟件MaxIO的詳細(xì)解析

Write-back回寫模式下,讀寫操作都在SSD首先執(zhí)行。寫請(qǐng)求數(shù)據(jù)會(huì)被寫入SSD緩存中,不會(huì)立即寫入HDD,當(dāng)SSD中的臟數(shù)據(jù)(與HDD中不一致的數(shù)據(jù))達(dá)到預(yù)先設(shè)定的閾值,會(huì)將臟數(shù)據(jù)同步到HDD中;讀請(qǐng)求和只讀或透寫模式處理類似。這是三種模式中讀寫性能最高的,因?yàn)閷懖僮髦苯訉懭隨SD而不是HDD,對(duì)剛剛寫入的塊的讀取操作將由SSD提供而不是HDD。透寫模式讀寫流程如上圖所示:

寫流程:寫流程分為以下2種情況:

(1) 寫的數(shù)據(jù)滿足緩存要求,此時(shí)只需要將SSD中的數(shù)據(jù)改寫為最新的數(shù)據(jù)即可。流程為寫2;

(2) 寫的數(shù)據(jù)不滿足一些特定的要求(如不對(duì)齊等情況),此時(shí)則直接將數(shù)據(jù)寫入到HDD普通硬盤中;流程為寫1;

讀流程:讀流程是分為以下2種情況:

(1) 讀的數(shù)據(jù)緩存在SSD設(shè)備中,數(shù)據(jù)可能是之前讀的數(shù)據(jù)(緩存到SSD中的),此時(shí)可以直接將SSD數(shù)據(jù)返回。流程為讀3;

(2) 讀的數(shù)據(jù)沒有緩存在SSD設(shè)備中,數(shù)據(jù)可能是第一次讀取,也可能是之前讀的數(shù)據(jù)但是已經(jīng)被覆蓋,或者是之前寫的數(shù)據(jù)但是被同步到HDD普通硬盤上,此時(shí),首先需要將數(shù)據(jù)從普通磁盤上讀取到SSD中,然后從SSD中將數(shù)據(jù)返回。流程為讀1->讀2->讀3。

在write-back模式中,不得不提及到數(shù)據(jù)回寫的過程。數(shù)據(jù)回寫指的是將SSD中的臟數(shù)據(jù)同步到HDD硬盤中,這個(gè)只有在write-back模式中才有。一般數(shù)據(jù)回寫會(huì)有一些系統(tǒng)參數(shù),如閾值(即臟數(shù)據(jù)達(dá)到一定的比率才會(huì)開始執(zhí)行數(shù)據(jù)回寫);時(shí)效時(shí)間(數(shù)據(jù)超過一定時(shí)間無操作,則可以執(zhí)行數(shù)據(jù)回寫);數(shù)據(jù)回寫的速率(因?yàn)閺腟SD中獎(jiǎng)數(shù)據(jù)寫入到HDD中,速度較慢,需要考慮回寫的速率限制)等參數(shù)?;貙憯?shù)據(jù)的時(shí)機(jī)與速率會(huì)很大程度上影響寫的性能,如果閾值設(shè)置的非常高,則當(dāng)?shù)竭_(dá)閾值后,數(shù)據(jù)回寫的速度會(huì)遠(yuǎn)遠(yuǎn)低于數(shù)據(jù)寫入到SSD中的速度,這就會(huì)造成SSD中并沒有充足的空間給新寫入的數(shù)據(jù),導(dǎo)致寫會(huì)直接寫入到HDD硬盤中,無法實(shí)現(xiàn)寫加速。因此在設(shè)置數(shù)據(jù)回寫相關(guān)的參數(shù)時(shí),需要根據(jù)實(shí)際的情況適當(dāng)?shù)恼{(diào)整參數(shù)。

緩存模式對(duì)比Write-back模式簡(jiǎn)化讀取和寫入,具有最短的寫延遲,擁有最佳讀寫吞吐性能,是唯一對(duì)寫操作有加速作用的模式,適用于數(shù)據(jù)更改頻繁的應(yīng)用;Write-through模式在寫密集型應(yīng)用程序中可以大幅度提升讀取最近寫入數(shù)據(jù)的性能;Read-only模式和Write-through策略在讀取密集型應(yīng)用中具有相同的讀取性能。

各廠商生產(chǎn)的SSD具有不同寫入性能,但是在不同寫入策略下速度的差異卻是不太明顯的,Write-through和Write-back策略比Read-only策略通常提供更好的性能,但有時(shí)寫IOPS規(guī)格比較低的SSD在Read-only策略下可能比其他兩種策略性能發(fā)揮的更好。

從數(shù)據(jù)安全性角度來看,Read-only和Write-through模式中,SSD不會(huì)保存臟數(shù)據(jù),數(shù)據(jù)的所有更新都是實(shí)時(shí)寫入到硬盤的,任何時(shí)候SSD發(fā)生損壞,業(yè)務(wù)都無需中斷,應(yīng)用數(shù)據(jù)也不會(huì)損壞。Write-back模式提供最佳的性能體驗(yàn),但是會(huì)保存一定比例的臟數(shù)據(jù),為了防止電源或SSD故障時(shí)導(dǎo)致數(shù)據(jù)不完整或丟失,需要配置相關(guān)的預(yù)防措施,比如利用多塊SSD組成RAID1或者RAID5保障數(shù)據(jù)安全。

替換策略高速緩存設(shè)計(jì)的另一個(gè)關(guān)鍵方面是替換策略。當(dāng)緩存需要保存一個(gè)新數(shù)據(jù)塊,這時(shí)可能需要將一個(gè)塊從高速緩存中移除,緩存如何選擇移除哪個(gè)塊?理想情況下,高速緩存選擇一個(gè)在將來最不可能訪問的那個(gè)塊,并且將該塊替換為對(duì)當(dāng)前任務(wù)需要立即訪問的數(shù)據(jù)塊。然而,除非進(jìn)行大量的分析預(yù)測(cè),基于過去的I/O模式準(zhǔn)確地判斷未來的應(yīng)用讀寫行為,是非常困難的。高速緩存需要一種可以處理這種情形的合理的替代策略,典型的替換策略包括RANDOM、FIFO和LRU。在實(shí)際中需要根據(jù)具體的應(yīng)用場(chǎng)景選擇合適的替換策略,保證最大的可能性使熱點(diǎn)數(shù)據(jù)最大程度的保留在SSD中,讓SSD的性能優(yōu)勢(shì)發(fā)揮到最大。

RANDOM:隨機(jī)替換策略。該策略的實(shí)質(zhì)就是,當(dāng)需要替換SSD中的block時(shí),用軟硬件的隨機(jī)數(shù)產(chǎn)生SSD要替換Block的序號(hào)。Random替換策略并不考慮被替換塊當(dāng)前是否為熱點(diǎn),這種策略很少使用。

FIFO(First In First Out):先進(jìn)先出策略,這是一種最簡(jiǎn)單的替換策略。這種策略的實(shí)質(zhì)就是總是選擇在SSD中停留時(shí)間最長(zhǎng)的block置換,即新進(jìn)入SSD的block,先替換。理由是:最早被寫入SSD中的block,其不再被讀/寫的可能性最大。這種策略只是在按線性順序訪問地址空間時(shí)才是理想的,否則效率不高。

LRU(Least Recently Used):最近最久未使用策略。該策略的實(shí)質(zhì)是,當(dāng)需要置換SSD中的block時(shí),選擇在最近一段時(shí)間里最久沒有使用過的Block予以置換,這些塊在將來也最不可能被訪問。LRU策略是與每個(gè)Block最后使用的時(shí)間有關(guān)的,由于該策略實(shí)現(xiàn)復(fù)雜,有一種LRU近似的策略NUR(Not Recently Used)最近未使用算法。LRU替換策略在絕大多數(shù)情形下都比隨機(jī)或FIFO策略執(zhí)行得更好,通常作為缺省替換策略被普通采用。

MaxIO特性

透明緩存MaxIO不使用DM設(shè)備映射器,而是采用IO攔截的實(shí)現(xiàn)方式,從而實(shí)現(xiàn)了透明緩存加速。這個(gè)特性帶來的好處是,SSD緩存可以根據(jù)需要?jiǎng)討B(tài)配置,而應(yīng)用無需做任何配置更改,因此對(duì)企業(yè)應(yīng)用場(chǎng)景不產(chǎn)生任何干擾。HDD硬盤使用時(shí)可以創(chuàng)建SSD緩存對(duì)其加速,也可以在不需要的時(shí)候隨時(shí)刪除高速緩存。另外,創(chuàng)建緩存時(shí),不管是HDD還是SSD,都可以使用整個(gè)設(shè)備或分區(qū)。

大I/O支持MaxIO對(duì)I/O處理方式進(jìn)行了修改,不會(huì)將大的I/O請(qǐng)求分割為以緩存塊大小為單位的多個(gè)請(qǐng)求。比如64KB的讀寫請(qǐng)求,MaxIO不會(huì)像諸如flashcache緩存系統(tǒng)把它拆分成16個(gè)4KB的小I/O請(qǐng)求。這個(gè)優(yōu)化使得大I/O性能得到顯著改進(jìn)。

小內(nèi)存占用MaxIO中每個(gè)SSD緩存塊元數(shù)據(jù)僅占用4個(gè)字節(jié),這使得系統(tǒng)內(nèi)存消耗只有SSD容量的0.1%(1/1000)。對(duì)于1TB SSD,MaxIO只需占用約1GB的元數(shù)據(jù)內(nèi)存開銷。這也使得創(chuàng)建大容量的SSD緩存成才可能。

數(shù)據(jù)塊對(duì)齊 MaxIO將所有元數(shù)據(jù)和數(shù)據(jù)塊4K對(duì)齊地寫入SSD,實(shí)現(xiàn)最小化寫放大和對(duì)閃存磨損,同時(shí)還可以提高性能。

高數(shù)據(jù)安全MaxIO在以Read-only或Write-through模式使用時(shí),可以在不停止系統(tǒng)操作的情況下移除SSD,或者在SSD完全故障情況下繼續(xù)工作。如果刪除緩存SSD,系統(tǒng)只是簡(jiǎn)單地回到添加緩存之前的性能級(jí)別。出現(xiàn)故障時(shí),對(duì)HDD的I/O請(qǐng)求可以繼續(xù)正常處理。性能可能下降,但應(yīng)用程序不會(huì)收到任何IO錯(cuò)誤。SSD設(shè)備在Write-back模式下,出現(xiàn)故障可能導(dǎo)致丟失緩存中的臟數(shù)據(jù)塊。為了防止這種數(shù)據(jù)丟失,可以將SSD設(shè)備通過RAID 1鏡像實(shí)現(xiàn)高可用。

MaxIO局限性

(1) Linux平臺(tái)為主。MaxIO目前主要以Linux平臺(tái)為主,尤其是Redhat/CentOS 6.x/7.x系統(tǒng),其他Linux/Unix平臺(tái)需要定制或移植,不支持Windows平臺(tái)。

(2) 讀緩存預(yù)熱。緩存創(chuàng)建后,通常需要一段時(shí)間預(yù)熱緩存,尤其是讀緩存。只有熱點(diǎn)數(shù)據(jù)進(jìn)入SSD,才能獲得較高的緩存命中率。

(3) 緩存過量寫入。MaxIO在只讀模式下,在特定場(chǎng)景下引起過量的數(shù)據(jù)寫入緩存,比如數(shù)據(jù)備份、碎片整理、文件搜索等。這會(huì)導(dǎo)致緩存命中率極低,使得緩存失效。

(4) 順序I/O無效。MaxIO重點(diǎn)是對(duì)隨機(jī)讀寫I/O的緩存和加速,而對(duì)大塊順序讀寫基本是無效的。一旦檢測(cè)到順序I/O讀寫邏輯,MaxIO就會(huì)跳過SSD,直接對(duì)HDD進(jìn)行操作。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 閃存
    +關(guān)注

    關(guān)注

    16

    文章

    1771

    瀏覽量

    114766
  • SSD
    SSD
    +關(guān)注

    關(guān)注

    20

    文章

    2833

    瀏覽量

    117127
  • IOPs
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    14294
  • HDD
    HDD
    +關(guān)注

    關(guān)注

    0

    文章

    140

    瀏覽量

    27312

原文標(biāo)題:SSD緩存軟件核心技術(shù)剖析

文章出處:【微信號(hào):SSDFans,微信公眾號(hào):SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    談?wù)勆疃葻o盤緩存工具設(shè)置技巧

    這些相關(guān)話題,什么一臺(tái)服務(wù)器帶150-200以上,這些都是離不開緩存的。 無盤系統(tǒng)軟件經(jīng)過這這幾年的發(fā)展已經(jīng)逐漸成熟,無盤網(wǎng)吧的數(shù)量正在逐步上升,并得到更多網(wǎng)吧業(yè)主的認(rèn)可。各大無盤提供商都相繼推出
    發(fā)表于 07-15 13:24

    AssetsLibrary框架詳細(xì)解析—— 基本概覽

    AssetsLibrary框架詳細(xì)解析(一) —— 基本概覽
    發(fā)表于 04-29 15:12

    Photos框架詳細(xì)解析

    Photos框架詳細(xì)解析(一) —— 基本概覽
    發(fā)表于 05-06 12:34

    SanDisk收購(gòu)緩存軟件公司,加強(qiáng)固態(tài)硬盤(SSD)應(yīng)用

    閃存記憶體供應(yīng)商SanDisk公司周三(2月15日)宣布將收購(gòu)緩存軟件提供商FlashSoft公司,目前暫未公開收購(gòu)價(jià)格。
    發(fā)表于 02-20 09:08 ?939次閱讀

    基于Ivy Bridge平臺(tái)的超高速緩存SSD發(fā)布

    英特爾低調(diào)推出其SSD313系列,該系列的特點(diǎn)是內(nèi)置超高速緩存,SSD313推出的目的是為了替代英特爾公司之前的SSD311系列,該系列有2.5英寸,采用MSATA,已升級(jí)到英特爾最新
    發(fā)表于 04-05 10:25 ?865次閱讀
    基于Ivy Bridge平臺(tái)的超高速<b class='flag-5'>緩存</b><b class='flag-5'>SSD</b>發(fā)布

    面向多目標(biāo)優(yōu)化的自適應(yīng)SSD緩存系統(tǒng)

    SSD(solid state drive)為代表的新型存儲(chǔ)介質(zhì)在虛擬化環(huán)境下得到了廣泛的應(yīng)用,通常作為虛擬機(jī)讀寫緩存。起到優(yōu)化磁盤I/O性能的作用.已有研究往往關(guān)注SSD緩存的容量
    發(fā)表于 12-26 17:13 ?0次下載
    面向多目標(biāo)優(yōu)化的自適應(yīng)<b class='flag-5'>SSD</b><b class='flag-5'>緩存</b>系統(tǒng)

    Java 使用Redis緩存工具的詳細(xì)解說

    本文是關(guān)于Java 使用Redis緩存工具的詳細(xì)解說。詳細(xì)步驟請(qǐng)看下文
    的頭像 發(fā)表于 02-09 14:10 ?7852次閱讀
    Java 使用Redis<b class='flag-5'>緩存</b>工具的<b class='flag-5'>詳細(xì)</b>解說

    聯(lián)蕓展示了基于Intel 3D QLC閃存的SSD樣品,容量高達(dá)4TB

    Maxio(杭州聯(lián)蕓科技)日前展示了基于Intel 3D QLC閃存的SSD樣品,容量高達(dá)4TB。
    發(fā)表于 08-19 11:42 ?1265次閱讀

    影響SSD性能的因素有哪些 NVMe SSD性能解析

    NVMe SSD的性能時(shí)常捉摸不定,為此我們需要打開SSD的神秘盒子,從各個(gè)視角分析SSD性能影響因素,并思考從存儲(chǔ)軟件的角度如何最優(yōu)化使用NVMe
    的頭像 發(fā)表于 11-05 09:47 ?8882次閱讀

    緩存是什么 為什么需要緩存

    緩存軟件開發(fā)中一個(gè)非常有用的概念,數(shù)據(jù)庫(kù)緩存更是在項(xiàng)目中必然會(huì)遇到的場(chǎng)景。
    的頭像 發(fā)表于 09-28 02:48 ?1.1w次閱讀
    <b class='flag-5'>緩存</b>是什么 為什么需要<b class='flag-5'>緩存</b>

    SLC緩存的原理及作用

    對(duì)SSD硬盤來說,隨著TLC、QLC閃存占據(jù)主流,性能、可靠性問題日益突出,用久了還有掉速問題,這些麻煩都要解決,不然SSD硬盤體驗(yàn)并不好。 具體如何解決?還得看SLC緩存了,這是當(dāng)前很多SS
    的頭像 發(fā)表于 01-11 17:14 ?8523次閱讀

    關(guān)于瀏覽器緩存詳細(xì)解析

    瀏覽器緩存即 http 緩存,將請(qǐng)求過的數(shù)據(jù)(html、css、js)存在瀏覽器(本地磁盤)中,當(dāng)再次訪問這些資源時(shí)可以從本地直接加載,減少服務(wù)端請(qǐng)求。
    的頭像 發(fā)表于 04-16 16:01 ?2684次閱讀

    SSD緩存有3種 千萬(wàn)別買錯(cuò)!

    考考你:固態(tài)硬盤SSD的三大主要元件哪個(gè)不是必須的? A.主控芯片 B.緩存芯片 C.閃存顆粒 如果你選的是B,那恭喜你答對(duì)了。 聰明的你肯定要問了,既然緩存不是必須的,那為什么有的固態(tài)硬盤堅(jiān)持要有
    的頭像 發(fā)表于 10-25 18:09 ?1988次閱讀
    <b class='flag-5'>SSD</b><b class='flag-5'>緩存</b>有3種 千萬(wàn)別買錯(cuò)!

    MySQL服務(wù)器優(yōu)化LSI MegaRAID CacheCade Pro 2.0讀寫緩存軟件和固態(tài)硬盤(SSD)

    電子發(fā)燒友網(wǎng)站提供《MySQL服務(wù)器優(yōu)化LSI MegaRAID CacheCade Pro 2.0讀寫緩存軟件和固態(tài)硬盤(SSD).pdf》資料免費(fèi)下載
    發(fā)表于 08-21 14:19 ?1次下載
    MySQL服務(wù)器優(yōu)化LSI MegaRAID CacheCade Pro 2.0讀寫<b class='flag-5'>緩存</b><b class='flag-5'>軟件</b>和固態(tài)硬盤(<b class='flag-5'>SSD</b>)

    升級(jí)版PCIe 5.0 SSD深度評(píng)測(cè)解析

    為了提升SSD的性能,HOF名人堂EX50S PCIe 5.0 M.2 SSD采用了獨(dú)立緩存設(shè)計(jì)。本次測(cè)試的2TB產(chǎn)品配備了多達(dá)4GB獨(dú)立緩存(編號(hào)為H9HCNNNCPUML XRNE
    發(fā)表于 09-12 11:01 ?902次閱讀
    升級(jí)版PCIe 5.0 <b class='flag-5'>SSD</b>深度評(píng)測(cè)<b class='flag-5'>解析</b>