玄子Share-LVM与磁盘配额

玄子Share-LVM与磁盘配额

LVM概述

Logical Volume Manager,逻辑卷管理

  • Linux系统中对磁盘分区进行管理的一种逻辑机制,是建立在硬盘和分区之上的一个逻辑层
  • 动态调整磁盘容量,从而提高磁盘管理的灵活性

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

LVM机制的基本概念

  • PV(物理卷):是对物理磁盘和经过RAID之后逻辑磁盘的统称;
  • VG(卷组):由一个或多个物理卷组成的存储池;
  • LV(逻辑卷): 在卷组上进行的逻辑划分,可以建立文件系统;

LVM的管理命令

功能 物理卷管理 卷组管理 逻辑卷管理
Scan 扫描 pvscan vgscan lvscan
Create 建立 pvcreate vgcreate lvcreate
Display 显示 pvdisplay vgdisplay lvdisplay
Remove 删除 pvremove vgremove lvremove
Extend 扩展 ------------ vgextend lvextend
Reduce 减少 ------------ vgreduce lvreduce
shell 复制代码
pvcreate  设备名1  [设备名2   ... ...]

vgcreate  卷组名  物理卷名1     物理卷名2

lvcreate   -L  容量大小  -n  逻辑卷名  卷组名

lvextend  -L  +容量大小  /dev/卷组名/逻辑卷名

lvreduce  -L  -容量大小  /dev/卷组名/逻辑卷名

实操案例

shell 复制代码
pvcreate /dev/sdb1 /dev/sdc1
pvdisplay
# 转换物理卷
vgcreate  mail_store /dev/sdb1 /dev/sdc1
vgdisplay
# 创建卷组
lvcreate -L 50G mail_store -n mbox
lvdisplay
# 创建逻辑卷
mkfs.xfs /dev/mail_store/mbox
# 格式化为XFS文件系统
mkdir  /mailbox
mount /dev/mail_store/mbox /mailbox/
# 挂载到 /mailbox 目录
df -hT

磁盘配额概述

磁盘配额是一种磁盘空间的管理机制,使用磁盘配额可限制用户或组在某个特定文件系统中使用较多空间。

  • 实现磁盘限额的条件
    • 需要 Linux 内核支持
    • 安装 xfsprogs 与 quota 软件包

Linux 磁盘限额的特点

  • 作用范围:针对指定的文件系统(分区)
  • 限制对象:存在的用户帐号、存在的组帐号
  • 限制类型:磁盘容量(默认为kb)、文件数量
  • 限制方法:软限制(警告)、硬限制(完全限制)

启用磁盘配额支持

shell 复制代码
[root@xuanzi ~]# mount -o usrquota,grpquota /dev/mail_store/mbox  /mailbox/
[root@xuanzi ~]# mount | grep /mailbox
/dev/mapper/mail_store-mbox on /mailbox type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
[root@xuanzi ~]# chmod 777 /mailbox/
[root@xuanzi ~]# ls -ld /mailbox/
drwxrwxrwx. 2 root root 6 3月  19 22:56 /mailbox/
[root@xuanzi ~]# vim /etc/fstab 
# /dev/mapper/mail_store-mbox /mailbox    xfs     defaults,usrquota,grpquota 0 0

磁盘配额管理

编辑用户和组帐号的配额设置,使用 xfs_quota 命令编辑配额设置

shell 复制代码
xfs_quota -x -c 'limit -u bsoft=N  bhard=N isoft=N  ihard=N  用户名'  挂载点
[root@xuanzi ~]# xfs_quota -x -c 'limit -u bsoft=80M  bhard=100M  isoft=80  ihard=100   XuanZi' /mailbox/
[root@xuanzi ~]# xfs_quota -c 'quota  -iuv  XuanZi' /mailbox/
Disk quotas for User XuanZi (1001)
Filesystem               Files      Quota      Limit  Warn/Time      Mounted on
/dev/mapper/mail_store-mbox
                             0         80        100   00 [--------] /mailbox
  • 常用选项
    • -u(用户限额)
    • -g(用户组限额)
    • -x(专家模式)
    • -c(调用管理命令)
  • 限制字段
    • bsoft:设置用户的磁盘容量软限制
    • bhard:设置用户的磁盘容量硬限制
    • isoft:设置用户的文件数量软限制
    • ihard:设置用户的文件数量硬限制

