Linux磁盘管理之LVM逻辑卷认识与管理详解

前言

本文接着上篇文章作如下延伸:
链接:Linux磁盘管理之磁盘管理与文件系统

  1. 什么是LVM?为什么需要LVM?
  2. 如何具体进行LVM逻辑卷管理?
  3. 什么是磁盘配额?为什么需要磁盘配额?
  4. 在Linux中进行磁盘配额的条件是什么呢?
  5. 如何具体进行磁盘配额?

下面对以上问题逐一讲解,深入实例进行操作,带你深入理解linux磁盘管理之LVM逻辑卷管理。

一、LVM概述

1.什么是LVM?为什么需要LVM?

​ 许多 Linux 使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份、删除相关数据,甚至被迫重新规划分区并重装操作系统,以满足应用系统的需要。而 LVM 技术就实现了用户动态管理分配磁盘的需求。

​ LVM——Logical Volume Manger,逻辑卷管理,是Linux系统对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上,文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下层的磁盘分区布局,在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性。

注意:/boot分区用于存放引导文件,不能基于LVM创建!!!

2.LVM机制的基本概念

  1. PV(物理卷)

    物理卷(physical volume),是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建时会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并且把存储空间分割成默认大小为4MB的基本单元(PE),多个PE构成物理卷

  2. VG(卷组)

    多个物理卷构成卷组

  3. LV(逻辑卷)

    建立在卷组之上,与物理卷没有直接关系。

三者示意图如下所示:

Linux磁盘管理之LVM逻辑卷认识与管理详解(实验详细,可跟做)

Linux磁盘管理之LVM逻辑卷认识与管理详解(实验详细,可跟做)

Linux磁盘管理之LVM逻辑卷认识与管理详解(实验详细,可跟做)

3.LVM的主要管理命令

功能 物理卷管理 卷组管理 逻辑卷管理
scan扫描 pvscan vgscan lvscan
create建立 pvcreate vgcreate lvcreate
display显示 pvdisplay vgdisplay lvdisplay
remove删除 pvremove vgremove lvremove
extend扩展 —— vgextend lvextend
reduce减少(某些格式未必支持) —— vgreduce lvreduce

上表主要列出了管理逻辑卷的具体操作命令,下面结合实际操作进行上表中常用命令的演示。

二、LVM逻辑卷管理实践操作过程(可跟做)

4.如何具体进行LVM逻辑卷管理

