高級文件系統管理--系統配額


一、配置配額系統:

綜述:

磁盤配額的作用范圍:

    quota軟件設置的磁盤配額功能,只在指定的文件系統分區中有效,用戶使用其他未設置配額的文件系統時,將不會受到限制;

磁盤配額的限制對象:

    quota主要針對系統中指定的用戶賬號、組賬號進行限制,沒有被設置限額的用戶或組將不受影響。對組賬號設置配額后,組內所有用戶使用的磁盤容量、文件數量的總和不能超過限制。

磁盤配額的限制類型:

硬盤容量:限制用戶能夠使用的磁盤數據塊(block)大小,也就是限制磁盤空間大小,默認單位為KB。

文件數量:限制用戶能夠擁有的文件個數。quota通過限制i節點的數量來實現對文件數量的限制。

磁盤配額的限制方法:

軟限制:制定一個軟性的配額數值(如 480MB、180個文件),在固定的寬限期內(默認為七天)允許用戶暫時超過這個限制,但系統會給出警告信息。

硬限制:指定一個硬性的配額數值(如 500MB、200個文件),時絕對禁止用戶超過這個限制值得,當達到硬限制值時,系統也會給出警告並禁止繼續寫入數據。硬限制的配額值應大於相應的軟限制的值,否則軟限制將失效。

1、以支持磁盤配額功能的方式掛載文件系統:

除了內核和quota軟件支持外,實施磁盤配額功能還有一個前提條件,即指定的分區必須已經掛載且支持磁盤配額功能。

讓分區支持磁盤配額選項:

     usrquota選項:支持對用戶的磁盤配額;

     grpquota選項:支持對組的磁盤配額;

示例:

在配置磁盤配額過程中,可以使用帶”-o usrquota grpquota” 選項的mount命令重新掛載指定的分區以便增加對用戶、組配額功能。

     mount  -o usrquot,grpquota  /dev/sdb1 

若需要在每次系統開機后自動以支持磁盤配額的功能方式掛載該分區,可以將usrquot和grpquota選項參數寫到/etc/fstab配置文件中。   

[root@centos7 ~]# vim /etc/fstab

/dev/sdb1   /home    ext4    defaults,usrquota,grpquota  0  0

[root@centos7 ~]#mount  -a

2、檢測磁盤配額並生成配額文件:

         quotacheck命令:

               -a:表示掃描所有分區,查看是否有較早版本的配額文件;

               -c:常與u,g選項配合使用,創建用戶、組的配額文件;

示例:          

[root@centos7 ~]# quotacheck -cug /home

查看在/home目錄下生成的用戶配額文件和組配額文件:           

[root@centos7 ~]# file aquota.*

aquota.group: data

aquota.user:  data

開啟或者取消磁盤配額功能:

              quotaon :開啟磁盤配額

              quotaon  -p 查看是否開啟磁盤配額;

              quotaoff :關閉磁盤配額

示例:

查看是否開啟磁盤配額:           

[root@centos7 ~]# quotaon -p /home

group quota on /home (/dev/sdb1) is off

user quota on /home (/dev/sdb1) is off

開啟磁盤配額:            

[root@centos7 ~]# quotaon /home

關閉磁盤配額:           

 [root@centos7 ~]# quotaoff /home

     3、編輯用戶和組的賬號的配額設置:

               edquota命令:結合-u和-g選項可用於編輯用戶或組的配額設置;

(1)edquota  -u  username

(2)直接在shell命令行編寫(適合編寫shell腳本使用)

                setquota  username  500000  600000   1500 2000  /filesystem

示例:            

 root@centos7 ~]# setquota   zhangsan  500000 600000  1500 2000 /home

(3)定義標准的用戶 (相當於copy  user1的磁盤配額給user2)

                edquota  -p  user1  user2

示例:

[root@centos7 ~]# edquota -p zhangsan fan

示例:

為用戶zhangsan編輯磁盤配額:             

[root@centos7~]# edquota -u zhangsan

Disk quotas for user zhang (uid 1000):

Filesystem      blocks    soft  hard        inodes     soft     hard

/dev/sdb1       0    500000   600000       0       1500     2000

在edquota的編輯界面中,各字段分別代表的含義如下:

           Filesystem:表示本行配置記錄對應的文件系統,即配額的作用范圍;

           blocks:表示用戶已經使用的磁盤容量,單位為KB,該值由edquota自動計算;

           soft:第3列的soft對應為磁盤容量的軟限制數值;

           hard:第4列的hard對應為磁盤容量的硬限制數值;

           inodes:表示用戶當前已經擁有的文件數量,(i節點數)有edquota自動計算;

           soft:第6列的soft對應為文件數量的軟限制數值;

           hard:第7列的hard對應為文件數量的硬限制數值;

測試磁盤配額:

綜上可知我們為用戶zhangsan設置的磁盤硬限制是600MB,這是我們dd一個650MB的文件,這時我們已經看到拒絕寫入數據了。       

[zhangsan@centos7 ~]$ dd if=/dev/zero of=/home/zhangsan/bb  bs=1M count=650

           sdb1: warning, user block quota exceeded.

           sdb1: write failed, user block limit reached.  (寫入失敗,磁盤配額空間已滿)

           dd: error writing ‘/home/zhangsan/bb’: Disk quota exceeded

           586+0 records in

           585+0 records out

           614371328 bytes (614 MB) copied, 0.800515 s, 767 MB/s

           [zhangsan@centos7 ~]$ du -sh /home/zhangsan/bb

           586M /home/zhangsan/bb

           [zhangsan@centos7 ~]$

