1. 程式人生 > 實用技巧 >lvm快照

lvm快照

cow技術 copy on write

實現快照

[root@xiaochen ~]# lvscan
ACTIVE '/dev/vg1/lv1' [12.00 GiB] inherit
[root@xiaochen ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
lv1 vg1 -wi-ao--- 12.00g
[root@xiaochen ~]# lvcreate -s -L 100M -n lv01-snap /dev/vg01/lv01         //-s是快照
注:100M:快照卷所使用的空間是和原卷是同一卷組的空間,原卷沒有空間的話做不了快照卷

[root@xiaochen ~]# lvscan
ACTIVE Original '/dev/vg1/lv1' [12.00 GiB] inherit
ACTIVE Snapshot '/dev/vg1/lv1-snap' [104.00 MiB] inherit
[root@xiaochen ~]# mkdir /mnt/lv01-snap
[root@xiaochen ~]# mount /dev/vg01/lv01-snap /mnt/lv01-snap
[root@xiaochen ~]# df -ThP //T型別,P在一行顯示
檔案系統 型別 容量 已用 可用 已用%% 掛載點
/dev/mapper/vg1-lv1 ext4 12G 954M 11G 9% /mnt/lv01
/dev/mapper/vg1-lv1--snap ext4 12G 954M 11G 9% /mnt/lv01-snap

[root@xiaochen ~]# ls /mnt/lv01
20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50
21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 lost+found
[root@xiaochen ~]#
[root@xiaochen ~]# ls /mnt/lv01-snap/
20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50
21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 lost+found

快照原理:

[root@xiaochen ~]# lvscan
ACTIVE Original '/dev/vg1/lv1' [12.00 GiB] inherit
ACTIVE Snapshot '/dev/vg1/lv1-snap' [104.00 MiB] inherit

[root@xiaochen ~]# ll /dev/mapper/vg1-lv1*
lrwxrwxrwx 1 root root 7 6月 10 14:56 /dev/mapper/vg1-lv1 -> ../dm-2
lrwxrwxrwx 1 root root 7 6月 10 14:56 /dev/mapper/vg1-lv1-real -> ../dm-5
lrwxrwxrwx 1 root root 7 6月 10 14:56 /dev/mapper/vg1-lv1--snap -> ../dm-4
lrwxrwxrwx 1 root root 7 6月 10 14:56 /dev/mapper/vg1-lv1--snap-cow -> ../dm-6

[root@xiaochen ~]# dmsetup ls --tree
vg01-lv01 (253:2)
└─vg1-lv01-real (253:5)
├─ (252:48)
└─ (252:32)
vg01-lv01--snap (253:4)
├─vg01-lv01--snap-cow (253:6)
│ └─ (252:48)
└─vg01-lv01-real (253:5)
├─ (252:48)
└─ (252:32)


注意事項:
1. 快照卷和原卷使用同一VG空間
2. 快照卷大小問題 (快照卷空間使用完將自動失效)
a. 根據資料變化速率
b. 設定初始大小,自動增長

[root@xiaochen ~]# vim /etc/lvm/lvm.conf
snapshot_autoextend_threshold = 70 //快照自動增長的閾值
snapshot_autoextend_percent = 20 //達到之後自動增長原來的百分之20
[root@xiaochen ~]# service lvm2-monitor start
[root@xiaochen ~]# chkconfig lvm2-monitor on

刪除LV,VG:
1. 停止應用程式對該相應檔案系統的訪問
2. 解除安裝檔案系統,包括/etc/fstab
3. lvremove
4. vgremove
5. pvremove
處於不啟用的狀態能直接刪掉,處於啟用的狀態會詢問你是否確實刪除

[root@xiaochen ~]# umount /dev/vg01/lv01
[root@xiaochen ~]# lvremove /dev/vg01/lv01
[root@xiaochen ~]# lvremove -f /dev/vg01/lv01
[root@xiaochen ~]# vgremove vg01
[root@xiaochen ~]# pvremove /dev/sdb{1,2,3,5}