LVM與磁盤配額

v

Linux磁盤管理之LVM邏輯卷認識與管理詳解

前言

本文接着上篇文章作如下延伸:
鏈接:Linux磁盤管理之磁盤管理與文件系統

  1. 什麼是LVM?爲什麼需要LVM?
  2. 如何具體進行LVM邏輯卷管理?
  3. 什麼是磁盤配額?爲什麼需要磁盤配額?
  4. 在Linux中進行磁盤配額的條件是什麼呢?
  5. 如何具體進行磁盤配額?

下面對以上問題逐一講解,深入實例進行操作,帶你深入理解linux磁盤管理之LVM邏輯卷管理。

一、LVM概述

1.什麼是LVM?爲什麼需要LVM?

許多 Linux 使用者安裝操作系統時都會遇到這樣的困境:如何精確評估和分配各個硬盤分區的容量,如果當初評估不準確,一旦系統分區不夠用時可能不得不備份、刪除相關數據,甚至被迫重新規劃分區並重裝操作系統,以滿足應用系統的需要。而 LVM 技術就實現了用戶動態管理分配磁盤的需求。

LVM——Logical Volume Manger,邏輯卷管理,是Linux系統對磁盤分區進行管理的一種邏輯機制,它是建立在硬盤和分區之上,文件系統之下的一個邏輯層,在建立文件系統時屏蔽了下層的磁盤分區佈局,在保持現有數據不變的情況下動態調整磁盤容量,從而提高磁盤管理的靈活性。

注意:/boot分區用於存放引導文件,不能基於LVM創建!!!

2.LVM機制的基本概念

  1. PV(物理卷)

    物理卷(physical volume),是LVM機制的基本存儲設備,通常對應爲一個普通分區或整個硬盤。創建時會在分區或硬盤的頭部創建一個保留區塊,用於記錄LVM的屬性,並且把存儲空間分割成默認大小爲4MB的基本單元(PE),多個PE構成物理卷

  2. VG(卷組)

    多個物理卷構成卷組

  3. LV(邏輯卷)

    建立在卷組之上,與物理卷沒有直接關係。

三者示意圖如下所示:

Linux磁盤管理之LVM邏輯卷認識與管理詳解(實驗詳細,可跟做)

Linux磁盤管理之LVM邏輯卷認識與管理詳解(實驗詳細,可跟做)

Linux磁盤管理之LVM邏輯卷認識與管理詳解(實驗詳細,可跟做)

3.LVM的主要管理命令

功能 物理卷管理 卷組管理 邏輯卷管理
scan掃描 pvscan vgscan lvscan
create建立 pvcreate vgcreate lvcreate
display顯示 pvdisplay vgdisplay lvdisplay
remove刪除 pvremove vgremove lvremove
extend擴展 —— vgextend lvextend
reduce減少(某些格式未必支持) —— vgreduce lvreduce

上表主要列出了管理邏輯卷的具體操作命令,下面結合實際操作進行上表中常用命令的演示。

二、LVM邏輯卷管理實踐操作過程(可跟做)

4.如何具體進行LVM邏輯卷管理

