Linux 磁盤配額


 

 

磁盤配額是一種磁盤空間的管理機制,使用磁盤配額可限制用戶或組在某個特定文件系統中所能使用的最大空間。

磁盤配額quota用來限制用戶能夠使用的磁盤空間的大小。

注:

磁盤配額的記錄文件保存在開啟磁盤配額分區的根目錄下面,它們是aquota.user和aquota.group;
磁盤配額只對一般身份用戶有效,對root權限用戶無效

最低限制(軟限制,soft):最低限制容量(可以被超過,但會出現警告,超過的部分會保存到寬限時間到期);
最高限制(硬限制,hard): 不能被超越的限制;
寬限時間:當用戶使用的空間超過了最低限制但還沒到達最高限制時,在這個寬限時間到期前必須將超額的數據降低到最低限制以下(默認為7天),當寬限時間到期,系統將自動清除超出的數據;

 

1.配額相關基礎知識:

 

配置配額前提條件

 

1).檢查內核支持:grep -i quota /boot/config-2.6.32-431.el6.x86_64    #如看到CONFIG_QUOTA=y,表示內核支持quota功能;

2).檢查掛載支持:掛載必須使用了quota相關選項,主要有:usrquota/grpquota/prjquota  
    
3).關閉SElinux:SElinx會影響quota配置、配置前進行關閉;

 

可限制對象:

 

1).限制普通用戶:對應選項{usrquota}      #配額無法對root用戶限制!!

2).限制用戶組:對應選項{grpquota}        #此選項不能和prjquota同時存在

3).限制指定目錄:對應選項{prjquota}      #此功能支持xfs文件系統,而ext文件系統不支持

 

限制的內容:

1).inode:限制創建文件的個數

2).block:限制能夠使用的磁盤空間的大小

※soft/hard表示限制數值大小,當達到soft時系統發出警告要求將至soft以下,並給出grace寬限時間,用戶應在寬限之內將至soft以下;

 

 

2.如何進行磁盤配額(Centos7)

 

下面針對ext4和xfs兩種文件系統進行配置。

 

2.1 ext文件系統quota配置

 

0).檢查內核支持,掛載支持,關閉SElinx;      

臨時掛載:mount -o [remount,]usrquota,grpquota /dev/sdb1_ext /ext
永久掛載:增加掛載條目到 /ext/fstab 文件 && mount -a

1).初始化 quota

yum install -y quota      #安裝針對ext文件系統quota工具包;
quotacheck -avug      #初始化quota,根據etc/mtab文件檢測系統quota分區,並創建aquota.user/aquota.group文件;如文件無法創建可使用-m強制檢查;
quotacheck -vug /ext    #對指定分區進行初始化quota,並創建aquota.user/aquota.group文件,如文件無法創建可使用-m強制檢查; 

repquota -avug      #查看本機的全部quota配置,根據etc/mtab文件檢測系統quota分區;
repquota -vug /ext      #查看指定分區的quota配置;

2).配置 quota

edquota [-u user] [-g group] [-t]      #編輯user/group的quota值,-t配置寬限時間; 
edquota -p user1 -u user2      #賦值user1的quota值給user2,替換為group同樣支持;

3).啟動/關閉 quota

quotaon -avug      #啟動全部quota{會自動去尋找 /etc/mtab 的設定}
quotaon -ugv /ext      #啟動指定分區quota
echo "quotaon -aug" >> /etc/rc.d/rc.local      #添加開機自動啟動quota

quotaoff -avug      #關閉全部quota{會自動去尋找 /etc/mtab 的設定}
quotaoff -ugv /ext      #關閉指定分區quota

4).權限確認

確保配置配額的用戶或用戶組對配額分區的權限配置正確。

 

2.2 xfs文件系統quota配置

 

0).檢查內核支持,掛載支持,關閉SElinx;      

臨時掛載:mount -o usrquota,grpquota /dev/sdb2_xfs /xfs      #xfs文件系統無法使用remount進行quota掛載,可使用umount先卸載,再mount重新掛載;
永久掛載:增加掛載條目到 /ext/fstab 文件 && mount -a

1).初始化 quota

※xfs文件系統使用 xfs_quota 命令管理磁盤配額,並在Centos7默認已安裝;
※xfs文件系統配置quota不會在分區生成aquota.user/aquota.group文件;

