任新勃 發(fā)表于:14年07月04日 10:34 [綜述] DOIT.com.cn
在上一篇我們談的火星艙寫入隊列緩存保證了I/O級CDP同時兼顧了系統(tǒng)性能的優(yōu)化,本篇文章我們談一談火星艙的無限IO記錄技術,通過對歷史數據的任意回退,保證了企業(yè)對于IT數據的實時把握,保證了CDP的真正價值。
讓我們再一次從SNIA(存儲網絡工業(yè)協(xié)會)在2008年對CDP的定義開始談起:
“持續(xù)數據保護(CDP)是一種連續(xù)采集或者追蹤數據改動,并存儲這些變化獨立于主存儲,使恢復點能夠來自過去的任意(時間/IO記錄)點。CDP系統(tǒng)可以是基于數據塊、文件或者應用,并能夠為可恢復目標提供優(yōu)秀的粒度,達到無限變化的恢復點。因此,根據這個定義,所有CDP方案需要體現出這3條必要的屬性:
1. 數據變化被連續(xù)采集或者追蹤
2. 所有數據變化存儲在一個獨立于主存儲的位置
3. 恢復點目標是隨意的,并無需在實際恢復之前進行定義”
在上面的描述中,大家應該注意到“來自過去的任意點”和“無限變化的恢復點”。這是指在對每次寫I/O操作打上時間戳的同時,支持不限歷史長度的回滾。
那么,回滾到每一個I/O有多大意義呢?這就好像數據庫的undo日志能回滾每次事務操作那樣。經過測試火星艙CDP系統(tǒng),在SQL Server中循環(huán)插入一條簡單的記錄,真的能夠做的回滾到每一次事務。而如果是秒級或者分鐘級的“準CDP”,顯然做不到這一點。
火星艙CDP可以通過時間定位到需要回滾使用的歷史快照/記錄點
然而,并不是每種I/O級CDP,都能回滾無限的時間長度。比如有的產品能做到保留15天內數據變化,有的不建議超過30天,等等。
為什么會這樣呢?有兩點因素:
1.性能影響——隨著CDP保護時間的延長,對生產存儲性能影響會增加?
2. 索引信息龐大——每一次數據變化,都要在索引表里有一條記錄,這個記錄有沒有限制?
從實現原理上看:I/O記錄和快照最大的不同在于,如果是ROW(寫重定向)快照,在回滾時不需要真正移動數據,只是根據快照表來將索引“還原”到歷史狀態(tài);或者像WAFL、ZFS這些Copy-on-write文件系統(tǒng)則可以做到更先進,天生就是“從不原地修改數據”的寫策略,其元數據管理機制支持幾乎無限數量的快照,并且性能影響更小,回滾時只是對一個表的操作。
由于I/O記錄級CDP的粒度更細,有人將它稱為“錄像”技術,那么在回滾時就類似于“倒放”。如果保護時間一長,數據累積的變化量較大時,回滾時間通常也是成正比的。
而火星艙CDP的I/O記錄技術與眾不同,結合了底層文件系統(tǒng)的高效快照功能(非傳統(tǒng)快照技術),使無限I/O記錄的回滾也能在“瞬間”完成。并且不會隨著保護時間延長,而導致性能的下降。
“長年使用我們也不怕!”——火星高科技術總監(jiān)黃疆對此充滿信心。除此之外,可以看到火星艙還能選擇多個任意時間歷史快照點,掛載為“影子卷”,在這里火星艙上生成的可回滾的I/O記錄和一致性快照作為基礎,保證了CDP對于用戶的價值。