- Lvm介绍:
Device mapper 是 Linux 2.6 内核中提供的一种从逻辑设备到物理设备的映射框架机制,在该机制下,用户可以很方便的根据自己的需要制定实现存储资源的管理策略,当前比较流行的 Linux 下的逻辑卷管理器如 LVM2(Linux Volume Manager 2 version)、EVMS(Enterprise Volume Management System)、dmraid(Device Mapper Raid Tool)等都是基于该机制实现的。
Lvm2(Logical Volume Manager)是建在物理存储设备上的一个抽象层,将物理块设备抽象成虚拟块设备,以实现动态大小调整,快照,软raid等功能。
- Lvm快照创建流程:
- 创建pv
pvcreate /dev/sd{e,f} (创建两个pv: /dev/sde和/dev/sdf) |
- 创建vg
vgcreate vg1 /dev/sde /dev/sdf |
- 创建lv
lvcreate -L 100G -n lvol0 vg1 |
- 创建lvlvol0的快照
Lvcreate -L 20G -s -n snap_1 /dev/vg1/lvol0 |
此时查看lv简单信息:
# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lvol0 vg1 owi-aos--- 100.00g snap_1 vg1 swi-a-s--- 20.00g lvol0 0.21 # lsblk … sde 8:64 0 5.5T 0 disk ├─vg1-lvol0-real 253:0 0 100G 0 lvm │ ├─vg1-lvol0 253:1 0 100G 0 lvm /mnt/test │ └─vg1-snap_1 253:3 0 100G 0 lvm └─vg1-snap_1-cow 253:2 0 20G 0 lvm └─vg1-snap_1 253:3 0 100G 0 lvm… # dmsetup deps vg1-snap_1: 2 dependencies : (253, 2) (253, 0) vg1-lvol0: 1 dependencies : (253, 0) vg1-snap_1-cow: 1 dependencies : (8, 64) vg1-lvol0-real: 1 dependencies : (8, 64) 检查vg状态: # vgdisplay … Alloc PE / Size 30720 / 120.00 GiB …
|
可以看出总共从vg分配了120G空间,100G的vg1-lvol0-real是原始lvm,20G的vg1-snap_1-cow是快照保存自己数据的COW lvm。
注意snap lvm的大小小于等于原始lvm的大小,当原始lvm有写操作时,snap跟踪原始lvm块的改变,这个时候原始lvm上将要改变的数据在改变之前被拷贝到snap预留的空间里。但如果cow lvm被写满,这个snap lvm会被立刻释放,从而无法使用。直接挂载snap lvm即可得到快照的内容,但是,由于snapshot和源lvm的关系,snapshot只能够临时使用,不能脱离源lvm而存在。