LinuxLVM与磁盘配额
目录
1.1 Logical Volume Manager,逻辑卷管理
- 能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性
- /boot分区用于存放引导文件,不能基于LVM创建
1.2 LVM机制的基本概念
- PV(物理卷):物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB 的基本单元(PE),从而构成物理卷。
- VG(卷组):由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷。
- LV(逻辑卷):从卷组中分割出的一块空间,形成逻辑卷。使用mkfs等工具可在逻辑卷上创建文件系统。
1.1 主要命令
-
pvcreate 设备名1 [设备名2……] vgcreate 卷组名 物理卷名1 物理卷名2 lvcreate -L 容量大小 -n 逻辑卷名 卷组名 lvextend -L +大小 /dev/卷组名/逻辑卷名 //+代表扩多少,不加表示容量大小
-
xfs_growfs /dev/abc/abc01 //刷新xfs文件系统容量 //resize2fs 是ext4的刷新
3.1 推荐步骤
当Linux根分区的磁盘空间耗尽时,Linux操作系统将无法再建立新的文件,同时也可能会出现服务程序崩溃、系统无法启动等故障。
为了避免在服务器中出现类似磁盘空间不足的问题,可以启用磁盘配额功能,对用户在指定文件系统(分区)中使用的磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可用性。
在CentOS系统中,不同的文件系统使用不同磁盘配额配置管理工具。例如:XFS文件系统通过xfs_quota工具进行管理;EXT3/4文件系统通过quota工具进行管理。
4.1 实现磁盘限额的条件
- 需要安装Linux内核支持
- 安装xfsprogs与quota软件包
4.2 Linux磁盘限额的特点
- 作用范围:针对指定的文件系统(分区)
- 限制对象:用户账号、组账号
- 限制类型:磁盘容量、文件数量
- 限制方法:软限制、硬限制
5.1 编辑用户和组账号的配额设置
- 使用xfs_quota命令编辑配额设置
-
xfs_quota -x -c 'limit -u bsoft=N bhard=N isoft=N ihard=N 用户名' 挂载点
- 常用选项
- -x:表示启动专家模式,在当前模式下允许对配额系统进行修改的所有 管理命令可用
- -c:表示直接调用管理命令
- -u:指定用户账号对象
- -g:指定组账号对象
- 限制字段
- bsoft:设置磁盘容量的软限制数值(默认单位为KB)
- bhard:设置磁盘容量的硬限制数值(默认单位为KB)
- isoft:设置磁盘文件数的软限制数值
- ihard:设置磁盘文件数的硬限制数值
六、CentOS7中设置磁盘配额步骤
6.1 检查是否已安装xfsprogs和xfs_quota软件包
- rpm -q xfsprogs quota
- yum install -y xfsprogs quota
6.2 以支持配额功能的方式挂载文件系统
- umount /dev/vgname1/lvname1
- mount -o usrquota,grpquota /dev/vgname1/lvname1 /opt
- //添加挂载参数“usrquota,grpquota”用于增加对用户、组配额功能的支持
- 或者
- vim /etc/fstab
- /dev/vgname1/lvname1 /opt xfs defaults,usrquota,grpquota 0 0
- umount /dev/vgname1/lvname1
- mount -a //-a选项,将/etc/fstab的所有内容重新加载
6.3 编辑用户和组账号的配额设置
- useradd zhangsan
- passwd zhangsan
- xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=40 ihard=N zhangsan' /opt/
- xfs_quota -c 'quota -uv zhangsan' /opt/ //查看zhangsan磁盘容量限制
- xfs_quota -c 'quota -i -uv zhangsan' /opt/ //查看zhangsan文件数限制
6.4 验证磁盘配额功能
- chmod 777 /opt
- su zhangsan
- cd /opt
- //验证磁盘容量超限
- dd if=/dev/zero of=/opt/ddtest.txt bs=10M count=12
- //dd命令是一个设备转换和连续复制命令
- //"if="指定输入设备(或文件)
- //"of="指定输出设备(或文件)
- //"bs="指定读取数据块的大小
- //"count="指定读取数据块的数量
- // /dev/zero“零”设备文件,可以无限的提供空字符。常用来生成一个特定大小的文件
- //
- //验证磁盘文件数超限
- touch {aa,bb,cc,dd,ee,ff}.txt
6.5 查看配额使用情况
- //查看所有可用分区的磁盘容量配额使用情况
- xfs_quota -x -c 'report -a'
- //查看磁盘容量和文件数的报告
- xfs_quota -x -c 'report -abih'