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

相关推荐
龙哥·三年风水31 分钟前
群控系统服务端开发模式-应用开发-个人资料
分布式·php·群控系统
幺零九零零43 分钟前
【C++】socket套接字编程
linux·服务器·网络·c++
23zhgjx-NanKon1 小时前
华为eNSP:QinQ
网络·安全·华为
23zhgjx-NanKon1 小时前
华为eNSP:mux-vlan
网络·安全·华为
点点滴滴的记录1 小时前
RPC核心实现原理
网络·网络协议·rpc
昔我往昔2 小时前
阿里云文本内容安全处理
安全·阿里云·云计算
小林熬夜学编程2 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法
Lionhacker2 小时前
网络工程师这个行业可以一直干到退休吗?
网络·数据库·网络安全·黑客·黑客技术
程思扬3 小时前
为什么Uptime+Kuma本地部署与远程使用是网站监控新选择?
linux·服务器·网络·经验分享·后端·网络协议·1024程序员节
ZachOn1y3 小时前
计算机网络:运输层 —— 运输层概述
网络·tcp/ip·计算机网络·运输层