验证磁盘配额功能

切换到设置配额的分区(挂载目录)创建指定数量的文件:使用touch命令,或cp命令创建指定容量的文件:使用dd命令,或cp命令

查看配额使用情况

shell 复制代码
[root@bogon ~]# xfs_quota -x  -c 'report -a'
User quota on /mailbox (/dev/mapper/mail_store-mbox)
                               Blocks                     
User ID          Used       Soft       Hard    Warn/Grace     
---------- -------------------------------------------------- 
root                0          0          0     00 [--------]
zhangsan       102400      81920     102400     00  [6 days]

Group quota on /mailbox (/dev/mapper/mail_store-mbox)
                               Blocks                     
Group ID         Used       Soft       Hard    Warn/Grace     
---------- -------------------------------------------------- 
root                0          0          0     00 [--------]
users               0    1048576    2097152     00 [--------]
zhangsan       102400          0          0     00 [--------]

磁盘配额实战

虚拟机添加两块硬盘,重启系统

shell 复制代码
fdisk -l
# 查看系统中所有磁盘的分区情况,以便选择要操作的磁盘设备,/dev/sdb 和 /dev/sdc

fdisk /dev/sdb
# 使用 fdisk 对 /dev/sdb 磁盘进行分区管理,使用命令 n 创建新分区,p 显示分区表,t 修改分区类型,ID设为 8e 以支持 Linux LVM,w 保存并退出

fdisk /dev/sdc
# 同样使用 fdisk 对 /dev/sdc 磁盘进行分区管理,步骤与对 /dev/sdb 的操作一致

fdisk -l
# 再次查看系统中所有磁盘的分区情况,确认分区已经完成

partx /dev/sdb
partx /dev/sdc
# 更新内核关于磁盘分区表的信息

pvcreate /dev/sdb1 /dev/sdc1
# 创建物理卷,将 /dev/sdb1 和/ dev/sdc1 分区标记为LVM物理卷,以便后续创建逻辑卷

vgcreate mail_store /dev/sdb1 /dev/sdc1
# 创建卷组,将物理卷 /dev/sdb1 和 /dev/sdc1 添加到名为 mail_store 的卷组中

lvcreate -L 80G -n mbox mail_store
# 在 mail_store 卷组中创建一个名为 mbox 的逻辑卷,大小为 80GB

mkfs -t xfs /dev/mail_store/mbox
# 对新创建的逻辑卷 /dev/mail_store/mbox 进行文件系统格式化,使用 XFS 文件系统

mkdir /mailbox
# 创建一个目录 /mailbox,用于挂载文件系统

mount /dev/mail_store/mbox /mailbox/
# 将逻辑卷 /dev/mail_store/mbox 挂载到 /mailbox 目录,使其可被访问

mount | tail -1
# 查看最后一行挂载信息,确认挂载成功
# /dev/mapper/mail_store-mbox on /mailbox type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

ll /dev/dm-3
# 查看 /dev/dm-3 的详细属性
# brw-rw----. 1 root disk 253, 3 3月  20 21:54 /dev/dm-3

ll /dev/mapper/mail_store-mbox
# 查看/dev/mapper/mail_store-mbox的详细属性,这是逻辑卷的符号链接
# lrwxrwxrwx. 1 root root 7 3月  20 21:54 /dev/mapper/mail_store-mbox -> ../dm-3

ll /dev/mail_store/mbox
# 查看/dev/mail_store/mbox的详细属性,这也是逻辑卷的符号链接
# root root 7 3月  20 21:54 /dev/mail_store/mbox -> ../dm-3

umount /mailbox/
# 卸载/mailbox目录下的文件系统

mount -o usrquota,grpquota /dev/mail_store/mbox  /mailbox/
# 重新挂载 /mailbox 目录,并启用用户和组的磁盘配额功能

mount | tail -1
# 查看最后一行挂载信息,确认配额已启用
# /dev/mapper/mail_store-mbox on /mailbox type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)

chmod 777 /mailbox/
# 将 /mailbox 目录的权限设置为 777,以便所有用户都有读写执行权限

ll -d /mailbox/
# 查看 /mailbox 目录的详细属性,确认权限设置成功
# drwxrwxrwx. 2 root root 6 3月  20 21:54 /mailbox/