xfs_quota -x -c "command" [掛載點]
-x    專家模式,后續才可以跟-c選項
-c    后邊跟命令
command:
  print    列出文件系統信息
  df       和系統df命令類似,數值更精確
  state     列出文件系統quota狀態{開啟/關閉/寬限時間}
  report    列出quota項目設置{可使用參數-u/g/p/b/i/h篩選輸出},后面必須跟支持quota的掛載點
contrl command:
  disable:暫時取消quota的限制,但其實系統還是在計算quota中,只是沒有管制而已。
  enable:恢復到正常管制的狀態,與disable相互取消、啟用。
  off:完全關閉quota的限制,使用了這個狀態后,只有卸載再重新掛載才能再次啟動quota。
  remove:必須要在off的狀態下才能執行的指令,這個remove可以可以“移除”quota的限制設置。
  以上每個命令后可使用 -u/g/p 來指定操作對象為用戶/用戶組/project。

2).配置 quota

xfs_quota -x -c "limit -u bsoft=80M bhard=100M isoft=80 ihard=100 user1" /xfs      #配置用戶user1的block和inode配額
xfs_quota -x -c "limit -g bsoft=80M bhard=100M isoft=80 ihard=100 group1" /xfs      #配置用戶組group1的block和inode配額

#配置project指定目錄的配額(/xfs/dir1目錄為例)
A.項目初始化:
echo "111:/xfs/dir1" > /etc/projects  #設置項目ID和目錄的對應關系
echo "myqtproject1:111" > /etc/projid  #設置項目名稱和項目ID的對應關系
xfs_quota -x -c "project -s myqtproject1"  #初始化項目名稱
B.配置project配額:
xfs_quota -x -c "limit -p bsoft=80M bhard=100M isoft=80 ihard=100 myqtproject1" /xfs

#配置寬限時間:
xfs_quota -x -c "timer -b 7days"      #配置block寬限時間;
xfs_quota -x -c "timer -i 7days"      #配置inode寬限時間;

#復制模版給用戶/用戶組:
edquota -p user1 -u user2      #賦值user1的quota值給user2,替換為group同樣支持;

3).啟動/關閉 quota

※xfs文件系統中quota配置完就生效無需手動啟動和配置開機啟動;

4).權限確認

確保配置配額的用戶或用戶組對配額分區的權限配置正確。

 

3.配置Samba支持用戶配額限制:

 

注意事項:

1.Samba在匿名模式下由於所有訪問用戶都映射為nobody,故而做quota意義不大;
2.Samba在用戶模式(包括域環境下Samba)可以通過quota實現訪問共享用戶的配額管理;{修改域用戶的磁盤配額使用帶域名的完整用戶名,如:test@xyz.local};
配置步驟:

1.建立支持域認證的Samba共享服務;
2.配置Samba數據分區啟用quota功能;
3.配置用戶模版quota:

 

xfs_quota -x -c "limit -u bsoft=950M bhard=1024M quotauser" /home

 

4.復制模版配置給新用戶

 

#自動建立家目錄和quota腳本
vi /root/mkhome.sh
 
#!/bin/bash
user=$1
group=$2
home=/home/$1
 
if [ ! -d $home ]; then
mkdir -p $home
chown $user $home
chgrp $gropu $home
chmod 744 $home
edquota -p quotauser -u $user
fi

#設置mkhome.sh為700權限
chmod 700 /root/mkhome.sh

#通過samba的root preexec參數來執行samba登錄腳本,用來實現登錄samba共享時自動創建用戶家目錄;
vi /etc/samba/smb.conf
 
;在homes里面加入
path = /home/$U
root preexec = /root/mkhome.sh %U %G

 

四,磁盤配額的步驟:

1,首先創建要磁盤配額的用戶(add)

2,首先編輯/etc/fstab文件

使用vi編輯器對/home所在行進行修改,增加命令選項usrquota和grpquota,分別對應用戶級和組級配管理設置。

ps:設置完成后需要重啟系統,不重啟系統則不生效

2,執行quotacheck命令,創建aquota.user文件

輸入命令quotacheck -avgu

3,執行edquota命令,設置用戶的配額

參數-u表示設置用戶的磁盤配額(缺省時默認設置用戶磁盤配額)

 4,啟動配額管理

輸入quotaon -avgu:啟動磁盤配額

輸入quotaoff -avgu:關閉磁盤配額

5,查看用戶的磁盤配額

 

 

參考:https://www.cnblogs.com/Beavan/p/13051341.html

https://www.cnblogs.com/zy07zj18/p/7865401.html

 


免責聲明!

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



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