使用quota命令查看用戶zhangsan的磁盤使用情況:    

 [root@centos7 ~]# quota zhangsan

Disk quotas for user zhangsan (uid 1000):

Filesystem  blocks   quota   limit   grace   files   quota   limit   grace

/dev/sdb1  600000* 500000  600000   7days      15    1500    2000        

[root@centos7 ~]#

使用repquota命令查看/home文件系統的配額使用情況報告:     

 [root@centos7 ~]# repquota /home

  Report for user quotas on device /dev/sdb1

  Block grace time: 7days; Inode grace time: 7days

                         Block limits                File limits

 User            used    soft    hard  grace    used  soft  hard  grace

 root      —      14       0       0              7     0     0       

 zhangsan     +-  600000  500000  600000  6days      15  1500  2000       

  fan      —      14  500000  600000              7  1500  2000       

  root     —      14  500000  600000              7  1500  2000       

  [root@centos7 home]#

配置磁盤配額使用的命令總結:

          usrquota、grpquota

          quotacheck

          quotaon  quotaoff

          edquota  setquota

          quota    repquota

          warnquota (磁盤配額報警軟件,可以郵件通知)
ext系列文件系統的quota

    1.開啟quota(ext、xfs)

[root@centos6 ~]#vim /etc/fstab

在需要開啟quota的文件系統的掛載選項的defaults后加usrquota,grpquota如下

/dev/sda5  /backup                   ext4    defaults,usrquota,grpquota        1 0

  2.生成quota數據庫 

[root@centos6 ~]#quotacheck -cugm /backup/

  3.開啟quota 

[root@centos6 ~]#quotaon    /backup

quota
         -v 顯示當前用戶自己的quota限額
         -v username 顯示指定用戶的quota限額 僅限root
     repquota -v /backup 顯示所有用戶的quota限額(僅限用戶在該目錄有所屬的文件) 僅限root

[root@centos6 ~]#repquota -v /backup/
*** Report for user quotas on device /dev/md126
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --    1284       0       0              3     0     0       
sunquan   --       0   40960   51200              0     0     0      

Statistics:
Total blocks: 7
Data blocks: 1
Entries: 2
Used average: 2.000000

   4.配置quota
     edquota -u/g username/groupname
         edquota -u liubei
         edquota -g shuguo

    或非交互式

 [root@centos6 ~]# setquota -u[default] |-g  username|groupname 10M 20M 5 20 /backup
 [root@centos6 ~]#setquota -u liubei 0 0 0 0 /backup
 [root@centos6 ~]# setquota -g shuguo 10M 20M 50 100 /backup
 [root@centos6 ~]#edquota -p liubei zhangfei  將liubei的quota設置復制給zhangfei

注意:對group設置quota時,應該對附加組設置,同時,目錄要設置sgid權限才有意義

xfs文件系統的quota
     1.開啟quota(ext、xfs)
     vim /etc/fstab
     在需要開啟quota的文件系統的掛載選項的defaults后加usrquota,grpquota如下
     /dev/sda5  /app                    ext4    defaults,usrquota,grpquota        1 0

    一定要卸載再掛載才生效
     2.配置
     xfs_quota -x -c "print" 查看當前系統中所有的xfs文件系統哪些開啟了quota

[root@localhost ~]# xfs_quota -x -c "print" 
 Filesystem          Pathname
 /                   /dev/mapper/centos-root
 /backup             /dev/md0 (uquota, gquota)
 /app                /dev/mapper/centos-app
 /boot               /dev/sda1

  xfs_quota -x -c "report -ugibh"  /backup查看quota設置

[root@localhost ~]# xfs_quota -x -c "report -ugibh" /backup/
 User quota on /backup (/dev/md0)
                         Blocks                            Inodes              
 User ID      Used   Soft   Hard Warn/Grace     Used   Soft   Hard Warn/Grace  
 ---------- --------------------------------- --------------------------------- 
 root            0      0      0  00 [0 days]      3      0      0  00 [------]
 sunquan         0    40M    50M  00 [------]      0      0      0  00 [------]

Group quota on /backup (/dev/md0)
                         Blocks                            Inodes              
 Group ID     Used   Soft   Hard Warn/Grace     Used   Soft   Hard Warn/Grace  
 ---------- --------------------------------- --------------------------------- 
 root            0      0      0  00 [------]      3      0      0  00 [------]

        -u 查看用戶的
         -g 查看組的
         -i 查看inode
         -b 查看block (默認)
         -h human-readable
         默認是-ug
         ***-uibh
     xfs_quota -x -c "state" /backup 查看qutoa狀態,顯示grace time時間

[root@localhost ~]# xfs_quota -x -c "state" /backup/
 User quota state on /backup (/dev/md0)
   Accounting: ON
   Enforcement: ON
   Inode: #67 (2 blocks, 2 extents)
 Group quota state on /backup (/dev/md0)
   Accounting: ON
   Enforcement: ON
   Inode: #68 (2 blocks, 2 extents)
 Project quota state on /backup (/dev/md0)
   Accounting: OFF
   Enforcement: OFF
   Inode: #68 (2 blocks, 2 extents)
 Blocks grace time: [14 days]
 Inodes grace time: [7 days]
 Realtime Blocks grace time: [7 days]

     xfs_quota -x -c "limit -u bsoft=30M bhard=40M liubei" /backup
     對用戶設置quota
     xfs_quota -x -c "limit -g bsoft=50M bhard=100M shuguo" /backup
     對組設置quota
     xfs_quota -x -c "timer -u -b 14days" /app
     設置quota grace time

    獲取幫助
     xfs_quota -x -c "help limit"
     xfs_quota -x -c "help report"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM