文/于耳
根據(jù)數(shù)據(jù)局部性原理,往往被頻繁訪問(wèn)的數(shù)據(jù)是局部而有限的。為了應(yīng)對(duì)部分這樣的數(shù)據(jù)而全采用高速存儲(chǔ)實(shí)在是過(guò)于奢侈。如果我們針對(duì)這部分?jǐn)?shù)據(jù)另開(kāi)小灶來(lái)解決不是更好?分層存儲(chǔ)在這里可以發(fā)揮很大作用。
分層存儲(chǔ)(Tiered Storage)稱為層級(jí)存儲(chǔ)管理(Hierarchical Storage Management),廣義上講,就是將數(shù)據(jù)存儲(chǔ)在不同層級(jí)的介質(zhì)中,并在不同的介質(zhì)之間進(jìn)行自動(dòng)或者手動(dòng)的數(shù)據(jù)遷移,復(fù)制等操作。同時(shí),分層存儲(chǔ)也是信息生命周期管理的一個(gè)具體應(yīng)用和實(shí)現(xiàn)。
傳統(tǒng)的存儲(chǔ)分層技術(shù)在磁盤介質(zhì)管理上基本沿襲了若干年前的“靜態(tài)”技術(shù),從而使得很多用戶在部署實(shí)施分層技術(shù)后發(fā)現(xiàn),整體IOPS性能依然與傳統(tǒng)架構(gòu)相當(dāng),即磁盤吞吐能力并未獲得大幅提升。鑒于此問(wèn)題,本文結(jié)合目前最新發(fā)布的塊級(jí)并發(fā)架構(gòu)存儲(chǔ)分層技術(shù),通過(guò)對(duì)實(shí)驗(yàn)測(cè)得數(shù)據(jù)分析,著重比較兩者在磁盤介質(zhì)管理上的不同以及后者的優(yōu)勢(shì)體現(xiàn)。
從計(jì)算機(jī)系統(tǒng)角度來(lái)說(shuō),最上層的存儲(chǔ)層應(yīng)該是CPU內(nèi)的各類型寄存器,其次是CPU內(nèi)的緩存,再其次是系統(tǒng)內(nèi)存。因?yàn)閺姆謱哟鎯?chǔ)的定義上,此類型存儲(chǔ)器是符合定義規(guī)則的。因?yàn)檫@些存儲(chǔ)器速度與容量都有差別,越靠近CPU的存儲(chǔ)器成本越高,速度越快,容量越小,并且在CPU的控制下,數(shù)據(jù)在這些不同類型的存儲(chǔ)器中間進(jìn)行自動(dòng)的轉(zhuǎn)存。我們將此類型的分層存儲(chǔ)稱為易失性存儲(chǔ)分層,或者內(nèi)部存儲(chǔ)器分層存儲(chǔ)。
而另外一種分類,則是非易失性分層存儲(chǔ),或者叫外部分層存儲(chǔ)。此類型的存儲(chǔ)介質(zhì)一般包括固態(tài)硬盤(SSD)、機(jī)械式硬盤、光盤、閃存盤(包括外置硬盤)、磁帶庫(kù)等等。而此類的存儲(chǔ)介質(zhì)分層正是我們所要關(guān)注的,在沒(méi)有特殊的說(shuō)明情況下,在本文中所說(shuō)的分層存儲(chǔ)都是指外部分層存儲(chǔ)。一般來(lái)說(shuō),作為第0層的存儲(chǔ)介質(zhì)通常為 RAM 磁盤(隨機(jī)訪問(wèn)存儲(chǔ)磁盤,其速度與內(nèi)存同速,但是價(jià)格昂貴,使用環(huán)境基本上是特殊計(jì)算環(huán)境)以及 SSD,第1層可能有 FC類型的15K硬盤或者SAS類型的 15K硬盤,或者相應(yīng)的10K硬盤。第2層可能有SATA類型的7.2K硬盤或其他類型的低轉(zhuǎn)速磁盤。第3層,可能是如磁帶庫(kù)以及光盤庫(kù)這樣的離線介質(zhì)。當(dāng)然這樣的分層不是標(biāo)準(zhǔn),但在實(shí)際應(yīng)用中,是常用的分層策略。
傳統(tǒng)存儲(chǔ)分層技術(shù)實(shí)現(xiàn)原理
在計(jì)算機(jī)系統(tǒng)中,CPU 的運(yùn)行速度往往要比內(nèi)存速度快上好幾百倍甚至更多,為了更多地獲取CPU的計(jì)算能力,就需要在訪問(wèn)數(shù)據(jù)的速度上進(jìn)行提升,否則內(nèi)存的速度將成為整個(gè)系統(tǒng)的性能短板。因此在這樣的思想下,CPU慢慢發(fā)展出來(lái)1級(jí)或者2級(jí)這樣的存儲(chǔ)緩存。實(shí)際也表明,緩存的存在確實(shí)對(duì)于系統(tǒng)性能的提升起到了巨大的推動(dòng)作用。
相應(yīng)的,內(nèi)存的訪問(wèn)速度又是硬盤訪問(wèn)速度的幾百倍甚至更多,也是基于CPU類似的指導(dǎo)思想,我們能不能在存儲(chǔ)之間也進(jìn)行這樣的分層(或者說(shuō)緩存)以期提高系統(tǒng)的I/O性能,以滿足應(yīng)用對(duì)系統(tǒng)提出的更多高I/O的需求呢?
從某種意義上說(shuō),內(nèi)存其實(shí)也就是充當(dāng)了CPU與外部存儲(chǔ)之間的另一個(gè)級(jí)別的緩存。作為用戶來(lái)講,我們當(dāng)然希望所有需要用到的數(shù)據(jù)都最好是存在最高速的存儲(chǔ)當(dāng)中。但是這樣的理想,至少在當(dāng)前來(lái)說(shuō)是不現(xiàn)實(shí)的。在技術(shù)上的難度不說(shuō),成本的壓力就會(huì)讓用戶止步不前,再一個(gè)就是有沒(méi)有必要的問(wèn)題,因?yàn)橛械臄?shù)據(jù)根本都不需要一直存于這樣的存儲(chǔ)中。在計(jì)算機(jī)界中有一個(gè)很有名的理論,就是說(shuō),加上一個(gè)中間層,就可以解決計(jì)算機(jī)中許多的問(wèn)題。而這個(gè)“中間層”也正是我們所尋求的,實(shí)際也證明這樣的中間層確實(shí)取得了非常好的效果。
據(jù)IDC數(shù)據(jù)預(yù)測(cè),到2012年,信息數(shù)據(jù)的增長(zhǎng)將會(huì)達(dá)到50%的復(fù)合年增長(zhǎng)率,這個(gè)增長(zhǎng)主要源于越來(lái)越來(lái)多數(shù)據(jù)內(nèi)容生成并存儲(chǔ),經(jīng)濟(jì)全球化使商業(yè)各個(gè)部門及與商業(yè)伙伴之間需要保持連接,使得更多的數(shù)據(jù)被生成,復(fù)制及保存。法規(guī)遵從及管理,還有容災(zāi)與備份都使得數(shù)據(jù)的增長(zhǎng)持續(xù)上升。我們需要根據(jù)不同的數(shù)據(jù)存儲(chǔ)需求,設(shè)計(jì)不同的存儲(chǔ)方案。在具備存儲(chǔ)分層功能的主存儲(chǔ)中,需要頻繁訪問(wèn)的實(shí)時(shí)數(shù)據(jù),我們可以放在內(nèi)存或者SSD(固態(tài)硬盤)設(shè)備中,而對(duì)于海量、低訪問(wèn)頻度的數(shù)據(jù)以及快照產(chǎn)生的源數(shù)據(jù)副本,我們可以使用大容量低成本的存儲(chǔ)來(lái)應(yīng)對(duì)(如圖1所示)。這樣的做法,目的是希望把資金投向更能產(chǎn)生效益的存儲(chǔ)上。
除了需要滿足不同的存儲(chǔ)需求,還有出于對(duì)高性能高吞吐量應(yīng)用的支持。因?yàn)橛械膽?yīng)用需要這樣的存儲(chǔ)系統(tǒng),特別是現(xiàn)在如火如荼的虛擬化技術(shù)。為了在一臺(tái)設(shè)備上支持更多的虛擬應(yīng)用,就需要系統(tǒng)支持更大的吞吐量以及更高的性能。全部采用高速介質(zhì)在成本上現(xiàn)在依然不是可行的,也不是必須的。因?yàn)槲覀儼迅哳l率訪問(wèn)的數(shù)據(jù)放在高速存儲(chǔ)介質(zhì)上,而其他的數(shù)據(jù)放在速度較慢一些的介質(zhì)上,這實(shí)際上就是提高了系統(tǒng)的吞吐量。
傳統(tǒng)存儲(chǔ)分層的技術(shù)瓶頸
傳統(tǒng)的存儲(chǔ)分層技術(shù)從存儲(chǔ)系統(tǒng)底層優(yōu)化了應(yīng)用數(shù)據(jù)的存放成本,使得更多需要高存取性能的數(shù)據(jù)能夠存放在讀寫性能最高的磁盤介質(zhì),海量的低訪問(wèn)頻度數(shù)據(jù)存放在低成本大容量的低轉(zhuǎn)速磁盤。但是,傳統(tǒng)的存儲(chǔ)分層技術(shù)依然沿用了基于物理磁盤為最小管理顆粒的介質(zhì)管理機(jī)制(如圖2所示),要受到以下幾方面的約束。
1. 物理磁盤為最小管理單元,RAID組創(chuàng)建于一定數(shù)量的磁盤之上;RAID組中,磁盤數(shù)量有一定限制,最多可實(shí)施的RAID組為16塊磁盤。
圖2 傳統(tǒng)磁盤管理機(jī)制
表1 不同磁盤類型的理論IOPS值
2. 應(yīng)用數(shù)據(jù)卷(LUN)與RAID組形成映射關(guān)系,RAID組中磁盤的性能表現(xiàn)決定了該數(shù)據(jù)卷的數(shù)據(jù)存取性能。
3. 數(shù)據(jù)卷一旦創(chuàng)建,所有歸屬于該卷的數(shù)據(jù)RAID架構(gòu)即被固定,不能改變。
由此我們不難發(fā)現(xiàn),基于傳統(tǒng)的磁盤管理機(jī)制存在以下幾方面的性能瓶頸:
1. 應(yīng)用數(shù)據(jù)卷對(duì)應(yīng)于RAID組,而RAID組則又對(duì)應(yīng)于一定數(shù)量的物理磁盤。如果應(yīng)用數(shù)據(jù)卷所對(duì)應(yīng)的物理磁盤呈現(xiàn)繁忙狀態(tài),那么在一套存儲(chǔ)系統(tǒng)中即使有再多的空閑磁盤,也不能改善該應(yīng)用數(shù)據(jù)卷的存取性能。
2. RAID組的RAID類型在一旦創(chuàng)建后便不能改變,將嚴(yán)重影響數(shù)據(jù)寫入性能。
通常情況下,我們?cè)诓渴鸫鎯?chǔ)系統(tǒng)過(guò)程中,為了達(dá)到最高的磁盤空間利用率,通常會(huì)將每個(gè)RAID組創(chuàng)建為RAID5,如6個(gè)數(shù)據(jù)盤加一個(gè)校驗(yàn)盤組成的RAID5(6+1)。但RAID5對(duì)于寫入操作的懲罰是眾所周知的,也就是說(shuō)在一個(gè)6+1的RAID組中,對(duì)一個(gè)數(shù)據(jù)塊的寫入或更新將導(dǎo)致額外的5個(gè)讀操作,1個(gè)異或操作和另一個(gè)寫操作。
3. 我們知道,任何一套存儲(chǔ)系統(tǒng)中,存取速度最快的是存儲(chǔ)控制器的處理器緩存,其次是控制器緩存,而最容易成為存取性能瓶頸的,則是靠機(jī)械臂轉(zhuǎn)動(dòng)實(shí)現(xiàn)數(shù)據(jù)存取的磁盤。傳統(tǒng)的存儲(chǔ)系統(tǒng)依然沿用磁盤這種粗顆粒度的管理機(jī)制,無(wú)法從根本上改善磁盤的性能表現(xiàn),而我們則急需一種更高效的存儲(chǔ)架構(gòu)來(lái)徹底解放數(shù)據(jù)卷與物理磁盤之間的一一對(duì)應(yīng)關(guān)系,希望借以更細(xì)化的介質(zhì)管理機(jī)制大幅提升存儲(chǔ)系統(tǒng)的性能。
傳統(tǒng)的存儲(chǔ)分層技術(shù)其磁盤介質(zhì)管理是靜態(tài)的方式,局限在于將單個(gè)物理磁盤作為管理的最小單元。不能從根本上消除RAID、Striping等各種數(shù)據(jù)管理操作局限于有限個(gè)磁盤體的瓶頸。在靜態(tài)介質(zhì)管理機(jī)制下,按照業(yè)界公認(rèn)的測(cè)試方法,各種類型的物理硬盤能處理的IOPS(每秒IO數(shù)量)是有限制的,見(jiàn)表1。
所以,在靜態(tài)磁盤介質(zhì)管理方式下,如果一個(gè)陣列有60塊15K rpm的SAS硬盤,那么,它能撐起的最大IOPS為60x180=10800,這個(gè)為硬件限制的理論值,如果超過(guò)這個(gè)值,硬盤的響應(yīng)可能會(huì)變得非常緩慢而不能正常提供業(yè)務(wù)。
考慮到RAID產(chǎn)生的額外開(kāi)銷,我們假定一個(gè)場(chǎng)景,業(yè)務(wù)的IOPS需求是10000,讀Cache命中率是30%,讀IOPS為60%,寫IOPS為40%,磁盤個(gè)數(shù)為120,那么在RAID5的情況下,每個(gè)磁盤的IOPS為:?jiǎn)螇K盤的IOPS=[10000×(1-0.3)×0.6+4×(10000x0.4)]/120=(4200+16000)/12=168,這里的10000×(1-0.3)×0.6表示是讀的IOPS,比例是0.6,除掉Cache命中,實(shí)際只有4200個(gè)IOPS落到磁盤體。而4×(10000×0.4)表示寫的IOPS,因?yàn)槊恳粋€(gè)寫,在RAID5中,實(shí)際發(fā)生了4個(gè)IO,所以寫的IOPS為16000個(gè)。計(jì)算出來(lái)單個(gè)盤的IOPS為168個(gè),基本達(dá)到15k轉(zhuǎn)速SAS磁盤極限。
從上面的分析,我們可以看到這樣一個(gè)事實(shí),靜態(tài)磁盤介質(zhì)管理方式究其本質(zhì),依舊是拘泥于物理磁盤的RAID保護(hù)機(jī)制。應(yīng)用數(shù)據(jù)在寫入磁盤介質(zhì)后,數(shù)據(jù)在后端物理磁盤的分布依然受限于RAID組所涉及的磁盤數(shù)量;對(duì)于任何一個(gè)應(yīng)用系統(tǒng),RAID組內(nèi)包含的磁盤數(shù)量決定了該應(yīng)用系統(tǒng)所能獲得的后端磁盤并發(fā)讀寫性能。由此我們可以看到,這種介質(zhì)管理機(jī)制極大地阻礙了存儲(chǔ)系統(tǒng)的整體并發(fā)性能。
為了最大化地獲得后端磁盤的所有并發(fā)讀寫能力,我們急需一種新的存儲(chǔ)介質(zhì)管理機(jī)制。借助這種新型的技術(shù),我們希望任何一個(gè)部署于存儲(chǔ)系統(tǒng)上的應(yīng)用能夠獲得后端磁盤所有的并發(fā)訪問(wèn)性能,同時(shí)又具備跨介質(zhì)的分層功能從而實(shí)現(xiàn)更好的投資回報(bào)和用戶體驗(yàn),由此才有了塊級(jí)并發(fā)存儲(chǔ)分層技術(shù)。
我們先來(lái)闡述塊級(jí)并發(fā)存儲(chǔ)分層技術(shù)概念、原理、特點(diǎn),然后我們通過(guò)實(shí)驗(yàn)室實(shí)驗(yàn)采集的數(shù)據(jù)來(lái)分析并檢驗(yàn)該技術(shù)是否具有明顯的優(yōu)勢(shì)。
塊級(jí)并發(fā)存儲(chǔ)分層技術(shù)概念及原理
是指在實(shí)現(xiàn)存儲(chǔ)分層的同時(shí),為克服單個(gè)磁盤設(shè)備的物理限制,最大限度地提升存儲(chǔ)后端磁盤并發(fā)性能,同時(shí)不影響用戶的存儲(chǔ)架構(gòu)視圖及應(yīng)用部署方式。在塊級(jí)并發(fā)架構(gòu)里,磁盤介質(zhì)的管理不再是按照傳統(tǒng)的以物理磁盤為最小管理單元,我們將整個(gè)存儲(chǔ)系統(tǒng)中的所有磁盤空間統(tǒng)一規(guī)劃,按照一定的顆粒度(通常以KB為單位)來(lái)進(jìn)行劃分,對(duì)于每一個(gè)顆粒度單元采用類似傳統(tǒng)磁盤管理的機(jī)制進(jìn)行管理、RAID保護(hù)和資源調(diào)度。
表2 塊級(jí)并發(fā)架構(gòu)IOPS實(shí)測(cè)
圖3 塊級(jí)并發(fā)架構(gòu)示意
其原理是在塊級(jí)并發(fā)架構(gòu)里,我們將每塊物理磁盤空間以4~8K為單元進(jìn)行劃分,劃分后的單元通過(guò)元數(shù)據(jù)管理算法實(shí)現(xiàn)RAID,鏡像等一系列數(shù)據(jù)管理策略。塊級(jí)并發(fā)架構(gòu)記錄并跟蹤關(guān)于每一個(gè)數(shù)據(jù)塊的特定信息,從而提供數(shù)據(jù)塊是如何被使用的等一系列系統(tǒng)管理信息。數(shù)據(jù)塊信息在無(wú)系統(tǒng)額外開(kāi)銷的情況下被收集,包括寫入時(shí)間、所在的磁盤驅(qū)動(dòng)器類型、數(shù)據(jù)存儲(chǔ)類型、RAID級(jí)別已及更多信息。所有這些元數(shù)據(jù)(或稱作“描述數(shù)據(jù)的數(shù)據(jù)”)確保了存儲(chǔ)可以提供更豐富和智能的存儲(chǔ)服務(wù)實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)、恢復(fù)和管理。通過(guò)塊級(jí)并發(fā)數(shù)據(jù)管理,利用元數(shù)據(jù),動(dòng)態(tài)數(shù)據(jù)塊架構(gòu)可在數(shù)據(jù)塊級(jí)別智能地優(yōu)化數(shù)據(jù)移動(dòng)和訪問(wèn)(如圖3所示)。
塊級(jí)并發(fā)架構(gòu)特點(diǎn)
1. 應(yīng)用數(shù)據(jù)卷脫離與RAID的映射關(guān)系,數(shù)據(jù)卷中的數(shù)據(jù)在存儲(chǔ)后端分布于所有物理磁盤,數(shù)據(jù)卷可以獲得存儲(chǔ)系統(tǒng)中所有物理磁盤的存取性能。
2. RAID保護(hù)以劃分后的磁盤塊單元為最小單位,RAID組脫離與物理磁盤的映射關(guān)系,RAID組由相應(yīng)的磁盤塊組成。
3. 磁盤塊單元由元數(shù)據(jù)表述,元數(shù)據(jù)管理基于非易失性緩存以獲得最佳性能。
4. 任何一個(gè)磁盤塊單元的RAID方式可按需要隨時(shí)改變,RAID方式的改變記錄于元數(shù)據(jù)。若當(dāng)前某磁盤數(shù)據(jù)塊為RAID5保護(hù)方式,應(yīng)用系統(tǒng)需要寫入或更新該數(shù)據(jù)塊時(shí),存儲(chǔ)系統(tǒng)自動(dòng)將該數(shù)據(jù)塊的RAID保護(hù)由RAID5 轉(zhuǎn)為RAID1以避免寫懲罰。反之,則自動(dòng)由RAID1轉(zhuǎn)為RAID5以獲得更高的磁盤空間。
塊級(jí)并發(fā)存儲(chǔ)分層技術(shù)的優(yōu)勢(shì)
為了說(shuō)明這個(gè)問(wèn)題,我們建立了實(shí)驗(yàn)環(huán)境,對(duì)塊級(jí)并發(fā)架構(gòu)下IOPS進(jìn)行實(shí)測(cè)(見(jiàn)表2),將所測(cè)的數(shù)值(這里限于篇幅,省略了不同磁盤類型下的IOPS對(duì)應(yīng)La-tency測(cè)試數(shù)值表3),我們抽出其中60塊15K SAS磁盤下的IOPS和Latency的測(cè)試結(jié)果值來(lái)作圖(見(jiàn)圖3),得出的實(shí)測(cè)結(jié)果并分析如下:
在制定測(cè)試計(jì)劃中,考慮到磁盤陣列緩存帶來(lái)的正面影響,所以采用了Oracle數(shù)據(jù)庫(kù)的測(cè)試工具Orion產(chǎn)生大量的隨機(jī)并發(fā)IO,以確保每個(gè)IO均最終落到物理盤體。通過(guò)測(cè)得的數(shù)據(jù),計(jì)算出在塊級(jí)并發(fā)存儲(chǔ)分層環(huán)境下,單塊盤的IOPS值,IOPS = 19918/60≈332個(gè)。而傳統(tǒng)存儲(chǔ)分層技術(shù)下15k單塊磁盤理論值IOPS僅有180個(gè)(實(shí)際上前面計(jì)算出IOPS極限值最多有168個(gè))。由此可見(jiàn),[(332-180)/180]×100%≈84%,即在塊級(jí)并發(fā)存儲(chǔ)分層環(huán)境下單塊盤的IOPS的性能至少提升80%。
由以上測(cè)試可以看到,傳統(tǒng)的存儲(chǔ)分層技術(shù)解決了海量數(shù)據(jù)存儲(chǔ)系統(tǒng)中熱點(diǎn)數(shù)據(jù)在各種磁盤介質(zhì)間動(dòng)態(tài)調(diào)度問(wèn)題,從而提升了數(shù)據(jù)存儲(chǔ)效率,降低了采購(gòu)成本。但從根本上,傳統(tǒng)的存儲(chǔ)分層技術(shù)依然沿用早前的介質(zhì)管理策略,使得后端磁盤性能不能獲得最大程度的并發(fā)。塊級(jí)并發(fā)存儲(chǔ)分層技術(shù)則不僅解決了存儲(chǔ)效率問(wèn)題,同時(shí)在根本上消除了后端磁盤的靜態(tài)管理方式,大幅提升了存儲(chǔ)系統(tǒng)的整體性能。
圖4 60塊15K硬盤情況下的IOPS和Latency測(cè)試結(jié)果
塊級(jí)并發(fā)存儲(chǔ)分層技術(shù)是存儲(chǔ)技術(shù)發(fā)展的趨勢(shì),諸多廠家在提供類似方案時(shí),通常也會(huì)結(jié)合用戶的實(shí)際應(yīng)用和數(shù)據(jù)庫(kù)等環(huán)境特性作一定的客戶化集成。以下是筆者認(rèn)為在部署塊級(jí)并發(fā)存儲(chǔ)架構(gòu)項(xiàng)目中需要注意的要點(diǎn),供參考。
數(shù)據(jù)一致性
如果不同的數(shù)據(jù)在不同的存儲(chǔ)層級(jí)之間存在,數(shù)據(jù)的改寫必然導(dǎo)致數(shù)據(jù)不一致的問(wèn)題。在內(nèi)部分層存儲(chǔ)時(shí),可以采用通寫策略或者回寫策略。而不同的方法也有各自優(yōu)缺點(diǎn),這里就不再贅述。但是外部分層存儲(chǔ)與內(nèi)部分層存儲(chǔ)有一個(gè)最大的不同是,內(nèi)存儲(chǔ)最終數(shù)據(jù)需要寫到內(nèi)存中,而外分層存儲(chǔ)中,則不是必須的。當(dāng)然也可以設(shè)計(jì)成這樣的實(shí)現(xiàn)方案,但這樣的話,分層存儲(chǔ)的性能優(yōu)勢(shì)則必定會(huì)受到影響。數(shù)據(jù)在不同層級(jí)之間的連續(xù)性可以由一個(gè)虛擬層來(lái)保證。
命中率
如何設(shè)計(jì)一套算法或者實(shí)現(xiàn)策略來(lái)提高數(shù)據(jù)系統(tǒng)的命中率是分層存儲(chǔ)是否能起到其相應(yīng)作用的關(guān)鍵。這個(gè)與CPU的緩存機(jī)制完全一樣。不過(guò),CPU的緩存機(jī)制已經(jīng)有一套非常成熟的算法設(shè)計(jì)。而外部分層存儲(chǔ)與內(nèi)部分層存儲(chǔ)有其不同的特性,因此,CPU中的緩存機(jī)制不能全部照拿過(guò)來(lái)用。特別是CPU的緩存機(jī)制還主要是硬件設(shè)計(jì)方面的問(wèn)題。而外部存儲(chǔ)層可能還與一些邏輯設(shè)計(jì)相關(guān),比如文件系統(tǒng),文件等。從這點(diǎn)上說(shuō),外部分層存儲(chǔ)的軟件設(shè)計(jì)上比起CPU緩存的設(shè)計(jì)可能要更復(fù)雜。
分層介質(zhì)的選擇
上面也提過(guò),不同層級(jí)之間的介質(zhì)應(yīng)該是有差別的,否則就失去了分層的意義。一般來(lái)說(shuō),高速介質(zhì)應(yīng)該是小容量、高成本,隨著層級(jí)的往下走,其成本容量曲線應(yīng)該呈現(xiàn)如下的形式:
圖5 存儲(chǔ)成本容量曲線圖
即容量越大的單位成本越低,速度越慢,因此應(yīng)該放到更低的層級(jí)中,反之亦然。因此,在存儲(chǔ)介質(zhì)的配置上如何找到一個(gè)合適的點(diǎn),使得成本與效益最優(yōu)化則是在分層介質(zhì)選擇及策略制定上需要考慮的問(wèn)題。
數(shù)據(jù)分層的級(jí)別
對(duì)于數(shù)據(jù)的描述有字節(jié)級(jí)、塊級(jí)(包括扇區(qū)及簇)、文件級(jí)及文件系統(tǒng)級(jí)。當(dāng)然不同的級(jí)別有不同的應(yīng)用場(chǎng)合,并不是哪種級(jí)別好于哪個(gè)級(jí)別。對(duì)于文件級(jí)的分層,對(duì)于歸檔,法規(guī)遵從則比較適合。對(duì)于文件系統(tǒng)級(jí)的則多用于容災(zāi)及備份系統(tǒng)中。對(duì)于塊級(jí)則可能用在虛擬化中較為合適。因此需要根據(jù)不同的需求制定不同的分層級(jí)別。