实验环境:VMware15版本上Centos7的虚拟机环境进行操作

  1. 添加磁盘并且重启虚拟机,具体几块根据自己的需求和硬件限制

    我添加了三块,具体操作步骤可以参考:https://blog.51cto.com/14557673/2447274

  2. 查看磁盘情况是否添加成功,成功则进行分区操作(其中需要将作为该分区类型的ID标记号改为8e,8e表示支持的是LVM分区)

    [root@lokott ~]# uname -a                //显示Centos7的内核版本
    Linux lokott 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
    [root@lokott ~]# fdisk -l
    
    磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x000a0791
    
      设备 Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048    12584959     6291456   83  Linux
    /dev/sda2        12584960    54527999    20971520   83  Linux
    /dev/sda3        54528000    62916607     4194304   82  Linux swap / Solaris
    /dev/sda4        62916608    83886079    10484736    5  Extended
    /dev/sda5        62918656    83886079    10483712   83  Linux
    
    磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    

    分区操作如下:

    [root@lokott ~]# fdisk /dev/sdb           //完成sdb和sdc的分区和分区类型设置
    欢迎使用 fdisk (util-linux 2.23.2)。
    .....                                    //中间交互过程省略,具体信息查看上述链接文章
    
    命令(输入 m 获取帮助):p
    
    磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x5e2f4ad3
    
      设备 Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048    20973567    10485760   8e  Linux LVM
    /dev/sdb2        20973568    31459327     5242880   83  Linux
    
    命令(输入 m 获取帮助):w
    [root@lokott ~]# fdisk /dev/sdc
    欢迎使用 fdisk (util-linux 2.23.2)。
    
    更改将停留在内存中,直到您决定将更改写入磁盘。
    使用写入命令前请三思。
    
    命令(输入 m 获取帮助):p
    
    磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0xfd710363
    
      设备 Boot      Start         End      Blocks   Id  System
    /dev/sdc1            2048    10487807     5242880   83  Linux
    /dev/sdc2        10487808    31459327    10485760   8e  Linux LVM
    

    目前已经将sdb1和sdc2作为逻辑分区,使用fdisk -l可以查看信息

    [root@lokott ~]# fdisk -l /dev/sd[b-c]           //简化操作
    
    磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x5e2f4ad3
    
      设备 Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048    20973567    10485760   8e  Linux LVM    
    /dev/sdb2        20973568    31459327     5242880   83  Linux
    
    磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0xfd710363
    
      设备 Boot      Start         End      Blocks   Id  System
    /dev/sdc1            2048    10487807     5242880   83  Linux
    /dev/sdc2        10487808    31459327    10485760   8e  Linux LVM        
    [root@lokott ~]# 
    
  3. 分区完成后,使用pvcreate命令将所需操作分区转换为物理卷

    [root@lokott ~]# pvscan                            //查看系统所有的物理卷,结果是没有
     No matching physical volumes found
    [root@lokott ~]# pvcreate /dev/sdb1 /dev/sdc2      //转换分区为物理卷
     Physical volume "/dev/sdb1" successfully created.
     Physical volume "/dev/sdc2" successfully created.
    [root@lokott ~]# pvdisplay                         //查看物理卷详细信息
     "/dev/sdc2" is a new physical volume of "10.00 GiB"
     --- NEW Physical volume ---
     PV Name               /dev/sdc2
     VG Name               
     PV Size               10.00 GiB
     Allocatable           NO
     PE Size               0   
     Total PE              0
     Free PE               0
     Allocated PE          0
     PV UUID               AzPaEA-X9Um-HPQQ-zdOg-mzVf-wXvh-QWEEXt
    
     "/dev/sdb1" is a new physical volume of "10.00 GiB"
     --- NEW Physical volume ---
     PV Name               /dev/sdb1
     VG Name               
     PV Size               10.00 GiB
     Allocatable           NO
     PE Size               0   
     Total PE              0
     Free PE               0
     Allocated PE          0
     PV UUID               5fh3Yx-Bwlm-ym7b-Qg0P-3HRb-iKRi-lwQyG9
    
  4. 使用vgcreate命令将一个或多个物理卷组成卷组

    [root@lokott ~]# vgscan 
     Reading volume groups from cache.
    [root@lokott ~]# vgcreate vgroup /dev/sdb1 /dev/sdc2      //vgroup是所建卷组的名字
     Volume group "vgroup" successfully created
    [root@lokott ~]# vgdisplay 
     --- Volume group ---
     VG Name               vgroup
     System ID             
     Format                lvm2
     Metadata Areas        2
     Metadata Sequence No  1
     VG Access             read/write
     VG Status             resizable
     MAX LV                0
     Cur LV                0
     Open LV               0
     Max PV                0
     Cur PV                2
     Act PV                2
     VG Size               19.99 GiB
     PE Size               4.00 MiB
     Total PE              5118
     Alloc PE / Size       0 / 0   
     Free  PE / Size       5118 / 19.99 GiB
     VG UUID               K2s77S-fAfb-C5V2-P7ci-m4eo-DdNh-nanIW4
    
  5. 使用lvcreate命令从用户指定的卷组中分割出空间来创建逻辑卷。

    [root@lokott ~]# lvscan                               //查看系统已建逻辑卷信息
    [root@lokott ~]# lvcreate -L 10G -n vgroup1 vgroup    //从卷组分割空间创建逻辑卷
     Logical volume "vgroup1" created.
    [root@lokott ~]# ls /dev/vgroup/vgroup1              //显示逻辑卷vgroup1的链接文件             
    /dev/vgroup/vgroup1
    [root@lokott ~]# ls /dev/mapper/vgroup-vgroup1        //显示逻辑卷vgroup1的设备文件
    /dev/mapper/vgroup-vgroup1
    [root@lokott ~]# lvdisplay                           //显示逻辑卷详细信息
     --- Logical volume ---
     LV Path                /dev/vgroup/vgroup1
     LV Name                vgroup1
     VG Name                vgroup
     LV UUID                ucTRFz-DK1l-fVgf-Gvzr-562n-nkYS-kuRACZ
     LV Write Access        read/write
     LV Creation host, time lokott, 2019-11-02 14:27:41 +0800
     LV Status              available
     # open                 0
     LV Size                10.00 GiB
     Current LE             2560
     Segments               2
     Allocation             inherit
     Read ahead sectors     auto
     - currently set to     8192
     Block device           253:0
    
  6. 对逻辑卷进行格式化,并且创建挂载点(mkdir)进行挂载,使用df命令进行查看

    [root@lokott ~]# mkfs.xfs /dev/vgroup/vgroup1 
    meta-data=/dev/vgroup/vgroup1    isize=512    agcount=4, agsize=655360 blks
            =                       sectsz=512   attr=2, projid32bit=1
            =                       crc=1        finobt=0, sparse=0
    data     =                       bsize=4096   blocks=2621440, imaxpct=25
            =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal log           bsize=4096   blocks=2560, version=2
            =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    [root@lokott ~]# mkdir /mail
    [root@lokott ~]# mount /dev/vgroup/vgroup1 /mail/
    [root@lokott ~]# df -hT
    文件系统                   类型      容量  已用  可用 已用% 挂载点
    /dev/sda2                  xfs        20G  4.4G   16G   22% /
    devtmpfs                   devtmpfs  474M     0  474M    0% /dev
    tmpfs                      tmpfs     489M     0  489M    0% /dev/shm
    tmpfs                      tmpfs     489M  7.2M  482M    2% /run
    tmpfs                      tmpfs     489M     0  489M    0% /sys/fs/cgroup
    /dev/sda5                  xfs        10G   37M   10G    1% /home
    /dev/sda1                  xfs       6.0G  158M  5.9G    3% /boot
    tmpfs                      tmpfs      98M  4.0K   98M    1% /run/user/42
    tmpfs                      tmpfs      98M   24K   98M    1% /run/user/0
    /dev/sr0                   iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
    /dev/mapper/vgroup-vgroup1 xfs        10G   33M   10G    1% /mail
    
  7. 使用lvextend命令为逻辑卷扩充容量,再使用resize2fs命令更新系统识别的文件系统大小
