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