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