實驗環境:VMware15版本上Centos7的虛擬機環境進行操作

  1. 添加磁盤並且重啓虛擬機,具體幾塊根據自己的需求和硬件限制

    我添加了三塊,具體操作步驟可以參考:https://blog.51cto.com/14557673/2447274

  2. 查看磁盤情況是否添加成功,成功則進行分區操作(其中需要將作爲該分區類型的ID標記號改爲8e,8e表示支持的是LVM分區)

    [root@lokott ~]# uname -a                //顯示Centos7的內核版本
    Linux lokott 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
    [root@lokott ~]# fdisk -l
    
    磁盤 /dev/sda:42.9 GB, 42949672960 字節,83886080 個扇區
    Units = 扇區 of 1 * 512 = 512 bytes
    扇區大小(邏輯/物理):512 字節 / 512 字節
    I/O 大小(最小/最佳):512 字節 / 512 字節
    磁盤標籤類型:dos
    磁盤標識符:0x000a0791
    
     設備 Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048    12584959     6291456   83  Linux
    /dev/sda2        12584960    54527999    20971520   83  Linux
    /dev/sda3        54528000    62916607     4194304   82  Linux swap / Solaris
    /dev/sda4        62916608    83886079    10484736    5  Extended
    /dev/sda5        62918656    83886079    10483712   83  Linux
    
    磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區
    Units = 扇區 of 1 * 512 = 512 bytes
    扇區大小(邏輯/物理):512 字節 / 512 字節
    I/O 大小(最小/最佳):512 字節 / 512 字節
    
    磁盤 /dev/sdc:21.5 GB, 21474836480 字節,41943040 個扇區
    Units = 扇區 of 1 * 512 = 512 bytes
    扇區大小(邏輯/物理):512 字節 / 512 字節
    I/O 大小(最小/最佳):512 字節 / 512 字節
    
    磁盤 /dev/sdd:21.5 GB, 21474836480 字節,41943040 個扇區
    Units = 扇區 of 1 * 512 = 512 bytes
    扇區大小(邏輯/物理):512 字節 / 512 字節
    I/O 大小(最小/最佳):512 字節 / 512 字節

    分區操作如下:

    [root@lokott ~]# fdisk /dev/sdb           //完成sdb和sdc的分區和分區類型設置
    歡迎使用 fdisk (util-linux 2.23.2)。
    .....                                    //中間交互過程省略,具體信息查看上述鏈接文章
    
    命令(輸入 m 獲取幫助):p
    
    磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區
    Units = 扇區 of 1 * 512 = 512 bytes
    扇區大小(邏輯/物理):512 字節 / 512 字節
    I/O 大小(最小/最佳):512 字節 / 512 字節
    磁盤標籤類型:dos
    磁盤標識符:0x5e2f4ad3
    
     設備 Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048    20973567    10485760   8e  Linux LVM
    /dev/sdb2        20973568    31459327     5242880   83  Linux
    
    命令(輸入 m 獲取幫助):w
    [root@lokott ~]# fdisk /dev/sdc
    歡迎使用 fdisk (util-linux 2.23.2)。
    
    更改將停留在內存中,直到您決定將更改寫入磁盤。
    使用寫入命令前請三思。
    
    命令(輸入 m 獲取幫助):p
    
    磁盤 /dev/sdc:21.5 GB, 21474836480 字節,41943040 個扇區
    Units = 扇區 of 1 * 512 = 512 bytes
    扇區大小(邏輯/物理):512 字節 / 512 字節
    I/O 大小(最小/最佳):512 字節 / 512 字節
    磁盤標籤類型:dos
    磁盤標識符:0xfd710363
    
     設備 Boot      Start         End      Blocks   Id  System
    /dev/sdc1            2048    10487807     5242880   83  Linux
    /dev/sdc2        10487808    31459327    10485760   8e  Linux LVM

    目前已經將sdb1和sdc2作爲邏輯分區,使用fdisk -l可以查看信息

    [root@lokott ~]# fdisk -l /dev/sd[b-c]           //簡化操作
    
    磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區
    Units = 扇區 of 1 * 512 = 512 bytes
    扇區大小(邏輯/物理):512 字節 / 512 字節
    I/O 大小(最小/最佳):512 字節 / 512 字節
    磁盤標籤類型:dos
    磁盤標識符:0x5e2f4ad3
    
     設備 Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048    20973567    10485760   8e  Linux LVM    
    /dev/sdb2        20973568    31459327     5242880   83  Linux
    
    磁盤 /dev/sdc:21.5 GB, 21474836480 字節,41943040 個扇區
    Units = 扇區 of 1 * 512 = 512 bytes
    扇區大小(邏輯/物理):512 字節 / 512 字節
    I/O 大小(最小/最佳):512 字節 / 512 字節
    磁盤標籤類型:dos
    磁盤標識符:0xfd710363
    
     設備 Boot      Start         End      Blocks   Id  System
    /dev/sdc1            2048    10487807     5242880   83  Linux
    /dev/sdc2        10487808    31459327    10485760   8e  Linux LVM        
    [root@lokott ~]# 
  3. 分區完成後,使用pvcreate命令將所需操作分區轉換爲物理卷

    [root@lokott ~]# pvscan                            //查看系統所有的物理卷,結果是沒有
    No matching physical volumes found
    [root@lokott ~]# pvcreate /dev/sdb1 /dev/sdc2      //轉換分區爲物理卷
    Physical volume "/dev/sdb1" successfully created.
    Physical volume "/dev/sdc2" successfully created.
    [root@lokott ~]# pvdisplay                         //查看物理卷詳細信息
    "/dev/sdc2" is a new physical volume of "10.00 GiB"
    --- NEW Physical volume ---
    PV Name               /dev/sdc2
    VG Name               
    PV Size               10.00 GiB
    Allocatable           NO
    PE Size               0   
    Total PE              0
    Free PE               0
    Allocated PE          0
    PV UUID               AzPaEA-X9Um-HPQQ-zdOg-mzVf-wXvh-QWEEXt
    
    "/dev/sdb1" is a new physical volume of "10.00 GiB"
    --- NEW Physical volume ---
    PV Name               /dev/sdb1
    VG Name               
    PV Size               10.00 GiB
    Allocatable           NO
    PE Size               0   
    Total PE              0
    Free PE               0
    Allocated PE          0
    PV UUID               5fh3Yx-Bwlm-ym7b-Qg0P-3HRb-iKRi-lwQyG9
  4. 使用vgcreate命令將一個或多個物理卷組成卷組

    [root@lokott ~]# vgscan 
    Reading volume groups from cache.
    [root@lokott ~]# vgcreate vgroup /dev/sdb1 /dev/sdc2      //vgroup是所建卷組的名字
    Volume group "vgroup" successfully created
    [root@lokott ~]# vgdisplay 
    --- Volume group ---
    VG Name               vgroup
    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               19.99 GiB
    PE Size               4.00 MiB
    Total PE              5118
    Alloc PE / Size       0 / 0   
    Free  PE / Size       5118 / 19.99 GiB
    VG UUID               K2s77S-fAfb-C5V2-P7ci-m4eo-DdNh-nanIW4
  5. 使用lvcreate命令從用戶指定的卷組中分割出空間來創建邏輯卷。

    [root@lokott ~]# lvscan                               //查看系統已建邏輯卷信息
    [root@lokott ~]# lvcreate -L 10G -n vgroup1 vgroup    //從卷組分割空間創建邏輯卷
    Logical volume "vgroup1" created.
    [root@lokott ~]# ls /dev/vgroup/vgroup1              //顯示邏輯卷vgroup1的鏈接文件             
    /dev/vgroup/vgroup1
    [root@lokott ~]# ls /dev/mapper/vgroup-vgroup1        //顯示邏輯卷vgroup1的設備文件
    /dev/mapper/vgroup-vgroup1
    [root@lokott ~]# lvdisplay                           //顯示邏輯卷詳細信息
    --- Logical volume ---
    LV Path                /dev/vgroup/vgroup1
    LV Name                vgroup1
    VG Name                vgroup
    LV UUID                ucTRFz-DK1l-fVgf-Gvzr-562n-nkYS-kuRACZ
    LV Write Access        read/write
    LV Creation host, time lokott, 2019-11-02 14:27:41 +0800
    LV Status              available
    # open                 0
    LV Size                10.00 GiB
    Current LE             2560
    Segments               2
    Allocation             inherit
    Read ahead sectors     auto
    - currently set to     8192
    Block device           253:0
  6. 對邏輯捲進行格式化,並且創建掛載點(mkdir)進行掛載,使用df命令進行查看

    [root@lokott ~]# mkfs.xfs /dev/vgroup/vgroup1 
    meta-data=/dev/vgroup/vgroup1    isize=512    agcount=4, agsize=655360 blks
           =                       sectsz=512   attr=2, projid32bit=1
           =                       crc=1        finobt=0, sparse=0
    data     =                       bsize=4096   blocks=2621440, imaxpct=25
           =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal log           bsize=4096   blocks=2560, version=2
           =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    [root@lokott ~]# mkdir /mail
    [root@lokott ~]# mount /dev/vgroup/vgroup1 /mail/
    [root@lokott ~]# df -hT
    文件系統                   類型      容量  已用  可用 已用% 掛載點
    /dev/sda2                  xfs        20G  4.4G   16G   22% /
    devtmpfs                   devtmpfs  474M     0  474M    0% /dev
    tmpfs                      tmpfs     489M     0  489M    0% /dev/shm
    tmpfs                      tmpfs     489M  7.2M  482M    2% /run
    tmpfs                      tmpfs     489M     0  489M    0% /sys/fs/cgroup
    /dev/sda5                  xfs        10G   37M   10G    1% /home
    /dev/sda1                  xfs       6.0G  158M  5.9G    3% /boot
    tmpfs                      tmpfs      98M  4.0K   98M    1% /run/user/42
    tmpfs                      tmpfs      98M   24K   98M    1% /run/user/0
    /dev/sr0                   iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
    /dev/mapper/vgroup-vgroup1 xfs        10G   33M   10G    1% /mail
  7. 使用lvextend命令爲邏輯卷擴充容量,再使用resize2fs命令更新系統識別的文件系統大小
