Linux如何使用LVM逻辑卷

背景

在学习Linux中,学习到了逻辑卷LVM,发现LVM是个十分好用的一个技术,可以多个硬盘合并在一起使用,同时还可以动态的增加和减少。在这里将Linux逻辑卷的具体实现记录下来。

介绍

逻辑卷LVM:Logica Volum Manager,它是Linux环境下对磁盘分区进行管理的一种机制,普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而LVM解决了这个问题,它可以动态的改变逻辑卷大小,以及跨分区使用。

实现LVM

在实现LVM前,需要准备一些磁盘,当然一个磁盘的多个分区也可以做,不过那没什么意义,这里我准备了4个磁盘来做这个实验,分别是每个磁盘分出10个G的分区来做实验,其中一个使用整个磁盘做分区。在做分区时要,注意要将分区类型改为8e类型,最后要记得输入w保存退出,不然分区不会生效,如果保存退出出现warning,记得同步分区,命令是:partx -a /dev/sdc 。

如图:

使用同样的方法分了4个分区,结果如图:

准备好分区后,开始制作LVM,第一步就是将这些分区或者磁盘做成物理卷,命令:pvcreate /dev/sd{b,c1,d1,e1}

然后使用pvs命令或者pvdisplay来查看物理卷列表。

然后开始创建卷组,使用命令vgcreate 卷组名(自己取) 物理卷(需要加入到卷组的物理卷),使用vgs可以产看卷组列表

使用vgdisplay查看卷组详细信息

创建好卷组后就可以在卷组上创建逻辑卷,命令:/lvcreate -n 逻辑卷名 -L 10G 卷组名

在配置大小时,可以用 -l 或者 -L 选项,-l 表示用PE个数做单位,-L 可以指定大小为多大,还可以用百分比:50%vg 卷组名

使用lvdisplay查看逻辑卷详细信息

这样我们的逻辑卷就创建成功了,现在为这个逻辑卷做一个文件系统,如果你做xfs文件系统,这个逻辑卷是不可用减少的,只能增加,如果是ext4就可以增加和减少。命令:mkfs.ext4 /dev/vg0/lv0

在创建一个挂载点将这个卷挂载就可以使用了,如果需要开机知道挂载,需要写配置文件/etc/fstab。

如果我们要增加逻辑卷的大小用命令:lvextend -r -L +10G /dev/vg0/lv0

-r 可以为增加的空间同步文件系统,如果没加-r ,增加的空间是没有文件系统的,所以并不能使用,也可以用

resize2fs /dev/vg0/lv0 30G 来同步,后面的30g为增加后整个空间的大小

如果卷组的空间不够,也可以扩展。命令为:vgextend vg0 /dev/sdf1 ;在sdf1也需要像之前创建分区时那样操作。

这样就实现了LVM的增加,这时如果我们不需要这么大的空间还可以减少LVM空间。

  • 首先取消挂载:umount /mnt/lv0
  • 再检查文件系统:fsck -f /dev/vg0/lv0 这个步骤是必须的,而且必须加 -f 强制检查,不然后面会报错。

  • 再减少文件系统空间:resize2fs /dev/vg0/lv0 10G 减少到10G大小

  • 再减少逻辑卷空间:lvreduce -L 10G /dev/vg0/lv0 减少到10G大小

  • 最后在挂载:mount -a

确认逻辑卷大小变为10G

从逻辑卷中删除正在使用的物理分区

如果这个物理分区上有数据或者空间被分配出去了,可以使用pvmove /dev/sdc1 将上面的数据或者空间,转移到其他分区,具体转到哪个分区系统自己分配。

先将需要移除的分区从卷组里移除,命令:vgreduce vg0 /dev/sdb

再从物理分区中移除,命令:pvremove /dev/sdb

标签:LVMLinux 发布于:2019-11-13 05:30:17