vim /etc/fstab
# 使用vim编辑器打开/etc/fstab文件,添加一行内容,以便系统启动时自动挂载文件系统
# 添加如下内容:/dev/mapper/mail_store-mbox /mailbox xfs defaults,usrquota,grpquota 0 0

useradd zhangsan
# 创建一个名为 zhangsan 的测试用户

passwd zhangsan
# 为用户 zhangsan 设置密码

xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=80 ihard=100 zhangsan' /mailbox/
# 为用户 zhangsan 设置磁盘配额,软限制为80MB,硬限制为100MB

xfs_quota -c 'quota -uv  zhangsan' /mailbox/
# 查看用户 zhangsa n的磁盘使用情况和配额限制

xfs_quota -c 'quota -uvi  zhangsan' /mailbox/
# 查看用户 zhangsan 的文件索引节点(inode)使用情况和配额限制

su - zhangsan
# 切换到 zhangsan 用户

cd /mailbox/
# 进入 /mailbox 目录

dd if=/dev/zero of=/mailbox/kc60.data bs=1M count=85
# 使用 dd 命令在 /mailbox 目录下创建一个名为 kc60.data 的 85MB 大小的文件

ls -hl kc60.data
# 查看创建的文件的详细信息
# -rw-rw-r--. 1 zhangsan zhangsan 85M 3月  20 22:42 kc60.data

exit
# 退出 zhangsan 用户

xfs_quota -c 'quota -uv  zhangsan' /mailbox/
# 再次查看用户 zhangsan 的磁盘使用情况和配额限制,确认文件创建后的磁盘使用情况
# # Disk quotas for User zhangsan (1001)
# Filesystem              						Blocks      Quota      Limit  		Warn/Time      Mounted on
# /dev/mapper/mail_store-mbox		87040      81920     102400   	00  [6 days] 		/mailbox
# Warn/Time:00 [6 days] 表示用户已经达到了磁盘配额的警告限制,并且该警告会持续6天,到期后仅能读取无法写入

xfs_quota -x  -c 'report -a'
# 生成关于磁盘使用情况和配额限制的报告,包括用户和组的配额情况
# User quota on /mailbox (/dev/mapper/mail_store-mbox)
#                               Blocks                     
# User ID          Used       Soft       Hard    Warn/Grace     
# ---------- -------------------------------------------------- 
# root                0          0          0     00 [--------]
# zhangsan       102400      81920     102400     00  [6 days]
#
# Group quota on /mailbox (/dev/mapper/mail_store-mbox)
#                               Blocks                     
# Group ID         Used       Soft       Hard    Warn/Grace     
# ---------- -------------------------------------------------- 
# root                0          0          0     00 [--------]
# users               0    1048576    2097152     00 [--------]
# zhangsan       102400          0          0     00 [--------]

玄子Share-LVM与磁盘配额 2024-03-19

玄子Share-LVM与磁盘配额

LVM概述

Logical Volume Manager,逻辑卷管理

  • Linux系统中对磁盘分区进行管理的一种逻辑机制,是建立在硬盘和分区之上的一个逻辑层
  • 动态调整磁盘容量,从而提高磁盘管理的灵活性

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

LVM机制的基本概念

  • PV(物理卷):是对物理磁盘和经过RAID之后逻辑磁盘的统称;
  • VG(卷组):由一个或多个物理卷组成的存储池;
  • LV(逻辑卷): 在卷组上进行的逻辑划分,可以建立文件系统;

LVM的管理命令

功能 物理卷管理 卷组管理 逻辑卷管理
Scan 扫描 pvscan vgscan lvscan
Create 建立 pvcreate vgcreate lvcreate
Display 显示 pvdisplay vgdisplay lvdisplay
Remove 删除 pvremove vgremove lvremove
Extend 扩展 ------------ vgextend lvextend
Reduce 减少 ------------ vgreduce lvreduce
shell 复制代码
pvcreate  设备名1  [设备名2   ... ...]

vgcreate  卷组名  物理卷名1     物理卷名2

lvcreate   -L  容量大小  -n  逻辑卷名  卷组名

lvextend  -L  +容量大小  /dev/卷组名/逻辑卷名

lvreduce  -L  -容量大小  /dev/卷组名/逻辑卷名

实操案例

