Linux--LVM逻辑卷与磁盘配额


一、管理LVM逻辑卷

  • 许多 Linux 使用者在安装操作系统的时候都会遇见这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初估计不准确,一旦系统分区不够用时可能不得不备份、删除相关数据,甚至被迫重新规划分区并重装操作系统,以满足应用系统的需求
  • 本文将通过对 LVM 逻辑卷管理机制IDE学习,掌握动态调整 Linux 分区容量的方法

1.LVM概述

  • LVM 是 Linux 系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上,文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下次的磁盘分区布局,能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性
  • 在安装 CentOS 系统的过程中选择自动分区时,就会默认采用 LVM 分区方案,不需再进行手动配置
  • 需要主机:“/boot”分区不能基于 LVM 创建,必须独立出来

1.1 PV(physical Volume,物理卷)

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

1.2 VG(Volume Group,卷组)

  • 由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷
    mark

1.3 LV(Logical Volume,逻辑卷)

  • 逻辑卷建立在卷组之上,与物理卷没有直接关系
  • 对于逻辑卷来说,每一个卷组就是一个整体,从这一个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷
  • 使用 mkfs 等工具在逻辑卷上创建文件系统后,就可以挂载到 Linux 系统中的目录下使用
    mark

1.4 小结

通过上述对物理卷、卷组、逻辑卷的解释可以看出,建立 LVM 分区管理机制的过程:

  1. 首先,将普通分区或整个硬盘创建为物理卷
  2. 接下来,将物理上比较分散的各物理卷的存储空间组成一个逻辑整体,及卷组
  3. 最后,基于卷组这个整体,分割出不同的数据存储空间,形成逻辑卷
  4. 逻辑卷才是最终用户可以格式化并挂载使用的存储单位

2.管理LVM

LVM管理命令主要分为三大类:PV物理卷管理、VG卷组管理、LV逻辑卷管理,对应的命令程序以“pv”、“vg”、“lv”开头

功能 PV 管理命令 VG 管理命令 LV 管理命令
Scan扫描 pvscan vgscan lvscan
Create建立 pvcreate vgcreate lvcreate
Display显示 pvdisplay vgdisplay Ivdisplay
Remove删除 pvremove vgremove lvremove
Extend扩展 —— vgextend Ivextend
Reduce减少 —— vgreduce Ivreduce

注:当想要扩展逻辑卷大小使用“lvextend”命令扩展时,扩展之前不能在该逻辑卷中,该逻辑卷可以不解挂载就能编辑,也可解挂载之后编辑,而且扩展的空间之前一定要有"+",否则则是将原来的空间更改为20G,而不是扩展,这里将逻辑卷扩展20G

umount 逻辑卷

lvextend -L +20G 逻辑卷

lvdispaly 逻辑卷
#查看扩容后的逻辑卷空间大小

3.LVM应用实例

  • 案例环境:公司准备在Internet中搭建邮件服务器(CentOS7.3系统平台) ,面向全国各地的员工及部分VIP客户提供电子邮箱空间
  • 需求描述:由于用户数量众多,邮件存储需要大量的空间,考虑到动态扩容的需要,计划增加三块SCSI硬盘并构建LVM逻辑卷(挂载到"/"目录下的某个目录下)专门用于存放邮件数据
  • 根据上述案例环境和需求,推荐的操作步骤如下所述:
  1. 关闭服务器主机,正确挂载三块 SCSI 新硬盘,每块硬盘大小40G,总共120G
    mark
  2. 开启服务器主机,执行“fdisk -l”命令进行检查,确认已识别新增的硬盘
    mark
  3. 在新磁盘中进行分区,将每块硬盘的所有空间划分为一个独立的主分区,并将分区类型改为“8e”
    mark
    另外两个磁盘也是相同操作,全部修改完成后检查一下确认结果
    mark
  4. 将分区转换为物理卷
    mark
  5. 将上述物理卷整合,创建名为 zxc 的卷组
    mark
  6. 在 zxc 卷组中创建一个名为 zxc123 的逻辑卷,容量设置为 90G
    mark
  7. 使用 mkfs 命令对逻辑卷 zxc 进行格式化,并挂载至一个目录下
    mark
  8. 使用 lvextend 命令为逻辑卷 zxc123 扩充 20G 容量,再使用 xfs_growfs /dev/zxc/zxc123 命令更新系统识别的文件系统大小
    mark
  9. 补充:若格式化为 EXT4 文件系统类型,则使用 resize2fs 命令更新系统识别的文件系统大小

