Linux LVM

一、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完成。

wKioL1aIfdHj5-dgAAAYo18PtKc849.png

调整完成后

wKioL1aIgp2Ds91tAAAyRHwpdWo840.png

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

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

wKiom1aIgz_y5ba_AAAfyVmb5Io741.png

使用pvs/pvscan查看pv

wKioL1aIg4bRyRAPAAAd_fkWJA0639.png

pvdisplay查看详细的信息

wKioL1aIg6DxwOwvAAAy90tIUW0080.png

第二步,创建VG

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

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

wKiom1aIhFaieuT8AAAbZnqACtw303.png

wKioL1aIhPHzJvNgAAAqmWb24DU751.png

使用vgextend扩展VG

wKiom1aIhaCyCZP4AAA3W08Eifk202.png

缩减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的倍数,跟你指定的大小是有误差的。

wKiom1aIoG2TV3pbAAA6pzOyQRY765.png

格式化挂载

wKioL1aIobXjrj-zAABJ3dI5Krs867.png

四、逻辑卷的扩展与缩减

扩展逻辑卷

lvextend -L [+]size lvpath

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

wKiom1aIo7bCR_LQAAAembf89_k854.png查看分区大小及lv大小

wKiom1aIpEeiX6eVAAAparTGpQs975.png

使用resize2fs,支持在线操作

wKioL1aIpO7wm3gJAAA_Fxn-Jhk707.png缩减逻辑卷(有风险,容易损坏文件系统中的数据)

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

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

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

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

wKioL1aIpk2QaVqdAABTBfjNSOg068.png

wKioL1aIpomRfMSmAAA4UtJTVFk890.png五、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

wKiom1aIqg_zsyyoAAAn3ma-VVU455.png

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


你可能感兴趣的:(linux,lvm)