[root@lokott ~]# lvextend -L +5G /dev/vgroup/vgroup1 //下面的信息表示成功擴展(前提是卷組中有空餘空間)
  Size of logical volume vgroup/vgroup1 changed from 10.00 GiB (2560 extents) to 15.00 GiB (3840 extents).
  Logical volume vgroup/vgroup1 successfully resized.
[root@lokott ~]# df -hT                              //查看是沒有顯示出來需要更新讓系統識別文件系統
文件系統                   類型      容量  已用  可用 已用% 掛載點
/dev/sda2                  xfs        20G  4.4G   16G   22% /
devtmpfs                   devtmpfs  474M     0  474M    0% /dev
tmpfs                      tmpfs     489M     0  489M    0% /dev/shm
tmpfs                      tmpfs     489M  7.2M  482M    2% /run
tmpfs                      tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda5                  xfs        10G   37M   10G    1% /home
/dev/sda1                  xfs       6.0G  158M  5.9G    3% /boot
tmpfs                      tmpfs      98M  4.0K   98M    1% /run/user/42
tmpfs                      tmpfs      98M   24K   98M    1% /run/user/0
/dev/sr0                   iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vgroup-vgroup1 xfs        10G   33M   10G    1% /mail
[root@lokott ~]# xfs_growfs /dev/vgroup/vgroup1   //xfs的使用xfs_growfs命令,ext4用resize2fs命令但需先取消掛載
meta-data=/dev/mapper/vgroup-vgroup1 isize=512    agcount=4, agsize=655360 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 2621440 to 3932160
[root@lokott ~]# df -hT | grep /dev/mapper/vgroup-vgroup1 //更新後可以查看到擴展到15G
/dev/mapper/vgroup-vgroup1 xfs        15G   33M   15G    1% /mail
[root@lokott ~]# 

