Linux--LVM与用户磁盘配额


前言

LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制
每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精评估LVM和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该分区以后可能需要的容量的最大值。因为如果估 计不准确,当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区。
虽然有很多动态调整磁盘的工具可以使用,例如Partition Magic等等,但是它并不能完全解决问题,因为某个分区可能会再次被耗尽;另外一个方面这需要 重新引导系统才能实现,对于很多关键的服务器,停机是不可接受的,而且对于添加新硬盘,希望一个能跨越多个硬盘驱动器的文件系统时,分区调整程序就不能解 决问题。
因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。幸运的是Linux提供的逻辑盘卷管理(LVM,Logical Volume Manager)机制就是一个完美的解决方案。

一:LVM概述
  • 在安装CentOS 系统的过程中选择自动分区,就会默认采用LVM分区方案。不需要再进行手动配置
  • 动态调整磁盘容量,从而提高磁盘管理的灵活性
  • PS:“/boot”分区用于存放引导文件,不能基于LVM创建,必须独立出来
  • 图形化管理界面:system-config

mark

1.1:PV(Physical Volume,物理卷)

mark

1)物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。
2)创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(Physical Extent,PE),从而构成物理卷
3)物理卷一般直接使用设备文件名称,如/dev/sdb1 , /dev/sdb1, /dev/sdd等
4)对于转换成物理卷的普通分区,建议先使用fdisk工具将分区类型的ID标记号改为“8e”(8e表示LVM逻辑卷),若是整块硬盘,可以将所有磁盘空间划分为一个主分区后再做相对应调整

1.2:VG(Volume Group,卷组)

mark

  • 卷组:由一个或多个物理卷组成一个整体
  • 在卷组中可以动态的添加或移除物理卷
  • 许多个物理卷可以分别组成不同的卷组,卷组的名称由用户自定义
1.3:LV(Logical Volume,逻辑卷)

mark

  • 逻辑卷建立在卷组之上,与物理卷没有直接关系
  • 对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷
  • 使用mkfs等工具在逻辑卷上创建文件系统以后,就可以挂载到Linux系统中的目录下使用
1.4:建立LVM分区管理机制的过程

mark

二:管理LVM
  • LVM管理命令主要包括三大类

    PV物理卷管理

    VG卷组管理

    LV逻辑卷管理

  • 对应的命令程序文件分别以“PV”“VG”“LV”开头

功能物理卷管理(PV)卷组管理(VG)逻辑卷管理(LV)
Scan(显示概要信息)pvscanvgscanlvscan
Create(建立)pvcreatevgcreatelvcreate
Display(显示详细信息)pvdisplayvgdisplaylvdisplay
Remove(删除)pvremovevgremovelvremove
Extend(扩展)---------------vgextendlvextend
Reduce(减少)---------------vgreducelvreduce

几个主要命令的格式

pvcreate 设备名1 [设备名2 ... ...]
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名
#环境
[root@lpf lpf]# yum install -y lvm2
#添加三个1G的磁盘查看
[root@lpf ~]# fdisk -l

磁盘 /dev/sdb:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sda:322.1 GB, 322122547200 字节,629145600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000d8ce0

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    10227711     4064256   82  Linux swap / Solaris
/dev/sda3        10227712   629145599   309458944   83  Linux

磁盘 /dev/sdc:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/sdd:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

2.1:PV物理卷管理
2.1.1:pvcreate命令
  • pvcreate用于将分区或整个硬盘转换为物理卷,主要是添加LVM属性并划分PE存储单元
  • 该命令需要使用硬盘或分区的设备文件作为参数
[root@lpf ~]# pvcreate /dev/sdb /dev/sdc /dev/sdd
[root@lpf ~]# pvdisplay
2.1.2:pvscan命令
  • pvscan命令用于扫描系统中的所有物理卷,并输出相关信息。
例如
[root@lpf ~]# pvscan
  PV /dev/sdd1                      lvm2 [5.00 GiB]
  Total: 3 [44.99 GiB] / in use: 2 [39.99 GiB] / in no VG: 1 [5.00 GiB]
2.1.3:pvdisplay命令
  • pvdisplay命令用于显示物理卷的详细信息
  • 需要使用指定的物理卷作为命令参数,默认时将显示所有物理卷信息
[root@lpf ~]# pvdisplay
  "/dev/sdc" is a new physical volume of "1.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc
  VG Name               
  PV Size               1.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               p3jwJv-j3Ll-imeP-wTOr-L4LY-ro8B-0v1lf2
2.1.4:pvremove命令
  • pvremove命令用于将物理卷还原成普通分区或磁盘,不再用于LVM体系
  • 被移除的物理卷将无法被pvscan命令识别
例如
[root@lpf ~]# pvremove /dev/sd[b-c]1
Labels on physical volume "/dev/sdb1" successfully wiped.
Labels on physical volume "/dev/sdc1" successfully wiped.
[root@lpf ~]# pvscan
No matching physical volumes found
2.2:VG卷组管理
2.2.1:vgcreate命令
  • vgcreate命令用于将一个或多个物理卷创建为一个卷组
  • 第一个命令参数用于设置新卷组的名称。然后依次指定需要加入到该卷组的物理卷作为参数

vgcreate命令基本格式
root@localhost ~]# vgcreate 卷组名称 物理卷

[root@lpf ~]# vgcreate vg01 /dev/sdb /dev/sdc 
  Volume group "vg01" successfully created
2.2.2:vgscan命令
  • vgscan命令用于扫描系统中已建立的LVM卷组及相关信息
[root@lpf ~]# vgscan
  Reading volume groups from cache.
  Found volume group "vg01" using metadata type lvm2
2.2.3:vgdisplay命令
  • vgdisplay命令用于显示系统中各卷组的详细信息

  • 需要指定卷组名称作为命令参数(未指定卷组名称时将显示所有卷组的信息)

  • 命令格式同pvdisplay

    [root@lpf ~]# vgcreate vg01 /dev/sdb /dev/sdc 
      Volume group "vg01" successfully created
    [root@lpf ~]# vgdisplay 
      --- Volume group ---
      VG Name               vg01
      System ID             
      Format                lvm2
      Metadata Areas        2
      Metadata Sequence No  1
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                2
      Act PV                2
      VG Size               1.99 GiB
      PE Size               4.00 MiB
      Total PE              510
      Alloc PE / Size       0 / 0   
      Free  PE / Size       510 / 1.99 GiB
      VG UUID               ONr2Nh-e4lW-uT4w-RuDq-NDQQ-jQu3-2I1KGh
    
    2.2.4:vgremove命令
    • vgremove命令用于删除指定的卷组,指定卷组名称作为参数即可
    • 删除时应确保该卷组中没有正在使用的逻辑卷
例如
[root@localhost ~]# vgremove 123
  Volume group "123" successfully removed
2.2.5:vgextend命令
  • vgextend命令用于扩展卷组的磁盘空间
  • 当建立了新的物理卷,并需要将其添加到已有的卷组中时,就可以使用vgextend命令
  • vgextend命令第一个参数为需要扩展容量的卷组名称,其后为需要添加到该卷组中的各物理卷
例如
[root@localhost ~]# vgextend 123 /dev/sdd1
  Volume group "123" successfully extended
2.2.6:vgreduce命令
  • vgreduce命令:从卷组中删除物理卷
  • vgreduce指令通过删除LVM卷组中的物理卷来减少卷组容量。
  • 删除删除卷组中丢失的物理卷,使卷组恢复正常状态
vgreduce命令格式
vgreduce [选项] [参数] 
例如
[root@localhost ~]# vgreduce 123 /dev/sdd1
  Removed "/dev/sdd1" from volume group "123"
2.3:LV逻辑卷管理
2.3.1:lvcreate命令

lvcreate命令用于从指定的卷组中分割空间,以创建新的逻辑卷

需要指定逻辑卷大小,名称和所在的卷组名称作为参数

逻辑卷创建好以后,可以通过“/dev/卷组名/逻辑卷名”形式的设备文件进行访问(或/dev/mapper/卷组名-逻辑卷名)

lvcreate命令基本格式
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
[root@lpf ~]# lvcreate -n lv01 -L 500M vg01
  Logical volume "lv01" created.
[root@lpf ~]# mkfs.ext4 /dev/vg01/lv01
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
128016 inodes, 512000 blocks
25600 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=34078720
63 block groups
8192 blocks per group, 8192 fragments per group
2032 inodes per group
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
2.3.2:lvscan命令
  • lvscan命令用于扫描系统中已建立的逻辑卷及相关信息
例如
[root@localhost ~]# lvscan
  ACTIVE            '/dev/123/111' [10.00 GiB] inherit
2.3.3:lvdisplay命令
  • lvdisplay命令用于显示逻辑卷的详细信息

  • 需要指定逻辑卷的设备文件作为参数,也可以使用卷组名作为参数(显示该卷组中的所有逻辑卷信息)

  • 不指定参数则显示所有,同pvdisplay和vgdisplay

    • [root@lpf vg01]# lvdisplay
        --- Logical volume ---
        LV Path                /dev/vg01/lv01
        LV Name                lv01
        VG Name                vg01
        LV UUID                h1ADEP-nG02-sKUZ-7nxF-1n49-FWbk-54SQXT
        LV Write Access        read/write
        LV Creation host, time lpf, 2020-06-16 12:16:21 +0800
        LV Status              available
      
      open                 1
      
        LV Size                500.00 MiB
        Current LE             125
        Segments               1
        Allocation             inherit
        Read ahead sectors     auto
      
        - currently set to     8192
          Block device           253:0
      
      2.3.4:lvextend命令

      lvextend命令用于动态扩展逻辑卷的空间,当目前使用的逻辑卷空间不足时,可以从所在卷组中分割额外的空间进行扩展

      需要指定增加的容量大小和逻辑卷文件位置

      前提是该卷组中还有尚未分配的磁盘空间,否则需要先扩展卷组容量

      挂载文件系统后扩容,需要执行以下命令才能被系统识别xfs格式的扩容需要输入这条命令

      xfs格式的扩容需要输入这条命令
      xfs_growfs /dev/卷组名/逻辑卷名
      
      ext 4 格式的扩容需要输入这条命令
      resize2fs /dev/卷组名/逻辑卷名
      
      • xfs 只支持扩容,不支持减少
      • ext 4 的更新形式。可以reduce
lvextend命令基本格式
lvextend -L +大小 /dev/卷组名/逻辑卷名
例
root@lpf vg01]# lvextend -L +500M /dev/vg01/lv01
  Size of logical volume vg01/lv01 changed from 500.00 MiB (125 extents) to 1000.00 MiB (250 extents).
  Logical volume vg01/lv01 successfully resized.
[root@lpf vg01]# resize2fs /dev/vg01/lv01
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg01/lv01 is mounted on /mnt; on-line resizing required
old_desc_blocks = 4, new_desc_blocks = 8
The filesystem on /dev/vg01/lv01 is now 1024000 blocks long.
2.3.5:lvremove命令
  • lvremove命令用于删除指定的逻辑卷
  • 直接使用逻辑卷的设备文件作为参数即可
[root@lpf ~]# umount /mnt
[root@lpf ~]# lvremove /dev/vg01/lv01
Do you really want to remove active logical volume vg01/lv01? [y/n]: y
  Logical volume "lv01" successfully removed
2.3.6:lvreduce命令
  • lvreduce命令用于减少LVM逻辑卷占用的空间大小。
  • 使用lvreduce命令收缩逻辑卷的空间大小有可能会删除逻辑卷上已有的数据,所以在操作前必须进行确认。
[root@lpf /]# lvreduce -L 500M /dev/vg01/lv01
  WARNING: Reducing active and open logical volume to 500.00 MiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg01/lv01? [y/n]: y
  Size of logical volume vg01/lv01 changed from 1000.00 MiB (250 extents) to 500.00 MiB (125 extents).
  Logical volume vg01/lv01 successfully resized.
[root@lpf /]# resize2fs /dev/vg01/lv01
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg01/lv01 is mounted on /mnt; on-line resizing required
resize2fs: On-line shrinking not supported
三:LVM应用步骤
  • xfs 只支持扩容,不支持减少
  • ext 4 的更新形式。可以reduce

mark

3.1:命令实操的演示

VMware软件中,在centos 7系统中添加三块磁盘,我们开始实操。

#查看磁盘是否添加成功
[root@lpf ~]# fdisk -l

磁盘 /dev/sdb:1073 MB, 1073741824 字节,2097152 个扇区      #新添加
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sda:322.1 GB, 322122547200 字节,629145600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000d8ce0

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    10227711     4064256   82  Linux swap / Solaris
/dev/sda3        10227712   629145599   309458944   83  Linux

磁盘 /dev/sdc:1073 MB, 1073741824 字节,2097152 个扇区          #新添加
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/sdd:1073 MB, 1073741824 字节,2097152 个扇区          #新添加
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
#创建物理卷
[root@lpf ~]# pvcreate /dev/sdb /dev/sdc /dev/sdd
  Physical volume "/dev/sdb" successfully created.
  Physical volume "/dev/sdc" successfully created.
  Physical volume "/dev/sdd" successfully created.
  
#创建卷组
[root@lpf ~]# vgcreate vg01 /dev/sdb /dev/sdc 
  Volume group "vg01" successfully created