shell 复制代码
pvcreate /dev/sdb1 /dev/sdc1
pvdisplay
# 转换物理卷
vgcreate  mail_store /dev/sdb1 /dev/sdc1
vgdisplay
# 创建卷组
lvcreate -L 50G mail_store -n mbox
lvdisplay
# 创建逻辑卷
mkfs.xfs /dev/mail_store/mbox
# 格式化为XFS文件系统
mkdir  /mailbox
mount /dev/mail_store/mbox /mailbox/
# 挂载到 /mailbox 目录
df -hT

磁盘配额概述

磁盘配额是一种磁盘空间的管理机制,使用磁盘配额可限制用户或组在某个特定文件系统中使用较多空间。

  • 实现磁盘限额的条件
    • 需要 Linux 内核支持
    • 安装 xfsprogs 与 quota 软件包

Linux 磁盘限额的特点

  • 作用范围:针对指定的文件系统(分区)
  • 限制对象:存在的用户帐号、存在的组帐号
  • 限制类型:磁盘容量(默认为kb)、文件数量
  • 限制方法:软限制(警告)、硬限制(完全限制)

启用磁盘配额支持

shell 复制代码
[root@xuanzi ~]# mount -o usrquota,grpquota /dev/mail_store/mbox  /mailbox/
[root@xuanzi ~]# mount | grep /mailbox
/dev/mapper/mail_store-mbox on /mailbox type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
[root@xuanzi ~]# chmod 777 /mailbox/
[root@xuanzi ~]# ls -ld /mailbox/
drwxrwxrwx. 2 root root 6 3月  19 22:56 /mailbox/
[root@xuanzi ~]# vim /etc/fstab 
# /dev/mapper/mail_store-mbox /mailbox    xfs     defaults,usrquota,grpquota 0 0

磁盘配额管理

编辑用户和组帐号的配额设置,使用 xfs_quota 命令编辑配额设置

shell 复制代码
xfs_quota -x -c 'limit -u bsoft=N  bhard=N isoft=N  ihard=N  用户名'  挂载点
[root@xuanzi ~]# xfs_quota -x -c 'limit -u bsoft=80M  bhard=100M  isoft=80  ihard=100   XuanZi' /mailbox/
[root@xuanzi ~]# xfs_quota -c 'quota  -iuv  XuanZi' /mailbox/
Disk quotas for User XuanZi (1001)
Filesystem               Files      Quota      Limit  Warn/Time      Mounted on
/dev/mapper/mail_store-mbox
                             0         80        100   00 [--------] /mailbox
  • 常用选项
    • -u(用户限额)
    • -g(用户组限额)
    • -x(专家模式)
    • -c(调用管理命令)
  • 限制字段
    • bsoft:设置用户的磁盘容量软限制
    • bhard:设置用户的磁盘容量硬限制
    • isoft:设置用户的文件数量软限制
    • ihard:设置用户的文件数量硬限制

验证磁盘配额功能

切换到设置配额的分区(挂载目录)创建指定数量的文件:使用touch命令,或cp命令创建指定容量的文件:使用dd命令,或cp命令

查看配额使用情况

shell 复制代码
[root@bogon ~]# xfs_quota -x  -c 'report -a'
User quota on /mailbox (/dev/mapper/mail_store-mbox)
                               Blocks                     
User ID          Used       Soft       Hard    Warn/Grace     
---------- -------------------------------------------------- 
root                0          0          0     00 [--------]
zhangsan       102400      81920     102400     00  [6 days]

Group quota on /mailbox (/dev/mapper/mail_store-mbox)
                               Blocks                     
Group ID         Used       Soft       Hard    Warn/Grace     
---------- -------------------------------------------------- 
root                0          0          0     00 [--------]
users               0    1048576    2097152     00 [--------]
zhangsan       102400          0          0     00 [--------]

磁盘配额实战

虚拟机添加两块硬盘,重启系统

shell 复制代码
fdisk -l
# 查看系统中所有磁盘的分区情况,以便选择要操作的磁盘设备,/dev/sdb 和 /dev/sdc

fdisk /dev/sdb
# 使用 fdisk 对 /dev/sdb 磁盘进行分区管理,使用命令 n 创建新分区,p 显示分区表,t 修改分区类型,ID设为 8e 以支持 Linux LVM,w 保存并退出

fdisk /dev/sdc
# 同样使用 fdisk 对 /dev/sdc 磁盘进行分区管理,步骤与对 /dev/sdb 的操作一致

fdisk -l
# 再次查看系统中所有磁盘的分区情况,确认分区已经完成