[root@lokott ~]# lvextend -L +5G /dev/vgroup/vgroup1 //下面的信息表示成功扩展(前提是卷组中有空余空间)
  Size of logical volume vgroup/vgroup1 changed from 10.00 GiB (2560 extents) to 15.00 GiB (3840 extents).
  Logical volume vgroup/vgroup1 successfully resized.
[root@lokott ~]# df -hT                              //查看是没有显示出来需要更新让系统识别文件系统
文件系统                   类型      容量  已用  可用 已用% 挂载点
/dev/sda2                  xfs        20G  4.4G   16G   22% /
devtmpfs                   devtmpfs  474M     0  474M    0% /dev
tmpfs                      tmpfs     489M     0  489M    0% /dev/shm
tmpfs                      tmpfs     489M  7.2M  482M    2% /run
tmpfs                      tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda5                  xfs        10G   37M   10G    1% /home
/dev/sda1                  xfs       6.0G  158M  5.9G    3% /boot
tmpfs                      tmpfs      98M  4.0K   98M    1% /run/user/42
tmpfs                      tmpfs      98M   24K   98M    1% /run/user/0
/dev/sr0                   iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vgroup-vgroup1 xfs        10G   33M   10G    1% /mail
[root@lokott ~]# xfs_growfs /dev/vgroup/vgroup1   //xfs的使用xfs_growfs命令,ext4用resize2fs命令但需先取消挂载
meta-data=/dev/mapper/vgroup-vgroup1 isize=512    agcount=4, agsize=655360 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 2621440 to 3932160
[root@lokott ~]# df -hT | grep /dev/mapper/vgroup-vgroup1 //更新后可以查看到扩展到15G
/dev/mapper/vgroup-vgroup1 xfs        15G   33M   15G    1% /mail
[root@lokott ~]# 

5.实验小结(1)

以上就是LVM逻辑卷管理的全过程操作,可以跟着做!务必注意分区时的逻辑分区的操作,以及后面更新的命令需要根据文件系统类型使用与之对应的命令(ext4——resize2fs(先取消挂载),xfs——xfs_growfs)

三、磁盘配额

6.什么是磁盘配额?为什么需要磁盘配额?

