玄子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

相关推荐
是Dream呀2 分钟前
Python从0到100(七十八):神经网络--从0开始搭建全连接网络和CNN网络
网络·python·神经网络
木子Linux1 小时前
【Linux打怪升级记 | 问题01】安装Linux系统忘记设置时区怎么办?3个方法教你回到东八区
linux·运维·服务器·centos·云计算
kaixin_learn_qt_ing1 小时前
了解RPC
网络·网络协议·rpc
mit6.8241 小时前
Ubuntu 系统下性能剖析工具: perf
linux·运维·ubuntu
鹏大师运维1 小时前
聊聊开源的虚拟化平台--PVE
linux·开源·虚拟化·虚拟机·pve·存储·nfs
watermelonoops1 小时前
Windows安装Ubuntu,Deepin三系统启动问题(XXX has invalid signature 您需要先加载内核)
linux·运维·ubuntu·deepin
安全小王子1 小时前
Kali操作系统简单介绍
网络·web安全
Smile灬凉城6662 小时前
反序列化为啥可以利用加号绕过php正则匹配
开发语言·php
滴水之功2 小时前
VMware OpenWrt怎么桥接模式联网
linux·openwrt
ldinvicible2 小时前
How to run Flutter on an Embedded Device
linux