孫一晴
(國航信息管理部,浙江 杭州 311207)
目前,信息建設(shè)的一個核心是云計算[1],在存儲領(lǐng)域中,則會涉及一個最常見和最重要的企業(yè)應(yīng)用—云存儲[2]。當(dāng)企業(yè)發(fā)展到一定規(guī)模后,對于高可靠性存儲管理將具有更加迫切的要求,既要求存儲的容量能夠隨著企業(yè)應(yīng)用的擴展逐年按需增長,又要求對不斷增長的數(shù)據(jù)進行完全可靠的備份和便捷管理。云存儲是目前最能夠適應(yīng)這一需求的方式,但公有云的特性導(dǎo)致很多企業(yè),特別是對數(shù)據(jù)相對敏感的企業(yè),對于云存儲的應(yīng)用是否適用企業(yè)存在疑慮。相應(yīng)地,私有云[3]為此提供了企業(yè)自掌控的選擇項。但私有云的搭建又成為企業(yè)面臨的又一道難題。
本研究通過云存儲模式建設(shè)實踐過程中獲得的經(jīng)驗來說明私有云存儲的技術(shù)原理,并通過統(tǒng)一管理、高可用性等具體云存儲技術(shù)的實現(xiàn)原理來說明存儲網(wǎng)關(guān)如何支撐企業(yè)的私有云存儲需求[4]。
事實上,本研究將私有云存儲的構(gòu)建限定在了網(wǎng)絡(luò)存儲的框架范圍內(nèi),原因不僅因為網(wǎng)絡(luò)存儲是目前主流的存儲選項,而且還因為基于網(wǎng)絡(luò)存儲的私有云模式的建設(shè)是目前最為可行、也是最易實現(xiàn)的體系結(jié)構(gòu)。其原理相對簡潔明了,對存儲的各項管理需求能夠比較充分地予以考慮并實現(xiàn),還可以避免一些復(fù)雜的存儲環(huán)節(jié)影響企業(yè)云存儲的建設(shè)[5]。因此,對于涉及多種存儲設(shè)備的企業(yè)或單位而言,本研究給的建議是將其中網(wǎng)絡(luò)存儲的部分從原有存儲系統(tǒng)中剝離出來搭建基于網(wǎng)絡(luò)存儲的私有云體系,而其余的存儲暫時不納入這一體系,直到基于網(wǎng)絡(luò)存儲的限制被取消或者被替代。畢竟,云存儲體系最大的特點是逐步擴展[6-8],這不僅適用于容量的擴展要求,同樣也適用于技術(shù)的發(fā)展要求。
因此,本研究所提的云存儲體系可以被視為私有云存儲模式構(gòu)建的第一階段,隨著技術(shù)的發(fā)展,該私有云將具備更大的適用面,并能夠包括更多的存儲設(shè)備和存儲模式。而其存儲管理的原理上卻不需要作任何的調(diào)整,只需要有更強的設(shè)備兼容性。
目前,企業(yè)的存儲管理大致可以按存儲擴展方式分為兩大類,一類是堅持大存儲管理,一類是小存儲擴展管理。前者通常是一次性購置若干大型存儲設(shè)備,可以保證支撐企業(yè)3~5年的存儲需要,每隔3~5年重新確定方案升級現(xiàn)有的存儲模式,進行大規(guī)模的數(shù)據(jù)遷移。后者則采用逐年小存儲擴展的模式來進行,每年根據(jù)需要購置少量存儲用于替代或者擴充企業(yè)的存儲,不需要進行大規(guī)模的數(shù)據(jù)遷移。很多企業(yè)可能會傾向于前一類,這種模式能夠由較大的企業(yè)進行存儲的技術(shù)支撐和服務(wù),而且不需要每年考慮存儲的擴展問題。但這一模式忽略了一個重要的事實,即所謂的大存儲都是建立在疊加的小存儲設(shè)備上的。換言之,現(xiàn)有系統(tǒng)中的所有的大容量存儲設(shè)備其實都是由一些小存儲設(shè)備通過優(yōu)化模板搭建起來的,例如通過RAID技術(shù)進行數(shù)據(jù)的保護等。而存儲設(shè)備等IT產(chǎn)品逐年價格的遞減是不爭的事實,與其提前若干年高價購置存儲,不如利用云存儲技術(shù)[9]小規(guī)模的擴展存儲,不僅解決了數(shù)據(jù)存儲的可靠性問題,還可以獲得經(jīng)濟上的便宜,這才是企業(yè)存儲管理的必由之路。
圖1 云存儲原理圖
云存儲的原理圖如圖1所示。服務(wù)器與物理存儲通過云存儲核心進行數(shù)據(jù)管理。在圖1中,虛擬存儲器通常也稱為存儲池,是所有物理存儲器的邏輯映射集合。一般意義上的網(wǎng)關(guān)是指協(xié)議轉(zhuǎn)換器,往往是在傳輸層上實際網(wǎng)絡(luò)互連;而存儲網(wǎng)關(guān)是最近比較新穎的概念,它是指利用服務(wù)器等設(shè)備實現(xiàn)不同存儲之間的協(xié)議轉(zhuǎn)換,以便能夠通過這一設(shè)備實現(xiàn)對多個品牌、類型的存儲的訪問。也就是說,原有的存儲模式是將購置的存儲設(shè)備直接通過局域網(wǎng)絡(luò)連接到服務(wù)器上,通常為一個服務(wù)器所管理利用。而在云存儲環(huán)境中,存儲設(shè)備是通過局域網(wǎng)連接到存儲網(wǎng)關(guān)上,所有的服務(wù)器通過部署相應(yīng)的軟件,利用存儲網(wǎng)關(guān)實現(xiàn)對存儲設(shè)備的訪問,即存儲設(shè)備與服務(wù)器不再是一一對應(yīng)的關(guān)系,也不是一對多的關(guān)系,而是多對多的關(guān)系。多個不同的服務(wù)器可以同時訪問這些由存儲網(wǎng)關(guān)管理的存儲設(shè)備。
存儲網(wǎng)關(guān)的介入,解決了存儲管理中的一個顯著的瓶頸[10],即不同的服務(wù)器管理著不同的存儲設(shè)備,這些存儲設(shè)備的共用會成為整個企業(yè)應(yīng)用的一個難題。從這張簡單的原理圖可以看出,存儲網(wǎng)關(guān)的主要功能是支持不同網(wǎng)絡(luò)存儲設(shè)備的協(xié)議要求,并將所有的存儲設(shè)備進行統(tǒng)一的管理。因此,本研究在存儲網(wǎng)關(guān)中引入了存儲池的概念,它將所有物理的存儲設(shè)備映射到一個虛擬的存儲池中,所有服務(wù)器或者應(yīng)用需要訪問的存儲都將從這一存儲池中獲取。這里面最關(guān)鍵的問題是原來需要安裝部署在服務(wù)器上的存儲設(shè)備都被遷移到了存儲網(wǎng)關(guān)上,這也解釋了為什么本研究一再強調(diào)基于網(wǎng)絡(luò)存儲的原因。也只有網(wǎng)絡(luò)存儲才適用于通過存儲網(wǎng)關(guān)不斷擴展的需求,如果是直連的存儲設(shè)備,不是不能體現(xiàn)在這種架構(gòu)中,而是其數(shù)量與存儲網(wǎng)關(guān)的個數(shù)、數(shù)據(jù)接口數(shù)相關(guān),并不能很隨意地增加擴充,因此不能講是真正意義上的云存儲。更重要的是,存儲網(wǎng)關(guān)不僅解決了存儲設(shè)備的連接問題,還解決了存儲設(shè)備的存儲I/O請求問題,而相對而言,直連設(shè)備的I/O請求方式與機制跟基于IP模式的存儲設(shè)備還是有本質(zhì)上的區(qū)別。
從圖1中可以看出,目前這種基于網(wǎng)絡(luò)存儲的私有云存儲體系可以涵蓋FC架構(gòu)、SAN網(wǎng)絡(luò)、NAS[11]等網(wǎng)絡(luò)存儲方式。
圖1其實并沒有將私有云和公有云進行區(qū)分,但私有云和公有云存儲的主要區(qū)別在于對存儲的訪問是在防火墻內(nèi)還是外,因此這里也就不必要進行此細(xì)節(jié)的說明。
存儲網(wǎng)關(guān)這一系統(tǒng)的引入是基于網(wǎng)絡(luò)存儲的私有云存儲體系的關(guān)鍵。存儲網(wǎng)關(guān)不僅僅承擔(dān)存儲的設(shè)備連接任務(wù),還承載著對存儲的I/O請求的處理任務(wù)。其主要軟件功能包括I/O請求包的獲取與轉(zhuǎn)發(fā)、虛擬存儲池的管理與映射邏輯管理、高可用性等其他數(shù)據(jù)保障技術(shù)支持等。由此可見,存儲網(wǎng)關(guān)的功能特點中,并不需要對存儲設(shè)備進行存儲模式的改變,當(dāng)然這并不意味著不能對存儲模式進行改變,如果有更好的存儲模式、更有效的存儲管理功能、而存儲設(shè)備中又不存在需要遷移或只有極少量的數(shù)據(jù)需要遷移的話,對其存儲模式進行改變就是一個不錯的選擇。存儲網(wǎng)關(guān)的存儲I/O請求,其主要的任務(wù)事實上是轉(zhuǎn)發(fā),即將服務(wù)器針對存儲池中的虛擬設(shè)備的I/O請求轉(zhuǎn)換成對物理存儲設(shè)備的I/O請求。由于存儲池的存在,存儲池中的虛擬設(shè)備與實際的存儲物理設(shè)備間有某種映射關(guān)系存在,存儲網(wǎng)關(guān)的主要作用就是將這種映射關(guān)系清晰的定義出來,并將服務(wù)器的I/O請求轉(zhuǎn)換為對物理設(shè)備的I/O請求。更有意思的是,虛擬存儲設(shè)備的I/O請求可以完全與服務(wù)器對實際物理存儲設(shè)備的I/O請求一致,這樣,存儲網(wǎng)關(guān)的主要作用將變成簡單的I/O請求包的轉(zhuǎn)發(fā)及對存儲池的管理了。
本研究將就具體的云存儲涉及的幾個關(guān)鍵性技術(shù)進行原理性的闡述,說明存儲網(wǎng)關(guān)在實現(xiàn)私有云存儲技術(shù)中應(yīng)考慮的主要關(guān)鍵技術(shù)。
統(tǒng)一管理的存儲需求。私有云存儲體系中,各種存儲設(shè)備逐年按需采購,并不保證所有的產(chǎn)品之間具有兼容性,因此數(shù)據(jù)管理的統(tǒng)一性就變得十分的迫切。在實際操作中,研究者將所有的存儲設(shè)備都部署在相應(yīng)的存儲網(wǎng)關(guān)中,以便存儲網(wǎng)關(guān)可以直接訪問它們。當(dāng)有服務(wù)器需要對這些存儲設(shè)備進行訪問時,將向存儲網(wǎng)關(guān)提出請求。當(dāng)然,提出的請求是以存儲網(wǎng)關(guān)的虛擬設(shè)備為訪問對象的。存儲網(wǎng)關(guān)收到這些I/O請求后,可以稍作變動,通過一定的策略,將對這些虛擬存儲設(shè)備的I/O請求轉(zhuǎn)換為對實際物理存儲設(shè)備的I/O請求。這里的關(guān)鍵不是I/O請求包的轉(zhuǎn)發(fā),而是存儲映射的策略。研究者可以在該策略中實現(xiàn)對存儲的負(fù)載均衡管理、對數(shù)據(jù)存儲的冗余性管理及對數(shù)據(jù)進行快照等技術(shù)響應(yīng)。
I/O請求被轉(zhuǎn)發(fā)的示意圖如圖2所示。在圖2中,虛擬存儲設(shè)備的地址范圍可以由存儲網(wǎng)關(guān)自行定義和展現(xiàn)。其空間的大小既可以是實際的物理存儲的真實反映,也可以是動態(tài)的邏輯數(shù)值。這樣的處理模式可以解決存儲分配和存儲訪問請求之間的不對稱問題。簡而言之,就是將應(yīng)用的存儲需求分為兩種,一種是對空間的分配需求,一種是對空間的訪問需求。只有對空間的訪問需求才需要直接映射到物理存儲設(shè)備上,而對空間的分配需求完全可以不考慮物理存儲設(shè)備的現(xiàn)狀,可以等到發(fā)生真正的訪問需求時才實際分配物理存儲設(shè)備到相應(yīng)的虛擬存儲設(shè)備。這也是云存儲模式的優(yōu)勢之一。
圖2 I/O請求的映射轉(zhuǎn)換示意圖
如圖2所示,當(dāng)服務(wù)器中有應(yīng)用試圖訪問虛擬存儲設(shè)備192.1681.1.10時,存儲網(wǎng)關(guān)根據(jù)一定的策略選擇了物理存儲設(shè)備10.12.1.124,并將訪問的數(shù)據(jù)通過存儲網(wǎng)關(guān)返回給服務(wù)器。這里面,存儲網(wǎng)關(guān)除了在選擇相應(yīng)的物理存儲設(shè)備時可以制定策略外,在返回數(shù)據(jù)前也可以通過一定的策略來進行,以便在實時響應(yīng)和網(wǎng)絡(luò)流量間取得平衡。圖2沒有表示出來的內(nèi)容更為豐富,例如在策略選擇中,虛擬存儲設(shè)備不僅可以映射到一個物理存儲設(shè)備上也可以映射到多個物理存儲設(shè)備。相應(yīng)地,如果有多個虛擬存儲設(shè)備映射到同一個物理存儲設(shè)備上,也不是件復(fù)雜的事,這完全可以交由存儲網(wǎng)關(guān)根據(jù)訪問的負(fù)載均衡或者存儲的負(fù)載均衡策略,甚至是安全的負(fù)載均衡來決定。
存儲網(wǎng)關(guān)對外提供了存儲統(tǒng)一管理界面和存儲分配模式。所有的網(wǎng)絡(luò)存儲設(shè)備可以通過IP網(wǎng)絡(luò)或者其他如FC形式與存儲網(wǎng)關(guān)進行連接,并由它向外提供存儲服務(wù)。這樣一來,所有物理存儲設(shè)備的管理將集中到存儲網(wǎng)關(guān)中。這里面唯一的問題,其實也是最讓企業(yè)擔(dān)心的問題是,如果存儲網(wǎng)關(guān)故障,那么數(shù)據(jù)的訪問將會是怎樣的情況呢?實踐中,像這樣的存儲網(wǎng)關(guān)通常是成對出現(xiàn)的,即通過存儲網(wǎng)關(guān)的冗余來實現(xiàn)存儲訪問的高可用性。由此可見,在云存儲模式下,數(shù)據(jù)的高可用性是可以由3層不同的管理體系來保障的。第1層是存儲設(shè)備的供應(yīng)商提供的基于存儲介質(zhì)的數(shù)據(jù)保障,如RAID級別等。第2層是基于存儲網(wǎng)關(guān)軟件的數(shù)據(jù)保障,如不同物理設(shè)備間的互為備份等。第3層是基于存儲網(wǎng)關(guān)系統(tǒng)的數(shù)據(jù)保障,即通過對存儲網(wǎng)關(guān)的冗余部署來實現(xiàn)整個云存儲體系下的數(shù)據(jù)保障。
在實踐中,研究者還需要考慮數(shù)據(jù)保障問題,因為存儲網(wǎng)關(guān)的介質(zhì)故障并不損害物理存儲的介質(zhì)與數(shù)據(jù),即使不通過冗余存儲網(wǎng)關(guān)的模式提高數(shù)據(jù)的高可用性,也可以通過延時機制,即重新部署新的存儲網(wǎng)關(guān)來恢復(fù)對數(shù)據(jù)的可用性。本研究擔(dān)心的問題是如果一旦決定從現(xiàn)有的云存儲機制還原到原有的服務(wù)器直接訪問物理存儲設(shè)備時,應(yīng)該如何操作,如何確保數(shù)據(jù)、設(shè)備的可用。雖然有實驗證明確實可以還原,但是,在比較極端的條件下,這個還原過程還是比較復(fù)雜和費時的。首先是確定還原的物理存儲設(shè)備上有哪些數(shù)據(jù)需要剝離出來,其次是確定哪些數(shù)據(jù)需要遷移到還原設(shè)備上,最后才是通過費時的數(shù)據(jù)遷移過程實現(xiàn)對原還物理設(shè)備的數(shù)據(jù)還原,并重新將其部署到指定的服務(wù)環(huán)境中。之所以工作如此復(fù)雜和麻煩,原因是存儲網(wǎng)關(guān)的負(fù)載均衡機制可以非常靈活,因此任何一臺物理存儲設(shè)備都有可能被分割成較小的若干存儲模塊,并擔(dān)任不同層面的存儲任務(wù),從而導(dǎo)致實際物理設(shè)備上的數(shù)據(jù)本身并沒有簡潔的規(guī)律可尋,這最終造成了存儲設(shè)備數(shù)據(jù)還原的復(fù)雜性。
基于存儲網(wǎng)關(guān)軟件的數(shù)據(jù)安全保障模式,即將一個針對虛擬存儲設(shè)備的I/O請求分解為同時針對兩個物理存儲設(shè)備的I/O請求,并根據(jù)兩個I/O操作的返回來確定服務(wù)器應(yīng)用的返回狀態(tài)。由于兩個物理設(shè)備采用的是IP網(wǎng)絡(luò)存儲,對存儲網(wǎng)關(guān)而言,只是簡單地將一個I/O請求同時分發(fā)給兩個物理存儲設(shè)備并處理返回結(jié)果而已。如果需要,可以將請求同時分發(fā)給更多的設(shè)備,也可以稍加改進,將I/O的請求簡化為日志(LOG)分發(fā)到不同的存儲設(shè)備上,從而減少I/O操作和數(shù)據(jù)冗余,這特別適用于存儲用作數(shù)據(jù)庫的情形。這樣,如果要兩個完全互備的數(shù)據(jù)庫,只需要作兩個數(shù)據(jù)庫的日志互備,簡單有效。當(dāng)然,如果是基于文件系統(tǒng)的話,存儲網(wǎng)關(guān)需要有自己的日志管理功能,以便最大程度降低I/O操作帶來的速度和帶寬問題。
而這種存儲的熱備機制不僅保障了數(shù)據(jù),也在一定意義上提供了存儲的高可用性。由于存儲網(wǎng)關(guān)不僅擔(dān)負(fù)著數(shù)據(jù)分發(fā)的任務(wù),同時也擔(dān)負(fù)著偵測物理存儲設(shè)備的運行狀態(tài)的任務(wù),因此當(dāng)其中某臺物理存儲設(shè)備宕機時,存儲網(wǎng)關(guān)可以實時的監(jiān)測到并適時地切換到另一臺存儲設(shè)備,這個過程可以完全地自動化進行,不需要人工干預(yù)。但對于物理設(shè)備的恢復(fù)而言,人工干預(yù)可以促進存儲網(wǎng)關(guān)重新進入熱備機制,而不至于在撤換損傷的設(shè)備后一直處于單副本的危險境地。所以,私有云存儲的高可用性實際上是通過兩個或多個存儲網(wǎng)關(guān)之間的配置來實現(xiàn)的。
實踐中,這種存儲網(wǎng)關(guān)的存儲高可用性也可在應(yīng)用的高可用性上得到一定的體現(xiàn)。由于無論應(yīng)用本身還是應(yīng)用所依賴的數(shù)據(jù)都是某種形式存儲在設(shè)備上的,研究者可以將應(yīng)用部署到相應(yīng)的存儲中,并通過恢復(fù)存儲來達到恢復(fù)應(yīng)用的目的。雖然這種情形受到部署、人工干預(yù)等的限制,但確實在實踐中具有樸素的高可用性特質(zhì)。
在構(gòu)建異地容災(zāi)的存儲模式時,研究者也可以通過存儲網(wǎng)關(guān)的異地部署來實現(xiàn)。如果10.12.1.123與10.12.1.124兩臺物理存儲設(shè)備是分置在不同物理地點[12]的話,這個實例也就在某種意義上提供了異地容災(zāi)的管理模式。由于I/O請求是一致分發(fā)的,理論上不存在兩個異地的物理存儲需要同步的問題,可以確保彼此間的數(shù)據(jù)的一致性。不過實踐中,由于網(wǎng)絡(luò)原因,無法保證兩邊的所有I/O操作都會被完整地、及時地傳輸?shù)街付ǖ拇鎯υO(shè)備上并被正確地執(zhí)行,因此兩個物理設(shè)備間會有一個小的時間差,這就需要在兩個物理存儲間形成一個同步的機制。而這個同步的機制不需要這兩個物理存儲設(shè)備來直接保障,仍然可以通過存儲網(wǎng)關(guān)來進行,如果在兩處物理位置中分別部署一臺存儲網(wǎng)關(guān),這個同步機制就可以通過兩個存儲網(wǎng)關(guān)來協(xié)調(diào)進行。
本研究就是從基于網(wǎng)絡(luò)存儲的設(shè)備入手,引入存儲網(wǎng)關(guān),從而解決多存儲設(shè)備分別由不同的服務(wù)器控制無法充分共享的問題,達到了統(tǒng)一管理的目標(biāo),也避免了云存儲架構(gòu)下多種異構(gòu)存儲設(shè)備的連接方式、訪問方式差異導(dǎo)致的云存儲體系搭建難題。筆者將這些相對次要的問題留待稍后去解決,不僅能夠解決實踐的存儲統(tǒng)一管理、逐年增長的問題,也符合云存儲體系中逐步擴展的核心理念。實際上,研究者可將存儲的問題也分為幾種不同層次、不同階段的解決方案,通過逐步實驗,逐步解決,最終解決所有兼容問題的模式來構(gòu)建企業(yè)自屬的私有云存儲方案。
(References):
[1]周 平,張 超.云計算及云存儲的管理技術(shù)[J].上海電力學(xué)院學(xué)報,2010,26(5):498-501.
[2]周 可,王 樺,李春花.云存儲技術(shù)及其應(yīng)用[J].中興通訊技術(shù),2010,16(4):24-27.
[3]曾賽峰,朱立谷,李 強,等.企業(yè)級私有云中的虛擬化實現(xiàn)[J].計算機工程與應(yīng)用,2010,46(36):70-73.
[4]朱光磊.云存儲技術(shù)的發(fā)展應(yīng)用趨勢探析[J].電腦知識與技術(shù),2011,7(11):2561-2562.
[5]邊根慶,高 松,邵必林.面向分散式存儲的云存儲安全架構(gòu)[J].西安交通大學(xué)學(xué)報:自然科學(xué)版,2011,45(4):41-45.
[6]劉 琨,董龍江.云數(shù)據(jù)存儲與管理[J].計算機系統(tǒng)應(yīng)用,2011,20(6):232-237.
[7]李煜民,章才能,謝 杰.云計算環(huán)境下的數(shù)據(jù)存儲[J].電腦知識與技術(shù),2010,6(5):1032-1034.
[8]張洪娜.云計算平臺中數(shù)據(jù)存儲與文件管理的研究[D].廣州:廣東工業(yè)大學(xué)計算機學(xué)院,2011.
[9]李 雋.詳細(xì)解析云存儲技術(shù)架構(gòu)[EB/OL].[2010-09-26].http://www.topoint.com.cn/html/colud/cloud?store/2010/09/301609.html.
[10]郭 濤.彌補云存儲管理的空白[N].中國計算機報,2011-08-01(032).
[11]張東升.NAS:云存儲的未來之路IT世界網(wǎng)[EB/OL].[2010-10-08]. http://www.edu.cn/nas-9796/20101008/t20 101008-526814.shtml.
[12]陳曉華,李春芝,張鵬宇.虛擬主機云存儲系統(tǒng)VCloud Storage及文件傳輸協(xié)議VCFTP[J].電信科學(xué),2011,27(7):59-66.