【摘要】隨著計算機和信息技術(shù)的不斷發(fā)展,人類每日產(chǎn)生的信息量正以指數(shù)的級別增加。面對海量的數(shù)據(jù),如何快速存儲數(shù)據(jù)并保證數(shù)據(jù)的安全成為當今社會的重要考驗。首先闡述了快照技術(shù)的現(xiàn)狀,并介紹了當前主流的快照技術(shù),然后詳細介紹了基于卷的快照技術(shù),最后分析了該技術(shù)的應(yīng)用前景。該技術(shù)提高了時間和空間的利用率,有較好的應(yīng)用價值。
【關(guān)鍵詞】快照創(chuàng)建卷寫時復(fù)制克隆存儲備份
中圖分類號:TP31文獻標識碼:A文章編號:1006-1010(2014)-07-0069-04
1 背景
隨著計算機技術(shù)的不斷發(fā)展,人們的信息化水平得到了空前的提高。在當今時代,新聞、多媒體、航天技術(shù)、生物技術(shù)、電子圖書館、電子商務(wù)等大量數(shù)據(jù)業(yè)務(wù)的涌現(xiàn),對計算機存儲及信息的安全提出了嚴峻的考驗。有數(shù)據(jù)表明,現(xiàn)在每年產(chǎn)生的數(shù)據(jù)量相當于之前所有年代的數(shù)據(jù)量之和。另外黑客、病毒等因素還時時威脅著數(shù)據(jù)的安全,所以如何合理地存儲數(shù)據(jù),以及數(shù)據(jù)的安全顯得尤為重要。
然而存儲技術(shù)的發(fā)展卻沒能完全跟上時代的步伐,雖然現(xiàn)在云存儲被炒得很火,但真正成熟的解決方案卻很少,在企業(yè)的存儲上,重要的數(shù)據(jù)還是依靠昂貴的磁陣來存儲。在數(shù)據(jù)備份方面還是一直采用數(shù)據(jù)復(fù)制、備份、恢復(fù)等技術(shù)來保護數(shù)據(jù)的安全,定期對數(shù)據(jù)進行備份和復(fù)制。由于備份過程會影響性能,并且非常耗時,一般會選擇在系統(tǒng)較輕松的夜間進行。
顯然,這種數(shù)據(jù)存儲方式存在非常嚴重的不足。在備份期間,企業(yè)需要暫停對外的服務(wù),隨著業(yè)務(wù)的發(fā)展,這個時間可能會越來越長。但現(xiàn)在許多應(yīng)用,如銀行、網(wǎng)上支付等,都要求24小時不間斷營業(yè),短暫的間斷可能會帶來巨大的損失。另外,傳統(tǒng)的數(shù)據(jù)分享方式帶來了巨大的存儲浪費,例如同樣一份數(shù)據(jù),每個用戶都會備份一份。而快照技術(shù)則可以彌補這些不足,因此處在不斷的發(fā)展之中。
2 當前主流技術(shù)
(1)鏡像分享
顧名思義,鏡像分享需要一個完整的物理鏡像,同一份數(shù)據(jù)需寫在兩個設(shè)備上。當需要創(chuàng)建快照時,停止鏡像卷的寫操作,鏡像被保存為一個快照。當需要新的快照時,需要重新準備一個物理卷,并與源數(shù)據(jù)進行數(shù)據(jù)同步。
優(yōu)點:有完整的物理備份,安全;窗口時間小,基本不會影響使用。
缺點:每個備份都需要完整的物理設(shè)備,成本高;需要完整的數(shù)據(jù)同步后才能創(chuàng)建快照,不夠靈活。
(2)寫時復(fù)制
寫時復(fù)制在創(chuàng)建快照的時候,并不會發(fā)生真實的數(shù)據(jù)拷貝,而僅僅是復(fù)制當前卷的元數(shù)據(jù),因為元數(shù)據(jù)非常小,所以整個過程幾乎在一瞬間完成。當原始卷有數(shù)據(jù)修改時,首先將這塊數(shù)據(jù)讀出來,寫入給快照預(yù)留的空間,然后再將新的數(shù)據(jù)寫入原始卷。因為在寫數(shù)據(jù)時才會對數(shù)據(jù)進行備份,因而得名。
優(yōu)點:創(chuàng)建快照快,不需要完整的物理設(shè)備,成本小。
缺點:沒有完整的物理備份,有風險。
(3)指針重映射
指針重映射與寫時復(fù)制基本類似,創(chuàng)建快照時也不會發(fā)生數(shù)據(jù)拷貝。區(qū)別在于當發(fā)生數(shù)據(jù)改變時,系統(tǒng)直接將新的數(shù)據(jù)寫入新分配的空間,并將數(shù)據(jù)的指針指向新分配的區(qū)域。而原來的數(shù)據(jù)空間作為快照空間被保存下來。與寫時復(fù)制相比,指針重映射加快了寫操作,每次寫少了一次IO操作。
(4)日志文件
日志文件是指對文件系統(tǒng)的每一次寫操作都寫上日志,當系統(tǒng)出現(xiàn)故障時,可以通過日志來恢復(fù)信息。這種技術(shù)主要用于ext3等本地文件系統(tǒng)中,有時也用于分布式系統(tǒng)的主備同步機制上。
(5)克隆快照
克隆快照可以理解為鏡像分享和寫時復(fù)制的結(jié)合。首先利用寫時復(fù)制創(chuàng)建一個快照,然后在后臺啟動一個進程,將快照復(fù)制到一個獨立的設(shè)備,以保證數(shù)據(jù)的安全。
3 基于分布式的快照
前面講了很多的快照技術(shù),各有其優(yōu)缺點。這里介紹的快照技術(shù)與寫時復(fù)制比較相似,但使用上更靈活,能適用于很多場景。
在大多數(shù)企業(yè),都會有一個知識庫,所有的人都可以從上面取資料,但是不能修改,如果要修改必須重新拷貝一份至本地。但大多數(shù)人都有一個習(xí)慣,即使不修改,也會拷貝一份至本地磁盤,以便隨時查看。這樣,一份文檔可能在公司里存在幾千甚至幾萬份,公司給員工都配備了大容量的硬盤,結(jié)果還是不夠用,那么有沒有辦法能夠?qū)⑦@些數(shù)據(jù)只保存一份而又能滿足隨時修改的需求呢?
再來看另外一個場景,公司每個人的電腦都要裝操作系統(tǒng),而對于操作系統(tǒng)里面的文件,大部分都是用不著修改的。以Windows 7為例計算,假設(shè)一個系統(tǒng)占據(jù)10G,一個公司共有1 000名員工,那么僅系統(tǒng)占的空間就是10T,有什么辦法能節(jié)省空間呢?
3.1卷的創(chuàng)建
快照的核心是卷的管理,所有的快照都是基于卷來創(chuàng)建的。這里講的卷與傳統(tǒng)意義上的卷是有區(qū)別的:卷既可以是單機的,也可以是分布式的;卷是寫時分配的,即在創(chuàng)建卷時是不會分配任何空間的,只有在真正寫數(shù)據(jù)時才會分配空間。
假設(shè)有一個存儲單元,其容量是1T,需要在上面創(chuàng)建一個10G的卷,將塊大小設(shè)置為512k,那么得到的是一個如圖1所示的卷:
圖1存儲單元創(chuàng)建卷示意圖
塊的大小可以根據(jù)業(yè)務(wù)的需要而定,對于存儲大文件的系統(tǒng),可以將塊盡量設(shè)的大一點。例如HDFS默認的塊大小是64M,如果是存儲小文件,可以考慮將塊設(shè)小一點。一般情況下推薦用512k或1M。當然也可以用一些合并技術(shù)來解決數(shù)據(jù)冗余的問題。
寫時分配也是一個很重要的概念,業(yè)界很多系統(tǒng)都使用了這個技術(shù),例如前段時間打得火熱的網(wǎng)盤大戰(zhàn),騰訊、百度、360分別將其提供的免費容量提升至T級別,其實除了極個別用戶,大部分都只使用少部分空間,企業(yè)并不需要為這一措施購買大量的存儲。
創(chuàng)建卷后就可以在卷上創(chuàng)建文件系統(tǒng)或?qū)憯?shù)據(jù)了,每個邏輯塊所對應(yīng)的磁盤位置通過一定的算法進行定位。
3.2快照的創(chuàng)建
在創(chuàng)建快照前有必要介紹一下快照與卷的關(guān)系,所有的快照都是在卷上創(chuàng)建的,快照是只讀的,卷是可寫的??梢曰诳煺談?chuàng)建卷,所有基于快照創(chuàng)建的卷上都保留有快照上所有數(shù)據(jù)。其關(guān)系如圖2所示:
圖2快照與卷的關(guān)系
對于卷和快照的操作主要包含以下三個方面:
◆創(chuàng)建卷(圖2左側(cè));
◆基于當前卷創(chuàng)建快照(圖2中間);
◆基于快照創(chuàng)建卷(圖2右側(cè))。
為了更好地定位到每個卷對應(yīng)的數(shù)據(jù)及位置,這里定義了一組KEY:
KEY(volum_id, branch_id, snap_id, block_id)
volum_id:如果卷或快照具有同一個根節(jié)點,那他們就具有相同的volum_id;
branch_id:每基于快照創(chuàng)建一個卷,那么這個卷就產(chǎn)生一個新的branck_id;
snap_id:在同一個分支下,snap_id遞增,例如圖3中間,快照1的snap_id是0,卷1的sna_id是1;
block_id:如圖1,每個塊對應(yīng)一個block_id,并遞增。
有了上面這組KEY,就可以很方便地對數(shù)據(jù)進行操作了。
圖3讀數(shù)據(jù)操作
3.3讀數(shù)據(jù)
邏輯卷上的每一個塊,都有一個對應(yīng)的KEY,KEY上面記錄了這個塊上是否有數(shù)據(jù),有數(shù)據(jù)的話,記錄數(shù)據(jù)存放的位置。如圖3所示,塊1、2、4、5、7、9上是有數(shù)據(jù)的,其中7、9所對應(yīng)的KEY分別為(0,0,0,6)、(0,0,0,8)。
endprint
假如此時有請求過來需要訪問塊7的數(shù)據(jù),塊7的KEY是(0,0,1,6),檢查發(fā)現(xiàn)其上沒有數(shù)據(jù),于是尋找其父節(jié)點,找到7,7上有數(shù)據(jù),于是將數(shù)據(jù)讀出。如果請求的是塊6的數(shù)據(jù),發(fā)現(xiàn)上面沒有數(shù)據(jù),向上尋找父節(jié)點6,也沒有數(shù)據(jù),再向上尋找,直到找到根節(jié)點為止,此處6已經(jīng)是根節(jié)點,所以認為塊6是空的。
由此可以看到,卷1上本身是沒有數(shù)據(jù)的,但是通過父節(jié)點可以讀到數(shù)據(jù)。這同樣適用于卷2,卷1和卷2共享數(shù)據(jù)卻互不干擾。
3.4寫數(shù)據(jù)
假如收到一個請求,需要修改塊1(0,0,1,0)的數(shù)據(jù),首先按讀數(shù)據(jù)的步驟,將塊1(0,0,0,0)的數(shù)據(jù)讀至內(nèi)存,將需要修改的部分修改,然后再將修改后的數(shù)據(jù)寫入塊1。如果寫的數(shù)據(jù)是一個完整的塊,那么無需執(zhí)行讀動作,直接將數(shù)據(jù)寫入塊1即可。第三種情況,如果需要修改塊3(0,0,1,2),執(zhí)行讀動作時,發(fā)現(xiàn)這個塊上沒有數(shù)據(jù),那么無需修改,直接將數(shù)據(jù)寫入塊3即可,如圖4所示:
圖4寫數(shù)據(jù)操作
卷2也可以執(zhí)行同樣的操作,其修改的數(shù)據(jù)保存在自己的邏輯空間里,然后通過一定的算法映射到磁盤的某個位置。
3.5分析
對于這一套快照機制,其有如下顯著的特點:
(1)創(chuàng)建快照非???,基本不會對系統(tǒng)有任何的負擔;
(2)可以根據(jù)快照讀取全量的數(shù)據(jù);
(3)非常方便數(shù)據(jù)共享,只需基于某快照創(chuàng)建一個卷給用戶使用,就可以讓該用戶擁有這份數(shù)據(jù),關(guān)鍵是用戶并不需要將數(shù)據(jù)拷貝至本地再做備份;
(4)對于快照和卷的數(shù)量沒有限制,理論上可以無限創(chuàng)建;
(5)由于是基于邏輯的方式創(chuàng)建卷,所以只需簡單的邏輯就可以實現(xiàn)卷的動態(tài)擴縮容。
這套機制當然也有缺點:數(shù)據(jù)并沒有做到真正意義上的容災(zāi),如果系統(tǒng)出現(xiàn)故障,那么所有數(shù)據(jù)可能丟失,當然,想要高的可靠性就還需要其它特征來支持,例如多副本、集群化管理等。
4 基于卷的快照技術(shù)應(yīng)用
4.1單機應(yīng)用
對于單機來說,可以設(shè)計一套類似于LVM的卷管理軟件來取代LVM,在未創(chuàng)建快照時可以提供與LVM等同的功能,創(chuàng)建快照后可以為多用戶提供靈活的需求。如圖5所示:
圖5快照技術(shù)在單機上的應(yīng)用
4.2分布式應(yīng)用
對于分布式來說,其與單機的要求類似,單臺機器并不用太關(guān)心其它機器上數(shù)據(jù)分布情況。當用戶要求創(chuàng)建卷時,系統(tǒng)會根據(jù)一定的規(guī)則選擇一個節(jié)點或一臺主機,如果有副本則選擇多個節(jié)點或主機,然后這個卷上的所有操作都會發(fā)送至這個節(jié)點,與單機處理模式一樣。只是有多副本時還需要考慮數(shù)據(jù)一致性的問題。
4.3應(yīng)用前景
(1)虛擬機
現(xiàn)在很多公司在計劃虛擬機,采用虛擬機除了可以讓資源得到統(tǒng)一管理、減少PC的采購、信息安全外,還有一個很重要的點就是節(jié)省資源,這是當前大部分系統(tǒng)都不具備的功能。假設(shè)某公司要搭建一個虛擬機系統(tǒng),公司總共有1萬人,按照每個人40G系統(tǒng)盤、200G數(shù)據(jù)盤來計劃,不包含副本的情況下,需要2 400T的存儲空間。采用上述快照方案后,首先創(chuàng)建一個卷用來卷操作系統(tǒng),然后創(chuàng)建快照,再基于這個快照創(chuàng)建1萬個卷。這需要的空間為2 000T+40G。節(jié)省了16.7%的資源,如果再加上資源共享部分,能節(jié)省的空間更多。
(2)網(wǎng)盤
網(wǎng)盤是當前非常流行的一個應(yīng)用,廠商動不動就給用戶提供上G甚至T級的空間,如果用戶上百萬或千萬,那這個存儲需求是驚人的。但其實真正用到這么大的空間的是少數(shù),大部分用戶只是用到了其中一小部分,這樣采用使用時分配的原則,可以節(jié)省大量的資源。
(3)企業(yè)資料共享
說到企業(yè)的資料共享,基本每個企業(yè)都有一個龐大的資料庫,往往是存放在一個共享主機上,員工通過網(wǎng)絡(luò)訪問,這樣不僅會造成高峰期的網(wǎng)絡(luò)阻塞,并且同樣的文檔在每個用戶的機器上都會存在一份,特別是對于大型的軟件,例如Office、Oracle等,造成重復(fù)存放,浪費大量的空間。這時可以考慮上面的方案,使用快照軟件創(chuàng)建一個卷,然后將資料放到這個卷上,創(chuàng)建快照,基于這個快照創(chuàng)建任意多的卷,給每個員工一個可用的卷,員工直接將卷掛載在本地當本地磁盤使用。這樣給每個員工的數(shù)據(jù)磁盤可以大大減小。當然,這里還會涉及到信息管理的問題。
(4)數(shù)據(jù)備份與恢復(fù)
除了上面的應(yīng)用,基于卷的快照技術(shù)還有備份與恢復(fù)、隨時備份、隨時恢復(fù)的功能。
5 總結(jié)
快照技術(shù)自發(fā)明以來,一直在不斷的發(fā)展,人們對其進行了大量的改進,時間和空間的利用率都得到了不同程度的提高。而基于卷的快照管理是在當前快照技術(shù)基礎(chǔ)上對時間和空間利用的改進,如果能合理地利用,其價值將不可限量。
近年來,存儲的發(fā)展日新月異,不斷有新產(chǎn)品問世。隨著人類技術(shù)的積累,未來還會有更多的快照技術(shù)問世,能有效地解決當前存在的時間、性能、安全性方面的問題,為數(shù)據(jù)存儲和備份領(lǐng)域提供長足的發(fā)展。
參考文獻:
[1] 劉愛貴. 快照(Snapshot)技術(shù)發(fā)展綜述[EB/OL]. (2009-08-28). http://blog.csdn.net/liuaigui/article/details/4494555.
[2] 李中,王剛,劉璟. 一種在存儲子系統(tǒng)中實現(xiàn)連續(xù)時間點快照的技術(shù)[J]. 計算機工程與應(yīng)用, 2004(9).
[3] 李亮. 一種基于持續(xù)數(shù)據(jù)保護的鏡像系統(tǒng)的研究與實現(xiàn)[D]. 長沙: 國防科學(xué)技術(shù)大學(xué), 2010.
[4] 袁曉銘. 磁盤陣列系統(tǒng)的快照技術(shù)研究[D]. 武漢: 華中科技大學(xué), 2007.
[5] 海杰. 設(shè)備層多版本快照的設(shè)計與實現(xiàn)[D]. 武漢: 華中科技大學(xué), 2008.★
作者簡介
江乾榮:系統(tǒng)架構(gòu)師,學(xué)士畢業(yè)于湖南大學(xué),現(xiàn)任職于中國移動(深圳)有限公司,主要從事云存儲和云計算的研究工作。
endprint
假如此時有請求過來需要訪問塊7的數(shù)據(jù),塊7的KEY是(0,0,1,6),檢查發(fā)現(xiàn)其上沒有數(shù)據(jù),于是尋找其父節(jié)點,找到7,7上有數(shù)據(jù),于是將數(shù)據(jù)讀出。如果請求的是塊6的數(shù)據(jù),發(fā)現(xiàn)上面沒有數(shù)據(jù),向上尋找父節(jié)點6,也沒有數(shù)據(jù),再向上尋找,直到找到根節(jié)點為止,此處6已經(jīng)是根節(jié)點,所以認為塊6是空的。
由此可以看到,卷1上本身是沒有數(shù)據(jù)的,但是通過父節(jié)點可以讀到數(shù)據(jù)。這同樣適用于卷2,卷1和卷2共享數(shù)據(jù)卻互不干擾。
3.4寫數(shù)據(jù)
假如收到一個請求,需要修改塊1(0,0,1,0)的數(shù)據(jù),首先按讀數(shù)據(jù)的步驟,將塊1(0,0,0,0)的數(shù)據(jù)讀至內(nèi)存,將需要修改的部分修改,然后再將修改后的數(shù)據(jù)寫入塊1。如果寫的數(shù)據(jù)是一個完整的塊,那么無需執(zhí)行讀動作,直接將數(shù)據(jù)寫入塊1即可。第三種情況,如果需要修改塊3(0,0,1,2),執(zhí)行讀動作時,發(fā)現(xiàn)這個塊上沒有數(shù)據(jù),那么無需修改,直接將數(shù)據(jù)寫入塊3即可,如圖4所示:
圖4寫數(shù)據(jù)操作
卷2也可以執(zhí)行同樣的操作,其修改的數(shù)據(jù)保存在自己的邏輯空間里,然后通過一定的算法映射到磁盤的某個位置。
3.5分析
對于這一套快照機制,其有如下顯著的特點:
(1)創(chuàng)建快照非???,基本不會對系統(tǒng)有任何的負擔;
(2)可以根據(jù)快照讀取全量的數(shù)據(jù);
(3)非常方便數(shù)據(jù)共享,只需基于某快照創(chuàng)建一個卷給用戶使用,就可以讓該用戶擁有這份數(shù)據(jù),關(guān)鍵是用戶并不需要將數(shù)據(jù)拷貝至本地再做備份;
(4)對于快照和卷的數(shù)量沒有限制,理論上可以無限創(chuàng)建;
(5)由于是基于邏輯的方式創(chuàng)建卷,所以只需簡單的邏輯就可以實現(xiàn)卷的動態(tài)擴縮容。
這套機制當然也有缺點:數(shù)據(jù)并沒有做到真正意義上的容災(zāi),如果系統(tǒng)出現(xiàn)故障,那么所有數(shù)據(jù)可能丟失,當然,想要高的可靠性就還需要其它特征來支持,例如多副本、集群化管理等。
4 基于卷的快照技術(shù)應(yīng)用
4.1單機應(yīng)用
對于單機來說,可以設(shè)計一套類似于LVM的卷管理軟件來取代LVM,在未創(chuàng)建快照時可以提供與LVM等同的功能,創(chuàng)建快照后可以為多用戶提供靈活的需求。如圖5所示:
圖5快照技術(shù)在單機上的應(yīng)用
4.2分布式應(yīng)用
對于分布式來說,其與單機的要求類似,單臺機器并不用太關(guān)心其它機器上數(shù)據(jù)分布情況。當用戶要求創(chuàng)建卷時,系統(tǒng)會根據(jù)一定的規(guī)則選擇一個節(jié)點或一臺主機,如果有副本則選擇多個節(jié)點或主機,然后這個卷上的所有操作都會發(fā)送至這個節(jié)點,與單機處理模式一樣。只是有多副本時還需要考慮數(shù)據(jù)一致性的問題。
4.3應(yīng)用前景
(1)虛擬機
現(xiàn)在很多公司在計劃虛擬機,采用虛擬機除了可以讓資源得到統(tǒng)一管理、減少PC的采購、信息安全外,還有一個很重要的點就是節(jié)省資源,這是當前大部分系統(tǒng)都不具備的功能。假設(shè)某公司要搭建一個虛擬機系統(tǒng),公司總共有1萬人,按照每個人40G系統(tǒng)盤、200G數(shù)據(jù)盤來計劃,不包含副本的情況下,需要2 400T的存儲空間。采用上述快照方案后,首先創(chuàng)建一個卷用來卷操作系統(tǒng),然后創(chuàng)建快照,再基于這個快照創(chuàng)建1萬個卷。這需要的空間為2 000T+40G。節(jié)省了16.7%的資源,如果再加上資源共享部分,能節(jié)省的空間更多。
(2)網(wǎng)盤
網(wǎng)盤是當前非常流行的一個應(yīng)用,廠商動不動就給用戶提供上G甚至T級的空間,如果用戶上百萬或千萬,那這個存儲需求是驚人的。但其實真正用到這么大的空間的是少數(shù),大部分用戶只是用到了其中一小部分,這樣采用使用時分配的原則,可以節(jié)省大量的資源。
(3)企業(yè)資料共享
說到企業(yè)的資料共享,基本每個企業(yè)都有一個龐大的資料庫,往往是存放在一個共享主機上,員工通過網(wǎng)絡(luò)訪問,這樣不僅會造成高峰期的網(wǎng)絡(luò)阻塞,并且同樣的文檔在每個用戶的機器上都會存在一份,特別是對于大型的軟件,例如Office、Oracle等,造成重復(fù)存放,浪費大量的空間。這時可以考慮上面的方案,使用快照軟件創(chuàng)建一個卷,然后將資料放到這個卷上,創(chuàng)建快照,基于這個快照創(chuàng)建任意多的卷,給每個員工一個可用的卷,員工直接將卷掛載在本地當本地磁盤使用。這樣給每個員工的數(shù)據(jù)磁盤可以大大減小。當然,這里還會涉及到信息管理的問題。
(4)數(shù)據(jù)備份與恢復(fù)
除了上面的應(yīng)用,基于卷的快照技術(shù)還有備份與恢復(fù)、隨時備份、隨時恢復(fù)的功能。
5 總結(jié)
快照技術(shù)自發(fā)明以來,一直在不斷的發(fā)展,人們對其進行了大量的改進,時間和空間的利用率都得到了不同程度的提高。而基于卷的快照管理是在當前快照技術(shù)基礎(chǔ)上對時間和空間利用的改進,如果能合理地利用,其價值將不可限量。
近年來,存儲的發(fā)展日新月異,不斷有新產(chǎn)品問世。隨著人類技術(shù)的積累,未來還會有更多的快照技術(shù)問世,能有效地解決當前存在的時間、性能、安全性方面的問題,為數(shù)據(jù)存儲和備份領(lǐng)域提供長足的發(fā)展。
參考文獻:
[1] 劉愛貴. 快照(Snapshot)技術(shù)發(fā)展綜述[EB/OL]. (2009-08-28). http://blog.csdn.net/liuaigui/article/details/4494555.
[2] 李中,王剛,劉璟. 一種在存儲子系統(tǒng)中實現(xiàn)連續(xù)時間點快照的技術(shù)[J]. 計算機工程與應(yīng)用, 2004(9).
[3] 李亮. 一種基于持續(xù)數(shù)據(jù)保護的鏡像系統(tǒng)的研究與實現(xiàn)[D]. 長沙: 國防科學(xué)技術(shù)大學(xué), 2010.
[4] 袁曉銘. 磁盤陣列系統(tǒng)的快照技術(shù)研究[D]. 武漢: 華中科技大學(xué), 2007.
[5] 海杰. 設(shè)備層多版本快照的設(shè)計與實現(xiàn)[D]. 武漢: 華中科技大學(xué), 2008.★
作者簡介
江乾榮:系統(tǒng)架構(gòu)師,學(xué)士畢業(yè)于湖南大學(xué),現(xiàn)任職于中國移動(深圳)有限公司,主要從事云存儲和云計算的研究工作。
endprint
假如此時有請求過來需要訪問塊7的數(shù)據(jù),塊7的KEY是(0,0,1,6),檢查發(fā)現(xiàn)其上沒有數(shù)據(jù),于是尋找其父節(jié)點,找到7,7上有數(shù)據(jù),于是將數(shù)據(jù)讀出。如果請求的是塊6的數(shù)據(jù),發(fā)現(xiàn)上面沒有數(shù)據(jù),向上尋找父節(jié)點6,也沒有數(shù)據(jù),再向上尋找,直到找到根節(jié)點為止,此處6已經(jīng)是根節(jié)點,所以認為塊6是空的。
由此可以看到,卷1上本身是沒有數(shù)據(jù)的,但是通過父節(jié)點可以讀到數(shù)據(jù)。這同樣適用于卷2,卷1和卷2共享數(shù)據(jù)卻互不干擾。
3.4寫數(shù)據(jù)
假如收到一個請求,需要修改塊1(0,0,1,0)的數(shù)據(jù),首先按讀數(shù)據(jù)的步驟,將塊1(0,0,0,0)的數(shù)據(jù)讀至內(nèi)存,將需要修改的部分修改,然后再將修改后的數(shù)據(jù)寫入塊1。如果寫的數(shù)據(jù)是一個完整的塊,那么無需執(zhí)行讀動作,直接將數(shù)據(jù)寫入塊1即可。第三種情況,如果需要修改塊3(0,0,1,2),執(zhí)行讀動作時,發(fā)現(xiàn)這個塊上沒有數(shù)據(jù),那么無需修改,直接將數(shù)據(jù)寫入塊3即可,如圖4所示:
圖4寫數(shù)據(jù)操作
卷2也可以執(zhí)行同樣的操作,其修改的數(shù)據(jù)保存在自己的邏輯空間里,然后通過一定的算法映射到磁盤的某個位置。
3.5分析
對于這一套快照機制,其有如下顯著的特點:
(1)創(chuàng)建快照非常快,基本不會對系統(tǒng)有任何的負擔;
(2)可以根據(jù)快照讀取全量的數(shù)據(jù);
(3)非常方便數(shù)據(jù)共享,只需基于某快照創(chuàng)建一個卷給用戶使用,就可以讓該用戶擁有這份數(shù)據(jù),關(guān)鍵是用戶并不需要將數(shù)據(jù)拷貝至本地再做備份;
(4)對于快照和卷的數(shù)量沒有限制,理論上可以無限創(chuàng)建;
(5)由于是基于邏輯的方式創(chuàng)建卷,所以只需簡單的邏輯就可以實現(xiàn)卷的動態(tài)擴縮容。
這套機制當然也有缺點:數(shù)據(jù)并沒有做到真正意義上的容災(zāi),如果系統(tǒng)出現(xiàn)故障,那么所有數(shù)據(jù)可能丟失,當然,想要高的可靠性就還需要其它特征來支持,例如多副本、集群化管理等。
4 基于卷的快照技術(shù)應(yīng)用
4.1單機應(yīng)用
對于單機來說,可以設(shè)計一套類似于LVM的卷管理軟件來取代LVM,在未創(chuàng)建快照時可以提供與LVM等同的功能,創(chuàng)建快照后可以為多用戶提供靈活的需求。如圖5所示:
圖5快照技術(shù)在單機上的應(yīng)用
4.2分布式應(yīng)用
對于分布式來說,其與單機的要求類似,單臺機器并不用太關(guān)心其它機器上數(shù)據(jù)分布情況。當用戶要求創(chuàng)建卷時,系統(tǒng)會根據(jù)一定的規(guī)則選擇一個節(jié)點或一臺主機,如果有副本則選擇多個節(jié)點或主機,然后這個卷上的所有操作都會發(fā)送至這個節(jié)點,與單機處理模式一樣。只是有多副本時還需要考慮數(shù)據(jù)一致性的問題。
4.3應(yīng)用前景
(1)虛擬機
現(xiàn)在很多公司在計劃虛擬機,采用虛擬機除了可以讓資源得到統(tǒng)一管理、減少PC的采購、信息安全外,還有一個很重要的點就是節(jié)省資源,這是當前大部分系統(tǒng)都不具備的功能。假設(shè)某公司要搭建一個虛擬機系統(tǒng),公司總共有1萬人,按照每個人40G系統(tǒng)盤、200G數(shù)據(jù)盤來計劃,不包含副本的情況下,需要2 400T的存儲空間。采用上述快照方案后,首先創(chuàng)建一個卷用來卷操作系統(tǒng),然后創(chuàng)建快照,再基于這個快照創(chuàng)建1萬個卷。這需要的空間為2 000T+40G。節(jié)省了16.7%的資源,如果再加上資源共享部分,能節(jié)省的空間更多。
(2)網(wǎng)盤
網(wǎng)盤是當前非常流行的一個應(yīng)用,廠商動不動就給用戶提供上G甚至T級的空間,如果用戶上百萬或千萬,那這個存儲需求是驚人的。但其實真正用到這么大的空間的是少數(shù),大部分用戶只是用到了其中一小部分,這樣采用使用時分配的原則,可以節(jié)省大量的資源。
(3)企業(yè)資料共享
說到企業(yè)的資料共享,基本每個企業(yè)都有一個龐大的資料庫,往往是存放在一個共享主機上,員工通過網(wǎng)絡(luò)訪問,這樣不僅會造成高峰期的網(wǎng)絡(luò)阻塞,并且同樣的文檔在每個用戶的機器上都會存在一份,特別是對于大型的軟件,例如Office、Oracle等,造成重復(fù)存放,浪費大量的空間。這時可以考慮上面的方案,使用快照軟件創(chuàng)建一個卷,然后將資料放到這個卷上,創(chuàng)建快照,基于這個快照創(chuàng)建任意多的卷,給每個員工一個可用的卷,員工直接將卷掛載在本地當本地磁盤使用。這樣給每個員工的數(shù)據(jù)磁盤可以大大減小。當然,這里還會涉及到信息管理的問題。
(4)數(shù)據(jù)備份與恢復(fù)
除了上面的應(yīng)用,基于卷的快照技術(shù)還有備份與恢復(fù)、隨時備份、隨時恢復(fù)的功能。
5 總結(jié)
快照技術(shù)自發(fā)明以來,一直在不斷的發(fā)展,人們對其進行了大量的改進,時間和空間的利用率都得到了不同程度的提高。而基于卷的快照管理是在當前快照技術(shù)基礎(chǔ)上對時間和空間利用的改進,如果能合理地利用,其價值將不可限量。
近年來,存儲的發(fā)展日新月異,不斷有新產(chǎn)品問世。隨著人類技術(shù)的積累,未來還會有更多的快照技術(shù)問世,能有效地解決當前存在的時間、性能、安全性方面的問題,為數(shù)據(jù)存儲和備份領(lǐng)域提供長足的發(fā)展。
參考文獻:
[1] 劉愛貴. 快照(Snapshot)技術(shù)發(fā)展綜述[EB/OL]. (2009-08-28). http://blog.csdn.net/liuaigui/article/details/4494555.
[2] 李中,王剛,劉璟. 一種在存儲子系統(tǒng)中實現(xiàn)連續(xù)時間點快照的技術(shù)[J]. 計算機工程與應(yīng)用, 2004(9).
[3] 李亮. 一種基于持續(xù)數(shù)據(jù)保護的鏡像系統(tǒng)的研究與實現(xiàn)[D]. 長沙: 國防科學(xué)技術(shù)大學(xué), 2010.
[4] 袁曉銘. 磁盤陣列系統(tǒng)的快照技術(shù)研究[D]. 武漢: 華中科技大學(xué), 2007.
[5] 海杰. 設(shè)備層多版本快照的設(shè)計與實現(xiàn)[D]. 武漢: 華中科技大學(xué), 2008.★
作者簡介
江乾榮:系統(tǒng)架構(gòu)師,學(xué)士畢業(yè)于湖南大學(xué),現(xiàn)任職于中國移動(深圳)有限公司,主要從事云存儲和云計算的研究工作。
endprint