磁盤配額
配額:quota
什么是磁盤配額?? ?
? ? 限制磁盤資源的使用的虽界。
限制原因就是因為資源不是無限的浓恳。
應(yīng)用場合:
? ? 1、網(wǎng)絡(luò)存儲空間有限?
? ? 2颈将、郵件服務(wù)器
? ? 3晴圾、公司的文件共享服務(wù)器
能限制誰噪奄?
? ? 1、限制普通用戶
? ? 2勤篮、限制用戶組
? ? ? 注意:沒有辦法限制root的碰缔。
能夠限制什么?
? ? inode —— 限制用戶創(chuàng)建文件的個數(shù)
? ? block —— 限制用戶能夠使用的磁盤空間的大小
設(shè)置配額的條件?
? ? 需要內(nèi)核支持quota的功能
? ? [loring ~]# grep -i quota /boot/config-2.6.32-358.el6.x86_64
? ? ? ? CONFIG_NETFILTER_XT_MATCH_QUOTA=m
? ? ? ? CONFIG_XFS_QUOTA=y
? ? ? ? CONFIG_QUOTA=y? ? //看到此行表示支持
? ? ? ? CONFIG_QUOTA_NETLINK_INTERFACE=y
? ? ? ? CONFIG_PRINT_QUOTA_WARNING=y
? ? ? ? # CONFIG_QUOTA_DEBUG is not set
? ? ? ? CONFIG_QUOTA_TREE=y
? ? ? ? CONFIG_QUOTACTL=y
如何進(jìn)行磁盤配額腌且?usrquota榛瓮,grpquota
? ? 1禀晓、首先需要分區(qū)開啟用戶配額和組配額
? ? ? ? 創(chuàng)建一個分區(qū)并將其格式化
? ? ? ? ? [loring ~]#? fdisk /dev/sda
? ? ? ? ? [loring ~]#? partx -a /dev/sda
? ? ? ? ? [loring ~]#? mkfs.ext4 /dev/sda10? ? ?
? ? ? ? 將其掛載到系統(tǒng)中的/quota目錄
? ? ? ? ? [loring ~]# mkdir /quota
? ? ? ? ? [loring ~]# mount -o usrquota,grpquota /dev/sda10 /quota/
? ? ? ? 將分區(qū)設(shè)置為開機(jī)自動掛載(可選)
? ? ? ? ? [loring ~]# vim /etc/fstab
? ? ? ? ? ? /dev/sda10? ? ? /quota? ext4? ? defaults,usrquota,grpquota 0 0
? 2、創(chuàng)建配額記錄文件
? ? ? ? [loring ~]# quotacheck -cugv /quota/
? ? ? ? [loring ~]# ls /quota/? ? ? ? ? //有如下文件即可
? ? ? ? ? ? aquota.group? aquota.user
? ? ? ? ? ? -c:--create 創(chuàng)建磁盤配額的配置文件
? ? ? ? ? ? -u:--user 針對用戶配額的配置文件
? ? ? ? ? ? -g:--group 針對組配額的配置文件
? ? ? ? ? ? -v:--verbose 詳細(xì)顯示掃描過程中的信息
? ? ? ? ? ? -a:--all 檢測系統(tǒng)中所有已經(jīng)掛載的支持quota功能的分區(qū)
? 3驻右、針對用戶和組進(jìn)行配額
? ? ? ? [loring ~]# useradd quota1
? ? ? ? [loring ~]# useradd quota2
? ? ? ? [loring ~]# useradd -g quota2 quota3? ?
? ? ? ? [loring ~]# chmod 1777 /quota/? ? ? //保證普通用戶對/quota目錄可寫
? ? ? ? 例子:限制quota1用戶最多使用8M空間或者創(chuàng)建10個文件崎淳;當(dāng)使用空間超過5M或者創(chuàng)建文件超過5個時警告
? ? ? ? [loring ~]# edquota [-u] quota1 [-f /quota]? //編輯方式同vim
? ? ? ? ? ? -u:編輯user的quota
-g:編輯group的quota
-t:編輯寬限時間
-p:復(fù)制資料到另一個用戶上
blocks :現(xiàn)在使用者(quota:uid=5011)在/dev/hda7所使用的空間,單位:KB (不要修改)
soft :soft limit 磁盤空間限定值 單位:KB (需要設(shè)定)
hard :hard limit 磁盤空間限定值 單位: KB (需要設(shè)定)
inodes :現(xiàn)在使用者使用掉的inodes,由于不容易使用inode控制,所以不要修改他森爽。
soft :soft limit 文檔限制數(shù)量 (根據(jù)需要修改)
hard :hard limit 文檔限制數(shù)量 (根據(jù)需要修改)
soft limit :最低限制容量嚣镜,在寬限期(grace period)之內(nèi),使用容量能夠超過soft limit付呕,但必須在寬限期之內(nèi)將使用容量降低到soft limit以下跌捆。
hard limit :最終限制容量,假如使用者在寬限期內(nèi)繼續(xù)寫入數(shù)據(jù)姆钉,到達(dá)hard limit將無法再寫入抄瓦。
寬限時間:使用容量超過soft limit,寬限時間自動啟動,使用者將容量降低到soft limit以下毯辅,寬限時間自動關(guān)閉煞额,假如使用者沒有在寬限時間內(nèi)將容量降低到soft limit沾谜,那么他將無法再寫入數(shù)據(jù)壁袄,即使使用容量沒有到達(dá)hard limit
Disk quotas for user quota1 (uid 6668):
? Filesystem? ? ? ? ? ? ? ? ? blocks? ? ? soft? ? ? hard? ? inodes? ? soft? ? hard
? /dev/sda10? ? ? ? ? ? ? ? ? ? ? ? 0? ? ? 5120? ? ? 8192? ? ? ? ? 0? ? ? 5? ? ? 10
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 單位是KB? ? ? ? ? ? ? ? ? ? ? ? 單位是個
? ? ? ? (補(bǔ)充:quota -uv quota_name 顯示user信息)? ? ? ? ? ? ? ? ? ? ? ? ? ?
? 4、啟動配額? —— 一定要記住這步
? ? ? ? [loring ~]# quotaon /quota/
? 5涩僻、測試配額
? ? 1)文件個數(shù)測試
? ? ? ? [loring ~]# su - quota1
? ? ? ? [quota1@loring ~]$ cd /quota/? ? //一定要切換到做了配額的目錄下再操作
? ? ? ? [quota1@loring quota]$ touch quota1_{1,2,3,4,5,6}? //超過軟限制栈顷,有警告,但是仍然可以創(chuàng)建quota1_6
? ? ? ? ? ? sda10: warning, user file quota exceeded.? //超軟限制告警
? ? ? ? [quota1@loring quota]$ ls
? ? ? ? ? ? aquota.group? quota1_1? quota1_3? quota1_5
? ? ? ? ? ? aquota.user? quota1_2? quota1_4? quota1_6
? ? ? ? [quota1@loring quota]$ touch quota1_{7,8,9,10,11}? ? //超過硬限制室抽,不能夠創(chuàng)建quota1_11文件
? ? ? ? ? ? sda10: write failed, user file limit reached.? //超過硬限制的提示信息
? ? ? ? ? ? touch: cannot touch `quota1_11': Disk quota exceeded
? ? ? ? [quota1@loring quota]$ ls
? ? ? ? ? ? aquota.group? quota1_1? quota1_2? quota1_4? quota1_6? quota1_8
? ? ? ? ? ? aquota.user? quota1_10? quota1_3? quota1_5? quota1_7? quota1_9
? ? ? 2)使用空間測試
? ? ? ? [quota1@loring quota]$ rm -f quota1_*
? ? ? ? [quota1@loring quota]$ dd if=/dev/zero of=quota1_2m bs=2M count=1
? ? ? ? [quota1@loring quota]$ ll
? ? ? ? [quota1@loring quota]$ dd if=/dev/zero of=quota1_4m bs=4M count=1
? ? ? ? ? ? sda10: warning, user block quota exceeded.? //超過軟限制的警告?
? ? ? ? [quota1@loring quota]$ ll
? ? ? ? [quota1@loring quota]$ dd if=/dev/zero of=quota1_6m bs=6M count=1
? ? ? ? ? ? sda10: write failed, user block limit reached.
? ? ? ? ? ? dd: writing `quota1_6m': Disk quota exceeded? //超過硬限制
? ? ? ? ? ? 1+0 records in
? ? ? ? ? ? 0+0 records out
? ? ? ? ? ? 2097152 bytes (2.1 MB) copied, 0.0185134 s, 113 MB/s
? ? ? ? [quota1@loring quota]$ ll quo*
? ? ? ? ? ? -rw-rw-r-- 1 quota1 quota1 2097152 Aug? 8 15:05 quota1_2m
? ? ? ? ? ? -rw-rw-r-- 1 quota1 quota1 4194304 Aug? 8 15:06 quota1_4m
? ? ? ? ? ? -rw-rw-r-- 1 quota1 quota1 2097152 Aug? 8 15:07 quota1_6m
? ? ? ? ? ? ? quota1_6m:超過硬限制了坪圾,它只會將分配給該用戶的剩余空間全部使用惑朦,quota1_2m、quota1_4m和quota1_6m三個文件的總空間無法超出8M病梢。
練習(xí):
? ? 設(shè)置quota1用戶的配額為可以存放3M文件或者6個文件梁肿,當(dāng)?shù)竭_(dá)1M或者創(chuàng)建3個文件時警告
? ? [loring ~]# edquota quota1? ?
? ? ? ? ? ? Disk quotas for user quota1 (uid 6668):
? ? ? Filesystem? ? ? ? ? ? ? ? ? blocks? ? ? soft? ? ? hard? ? inodes? ? soft? ? hard
? ? ? /dev/sda11? ? ? ? ? ? ? ? ? ? 8192? ? ? 1024? ? ? 3072? ? ? ? ? 3? ? ? ? 3? ? ? ? 6
? ? [loring ~]# su - quota1
? ? [quota1@loring ~]$ cd /quota/
? ? [quota1@loring quota]$ rm -f qu*
? ? [quota1@loring quota]$ ls
? ? ? ? aquota.group? aquota.user
? ? [quota1@loring quota]$ touch 1 2 3 4
? ? ? ? sda10: warning, user file quota exceeded.
? ? [quota1@loring quota]$ touch 5 6 7
? ? ? ? sda10: write failed, user file limit reached.
? ? ? ? touch: cannot touch `7': Disk quota exceeded
? ? [quota1@loring quota]$ ls
? ? ? ? 1? 2? 3? 4? 5? 6? aquota.group? aquota.user
? ? ---組配額的限制
? ? ? ? ? ? edquota -g quota2
關(guān)閉配額
? ? [loring ~]# quotaoff /quota/
查看配額的使用情況(只有root能這么做)
? ? [loring ~]# repquota -a
? ? ? ? *** Report for user quotas on device /dev/sda10
? ? ? ? Block grace time: 7days; Inode grace time: 7days
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Block limits? ? ? ? ? ? ? ? File limits
? ? ? ? User? ? ? ? ? ? used? ? soft? ? hard? grace? ? used? soft? hard? grace
? ? ? ? ----------------------------------------------------------------------
? ? ? ? root? ? ? --? ? ? 20? ? ? 0? ? ? 0? ? ? ? ? ? ? 2? ? 0? ? 0? ? ?
? ? ? ? quota1? ? -+? ? ? 0? ? 1024? ? 3072? ? ? ? ? ? ? 6? ? 3? ? 6? 6days
? ? grace:優(yōu)雅時間吩蔑,當(dāng)超過軟限制,優(yōu)雅時間倒計時為0時霉旗,軟限制自動提升為硬限制蛀骇;直到用戶將使用空間或文件個數(shù)降至軟限制以下读拆,才能夠繼續(xù)使用該分區(qū)。
? ? ? ? 例子:假如硬限制100M暑诸,軟限制70M,用戶當(dāng)前已使用85M个榕,那么優(yōu)雅時間開始倒計時,直到優(yōu)雅時間為0凰萨,那么剩余的那15M空間也不能使用了械馆,即軟限制自動提升為硬限制。
? ? ? ? grace默認(rèn)是7天珊搀。
? ? ? ? 另外:
? ? ? ? [loring ~]# edquota quota2
? ? ? ? ? ? ? ? ? ? Disk quotas for user quota2 (uid 6669):
? ? ? ? ? Filesystem? ? ? ? ? ? ? ? ? blocks? ? ? soft? ? ? hard? ? inodes? ? soft? ? hard
? ? ? ? ? /dev/sda10? ? ? ? ? ? ? ? ? ? ? ? 0? ? ? ? ? 0? ? ? ? ? 0? ? ? ? ? 0? ? ? ? 5? ? ? ? 8
? ? ? ? [loring ~]# repquota -a? //看不到quota2的信息尾菇,是因為他沒有創(chuàng)建任何文件
? ? ? ? ? ? *** Report for user quotas on device /dev/sda10
? ? ? ? ? ? Block grace time: 7days; Inode grace time: 7days
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Block limits? ? ? ? ? ? ? ? File limits
? ? ? ? ? ? User? ? ? ? ? ? used? ? soft? ? hard? grace? ? used? soft? hard? grace
? ? ? ? ? ? ----------------------------------------------------------------------
? ? ? ? ? ? root? ? ? --? ? ? 20? ? ? 0? ? ? 0? ? ? ? ? ? ? 2? ? 0? ? 0? ? ?
? ? ? ? ? ? quota1? ? -+? ? ? 0? ? 1024? ? 3072? ? ? ? ? ? ? 5? ? 3? ? 6? 5days
? ? ? ? [loring ~]# su - quota2
? ? ? ? [quota2@loring ~]$ cd /quota/
? ? ? ? [quota2@loring quota]$ touch hello
? ? ? ? [quota2@loring quota]$ exit
? ? ? ? ? ? logout
? ? ? ? [loring ~]# repquota -a
? ? ? ? ? ? *** Report for user quotas on device /dev/sda10
? ? ? ? ? ? Block grace time: 7days; Inode grace time: 7days
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Block limits? ? ? ? ? ? ? ? File limits
? ? ? ? ? ? User? ? ? ? ? ? used? ? soft? ? hard? grace? ? used? soft? hard? grace
? ? ? ? ? ? ----------------------------------------------------------------------
? ? ? ? ? ? root? ? ? --? ? ? 20? ? ? 0? ? ? 0? ? ? ? ? ? ? 2? ? 0? ? 0? ? ?
? ? ? ? ? ? quota1? ? -+? ? ? 0? ? 1024? ? 3072? ? ? ? ? ? ? 5? ? 3? ? 6? 5days
? ? ? ? ? ? quota2? ? --? ? ? 0? ? ? 0? ? ? 0? ? ? ? ? ? ? 1? ? 5? ? 8
? 查看用戶的磁盤配額使用情況
? ? ? ? [loring ~]# repquota -u /quota/
? ? ? ? ? ? *** Report for user quotas on device /dev/sda10
? ? ? ? ? ? Block grace time: 7days; Inode grace time: 7days
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Block limits? ? ? ? ? ? ? ? File limits
? ? ? ? ? ? User? ? ? ? ? ? used? ? soft? ? hard? grace? ? used? soft? hard? grace
? ? ? ? ? ? ----------------------------------------------------------------------
? ? ? ? ? ? root? ? ? --? ? ? 20? ? ? 0? ? ? 0? ? ? ? ? ? ? 2? ? 0? ? 0? ? ?
? ? ? ? ? ? quota1? ? -+? ? ? 0? ? 1024? ? 3072? ? ? ? ? ? ? 5? ? 3? ? 6? 5days
? ? ? ? ? ? quota2? ? --? ? ? 0? ? ? 0? ? ? 0? ? ? ? ? ? ? 1? ? 5? ? 8?
? 查看組的配額使用情況
? ? ? ? [loring ~]# repquota -g /quota/
? ? ? ? ? ? *** Report for group quotas on device /dev/sda10
? ? ? ? ? ? Block grace time: 7days; Inode grace time: 7days
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Block limits? ? ? ? ? ? ? ? File limits
? ? ? ? ? ? Group? ? ? ? ? used? ? soft? ? hard? grace? ? used? soft? hard? grace
? ? ? ? ? ? ----------------------------------------------------------------------
? ? ? ? ? ? root? ? ? --? ? ? 20? ? ? 0? ? ? 0? ? ? ? ? ? ? 2? ? 0? ? 0? ? ?
? ? ? ? ? ? quota1? ? --? ? ? 0? ? ? 0? ? ? 0? ? ? ? ? ? ? 5? ? 0? ? 0? ? ?
? ? ? ? ? ? quota2? ? --? ? ? 0? ? ? 0? ? ? 0? ? ? ? ? ? ? 1? ? 0? ? 0?
總結(jié):
? ? 1劳淆、掛載分區(qū)使其支持用戶配額和組配額功能
? ? 2千埃、創(chuàng)建磁盤配額配置文件? quotacheck
? ? 3、配置用戶的磁盤配額? edquota
? ? 4谒臼、開啟配額? quotaon
? ? 5蜈缤、測試配額情況
概念
? ? 軟限制冯挎、硬限制