一、 系統快照介紹
在LVM的部份除了一般的使用外,還有系統快照的功能。所謂的系統快照指的就是將當時的系統資訊記錄下來,當若是有資料更動時,系統會先將原始資料先搬移到快照區儲存。等有需要還原是在從快照區取回即可。LVM的系統快照也可以說是「備份工具」,因為他只會備份有更動的資料,檔案系統內沒有被更動的資料則保持在原本的區塊內。簡單來說系統快照有還原的功能,可還原到之前的系統狀態。
二、 系統快照設定
1. 建立快照區
1.1 檢查看看VG還剩下多少容易可使用
[root@localhost ~]# vgdisplay
— Volume group — VG Name faqvg VG Access read/write VG Status resizable VG Size 11.16 GB PE Size 16.00 MB Total PE 714 Alloc PE / Size 595 / 9.30 GB Free PE / Size 119 / 1.86 GB VG UUID e2lS1t-7Rop-YHU4-qygQ-tDFq-LjVn-jOnv0h |
若是查看後發現已經沒有可用的Free PE,請自行新增加入。
可參考此篇「LVM-LV的容量增減設定」
1.2 先放一些檔案到已經建立好的LVM內,之後才好比較
[root@localhost ~]# cp -a /etc /var/log /mnt/lvm |
1.3 建立系統快照區
[root@localhost ~]# lvcreate -l 100 -s -n faqss /dev/faqvg/faqlv
Logical volume “faqss” created #以上參數最重要的就是-s,代表是 snapshot 快照功能之意 #-n 後面接快照區的裝置名稱, /dev/…. 則是要被快照的 LV 完整檔名 #l 後面則是接使用多少個 PE 來作為這個快照區使用 |
1.4 查看快照建立後的相關資料
[root@localhost ~]# lvdisplay
— Logical volume — LV Name /dev/faqvg/faqss VG Name faqvg LV UUID 9CUz4g-40Ub-Ptwg-4fPJ-7hzA-kf3A-QrQ5e2 LV Write Access read/write LV snapshot status active destination for /dev/faqvg/faqlv LV Status available # open 0 LV Size 9.30 GB Current LE 595 COW-table size 1.56 GB COW-table LE 100 Allocated to snapshot 0.00% Snapshot chunk size 4.00 KB Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1 |
如此一來/dev/faqvg/faqss快照區就建立好了。所建立起來的faqss快照區內的檔案資料會看faqlv一樣。
若想測試,可自行將/dev/faqvg/faqss掛載起來查看就可以了。
2. 使用快照復原系統
在開始復原之前,要注意一下,所要復原的資料量不能高於快照區所負載的實際容量。因原始資料為移到快照區,但若快照區過小時會造成資料搬移有問題而失敗。
2.1 先來把原本mnt/lvm裡的資料做一下更動。
[root@localhost ~]# ll /mnt/lvm
drwxr-xr-x 87 root root 4096 Nov 7 05:00 etc drwxr-xr-x 14 root root 4096 Nov 7 04:02 log drwx—— 2 root root 16384 Nov 1 17:44 lost+found [root@localhost ~]# rm -rf /mnt/lvm/* [root@localhost ~]# cp -a /var/games/ /var/cache/ /mnt/lvm [root@localhost ~]# ll /mnt/lvm drwxr-xr-x 11 root root 4096 Oct 27 12:45 cache drwxr-xr-x 2 root root 4096 May 11 19:58 games |
2.2 查看快照所使用狀況
由於剛剛已經有變動LVM內的資料,因此來看看在快照的部份是不是也有變動
[root@localhost ~]# lvdisplay /dev/faqvg/faqss
— Logical volume — LV Name /dev/faqvg/faqss VG Name faqvg LV Size 9.30 GB Current LE 595 COW-table size 1.56 GB COW-table LE 100 Allocated to snapshot 0.73% Snapshot chunk size 4.00 KB |
在Allcoated to snapsho的部份會看到的確有增加。也就是說當在LVM做資料變動時,快照區也會自動的先將變動之前的資料自行備份,以方便還原。
2.3 製作一份 快照區的備份 (還原用的)
[root@localhost ~]# mount /dev/faqvg/faqss /mnt/snapshot/
[root@localhost ~]# mkdir -p /backups #建立一個backups資料夾 [root@localhost ~]# cd /mnt/snapshot [root@localhost ~]# tar -jcv -f /backups/lvm.tar.bz2 * #把快照內的資料都tar起來 |
會將資料tar起來後在還原是因為,只要一但lvm有做任何的修改的話。會自動備份到快照區。所以如果是把lvm整個刪除的話。快照區會直接備份lvm所有的檔案,如此一來在快照區內的資料就有可能不會是當初要還原的資料。還有就是如果當快照區的空間不夠大的時後在lvm搬移到快照區就會失敗,近而造成資料無法還原。
2.4 卸載和移除faqss(快照區)
[root@localhost ~]# umount /mnt/snapshot #將faqss快照內的資料備份了,所以可卸載
[root@localhost ~]#lvremove /dev/faqvg/faqss #移除faqss快照區 Do you really want to remove active logical volume faqss? [y/n]: y Logical volume “faqss” successfully removed |
因為等等會格式化faqlv,怕資料會搬移到快照區。若是空間不夠會造成問題。所以就先卸載後刪除快照區。等之後有須要用在重新建立。
2.5還原faqlv的內容
[root@localhost ~]# umount /mnt/lvm
[root@localhost ~]# mkfs -t ext3 /dev/faqvg/faqlv #格式化faqlv [root@localhost ~]# mount /dev/faqvg/faqlv /mnt/lvm [root@localhost ~]# tar -jxv -f /backups/lvm.tar.bz2 -C /mnt/lvm #解tar還原到lvm [root@localhost ~]# ll /mnt/lvm drwxr-xr-x 87 root root 4096 Nov 7 05:00 etc drwxr-xr-x 14 root root 4096 Nov 7 04:02 log drwx—— 2 root root 16384 Nov 1 17:44 lost+found |
2.6 由於快照區是跟隨著LVM做變動。因此就算直接在快照區隨意更改設定。也不會影響到LVM,只需要在最後把快照區刪除後,從新建立一個新的就會再次和LVM連接了。
相關文章
評論
此文章尚無評論。