圖 1) NetApp重復數(shù)據(jù)刪除的工作原理。
Data ONTAP如何確定兩個塊可以共享?答案是它會計算每個塊的“指紋”,也就是塊數(shù)據(jù)的哈希值。指紋相同的兩個塊便適合共享。
啟用NetApp重復數(shù)據(jù)刪除之后,它會計算卷中所有在用數(shù)據(jù)塊的指紋數(shù)據(jù)庫(此過程稱為“收集”)。完成此初始設置之后,即可對數(shù)據(jù)執(zhí)行重復數(shù)據(jù)刪除。
為避免減慢常規(guī)操作的速度,重復數(shù)據(jù)搜索作為單獨的批處理任務來執(zhí)行。在正常使用期間,WAFL會在寫入數(shù)據(jù)時創(chuàng)建該數(shù)據(jù)的指紋目錄。該目錄一直積累,直到存儲系統(tǒng)管理員確定的以下任一事件觸發(fā)重復數(shù)據(jù)刪除為止:
·手動發(fā)出重復數(shù)據(jù)刪除“啟動”命令
·開始執(zhí)行計劃的重復數(shù)據(jù)刪除過程
·卷中寫入了20%的新數(shù)據(jù)
·當SnapVault傳輸完成時
啟動重復數(shù)據(jù)刪除過程之后,以更改的塊的指紋作為鍵值開始排序操作。然后,此排序列表將與指紋數(shù)據(jù)庫文件合并。只要兩個列表中存在相同的指紋,就有可能將相同的塊合并為一個。在這種情況下,Data ONTA會棄用其中一個塊,而以引用另一個塊的方式將其替換。因為文件系統(tǒng)時刻在變,只要兩個塊確實仍在使用且包含相同數(shù)據(jù),我們當然就可以執(zhí)行這一操作。為確保兩個塊確實相同,在確定適合重復數(shù)據(jù)刪除的塊之后,會進行逐字節(jié)比較。
NetApp重復數(shù)據(jù)刪除的實施利用了WAFL的一些特殊功能,可以最大限度地降低重復數(shù)據(jù)刪除的成本。例如,磁盤上的每個數(shù)據(jù)塊都使用校驗和進行保護。
NetApp使用該校驗和作為指紋的基礎(chǔ)。由于無論如何都會計算校驗和,相當于“無償”獲得,因此不會給系統(tǒng)增加任何負擔。且由于WAFL從不覆蓋正在使用的數(shù)據(jù)塊,因此在釋放數(shù)據(jù)塊之前,指紋將保持有效。NetApp重復數(shù)據(jù)刪除與WAFL的緊密集成也意味著更改日志的操作將會非常高效。其結(jié)果是:重復數(shù)據(jù)刪除可用于大量的工作負載,而不僅僅用于備份,這與其他重復數(shù)據(jù)刪除實施方案是不同的。
用例
自推出重復數(shù)據(jù)刪除技術(shù)以來,NetApp一直在衡量重復數(shù)據(jù)刪除在實際環(huán)境中的優(yōu)勢。最常見的用例是VMware和VDI、主目錄數(shù)據(jù)及文件服務。該技術(shù)也在迅速應用于Microsoft SharePoint和Exchange 2010。
我們已經(jīng)在Tech OnTap上刊載了多篇文章,重點介紹重復數(shù)據(jù)刪除技術(shù)在VMware和VDI環(huán)境中的獨特優(yōu)勢。在此類環(huán)境中,由于每臺虛擬機使用幾乎相同的操作系統(tǒng)環(huán)境,因此數(shù)據(jù)重復的程度自然是很高的。下表匯總了各種環(huán)境下的典型結(jié)果。
表 1) 利用重復數(shù)據(jù)刪除技術(shù)通常可節(jié)省的空間。
在典型的 VMware 或 VDI 環(huán)境中,可能有大量的虛擬機 (VM) 全部安裝著幾乎相同的操作系統(tǒng)和應用程序,產(chǎn)生了大量的重復數(shù)據(jù)。
如果有 100 臺 VM 運行相同的操作系統(tǒng),每臺虛擬機需要 10 GB 到 20 GB 的存儲,就會有 1 TB 到 2 TB 的存儲被幾乎相同的副本專門占用。應用 NetApp 重復數(shù)據(jù)刪除可以刪除大部分本質(zhì)上冗余的數(shù)據(jù)。
大體上說,如果將 X 臺虛擬機分配給存儲卷,執(zhí)行重復數(shù)據(jù)刪除之后,所需操作系統(tǒng)存儲量約占未經(jīng)過重復數(shù)據(jù)刪除的環(huán)境中所需存儲量的 1/X。顯然,獲得的實際結(jié)果取決于卷中 VM 的數(shù)量及其相似程度。
實際上,客戶在 ESX VI3 環(huán)境中通常能夠節(jié)省 50% 甚至更多的空間,有些客戶的存儲節(jié)省多達 90%。這是對整個 VMware 存儲環(huán)境(不僅包括操作系統(tǒng),還包括應用程序數(shù)據(jù))執(zhí)行重復數(shù)據(jù)刪除的情況下得出的結(jié)果。在 VDI 環(huán)境中,客戶通常節(jié)省空間多達 90%。
NetApp 也一直在研究重復數(shù)據(jù)刪除為常見工程和科學應用程序創(chuàng)建的非結(jié)構(gòu)化文件數(shù)據(jù)的存儲庫帶來的益處,下面以 Siemens Teamcenter PLM 軟件、IBM Rational ClearCase SCM 軟件和用于地震數(shù)據(jù)分析的 Schlumberger Petrel 軟件為例進行說明。
Teamcenter 使用了一個相對較小的元數(shù)據(jù)數(shù)據(jù)庫和一個用于存儲工程設計文件的大型“存儲庫”。每當工程師在 Teamcenter 中保存設計時,程序就會在存儲庫中保存該設計文件的完整副本,即使僅對設計做出十分細微的更改也會如此。
NetApp 與 Siemens PLM 密切合作,使用 Siemens 的性能和可擴展性基準工具模擬正常使用時為大量設計文件創(chuàng)建多個修訂版本的操作,據(jù)此評估重復數(shù)據(jù)刪除在 Teamcenter 環(huán)境中的價值。對生成的存儲庫執(zhí)行重復數(shù)據(jù)刪除可節(jié)省 57% 的空間。鑒于在許多情況下,文件修訂版本數(shù)量可能多于我們模擬的數(shù)量,因此實際節(jié)省的空間量可能還會更高。(當然,一般來說,使用模擬方法來衡量重復數(shù)據(jù)刪除可能節(jié)省的空間時,必須非常謹慎。在許多情況下,由于關(guān)注的通常是性能而不是數(shù)據(jù)形態(tài),因此模擬的數(shù)據(jù)會人為地造成非常多的重復數(shù)據(jù)。)
與 Teamcenter 類似,領(lǐng)先的軟件配置管理解決方案 IBM Rational ClearCase 也包含元數(shù)據(jù)數(shù)據(jù)庫和用于存儲文件的大型“版本化對象庫”,簡稱 VOB。在需要創(chuàng)建 VOB 副本時,對 ClearCase 執(zhí)行重復數(shù)據(jù)刪除是最有幫助的。此外,實驗室環(huán)境中的初步結(jié)果表明,存儲完整的文件時,在 ClearCase 環(huán)境中執(zhí)行重復數(shù)據(jù)刪除可節(jié)省空間 40% 甚至更多。
Schlumberger Petrel 用于地震數(shù)據(jù)解析、油氣藏可視化和模擬工作流。它會創(chuàng)建包含大量文件的項目目錄。用戶創(chuàng)建、分發(fā)和歸檔數(shù)據(jù)時,會在多個存儲設備中存儲重復數(shù)據(jù)對象。通過對此類項目目錄應用重復數(shù)據(jù)刪除,NetApp 節(jié)省了大約 48% 的空間。
使用 NetApp 重復數(shù)據(jù)刪除
表 2 匯總了運行 NetApp 重復數(shù)據(jù)刪除的基本要求。
表 2) NetApp 重復數(shù)據(jù)刪除的基本要求。
除這些要求之外,注意采用一些最佳實踐也有助于成功實施重復數(shù)據(jù)刪除。下面的內(nèi)容匯總了一些重要的最佳實踐,并提供了重復數(shù)據(jù)刪除與其他常見 NetApp 技術(shù)結(jié)合使用的相關(guān)信息。有關(guān)詳盡說明,請參閱 TR-3505:《NetApp Deduplication Deployment and Implementation Guide》。
·在部署重復數(shù)據(jù)刪除之前,您應該在測試環(huán)境中衡量其性能影響及大小調(diào)整要求,對于 NetApp 未曾測試的應用程序(如表 1 所列程序之外的程序)尤其如此。
·重復數(shù)據(jù)刪除會占用系統(tǒng)資源,還會更改磁盤上的數(shù)據(jù)布局。由于應用程序的 I/O 模式和重復數(shù)據(jù)刪除對數(shù)據(jù)布局的影響,讀寫 I/O 性能也會發(fā)生變化??臻g節(jié)省和性能影響取決于應用程序和數(shù)據(jù)內(nèi)容。
·如果應用程序僅創(chuàng)建少量的新數(shù)據(jù),則不宜經(jīng)常運行重復數(shù)據(jù)刪除,因此在這種情況下,頻繁運行的好處微乎其微。重復數(shù)據(jù)刪除的運行頻率取決于靈活卷中的數(shù)據(jù)更改率。
·運行的并發(fā)重復數(shù)據(jù)刪除掃描進程越多,占用的系統(tǒng)資源就越多。最好的辦法可能是采用以下做法:
o錯開靈活卷的重復數(shù)據(jù)刪除計劃,隔日執(zhí)行重復數(shù)據(jù)刪除進程,從而降低運行過多并發(fā)進程的可能性。
o使用自動模式,僅當寫入每個靈活卷的數(shù)據(jù)明顯增加時才運行重復數(shù)據(jù)刪除。(在較小型的環(huán)境中運行重復數(shù)據(jù)刪除時,這樣做易于自然而然地錯開高峰。)
o手動運行重復數(shù)據(jù)刪除。
o每晚運行重復數(shù)據(jù)刪除,最大限度地減少要執(zhí)行重復數(shù)據(jù)刪除的新數(shù)據(jù)量,這樣完成操作所需的時間較少。
·如果在重復數(shù)據(jù)刪除操作完成之前創(chuàng)建了 Snapshot? 副本,則可能導致節(jié)省的空間減少。如果可能,應在創(chuàng)建 Snapshot 副本之前執(zhí)行重復數(shù)據(jù)刪除操作,確保首先完成重復數(shù)據(jù)刪除操作,然后再創(chuàng)建 Snapshot 副本。
·為了正常運行重復數(shù)據(jù)刪除,需要為重復數(shù)據(jù)刪除元數(shù)據(jù)留出一些可用空間。對于 7.3 之前的 Data ONTAP 版本,每個靈活卷應留出總數(shù)據(jù)可用空間的 6%。對于 Data ONTAP 7.3 或更高版本,聚合應該為重復數(shù)據(jù)刪除所作用的所有靈活卷留出總數(shù)據(jù)可用空間的 4%(指紋 + 更改日志),每個靈活卷應留出總數(shù)據(jù)可用空間的 2%。詳細內(nèi)容在 TR-3505 的第 5.3.3 節(jié)中介紹。
重復數(shù)據(jù)刪除與其他 NetApp 技術(shù)
重復數(shù)據(jù)刪除可與其他 NetApp 技術(shù)結(jié)合使用。在許多情況下,重復數(shù)據(jù)刪除能夠進一步提高以下技術(shù)的性能:
·閃存。閃存提供智能緩存,可加快 I/O 操作。NetApp 重復數(shù)據(jù)刪除可提高緩存命中率。如果閃存中存在經(jīng)過重復數(shù)據(jù)刪除的塊,再次請求此塊的幾率要高得多。這種效應稱為“緩存放大”,對服務器和桌面虛擬化特別有用。
·卷 SnapMirror。使用卷 SnapMirror 復制經(jīng)過重復數(shù)據(jù)刪除的卷時,目標卷自動從源卷繼承經(jīng)過重復數(shù)據(jù)刪除的狀態(tài)。這種效應對 VMware 的影響在之前的文章中有所介紹。重復數(shù)據(jù)刪除與所有形式的 SnapMirror 及 SnapVault 的交互作用也在近期的文章中有所介紹。
·FlexClone。FlexClone? 技術(shù)可以將數(shù)據(jù)卷和數(shù)據(jù)集即時復制為透明的虛擬副本。創(chuàng)建 FlexClone 卷時:
o如果父 FlexClone 卷啟用了重復數(shù)據(jù)刪除,新卷會繼承節(jié)省。
o克隆卷繼承父卷的重復數(shù)據(jù)刪除配置,如重復數(shù)據(jù)刪除計劃。
o從 Data ONTAP 7.3 開始,不再克隆重復數(shù)據(jù)刪除元數(shù)據(jù)文件(指紋數(shù)據(jù)庫和更改日志文件),因為它們位于聚合中的卷外部。必須在克隆卷上啟動重復數(shù)據(jù)刪除,才能繼續(xù)執(zhí)行完整的重復數(shù)據(jù)刪除。
·數(shù)據(jù)壓縮。NetApp 數(shù)據(jù)壓縮在 Data ONTAP 8.0.1 中推出,是對重復數(shù)據(jù)刪除技術(shù)的有力補充??赡艿目臻g節(jié)省和用例在之前的 Tech OnTap 文章中有所介紹。
·精簡配置。重復數(shù)據(jù)刪除還可與 NetApp 精簡配置結(jié)合使用,最大限度地提高空間節(jié)省。對于 NAS 卷,配置非常簡單。對于 LUN,可使用以下設置(有關(guān)詳盡說明,請參閱 TR-3505的第 6.4.18 節(jié))最大程度地節(jié)省空間:
o“LUN space reservation value”(LUN 空間保留值)設置為“off”(關(guān))
o“Volume fractional reserve value”(卷保留百分比值)設置為從 0 到 100 之間的任意值
o“Volume guarantee”(卷保證)設置為“none”(無)
o“Snap reserve”(快照保留)設置為“0%”
o“Autodelete”(自動刪除)設置為“on”(啟用)
o“Autosize”(自動大小調(diào)整)設置為“on”(啟用)
o“Try_first”設置為“volume_grow”
結(jié)論
重復數(shù)據(jù)刪除是重要的存儲效率工具,可單獨使用,也可與 NetApp 精簡配置、FlexClone 等其他存儲效率解決方案結(jié)合使用。要了解有關(guān)重復數(shù)據(jù)刪除的詳細信息,請務必參閱 TR-3505:《NetApp Deduplication for FAS and V-Series Deployment and Implementation Guide》。該指南經(jīng)常更新,涵蓋大量主題,包括:
·配置和操作
·針對性能和空間效率的大小調(diào)整
·與其他 NetApp 技術(shù)的結(jié)合使用
·最佳實踐包括與 VMware、Microsoft Exchange、SQL Server 及 SharePoint、Lotus Domino、Oracle 等特定應用程序的結(jié)合使用
·故障排除