partx /dev/sdb
partx /dev/sdc
# 更新内核关于磁盘分区表的信息

pvcreate /dev/sdb1 /dev/sdc1
# 创建物理卷,将 /dev/sdb1 和/ dev/sdc1 分区标记为LVM物理卷,以便后续创建逻辑卷

vgcreate mail_store /dev/sdb1 /dev/sdc1
# 创建卷组,将物理卷 /dev/sdb1 和 /dev/sdc1 添加到名为 mail_store 的卷组中

lvcreate -L 80G -n mbox mail_store
# 在 mail_store 卷组中创建一个名为 mbox 的逻辑卷,大小为 80GB

mkfs -t xfs /dev/mail_store/mbox
# 对新创建的逻辑卷 /dev/mail_store/mbox 进行文件系统格式化,使用 XFS 文件系统

mkdir /mailbox
# 创建一个目录 /mailbox,用于挂载文件系统

mount /dev/mail_store/mbox /mailbox/
# 将逻辑卷 /dev/mail_store/mbox 挂载到 /mailbox 目录,使其可被访问

mount | tail -1
# 查看最后一行挂载信息,确认挂载成功
# /dev/mapper/mail_store-mbox on /mailbox type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

ll /dev/dm-3
# 查看 /dev/dm-3 的详细属性
# brw-rw----. 1 root disk 253, 3 3月  20 21:54 /dev/dm-3

ll /dev/mapper/mail_store-mbox
# 查看/dev/mapper/mail_store-mbox的详细属性,这是逻辑卷的符号链接
# lrwxrwxrwx. 1 root root 7 3月  20 21:54 /dev/mapper/mail_store-mbox -> ../dm-3

ll /dev/mail_store/mbox
# 查看/dev/mail_store/mbox的详细属性,这也是逻辑卷的符号链接
# root root 7 3月  20 21:54 /dev/mail_store/mbox -> ../dm-3

umount /mailbox/
# 卸载/mailbox目录下的文件系统

mount -o usrquota,grpquota /dev/mail_store/mbox  /mailbox/
# 重新挂载 /mailbox 目录,并启用用户和组的磁盘配额功能

mount | tail -1
# 查看最后一行挂载信息,确认配额已启用
# /dev/mapper/mail_store-mbox on /mailbox type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)

chmod 777 /mailbox/
# 将 /mailbox 目录的权限设置为 777,以便所有用户都有读写执行权限

ll -d /mailbox/
# 查看 /mailbox 目录的详细属性,确认权限设置成功
# drwxrwxrwx. 2 root root 6 3月  20 21:54 /mailbox/

vim /etc/fstab
# 使用vim编辑器打开/etc/fstab文件,添加一行内容,以便系统启动时自动挂载文件系统
# 添加如下内容:/dev/mapper/mail_store-mbox /mailbox xfs defaults,usrquota,grpquota 0 0

useradd zhangsan
# 创建一个名为 zhangsan 的测试用户

passwd zhangsan
# 为用户 zhangsan 设置密码

xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=80 ihard=100 zhangsan' /mailbox/
# 为用户 zhangsan 设置磁盘配额,软限制为80MB,硬限制为100MB

xfs_quota -c 'quota -uv  zhangsan' /mailbox/
# 查看用户 zhangsa n的磁盘使用情况和配额限制

xfs_quota -c 'quota -uvi  zhangsan' /mailbox/
# 查看用户 zhangsan 的文件索引节点(inode)使用情况和配额限制

su - zhangsan
# 切换到 zhangsan 用户

cd /mailbox/
# 进入 /mailbox 目录

dd if=/dev/zero of=/mailbox/kc60.data bs=1M count=85
# 使用 dd 命令在 /mailbox 目录下创建一个名为 kc60.data 的 85MB 大小的文件

ls -hl kc60.data
# 查看创建的文件的详细信息
# -rw-rw-r--. 1 zhangsan zhangsan 85M 3月  20 22:42 kc60.data

exit
# 退出 zhangsan 用户

xfs_quota -c 'quota -uv  zhangsan' /mailbox/
# 再次查看用户 zhangsan 的磁盘使用情况和配额限制,确认文件创建后的磁盘使用情况
# # Disk quotas for User zhangsan (1001)
# Filesystem              						Blocks      Quota      Limit  		Warn/Time      Mounted on
# /dev/mapper/mail_store-mbox		87040      81920     102400   	00  [6 days] 		/mailbox
# Warn/Time:00 [6 days] 表示用户已经达到了磁盘配额的警告限制,并且该警告会持续6天,到期后仅能读取无法写入