磁盘配额,顾名思义,就是为了限制磁盘资源的使用,磁盘配额是系统对用户能使用磁盘资源的控制(或者说限制).在Linux中,磁盘配额可以对用户的空间使用情况,文件数量(实际上是inode的数量,文件数量是限制inode的结果)进行限制。如果超出此范围则用户不能在往磁盘里继续写入数据。

对于一般人来说,可能不是特别好理解该段解释,那我们举一个例子来说明一下:

假设有一筐桃子,一共50个,平均分配给10只猴子,那么每只猴子可以分到5个桃子,首先是限制了桃子的总数和每个猴子可以分到的桃子数量,这就是磁盘配额,但是在系统中分配必然不是平均的,这就需要对此进行额度分配,有的猴子分到的多点,那么就意味着有的猴子分到的就会便少,但是总数不会变化。对于linux系统而言,就意味着单个磁盘的实际资源空间是有限的,那么对磁盘的合理分配就尤为重要。

因此,进行磁盘配额的原因就是磁盘的空间资源是有限的,而其目的可以理解为合理规划,避免资源浪费。

7.那么在Linux中进行磁盘配额的条件是什么呢?

  1. 首先需要Linux内核支持
  2. 安装xfsprogs与quota

8.Linux磁盘限额的特点

  1. 作用范围:针对指定的文件系统(分区)
  2. 限制对象:用户账号、组账号
  3. 限制类型:磁盘容量、文件数量
  4. 限制方法:软限制、硬限制

其中软限制<=硬限制,否则软限制没有意义,但是软限制是起到真正起到控制作用的方法

根据类型和方法有以下情况

  1. 容量软: bsoft
  2. 容量硬:bhard
  3. 数量软: isoft
  4. 数量硬: ihard

下面具体给出具体实验操作过程演示该如何进行磁盘配额。

四、磁盘配额具体操作步骤实验(可接着上面的实验进行操作)

9.如何具体进行磁盘配额?

