存儲虛擬化就是將實際的物理存儲實體與存儲的邏輯表示分離開來,服務(wù)器只與分配給它們的邏輯卷打交道,而不用關(guān)心其數(shù)據(jù)是在哪個物理存儲實體上。它可以重新規(guī)劃磁盤陣列,它允許任意數(shù)量的服務(wù)器訪問磁盤陣列,并且不會受到僅能訪問某個物理磁盤或某個RAID分組的限制。存儲虛擬化表現(xiàn)了更直觀,更隨意,更透明的存儲解決方案?;緦哟畏譃椋夯谥鳈C(jī)的虛擬化,基于存儲的虛擬化和基于網(wǎng)絡(luò)的虛擬化。
存儲虛擬化的內(nèi)涵和外延經(jīng)過這些年的大浪淘沙,從概念到具體的解決方案,它的輪廓逐漸清晰,我們在日常工作和應(yīng)用中,已經(jīng)將它不知不覺的應(yīng)用起來,并試圖把這條路走到底,形成一個完整的數(shù)據(jù)存儲周期的鏈條。
就我們所想所知,目前我們在討論一個概念的時候,在為它的前景激動不已的時候,對何時能夠?qū)崿F(xiàn)經(jīng)常要畫上許多問號。而走在第一個的實踐者,需要付出的代價也遠(yuǎn)遠(yuǎn)不只摸著石頭過河這么簡單。沒有軟硬件廠家的配合,真正實現(xiàn)完整的數(shù)據(jù)周期只能是空中樓閣。所幸,存儲虛擬化在這些年不遺余力為各個廠商所支持,我們的工作實踐中,已經(jīng)可以觸摸到,感受到這些支持的作用。走通信息生命周期已經(jīng)可以實現(xiàn)。這個想法讓人激動不已。這里就和大家分享下在這幾年目睹對于虛擬化存儲的一些應(yīng)用。
最初的個人電腦我們具體的看到盤,從物理到邏輯,是如此的清晰。這也是目前我們所有的個人電腦采用的模式,無須多說,都是沒有做過虛擬化的大同小異。而后的PC 服務(wù)器,通過硬件或軟件,給硬盤作出了raid。這是最普遍使用的存儲虛擬化的情況了。從這以后,數(shù)據(jù)可能被鏡像或n+1的保證了。
隨后接觸到第一套SAN的環(huán)境。(存儲局域網(wǎng)(SAN)是一項加強(qiáng)存儲虛擬化的技術(shù)。SAN結(jié)構(gòu)的實現(xiàn)使得多服務(wù)器平臺可以共享多存儲設(shè)備,而SAN結(jié)構(gòu)中的虛擬化可以更有效的利用存儲設(shè)備,并減小對物理存儲設(shè)備的需求)。最初我們的SAN環(huán)境,結(jié)構(gòu)非常簡單。兩臺小型機(jī)通過存儲的光纖交換機(jī)連接磁盤陣列。兩臺機(jī)器通過高可靠性軟件互相切換磁盤陣列的磁盤與應(yīng)用的運(yùn)行。這是虛擬化當(dāng)時存在的比較典型的應(yīng)用,到目前都有非常廣泛的使用。這中應(yīng)用的模式對應(yīng)用用戶而言,感覺只有一臺服務(wù)器在使用,前端服務(wù)在某臺特定服務(wù)器上壞掉后可以由另外的服務(wù)器接管。存儲端因為主機(jī)端的虛擬而虛擬化起來??蛻趔w驗得到了一定的提高。
體會到雙機(jī)與存儲陣列為應(yīng)用帶來的巨大好處,我們將另外一套生產(chǎn)中的單機(jī)系統(tǒng)換成了雙機(jī),當(dāng)時因為經(jīng)費(fèi)的原因,沒有選擇磁盤陣列,選擇了散盤。選擇散盤柜之后,經(jīng)過對這組盤經(jīng)過認(rèn)真仔細(xì)的劃分,根據(jù)應(yīng)用需要對應(yīng)作成了不同的RAID級別,而后就將兩臺主機(jī)與散盤柜通過光纖交換機(jī)相連,配制成高可靠性集群。大家都非常期待見到該應(yīng)用系統(tǒng)運(yùn)轉(zhuǎn)良好,客戶反饋好評如潮。沒想到壓力上來后,運(yùn)轉(zhuǎn)效率低下的遠(yuǎn)遠(yuǎn)超乎我們的想象。由于散盤其本身沒有控制器,它所有的運(yùn)算,分配,讀寫操作的負(fù)擔(dān)全部壓在主機(jī)一側(cè),盤的讀寫操作、運(yùn)算工作負(fù)荷和外界對服務(wù)器應(yīng)用的訪問使用壓得服務(wù)器動彈不得,萬般無奈之下,增加了一個磁盤陣列來做智能化的存儲。換過磁盤陣列后,提供服務(wù)的效果方才轉(zhuǎn)變。
看到此處,相信很多人都會皺眉頭說,這不是顯而易見的問題嘛,散盤柜的運(yùn)行效率怎么可能會比擁有控制器的智能化存儲陣列相比。既然已經(jīng)用了磁盤陣列,怎么還會倒退回去使用散盤柜,來用主機(jī)的CPU進(jìn)行計算和分配呢。話雖然是這么說,但如果沒有這一次的彎路,我們對存儲陣列(這里所說的存儲陣列是比較早期的低端些的存儲)究竟比散盤柜的好多少的的感覺只是一個大概的感覺,甚至我們可能還抱有一些幻想,就是如果散盤配制合理得當(dāng),其效率不見得會比磁盤陣列慢。但事實勝于雄辯,更換使用磁盤陣列之后系統(tǒng)效率的提高不僅僅是成倍的關(guān)系,運(yùn)行速度的提高了一個數(shù)量級。
如果從現(xiàn)在看來,這種選擇的彎路的確可以避免,但當(dāng)時,因為這樣的選擇和彎路,我們卻因此切身的體會到存儲自身提供的虛擬化方法和本身控制器的管理效能會給應(yīng)用充分的加分。
伴隨這應(yīng)用的逐漸增多,管理的系統(tǒng)也呈現(xiàn)了兩種趨勢,一個是SAN的數(shù)量變多(不同類型的應(yīng)用被部署在不同的SAN),另一個是每個SAN需要管理的服務(wù)器和存儲數(shù)量增加。SAN的數(shù)量上增加僅僅是從量上的變化,其基本結(jié)構(gòu)不足以引起我們的興趣,但一個SAN內(nèi)的設(shè)備數(shù)量的增加,對虛擬存儲的支持力度就越來越大了。智能化的存儲,有內(nèi)置的算法,作磁盤存儲的默認(rèn)算法,這些算法負(fù)責(zé)掌管數(shù)據(jù)怎么讀出來,怎么寫進(jìn)去,哪些東西從cache里請出去,哪些可以留下來,數(shù)據(jù)壞了怎么使用熱備盤等等。這些規(guī)矩定下之后,這個存儲對我們而言就是透明的了。我們不關(guān)心磁盤的數(shù)據(jù)存在哪里,只關(guān)系把那些邏輯盤究竟給了哪個服務(wù)器,我們最終可以使用的存儲空間有多少。在一個較大范圍的SAN里面,我們用多個存儲支持著多個主機(jī),也用一個存儲支持著多個主機(jī),多個存儲支持著一個主機(jī)。多對多的虛擬化在不同程度上得到了實現(xiàn)和發(fā)揮。
我們得到了一個SAN,里面的數(shù)據(jù)存儲已經(jīng)實現(xiàn)了虛擬化,然而,這距離信息生命周期的完整閉環(huán)仍然距離遙遠(yuǎn)。存儲行業(yè)中的分類和策略服務(wù)、整合、業(yè)務(wù)連續(xù)性、恢復(fù)和歸檔、法規(guī)遵從和內(nèi)容 管理等存儲策略,體現(xiàn)了信息生命周期管理的不同應(yīng)用領(lǐng)域。在這個里面,我們已經(jīng)根據(jù)不同數(shù)據(jù)的存儲情況,對經(jīng)常訪問的數(shù)據(jù),使用了性能較快的硬盤存儲,對可靠性要求高的數(shù)據(jù),做了鏡像,保證了數(shù)據(jù)的存儲的分類和策略。同時,目前使用的Ultrium二代的磁帶作數(shù)據(jù)的備份存儲,歸檔保存和恢復(fù),可以基本保證數(shù)據(jù)的可靠性。為保證業(yè)務(wù)的連續(xù)性,重要應(yīng)用均采用雙機(jī)Fail over切換,Oracle數(shù)據(jù)庫也采用高可靠性的RAC(Real Application Cluster),這些都在一定程度上保證了業(yè)務(wù)的連續(xù)性。
上述設(shè)備和應(yīng)用,雖然在一定程度上保證了信息在生命周期的各個階段的有效性和可靠性,但其中的幾個問題仍然是今后需要仔細(xì)解決的。接下來,我們會詳細(xì)看看目前現(xiàn)有系統(tǒng)可能存在的問題和今后對問題解決的方法。
按照信息生命周期來思考,磁帶備份并不是作為數(shù)據(jù)恢復(fù)的最佳媒介,磁盤的快速恢復(fù)對業(yè)務(wù)的恢復(fù)。而由于可以異地存放和保留較長時間,是歸檔保存的不二選擇。保證業(yè)務(wù)連續(xù)性的恢復(fù)更好的方法是有雙套存儲系統(tǒng),一套遠(yuǎn)程,一套眼前。然后夜晚做異步復(fù)制(對于一般業(yè)務(wù))。這樣即使本地發(fā)生什么意外,都可以立刻切換到災(zāi)備中心。但這種大手筆的方法,實在不是一般的業(yè)務(wù)所能承受的。其次的方式就是選擇一套低端磁盤作存儲使用。磁帶作離線保存。這個就是我們正在計算準(zhǔn)備的數(shù)據(jù)保存方法。也會在提高業(yè)務(wù)連續(xù)性的同時,體現(xiàn)信息生命周期的管理。
這里,選擇低端磁盤的使用,或者利用現(xiàn)有舊的磁盤陣列,都涉及到虛擬化。目前,我們購買的 hp 的XP12000(即HDS的USP系列)。XP12000已經(jīng)對某些特定的存儲作了支持,可以支持在存儲陣列端的虛擬化。這樣,在我們將某些特定的磁盤陣列加到這個盤陣的存儲池中,就可以成為一個大的虛擬存儲。或者,我們可以依靠SAN,在這個存儲網(wǎng)絡(luò)里增加低端硬盤,成為近線存儲,在離線和在線存儲中減少過度的跨度。而低端的硬盤盤陣,對于主機(jī),同樣是一個有著一定空間的掛接點,對于存儲備份軟件,它卻是存儲和備份的虛擬磁帶機(jī)。
想法不錯,但實施起來需要軟件的幫助。大家都知道,很多存儲軟件早就已經(jīng)作到了將硬盤虛擬成磁帶機(jī)來進(jìn)行數(shù)據(jù)存儲的方法。用這種方法,我們就可以將在線的數(shù)據(jù)以快于備份到磁帶上的速度存儲在近線的磁盤存儲上。而后,我們可以將這份數(shù)據(jù)保存到磁帶上。這種做法說起來很容易,維護(hù)起來也可以實現(xiàn),只是需要考慮很多因素。比如磁盤的數(shù)據(jù)保存周期,哪些數(shù)據(jù)copy到磁帶上,Oracle數(shù)據(jù)庫的歸檔日志維護(hù)改變等等。最近,我使用的備份軟件,升級后可以在一個完整作業(yè)中維護(hù)磁盤和磁帶兩套備份。其具體步驟是目標(biāo)地點可以同時選擇磁盤和磁帶,并可以分別對它們的保留時間和磁帶、磁盤的擦除時間作出循環(huán)規(guī)定。通過這個方法,我們很容易的就可以定義在磁盤上的多份近線備份(建議不要留太多份),同時,可以在磁帶上留下離線的備份數(shù)據(jù),增加可靠性。在軟件的幫助下,已經(jīng)開始做一些不太大,但變化很多,很重要的數(shù)據(jù)的磁盤近線的臨時備份,等到有便宜的大型存儲接入存儲網(wǎng)絡(luò)后,就可以將很多重要數(shù)據(jù)快速存儲在兩個不同地點,進(jìn)一步提高系統(tǒng)的可靠性和業(yè)務(wù)連續(xù)性了。
存儲的虛擬化作為技術(shù),簡化了與存儲有關(guān)的上下游的工作人員的需要考慮的問題。它對用戶而言變成透明的,在存儲數(shù)據(jù)的時候,用戶并不關(guān)系他存儲的數(shù)據(jù)究竟在物理位置的哪塊盤上,具體哪個存儲設(shè)備上。對我們的工作而言,它幫助信息在日趨復(fù)雜的異構(gòu)平臺上完滿的完成生命周期,讓數(shù)據(jù)更安全,更可靠。