Linux之磁碟配額
一,磁碟管理的概念:
Linux系統是多使用者任務作業系統,在使用系統時,會出現多使用者共同使用一個磁碟的情況,如果其中少數幾個使用者佔用了大量的磁碟空間,勢必壓縮其他使用者的磁碟的空間和使用許可權。因此,系統管理員應該適當的開放磁碟的許可權給使用者,以妥善分配系統資源。
二,什麼是磁碟配額:
磁碟配額是一種磁碟空間的管理機制,使用磁碟配額可限制使用者或組在某個特定檔案系統中所能使用的最大空間。
三,磁碟配額的步驟:
1,首先建立要磁碟配額的使用者(add)
[[email protected] ~]# groupadd myquota
[[email protected]
[[email protected] ~]# useradd -g myquota quota2
2,首先編輯/etc/fstab檔案
使用vi編輯器對/home所在行進行修改,增加命令選項usrquota和grpquota,分別對應使用者級和組級配管理設定。
- [[email protected] /]# vim /etc/fstab
/dev/sdb1 /dvd xfs defaults,usrquota,grpquota
1 2
ps:設定完成後需要重啟系統,不重啟系統則不生效
3,執行quotacheck命令,建立aquota.user檔案
- [[email protected] /]# quotacheck -avug
quotacheck: Quota for users is enabled on mountpoint /dvd so quotacheck might damage the file.
Please turn quotas off or use -f to force checking.
-a : 掃描所有在/etc/mtab中開啟quota的檔案系統
-v : 顯示掃描過程
-u : 掃描所有user quotas (usrquota)
-g : 掃描所有group quotas (grpquota)
4,執行edquota命令,設定使用者的配額
引數-u表示設定使用者的磁碟配額(預設時預設設定使用者磁碟配額)
5,啟動配額管理QUOTA:(quotaon 為啟動 quotaoff 為關閉)
輸入quotaon -avgu:啟動磁碟配額
- [[email protected] /]# quotaon -avug
/dev/sdb1 [/dvd]: group quotas turned on
/dev/sdb1 [/dvd]: user quotas turned on
-a : 開啟所有quota設定,根據/etc/mtab設定
-v : 當開啟quota時顯示資訊
輸入quotaoff -avgu:關閉磁碟配額
6,檢視使用者的磁碟配額
這裡設定使用者quota最大使用容量為20M,當使用到10M時會得到警告要求降低到10M最多可以建立10個檔案,當建立5個檔案時會得到警告要求降低到5個檔案
-
[[email protected] test]# edquota -u quota1 -->修改針對quota1使用者的配置
Disk quotas for user quota1 (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 0 100000 200000 0 0 0 -
[[email protected] test]# edquota -u quota2 -->修改針對quota2使用者的配置
Disk quotas for user quota2 (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 0 100000 200000 0 0 0 -
[[email protected] test]# edquota -g myquota -->修改針對myquota組的配置
Disk quotas for group myquota (gid 500):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 251200 100000 300000 3 0 0
這樣配置表示quota1,quota2使用者最多使用200M的磁碟空間,超過100M就發出警告並進入倒計時,而myquota組最多使用300M的磁碟空間。
也就是說,雖然quota1,quota2都有200M的最大磁碟空間能使用許可權,但他們都屬於myquota組,他們的總量不得超過300M
-u : 編輯user的quota
-g : 編輯group的quota
-t : 編輯寬限時間
-p : 複製quota資料到另一使用者上
blocks :目前使用者(quota:uid=5011)在/dev/hda7所使用的空間,單位:KB (不要修改)
soft :soft limit 磁碟空間限定值 單位:KB (需要設定)
hard :hard limit 磁碟空間限定值 單位: KB (需要設定)
inodes :目前使用者使用掉的inodes,由於不容易使用inode控制,所以不要修改它。
soft :soft limit 檔案限制數量 (根據需要修改)
hard :hard limit 檔案限制數量 (根據需要修改)
soft limit :最低限制容量,在寬限期(grace period)之內,使用容量可以超過soft limit,但必須在寬限期之內將使用容量降低到soft limit以下。
hard limit :最終限制容量,如果使用者在寬限期內繼續寫入資料,到達hard limit將無法再寫入。
寬限時間:使用容量超過soft limit,寬限時間自動啟動,使用者將容量降低到soft limit以下,寬限時間自動關閉,如果使用者沒有在寬限時間內將容量降低到soft limit,那麼他將無法再寫入資料,即使使用容量沒有到達hard limit
7,修改許可權,進行磁碟測試
[[email protected] test]# chmod 777 .
[[email protected] test]# ll -d
drwxrwxrwx. 3 root root 4096 8月 23 09:36 .
切換quota1使用者,進行測試
[[email protected] test]# su quota1
[[email protected] test]$ dd if=/dev/zero of=bigfile1 bs=1M count=150
sdb1: warning, user block quota exceeded. -->警告
記錄了150+0 的讀入
記錄了150+0 的寫出
157286400位元組(157 MB)已複製,1.02545 秒,153 MB/秒
再寫入一個大檔案
[[email protected] test]$ dd if=/dev/zero of=bigfile2 bs=1M count=150
sdb1: write failed, user block limit reached.
dd: 正在寫入"bigfile2": 超出磁碟限額 -->超過200M的部分就無法寫入了
記錄了46+0 的讀入
記錄了45+0 的寫出
47513600位元組(48 MB)已複製,0.381467 秒,125 MB/秒
切換quota2使用者
[[email protected] test]# su quota2
[[email protected] test]$ ls
aquota.group aquota.user bigfile1 bigfile2 lost+found
[[email protected] test]$ dd if=/dev/zero of=bigfile3 bs=1M count 50
記錄了50+0 的讀入
記錄了50+0 的寫出
52428800位元組(52 MB)已複製,0.410838 秒,128 MB/秒
修改警告時間
[[email protected] test]$ 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/sdb1 7days 7days
檢視quota1的quota資訊
[[email protected] test]$ quota -u quota1
Disk quotas for user quota1 (uid 500):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdb1 200000* 100000 200000 6days 2 0 0 -->已經進入警告的倒計時了
查詢quota2的quota資訊
[[email protected] test]# quota -u quota2
Disk quotas for user quota2 (uid 501):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdb1 51200 100000 200000 1 0 0
查詢myquota組的quota資訊
[[email protected] test]# quota -g myquota
Disk quotas for group myquota (gid 500):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdb1 251200* 100000 300000 6days 3 0 0
總結:
-
quotacheck [ -gubcfinvdMmR ] [ -F quota-format ] -a | filesystem
-a 檢查所有/etc/mtab中掛在的檔案系統
-u 只檢查使用者的quota
-g 只檢查使用者組的quota
-
quota
不使用任何引數,查詢當前使用者的quota資訊
-u username 查詢某使用者的quota資訊
-g groupname 查詢某使用者組的quota資訊
-
edquota
-u username 編輯某使用者的quota配置
-g groupname 編輯某使用者組的quota配置
-t 編輯警告時間的配置