前言

LVM是Linux系统中对磁盘分区进行管理的一种逻辑机制,他是建立在硬盘和分区之上,文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下层磁盘分区布局,能够保持现有数据不变的情况下动态地调整磁盘容量,从而提高磁盘管理的灵活性。
Tips:“/boot”分区不能基于LVM创建,必须独立。
我们可以通过转换物理卷,创建卷组与逻辑卷来实现LVM逻辑卷管理磁盘空间的实际应用。

实验环境

VMware 14 pro ,CentOS 7操作系统。

实验步骤

1.关闭虚拟机,在设置中添加三块SCSI新硬盘,然后启动CentOS 7。

如图所示:

centos逻辑卷管理 centos逻辑卷分区_Linux


进入系统之后查看三块已经添加的磁盘:cd /dev; ls

如图所示:

centos逻辑卷管理 centos逻辑卷分区_自动挂载_02

2.对磁盘进行分区操作

创建分区:fisk /dev/sdb 按n创建一个新分区,再按主分区,后面一直按回车键。最后按p查看,sdb1建立完成

如图所示:

centos逻辑卷管理 centos逻辑卷分区_Linux_03


下面按t转换格式

参数设为:8e

如图所示

centos逻辑卷管理 centos逻辑卷分区_Linux_04


按p查看,已转换为LVM逻辑卷了

centos逻辑卷管理 centos逻辑卷分区_自动挂载_05


后面以此类推将sdc与sdd按此步骤操作即可完成第一步。

3.创建物理卷PV

创建物理卷:pvcreate /dev/sd{b..d}1pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1,创建完成之后用***pvscan***命令查看。

如图所示:

centos逻辑卷管理 centos逻辑卷分区_centos逻辑卷管理_06

4.创建卷组VG

创建卷组:vgcreate Cauchy /dev/sd{b..d}1。然后通过pvscan可以看到物理卷已经被应用,***vgdisplay***查看卷组信息。

如图所示:

centos逻辑卷管理 centos逻辑卷分区_Linux_07


centos逻辑卷管理 centos逻辑卷分区_自动挂载_08


Tips:此时其实并不能在/dev的目录下查看此卷组目录,因为现在并没有划分逻辑卷。

5.划分逻辑卷

划分逻辑卷:lvcreate -L(指定大小) -n(指定名称) mylv Cauchy(卷组名)。此时再通过ls /dev就可以看到卷组名了,并且在卷组目录中可以看到逻辑卷名字。

如图所示:

centos逻辑卷管理 centos逻辑卷分区_Linux_09


centos逻辑卷管理 centos逻辑卷分区_Linux_10


最后通过***lvdisplay***可以看到已经创建好的逻辑卷。

如图所示:

centos逻辑卷管理 centos逻辑卷分区_centos逻辑卷管理_11


以此类推,我们可以创建多个逻辑卷。

6.扩展逻辑卷

那么问题来了,如果一个逻辑卷如果不够用如何扩展逻辑卷?可以使用***lvextend***进行扩展。具体方法如下:

lvextend -L +10G /dev/Cauchy/mylv

如图所示:

centos逻辑卷管理 centos逻辑卷分区_centos逻辑卷管理_12

7.进行格式化

下面对已创建好的逻辑卷进行格式化:mkfs -t xfs /dev/Cauchy/mylv 如图所示:

centos逻辑卷管理 centos逻辑卷分区_自动挂载_13

8.创建挂载点与自动挂载

在/opt目录下创建挂载目录:mkdir /opt/mntCauchy 配置挂载文件,进行自动挂载:vim /etc/fstab

centos逻辑卷管理 centos逻辑卷分区_磁盘与文件系统管理_14


自动挂载:mount -a

实验结果

查看磁盘使用情况即可看到挂载成功:df -hT 如图所示:

centos逻辑卷管理 centos逻辑卷分区_磁盘与文件系统管理_15


实验成功!

实验总结及问题

通过本次实验我们基本学会了如何去实现LVM逻辑卷的创建与管理。但是现实环境中,我们可能会遇到如下问题,假设我们的逻辑卷已经装满,我们是否可以直接通过lvextend扩展呢?我们可以做如下这个小实验来验证。
进入目录:cd /opt/mntCauchy 通过shell创建若干个文件:

for i in `seq 1 100`
 do echo $i >test$i.txt
 done

假设已经装满,现在通过***lvextend***扩展:lvextend -L +5G /dev/Cauchy/mylv

centos逻辑卷管理 centos逻辑卷分区_Linux_16


添加是可以,但是并没有刷新。大小并没有发生变化。如果解挂再重新挂载也不会有变化:

umount /opt/mntCauchy
  mount -a

centos逻辑卷管理 centos逻辑卷分区_centos逻辑卷管理_17


此时我们需要用***xfs_growfs***来进行扩容:

xfs_growfs /dev/Cauchy/mylv

LVM扩容成功如图所示:

centos逻辑卷管理 centos逻辑卷分区_自动挂载_18

补充:LVM磁盘配额管理

1.查看虚拟机上有没有安装xfsprogs软件包:

rpm -qa | grep xfsprogs
  rpm -ql xfsprogs | grep quota

安装成功如图所示:

centos逻辑卷管理 centos逻辑卷分区_centos逻辑卷管理_19

2.关闭增强性安全功能(保证磁盘配置文件的写入):

setenforce 0

3.编辑 /etc/fstab文件添加usrquota和grpquota:

vim /dev/fstab

配置如图所示:

centos逻辑卷管理 centos逻辑卷分区_Linux_20


解挂:umount /opt/mntCauchy 重新挂载:mount -a

再用:mount查看

成功如图所示:

centos逻辑卷管理 centos逻辑卷分区_逻辑卷_21


4.设置磁盘配额:

xfs_quota -x -c 'limit -u bsoft=50M bhard=80M isoft=4 ihard=7 chen' /opt/mntCauchy

5.修改chen对于opt/mntCauchy的权限:

chmod 777 /opt/mntCauchy
  1. 切换至chen用户,进行操作:
    创建7个文件:
for i in `seq 1 7`
 do echo $i >test$i.txt
 done

如果再创建一个abc.txt,就会超出配额,结果如图所示:

centos逻辑卷管理 centos逻辑卷分区_Linux_22


配额硬数量限制实现成功

将/dev/zero中的文件写入到test1里(总共50M):

dd if=/dev/zero of=/opt/mntCauchy/test1.txt bs=1M count=50

再将/dev/zero中的文件写入到test2里(总共50M),就会超出配额,结果如图所示:

dd if=/dev/zero of=/opt/mntCauchy/test2.txt bs=1M count=50

centos逻辑卷管理 centos逻辑卷分区_磁盘与文件系统管理_23


Tips:虽然会超出配额,但是原本预设的80M还是会写入30M。

结论:数量和容量只要有一个超出,另外一个也没法操作。

7.查看配额使用情况:

xfs_quota -x -c 'report -aib' /opt/mntCauchy

centos逻辑卷管理 centos逻辑卷分区_centos逻辑卷管理_24