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 等工具可在逻辑卷上创建文件系统。
叁、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、首先关闭主机添加新硬盘,然后打开查看
2、先使用 fdisk 工具将磁盘设备/dev/sdb划分出主分区 sdb1,并且把分区类型的 ID 标记号改成"8e"
3、创建物理卷
4、创建卷组,卷组名为vgname1
5、创建逻辑卷,逻辑卷名称为lvname1(这里误写为lvnanme),容量为 20GB#实际不够,生成的文件路径为 /dev/vgname1/lvnanme1
6、对逻辑卷进行格式化,创建 XFS 文件系统,并挂载到 /opt 目录下
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 工具进行管理。
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
- %iowait 值过高,表示硬盘的IO不够用,出现瓶颈
- %idle
- 值高的话,表示CPU比较空闲
- 值高但是系统响应慢,可能是CPU在等待分配内存。可能是此时的内存不够用,需要加大内存容量或者释放缓存
- 值持续低于10,可能是CPU的处理能力变低了,需要加大CPU性能,或者排查有无大量占用CPU使用率的进程
内存的使用情况
free [-m]