1、LVM介绍
LVM(逻辑卷管理)是Linux环境下对磁盘分区进行管理的一种机制,它使用户在无需停机的情况下可以方便地调整各个分区大小。涉及以下名词:
- 物理存储介质:指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等。
- 物理卷pv:从逻辑上与磁盘分区具有同样功能的设备,是LVM的基本存储逻辑块包含有与LVM相关的管理参数。
- 物理卷组vg:由一个或多个物理卷PV组成。可以在卷组上创建一个或多逻辑卷。
- 逻辑卷lv:逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统,时我们最终使用的可以伸缩的设备。
- 物理块PE:每一个物理卷PV被划分为称为PE的最小基本单元,PE的大小是可配置的,默认为4MB。
- 逻辑块LE:逻辑卷LV也被划分为称为LE的基本单位,在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
关系对应图解
2、LVM创建
1)确定lvm所用到的设备,并修改这些设备的id是为“8e“,类型为Linux LVM
2)watch -n 1 'pvs;echo ====;vgs;echo ====;lvs;echo ====;df -h /mnt #监控pv vg lv 以及挂载情况
pvs #查看物理卷
vgs #查看卷组
lvs #查看逻辑卷
3)pvcreate /dev/vdb1 #把物理分区做成物理卷
vgcreate vg0 /dev/vdb1 #制作一个物理卷组vg0
lvcreate -L 100M -n lv0 vg0 #在vg0这个组中建立出逻辑卷 -L 指定大小 -n 指定名字
4)给逻辑卷lv0格式化文件系统,并进行挂载,可以正常使用。
注意:/dev/vg0/lv0 与 /dev/mapper/vg0-lv0 为同一个设备。
3、lv(逻辑卷)分区大小的增加与缩减
当lv为xfs文件系统只支持增加不支持缩减;当文件系统类型为ext2、ext3、ext4 时候,既可以增加可以以减少。
- xfs 文件系统下lv分区的增加
lvextend -L 300M /dev/vg0/lv0 #扩大lv分区到300M
xfs_growfs /dev/vg0/lv0 ##扩大lv分区文件系统大小与分区大小一致
- ext文件系统下lv分区的增加与缩减
lvextend -L 400M /dev/vg0/lv0 #增加lv分区的大小到400M
resize2fs /dev/vg0/lv0 #扩大lv分区文件系统大小与分区大小一致
文件系统的缩减不支持在挂载状态下进行,所以需要进行lv设备的缩减时需要先进行卸载设备,进行分区缩减后在进行挂载。
umount /mnt # 卸载设备
e2fsck -f /dev/vg0/lv0 #检测文件系统,确定文件系统中已有数据大小防止过度缩减
resize2fs /dev/vg0/lv0 100M #缩减文件系统的大小为100M
lvreduce -L 100M /dev/vg0/lv0 # 缩减lv分区的大小为100M
mount /mnt #重新挂载设备
4、vg(逻辑卷组)大小的增加与减少
vg是由多个pv设备组成的,对vg设备大小的增加与减少其实就是对组成vg的pv设备的增加或者减少。
- vg设备大小的增加
当lv分区所需要的空间超过vg的剩余空间的时候,就需要对vg设备的大小进行增加。
1)pvcreate /dev/vdb2 #对磁盘新的物理分区id进行修改,将其做成物理卷pv
2)vgextend vg0 /dev/vdb2 #将新做成的pv添加到需要增加大小的逻辑卷组中来。
- vg设备大小的减小
1)pvmove /dev/vdb1 /dev/vdb2 #根据各个pv空间的使用情况,将被占用的空间都集中到一个设备中,空出一个空设备。
2)vgreduce vg0 /dev/vdb1 #将该空pv设从该vg中移出。
3)pvremove /dev/vdb1 #再将该空pv设备恢复成物理磁盘分区。
5、lv逻辑卷快照
当我们存储信息在lv分区中以后,不想分区中的文件被损坏,可以通过快照的方式创建一个副本,通过该副本可以看到源分区中的内容,但是该副本中只记录对源分区的修改,不会带源分区中的文件造成任何影响。
lvcreate -L 50M -n lv0-backup -s /dev/vg0/lv0
##给/dev/vg0/lv0建立快照,-L 指定快照大小,-n指定快照名字 -s指定快照模板设备
将快照设备挂载之后,可以看到源设备中的文件,然后在快照设备中将文件删除,卸载设备之后,删除该lv分区的快照,重新生成一个,重新挂载,仍能看到源设备中的文件,说明对源设备文件没有影响。
6、LVM删除
依照先后顺序:
lvremove #删除逻辑卷
vgremove #删除逻辑卷组
pvremove #删除物理卷
最后将作为lvm使用的物理磁盘分区id改成83(linux类型)