具体操作流程如下:

  1. 首先需要查看是否满足上述两个条件

    [root@lokott ~]# rpm -q xfsprogs      //用rpm -q 进行查看上述两个条件的软件包是否在
    xfsprogs-4.5.0-12.el7.x86_64
    [root@lokott ~]# rpm -q quota
    quota-4.01-14.el7.x86_64
  2. 满足条件,接着上面的实验进行操作,先取消挂载(umount /mail)

    [root@lokott ~]# umount /mail/
    [root@lokott ~]# df -hT
    文件系统       类型      容量  已用  可用 已用% 挂载点
    /dev/sda2      xfs        20G  4.4G   16G   22% /
    devtmpfs       devtmpfs  474M     0  474M    0% /dev
    tmpfs          tmpfs     489M     0  489M    0% /dev/shm
    tmpfs          tmpfs     489M  7.2M  482M    2% /run
    tmpfs          tmpfs     489M     0  489M    0% /sys/fs/cgroup
    /dev/sda5      xfs        10G   37M   10G    1% /home
    /dev/sda1      xfs       6.0G  158M  5.9G    3% /boot
    tmpfs          tmpfs      98M  4.0K   98M    1% /run/user/42
    tmpfs          tmpfs      98M   24K   98M    1% /run/user/0
    /dev/sr0       iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
  3. 取消挂载后添加usrquota和grpquota参数以支持配额功能的方式挂载文件系统

    [root@lokott ~]# mount -o usrquota,grpquota /dev/vgroup/vgroup1 /mail/
    [root@lokott ~]# mount | tail -1    //mount 命令结合“|”查看尾部一行的信息也可以使用下面的grep命令
    /dev/mapper/vgroup-vgroup1 on /mail type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
    [root@lokott ~]# mount | grep /dev/mapper/vgroup-vgroup1
    /dev/mapper/vgroup-vgroup1 on /mail type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
  4. 编辑用户和组账号的配额设置(这里需要有非root的用户,可以用tail命令查看/etc/passwd的信息,如果没有其他用户使用useradd创建一个用户,下面给出具体演示过程)

    [root@lokott ~]# tail -3 /etc/passwd //查看,我这里是由一个lokott的用户的,为了演示下面创建一个lisi
    postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    tcpdump:x:72:72::/:/sbin/nologin
    lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
    [root@lokott ~]# useradd lisi            //创建新的用户账号和密码                           
    [root@lokott ~]# passwd lisi
    更改用户 lisi 的密码 。
    新的 密码:
    无效的密码: 密码少于 8 个字符
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。
    [root@lokott ~]# tail -3 /etc/passwd
    tcpdump:x:72:72::/:/sbin/nologin
    lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
    lisi:x:1001:1001::/home/lisi:/bin/bash
    [root@lokott ~]# xfs_quota -x -c 'limit -u bsoft=1G bhard=2G isoft=20 ihard=50 lisi' /mail/

    这里对最下面的命令进行详细解释,这条命令是真正实现编辑用户的配额设置的命令操作,其中xfs_quota是命令,选项-x表示专家模式,-c表示命令(command,其实就是单引号内的内容,类似数据库的增删改查操作,limit表示限制,-u表示对用户,后面的是限制配额大小,然后是用户名,最后千万不要忘记挂载点!!!)

  5. 查看磁盘配额使用情况和验证磁盘配额功能,首先在root下将挂载点的权限改为777,否则待会切换用户时创建文件权限不够

    [root@lokott ~]# xfs_quota -c 'quota -uv lisi'  /mail/  //查看磁盘容量限制
    Disk quotas for User lisi (1001)
    Filesystem              Blocks      Quota      Limit  Warn/Time      Mounted on
    /dev/mapper/vgroup-vgroup1
                                0    1048576    2097152   00 [--------] /mail
    [root@lokott ~]# xfs_quota -c 'quota -iuv lisi'  /mail/  //查看文件数量限制
    Disk quotas for User lisi (1001)
    Filesystem               Files      Quota      Limit  Warn/Time      Mounted on
    /dev/mapper/vgroup-vgroup1
                                0         20         50   00 [--------] /mail
    
    [root@lokott ~]# xfs_quota -x -c 'report -a'  /mail/     //查看配额的所有信息
    User quota on /mail (/dev/mapper/vgroup-vgroup1)
                                  Blocks                     
    User ID          Used       Soft       Hard    Warn/Grace     
    ---------- -------------------------------------------------- 
    root                0          0          0     00 [--------]
    lisi                0    1048576    2097152     00 [--------]
    
    Group quota on /mail (/dev/mapper/vgroup-vgroup1)
                                  Blocks                     
    Group ID         Used       Soft       Hard    Warn/Grace     
    ---------- -------------------------------------------------- 
    root                0          0          0     00 [--------]
    
    [root@lokott ~]# chmod 777 /mail/
    [root@lokott ~]# su - lisi                           //切换用户
    上一次登录:六 11月  2 16:15:17 CST 2019pts/0 上
    [lisi@lokott ~]$ cd /mail/                           //进入挂载点目录创建文件方式来验证(方法一)
    [lisi@lokott mail]$ ls
    [lisi@lokott mail]$ touch {1..20}.txt
    [lisi@lokott mail]$ ls 
    10.txt  12.txt  14.txt  16.txt  18.txt  1.txt   2.txt  4.txt  6.txt  8.txt
    11.txt  13.txt  15.txt  17.txt  19.txt  20.txt  3.txt  5.txt  7.txt  9.txt
    [lisi@lokott mail]$ touch {20..60}.txt  //上面查看的数量限制是50,现在超过50了
    touch: 无法创建"51.txt": 超出磁盘限额
    touch: 无法创建"52.txt": 超出磁盘限额
    touch: 无法创建"53.txt": 超出磁盘限额
    touch: 无法创建"54.txt": 超出磁盘限额
    touch: 无法创建"55.txt": 超出磁盘限额
    touch: 无法创建"56.txt": 超出磁盘限额
    touch: 无法创建"57.txt": 超出磁盘限额
    touch: 无法创建"58.txt": 超出磁盘限额
    touch: 无法创建"59.txt": 超出磁盘限额
    touch: 无法创建"60.txt": 超出磁盘限额
    [lisi@lokott mail]$ ls | wc -l         //表示成功创建了30个
    50
    [lisi@lokott mail]$ su               //切换到root下看一下数量限制的变化,其中warn/time变为6days
    密码:
    [root@lokott mail]# cd 
    [root@lokott ~]#  xfs_quota -c 'quota -iuv lisi'  /mail/   //查看数量配额限制功能
    Disk quotas for User lisi (1001)
    Filesystem               Files      Quota      Limit  Warn/Time      Mounted on
    /dev/mapper/vgroup-vgroup1
                               50         20         50   00  [6 days] /mail
    

    10.实验小结(2):

    对磁盘进行配额操作后,其限制是非常严格的,上面我们通过创建文件的方法验证了磁盘配额数量限制的效果,其中警告时间表示从明天开始计算6天时间,时间超过后由于软限制40的文件节点数量的限制,后面创建的10个文件将会被删除!

    下面通过dd命令来验证配额容量限制的效果:

    [root@lokott ~]# su - lisi                  //首先切换到lisi用户上cd到挂载点目录删除原来的文件
    上一次登录:六 11月  2 16:46:28 CST 2019pts/0 上
    [lisi@lokott ~]$ cd /mail/
    [lisi@lokott mail]$ ls
    10.txt  14.txt  18.txt  21.txt  25.txt  29.txt  32.txt  36.txt  3.txt   43.txt  47.txt  50.txt  8.txt
    11.txt  15.txt  19.txt  22.txt  26.txt  2.txt   33.txt  37.txt  40.txt  44.txt  48.txt  5.txt   9.txt
    12.txt  16.txt  1.txt   23.txt  27.txt  30.txt  34.txt  38.txt  41.txt  45.txt  49.txt  6.txt
    13.txt  17.txt  20.txt  24.txt  28.txt  31.txt  35.txt  39.txt  42.txt  46.txt  4.txt   7.txt
    [lisi@lokott mail]$ rm *.txt -f        //删除所有文件然后使用dd命令操作,软限制1G 硬限制2G
    [lisi@lokott mail]$ cd 
    [lisi@lokott ~]$ dd if=/dev/zero of=/mail/demo01.txt bs=50M count=10   //第一次没问题
    记录了10+0 的读入
    记录了10+0 的写出
    524288000字节(524 MB)已复制,0.647092 秒,810 MB/秒
    [lisi@lokott ~]$ dd if=/dev/zero of=/mail/demo02.txt bs=50M count=20   //第二次没问题
    记录了20+0 的读入
    记录了20+0 的写出
    1048576000字节(1.0 GB)已复制,0.685654 秒,1.5 GB/秒
    [lisi@lokott ~]$ dd if=/dev/zero of=/mail/demo03.txt bs=50M count=20    //第三次失败了
    dd: 写入"/mail/demo03.txt" 出错: 超出磁盘限额
    记录了11+0 的读入
    记录了10+0 的写出
    574619648字节(575 MB)已复制,0.357243 秒,1.6 GB/秒
    [lisi@lokott ~]$ du -sh /mail/    //统计目录空间大小使用情况
    2.0G /mail/
    [lisi@lokott ~]$ ls -lh /mail/         //查看详细信息
    总用量 2.0G
    -rw-rw-r--. 1 lisi lisi  500M 11月  2 17:08 demo01.txt
    -rw-rw-r--. 1 lisi lisi 1000M 11月  2 17:09 demo02.txt
    -rw-rw-r--. 1 lisi lisi  548M 11月  2 17:10 demo03.txt
    [lisi@lokott ~]$ su 
    密码:
    [root@lokott lisi]# cd
    [root@lokott ~]# xfs_quota -c 'quota -uv lisi'  /mail/  //查看容量配额限制功能
    Disk quotas for User lisi (1001)
    Filesystem              Blocks      Quota      Limit  Warn/Time      Mounted on
    /dev/mapper/vgroup-vgroup1
                          2097152    1048576    2097152   00  [6 days] /mail
    

    11.实验小结(3)

    通过dd命令(dd命令是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换)来验证磁盘配额中容量限制的功能测试验证,可见此与上一个方法验证的结果类似,实验操作过程中注意以下两点:

    需要切换用户验证和更新挂载点的内容(如果第二个方法没有先将原来的文件删除,是无法进行实验的)

五、总结

本文主要引出开篇的几个问题来阐述LVM的概念和管理逻辑卷的具体操作,磁盘配额的概念,为什么要进行配额和如何进行配额的具体操作验证实验,需要注意的点都在上述的实验小结和原理原因阐述中。实验非常详细,可以跟着做!!谢谢您的阅读!