問:什么是數據檢索技術?它同去重,壓縮有什么關系呢?
答:在備份領域,重復數據刪除和數據壓縮技術的應用非常成功。那么,這些技術可以應用于主存儲系統嗎?
新一代主存儲產品借助數據簡縮技術,能夠縮減磁盤使用量的問題,這一點是毫無爭議的,但是我們卻不能確定,基于主存儲的數據簡縮技術是否利大于弊。
對于主存儲系統來說,數據簡縮(data reduction)是一個更準確的術語,因為不是所有的數據簡縮產品都基于重復數據刪除。
壓縮技術的優點是非常成熟,并且易于理解。它的缺點是處理機制僅限于單個文件之內,而無法做到跨文件處理。
針對某些特定的數據類型,塊級別的去重效果是相當明顯的。
怎樣才能使用更少的磁盤,節省更多的電力。如果你買對了產品,不但可以縮減磁盤數量,甚至能夠削減50%的電費成本 -- 這是主存儲數據簡縮技術的宣傳口號,非常吸引人!與此同時,此類產品的價格也極具吸引力。不過,對此類技術質疑的聲音仍然存在。盡管在縮減磁盤使用量這一點上幾乎不存在爭議,但是我們仍然不能確定基于主存儲的數據簡縮技術是否利大于弊。
以下是在主存儲上使用數據簡縮技術的關鍵問題:
為什么叫做數據簡縮,而不是重復數據刪除?
磁盤已經很便宜了,為什么還要開發新技術簡縮數據?
基于主存儲的數據簡縮技術有哪些不同類型?
究竟能節省多少磁盤空間?
數據簡縮的定義
在備份領域中,重復數據刪除是被大家公認的、最恰當的技術術語,一般用來描述去除備份數據集的冗余部分。但是對于主存儲系統來說,數據簡縮(data reduction)卻是一個更準確的術語,因為并不是所有的數據簡縮技術都是基于重復數據刪除的方法。作為一類技術的總稱,任何能夠降低磁盤空間占用的技術都包括在數據簡縮的范圍之內。目前,數據簡縮技術有三種主要的類型:壓縮、文件級重復數據刪除、塊級(或字節級)重復數據刪除。
在詳解這些不同的技術之前,讓我們看看主存儲系統和備份存儲系統究竟有哪些區別(上面提到的幾種數據簡縮技術,都是先用于備份系統,之后才得以應用到主存儲系統的)。主存儲和備份之間最主要的區別在于它們對數據實體的存儲與訪問方式不同。備份是典型的批量寫操作,一般通過自動化的進程處理。備份過程中,生產系統的性能會暫時下降,或者出現系統資源不足的情況。有的系統內部會植入一些技術,以解決備份過程中出現資源緊張的問題。備份過程幾乎沒有讀操作,多數用戶并不關注數據恢復的速度,如果有人要求恢復文件或數據庫,管理員根據需求做恢復操作就可以了,除非恢復的時間特別長,否則沒有人真的在意到底要等多久。大多數人對備份系統的期望值并不高,只要數據能恢復,他們就會滿意(這看上去有點兒可笑,但事實的確如此)。使用基于磁盤的備份系統,可以顯著降低備份過程對生產系統性能的影響,很多人都察覺不到這種影響的存在。
主存儲系統則完全是另一種情況。數據會隨時寫入,常見的寫操作包括填寫電子表格、更新數據庫,儲存文檔或者編輯多媒體文件等等,每天都可能有幾十甚至數百次類似的操作請求。用戶很在意“數據存盤、打開文檔、訪問數據庫和網頁”這些操作的響應時間。設想一下,如果因為某些原因,用戶在存盤或打開文件時時間從一兩秒延長到三四秒,那么肯定會找管理員投訴的。
這就意味著,主存儲系統的首要原則是“不能出問題”,換句話說是不能影響請求的響應時間。回到最初的問題,使用數據簡縮技術可以極大地降低存儲系統的采購成本、節約電力并減少散熱,但是,如果因為使用這些技術而給用戶的應用體驗帶來負面影響的話,單純的成本上優勢看上去就不那么有吸引力了。
在主存儲系統中,使用數據簡縮的另一個挑戰是磁盤空間的節省程度是否可以達到在備份系統中使用重復數據刪除技術同樣的水平,這通常是很難做到的。傳統的備份技術大多以多份副本的形式將數據存放在不同的地方,同時帶來大量的重復數據,但主存儲系統一般不是這種情況(雖然也有例外)。大多數人感覺數據簡縮50%(簡縮比率為2:1)是很可觀的,這就是為什么多數提供主存儲簡縮技術的廠商很少使用比率來衡量效果,而更傾向于使用百分比這個概念。(數據存儲簡縮75%,聽上去比簡縮率3:1更吸引人。)
如果用戶考慮在主存儲系統中實現數據簡縮,而且期望的底線是達到備份環境中數據去重的效果,那這個工作就是非常困難的,并且得不到什么回報。我們在這里并不是不建議用戶考慮主存儲數據簡縮技術,而是告訴用戶要有一個合理的期望值。
基于主存儲的數據縮減技術壓縮。壓縮技術已經出現了數十年,但是壓縮通常是針對那些存取頻率不是很高的數據,這是因為數據的壓縮和解壓縮需要CPU進行非常密集的計算處理,這樣往往會影響數據的訪問。
在企業級數據中心,壓縮被廣泛地應用在備份領域。現在的磁帶機都可以在備份和恢復過程中動態地壓縮和解壓數據,我們看到壓縮不僅沒有減緩備份的速度,事實上還提高了備份的性能,這是怎么一回事呢?其秘密就在于磁帶機使用了專用的芯片,能夠以達到線速的性能對數據進行壓縮和解壓縮。通過壓縮,數據減少了大約50%,相當于磁帶機只需要將數據總量的一半寫入到磁帶,鑒于磁頭是I/O的瓶頸,壓縮實際上提高了磁帶機的有效性能。
與備份應用一樣,壓縮的優勢同樣體現在主存儲系統中。有一些產品諸如Storewize公司的STN-2100和STN-6000,以及Ocarina Networks公司的ECOsystem,都支持在數據寫入/讀取過程中同步進行壓縮/解壓縮,如果它們能達到線速,就不會影響主存儲系統的讀寫性能。壓縮算法的效果與數據類型有一定關系,針對不同類型的數據,存儲空間的需求可以減少30%~75%不等。壓縮技術的優點是技術成熟、易于理解。缺點是它的處理機制僅限于單個文件之內,無法做到跨文件處理,這也限制了壓縮技術簡縮數據的能力。
文件級去重。文件級去重即在文件系統中檢查并判斷兩個文件是否完全相同。如果去重系統發現兩個相同的文件,其中之一就會被指向另一個文件的指針所取代。這項技術的優點是不會影響數據的讀取性能,而且用戶打開文件時,也不需要進行解壓縮或者數據重組,它只是簡單地將多份訪問請求鏈接到同一份數據。這種方法的缺點是效率問題,與壓縮技術或者塊級去重相比,它顯然無法達到同樣高的數據簡縮比率。
塊級重復數據刪除。這個方案與備份系統中使用的基于哈希值比對的重復數據刪除非常相似。它將所有的文件分解成數據塊,然后通過散列算法,為每個塊創建一個哈希值,并與其他所有數據塊的哈希值進行比對,如果兩個不同數據塊的哈希值完全一致,其中的一個塊就會被刪除,并用指向另一個塊的指針來代替。
針對某些數據類型,塊級去重的數據簡縮效果相當明顯。其中,對虛擬機系統,尤其是桌面虛擬化系統的映像文件,塊級去重的效果最為驚人。在這種環境下,將數據簡縮掉75%甚至90%都很常見。在其他的應用環境中,數據簡縮的效果與用戶自己創建了多少重復的數據副本有一定關系。有一些用戶會在他們所用的目錄下保存文件的多個版本,比如他們在某一時刻將文件存盤,然后用不同的文件名再做一次存盤,他們知道,用這個方法,無論在什么情況下,都能恢復到以前的版本。但是,這種做法會導致一個文件有許多不同時間點的副本,而且用戶很少回頭去刪除那些舊的文件版本。此外,有許多在一起工作的人可能會分別下載同樣的文件,這些重復的數據都會存放在他們的共享文件夾中,這就是為什么塊級去重經常是針對用戶工作目錄的原因。
塊級去重是全局處理模式,能夠發現存儲空間內所有的重復數據,無論數據以怎樣的形式保存,這是它的優點。這種方法的缺點是,它分割的數據塊較大。壓縮則恰好相反,壓縮是一種粒度級別更低的處理機制,比如,去重算法可能將數據塊的大小定義為8KB,而一個優秀的壓縮算法會將塊的大小縮小到4KB。這就是為什么有一些數據簡縮系統同時使用壓縮和去重兩種技術的原因。
下面提及的廠商目前都已經推出了主存儲數據簡縮產品(按字母順序排列):
EMC
EMC在他的Celerra filer (NAS產品)中提供了文件級去重以及針對休眠數據的壓縮功能。管理員可以根據需要進行配置,比方說可以定義對舊文件(創建時間超過一個設定值)進行去重或壓縮處理,或者從文件大小的維度進行定義。雖然,僅僅對部分數據進行簡縮的效果明顯不如覆蓋全部數據,但是EMC的用戶報告仍然顯示,通過實施數據簡縮,用戶極大地節省了開支。
Exar公司
Exar在2009年4月收購了Hifn公司,獲得了重復數據刪除技術。最終用戶可能不太熟悉Exar這家公司,但沒準已經用上了他的產品。許多高端虛擬磁帶庫(VTL)和帶有去重功能的備份系統都配有Exar的硬件數據壓縮卡。目前Exar公司已經發布了一個可以安裝在Windows或Linux服務器上的硬件重復數據刪除卡Hifn BitWackr B1605R,這是一個硬件與軟件結合的產品,服務器內任何一個硬盤上發生寫操作,都會做數據去重處理。它可以幫助CPU擺脫處理數據去重和壓縮的負擔,同時也讓用戶在Windows或Linux服務器上加入數據簡縮功能變得更加容易。
GreenBytes公司
GreenBytes公司的地位比較獨特,因為他們是第一個試圖創造一種單一的數據簡縮產品,能夠同時用于備份系統和主存儲系統的廠商。這個產品就是GB-X系列,它既是一個NAS設備,也是SAN設備。GreenBytes使用了基于散列算法的重復數據刪除技術,但他們的算法不同于所有其他廠商。他們的算法叫做Tiger,而不是其他公司廣泛使用的SHA-1。GreenBytes解釋說Tiger比SHA-1更適合通用處理器,因此,該產品具有明顯的性能優勢,同時也不會影響數據的完整性(因哈希碰撞引起的數據去重錯誤,可能造成數據丟失)。Tiger的散列鍵長度(key space)是192位,明顯高于SHA-1的160位,從而進一步降低了哈希碰撞的幾率。與此同時,GreenBytes在產品中大量使用SSD固態盤,作為SATA磁盤前端的高速緩存,這樣做可以更好的滿足用戶對主存儲系統性能的要求。
惠普
惠普在他的StorageWorks X系列網絡存儲系統中提供文件級去重功能,但不具備壓縮功能。對于用戶來說,文件級去重系統的存儲空間簡縮能力相對有限。
NetApp
實際上NetApp是第一個提供數據去重功能的一線存儲廠商,它利用并改進了已有的WAFL(write anywhere file layout)文件系統技術。WAFL文件系統已經為存儲在其中的每個數據塊計算了一個CRC校驗碼,并且在文件系統中還包括塊地址的指針(NetApp系統能夠做數百個快照,而且文件系統的性能不會有任何下降,其秘密就在于此)。一個可選的占用極低系統資源的守護進程負責檢查所有的校驗碼,如果有任意兩個校驗碼匹配,filer(NetApp系統的別名)就會對這兩個數據塊做塊級比對。如果比對的結果是完全一致,那么其中的一個數據塊將被WAFL指針所取代。塊級去重處理不會對系統性能產生明顯的影響。有許多客戶測試過NetApp的重復數據刪除功能,涉及到多種數據類型,包括目錄/文件,數據庫和虛擬機映像文件,大部分用戶對去重的效果和系統性能都比較滿意。在撰寫本文時,NetApp只提供了重復數據刪除功能,而沒有壓縮。
Nexenta Systems公司
Nexenta的NexentaStor系列存儲軟件產品使用了Oracle/SUN公司的Solaris ZFS文件系統,該文件系統基于開源的 OpenSolaris操作系統平臺。不過,該公司已經在標準的ZFS上面增加了超過30種獨有的附加功能,集成了包括管理控制臺,LDAP,持續數據保護(CDP)和同步復制等功能。最近發布的NexentaStor 3.0提供了重復數據刪除功能,完全兼容Citrix、XenServer,微軟Hyper-V和VMware vSphere等服務器虛擬化平臺。
Ocarina Networks公司
同許多其他廠商相比,Ocarina Networks公司采用的數據簡縮方法完全不同。多數廠商使用的壓縮和去重技術并不會識別數據的類型,而Ocarina公司則有數百種不同的壓縮和去重算法,針對每一種特定類型的數據。比如,他們使用完全不同的壓縮技術去處理word文檔和圖像文件。他們還支持像DICOM (Digital Imaging and Communications in Medicine)這樣的嵌入式系統。具體處理方法是:Ocarina先拆解DICOM數據包,然后對各類組件進行檢查并去重,最后重新封裝數據包。因此,在同類數據的壓縮和去重比率方面,Ocarina經常可以做到比其他廠商更高。
Ocarina Networks不是一個存儲廠商,他通常與存儲硬件廠商合作,并為存儲系統提供接口支持。目前他的商業伙伴包括BlueArc,EMC,惠普,HDS和Isilon。
Oracle-Sun
Oracle的Solaris ZFS文件系統也內建了塊級重復數據刪除功能,但是目前為止,關于它在客戶那里的使用情況—去重和性能表現,我們還沒看到很多可用的信息。不過,ZFS的網站倒是提供了一些說明:只要把用于去重比對的哈希表放在內存中運行,那么系統啟用去重或不啟用去重,在性能上不會有明顯的差異。
市場的快速增長
大約一年多以前,市場上還沒有基于主存儲的數據簡縮產品,但是現在,我們已經有了六、七個可選方案,而更多的新產品會陸續面市。文件存儲市場正處在快速增長期,存儲廠商必然會將數據簡縮技術集成到他們的各種產品中,這個時間一定不會太久。
一些廠商認為歸檔和分級存儲管理(HSM)也是數據簡縮技術。歸檔和HSM應用都可以減少磁盤上的數據量,但它們的做法只是將數據從一個存儲系統遷移到另外一個。雖然也可以節約成本,但是并沒有真正縮減數據量,僅僅是將數據轉移到更便宜的存儲介質上。盡管它們都是很好的技術,也值得那些有海量數據管理需求的企業去研究,但它們并不是我們要討論的數據簡縮技術。