xfs_quota -x  -c 'report -a'
# 生成关于磁盘使用情况和配额限制的报告,包括用户和组的配额情况
# User quota on /mailbox (/dev/mapper/mail_store-mbox)
#                               Blocks                     
# User ID          Used       Soft       Hard    Warn/Grace     
# ---------- -------------------------------------------------- 
# root                0          0          0     00 [--------]
# zhangsan       102400      81920     102400     00  [6 days]
#
# Group quota on /mailbox (/dev/mapper/mail_store-mbox)
#                               Blocks                     
# Group ID         Used       Soft       Hard    Warn/Grace     
# ---------- -------------------------------------------------- 
# root                0          0          0     00 [--------]
# users               0    1048576    2097152     00 [--------]
# zhangsan       102400          0          0     00 [--------]

玄子Share-LVM与磁盘配额 2024-03-19

玄子Share-LVM与磁盘配额

LVM概述

Logical Volume Manager,逻辑卷管理

  • Linux系统中对磁盘分区进行管理的一种逻辑机制,是建立在硬盘和分区之上的一个逻辑层
  • 动态调整磁盘容量,从而提高磁盘管理的灵活性

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

LVM机制的基本概念

  • PV(物理卷):是对物理磁盘和经过RAID之后逻辑磁盘的统称;
  • VG(卷组):由一个或多个物理卷组成的存储池;
  • LV(逻辑卷): 在卷组上进行的逻辑划分,可以建立文件系统;

LVM的管理命令

功能 物理卷管理 卷组管理 逻辑卷管理
Scan 扫描 pvscan vgscan lvscan
Create 建立 pvcreate vgcreate lvcreate
Display 显示 pvdisplay vgdisplay lvdisplay
Remove 删除 pvremove vgremove lvremove
Extend 扩展 ------------ vgextend lvextend
Reduce 减少 ------------ vgreduce lvreduce
shell 复制代码
pvcreate  设备名1  [设备名2   ... ...]

vgcreate  卷组名  物理卷名1     物理卷名2

lvcreate   -L  容量大小  -n  逻辑卷名  卷组名

lvextend  -L  +容量大小  /dev/卷组名/逻辑卷名

lvreduce  -L  -容量大小  /dev/卷组名/逻辑卷名

实操案例

shell 复制代码
pvcreate /dev/sdb1 /dev/sdc1
pvdisplay
# 转换物理卷
vgcreate  mail_store /dev/sdb1 /dev/sdc1
vgdisplay
# 创建卷组
lvcreate -L 50G mail_store -n mbox
lvdisplay
# 创建逻辑卷
mkfs.xfs /dev/mail_store/mbox
# 格式化为XFS文件系统
mkdir  /mailbox
mount /dev/mail_store/mbox /mailbox/
# 挂载到 /mailbox 目录
df -hT

磁盘配额概述

磁盘配额是一种磁盘空间的管理机制,使用磁盘配额可限制用户或组在某个特定文件系统中使用较多空间。

  • 实现磁盘限额的条件
    • 需要 Linux 内核支持
    • 安装 xfsprogs 与 quota 软件包

Linux 磁盘限额的特点

  • 作用范围:针对指定的文件系统(分区)
  • 限制对象:存在的用户帐号、存在的组帐号
  • 限制类型:磁盘容量(默认为kb)、文件数量
  • 限制方法:软限制(警告)、硬限制(完全限制)

启用磁盘配额支持

shell 复制代码
[root@xuanzi ~]# mount -o usrquota,grpquota /dev/mail_store/mbox  /mailbox/
[root@xuanzi ~]# mount | grep /mailbox
/dev/mapper/mail_store-mbox on /mailbox type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
[root@xuanzi ~]# chmod 777 /mailbox/
[root@xuanzi ~]# ls -ld /mailbox/
drwxrwxrwx. 2 root root 6 3月  19 22:56 /mailbox/
[root@xuanzi ~]# vim /etc/fstab 
# /dev/mapper/mail_store-mbox /mailbox    xfs     defaults,usrquota,grpquota 0 0

磁盘配额管理

编辑用户和组帐号的配额设置,使用 xfs_quota 命令编辑配额设置

