磁碟配額的概念 quota 磁碟配額功能只在指定的文件系統(分區)內有效,未設置配額的文件系統不受限制。 quota 針對指定的用戶賬號、組賬號進行限制,其他用戶或組不受影響。 磁碟配額可以進行兩方面的限制: 磁碟容量 文件數量 磁碟容量:限制用戶能夠使用的磁碟數據塊(block)大小,也就是限制磁 ...
磁碟配額的概念
quota 磁碟配額功能只在指定的文件系統(分區)內有效,未設置配額的文件系統不受限制。
quota 針對指定的用戶賬號、組賬號進行限制,其他用戶或組不受影響。
磁碟配額可以進行兩方面的限制:
磁碟容量
文件數量
磁碟容量:限制用戶能夠使用的磁碟數據塊(block)大小,也就是限制磁碟空間大小, 預設單位為 KB。
文件數量:限制用戶能夠擁有的文件個數。
磁碟配額的限制方法分為軟限制和硬限制兩種。
軟限制:指設定一個軟性的配額數值(如 500MB 磁碟空間、200 個文件) ,在固定的寬限期(默 認為 7 天)內允許暫時超過這個限制,但系統會給出警告信息。
硬限制:指設定一個硬性的配額數值(如 1GB 磁碟空間、500 個文件) ,而且絕對禁止用戶超 過該限值。硬限制的配額值應大於相應的軟限制值,否則軟限制值將失效。
舉例:
軟體限製為:2G
硬限製為:1G
設置磁碟配額
啟用quota磁碟配額
# 首先要通過修改配置文件“/etc/fstab”的方式啟用 quota 磁碟配額。
[root@localhost var]# vim /etc/fstab
/dev/sdb1 /data ext4 defaults,usrquota,grpquota 0 0
# 將該文件系統重新掛載
[root@localhost ~]# mount -o remount /data
# 執行 mount 命令查看已經掛載的文件系統,檢查是否已經啟用了 usrquota 和 grpquota 功能
[root@localhost ~]# mount | grep sdb1 /dev/sdb1 on /data type ext4 (rw,usrquota,grpquota)
生成配額文件
# quotacheck 命令可以對文件系統進行磁碟配額檢測,發現哪些文件系統啟用了 磁碟配額功能
併在這些文件系統中生成配額文件 aquota.user 和 aquota.group。
[root@localhost ~]# quotacheck -cvug /data
相關選項的作用:
-c,創建配額文件。
-v,顯示詳細信息。
-u,檢查用戶配額信息,創建 aquota.user 文件。
-g,檢查組配額信息,創建 aquota.group 文件。
# 將 SELinux 設為許可模式
[root@localhost ~]# setenforce 0
# 再次執行 quotacheck 命令
[root@localhost ~]# quotacheck -cvug /data
# 查看生成的配額文件
[root@localhost ~]# ls /data
aquota.group aquota.user lost+found
編輯用戶的配額設置
# 使用 edquota 命令結合“-u”、 “-g”選項可用於編輯用戶或組的配額設置。
# 創建 financial 組,創建用戶 jerry,將 financial 指定為 jerry 的基本組。
[root@localhost ~]# edquota -u jerry //設置用戶 jerry 的磁碟配額
# Filesystem:表示本行配置對應的文件系統(分區),即配額的作用範圍。
# blocks:表示當前已使用的磁碟容量,預設單位為 KB。該值由 edquota 程式自動計算生成。
# soft:第 3 列中的 soft 對應為磁碟容量的軟限制數值,預設單位為 KB;
# 第 6 列中的 soft 對應為文件數量的軟限制數值位為個。
# hard:第 4 列中的 hard 對應為磁碟容量的硬限制數值,預設單位為 KB;
# 預設單 第 7 列中的 hard 對應為文件數量的硬限制數值,預設單位為個;
# inodes:表示當前已擁有的文件數量。該值由 edquota 程式自動計算生成。
編輯組的配額設置
# 設置 financial 組的磁碟配額
[root@localhost ~]# edquota -g financial
# 配額設置僅對基本組生效。如用戶 jerry 所屬的基本組是“financial”,所屬的附加組是“technology”
# 那麼只有針對“financial”組設置的配額才對 jerry 有效,而針對“technology”組設置的配額則對 jerry 沒有限制。
激活磁碟配額
# 激活“/data”文件系統的用戶、組配額
[root@localhost ~]# quotaon -ugv /data
/dev/sdb1 [/data]: group quotas turned on
/dev/sdb1 [/data]: user quotas turned on
# 相關選項的作用:
-u,激活用戶磁碟配額。
-g,激活組磁碟配額。
-v,顯示詳細信息。
驗證並查看磁碟配額
# 下麵使用受配額限制的用戶帳號(jerry)登錄 Linux 系統
# 並嚮應用了配額的文件系統進行複製文件等寫操作,測試所設置磁碟配額項是否有效
# 為了方便測試,將 用戶 jery 的基本組設為 financial,對用戶和組的磁碟配額功能一併進行測試。
# 用 dd 命令生成指定大小的測試文件
# 從設備文件/dev/zero 中複製數據到/home/jerry/test 文件,讀取 210 個大小為 1MB 的數據塊
[root@localhost ~]# dd if=/dev/zero of=/mnt/data bs=1KB count=120
記錄了 210+0 的讀入
記錄了 210+0 的寫出
220200960 位元組(220 MB)已複製,13.3504 秒,16.5 MB/秒
[root@localhost ~]# ll -h /home/jerry
總用量 211M -rw-r--r--. 1 root root 210M 11 月 6 10:49 test
# 開放 data/的寫入許可權
[root@localhost ~]#chmod 777 /data
# 查看用戶或分區的配額使用情況
# 使用 quota 命令結合“-u” 、“-g”選項分別查看指定用戶和組的配額使用情況。
# 執行 repquota /data 查看/data 文件系統的配額使用情況報告
關閉磁碟配額
利用 quotaoff -vug 命令關閉磁碟配額
總結:
通過 quota 磁碟配額可以方便地對單個用戶或用戶組的可用磁碟空間進行限制,使磁碟管理工作具有 更大的靈活性。
在生產環境中具體應用時還應註意,quota 是以每一個使用者,每一個文件系統為基礎的,它不能跨 文件系統對用戶做出瞭如指掌,如果使用者可能在超過一個以上的系統中建立文件,那麼必須在每一個文 件系統上分別設定 quota 配額。
另外,由於 root 用戶在 Linux 環境中具有至高無上的許可權,所以無法對 root 用戶設置配額。