阅读(3619) (21)

7.2.4 逻辑卷快照

2019-04-26 10:13:58 更新

LVM还具备有“快照卷”功能,该功能类似于虚拟机软件的还原时间点功能。例如,可以对某一个逻辑卷设备做一次快照,如果日后发现数据被改错了,就可以利用之前做好的快照卷进行覆盖还原。LVM的快照卷功能有两个特点:

快照卷的容量必须等同于逻辑卷的容量;

快照卷仅一次有效,一旦执行还原操作后则会被立即自动删除。

首先查看卷组的信息。

    [root@linuxprobe ~]# vgdisplay
     --- Volume group ---
     VG Name storage
     System ID 
     Format lvm2
     Metadata Areas 2
     Metadata Sequence No 4
     VG Access read/write
     VG Status resizable
     MAX LV 0
     Cur LV 1
     Open LV 1
     Max PV 0
     Cur PV 2
     Act PV 2
     VG Size 39.99 GiB
     PE Size 4.00 MiB
     Total PE 10238
     Alloc PE / Size 30 / 120.00 MiB Free PE / Size 10208 / 39.88 GiB
     VG UUID CTaHAK-0TQv-Abdb-R83O-RU6V-YYkx-8o2R0e
    ………………省略部分输出信息………………

通过卷组的输出信息可以清晰看到,卷组中已经使用了120MB的容量,空闲容量还有39.88GB。接下来用重定向往逻辑卷设备所挂载的目录中写入一个文件。

    [root@linuxprobe ~]# echo "Welcome to Linuxprobe.com" > /linuxprobe/readme.txt
    [root@linuxprobe ~]# ls -l /linuxprobe
    total 14
    drwx------. 2 root root 12288 Feb 1 07:18 lost+found
    -rw-r--r--. 1 root root 26 Feb 1 07:38 readme.txt

第1步:使用-s参数生成一个快照卷,使用-L参数指定切割的大小。另外,还需要在命令后面写上是针对哪个逻辑卷执行的快照操作。

    [root@linuxprobe ~]#  lvcreate -L 120M -s -n SNAP /dev/storage/vo
     Logical volume "SNAP" created
    [root@linuxprobe ~]# lvdisplay
    --- Logical volume ---
     LV Path /dev/storage/SNAP
     LV Name SNAP
     VG Name storage
     LV UUID BC7WKg-fHoK-Pc7J-yhSd-vD7d-lUnl-TihKlt
     LV Write Access read/write
     LV Creation host, time localhost.localdomain, 2017-02-01 07:42:31 -0500
     LV snapshot status active destination for vo
     LV Status available
     # open 0
     LV Size 120.00 MiB
     Current LE 30
     COW-table size 120.00 MiB
     COW-table LE 30
     Allocated to snapshot 0.01%
     Snapshot chunk size 4.00 KiB
     Segments 1
     Allocation inherit
     Read ahead sectors auto
     - currently set to 8192
     Block device 253:3
    ………………省略部分输出信息………………

第2步:在逻辑卷所挂载的目录中创建一个100MB的垃圾文件,然后再查看快照卷的状态。可以发现存储空间占的用量上升了。

    [root@linuxprobe ~]# dd if=/dev/zero of=/linuxprobe/files count=1 bs=100M
    1+0 records in
    1+0 records out
    104857600 bytes (105 MB) copied, 3.35432 s, 31.3 MB/s
    [root@linuxprobe ~]# lvdisplay
     --- Logical volume ---
     LV Path /dev/storage/SNAP
     LV Name SNAP
     VG Name storage
     LV UUID BC7WKg-fHoK-Pc7J-yhSd-vD7d-lUnl-TihKlt
     LV Write Access read/write
     LV Creation host, time localhost.localdomain, 2017-02-01 07:42:31 -0500
     LV snapshot status active destination for vo
     LV Status available
     # open 0
     LV Size 120.00 MiB
     Current LE 30
     COW-table size 120.00 MiB
     COW-table LE 30
     Allocated to snapshot 83.71%
     Snapshot chunk size 4.00 KiB
     Segments 1
     Allocation inherit
     Read ahead sectors auto
     - currently set to 8192
     Block device 253:3

第3步:为了校验SNAP快照卷的效果,需要对逻辑卷进行快照还原操作。在此之前记得先卸载掉逻辑卷设备与目录的挂载。

    [root@linuxprobe ~]# umount /linuxprobe
    [root@linuxprobe ~]# lvconvert --merge /dev/storage/SNAP
     Merging of volume SNAP started.
     vo: Merged: 21.4%
     vo: Merged: 100.0%
     Merge of snapshot into logical volume vo has finished.
     Logical volume "SNAP" successfully removed

第4步:快照卷会被自动删除掉,并且刚刚在逻辑卷设备被执行快照操作后再创建出来的100MB的垃圾文件也被清除了。

    [root@linuxprobe ~]# mount -a
    [root@linuxprobe ~]# ls /linuxprobe/
    lost+found readme.txt