一、DM(Device Mapper)

DM与MD模块类似,都可以用来创建逻辑设备。DM除可以建RAID之外,还可以创建LVM2。DM模块由核心和插件组成,提供了linear、mirror、snapshot、multipath等功能。

二、LVM

LVM(Logical Volume Manager),通过把多块物理磁盘组合成一个大的逻辑磁盘,并实现动态的扩充与缩减的一种机制。

三、创建LVM

LVM创建分为3步,第一步为把物理磁盘创建为PV;第二步为把PV加入到VG,并把PV划分为PE(类似于Linux分区中的block);第三步为创建LV。只有LV才能被格式化挂载使用。

第一步:

首先我们先将磁盘分区调整为Linux LVM。使用fdisk -t完成。

Linux LVM

调整完成后

Linux LVM

pv相关的命令有pvcreate,pvremove,pvscan,pvdisplay,pvmove。

创建pv,pvcreate /dev/sdb1,pvcreate /dev/sdb2,...

Linux LVM

使用pvs/pvscan查看pv

Linux LVM

pvdisplay查看详细的信息

Linux LVM

第二步,创建VG

VG相关命令:vgcreate, vgremove, vgextend, vgreduce, vgs, vgdisplay, vgscan

vgcreate 可以用-s指定PE大小,默认为4MB。

Linux LVM

Linux LVM

使用vgextend扩展VG

Linux LVM

缩减vg

先使用pvmove把数据从要移除的pv中移动到其它磁盘,假设我们要把/dev/sdb2移除,命令如下

pvmove /dev/sdb2 /dev/sdb1

然后把/dev/sdb2从组中移除

vgreduce test /dev/sdb2

删除pv

pvremove /dev/sdb2

第三步、创建lv

相关命令:lvcreate,lvremove,lvextend,lvreduce,lvs,lvdisplay

lvcreate -n name -L size vgname,我们创建一个512M,名字为lvtest的lv

lvcreate -n lvtest -L 512M test

由于分配给lv的是PE,所以分配的是PE的倍数,跟你指定的大小是有误差的。

Linux LVM

格式化挂载

Linux LVM

四、逻辑卷的扩展与缩减

扩展逻辑卷

lvextend -L [+]size lvpath

带+:扩展size大小;还带+:扩展到size大小

Linux LVM查看分区大小及lv大小

Linux LVM

使用resize2fs,支持在线操作

Linux LVM缩减逻辑卷(有风险,容易损坏文件系统中的数据)

缩减逻辑卷需要注意以下3点:

1、不能在线缩减,要先卸载

2、确保缩减后的空间大小依然能存储原有的所有数据

3、在缩减之前要强行检查文件系统,确保文件系统处于一致性状态

Linux LVM

Linux LVM五、LVM快照功能

快照就是开辟一个快照区,然后把改变的数据的原文件放入快照区。通过快照区去访问数据,都是你快照的那一刻的数据。可用于数据库备份。

注意:

1、生命同期为整个数据访问时长,这段时间内,数据增长量不能超过快照卷大小。

2、快照卷应该是只读的

3、跟原卷在同一卷组内

lvcreate -s -L size -n snapshots_name -p r lvname

lvcreate -s -L 50M -n slvtest -p r /dev/test/lvtest

Linux LVM

-p 指定权限有r|w,r为只读。通过mount /dev/test/slvtest /mnt挂载使用。使用完后lvremove slvtest删除快照区