(一) 什么是數(shù)據(jù)快照
SNIA(存儲(chǔ)網(wǎng)絡(luò)行業(yè)協(xié)會(huì))對(duì)快照(Snapshot)的定義是:關(guān)于指定數(shù)據(jù)集合的一個(gè)完全可用拷貝,該拷貝包括相應(yīng)數(shù)據(jù)在某個(gè)時(shí)間點(diǎn)(拷貝開(kāi)始的時(shí)間點(diǎn))的映像??煺湛梢允瞧渌硎镜臄?shù)據(jù)的一個(gè)副本,也可以是數(shù)據(jù)的一個(gè)復(fù)制品。
AS1000G2光纖磁盤(pán)存儲(chǔ)系統(tǒng)中Snapshot的具體實(shí)現(xiàn)是:采用即寫(xiě)即拷貝(copy-on-write)設(shè)計(jì),創(chuàng)建一個(gè)卷基于時(shí)間點(diǎn)的邏輯映像,創(chuàng)建過(guò)程幾乎瞬間完成。
AS1000G2光纖存儲(chǔ)系統(tǒng)快照有如下特點(diǎn):
1) 基于時(shí)間點(diǎn)的卷映像,采用即寫(xiě)即拷貝的方式,集成在存儲(chǔ)管理軟件GUI管理界面中,操作非常直觀簡(jiǎn)便;
2) 每個(gè)卷支持4個(gè)Snapshot,每個(gè)系統(tǒng)支持1024個(gè)Snapshot;
3) Snapshot卷可讀可寫(xiě)可復(fù)制也可以做為備份源;
4) 對(duì)Snapshot卷進(jìn)行寫(xiě)操作時(shí),數(shù)據(jù)被寫(xiě)在倉(cāng)儲(chǔ)卷,可以提前設(shè)置倉(cāng)儲(chǔ)卷寫(xiě)滿之后的處理方式,有兩種選擇,一是對(duì)源卷的寫(xiě)操作失敗,二是Snapshot作廢
5) 系統(tǒng)默認(rèn)設(shè)置倉(cāng)儲(chǔ)卷容量為源卷容量的20%,也可以在創(chuàng)建倉(cāng)儲(chǔ)卷時(shí)手動(dòng)設(shè)置其大小,不得少于源卷容量的20%,可以大于源卷容量;若在使用過(guò)程中,發(fā)現(xiàn)倉(cāng)儲(chǔ)卷容量仍不夠用,可以利用AS1000G2的動(dòng)態(tài)卷擴(kuò)展功能對(duì)倉(cāng)儲(chǔ)卷進(jìn)行擴(kuò)容。
6) Snapshot功能是AS1000G2存儲(chǔ)系統(tǒng)管理軟件的一個(gè)高級(jí)功能,使用前需要License激活。
(二) AS1000G2數(shù)據(jù)快照的實(shí)現(xiàn)原理
AS1000G2光纖磁盤(pán)存儲(chǔ)系統(tǒng)利用“copy-on-write ”(即寫(xiě)即拷貝)設(shè)計(jì)來(lái)實(shí)現(xiàn)Snapshot,如果源卷沒(méi)有數(shù)據(jù)變化,Snapshot卷僅作為指針表,所有對(duì)源卷的讀操作還是直接從源卷上讀取,若源卷有數(shù)據(jù)變化,則將變化的數(shù)據(jù)有序的寫(xiě)入倉(cāng)儲(chǔ)卷,并修改Snapshot卷的指針。下面以圖解的方式簡(jiǎn)單介紹Snapshot的過(guò)程。
圖(一)給出了在執(zhí)行Snapshot之前源卷和倉(cāng)儲(chǔ)卷的狀態(tài)。需要指出的是,在創(chuàng)建某卷的Snapshot時(shí),需要同時(shí)創(chuàng)建一個(gè)倉(cāng)儲(chǔ)卷,倉(cāng)儲(chǔ)卷容量至少為源卷容量的20%。
圖(一)
圖(二)表示執(zhí)行對(duì)源卷的Snapshot,Snapshot卷實(shí)際僅僅占用了很少空間,它是一個(gè)指針表,而不是真正的數(shù)據(jù)卷。
圖(二)
圖(三)表示快照卷建立了與源卷對(duì)應(yīng)的指針,已經(jīng)完成了對(duì)源卷的快照。值得一提的是,快照雖然是瞬間完成,但是Snapshot卷是不斷變化的,一旦源卷有新的數(shù)據(jù)寫(xiě)入,Snapshot卷(指針表)將被更新,改為指向原始數(shù)據(jù)的位置。
圖(三)
圖(四)示出了快照卷更新,重新定位到新的原始數(shù)據(jù)位置。源卷中被覆蓋的原始數(shù)據(jù)被存放到了倉(cāng)儲(chǔ)卷,所以Snapshot卷中的指針也重新定位為到了倉(cāng)儲(chǔ)卷,形象的體現(xiàn)了即寫(xiě)即拷貝(Copy-On-Write)的工作過(guò)程。
圖(四)
(三)AS1000G2的數(shù)據(jù)快照可以實(shí)現(xiàn)哪些應(yīng)用
在AS1000G2光纖磁盤(pán)存儲(chǔ)系統(tǒng)中Snapshot的典型應(yīng)用有以下兩種
1) 備份應(yīng)用
AS1000G2存儲(chǔ)系統(tǒng)支持不中止數(shù)據(jù)訪問(wèn)的情況下進(jìn)行離線備份。例如現(xiàn)在要對(duì)一個(gè)正在應(yīng)用的數(shù)據(jù)卷進(jìn)行備份,但要求備份過(guò)程中該數(shù)據(jù)卷仍然在線并允許用戶進(jìn)行讀寫(xiě)操作,這時(shí)就可以利用AS1000G2存儲(chǔ)系統(tǒng)的Snapshot功能,先創(chuàng)建該數(shù)據(jù)卷的Snapshot,因?yàn)镾napshot的創(chuàng)建過(guò)程幾乎瞬間完成,然后把Snapshot卷作為備份源,執(zhí)行備份操作,備份完成之后,就可以刪除Snapshot卷,在整個(gè)備份過(guò)程中,應(yīng)用數(shù)據(jù)卷的讀寫(xiě)幾乎不受任何影響。
2) 應(yīng)用測(cè)試
應(yīng)用Snapshot可以快速創(chuàng)建測(cè)試環(huán)境,利用Snapshot可寫(xiě)的能力可提供快速的應(yīng)用測(cè)試環(huán)境。例如生產(chǎn)系統(tǒng)需要安裝新的應(yīng)用軟件、更新版本等,需要測(cè)試穩(wěn)定后才能投入正式運(yùn)行,這些測(cè)試往往是基于生產(chǎn)系統(tǒng)數(shù)據(jù)卷的復(fù)制卷進(jìn)行的,創(chuàng)建Snapshot卷所用的時(shí)間比創(chuàng)建數(shù)據(jù)卷的完全物理復(fù)制花費(fèi)的時(shí)間要少很多,而Snapshot卷同樣可以被分配給測(cè)試卷進(jìn)行操作。
(三)在AS1000G2中如何使用數(shù)據(jù)快照功能
AS1000G2光纖磁盤(pán)存儲(chǔ)系統(tǒng)的Snapshot功能使用非常直觀簡(jiǎn)便,只需在GUI界面(如右圖所示)中執(zhí)行以下幾個(gè)步驟:
1. 激活Snapshot功能;
2. 創(chuàng)建倉(cāng)儲(chǔ)卷以及Snapshot卷;
3. 把Snapshot卷映射給主機(jī)用作備份源或者應(yīng)用測(cè)試等
一旦激活Snapshot功能,存儲(chǔ)陣列的性能會(huì)受到即寫(xiě)即拷貝到倉(cāng)儲(chǔ)卷活動(dòng)的影響, 因此當(dāng)不需要snapshot卷時(shí), 可以選擇禁用(disable), 重新使用(reuse), 或者刪除(delete)snapshot卷。禁用(Disable)就是中止即寫(xiě)即拷貝的活動(dòng),保留Snapshot卷和倉(cāng)儲(chǔ)卷原封不動(dòng);重新使用(Reuse)是創(chuàng)建源卷的基于重新使用時(shí)間點(diǎn)的映像,這比重新創(chuàng)建花費(fèi)的時(shí)間短;刪除(Delete)指的是完全刪除snapshot卷以及相關(guān)的倉(cāng)儲(chǔ)卷,這時(shí)如果需要重新激活源卷的倉(cāng)儲(chǔ)卷,則必須重新創(chuàng)建??梢愿鶕?jù)不同的需要來(lái)選擇處理方式。
另外,在AS1000G2光纖存儲(chǔ)系統(tǒng)中,也可以選擇采用編寫(xiě)腳本的方式來(lái)執(zhí)行Snapshot功能。
(四)總結(jié)
AS1000G2光纖磁盤(pán)存儲(chǔ)系統(tǒng)提供了直觀易用的Snapshot功能,可以幫助用戶實(shí)現(xiàn)在不中止應(yīng)用數(shù)據(jù)的情況下進(jìn)行應(yīng)用數(shù)據(jù)的離線備份,可以實(shí)現(xiàn)數(shù)據(jù)的快速恢復(fù)功能,也可以利用其Snapshot卷可寫(xiě)的功能,快速建立與生產(chǎn)環(huán)境相同的測(cè)試環(huán)境,為應(yīng)用測(cè)試以及培訓(xùn)等提供便利。Snapshot功能搭配數(shù)據(jù)卷復(fù)制功能使用,可以提供更為廣泛的數(shù)據(jù)應(yīng)用,比如更深層次的應(yīng)用測(cè)試以及數(shù)據(jù)挖掘等。
附:本文涉及到的名詞:
快照卷(Snapshot Volume):一個(gè)基于時(shí)間點(diǎn)的邏輯映像,在邏輯上等同于一個(gè)完整物理拷貝,是一個(gè)指針表,并非實(shí)際的數(shù)據(jù)卷,占用空間極少。
源卷(Base Volume):創(chuàng)建snapshot 的源卷。
倉(cāng)儲(chǔ)卷(Repository Volume):源卷上的數(shù)據(jù)變化時(shí),把要被覆蓋的數(shù)據(jù)塊寫(xiě)到倉(cāng)儲(chǔ)卷中。