shell 复制代码
xfs_quota -x -c 'limit -u bsoft=N  bhard=N isoft=N  ihard=N  用户名'  挂载点
[root@xuanzi ~]# xfs_quota -x -c 'limit -u bsoft=80M  bhard=100M  isoft=80  ihard=100   XuanZi' /mailbox/
[root@xuanzi ~]# xfs_quota -c 'quota  -iuv  XuanZi' /mailbox/
Disk quotas for User XuanZi (1001)
Filesystem               Files      Quota      Limit  Warn/Time      Mounted on
/dev/mapper/mail_store-mbox
                             0         80        100   00 [--------] /mailbox
  • 常用选项
    • -u(用户限额)
    • -g(用户组限额)
    • -x(专家模式)
    • -c(调用管理命令)
  • 限制字段
    • bsoft:设置用户的磁盘容量软限制
    • bhard:设置用户的磁盘容量硬限制
    • isoft:设置用户的文件数量软限制
    • ihard:设置用户的文件数量硬限制

验证磁盘配额功能

切换到设置配额的分区(挂载目录)创建指定数量的文件:使用touch命令,或cp命令创建指定容量的文件:使用dd命令,或cp命令

查看配额使用情况

shell 复制代码
[root@bogon ~]# xfs_quota -x  -c 'report -a'
User quota on /mailbox (/dev/mapper/mail_store-mbox)
                               Blocks                     
User ID          Used       Soft       Hard    Warn/Grace     
---------- -------------------------------------------------- 
root                0          0          0     00 [--------]
zhangsan       102400      81920     102400     00  [6 days]

Group quota on /mailbox (/dev/mapper/mail_store-mbox)
                               Blocks                     
Group ID         Used       Soft       Hard    Warn/Grace     
---------- -------------------------------------------------- 
root                0          0          0     00 [--------]
users               0    1048576    2097152     00 [--------]
zhangsan       102400          0          0     00 [--------]

磁盘配额实战

虚拟机添加两块硬盘,重启系统

shell 复制代码
fdisk -l
# 查看系统中所有磁盘的分区情况,以便选择要操作的磁盘设备,/dev/sdb 和 /dev/sdc

fdisk /dev/sdb
# 使用 fdisk 对 /dev/sdb 磁盘进行分区管理,使用命令 n 创建新分区,p 显示分区表,t 修改分区类型,ID设为 8e 以支持 Linux LVM,w 保存并退出

fdisk /dev/sdc
# 同样使用 fdisk 对 /dev/sdc 磁盘进行分区管理,步骤与对 /dev/sdb 的操作一致

fdisk -l
# 再次查看系统中所有磁盘的分区情况,确认分区已经完成

partx /dev/sdb
partx /dev/sdc
# 更新内核关于磁盘分区表的信息

pvcreate /dev/sdb1 /dev/sdc1
# 创建物理卷,将 /dev/sdb1 和/ dev/sdc1 分区标记为LVM物理卷,以便后续创建逻辑卷

vgcreate mail_store /dev/sdb1 /dev/sdc1
# 创建卷组,将物理卷 /dev/sdb1 和 /dev/sdc1 添加到名为 mail_store 的卷组中

lvcreate -L 80G -n mbox mail_store
# 在 mail_store 卷组中创建一个名为 mbox 的逻辑卷,大小为 80GB

mkfs -t xfs /dev/mail_store/mbox
# 对新创建的逻辑卷 /dev/mail_store/mbox 进行文件系统格式化,使用 XFS 文件系统

mkdir /mailbox
# 创建一个目录 /mailbox,用于挂载文件系统

mount /dev/mail_store/mbox /mailbox/
# 将逻辑卷 /dev/mail_store/mbox 挂载到 /mailbox 目录,使其可被访问

mount | tail -1
# 查看最后一行挂载信息,确认挂载成功
# /dev/mapper/mail_store-mbox on /mailbox type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

ll /dev/dm-3
# 查看 /dev/dm-3 的详细属性
# brw-rw----. 1 root disk 253, 3 3月  20 21:54 /dev/dm-3

ll /dev/mapper/mail_store-mbox
# 查看/dev/mapper/mail_store-mbox的详细属性,这是逻辑卷的符号链接
# lrwxrwxrwx. 1 root root 7 3月  20 21:54 /dev/mapper/mail_store-mbox -> ../dm-3