二、磁盘配额

1.实现磁盘配额的条件

  1. 需要Linux内核支持
  2. 安装软件包(一般系统都是默认安装的)
    mark

2.Linux磁盘限额的特点

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

3.设置磁盘配额

  • 当Linux根分区的磁盘空间耗尽时, Linux操作系统将无法再建立新的文件,同时也可能会出现服务程序崩溃、系统无法启动等故障
  • 为了避免在服务器中出现类似磁盘空间不足的问题,可以启用磁盘配额功能,对用户在指定文件系统(分区)中使用的磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可用性
  • 在Centos系统中,不同的文件系统使用不同磁盘配额配置管理工具
  • 例如, XFS 文件系统通过 xfs_quota 工具进行管理;EXT3/4 文件系统通过 quota 工具进行管理

4.基于CentOS7设置磁盘

4.1 检查是否已安装相关软件包

rpm -q xfsprogs quota

yum -y install xfsprogs quota

mark

4.2 以支持配额功能的方式挂载文件系统

#自动挂载
vim /etc/fstab

/dev/zxc/zxc123                           /zxc123                 xfs     defaults,usrquota,grpquota    0 0


mount -a

mark
mark

4.3 编辑用户和组账号的配额设置

useradd xiaoxu
#创建一个新用户
passwd xiaoxu
#设置密码来激活该新用户

xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=40 ihard=50 xiaoxu' /zxc111/

mark

常用参数 解释
-x 表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用
-c 表示直接调用管理命令
-u 指定用户账号对象
-g 指定组账号对象
bsoft 设置磁盘容量的软限制数值(默认单位为KB)
bhard 设置磁盘容量的硬限制数值(默认单位为KB)
isoft 设置磁盘文件数的软限制数值
ihard 设置磁盘文件数的硬限制数值
#仅限制磁盘容量
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M xiaoxu' /zxc111/

#仅限制文件数
xfs_quota -x -c 'limit -u isoft=40 ihard=50 xiaoxu' /zxc111/

#查看 xiaoxu 磁盘容量限制
xfs_quota -c 'quota -uv xiaoxu' /zxc111/

mark

4.4 验证磁盘配额功能

chmod 777 /zxc111/
su xiaoxu
cd /zxc111/

#验证磁盘容量超限
dd if=/dev/zero of=/opt/ddtest.txt bs=10M count=12
(每次给10M,连续给12次)

mark
mark

参数命令 解释
dd 命令 是一个设备转换和连续复制命令
“if=” 指定输入设备(或文件)
“of=” 指定输出设备(或文件)
“bs=” 指定读取数据块的大小
“count=” 指定读取数据块的数量
/dev/zero “零"设备文件,可以无限的提供空字符。常用来生成一个特定大小的文件
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=4 ihard=5 xiaoxu' /zxc111/
##限制文件数,文件数软限制为4个,硬限制为5个

xfs_quota -c 'quota -i -uv xiaoxu' /zxc111/
#查看文件数限制

#验证磁盘文件数超限
touch {1..101}.txt

mark
mark

4.5 查看配额使用情况

#查看所有可用分区的磁盘容量配额使用情况
xfs_quota -x -c 'report -a'

#查看磁盘容量和文件数的报告
xfs_quota -x -c 'report -abih'

mark

猜你喜欢

转载自blog.csdn.net/weixin_51486343/article/details/113001865