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

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

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

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

SSD緩存加快讀寫速度

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

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

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

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

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

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

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

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

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

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

分享到

renxinbo

相關(guān)推薦