5.實驗小結(1)

以上就是LVM邏輯卷管理的全過程操作,可以跟着做!務必注意分區時的邏輯分區的操作,以及後面更新的命令需要根據文件系統類型使用與之對應的命令(ext4——resize2fs(先取消掛載),xfs——xfs_growfs)

三、磁盤配額

6.什麼是磁盤配額?爲什麼需要磁盤配額?

磁盤配額,顧名思義,就是爲了限制磁盤資源的使用,磁盤配額是系統對用戶能使用磁盤資源的控制(或者說限制).在Linux中,磁盤配額可以對用戶的空間使用情況,文件數量(實際上是inode的數量,文件數量是限制inode的結果)進行限制。如果超出此範圍則用戶不能在往磁盤裏繼續寫入數據。

對於一般人來說,可能不是特別好理解該段解釋,那我們舉一個例子來說明一下:

假設有一筐桃子,一共50個,平均分配給10只猴子,那麼每隻猴子可以分到5個桃子,首先是限制了桃子的總數和每個猴子可以分到的桃子數量,這就是磁盤配額,但是在系統中分配必然不是平均的,這就需要對此進行額度分配,有的猴子分到的多點,那麼就意味着有的猴子分到的就會便少,但是總數不會變化。對於linux系統而言,就意味着單個磁盤的實際資源空間是有限的,那麼對磁盤的合理分配就尤爲重要。

