LVM与磁盘配额

壹、LVM概述

Logical Volume Manager,逻辑卷管理

  • 能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性

  • /boot分区用于存放引导文件,不能基于LVM创建

贰、LVM机制的基本概念

  • PV(物理卷)
  • VG(卷组)
  • LV(逻辑卷)

PV (Physical Volume,,物理卷)

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

VG (Volume Group,卷组)

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

LV (Logical Volume, 逻辑卷)

卷组中分割出的一块空间, 形成逻辑卷。使用 mkfs 等工具可在逻辑卷上创建文件系统。

LV(逻辑卷).png

叁、LVM的管理命令

1、主要命令

功能 物理卷管理 卷组管理 逻辑卷管理
Scan扫描 pvscan vgscan lvscan
Crete建立 pvcreate vgcreate lvcreate
Display显示 pvdisplay vgdisplay lvdisplay
Remove删除 pvremove vgremove lvremove
Extend扩展 ————— vgextend lvextend
Reduce减少 ————— vgreduce lvreduce
pvcreate 设备名1 [设备名1 ... ...]
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名

2、LVM应用方法

1、首先关闭主机添加新硬盘,然后打开查看

LVM查看.png

2、先使用 fdisk 工具将磁盘设备/dev/sdb划分出主分区 sdb1,并且把分区类型的 ID 标记号改成"8e"

LVM同步磁盘.png

3、创建物理卷

LVM创建物理卷.png

4、创建卷组,卷组名为vgname1

LVM创建卷组.png

5、创建逻辑卷,逻辑卷名称为lvname1(这里误写为lvnanme),容量为 20GB#实际不够,生成的文件路径为 /dev/vgname1/lvnanme1

LVM创建逻辑卷.png

6、对逻辑卷进行格式化,创建 XFS 文件系统,并挂载到 /opt 目录下

LVM格式化挂载查看.png


3、再扩容

vgextend vgname1 /dev/sdb1
lvextend -L +10G /dev/vgname1/lvnanme1 #"+"增加10个G的扩容,不带则重新定义
xfs_growfs /dev/vgname1/lvnanme1 #刷新xfs文件系统容量
resize2fs /dev/vgname1/lvnanme1 #刷新ext4类型文件系统容量

肆、磁盘配额概述

实现磁盘限额的条件

  • 需要Linux内核支持
  • 安装xfsprogs与quota软件包

Linux 磁盘限额的特点

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

1、常用命令及选项

xfs_quota -x -c 'limit -u bsoft=80M bhard=100M 用户名' /opt/ #仅限制磁盘容量
xfs_quota -x -c 'limit -u isoft=4 ihard=5 用户名' /opt/ #仅限制文件个数
xfs_quota -x -c 'quota -uv 用户名' /data #查看磁盘容量
例:
useradd nanjing
passwd nanjing
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=40 ihard=50 nanjing' /opt/
选项 介绍
-x 表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用
-c 表示直接调用管理命令
-u 指定用户账号对象
-g 指定组账号对象
bsoft 设置磁盘容量的软限制数值(默认单位为KB)
bhard 设置磁盘容量的硬限制数值(默单位为KB)
isoft 设置磁盘文件数的软限制数值
ihard 设置磁盘文件数的硬限制数值

2、磁盘配额的步骤

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

磁盘配额的步骤.png

3、CentOS中设置磁盘配额步骤

1、先检查是否已安装xfsprogos和xfs_quota软件包

rpm -q xfsprongs quota#检查软件包是否安装
yum install -y xfsprogs quota#安装软件包

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

umount /dev/vgname1/lvname1
mount -o userquota,grpquota /dev/lvname1 /opt#添加挂载参数"userquota,grpquota"用于增加对用户、组配额功能的支持
或
vim /etc/fstab
内容
/dev/vgname1/lvname1 /opt xfs defaults,userquota,grpquota 0 0
#解挂载
umount /dev/vgname/lvname1
mount -a# -a选项,将/etc/fstab的所有内容重新加载

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

useradd nanjing#用户名
passwd nanjing
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=40 ihard=50 nanjing' /opt/

4、验证磁盘配额功能

  • 切换到设置配额的分区(挂载目录)
  • 创建指定数量的文件:使用touch命令,或cp命令
  • 创建指定容量的文件:使用dd命令,或cp命令
chmod 777 /opt
su nanjing
cd /opt
#验证磁盘文件数超限
dd if=/dev/zero of=/opt/ddtest.txt bs=10M count=12
#验证磁盘文件数超限
touch {aa,bb,cc,dd,ee,ff}.txt
命令 介绍
dd 是一个连续复制的命令
if= 指定输入设备(或文件)
of= 指定输出设备(或文件)
bs= 指定读取数据块的大小
count= 指定读取数据块的数量
/dev/zero ”零“设备文件,可以无限的提供空字符,常用来生成一个特定大小的文件。用于测试。

5、查看配额使用情况

xfs_quota -x -c 'report 选项'
xfs_quota -x -c 'report -a'#查看所有可以分区的磁盘容量配额使用情况
xfs_quota -x -c 'report -abih'#查看磁盘容量和文件数的报告

伍、磁盘容量的使用的情况

df -h
df -i

磁盘的IO使用情况

iostat
#工具
iotop
atop

磁盘的IO使用情况.png


  • %iowait 值过高,表示硬盘的IO不够用,出现瓶颈
  • %idle
    • 值高的话,表示CPU比较空闲
    • 值高但是系统响应慢,可能是CPU在等待分配内存。可能是此时的内存不够用,需要加大内存容量或者释放缓存
    • 值持续低于10,可能是CPU的处理能力变低了,需要加大CPU性能,或者排查有无大量占用CPU使用率的进程

内存的使用情况

free [-m]