逻辑卷快照及恢复数据
注意:1 快照只有在逻辑卷中的文件修改的时候,才会将原有数据推送到快照中;2 快照只是可实现快速备份数据,但不能代替备份功能
创建逻辑卷快照(ext4 文件系统)
1 创建对应逻辑卷的快照(快照的容量一般可比逻辑卷小)
# -n:快照名称 -s:表示此为lvm 的快照 -L:快照容量
# ext4文件系统的逻辑卷快照必须是只读模式(-p r),可在该步骤操作。如果忘了,可在挂载时,设置为只读
[root@CentOS8 ~]# lvcreate -n lv0-snapshot -s -L 1G -p r /dev/vg0/lv0
Logical volume "lv0-snapshot" created.
2 创建完成后,查看逻辑卷和对应的快照信息以及UUID
[root@CentOS8 ~]# lvdisplay
--- Logical volume ---
LV Path /dev/vg0/lv0
LV Name lv0
VG Name vg0
LV UUID OrX08u-tc1M-UO6F-pbpp-WHxG-f3TL-aIL9St
LV Write Access read/write
LV Creation host, time CentOS8.test.xiaodan, 2020-08-20 10:50:15 +0800
LV snapshot status source of
lv0-snapshot [active]
……省略部分信息……
--- Logical volume ---
LV Path /dev/vg0/lv0-snapshot
LV Name lv0-snapshot
VG Name vg0
LV UUID lyey6s-dHdq-KArs-xd8k-D4qD-vRFg-LVZ3R3
LV Write Access read only
LV Creation host, time CentOS8.test.xiaodan, 2020-08-20 14:39:15 +0800
LV snapshot status active destination for lv0
………省略部分信息………
# 逻辑卷和对应的快照的UUID 相同
[root@CentOS8 ~]# blkid /dev/vg0/lv0*
/dev/vg0/lv0: UUID="3e3f8857-61f8-4889-a48d-26b77b9760a2" TYPE="ext4"
/dev/vg0/lv0-snapshot: UUID="3e3f8857-61f8-4889-a48d-26b77b9760a2" TYPE="ext4"
3 创建挂载点并挂载逻辑卷快照
如果创建快照时,没有设置成只读模式,可在挂载时,设置成只读挂载
[root@CentOS8 ~]# mount /dev/vg0/lv0-snapshot /mnt/lv0_snap/
mount: /mnt/lv0_snap: WARNING: device write-protected, mounted read-only.
#只读模式挂载
[root@CentOS8 ~]# mount -o ro /dev/vg0/lv0-snapshot /mnt/lv0_snap/
#查看挂载点中的内容,发现有数据,这些数据实际不存在的,只是对逻辑卷的映射
[root@CentOS8 ~]# ll /mnt/lv0-snap/
total 16
-rw-r--r-- 1 root root 0 Aug 20 15:15 f1.txt
-rw-r--r-- 1 root root 0 Aug 20 15:15 f2.txt
-rw-r--r-- 1 root root 0 Aug 20 15:15 f3.txt
drwx------ 2 root root 16384 Aug 20 15:13 lost+found
4 修改逻辑卷中的文件,进行验证(快照中数据还在)
[root@CentOS8 ~]# ll /mnt/lv0 /mnt/lv0-snap/
/mnt/lv0:
total 20
-rw-r--r-- 1 root root 24 Aug 20 15:19 f1.txt
-rw-r--r-- 1 root root 0 Aug 20 15:15 f2.txt
drwx------ 2 root root 16384 Aug 20 15:13 lost+found
/mnt/lv0-snap/:
total 16
-rw-r--r-- 1 root root 0 Aug 20 15:15 f1.txt
-rw-r--r-- 1 root root 0 Aug 20 15:15 f2.txt
-rw-r--r-- 1 root root 0 Aug 20 15:15 f3.txt
drwx------ 2 root root 16384 Aug 20 15:13 lost+found
根据快照恢复数据
注意 快照一旦被逻辑卷恢复(合并)后,就会自动销毁
1 取消逻辑卷以及逻辑卷快照的挂载
[root@CentOS8 ~]# umount /mnt/lv0-snap /mnt/lv0
2 将快照中的文件合并到逻辑卷中
[root@CentOS8 ~]# lvconvert --merge /dev/vg0/lv0-snapshot
Merging of volume vg0/lv0-snapshot started.
vg0/lv0: Merged: 99.9%
vg0/lv0: Merged: 100.0%
这里记错过一次,使用的是快照名称,报错
[root@CentOS8 ~]# lvconvert --merge /dev/vg0/lv0
vg0/lv0 cannot be merged because --trackchanges was not used.
3 重新挂载逻辑卷
[root@CentOS8 ~]# mount /dev/vg0/lv0 /mnt/lv0
4 查看逻辑卷(快照文件被销毁)
[root@CentOS8 ~]# lvdisplay
--- Logical volume ---
LV Path /dev/vg0/lv0
LV Name lv0
VG Name vg0
LV UUID 2TDcmm-xJdl-InR0-32Bi-j14F-TKoa-6npz8j
LV Write Access read/write
LV Creation host, time CentOS8.test.xiaodan, 2020-08-20 15:11:09 +0800
LV Status available
# open 0
LV Size 1.56 GiB
Current LE 100
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
逻辑卷快照及恢复数据(xfs 文件系统)
操作步骤跟ext 4文件系统类似,两个点不同
1 xfs 文件系统可不用创建只读模式的快照,但ext4 必须创建只读模式快照或在挂载时,设置只读模式
#xfs 文件系统没有该限制
[root@CentOS8 ~]# lvcreate -n lv0-snapshot -s -L 1G /dev/vg0/lv0
2 **由于逻辑卷和快照的UUID相同,但xfs 文件系统挂载时,不允许使用相同的UUID,因此在挂载时,需要忽略UUID **
[root@CentOS8 ~]# mount -o nouuid /dev/vg0/lv1-snapshot