专栏
天翼云开发者社区

lvm2的快照简介

2023-12-14 13:59:52 4阅读

  1. 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等功能。

  1. 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而存在。

  • 0
  • 0
  • 0
0 评论
0/1000
评论(0) 发表评论
杨****隽

杨****隽

2 篇文章 0 粉丝
关注

lvm2的快照简介

2023-12-14 13:59:52 4阅读

  1. 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等功能。

  1. 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而存在。

文章来自专栏

yangjun的专栏

2 篇文章 1 订阅
0 评论
0/1000
评论(0) 发表评论
  • 0
    点赞
  • 0
    收藏
  • 0
    评论