2021-05-12 14:32:11
磁碟配額管理
在多使用者系統中,如果沒有對使用者使用的磁碟空間做出限制,使用者無限制地存放資料和檔案,可能會導致系統磁碟空間告警。如果存放的是無用資料,就會導致磁碟空間白白浪費。磁碟配額可以限制使用者或組在磁碟上存放檔案的空間,這樣既可以讓使用者擁有一定的儲存空間,又可以避免使用者無限制地存放資料導致系統磁碟空間不足。
一、為磁碟配額提供支援
在Linux系統中,為磁碟配額提供支援的是quota軟體包,如果系統中沒有安裝這個軟體包,使用者可以自行安裝。
在設定磁碟配額之前,必須要獲檔案系統的支援。為此需要系統中的自動掛載檔案/etc/fstab,為相應的檔案系統新增掛載引數:usrquota(啟用使用者限額)和grpquota(啟用使用者組限額)。
以磁碟分割區/dev/sda3為例,講解如何建立磁碟配額。
(1)修改自動掛載檔案/etc/fstab,啟用檔案系統sda3的配額支援,將其修改為以下內容:
/dev/sda3 /home ext3 defaults,usrquota,grpquota 1 2
(2)修改完之後,需要重新掛載檔案系統,以啟動磁碟配額支援:
# umount /home # mount /dev/sda3 /home
也可以使用以下命令重新掛載/etc/fstab中記錄的所有分割區:
#使用mount的選項a重新掛載所有分割區 # mount -a
實在不行就重新啟動系統即可。
(3)修改完成之後,可以使用mount命令驗證設定:
#使用mount命令檢視掛載的分割區及引數 # mount ... /dev/sda3 on /home type ext3 (rw,usrquota,grpquota)
如果在命令輸出中看到usrquota和grpquota,表明已經成功啟用磁碟配額支援。
二、檢查磁碟配額命令quotacheck
啟用了檔案系統的配額支援後,還不能立即使用配額,還必須檢查相應的檔案系統,並建立磁碟配額檔案。檢測檔案系統並建立磁碟配額檔案,需要使用命令quotacheck。
【命令格式】
quotacheck [option] filesystem
【常用選項】
-c:跳過原有配額檔案,只執行新的掃描並儲存到磁碟。 -v:顯示命令詳細資訊。 -u:檢查使用者使用檔案系統的情況。 -g:檢查使用者組使用檔案系統的情況。
【用法範例】
(1)檢查磁碟分割區/dev/sdd1,並將相關資訊寫入到配額檔案中:
# quotacheck -cug /home
(2)如果要驗證上述命令的執行結果,可以使用ls命令檢視建立的配額組態檔:
# ls -l /home/aquota* -rw------- 1 root root 7168 Dec 11 14:32 /home/aquota.group -rw------- 1 root root 7168 Dec 11 14:32 /home/aquota.user
從上面的命令輸出可以看出,命令在檔案系統的根目錄中建立了兩個檔案:aquota.group和aquota.user。這兩個檔案分別用於存放使用者和使用者組的磁碟配額資訊,包括檔案系統的使用情況及設定資訊等。
三、檢視磁碟使用情況命令repquota
在所有使用者都可以使用的檔案系統上,並不需要為每個使用者都設定磁碟配額,通常只需要為那些經常存放大檔案、嚴重占用磁碟空間的使用者設定即可。
檢視檔案系統的使用情況,可以使用repquota命令(使用該命令的前提是已經建立了磁碟配額檔案): 複製程式碼
# repquota /home *** Report for user quotas on device /dev/sda3 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 156232 0 0 166 0 0 zhu -- 40 0 0 5 0 0 user1 -- 32 0 0 4 0 0 li -- 52 0 0 7 0 0 ljx -- 32 0 0 4 0 0 wlh -- 32 0 0 4 0 0 mysql -- 32 0 0 4 0 0 user2 -- 32 0 0 4 0 0
檢視上述命令的輸出並選擇要限制的使用者,之後就可以建立配額限制了。
四、建立磁碟配額命令edquota
完成前面的準備工作就可以開始設定磁碟配額了。
【命令格式】
edquota [option] [username] [groupname]
使用edquota命令建立磁碟配額時,需要指定建立配額的使用者和使用者組名。
【常用選項】
-u:指定限制的使用者名稱。 -g:指定要限制的使用者組名。 -p:複製使用者或使用者組的配額資訊。 -t:修改過渡期,即使用者的磁碟配額超過軟限制的寬限時間。
(1)為使用者zhu建立配額:
# edquota -u zhu
此時,命令會啟動使用者配額設定介面,設定介面文字如下(其實這個介面就是vi編輯器,可以像使用vi那樣編輯這些設定):
Disk quotas for user zhu (uid 500): Filesystem blocks soft hard inodes soft hard /dev/sda3 40 0 0 5 0 0
各自段意義:
-
Filesystem:當前正在設定配額限制的檔案系統。
-
blocks:當前使用者已經使用的磁碟分割區空間,單位是KB。
-
soft:對使用者使用的磁碟空間或檔案數的軟限制(磁碟空間單位是KB)。使用者使用的磁碟空間或檔案數在過渡期內可以超過這個限制。
-
hard:對使用者使用的磁碟空間或檔案數的硬限制。使用者使用的磁碟空間或檔案數絕對不能超過此限制。
-
inodes:使用者在當前磁碟空間中占用的i節點數,由系統自動統計,使用者不必修改此項。
在磁碟配額介面中有兩組soft、hard欄位,其中前一組soft、hard表示對磁碟空間大小的限制,後一組表示對檔案數的限制。
由於檔案數限制對一般的使用者而言意義不大,因此設定磁碟配額時,一般不在檔案數上設定限制。
注意:修改磁碟配額時,無論是磁碟空間限制,還是檔案數限制,硬限制的數值都應該比軟限制大。
在此範例中,假定需要設定使用者zhu的磁碟空間軟限制為1.5GB,硬限制為2GB。可以將配額修改為如下:
Disk quotas for user zhu (uid 500): Filesystem blocks soft hard inodes soft hard /dev/sda3 40 1500000 200000 5 0 0
儲存退出後即可完成設定。
設定上述配額限制後,如果zhu在該檔案系統上使用的空間超過1.5GB,系統就會警告使用者。當使用者資料達到2GB時,將不能存入任何資訊。
(2)如果需要檢視設定的磁碟配額,可以使用quota命令。例如檢視使用者zhu的磁碟配額限制:
[root@localhost home]# quota -u zhu Disk quotas for user zhu (uid 500): Filesystem blocks quota limit grace files quota limit grace /dev/sda3 40 1500000 2000000 5 0 0
(3)如果要為多個使用者設定相同的磁碟配額,可以先設定其中一個使用者的磁碟配額,然後使用選項p將配額資訊複製給其他使用者。
例如將使用者zhu的磁碟配額複製給使用者li:
[root@localhost home]# edquota -p zhu -u li [root@localhost home]# quota -u li Disk quotas for user li (uid 502): Filesystem blocks quota limit grace files quota limit grace /dev/sda3 52 1500000 2000000 7 0 0
(4)如果需要對某個使用者組設定磁碟配額,可以使用編輯配額命令edquota的選項g。例如要設定使用者組teacher的磁碟配額:
# edquota -g teacher
檢視使用者組磁碟配額:
# quota -g teacher
(5)過渡期也稱為配額寬限時間,是指使用者在磁碟上存放資料的空間或檔案數超過了軟限制,但沒有達到硬限制時,使用者還能使用的最長寬限時間。使用者應該在過渡時間內,將磁碟使用空間降低到軟限制以下,否則將無法正常使用磁碟。
使用命令edquota的選項t可以修改過渡期:
# 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/sda3 7days 7days
上面的範例已經將過渡期設定為7天,讀者可以自行修改磁碟空間限制(Block grace period)和檔案數限制(Inode grace period)的過渡期時間。過渡期的單位可以是days、hours、minutes和seconds。
注意:不要對根分割區使用配額限制,否則會導致一些意外的情況發生,例如無法登入系統等。也不要對root使用者做配額限制,以免發生意外。
五、開啟磁碟配額命令quotaon
設定好使用者、使用者組配額和過渡期之後,還需要使用quotaon命令,在檔案系統上手動開啟配額限制功能。
【命令格式】
quotaon [option] filesystem
【常用選項】
-a:開啟所有檔案系統的磁碟配額功能。 -u:開啟使用者磁碟配額。 -g:開啟使用者組磁碟配額。 -v:如果開啟成功,就顯示提示資訊。
【用法範例】
(1)開啟指定檔案系統的磁碟配額功能:
[root@localhost home]# quotaon -vug /home /dev/sda3 [/home]: group quotas turned on /dev/sda3 [/home]: user quotas turned on
(2)也可以使用選項a開啟所有的檔案系統的磁碟配額功能:
# quotaon –av
需要注意的是,有些系統可能會自動開啟配額,不需要管理員手動開啟。
六、關閉磁碟配額命令quotaoff
用法同quotaon。
七、管理磁碟配額
(1)檢視磁碟使用情況:
[root@localhost home]# repquota /home *** Report for user quotas on device /dev/sda3 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 156232 0 0 166 0 0 zhu -- 40 1500000 2000000 5 0 0 user1 -- 32 0 0 4 0 0 li -- 52 1500000 2000000 7 0 0 ljx -- 32 0 0 4 0 0 wlh -- 32 0 0 4 0 0 mysql -- 32 0 0 4 0 0 user2 -- 32 0 0 4 0 0
使用者名稱後面的“--”,用於標識使用者當前是否已經超出了限制。如果超出了軟限制但沒有超出硬限制,則標識變為“+-”。
如果有多個檔案系統設定了磁碟配額限制,要檢視系統中所有磁碟的使用情況,可以使用repquota的選項a。
(2)校準磁碟使用情況:
磁碟配額使用一段時間後,系統記錄的磁碟使用情況可能會出現偏差,這時可以採用手動校準的方式保持準確性。
手動校準磁碟的使用情況,需要使用quotacheck命令:
# quotacheck -cug /dev/sda3
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-02/140306.htm
相關文章