[root@lpf ~]# vgdisplay 
  --- Volume group ---
  VG Name               vg01
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               1.99 GiB
  PE Size               4.00 MiB
  Total PE              510
  Alloc PE / Size       0 / 0   
  Free  PE / Size       510 / 1.99 GiB
  VG UUID               ONr2Nh-e4lW-uT4w-RuDq-NDQQ-jQu3-2I1KGh
#创建逻辑卷并初始化
[root@lpf ~]# lvcreate -n lv01 -L 500M vg01
  Logical volume "lv01" created.
[root@lpf ~]# mkfs.ext4 /dev/vg01/lv01
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
128016 inodes, 512000 blocks
25600 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=34078720
63 block groups
8192 blocks per group, 8192 fragments per group
2032 inodes per group
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 
# 创建挂载点,设置自动挂载
[root@lpf ~ ]# vim /etc/fstab   #设置永久挂载
/dev/vg01/lv01          /mnt                    ext4    defaults        0 0
[root@lpf ~ ]# mount -a         #一般没问题,不会报出相关提示
[root@lpf vg01]# df -Th         #查看挂载是否成功
文件系统              类型      容量  已用  可用 已用% 挂载点
/dev/sda3             xfs       295G  5.7G  290G    2% /
devtmpfs              devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                 tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                 tmpfs     1.9G   13M  1.9G    1% /run
tmpfs                 tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1             xfs      1014M  174M  841M   18% /boot
tmpfs                 tmpfs     378M   12K  378M    1% /run/user/42
tmpfs                 tmpfs     378M     0  378M    0% /run/user/0
/dev/mapper/vg01-lv01 ext4      477M  2.3M  445M    1% /mnt
#逻辑卷扩容
[root@lpf vg01]# lvextend -L +500M /dev/vg01/lv01             #扩容
  Size of logical volume vg01/lv01 changed from 500.00 MiB (125 extents) to 1000.00 MiB (250 extents).
  Logical volume vg01/lv01 successfully resized.
[root@lpf vg01]# resize2fs /dev/vg01/lv01                     #初始化
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg01/lv01 is mounted on /mnt; on-line resizing required
old_desc_blocks = 4, new_desc_blocks = 8
The filesystem on /dev/vg01/lv01 is now 1024000 blocks long.
#逻辑卷缩容;慎用
[root@lpf /]# lvreduce -L 500M /dev/vg01/lv01
  WARNING: Reducing active and open logical volume to 500.00 MiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg01/lv01? [y/n]: y
  Size of logical volume vg01/lv01 changed from 1000.00 MiB (250 extents) to 500.00 MiB (125 extents).
  Logical volume vg01/lv01 successfully resized.

如果缩容宕机,要推倒重来(lv 删了重来)

[root@lpf ~]# umount /mnt                          #要先解除挂载才能删

[root@lpf ~]# lvremove /dev/vg01/lv01              #删除lv01
Do you really want to remove active logical volume vg01/lv01? [y/n]: y
  Logical volume "lv01" successfully removed

[root@lpf ~]# lvcreate -n lv01 -L 500 vg01          #重新创建lv01逻辑卷
WARNING: ext4 signature detected on /dev/vg01/lv01 at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/vg01/lv01.
  Logical volume "lv01" created.

[root@lpf ~]# mkfs.ext4 /dev/vg01/lv01               #创建文件系统,指定ext4

[root@lpf ~]# mount /dev/vg01/lv01 /mnt              #挂载到/mnt下  

[root@lpf ~]# df -h
文件系统               容量  已用  可用 已用% 挂载点
/dev/mapper/vg01-lv01  477M  2.3M  445M    1% /mnt
注意如果使用xfs_growfs命令使Linux系统重新识别文件系统大小
[root@localhost 1]# xfs_growfs /dev/mail_stor/mbox

四:磁盘配额

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。
磁盘配额可以限制指定账户能够使用的磁盘空间,这样可以避免因某个用户的过度使用磁盘空间造成其他用户无法正常工作甚至影响系统运行。在服务器管理中此功能非常重要,但对单机用户来说意义不大。

3.1:磁盘配额概述
3.1.1:实现磁盘限额的条件

需要Linux内核支持
安装xfsprogs与quota软件包
quota软件包在7.0版本自动加入到xfsprogs,所以只需要安装xfsprogs就可以。

3.1.2:Linux磁盘限额的特点

作用范围:针对指定的文件系统(分区)

限制对象:用户账号,组账号

限制类型:磁盘容量,文件数量

