溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

LVM與磁盤配額

發(fā)布時間:2020-07-13 15:55:49 來源:網絡 閱讀:272 作者:wx5d8a05337d6b9 欄目:云計算

v

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

前言

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

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

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

一、LVM概述

1.什么是LVM?為什么需要LVM?

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

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

注意:/boot分區(qū)用于存放引導文件,不能基于LVM創(chuàng)建!?。?/strong>

2.LVM機制的基本概念

  1. PV(物理卷)

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

  2. VG(卷組)

    多個物理卷構成卷組

  3. LV(邏輯卷)

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

三者示意圖如下所示:

LVM與磁盤配額

LVM與磁盤配額

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邏輯卷管理?

實驗環(huán)境:VMware15版本上Centos7的虛擬機環(huán)境進行操作

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

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

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

    [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 字節(jié),83886080 個扇區(qū)
    Units = 扇區(qū) of 1 * 512 = 512 bytes
    扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié)
    I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)
    磁盤標簽類型: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 字節(jié),41943040 個扇區(qū)
    Units = 扇區(qū) of 1 * 512 = 512 bytes
    扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié)
    I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)
    
    磁盤 /dev/sdc:21.5 GB, 21474836480 字節(jié),41943040 個扇區(qū)
    Units = 扇區(qū) of 1 * 512 = 512 bytes
    扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié)
    I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)
    
    磁盤 /dev/sdd:21.5 GB, 21474836480 字節(jié),41943040 個扇區(qū)
    Units = 扇區(qū) of 1 * 512 = 512 bytes
    扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié)
    I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)

    分區(qū)操作如下:

    [root@lokott ~]# fdisk /dev/sdb           //完成sdb和sdc的分區(qū)和分區(qū)類型設置
    歡迎使用 fdisk (util-linux 2.23.2)。
    .....                                    //中間交互過程省略,具體信息查看上述鏈接文章
    
    命令(輸入 m 獲取幫助):p
    
    磁盤 /dev/sdb:21.5 GB, 21474836480 字節(jié),41943040 個扇區(qū)
    Units = 扇區(qū) of 1 * 512 = 512 bytes
    扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié)
    I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)
    磁盤標簽類型: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 字節(jié),41943040 個扇區(qū)
    Units = 扇區(qū) of 1 * 512 = 512 bytes
    扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié)
    I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)
    磁盤標簽類型: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作為邏輯分區(qū),使用fdisk -l可以查看信息

    [root@lokott ~]# fdisk -l /dev/sd[b-c]           //簡化操作
    
    磁盤 /dev/sdb:21.5 GB, 21474836480 字節(jié),41943040 個扇區(qū)
    Units = 扇區(qū) of 1 * 512 = 512 bytes
    扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié)
    I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)
    磁盤標簽類型: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 字節(jié),41943040 個扇區(qū)
    Units = 扇區(qū) of 1 * 512 = 512 bytes
    扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié)
    I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)
    磁盤標簽類型: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. 分區(qū)完成后,使用pvcreate命令將所需操作分區(qū)轉換為物理卷

    [root@lokott ~]# pvscan                            //查看系統所有的物理卷,結果是沒有
    No matching physical volumes found
    [root@lokott ~]# pvcreate /dev/sdb1 /dev/sdc2      //轉換分區(qū)為物理卷
    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               5fh4Yx-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命令從用戶指定的卷組中分割出空間來創(chuàng)建邏輯卷。

    [root@lokott ~]# lvscan                               //查看系統已建邏輯卷信息
    [root@lokott ~]# lvcreate -L 10G -n vgroup1 vgroup    //從卷組分割空間創(chuàng)建邏輯卷
    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. 對邏輯卷進行格式化,并且創(chuàng)建掛載點(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邏輯卷管理的全過程操作,可以跟著做!務必注意分區(qū)時的邏輯分區(qū)的操作,以及后面更新的命令需要根據文件系統類型使用與之對應的命令(ext4——resize2fs(先取消掛載),xfs——xfs_growfs)

三、磁盤配額

6.什么是磁盤配額?為什么需要磁盤配額?

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

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

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

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

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

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

8.Linux磁盤限額的特點

  1. 作用范圍:針對指定的文件系統(分區(qū))
  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創(chuàng)建一個用戶,下面給出具體演示過程)

    [root@lokott ~]# tail -3 /etc/passwd //查看,我這里是由一個lokott的用戶的,為了演示下面創(chuàng)建一個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            //創(chuàng)建新的用戶賬號和密碼                           
    [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表示對用戶,后面的是限制配額大小,然后是用戶名,最后千萬不要忘記掛載點?。。。?/p>

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

    [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/                           //進入掛載點目錄創(chuàng)建文件方式來驗證(方法一)
    [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: 無法創(chuàng)建"51.txt": 超出磁盤限額
    touch: 無法創(chuàng)建"52.txt": 超出磁盤限額
    touch: 無法創(chuàng)建"53.txt": 超出磁盤限額
    touch: 無法創(chuàng)建"54.txt": 超出磁盤限額
    touch: 無法創(chuàng)建"55.txt": 超出磁盤限額
    touch: 無法創(chuàng)建"56.txt": 超出磁盤限額
    touch: 無法創(chuàng)建"57.txt": 超出磁盤限額
    touch: 無法創(chuàng)建"58.txt": 超出磁盤限額
    touch: 無法創(chuàng)建"59.txt": 超出磁盤限額
    touch: 無法創(chuàng)建"60.txt": 超出磁盤限額
    [lisi@lokott mail]$ ls | wc -l         //表示成功創(chuàng)建了30個
    50
    [lisi@lokott mail]$ su               //切換到root下看一下數量限制的變化,其中warn/time變?yōu)?days
    密碼:
    [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):

    對磁盤進行配額操作后,其限制是非常嚴格的,上面我們通過創(chuàng)建文件的方法驗證了磁盤配額數量限制的效果,其中警告時間表示從明天開始計算6天時間,時間超過后由于軟限制40的文件節(jié)點數量的限制,后面創(chuàng)建的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字節(jié)(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字節(jié)(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字節(jié)(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命令是用指定大小的塊拷貝一個文件,并在拷貝的同時進行指定的轉換)來驗證磁盤配額中容量限制的功能測試驗證,可見此與上一個方法驗證的結果類似,實驗操作過程中注意以下兩點:

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

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI