LVM和磁盘配额
一、LVM
1、概述
LVM(Logical Volume Manager):逻辑卷管理
- 能够再保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性
- /boot分区用于存放引导文件,不能基于LVM创建
2、LVM机制的基本概念
- PV(物理卷)
- VG(卷组)
- LV(逻辑卷)
就是将磁盘或者磁盘分区(一个或多个)划分成一个个PE,每个PE就是物理卷的最小单元,默认是4M,这个值可以改,然后合起来,形成了VG(卷组)。然后从卷组中抽取PE满足所需的大小,这就是逻辑卷。
3、LVM的管理命令
功能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
Scan 扫描 | pvscan | vgscan | lvscan |
Create 建立 | pvcreate | vgcreate | lvcreate |
Display 显示 | pvdisplay | vgdisplay | lvdisplay |
Remove 删除 | pvremove | vgremove | lvremove |
Extend 扩展 | — | vgextend | lvextend |
Reduce 减少 | — | vgreduce | lvreduce |
4、LVM管理主要命令
pvcreate 设备名1 [设备名2......]
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名
5、创建逻辑卷
5.1第一步
关闭主机,添加两块新硬盘,重启主机(也可以不关机,使用命令在线刷新)。如果有硬盘,可以省略此步骤。
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
5.2第二步
先使用fdisk工具将磁盘设备/dev/sdb、/dev/sdc划分出主分区sdb1、sdc1,并且把分区类型的ID标记号改为8e(直接使用整个磁盘的可以省略此步骤)。
5.3第三步
创建物理卷
pvcreate /dev/adb1 /dev/sdc1
5.4第四步
创建卷组,卷组名为gcl
vgcreate gcl /dev/sdb1 /dev/sdc1
5.5第五步
创建逻辑卷,逻辑卷名为gcl1,容量为20GB,生成的文件路径为/dev/gcl/gcl1
lvcreate -L 20G -n gcl1 gcl
5.6第六步
对逻辑卷进行格式化,创建xfs文件系统,并挂载到/opt目录下
mkfs.xfs /dev/gcl/gcl1
mount /dev/gcl/gcl1 /opt/
df -hT
6、扩展逻辑卷
扩展逻辑卷时,如果卷组还有多余的存储空间能满足扩展需求,就直接执行以下命令
lvextend -L +10G [-r] /dev/gcl/gcl1
如果不够就要先扩展卷组
vgextend gcl /dev/sdd1
lvextend -L +10G [-r] /dev/gcl/gcl1
如果不加-r就需要刷新命令,不同的文件系统类型有不同刷新命令如下
xfs_growfs /dev/gcl/gcl1 //刷新xfs文件系统类型容量
resize2fs /dev/gcl/gcl1 //刷新ext4文件系统类型容量
二、磁盘配额
1、为什么要给磁盘配额
当Linux根分区的磁盘空间耗尽时,Linux操作系统将无法再建立新的文件,同时也可能会出现服务程序崩溃、系统无法启动等故障。为了避免在服务器中出现类似磁盘空间不足的问题,可以启用磁盘配额功能,对用户在指定文件系统(分区)中使用的磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可用性。
在CentOS系统中,不同的文件系统使用不同磁盘配额配置管理工具。例如,XFS 文件系统通过xfs_quota 工具进行管理;EXT3/4文件系统通过 quota工具进行管理。
2、实现磁盘配额的条件
- 需要Linux内核支持
- 安装xfsprogs与quota软件包
3、Linux磁盘限额的特点
- 作用范围:针对指定的文件系统(分区)
- 限制对象:用户账号、组账号
- 限制类型:磁盘容量、文件数量
- 限制方法:软限制、硬限制
软限制就是当你的磁盘容量或文件数量到达软限制的大小,系统就会告警,提醒你,但你还可以继续写入或创建文件。
硬限制就是当你的磁盘容量或文件数量到达硬限制的大小,系统就不会让你继续写入或创建文件。
4、配置磁盘配额步骤
4.1第一步
检查是否已安装xfsprogs和xfs_quota软件包,没有就用yum下载一下。
rpm -q xfsprogs quota //查找
yum install -y xfsprogs quota //下载
4.2第二步
以支持配额功能的方式挂载文件系统(如果没挂载的磁盘分区直接挂载,挂载的需要先解挂)
umount /dev/gcl/gcl1
mount -o usrquota,grpquota /dev/gcl/gcl1 /opt
或者
vim /etc/fstab
添加
/dev/gcl/gcl1 /opt xfs defaults,usrquota,grpquota 0 0
4.3编辑用户和组账号的配额设置
useradd gcl
passwd gcl
xfs_quota -xc 'limit -u bsoft=80M bhard=100M isoft=8 ihard=10 gcl' /opt/
xfs_quota选项 | 功能 |
---|---|
-x | 表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用。 |
-c | 表示直接调用管理命令 |
-u | 指定用户账号对象 |
-g | 指定组账号对象 |
- bsoft:设置磁盘容量的软限制数值(默认单位为KB)
- bhard:设置磁盘容量的硬限制数值(默认单位为KB)
- isoft:设置磁盘文件数的软限制数值
- ihard:设置磁盘文件数的硬限制数值
4.4查看磁盘容量和文件数限制
xfs_quota -c 'quota -uv gcl' /opt/ //查看容量限制
xfs_quota -c 'quota -i -uv gcl' /opt/ //查看文件数限制
4.5验证磁盘配额功能
chmod 777 /opt/
su gcl
cd /opt
验证容量超限:
dd if=/dev/zero of=/opt/123.txt bs=10M count=12
验证文件数超限:
touch {1..10}.txt
dd命令:是一个设备转换和连续复制命令
- “if=”:指定输入设备(或文件)
- “of=”:指定输出设备(或文件)
- “bs=”:指定读取数据块的大小
- “count=”:指定读取数据块的数量
- /dev/zero:“零”设备文件,可以无限的提供空字符。常用来生成一个特定大小的文件