Linux--LVM与磁盘配额(LVM概述+LVM机制的基本概念+LVM的管理命令+磁盘配额概述)

一、LVM概述

LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。

Logical Volume Manager,逻辑卷管理

  • 动态调整磁盘容量,从而提高磁盘管理的灵活性
  • /boot分区用于存放引导文件,不能基于LVM创建
  • 图形界面管理工具
    system-config-Ivm

二、LVM机制的基本概念

  • 物理卷(Physical Volume,PV)
    指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
  • 卷组(Volume Group,VG)
    类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)
  • 逻辑卷(Logical Volume,LV)
    类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)
  • 物理块(Physical Extent,PE)
    物理块(Physical Extent,PE)PE是物理卷PV的基本划分单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成

LVM抽象模型,展示了PV、VG、LV三者之间关系:
和非LVM系统将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷起始处的VGDA(卷组描述符区域)中。VGDA包括以下内容:PV描述符、VG描述符、LV描述符、和一些PE描述符
系统启动LVM时激活VG,并将VGDA加载至内存,来识别LV的实际物理存储位置。当系统进行I/O操作时,就会根据VGDA建立的映射机制来访问实际的物理位置
在这里插入图片描述

三、LVM的管理命令

功能 物理卷管理(PV) 卷组管理(VG) 逻辑卷管理(LV)
Scan(显示概要信息) pvscan vgscan lvscan
Create(建立) pvcreate vgcreate lvcreate
Display(显示详细信息) pvdisplay vgdisplay lvdisplay
Remove(删除) pvremove vgremove lvremove
Extend(扩展) --------------- vgextend lvextend
Reduce(减少) --------------- vgreduce lvreduce

主要命令的格式

pvcreate 设备名1 [设备名2 ... ...]
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名

LVM应用推荐步骤
在这里插入图片描述

3.1实际操作

添加2块硬盘创建逻辑卷,分别为/dev/sdb和/dev/sdc各20G

首先使用fdisk命令将两块磁盘改为LVM格式,这里我就不赘述了,不会的话可以看我的上一篇文章
[root@localhost ~]# pvcreate /dev/sd[b-c]1                #创建pv物理卷将sdb1、sdc1加入
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdc1" successfully created.
[root@localhost ~]# vgcreate vg01 /dev/sd[b-c]1           #创建vg01卷组将sdb1、sdc1加入
  Volume group "vg01" successfully created
[root@localhost ~]# lvcreate -n lv01 -L 30G /dev/vg01     #创建lv01逻辑卷大小为30G
  Logical volume "lv01" created.
[root@localhost ~]# mkfs.xfs /dev/vg01/lv01               #将逻辑卷lv01格式化为xfs格式
[root@localhost ~]# mount /dev/vg01/lv01 /opt             #挂载lv01到opt目录
[root@localhost ~]# df -Th                                #查看挂载点
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        50G  1.5G   49G    3% /
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G   12M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  146M  869M   15% /boot
/dev/mapper/centos-home xfs       146G   33M  146G    1% /home
tmpfs                   tmpfs     378M     0  378M    0% /run/user/0
/dev/mapper/vg01-lv01   xfs        30G   33M   30G    1% /opt
[root@localhost ~]# lvextend -L +5G /dev/vg01/lv01        #将lv逻辑卷扩容
 Size of logical volume vg01/lv01 changed from 30.00 GiB (7680 extents) to 35.00 GiB (8960 extents).
  Logical volume vg01/lv01 successfully resized.
[root@localhost ~]# df -Th                                #再次查看可以看到挂载的逻辑卷并未扩容
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        50G  1.5G   49G    3% /
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G   12M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  146M  869M   15% /boot
/dev/mapper/centos-home xfs       146G   33M  146G    1% /home
tmpfs                   tmpfs     378M     0  378M    0% /run/user/0
/dev/mapper/vg01-lv01   xfs        30G   33M   30G    1% /opt
[root@localhost ~]# xfs_growfs /dev/vg01/lv01             #使用此命令进行xfs同步
[root@localhost ~]# df -Th                                #同步后,挂载的逻辑卷已经扩容成功
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        50G  1.5G   49G    3% /
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G   12M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  146M  869M   15% /boot
/dev/mapper/centos-home xfs       146G   33M  146G    1% /home
tmpfs                   tmpfs     378M     0  378M    0% /run/user/0
/dev/mapper/vg01-lv01   xfs        35G   33M   35G    1% /opt

四、磁盘配额概述

实现磁盘限额的条件
●需要Linux内核支持
●安装xfsprogs与quota软件包
Linux磁盘限额的特点
●作用范围:针对指定的文件系统(分区)
●限制对象:用户帐号、组帐号
●限制类型:磁盘容量、文件数量
●限制方法:软限制、硬限制
实现磁盘配额的步骤
在这里插入图片描述
这里我简单做了一下磁盘配额的过程

设置永久关闭核心防护,重启后生效
在这里插入图片描述
getenforce命令查看SELinux模式
在这里插入图片描述
在vg0创建lv02的逻辑卷,将lv02格式化,开启磁盘配额挂载到opt目录
在这里插入图片描述
在这里插入图片描述
我用的centos7.6中没有quota软件包,需要进行安装,这里我之前已经安装过了
在这里插入图片描述
在这里插入图片描述
进入opt目录,创建Tom用户,设置密码
在这里插入图片描述
对tom的磁盘容量的软限制(soft),磁盘容量的硬限制(hard),文件数量的软限制(soft)文件数量的硬限制(hard)进行修改 ,tom用户在opt 目录使用磁盘空间最大为10240k,超过10000k进行提醒,拥有的文件数量最大为6,超过5时,系统会发出警告信息
在这里插入图片描述
切换到tom用户,在opt目录中写入文件,第一次写入tom1大小为10000k,第二次为240k发现出现了提示,第三次写入,已经不给写入了
在这里插入图片描述
使用quota命令显示磁盘已使用的空间与限制
在这里插入图片描述
同样的,创建文件,创建到第3个时,系统进行提醒,在创建第4个时显示超出磁盘限额(之前已创建过3个文件)
在这里插入图片描述
查看磁盘已使用的空间与限制
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_47153988/article/details/106809824