因此,進行磁盤配額的原因就是磁盤的空間資源是有限的,而其目的可以理解爲合理規劃,避免資源浪費。

7.那麼在Linux中進行磁盤配額的條件是什麼呢?

  1. 首先需要Linux內核支持
  2. 安裝xfsprogs與quota

8.Linux磁盤限額的特點

  1. 作用範圍:針對指定的文件系統(分區)
  2. 限制對象:用戶賬號、組賬號
  3. 限制類型:磁盤容量、文件數量
  4. 限制方法:軟限制、硬限制

其中軟限制<=硬限制,否則軟限制沒有意義,但是軟限制是起到真正起到控制作用的方法

根據類型和方法有以下情況

  1. 容量軟: bsoft
  2. 容量硬:bhard
  3. 數量軟: isoft
  4. 數量硬: ihard

下面具體給出具體實驗操作過程演示該如何進行磁盤配額。

四、磁盤配額具體操作步驟實驗(可接着上面的實驗進行操作)

9.如何具體進行磁盤配額?

具體操作流程如下:

  1. 首先需要查看是否滿足上述兩個條件

    [root@lokott ~]# rpm -q xfsprogs      //用rpm -q 進行查看上述兩個條件的軟件包是否在
    xfsprogs-4.5.0-12.el7.x86_64
    [root@lokott ~]# rpm -q quota
    quota-4.01-14.el7.x86_64
  2. 滿足條件,接着上面的實驗進行操作,先取消掛載(umount /mail)

    [root@lokott ~]# umount /mail/
    [root@lokott ~]# df -hT
    文件系統       類型      容量  已用  可用 已用% 掛載點
    /dev/sda2      xfs        20G  4.4G   16G   22% /
    devtmpfs       devtmpfs  474M     0  474M    0% /dev
    tmpfs          tmpfs     489M     0  489M    0% /dev/shm
    tmpfs          tmpfs     489M  7.2M  482M    2% /run
    tmpfs          tmpfs     489M     0  489M    0% /sys/fs/cgroup
    /dev/sda5      xfs        10G   37M   10G    1% /home
    /dev/sda1      xfs       6.0G  158M  5.9G    3% /boot
    tmpfs          tmpfs      98M  4.0K   98M    1% /run/user/42
    tmpfs          tmpfs      98M   24K   98M    1% /run/user/0
    /dev/sr0       iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
  3. 取消掛載後添加usrquota和grpquota參數以支持配額功能的方式掛載文件系統

    [root@lokott ~]# mount -o usrquota,grpquota /dev/vgroup/vgroup1 /mail/
    [root@lokott ~]# mount | tail -1    //mount 命令結合“|”查看尾部一行的信息也可以使用下面的grep命令
    /dev/mapper/vgroup-vgroup1 on /mail type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
    [root@lokott ~]# mount | grep /dev/mapper/vgroup-vgroup1
    /dev/mapper/vgroup-vgroup1 on /mail type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
  4. 編輯用戶和組賬號的配額設置(這裏需要有非root的用戶,可以用tail命令查看/etc/passwd的信息,如果沒有其他用戶使用useradd創建一個用戶,下面給出具體演示過程)

    [root@lokott ~]# tail -3 /etc/passwd //查看,我這裏是由一個lokott的用戶的,爲了演示下面創建一個lisi
    postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    tcpdump:x:72:72::/:/sbin/nologin
    lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
    [root@lokott ~]# useradd lisi            //創建新的用戶賬號和密碼                           
    [root@lokott ~]# passwd lisi
    更改用戶 lisi 的密碼 。
    新的 密碼:
    無效的密碼: 密碼少於 8 個字符
    重新輸入新的 密碼:
    passwd:所有的身份驗證令牌已經成功更新。
    [root@lokott ~]# tail -3 /etc/passwd
    tcpdump:x:72:72::/:/sbin/nologin
    lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
    lisi:x:1001:1001::/home/lisi:/bin/bash
    [root@lokott ~]# xfs_quota -x -c 'limit -u bsoft=1G bhard=2G isoft=20 ihard=50 lisi' /mail/

    這裏對最下面的命令進行詳細解釋,這條命令是真正實現編輯用戶的配額設置的命令操作,其中xfs_quota是命令,選項-x表示專家模式,-c表示命令(command,其實就是單引號內的內容,類似數據庫的增刪改查操作,limit表示限制,-u表示對用戶,後面的是限制配額大小,然後是用戶名,最後千萬不要忘記掛載點!!!)

  5. 查看磁盤配額使用情況和驗證磁盤配額功能,首先在root下將掛載點的權限改爲777,否則待會切換用戶時創建文件權限不夠

    [root@lokott ~]# xfs_quota -c 'quota -uv lisi'  /mail/  //查看磁盤容量限制
    Disk quotas for User lisi (1001)
    Filesystem              Blocks      Quota      Limit  Warn/Time      Mounted on
    /dev/mapper/vgroup-vgroup1
                               0    1048576    2097152   00 [--------] /mail
    [root@lokott ~]# xfs_quota -c 'quota -iuv lisi'  /mail/  //查看文件數量限制
    Disk quotas for User lisi (1001)
    Filesystem               Files      Quota      Limit  Warn/Time      Mounted on
    /dev/mapper/vgroup-vgroup1
                               0         20         50   00 [--------] /mail
    
    [root@lokott ~]# xfs_quota -x -c 'report -a'  /mail/     //查看配額的所有信息
    User quota on /mail (/dev/mapper/vgroup-vgroup1)
                                 Blocks                     
    User ID          Used       Soft       Hard    Warn/Grace     
    ---------- -------------------------------------------------- 
    root                0          0          0     00 [--------]
    lisi                0    1048576    2097152     00 [--------]
    
    Group quota on /mail (/dev/mapper/vgroup-vgroup1)
                                 Blocks                     
    Group ID         Used       Soft       Hard    Warn/Grace     
    ---------- -------------------------------------------------- 
    root                0          0          0     00 [--------]
    
    [root@lokott ~]# chmod 777 /mail/
    [root@lokott ~]# su - lisi                           //切換用戶
    上一次登錄:六 11月  2 16:15:17 CST 2019pts/0 上
    [lisi@lokott ~]$ cd /mail/                           //進入掛載點目錄創建文件方式來驗證(方法一)
    [lisi@lokott mail]$ ls
    [lisi@lokott mail]$ touch {1..20}.txt
    [lisi@lokott mail]$ ls 
    10.txt  12.txt  14.txt  16.txt  18.txt  1.txt   2.txt  4.txt  6.txt  8.txt
    11.txt  13.txt  15.txt  17.txt  19.txt  20.txt  3.txt  5.txt  7.txt  9.txt
    [lisi@lokott mail]$ touch {20..60}.txt  //上面查看的數量限制是50,現在超過50了
    touch: 無法創建"51.txt": 超出磁盤限額
    touch: 無法創建"52.txt": 超出磁盤限額
    touch: 無法創建"53.txt": 超出磁盤限額
    touch: 無法創建"54.txt": 超出磁盤限額
    touch: 無法創建"55.txt": 超出磁盤限額
    touch: 無法創建"56.txt": 超出磁盤限額
    touch: 無法創建"57.txt": 超出磁盤限額
    touch: 無法創建"58.txt": 超出磁盤限額
    touch: 無法創建"59.txt": 超出磁盤限額
    touch: 無法創建"60.txt": 超出磁盤限額
    [lisi@lokott mail]$ ls | wc -l         //表示成功創建了30個
    50
    [lisi@lokott mail]$ su               //切換到root下看一下數量限制的變化,其中warn/time變爲6days
    密碼:
    [root@lokott mail]# cd 
    [root@lokott ~]#  xfs_quota -c 'quota -iuv lisi'  /mail/   //查看數量配額限制功能
    Disk quotas for User lisi (1001)
    Filesystem               Files      Quota      Limit  Warn/Time      Mounted on
    /dev/mapper/vgroup-vgroup1
                              50         20         50   00  [6 days] /mail

    10.實驗小結(2):

    對磁盤進行配額操作後,其限制是非常嚴格的,上面我們通過創建文件的方法驗證了磁盤配額數量限制的效果,其中警告時間表示從明天開始計算6天時間,時間超過後由於軟限制40的文件節點數量的限制,後面創建的10個文件將會被刪除!

    下面通過dd命令來驗證配額容量限制的效果:

    [root@lokott ~]# su - lisi                  //首先切換到lisi用戶上cd到掛載點目錄刪除原來的文件
    上一次登錄:六 11月  2 16:46:28 CST 2019pts/0 上
    [lisi@lokott ~]$ cd /mail/
    [lisi@lokott mail]$ ls
    10.txt  14.txt  18.txt  21.txt  25.txt  29.txt  32.txt  36.txt  3.txt   43.txt  47.txt  50.txt  8.txt
    11.txt  15.txt  19.txt  22.txt  26.txt  2.txt   33.txt  37.txt  40.txt  44.txt  48.txt  5.txt   9.txt
    12.txt  16.txt  1.txt   23.txt  27.txt  30.txt  34.txt  38.txt  41.txt  45.txt  49.txt  6.txt
    13.txt  17.txt  20.txt  24.txt  28.txt  31.txt  35.txt  39.txt  42.txt  46.txt  4.txt   7.txt
    [lisi@lokott mail]$ rm *.txt -f        //刪除所有文件然後使用dd命令操作,軟限制1G 硬限制2G
    [lisi@lokott mail]$ cd 
    [lisi@lokott ~]$ dd if=/dev/zero of=/mail/demo01.txt bs=50M count=10   //第一次沒問題
    記錄了10+0 的讀入
    記錄了10+0 的寫出
    524288000字節(524 MB)已複製,0.647092 秒,810 MB/秒
    [lisi@lokott ~]$ dd if=/dev/zero of=/mail/demo02.txt bs=50M count=20   //第二次沒問題
    記錄了20+0 的讀入
    記錄了20+0 的寫出
    1048576000字節(1.0 GB)已複製,0.685654 秒,1.5 GB/秒
    [lisi@lokott ~]$ dd if=/dev/zero of=/mail/demo03.txt bs=50M count=20    //第三次失敗了
    dd: 寫入"/mail/demo03.txt" 出錯: 超出磁盤限額
    記錄了11+0 的讀入
    記錄了10+0 的寫出
    574619648字節(575 MB)已複製,0.357243 秒,1.6 GB/秒
    [lisi@lokott ~]$ du -sh /mail/    //統計目錄空間大小使用情況
    2.0G /mail/
    [lisi@lokott ~]$ ls -lh /mail/         //查看詳細信息
    總用量 2.0G
    -rw-rw-r--. 1 lisi lisi  500M 11月  2 17:08 demo01.txt
    -rw-rw-r--. 1 lisi lisi 1000M 11月  2 17:09 demo02.txt
    -rw-rw-r--. 1 lisi lisi  548M 11月  2 17:10 demo03.txt
    [lisi@lokott ~]$ su 
    密碼:
    [root@lokott lisi]# cd
    [root@lokott ~]# xfs_quota -c 'quota -uv lisi'  /mail/  //查看容量配額限制功能
    Disk quotas for User lisi (1001)
    Filesystem              Blocks      Quota      Limit  Warn/Time      Mounted on
    /dev/mapper/vgroup-vgroup1
                         2097152    1048576    2097152   00  [6 days] /mail

    11.實驗小結(3)

    通過dd命令(dd命令是用指定大小的塊拷貝一個文件,並在拷貝的同時進行指定的轉換)來驗證磁盤配額中容量限制的功能測試驗證,可見此與上一個方法驗證的結果類似,實驗操作過程中注意以下兩點:

    需要切換用戶驗證和更新掛載點的內容(如果第二個方法沒有先將原來的文件刪除,是無法進行實驗的)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章