早期的磁盤是一個(gè)大家伙,但容量卻非常小,這就好像最早的計(jì)算機(jī)一樣。世界上第一個(gè)磁盤是IBM于1956年發(fā)明的,當(dāng)時(shí)這塊磁盤比現(xiàn)在對開門的冰箱還要大。雖然這個(gè)存儲的體積非常之大,但其容量卻小的可憐。這么大一個(gè)大家伙,它的容量僅僅才有5MB左右。
圖1 世界上第一塊磁盤
由于其容量太小了,因此一個(gè)磁盤通常也就只能提供給一個(gè)計(jì)算機(jī)使用。這就是所謂的DAS存儲。DAS的全稱為Direct-attached storage,也就是直接連接存儲。也就是計(jì)算機(jī)的存儲后面通過線纜直接連接存儲設(shè)備。具體示意圖如圖2所示。
圖2 DAS存儲架構(gòu)
由于設(shè)備本身體積較大,且線纜長度有限制,因此DAS存儲最大的問題就是在數(shù)據(jù)中心中太過于分散。每個(gè)存儲都跟在計(jì)算節(jié)點(diǎn)后面,計(jì)算節(jié)點(diǎn)在哪,存儲就在那。這給存儲設(shè)備的管理帶來的巨大的挑戰(zhàn)。
圖3 數(shù)據(jù)中心中的DAS存儲
如圖3所示,可能在數(shù)據(jù)中心的每一層樓都有存儲設(shè)備。甚至,存儲設(shè)備會分散在每層樓的不同區(qū)域。因?yàn)闃I(yè)務(wù)量是在不斷增加的,存儲設(shè)備自然也會跟著增加,但是卻無法保證相同業(yè)務(wù)的存儲設(shè)備集中在同一個(gè)區(qū)域。
隨著磁盤技術(shù)的發(fā)展,磁盤的體積越來越小,容量卻越來越大(希捷16TB的硬盤已經(jīng)上市,容量是第一塊硬盤的幾百萬倍)。體積減小之后,一些企業(yè)將這些磁盤被整合在一個(gè)大型的設(shè)備當(dāng)中,形成存儲系統(tǒng)。存儲系統(tǒng)最大的特點(diǎn)是除了存儲數(shù)據(jù)之外有很多附加特性,比如RAID或者數(shù)據(jù)保護(hù)等等,通過附加的軟件特性保證了存儲系統(tǒng)的可靠性和可用性。
由于存儲設(shè)備的巨大容量(一個(gè)存儲系統(tǒng)通常能夠支持?jǐn)?shù)千塊硬盤,PB的容量),通??梢詽M足數(shù)十臺,甚至數(shù)百臺計(jì)算服務(wù)器對空間的使用。但是,通常業(yè)務(wù)所需要的存儲空間無法準(zhǔn)確預(yù)測,因此經(jīng)過一段時(shí)間后有些計(jì)算節(jié)點(diǎn)的空間使用率會非常高,而有些則非常低。如同圖4所示。
圖4 存儲系統(tǒng)空間使用情況
這時(shí),管理員就需要根據(jù)實(shí)際使用情況對存儲容量做動態(tài)的調(diào)整。比如使用率低的需要做縮容操作,而使用率高的則需要做擴(kuò)容操作,避免存儲資源耗盡的情況產(chǎn)生。
這種操作非常繁瑣,而且也很容易出現(xiàn)問題。于是自動精簡配置技術(shù)就出現(xiàn)了。所謂自動精簡配置就是簡化存儲系統(tǒng)管理員對存儲容量的管理。但是該技術(shù)并非存儲系統(tǒng)管理的特性,而是存儲系統(tǒng)數(shù)據(jù)的特性。
傳統(tǒng)的磁盤空間管理策略是預(yù)分配的空間管理策略。也就是說,在計(jì)算節(jié)點(diǎn)看到的存儲空間就是其在存儲系統(tǒng)分配的實(shí)際空間。計(jì)算節(jié)點(diǎn)有沒有使用該存儲空間,或者使用了多大比例都無關(guān)。舉個(gè)例子,如果存儲管理員為計(jì)算機(jī)節(jié)點(diǎn)劃分了1TB的空間,那么在存儲系統(tǒng)就會劃分出去1TB的空間,此空間將不能被其它計(jì)算節(jié)點(diǎn)使用。
圖5 傳統(tǒng)存儲空間管理
自動精簡配置是另外一種存儲空間管理技術(shù),它并不會馬上分配劃分的存儲空間,而是延遲分配。也就是用戶使用多少空間,那么存儲系統(tǒng)就為該存儲設(shè)備分配多少空間。舉個(gè)例子,比如存儲管理員劃分了1TB的空間給計(jì)算節(jié)點(diǎn),但此時(shí)該計(jì)算節(jié)點(diǎn)只使用了1GB的空間,那么雖然在計(jì)算節(jié)點(diǎn)上可以看到1TB的存儲空間,但在存儲系統(tǒng)中實(shí)際只消耗1GB的空間。如圖所示,三個(gè)不同的存儲設(shè)備,雖然都分配了很大的空間,但是空間不會馬上被占用,而是根據(jù)計(jì)算節(jié)點(diǎn)的實(shí)際使用而定的。
圖6 精簡存儲池
通過上圖估計(jì)大家也看出了精簡配置的原理。其實(shí)精簡配置的原理非常簡單,它將存儲系統(tǒng)的存儲資源池劃分為非常小粒度的單元,當(dāng)計(jì)算節(jié)點(diǎn)存儲數(shù)據(jù)的時(shí)候才會分配該單元。也就是用戶看到的是一個(gè)邏輯空間,而非物理空間。
我們再詳細(xì)介紹一下。我們知道磁盤的空間其實(shí)就是一個(gè)線性空間,比如一個(gè)1TB的磁盤,其空間就是從0到1TB的地址,就像一個(gè)非常大的數(shù)組一樣。我們可以將磁盤空間切割為大小相等的塊,比如8KB,然后以該粒度進(jìn)行管理。
當(dāng)從存儲系統(tǒng)劃分存儲空間給計(jì)算節(jié)點(diǎn)時(shí),此時(shí)給用戶看到的是一個(gè)邏輯空間,也就是該空間并不會占用實(shí)際的存儲資源。當(dāng)用戶訪問該存儲設(shè)備時(shí),存儲系統(tǒng)會根據(jù)記錄確定是否有對應(yīng)的物理空間,如果存在則對該物理空間進(jìn)行訪問,否則分配物理空間。
圖7 自動精簡的原理
鑒于上述思路,在實(shí)現(xiàn)的時(shí)候首先要有一個(gè)對磁盤空間進(jìn)行管理的單元,該單元用于標(biāo)記磁盤邏輯空間是否有對應(yīng)的物理空間。另外要有對存儲資源池資源進(jìn)行管理的單元,這里要記錄那些存儲空間已經(jīng)被使用,避免重復(fù)分配。
存儲池的基本原理是簡單的,但實(shí)現(xiàn)起來卻并非那么簡單,主要是需要考慮各種異常情況,實(shí)現(xiàn)容錯(cuò)處理。今天我們主要介紹了精簡配置的概念和基本原理,更多細(xì)節(jié)本號后續(xù)會更加深入的介紹。