限制方法:软限制,硬限制

软限制:可以超出限制,但是有时限期,如时限7天,超出时间就将多余的删除

软限制 小于等于 硬限制

3.1.3:磁盘配额步骤

临时设置(大部分都是通过命令实现),永久设置(都是通过源码文件中配置)

大部分命令设置都是临时生效,重启失效

配置文件是永久生效

编辑用户和组账号的配额设置:组的配额是固定的,
mark

3.1.4:启动磁盘配额支持
  • 添加usrquota,grpquota挂载参数

  • 临时设置需要加上 -o 参数

  • 开启磁盘配额选项

 mount -o remount,usrquota,grpquota /dev/vg01/lv01 
  [root@lpf  ~ ]# mount
  /dev/mapper/vg01-lv01 on /mnt type ext4 (rw,usrquota,grpquota)    #usrquota,grpquota   必须有这个才能开启磁盘配额功能
3.2:磁盘配额命令实操
  • mount 查看挂载信息
  • rpm -q 查看quota是否安装
[root@lpf ~]# yum -y install quota

[root@lpf ~]# lvcreate -n lv02 -L 500M vg01                     #创建LV02逻辑卷
  Logical volume "lv02" created.
[root@lpf ~]# mkfs.ext4 /dev/vg01/lv02                          #格式化并创建文件系统
[root@lpf ~]# mount -o usrquota,grpquota  /dev/vg01/lv02  /opt  #启用用户限额,启用用户组限额#挂载点/opt 

[root@lpf ~]# mount                                             # 查看挂载情况

/dev/mapper/vg01-lv02 on /opt type ext4 (rw,relatime,seclabel,quota,usrquota,grpquota,data=ordered)                           #usrquota,grpquota   必须有这个才能开启磁盘配额功能

[root@lpf ~]quotaon  /opt                                       # 开启磁盘配额功能

[root@lpf opt]# quotaon -p /opt                                 #查看磁盘配额有没有开启

group quota on /opt (/dev/mapper/vg01-lv02) is on
user quota on /opt (/dev/mapper/vg01-lv02) is on

[root@lpf ~]# useradd tom                                       #创建用户测试
[root@lpf ~]# passwd tom

[root@lpf opt]# edquota -u tom

Disk quotas for user tom (uid 1001):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/mapper/vg01-lv02         0      10000      10240          0        5        6

注:

文件系统(filesystem)		   说明该限制值是针对哪个文件系统(或分区);
磁盘容量(blocks)			    此列的数值是 quota 自己算出来的,单位为 Kbytes,不要手动修改;
磁盘容量的软限制(soft)		当用户使用的磁盘空间超过此限制值,则用户在登陆时会收到警告信息,告知用户磁盘已满,单位为 KB;
磁盘容量的硬限制(hard)		要求用户使用的磁盘空间最大不能超过此限制值,单位为 KB;
文件数量(inodes)			    同 blocks 一样,此项也是 quota自己计算出来的,无需手动修改;
文件数量的软限制(soft)		当用户拥有的文件数量超过此值,系统会发出警告信息;
文件数量的硬限制(hard)		用户拥有的文件数量不能超过此值。

[root@localhost opt]# chmod 777 /opt                    

[tom@lpf opt]$  dd if=/dev/zero of=/opt/tom1 bs=1k count=10000
dm-1: warning, user block quota exceeded.
记录了10000+0 的读入
记录了10000+0 的写出
10240000字节(10 MB)已复制,0.0289988 秒,353 MB/秒
[tom@lpf opt]$ dd if=/dev/zero of=/opt/tom2 bs=1k count=240
dm-1: write failed, user block limit reached.
dd: 写入"/opt/tom2" 出错: 超出磁盘限额                        #超出允许使用的磁盘限额10M

[tom@lpf opt]$ quota                                              #查看用户磁盘限额
Disk quotas for user tom (uid 1001): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
/dev/mapper/vg01-lv02
                  10240*  10000   10240   6days       2       5       6 

[tom@lpf opt]$ dd if=/dev/zero of=/opt/tom3 bs=1k count=240
dd: 打开"/opt/tom3" 失败: 超出磁盘限额                              #不允许创建第三个文件

[root@lpf opt]# repquota -a                                      #查看所有用户磁盘配额情况
*** Report for user quotas on device /dev/mapper/vg01-lv02
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits

User            used    soft    hard  grace    used  soft  hard  grace

root      --      13       0       0              2     0     0       
tom       +-   10240   10000   10240  6days       2     5     6  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值