ll /dev/mail_store/mbox
# 查看/dev/mail_store/mbox的详细属性,这也是逻辑卷的符号链接
# root root 7 3月  20 21:54 /dev/mail_store/mbox -> ../dm-3

umount /mailbox/
# 卸载/mailbox目录下的文件系统

mount -o usrquota,grpquota /dev/mail_store/mbox  /mailbox/
# 重新挂载 /mailbox 目录,并启用用户和组的磁盘配额功能

mount | tail -1
# 查看最后一行挂载信息,确认配额已启用
# /dev/mapper/mail_store-mbox on /mailbox type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)

chmod 777 /mailbox/
# 将 /mailbox 目录的权限设置为 777,以便所有用户都有读写执行权限

ll -d /mailbox/
# 查看 /mailbox 目录的详细属性,确认权限设置成功
# drwxrwxrwx. 2 root root 6 3月  20 21:54 /mailbox/

vim /etc/fstab
# 使用vim编辑器打开/etc/fstab文件,添加一行内容,以便系统启动时自动挂载文件系统
# 添加如下内容:/dev/mapper/mail_store-mbox /mailbox xfs defaults,usrquota,grpquota 0 0

useradd zhangsan
# 创建一个名为 zhangsan 的测试用户

passwd zhangsan
# 为用户 zhangsan 设置密码

xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=80 ihard=100 zhangsan' /mailbox/
# 为用户 zhangsan 设置磁盘配额,软限制为80MB,硬限制为100MB

xfs_quota -c 'quota -uv  zhangsan' /mailbox/
# 查看用户 zhangsa n的磁盘使用情况和配额限制

xfs_quota -c 'quota -uvi  zhangsan' /mailbox/
# 查看用户 zhangsan 的文件索引节点(inode)使用情况和配额限制

su - zhangsan
# 切换到 zhangsan 用户

cd /mailbox/
# 进入 /mailbox 目录

dd if=/dev/zero of=/mailbox/kc60.data bs=1M count=85
# 使用 dd 命令在 /mailbox 目录下创建一个名为 kc60.data 的 85MB 大小的文件

ls -hl kc60.data
# 查看创建的文件的详细信息
# -rw-rw-r--. 1 zhangsan zhangsan 85M 3月  20 22:42 kc60.data

exit
# 退出 zhangsan 用户

xfs_quota -c 'quota -uv  zhangsan' /mailbox/
# 再次查看用户 zhangsan 的磁盘使用情况和配额限制,确认文件创建后的磁盘使用情况
# # Disk quotas for User zhangsan (1001)
# Filesystem              						Blocks      Quota      Limit  		Warn/Time      Mounted on
# /dev/mapper/mail_store-mbox		87040      81920     102400   	00  [6 days] 		/mailbox
# Warn/Time:00 [6 days] 表示用户已经达到了磁盘配额的警告限制,并且该警告会持续6天,到期后仅能读取无法写入

xfs_quota -x  -c 'report -a'
# 生成关于磁盘使用情况和配额限制的报告,包括用户和组的配额情况
# User quota on /mailbox (/dev/mapper/mail_store-mbox)
#                               Blocks                     
# User ID          Used       Soft       Hard    Warn/Grace     
# ---------- -------------------------------------------------- 
# root                0          0          0     00 [--------]
# zhangsan       102400      81920     102400     00  [6 days]
#
# Group quota on /mailbox (/dev/mapper/mail_store-mbox)
#                               Blocks                     
# Group ID         Used       Soft       Hard    Warn/Grace     
# ---------- -------------------------------------------------- 
# root                0          0          0     00 [--------]
# users               0    1048576    2097152     00 [--------]
# zhangsan       102400          0          0     00 [--------]

玄子Share-LVM与磁盘配额 2024-03-19

相关推荐
BingoGo2 小时前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack2 小时前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
十日十行16 小时前
Linux和window共享文件夹
linux
木心月转码ing1 天前
WSL+Cpp开发环境配置
linux
JaguarJack1 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo1 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
崔小汤呀2 天前
最全的docker安装笔记,包含CentOS和Ubuntu
linux·后端
何中应2 天前
vi编辑器使用
linux·后端·操作系统
何中应2 天前
Linux进程无法被kill
linux·后端·操作系统
何中应2 天前
rm-rf /命令操作介绍
linux·后端·操作系统