• 磁盘和文件系统管理(二)


    对于linux系统的使用者来说怎样正确的来进行系统的分区,怎样当初对系统评估不准确的话,那么一旦系统分区不够用了。那么不得不备份,删除相关数据。重要的时候被迫还得又一次规划分区并装系统来满足需求。今天我们来写一下怎样在linux下进行LVM逻辑卷的使用,让我们自由调整分区容量。

    一. LVM逻辑卷管理

    • 概述
    LVM:(逻辑卷管理Logical Volume Manager)就是能够自由调整分区大小  作用:动态调整磁盘容量。从而提高磁盘管理的灵活性
    须要注意:/boot分区用于存放引导文件,不能基于LVM创建
    图形界面:system-config-lvm
    • LVM的管理命令

    PV(Physical Volume,物理卷)

    整个硬盘。或使用fdisk等工具建立的普通分区
    包含很多默认4MB大小的PE(Physical Extent,基本单元)

    VG(Volume Group,卷组)

     一个或多个物理卷组合而成的总体

    LV(Logical Volume,逻辑卷)

     从卷组中切割出的一块空间,用于建立文件系统
    • LVM应用实例
    功能 物理卷管理 卷组管理 逻辑卷管理
    Scan 扫描 pvscan vgscan lvscan
    Create 建立 pvcreate vgcreate lvcreate
    Display 显示 pvdisplay vgdisplay lvdisplay
    Remove 删除 pvremove vgremove lvremove
    Extend 扩展 vgextend lvextend
    Reduce 降低 vgreducelvreduce

    首先我在系统上加入了两块硬盘 /dev/sdb /dev/dbc来为以下的LVM做准备,你也能够先进行fdisk工具分完区然后再做PV,此处我们直接拿新加入的硬盘来做PV

    1.物理卷【PV】的创建、删除.

    • 创建物理卷【pvcreate 设备名/设备名2….】
    [root@localhost ~]# pvcreate /dev/sdb /dev/sdc 
      Physical volume "/dev/sdb" successfully created
      Physical volume "/dev/sdc" successfully created
    [root@localhost ~]# pvscan   
      PV         VG       Fmt  Attr PSize   PFree  
      /dev/sda2  VolGroup lvm2 a--   49.51g      0 
      /dev/sdb            lvm2 a--  100.00g 100.00g
      /dev/sdc            lvm2 a--   50.00g  50.00g
    [root@localhost ~]# pvdisplay 
      --- Physical volume --- 
      "/dev/sdb" is a new physical volume of "100.00 GiB"
      --- NEW Physical volume ---
      PV Name               /dev/sdb
      VG Name               
      PV Size               100.00 GiB
      Allocatable           NO
      PE Size               0   
      Total PE              0
      Free PE               0
      Allocated PE          0
      PV UUID               su9PDS-jtXa-SKWH-n4Pf-TM0j-w8SW-swgd6d
    
      "/dev/sdc" is a new physical volume of "50.00 GiB"
      --- NEW Physical volume ---
      PV Name               /dev/sdc
      VG Name               
      PV Size               50.00 GiB
      Allocatable           NO
      PE Size               0   
      Total PE              0
      Free PE               0
      Allocated PE          0
      PV UUID               AASOe8-1yje-2rjn-O33d-0y27-PmIw-YoYCpF
    • 删除物理卷【pvremove 设备名/设备名2….】前提是以下没有分配VG
    [root@localhost ~]# pvremove /dev/sdc
      Labels on physical volume "/dev/sdc" successfully wiped
    [root@localhost ~]# pvs
      PV         VG       Fmt  Attr PSize   PFree 
      /dev/sdb   vg_new   lvm2 a--  100.00g 50.00g
    [root@localhost ~]# pvdisplay 
      --- Physical volume ---
      PV Name               /dev/sdb
      VG Name               vg_new
      PV Size               100.00 GiB / not usable 4.00 MiB
      Allocatable           yes 
      PE Size               4.00 MiB
      Total PE              25599
      Free PE               12799
      Allocated PE          12800
      PV UUID               su9PDS-jtXa-SKWH-n4Pf-TM0j-w8SW-swgd6d

    2.卷组【VG】创建、扩展、降低、删除、

    • 创建卷组【vgcreate 卷组名 物理卷名1 物理卷名2 】
    [root@localhost ~]# vgcreate vg_new /dev/sdb /dev/sdc
      Volume group "vg_new" successfully created
    [root@localhost ~]# vgscan
      Reading all physical volumes.  This may take a while...
      Found volume group "vg_new" using metadata type lvm2
      Found volume group "VolGroup" using metadata type lvm2
    [root@localhost ~]# vgdisplay 
      --- Volume group ---
      VG Name               vg_new
      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               149.99 GiB
      PE Size               4.00 MiB
      Total PE              38398
      Alloc PE / Size       0 / 0   
      Free  PE / Size       38398 / 149.99 GiB
      VG UUID               qZmTmm-g2fV-La4E-vzcN-yN9S-giyQ-eWra2G
    • 扩展卷组【vgextend 卷组名 物理卷名】
    [root@localhost ~]# vgs
      VG       #PV #LV #SN Attr   VSize  VFree 
      vg_new     1   0   0 wz--n- 50.00g 50.00g
    [root@localhost ~]# vgextend vg_new /dev/sdb
      Volume group "vg_new" successfully extended
    [root@localhost ~]# vgs
      VG       #PV #LV #SN Attr   VSize   VFree  
      vg_new     2   0   0 wz--n- 149.99g 149.99g
    [root@localhost ~]# vgdisplay 
      --- Volume group ---
      VG Name               vg_new
      System ID             
      Format                lvm2
      Metadata Areas        2
      Metadata Sequence No  2
      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               149.99 GiB
      PE Size               4.00 MiB
      Total PE              38398
      Alloc PE / Size       0 / 0   
      Free  PE / Size       38398 / 149.99 GiB
      VG UUID               31tIMa-ldzd-caOd-0lsl-tZnY-QN47-H6mYO9
    • 缩减卷组【vgreduce 卷组名 物理卷】
    [root@localhost ~]# vgreduce vg_new /dev/sdb
      Removed "/dev/sdb" from volume group "vg_new"
    [root@localhost ~]# vgs
      VG       #PV #LV #SN Attr   VSize  VFree 
      vg_new     1   0   0 wz--n- 50.00g 50.00g
    [root@localhost ~]# vgdisplay 
      --- Volume group ---
      VG Name               vg_new
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  3
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               50.00 GiB
      PE Size               4.00 MiB
      Total PE              12799
      Alloc PE / Size       0 / 0   
      Free  PE / Size       12799 / 50.00 GiB
      VG UUID               31tIMa-ldzd-caOd-0lsl-tZnY-QN47-H6mYO9
    • 删除卷组【vgremove 卷组名 】
    [root@localhost ~]# vgs
      VG       #PV #LV #SN Attr   VSize  VFree 
      VolGroup   1   2   0 wz--n- 49.51g     0 
      vg_new     1   0   0 wz--n- 50.00g 50.00g
    [root@localhost ~]# vgremove vg_new
      Volume group "vg_new" successfully removed

    3.逻辑卷【LV】创建、扩展、缩减、删除

    • 创建逻辑卷【lvcreate -L 大小 -n 逻辑卷名 卷组名 】
    [root@localhost ~]# lvcreate -L 50G -n lv_new vg_new
      Logical volume "lv_new" created
    [root@localhost ~]# lvscan
      ACTIVE            '/dev/vg_new/lv_new' [50.00 GiB] inherit
    [root@localhost ~]# lvdisplay 
      --- Logical volume ---
      LV Path                /dev/vg_new/lv_new
      LV Name                lv_new
      VG Name                vg_new
      LV UUID                wxH3Nn-GKXH-UrRX-Xotl-1bVi-GWUC-VQejzZ
      LV Write Access        read/write
      LV Creation host, time localhost, 2016-04-17 13:17:13 -0400
      LV Status              available
      # open                 0
      LV Size                50.00 GiB
      Current LE             12800
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
     - currently set to     256
      Block device           253:2  
    • 扩展逻辑卷【lvextend -L +大小 /dev/卷组名/逻辑卷名】
    [root@localhost ~]# lvs
      LV      VG       Attr      LSize  Pool Origin Data%  Move Log Cpy%Sync Convert                                  
      lv_new  vg_new    -wi-a---- 50.00g 
    [root@localhost ~]# lvextend -L +20G /dev/vg_new/lv_new 
      Extending logical volume lv_new to 70.00 GiB
      Logical volume lv_new successfully resized
    [root@localhost ~]# lvdisplay 
      --- Logical volume ---
      LV Path                /dev/vg_nw/lv_new
      LV Name                lv_new
      VG Name                vg_new
      LV UUID                1JAHRk-JShy-jsqE-IpOL-Bzbq-VGOS-0HhVtz
      LV Write Access        read/write
      LV Creation host, time localhost, 2016-04-17 13:56:42 -0400
      LV Status              available
      # open                 0
      LV Size                70.00 GiB
      Current LE             17920
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
     - currently set to     256
      Block device           253:2
    • 缩减逻辑卷空间【注意:必须按以下几步操作】

    1、 先卸载逻辑卷lv_new 【逻辑卷仅仅在挂载文件夹使用】

    [root@localhost ~]# df -Th
    Filesystem    Type    Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup-lv_root
                  ext4     45G  3.2G   40G   8% /
    tmpfs        tmpfs    491M     0  491M   0% /dev/shm
    /dev/sda1     ext4    485M   38M  423M   9% /boot
    /dev/mapper/vg_new-lv_new
                  ext4     69G  180M   66G   1% /date
    [root@localhost ~]# 
    [root@localhost ~]# 
    [root@localhost ~]# umount /date

    2、 然后通过e2fsck命令检測逻辑卷上空余的空间。

    [root@localhost ~]# e2fsck -f /dev/vg_new/lv_new 
    e2fsck 1.41.12 (17-May-2010)
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    /dev/vg_new/lv_new: 139/4587520 files (0.0% non-contiguous), 334336/18350080 blocks

    3、 使用resize2fs将文件系统降低到50G。

    [root@localhost ~]# resize2fs /dev/mapper/vg_new-lv_new 50G
    resize2fs 1.41.12 (17-May-2010)
    Resizing the filesystem on /dev/mapper/vg_new-lv_new to 13107200 (4k) blocks.
    The filesystem on /dev/mapper/vg_new-lv_new is now 13107200 blocks long.

    4、 再使用lvreduce命令将逻辑卷降低到50G。

    [root@localhost ~]# lvreduce -L 50G /dev/vg_new/lv_new 
      WARNING: Reducing active logical volume to 50.00 GiB
      THIS MAY DESTROY YOUR DATA (filesystem etc.)
    Do you really want to reduce lv_new?

    [y/n]: Y Reducing logical volume lv_new to 50.00 GiB Logical volume lv_new successfully resized [root@localhost ~]# mount /dev/vg_new/lv_new /date [root@localhost ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root ext4 45G 3.2G 40G 8% / tmpfs tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 ext4 485M 38M 423M 9% /boot /dev/mapper/vg_new-lv_new ext4 50G 182M 47G 1% /date

    注意:文件系统大小和逻辑卷大小一定要保持一致才行。假设逻辑卷大于文件系统,因为部分区域未格式化成文件系统会造成空间的浪费。假设逻辑卷小于文件系统,哪数据就出问题了

    • 删除逻辑卷【lvremove /dev/vg_new/lv_new】
    [root@localhost ~]# lvs
      LV      VG       Attr      LSize  Pool Origin Data%  Move Log Cpy%Sync Convert                               
      lv_new  vg_new    -wi-a---- 50.00g                                             
    [root@localhost ~]# lvremove /dev/vg_new/lv_new 
    Do you really want to remove active logical volume lv_new? [y/n]: Y
      Logical volume "lv_new" successfully removed

    假设某一个块物理磁盘或者分区故障了,怎样将数据转移到其它卷组空间中。
    1、通过pvmove命令转移空间数据

    [root@localhost ~]# pvs
      PV         VG       Fmt  Attr PSize   PFree  
      /dev/sda2  VolGroup lvm2 a--   49.51g      0 
      /dev/sdb   vg0      lvm2 a--  100.00g 100.00g
      /dev/sdc   vg0      lvm2 a--   50.00g  50.00g
    [root@localhost ~]# pvmove /dev/sdb /dev/sdc

    2、通过vgreduce命令将即将坏的磁盘或者分区从卷组vgdata里面移除除去。

    [root@localhost ~]# vgreduce lv_new /dev/sdb
    

    3、通过pvremove命令将即将坏的磁盘或者分区从系统中删除掉。

    [root@localhost ~]# pvremove /dev/sdb

    4、手工拆除硬盘或者通过一些工具修复分区。

    二.设置磁盘配额

    • 实现磁盘限额的条件
     1.须要Linux内核支持
     2.安装quota软件包
    • Linux磁盘限额的特点
    作用范围:针对指定的文件系统(分区)
    限制对象:用户帐号、组帐号 
    限制类型:
         磁盘容量(默认单位为KB)
         文件数量
    限制方法:
         软限制:一个用户在一定时间范围内(默觉得一周。能够使用命令“edquota -t”又一次设置,时间单位能够为天、小时、分 钟、秒)超过其限制的额度,在不超出硬限制的范围内能够继续使用空间。系统会发出警告(警告信息设置文件为“/etc/warnquota.conf”)。但假设用户达到时间期限仍未释放空间到限制的额度下,系统将不再同意该用户使用很多其它的空间。
         硬限制:一个用户可拥有的磁盘空间或文件的绝对数量,绝对不同意超过这个限制。
    • 启用文件系统的配额支持
     加入usrquota、grpquota挂载參数 
    • 检測磁盘配额并创建配额文件

      使用quotacheck命令创建配额文件
      quotacheck -ugcv 文件系统
      quotacheck -augcv

    -u、-g:检測用户、组配额
     -c:创建配额数据文件
     -v:显示运行过程信息
     -a:检測全部可用的分区
    • 编辑用户和组帐号的配额设置
     使用edquota命令编辑配额设置
      edquota -u username
      edquota -g 组名
    • 启用、关闭文件系统的配额功能
     使用quotaon、quotaoff命令
    • 验证磁盘配额功能
    必须切换到设置配额的分区(挂载文件夹)
     创建指定数量的文件:使用touch命令。或cp命令
     创建指定容量的文件:使用dd命令。或cp命令
    • 查看配额使用情况
     側重用户、组帐号角度:使用quota命令
        quota -u username
        quota -g 组名
     側重文件系统角度:使用repquota

    1. 练习步骤:

    • 创建用户hunter。并设置为此用户进行磁盘配额
    [root@localhost ~]# useradd hunter
    [root@localhost ~]# passwd hunter
    Changing password for user hunter.
    New password: 
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    • 创建一个逻辑分区。对此分区设置配额。
    [root@localhost ~]# fdisk /dev/sdb
    
    WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
             switch off the mode (command 'c') and change display units to
             sectors (command 'u').
    
    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    e
    Partition number (1-4): 4
    First cylinder (1-13054, default 1): 
    Using default value 1
    Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054): 
    Using default value 13054
    
    Command (m for help): 
    Command (m for help): p
    
    Disk /dev/sdb: 107.4 GB, 107374182400 bytes
    255 heads, 63 sectors/track, 13054 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0xb8d88355
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb4               1       13054   104856223+   5  Extended
    
    Command (m for help): n
    Command action
       l   logical (5 or over)
       p   primary partition (1-4)
    l
    First cylinder (1-13054, default 1): 
    Using default value 1
    Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054): 
    Using default value 13054
    
    Command (m for help): p
    
    Disk /dev/sdb: 107.4 GB, 107374182400 bytes
    255 heads, 63 sectors/track, 13054 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0xb8d88355
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb4               1       13054   104856223+   5  Extended
    /dev/sdb5               1       13054   104856192   83  Linux
    
    Command (m for help): w
    [root@localhost ~]# ls /dev/sdb*
    /dev/sdb  /dev/sdb4  /dev/sdb5
    [root@localhost ~]# partx -a /dev/sdb
    sdb   sdb4  sdb5  
    [root@localhost ~]# partx -a /dev/sdb
    BLKPG: Device or resource busy
    error adding partition 4
    BLKPG: Device or resource busy
    error adding partition 5
    [root@localhost ~]# ls /dev/sdb*
    /dev/sdb  /dev/sdb4  /dev/sdb5
    • 创建挂载点,并格式化分区和文件系统
    [root@localhost ~]# mkdir /quota
    [root@localhost ~]# mkfs.ext4 /dev/sdb5
    mke2fs 1.41.12 (17-May-2010)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    6553600 inodes, 26214048 blocks
    1310702 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=4294967296
    800 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872
    
    Writing inode tables: done                            
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done
    
    This filesystem will be automatically checked every 25 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.

    改动配置文件。设置挂载位置永久生效。

    [root@localhost date]# df -Th
    Filesystem    Type    Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup-lv_root
                  ext4     45G  3.2G   40G   8% /
    tmpfs        tmpfs    491M     0  491M   0% /dev/shm
    /dev/sda1     ext4    485M   38M  423M   9% /boot
    /dev/sdb5     ext4     99G  188M   94G   1% /quota
    [root@localhost date]# vim /etc/fstab 
    
    
    #
    # /etc/fstab
    # Created by anaconda on Mon Jun 15 08:16:31 2015
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    /dev/mapper/VolGroup-lv_root /                       ext4    defaults        1 1
    UUID=1773339b-7194-409d-872d-6a850058e748 /boot                   ext4    defaults        1 2
    /dev/mapper/VolGroup-lv_swap swap                    swap    defaults        0 0
    tmpfs                   /dev/shm                tmpfs   defaults        0 0
    devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
    sysfs                   /sys                    sysfs   defaults        0 0
    proc                    /proc                   proc    defaults        0 0
    [root@localhost date]# mount -a 
    [root@localhost date]# df -TH
    Filesystem    Type     Size   Used  Avail Use% Mounted on
    /dev/mapper/VolGroup-lv_root
                  ext4      49G   3.5G    43G   8% /
    tmpfs        tmpfs     515M      0   515M   0% /dev/shm
    /dev/sda1     ext4     508M    39M   443M   9% /boot
    /dev/sdb5     ext4     106G   197M   101G   1% /quota
    • 使用quotacheck命令生成配置磁盘配置的数据库文件。假设出现以下权限不够的情况,通过setenforce 0暂时关掉selinux就能够了,quotacheck运行成功能够看到/quota/以下多了两个文件。然后通过quotaon /quota/启动相应文件系统上的磁盘配额功能。
    [root@localhost date]# quotacheck -cug /quota
    quotacheck: Cannot create new quotafile /quota/aquota.user.new: Permission denied
    quotacheck: Cannot initialize IO on new quotafile: Permission denied
    quotacheck: Cannot create new quotafile /quota/aquota.group.new: Permission denied
    quotacheck: Cannot initialize IO on new quotafile: Permission denied
    [root@localhost date]# setenforce 0  ---> 将selinux进行关闭
    [root@localhost date]# quotacheck -cug /quota
    [root@localhost date]# ls -ltr 
    total 0
    [root@localhost date]# ls -ltr /quota
    total 32
    drwx------. 2 root root 16384 Apr 17 16:39 lost+found
    -rw-------. 1 root root  6144 Apr 17 18:46 aquota.user
    -rw-------. 1 root root  6144 Apr 17 18:46 aquota.group
    • 通过edquota -u hunter配置用户hunter对这个磁盘分区的使用配额。还能够通过edquota -g groupname 对groupname这个组设定配额
    [root@localhost date]# edquota -u hunter 
    
    Disk quotas for user hunter (uid 501):
      Filesystem                   blocks       soft       hard     inodes     soft     hard
      /dev/sdb5                         2      10240       20480          2        5       10
    
    Filesystem 文件系统
    
    blocks 已经使用的块数(块的单位为1K)
    
        soft 块数软限制。0表示禁用
    
        hard 块数硬限制,0表示禁用
    
        inodes 已经创建的文件个数,假设后面有*表示已经超出软限制
    
        soft 创建的文件个数的软限制,0表示禁用
    
        hard 创建的文件个数的硬限制,0表示禁用
    
        edquota -p user1 user2 把user1用户的设定复制给user2用户
    
    这里对hunter这个用对该分区磁盘的容量软限制为10M,硬限制为20M(即使该分区有50M的空间),对文件个数的软限制为5个,硬限制为10个。
    
    以下进行測试。測试之前要给hunter这个用户对/quota文件夹写权限。
    

    进入实战測试,看刚才我给hunter用户做的磁盘限额是否生效

    [root@localhost date]# su - hunter        #切换到hunter用户
    [hunter@localhost ~]$ cd /quota/
    [hunter@localhost quota]$ touch user{1..5}  #创建5个空文件
    [hunter@localhost quota]$ ls -ltr 
    total 32
    drwx------. 2 root   root   16384 Apr 17 16:39 lost+found
    -rw-------. 1 root   root    7168 Apr 17 19:59 aquota.user
    -rw-rw-r--. 1 hunter hunter     0 Apr 17 20:06 user5
    -rw-rw-r--. 1 hunter hunter     0 Apr 17 20:06 user4
    -rw-rw-r--. 1 hunter hunter     0 Apr 17 20:06 user3
    -rw-rw-r--. 1 hunter hunter     0 Apr 17 20:06 user2
    -rw-rw-r--. 1 hunter hunter     0 Apr 17 20:06 user1
    -rw-------. 1 root   root    7168 Apr 17 20:06 aquota.group
    [hunter@localhost quota]$ touch user6   #此处触发了软限制
    sdb5: warning, user file quota exceeded.
    [hunter@localhost quota]$ ls 
    aquota.group  aquota.user  lost+found  use6  user1  user2  user3  user4  user5
    [hunter@localhost quota]$ touch user{7..15} #此处真正到了硬限制
    sdb5: write failed, user file limit reached.
    touch: cannot touch `user11': Disk quota exceeded
    touch: cannot touch `user12': Disk quota exceeded
    touch: cannot touch `user13': Disk quota exceeded
    touch: cannot touch `user14': Disk quota exceeded
    touch: cannot touch `user15': Disk quota exceeded
    [hunter@localhost quota]$ rm -rf user*  #删除之后我们再来试验一下容量的限制
    [hunter@localhost quota]$ ls -ltr 
    total 32
    drwx------. 2 root   root   16384 Apr 17 16:39 lost+found
    -rw-------. 1 root   root    7168 Apr 17 19:59 aquota.user
    -rw-------. 1 root   root    7168 Apr 17 20:06 aquota.group
    [hunter@localhost quota]$ dd if=/dev/zero of=text.txt bs=1M count=11
    sdb5: warning, user block quota exceeded.  #此处已经触发了容量10M的软限制。只是还能进行写入
    11+0 records in
    11+0 records out
    11534336 bytes (12 MB) copied, 0.373587 s, 30.9 MB/s
    hunter@localhost quota]$ dd if=/dev/zero of=text.txt bs=1M count=21  
    sdb5: warning, user block quota exceeded.#此处已经触发了20M的硬限制。现已经写不进去了,看来做的对用户的磁盘限额没有问题。

    sdb5: write failed, user block limit reached. dd: writing `text.txt': Disk quota exceeded 21+0 records in 20+0 records out 20971520 bytes (21 MB) copied, 0.351462 s, 59.7 MB/s

    • 切换root用户使用repquota -a来查看当前各磁盘配额的使用情况。从下图能够看出hunter用户已经达到了磁盘使用的最大容量限制
    [root@localhost date]# repquota -a 
    *** Report for user quotas on device /dev/sdb5
    Block grace time: 7days; Inode grace time: 7days
                            Block limits                File limits
    User            used    soft    hard  grace    used  soft  hard  grace
    ----------------------------------------------------------------------
    root      --      20       0       0              2     0     0       
    hunter    +-   11264   10240   20480  6days       1     5    10       

    须要注意的是,当用户触发软限制时。grace time就会倒计时。在这个时间(默认是7天)没有耗尽之前,若用户还不清理磁盘使之符合软限制的要求,则软限制就会变成硬限制。这个时间叫宽限期。能够通过edquota -t设置这个时间,分别设置容量和文件数量的宽限期。

    [root@localhost date]# edquota -t
    
    Grace period before enforcing soft limits for users:
    Time units may be: days, hours, minutes, or seconds
      Filesystem             Block grace period     Inode grace period
      /dev/sdb5                     7days                  7days

    对于LVM逻辑卷和磁盘配额还是比較重要的。请各位大神多多不吝赐教!!


    给大家推荐一个能够将EXCEL表格转化成HTML格式的在线网址:http://pressbin.com/tools/excel_to_html_table/index.html

  • 相关阅读:
    python 利用条件运算符:学习成绩>=90分用A表示,60-89分之间的用B表示,60分以下的用C表示。
    【原创】jmeter解决接口参数MD5加密的问题
    【原创】python+selenium+ddt+unittest实现web功能自动化测试
    【原创】基于RBI的性能测试理念,通过jmeter快速定位接口最大并发用户数
    【原创】基于pyautogui库进行自动化测试
    【原创】面向对象版本地CPU资源占用监控脚本
    【原创】相对完整的一套以Jmeter作为工具的性能测试教程(接口性能测试,数据库性能测试以及服务器端性能监测)
    【部分原创】python实现视频内的face swap(换脸)
    【原创】python基于大数据现实双色球预测
    【原创】python爬虫获取网站数据并存入本地数据库
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/7358940.html
Copyright © 2020-2023  润新知