文章目录
一、管理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,卷组)
- 由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷
1.3 LV(Logical Volume,逻辑卷)
- 逻辑卷建立在卷组之上,与物理卷没有直接关系
- 对于逻辑卷来说,每一个卷组就是一个整体,从这一个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷
- 使用 mkfs 等工具在逻辑卷上创建文件系统后,就可以挂载到 Linux 系统中的目录下使用
1.4 小结
通过上述对物理卷、卷组、逻辑卷的解释可以看出,建立 LVM 分区管理机制的过程:
- 首先,将普通分区或整个硬盘创建为物理卷
- 接下来,将物理上比较分散的各物理卷的存储空间组成一个逻辑整体,及卷组
- 最后,基于卷组这个整体,分割出不同的数据存储空间,形成逻辑卷
- 逻辑卷才是最终用户可以格式化并挂载使用的存储单位
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逻辑卷(挂载到"/"目录下的某个目录下)专门用于存放邮件数据
- 根据上述案例环境和需求,推荐的操作步骤如下所述:
- 关闭服务器主机,正确挂载三块 SCSI 新硬盘,每块硬盘大小40G,总共120G
- 开启服务器主机,执行“fdisk -l”命令进行检查,确认已识别新增的硬盘
- 在新磁盘中进行分区,将每块硬盘的所有空间划分为一个独立的主分区,并将分区类型改为“8e”
另外两个磁盘也是相同操作,全部修改完成后检查一下确认结果
- 将分区转换为物理卷
- 将上述物理卷整合,创建名为 zxc 的卷组
- 在 zxc 卷组中创建一个名为 zxc123 的逻辑卷,容量设置为 90G
- 使用 mkfs 命令对逻辑卷 zxc 进行格式化,并挂载至一个目录下
- 使用 lvextend 命令为逻辑卷 zxc123 扩充 20G 容量,再使用 xfs_growfs /dev/zxc/zxc123 命令更新系统识别的文件系统大小
- 补充:若格式化为 EXT4 文件系统类型,则使用 resize2fs 命令更新系统识别的文件系统大小
二、磁盘配额
1.实现磁盘配额的条件
- 需要Linux内核支持
- 安装软件包(一般系统都是默认安装的)
2.Linux磁盘限额的特点
- 作用范围:针对指定的文件系统(分区)
- 限制对象:用户帐号、组帐号
- 限制类型:磁盘容量、文件数量(节点号)
- 限制方法:软限制、硬限制
3.设置磁盘配额
- 当Linux根分区的磁盘空间耗尽时, Linux操作系统将无法再建立新的文件,同时也可能会出现服务程序崩溃、系统无法启动等故障
- 为了避免在服务器中出现类似磁盘空间不足的问题,可以启用磁盘配额功能,对用户在指定文件系统(分区)中使用的磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可用性
- 在Centos系统中,不同的文件系统使用不同磁盘配额配置管理工具
- 例如, XFS 文件系统通过 xfs_quota 工具进行管理;EXT3/4 文件系统通过 quota 工具进行管理
4.基于CentOS7设置磁盘
4.1 检查是否已安装相关软件包
rpm -q xfsprogs quota
yum -y install xfsprogs quota
4.2 以支持配额功能的方式挂载文件系统
#自动挂载
vim /etc/fstab
/dev/zxc/zxc123 /zxc123 xfs defaults,usrquota,grpquota 0 0
mount -a
4.3 编辑用户和组账号的配额设置
useradd xiaoxu
#创建一个新用户
passwd xiaoxu
#设置密码来激活该新用户
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=40 ihard=50 xiaoxu' /zxc111/
常用参数 | 解释 |
---|---|
-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/
4.4 验证磁盘配额功能
chmod 777 /zxc111/
su xiaoxu
cd /zxc111/
#验证磁盘容量超限
dd if=/dev/zero of=/opt/ddtest.txt bs=10M count=12
(每次给10M,连续给12次)
参数命令 | 解释 |
---|---|
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
4.5 查看配额使用情况
#查看所有可用分区的磁盘容量配额使用情况
xfs_quota -x -c 'report -a'
#查看磁盘容量和文件数的报告
xfs_quota -x -c 'report -abih'