胡新海
(隴南師范高等??茖W校,甘肅 成縣742500)
隨著計算機技術(shù)及其相關(guān)網(wǎng)絡應用的飛速發(fā)展,Web2.0的浪潮使得大眾可以參與信息的制作與編輯,從而導致信息增長具有無限的趨勢。這種信息量的不斷膨脹,人們對數(shù)據(jù)存儲中的存儲容量、高性能、高安全性、高可用性、可擴展性、可管理性等不斷提出更高的要求。信息量呈現(xiàn)爆炸式增長趨勢,使得存儲技術(shù)急需提高。
為應對數(shù)據(jù)存儲的急劇膨脹,企業(yè)需要不斷購置大量的存儲設備來滿足不斷增長的存儲需求。權(quán)威調(diào)查機構(gòu)的研究發(fā)現(xiàn),企業(yè)購買了大量的存儲設備,但是利用率往往不足50%,存儲投資回報率水平較低。數(shù)據(jù)量的急劇增長為存儲技術(shù)提出了新的問題和要求,怎樣低成本高效快速地解決無限增長的信息的存儲和計算問題擺在科學家的面前。如何確保數(shù)據(jù)的一致性、安全性和可靠性,如何實現(xiàn)不同數(shù)據(jù)的高效管理和網(wǎng)絡上的數(shù)據(jù)集中訪問等等。所有這些都對現(xiàn)有的存儲技術(shù)提出了新的挑戰(zhàn),期待著新的網(wǎng)絡存儲技術(shù)及其產(chǎn)品的出現(xiàn),從而也使得更多的網(wǎng)絡存儲技術(shù)迅速崛起。
目前,云計算技術(shù)的興起使得高效低成本網(wǎng)絡存儲技術(shù)已成為計算機領(lǐng)域的研究熱點。通過云存儲技術(shù)不僅解決了存儲中的高安全性、可靠性、可擴展、易管理等存儲的基本要求,同時也利用云存儲中的數(shù)據(jù)縮減技術(shù),滿足海量信息爆炸式增長趨勢,一定程度上節(jié)約企業(yè)存儲成本,提高效率[1-2]。本文通過對云計算技術(shù)中的云存儲數(shù)據(jù)縮減技術(shù)的研究,比較分析了幾種數(shù)據(jù)縮減技術(shù)的優(yōu)缺點,為用戶選擇云存儲數(shù)據(jù)縮減技術(shù)提供有力的參考。
云計算是一種新型的計算模式和用戶體驗,能夠把IT資源、數(shù)據(jù)、應用作為服務,按照標準組件的方式通過公共或私有網(wǎng)絡提供給最終用戶,并且實現(xiàn)了靈活的計價和收費模式。同時,云計算也是一種新的基礎(chǔ)架構(gòu)管理方法,能夠把大量的、高度虛擬化的資源高效地管理起來,組成一個龐大的資源池,并通過具有彈性和可擴展的方式統(tǒng)一提供服務[3]。
云計算的目標是將計算資源集中起來,并由軟件實現(xiàn)自動管理,動態(tài)創(chuàng)建高度虛擬化的資源提供給用戶使用。云計算數(shù)據(jù)中心的計算資源可以自動地管理和動態(tài)地分配、配置、部署、重新配置以及回收,也可以動態(tài)安裝軟件和應用。
云存儲的概念與云計算類似,它是指通過集群應用、網(wǎng)格技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡中大量各種不同類型的存儲設備通過應用軟件集合起來協(xié)同工作,共同對外提供數(shù)據(jù)存儲和業(yè)務訪問功能的一個系統(tǒng)。云存儲的結(jié)構(gòu)層次是主要由存儲層、基礎(chǔ)管理層、應用接口層和訪問層4部分構(gòu)成[4]。在此系統(tǒng)中存儲層中配置了大量的存儲設備,云存儲系統(tǒng)成為高效管理存儲設備的系統(tǒng),從而形成了一個以數(shù)據(jù)存儲和管理為核心的云計算系統(tǒng)。
存儲層是云存儲結(jié)構(gòu)中最核心、最基礎(chǔ)的部分。對于此層,如何實現(xiàn)充分利用已有的設備,提高設備的利用率,人員的效率,并減少運營成本,從而獲得存儲管理工具、技術(shù)和實踐的標準化。從購買更少的磁盤來減少每年的支持費用,到減少存儲管理相關(guān)的運營花費減少存儲管理相關(guān)的費用,節(jié)約成本。通過軟件和硬件的方式可以減少數(shù)據(jù)信息量,以解決目前由于設備不足引起的海量信息存儲問題。目前常用的數(shù)據(jù)縮減技術(shù)主要有本文中提到的幾類,每一類都有自己的有優(yōu)勢,同時也有自身的一些不足之處,如果在實際使用中,有選擇地將某幾方面的數(shù)據(jù)縮減技術(shù)結(jié)合在一起應用,發(fā)揮優(yōu)點,將為云存儲環(huán)境中解決大量數(shù)據(jù)存儲提供有力技術(shù)支持。
自動精簡配置是一種存儲管理的特性,核心原理是“欺騙”操作系統(tǒng),讓操作系統(tǒng)認為存儲設備中有很大的存儲空間,而實際的物理存儲空間則沒有那么大[5]。傳統(tǒng)配置技術(shù)為了避免重新配置可能造成的業(yè)務中斷,常常會過度配置容量。在這種情況下,一旦存儲分配給某個應用,就不可能重新分配給另一個應用,由此就造成了已分配的容量沒有得到充分利用,導致了資源的極大浪費。而精簡配置技術(shù)帶給用戶的益處是大大提高了存儲資源的利用率,提高了配置管理效率,實現(xiàn)高自動化的數(shù)據(jù)存儲。
自動精簡配置技術(shù)是利用虛擬化方法減少物理存儲空間的分配,最大限度提升存儲空間利用率[6-7]。這種技術(shù)節(jié)約的存儲成本可能會非常巨大,并且使存儲的利用率超90%。通過“欺騙”操作系統(tǒng),造成的好像存儲空間有足夠大,而實際物理存儲空間并沒有那么大。自動精簡配置技術(shù)的應用會減少已分配但未使用的存儲容量的浪費,在分配存儲空間時,需要多少存儲空間系統(tǒng)則按需分配。自動精簡配置技術(shù)優(yōu)化了存儲空間的利用率,擴展了存儲管理功能,雖然實際分配的物理容量小,但可以為操作系統(tǒng)提供超大容量的虛擬存儲空間。隨著數(shù)據(jù)存儲的信息量越來越多,實際存儲空間也可以及時擴展,無需用戶手動處理。利用自動精簡配置技術(shù),用戶不需要了解存儲空間分配的細節(jié),這種技術(shù)就能幫助用戶在不降低性能的情況下,大幅度提高存儲空間利用效率;需求變化時,無需更改存儲容量設置通過虛擬化技術(shù)集成存儲,減少超量配置,降低總功耗。
自動精簡配置這項技術(shù)最初由3Par公司開發(fā),目前支持自動精簡配置的廠商正在快速增加。這項技術(shù)已經(jīng)成為選擇存儲系統(tǒng)的關(guān)鍵標準之一。但是并不是所有的自動精簡配置的實施都是相同的。隨著自動精簡配置的存儲越來越多,物理存儲的耗盡成為自動精簡配置環(huán)境中經(jīng)常出現(xiàn)的風險。因此,告警、通知和存儲分析成為必要的功能,并且對比傳統(tǒng)環(huán)境,其在自動精簡配置的環(huán)境中扮演了更主要的角色。
自動存儲分層 (AST)技術(shù)主要用來幫助數(shù)據(jù)中心最大程度地降低成本和復雜性。在過去,進行數(shù)據(jù)移動主要依靠手工操作,由管理員來判斷這個卷的數(shù)據(jù)訪問壓力或大或小,遷移的時候也只能一個整卷一起遷移[8]。自動存儲分層技術(shù)的特點則是其分層的自動化和智能化。
傳統(tǒng)配置方式與自動精簡配置方式比較是一個整卷一起遷移(圖1)。新技術(shù)的特點則是其分層的自動化和智能化。自動存儲分層是存儲上減少數(shù)據(jù)的另外一種機制。一個磁盤陣列能夠把活動數(shù)據(jù)保留在快速、昂貴的存儲上,把不活躍的數(shù)據(jù)遷移到廉價的低速層上,以限制tier1存儲的花費總量。自動存儲分層的重要性隨著固態(tài)存儲在當前磁盤陣列中的采用而提升,并隨著云存儲的來臨而補充內(nèi)部部署的存儲。自動存儲分層使用戶數(shù)據(jù)保留在合適的存儲層級,因此減少了存儲需求的總量并實質(zhì)上減少了成本,提升了性能。
圖1 自動存儲分層整卷遷移
數(shù)據(jù)從一層遷移到另一層的粒度越精細,可以使用的昂貴存儲的效率就越高。子卷級的分層意味著數(shù)據(jù)是按照塊來分配而不是整個卷,而字節(jié)級的分層比文件級的分層更好。
如何控制數(shù)據(jù)在層間移動的內(nèi)部工作規(guī)則,決定需要把自動分層放在正確的位置的努力程度。一些系統(tǒng),是根據(jù)預先定義的什么時候移動數(shù)據(jù)和移動到哪一層。相反的,NetApp公司和Oracle公司(在Sun ZFS Storage 7000系列中)倡導存儲系統(tǒng)應該足夠智能,能重復數(shù)據(jù)刪除,能自動的保留數(shù)據(jù)在其合適的層,而不需要用戶定義的策略。
物理存儲設備在使用一段時間后必然會出現(xiàn)大量重復的數(shù)據(jù)?!爸貜蛣h除”技術(shù)(Deduplication)作為一種數(shù)據(jù)縮減技術(shù)可對存儲容量進行優(yōu)化。它通過刪除數(shù)據(jù)集中重復的數(shù)據(jù),只保留其中一份,如圖2所示,從而消除冗余數(shù)據(jù)。使用Dedupe技術(shù)可以將數(shù)據(jù)縮減到原來的1/20~1/50。由于大幅度減少了對物理存儲空間的信息量,進而減少傳輸過程中的網(wǎng)絡帶寬、節(jié)約設備成本、降低能耗。
圖2 刪除重復數(shù)據(jù)
重復數(shù)據(jù)刪除技術(shù)原理Dedupe按照消重的粒度可以分為文件級和數(shù)據(jù)塊級(圖2)??梢酝瑫r使用2種以上的hash算法計算數(shù)據(jù)指紋,以獲得非常小的數(shù)據(jù)碰撞發(fā)生概率。具有相同指紋的數(shù)據(jù)塊即可認為是相同的數(shù)據(jù)塊,存儲系統(tǒng)中僅需要保留一份。這樣,一個物理文件在存儲系統(tǒng)中就只對應一個邏輯表示[9]。
NetApp公司為其所有的系統(tǒng)提供重復數(shù)據(jù)刪除選項,并且可以針對每個卷進行激活。NetApp公司的重復數(shù)據(jù)刪除并不是實時執(zhí)行的。相反,它是使用預先設置的進程執(zhí)行的,一般是在閑暇時間執(zhí)行,通過掃描把重復的4kB數(shù)據(jù)塊替換為相應的指針。
與NetApp公司相似,Oracle公司在其Sun Storage ZFS 7000系列系統(tǒng)中也具備塊級別重復數(shù)據(jù)刪除的功能。與NetApp公司不同的是,去重是在其寫入磁盤時實時執(zhí)行的。戴爾公司獲得了內(nèi)容感知的去重和壓縮技術(shù),并企圖把這種技術(shù)整合到其所有的存儲系統(tǒng)中。
數(shù)據(jù)壓縮技術(shù)是提高數(shù)據(jù)存儲效率最古老最有效的方法之一。為了節(jié)省信息的存儲空間和提高信息的傳輸效率,必須對大量的實際數(shù)據(jù)進行有效的壓縮。數(shù)據(jù)壓縮作為對解決海量信息存儲和傳輸?shù)闹С旨夹g(shù)受到人們極大的重視。數(shù)據(jù)壓縮就是將收到的數(shù)據(jù)通過存儲算法存儲到更小的空間中去。隨著目前CPU處理能力的大幅提高,應用實時壓縮技術(shù)來節(jié)省數(shù)據(jù)占用空間成為現(xiàn)實。這項新技術(shù)就是最新研發(fā)出的在線壓縮(RACE),它與傳統(tǒng)壓縮技術(shù)不同。對RACE技術(shù),當數(shù)據(jù)在首次寫入時即被壓縮,以幫助系統(tǒng)控制大量數(shù)據(jù)在主存中雜亂無章地存儲的情形,特別是多任務工作時更加明顯。該技術(shù)還可以在數(shù)據(jù)寫入到存儲系統(tǒng)前壓縮數(shù)據(jù),進一步提高了存儲系統(tǒng)中的磁盤和緩存的性能和效率。
壓縮算法分為無損壓縮和有損壓縮。相對于有損壓縮來說,無損壓縮的占用空間大,壓縮比不高,但是它有效地保存了原始信息,沒有任何信號丟失。但是隨著限制無損格式的種種因素逐漸被消除,使得無損壓縮格式具有廣闊的應用前景。
數(shù)據(jù)壓縮中使用的LZS算法基于LZ77(如圖3)實現(xiàn),主要由2部分構(gòu)成,滑窗(Sliding Window)和自適應編碼(Adaptive Coding)[10]。壓縮處理時,在滑窗中查找與待處理數(shù)據(jù)相同的塊,并用該塊在滑窗中的偏移值及塊長度替代待處理數(shù)據(jù),從而實現(xiàn)壓縮編碼。如果滑窗中沒有與待處理數(shù)據(jù)塊相同的字段,或偏移值及長度數(shù)據(jù)超過被替代數(shù)據(jù)塊的長度,則不進行替代處理。LZS算法的實現(xiàn)非常簡潔,處理比較簡單,能夠適應各種高速應用。
圖3 LZ77算法示意圖
數(shù)據(jù)壓縮的應用可以顯著降低待處理和存儲的數(shù)據(jù)量,一般情況下可實現(xiàn)2∶1~3∶1的壓縮比。
壓縮和去重是互補性的技術(shù),提供去重的廠商通常也提供壓縮。而對于虛擬服務器卷、電子郵件附件、文件和備份環(huán)境來說,去重通常更加有效,壓縮對于隨機數(shù)據(jù)效果更好,像數(shù)據(jù)庫。換句話說,在數(shù)據(jù)重復性比較高的地方,去重比壓縮有效。
隨著存儲需求的激增,物理存儲設備也隨之大增。這種分散的異構(gòu)存儲資源最終使管理變得異常困難,致使存儲資源不能被充分利用,其存儲利用率不到50%。解決此問題的方法之一就是存儲虛擬化。虛擬存儲是指一種將不同類型的存儲物理媒介和不同層面的存儲子系統(tǒng)通過軟硬件技術(shù)轉(zhuǎn)換到統(tǒng)一的用戶存儲應用中的技術(shù)[11]。存儲虛擬化是一種邏輯存儲形式,將分散的存儲資源整合抽象成一個單一的邏輯資源,使得管理員僅對一個單一的存儲資源進行智能化有效地管理存儲數(shù)據(jù)。虛擬化將存儲資源的物理特性掩蓋起來,用戶感覺到的存儲資源是巨大的,可以自由調(diào)配的[12]。這樣用戶不再關(guān)心存儲資源的物理結(jié)構(gòu),簡化了管理過程??朔藗鹘y(tǒng)數(shù)據(jù)存儲過程的局限性,能夠更加充分地利用異構(gòu)平臺的海量存儲空間和高效的數(shù)據(jù)傳輸能力,從而為用戶提供一個容量大、數(shù)據(jù)傳輸性能高的存儲系統(tǒng),以實現(xiàn)最大化存儲利用率,減緩存儲需求。
“選擇合適的RAID級別”也是數(shù)據(jù)縮減技術(shù)考慮的一個主要方面,而且不像其他數(shù)據(jù)縮減方法,這是所有存儲系統(tǒng)都可以使用的一個選項,但它對于磁盤的需求、性能和可靠性都有著很大的影響[13]。如果不考慮可靠性缺陷,RAID 0(跨所有磁盤的塊級別條帶,無校驗或鏡像)會是最劃算和最高性能的選擇,但單個磁盤故障將會丟失整個RAID組數(shù)據(jù)的缺點。另一方面,RAID 1(鏡像,無校驗或條帶)和RAID 10(條帶化磁盤組鏡像),結(jié)合了高性能和高可靠性,但需要兩倍的磁盤容量,因此也是站在數(shù)據(jù)縮減的對立面的。RAID 5(塊級別條帶化,分布式校驗)盡管需要一塊額外的磁盤,但已成為近些年來最好的折衷方案了,但隨著磁盤容量的增長,重建時間也越來越長,在單盤故障后,RAID組重建的時候,丟失兩塊磁盤的風險已經(jīng)增加到一個不舒服卻不得不接受的水平。因此,存儲廠商們采用了RAID 6,通過對RAID 5增加一塊額外的校驗磁盤,使其能夠經(jīng)得起2次磁盤故障而不丟失數(shù)據(jù),但隨之而來的有不同程度的性能影響,這與實施情況有關(guān)。在購買一個新存儲系統(tǒng)的時候,RAID 6和RAID 6的性能指標都是要考慮的事情。
通過對云存儲系統(tǒng)應用中的幾種數(shù)據(jù)縮減高效存儲方案的選取,很大程度上緩解了數(shù)據(jù)存儲時海量數(shù)據(jù)的壓力,縮減了數(shù)據(jù)的信息量。對這幾種方案的比較與分析,每種方案都有自己的優(yōu)點與缺點,在實際的應用中,如果綜合運用多種技術(shù),可以獲得最佳的數(shù)據(jù)存儲效率。
[1]金崇英,李小勇,白英彩.海量存儲系統(tǒng)的發(fā)展與展望[J].計算機應用與軟件,2011,28(8):193-195.
[2]王德政,申山宏,周寧寧.云計算環(huán)境下的數(shù)據(jù)存儲[J].計算機技術(shù)與發(fā)展,2011,21(4):81-84.
[3]Michael Miller.云計算[M].姜進磊,孫瑞志,向勇,等,譯.北京:機械工業(yè)出版社,2009:7-10.
[4]Grossman R L,Gu YH,Sabala M,et al.Compute and storage clouds sing wide area high performance networks[J].Future Generation Computer Systems,2009,25(2):179-183.
[5]晏強.云存儲技術(shù)研究[J].計算機與信息技術(shù),2011,12:22-24.
[6]馮凱平.大數(shù)據(jù)量“高效存儲”新技術(shù)探析[J].價值工程,2011,7:143-144.
[7]邱紅飛.存儲的自動精簡配置技術(shù)應用研究[J].電信科學,2010,11:12-17.
[8]王躍清.混合結(jié)構(gòu)數(shù)據(jù)庫中基于頁遷移的存儲分層算法[J].計算機應用,2010,30(11):2962-2964.
[9]廖海生,趙躍龍.基于MD5算法的重復數(shù)據(jù)刪除技術(shù)的研究與改進[J].計算機測量與控制,2010,18(3):635-638.
[10]鄭翠芳.幾種常用無損數(shù)據(jù)壓縮算法研究[J].計算機技術(shù)與發(fā)展,2011,21(9):73-76.
[11]譚生龍.存儲虛擬化技術(shù)的研究[J].微計算機應用,2010,31(1):33-37.
[12]付云生,王開.云虛擬存儲技術(shù)的研究與比較[J].計算機科學,2011,38(10A):202-204.
[13]石方夏,岳鳳芝.信息化建設中的RAID技術(shù)應用分析[J].現(xiàn)代電子技術(shù),2010,17:59-63.