歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> RHEL6 snapshot 快照原理及實驗

RHEL6 snapshot 快照原理及實驗

日期:2017/2/28 16:09:35   编辑:Linux教程

LVM對lv提供了快照“snapshot”備份功能,這種功能也只對LVM 有效。snapshot有多種實現方法,這裡只談談“寫時復制COW”,不是奶牛哦,是“Copy-On-Write”

當一個snapshot創建的時候,僅拷貝原始卷裡的源數據,這不是物理上的數據拷貝,因此snapshot的創建特別快,當原始卷裡的數據有寫入時,備份卷開始記錄原始卷哪些數據發生了變化,然後在原始卷新數據覆蓋舊數據時,將舊數據拷貝到snapshot的預留空間裡,起到備份數據的作用,就保證了所有數據和創建備份卷之前的數據一致性。

而對於snapshot的讀操作,如果是讀取數據塊是沒有修改過的,那麼會將讀操作直接重定向到原始卷上,如果是要讀取已經修改過的塊,那麼就讀取拷貝到snapshot中的塊。所以當原始卷破壞了之後還能用snapshot備份的數據還原。

【asram先生】的解釋:

【鏡像分離,是為了讓鏡像卷保持拆分一瞬間的狀態,而不再繼續被寫入數據。而拆分之後,主卷所做的所有寫IO動作,會以bitmap的方式記錄下來。bitmap就是一份位圖文件,文件中每個位都表示卷上的一個塊(扇區,或者由多個扇區組成的邏輯塊),如果這個塊在鏡像分離之後,被寫入了數據,則程序就將bitmap文件中對應的位從0變成1。待備份完成之後,可以將鏡像關系恢復,此時主卷和鏡像卷上的數據是不一致的,需要重新做同步。程序搜索bitmap中所有為1的位,對應到卷上的塊,然後將這些塊上的數據,同步到鏡像卷,從而恢復實時鏡像關系。

改變塊(changed block)

快照創建成功後,源和快照共享同一份物理數據拷貝,直到數據發生寫操作,此時源上老數據或者新增數據將被寫向新的存儲空間。為了記錄和追蹤塊的變化和復制信息,需要一個位圖(bitmap),它用於確定實際拷貝數據的位置,以及確定從源還是目標來獲取數據。

並發(concurrent)

它與改變塊非常相似,但它總是物理地拷貝數據。當即時拷貝執行時,沒有數據被復制。取而代之,它創建一個位圖來記錄數據的復制情況,並在後台進行真正的數據物理復制。

寫時復制快照在快照時間點之後,沒有物理數據復制發生,僅僅復制了原始數據物理位置的元數據。因此,快照創建非常快,可以瞬間完成。然後,快照副本跟蹤原始卷的數據變化(即原始卷寫操作),一旦原始卷數據塊發生寫操作,則先將原始卷數據塊讀出並寫入快照卷,然後用新數據塊覆蓋原始卷。這樣我們訪問快照卷上的數據仍舊是寫操作前的,可以保證我們備份數據的一致性。】

檢驗一下snapshot的特點吧:

采取COW實現方式時,snapshot的大小並不需要和原始卷一樣大。那設置成多大呢?第一、根據原始卷數據的改變大小范圍來設置;第二、根據原始卷數據的更新頻率來定。一旦 snapshot的空間記錄滿了原始卷塊變換的信息,那麼這個snapshot就無法使用了。當然,如果你的snapshot大小和原始卷一樣大,甚至還要大,那snapshot備份就絕對的不會崩潰啦。

下面就開始吧!

一、新建lv分區,裝上一個系統(可以不用裝,其實這裡只需要說明他是一個我們要備份的數據卷而已)

--->先查看一下vg空閒空間吧

[[email protected] /]# vgs

VG #PV #LV #SN Attr VSize VFree

vol0 2 4 1 wz--n- 55.22g 26.22g--->還有26.22G,建一個3G的lv來裝系統吧,lv名稱syslv
[[email protected] /]# lvcreate -L 3G -n syslv vol0

Logical volume "syslv" created

[[email protected] /]# lvdisplay /dev/vol0/syslv

--- Logical volume ---

LV Name /dev/vol0/syslv

VG Name vol0

LV UUID xQXHqK-N3Oj-y9Z1-TBU6-hAsI-ek3V-PkmVmL

LV Write Access read/write

LV Status available

# open 0

LV Size 3.00 GiB (lv大小3G)

Current LE 96

Segments 1

Allocation inherit

Read ahead sectors auto

- currently set to 256

Block device 253:6--->ok,創建成功,接下來我就裝一個linux的簡易版吧,我就不上圖了,自己要測試的自己去試試
【注意:這個lv建立起來若作為安裝系統用的話就一定不能格式化了,它是作為硬盤用了哦,誰見過把硬盤拿來格式化了在裝系統的?他會警告無法識別的硬盤~】



Copyright © Linux教程網 All Rights Reserved