火星艙CDP無限IO記錄技術(shù)

熟悉存儲的朋友可能會問,這樣的I/O級CDP是否會對性能產(chǎn)生不利影響呢?從常理來看,可回滾的顆粒精細度,和應(yīng)用存儲訪問性能之間是魚與熊掌難以兼顧。那火星艙是如何解決這一問題的?

首先,火星艙CDP可選分鐘級快照,以及I/O記錄兩種保護方式。對于回滾精度和一致性要求相對不高的用戶,可以選擇快照方式以降低處理開銷。

至于I/O記錄方面,火星艙專門打造了被稱為“多級緩存隊列”的技術(shù)來優(yōu)化性能。

SSD緩存加快讀寫速度

把固態(tài)硬盤當(dāng)作讀/寫緩存,能夠為 I/O 密集型應(yīng)用優(yōu)化,從而提升存儲系統(tǒng)的性能??梢宰詣訉?ldquo;熱數(shù)據(jù)”工作負(fù)載分擔(dān)到SSD上,如隨機讀寫,從而獲得更高的性能。

首先,每一臺火星艙(不只是CDP)都支持SSD讀/寫緩存功能,針對同步數(shù)據(jù)寫入可以先寫到高速的SSD日志緩存中,再選擇時機刷新至硬盤。該選項可對CDP等I/O密集型應(yīng)用的性能帶來幫助。

為了進一步應(yīng)對業(yè)務(wù)數(shù)據(jù)的集中突發(fā)寫入,火星艙CDP在SSD寫緩存之上又增加了一層——那就是內(nèi)存緩沖。我們知道傳統(tǒng)磁盤陣列都是有DRAM寫緩存來改善性能的,而且這個容量隨著存儲系統(tǒng)檔次的提高而增加。內(nèi)存在寫入性能特別是延時表現(xiàn)方面是閃存無法相比的?;鹦桥揅DP配置的32GB-256GB甚至更大的內(nèi)存,在這里派上了用武之地。

火星艙CDP數(shù)據(jù)復(fù)制流程

火星艙采用基于數(shù)據(jù)塊的CDP功能,直接運行在邏輯卷管理器層面上,提供了系統(tǒng)內(nèi)核 I/O 級別的保護。當(dāng)數(shù)據(jù)塊寫入生產(chǎn)存儲設(shè)備時,CDP分流器實時捕獲數(shù)據(jù)并將其同時寫入到火星艙中。

對于DRAM存儲介質(zhì)的斷電易失性,火星高科持有這樣的觀點:首先火星艙在這里是作為后備存儲設(shè)備出現(xiàn);其次,CDP設(shè)備應(yīng)對的漸進式數(shù)據(jù)破壞不包括停電,即使停電火星艙丟失的也只是緩存中有限的臨時寫入數(shù)據(jù);在有更高要求的場合,可以選配UPS。

Kernel Mode(內(nèi)核態(tài))vs. User Mode(用戶態(tài))

筆者不是程序設(shè)計方面的專家,這里簡單談下。代碼在操作系統(tǒng)的內(nèi)核態(tài)執(zhí)行,不會像基于用戶態(tài)那樣要做反復(fù)的地址空間映射,因此效率會高出很多。

但是有許多廠商的CDP產(chǎn)品,其代碼都是執(zhí)行在用戶態(tài)的。這是由于Linux的GPL開源協(xié)議,如果編程時對內(nèi)核模塊做了改動,就必須公開所有源代碼。火星艙存儲及CDP能做到內(nèi)核態(tài),且擁有完全自主知識產(chǎn)權(quán)的原因是,其底層操作系統(tǒng)基于CDDL開源協(xié)議的Unix定制開發(fā)而來。這樣就能更高效地優(yōu)化數(shù)據(jù)讀寫性能。

可以看出通過對SSD、內(nèi)存緩存的合理應(yīng)用以及操作系統(tǒng)內(nèi)核態(tài)執(zhí)行,火星艙CDP(持續(xù)數(shù)據(jù)保護)數(shù)據(jù)塊級I/O記錄技術(shù),在最大限度保護用戶數(shù)據(jù)的同時,還充分考慮優(yōu)化了應(yīng)用存儲性能。

分享到

renxinbo

相關(guān)推薦