Implementing Quota in Solaris 10

In Solaris, system administrator can control the size of the UFS file system by limiting the amount of disk space using quota. For this reason, quotas are especially useful on the file systems where user home directories reside. As a rule, public and /tmp file systems usually do not benefit as much from the establishment of quotas.

Take a look at my example..


root@fileserver # df -h
Filesystem size used avail capacity Mounted on
/dev/dsk/c1t0d0s0 53G 667M 52G 2% /
/devices 0K 0K 0K 0% /devices
ctfs 0K 0K 0K 0% /system/contract
proc 0K 0K 0K 0% /proc
mnttab 0K 0K 0K 0% /etc/mnttab
swap 3.2G 1.6M 3.2G 1% /etc/svc/volatile
objfs 0K 0K 0K 0% /system/object
sharefs 0K 0K 0K 0% /etc/dfs/sharetab
/dev/dsk/c1t0d0s4 4.8G 3.5G 1.2G 75% /usr
/platform/sun4u-us3/lib/libc_psr/libc_psr_hwcap1.so.1
53G 667M 52G 2% /platform/sun4u-us3/lib/libc_psr.so.1
/platform/sun4u-us3/lib/sparcv9/libc_psr/libc_psr_hwcap1.so.1
53G 667M 52G 2% /platform/sun4u-us3/lib/sparcv9/libc_psr.so.1
fd 0K 0K 0K 0% /dev/fd
swap 3.2G 0K 3.2G 0% /tmp
swap 3.2G 48K 3.2G 1% /var/run
/dev/dsk/c1t0d0s5 4.8G 435M 4.3G 9% /opt
/dev/dsk/c1t0d0s6 4.8G 4.9M 4.8G 1% /export/home
/dev/md/dsk/d10 202G 64M 200G 1% /data


There are 30 users will be using the /data directory. Each of the them will have 5GB disk space. To implement the quota on /data slice, first you need to make a file called qoutas under /data directory

1. Change directory to /data
root@fileserver # cd /data

2. Create file called quotas
root@fileserver # touch quotas

3. Edit the /etc/vfstab file and add rq to the mount options field for each UFS file system that will have quotas.
root@fileserver # vi /etc/vfstab
/dev/md/dsk/d10 /dev/md/rdsk/d10/data ufs 3 yes rq

4. Change permissions to read/write for root access only on quotas
root@fileserver # chmod 600 quotas

5. Set quotas for a user
root@fileserver # edquota kks

You'll see a file containing a description about the quotas allocation.
fs /files blocks (soft = 0, hard = 0) inodes (soft = 0, hard = 0)

I'm gonna set the quotas for each user around 5GB each.
fs /files blocks (soft = 4500000, hard = 5000000) inodes (soft = 0, hard = 0)
We call that user kks as a prototype to make another quotas for the rest of the users.

6. root@fileserver # edquota -p kks trs ppa djk bsk ksn opr usk ren umm sdm umn wem tek usy int mar lpn kmp spi kpi jal huk kpn jdi cmo kpd dlk pku drk

7. Check the quotas
root@fileserver # quotacheck -va
*** Checking quotas for /dev/md/rdsk/d10 (/data)
/dev/md/rdsk/d10: trs fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: ppa fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: djk fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: bsk fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: ksn fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: opr fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: usk fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: ren fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: umm fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: sdm fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: umn fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: wem fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: tek fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: usy fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: int fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: mar fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: lpn fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: kmp fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: spi fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: kpi fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: jal fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: huk fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: kpn fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: jdi fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: cmo fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: kpd fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: dlk fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: pku fixed: files 0 -> 5 blocks 0 -> 10
/dev/md/rdsk/d10: drk fixed: files 0 -> 5 blocks 0 -> 10


8. Turning on the quotas
root@fileserver # quotaon -v /dev/md/dsk/d10
/data: quotas turned on

9. Check for exceeded quotas
root@fileserver # quota -v trs
Disk quotas for trs (uid 101):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v ppa
Disk quotas for ppa (uid 102):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v djk
Disk quotas for djk (uid 103):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v bsk
Disk quotas for bsk (uid 104):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v ksn
Disk quotas for ksn (uid 105):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v opr
Disk quotas for opr (uid 106):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v usk
Disk quotas for usk (uid 107):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v ren
Disk quotas for ren (uid 108):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v umm
Disk quotas for umm (uid 109):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v sdm
Disk quotas for sdm (uid 110):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v umn
Disk quotas for umn (uid 111):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v wem
Disk quotas for wem (uid 112):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v tek
Disk quotas for tek (uid 113):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v usy
Disk quotas for usy (uid 114):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v int
Disk quotas for int (uid 115):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v mar
Disk quotas for mar (uid 116):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v lpn
Disk quotas for lpn (uid 117):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v kmp
Disk quotas for kmp (uid 118):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v spi
Disk quotas for spi (uid 119):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v kpi
Disk quotas for kpi (uid 120):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v jal
Disk quotas for jal (uid 121):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v huk
Disk quotas for huk (uid 122):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v kpn
Disk quotas for kpn (uid 123):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v jdi
Disk quotas for jdi (uid 124):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v cmo
Disk quotas for cmo (uid 125):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v kpd
Disk quotas for kpd (uid 126):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v dlk
Disk quotas for dlk (uid 127):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v pku
Disk quotas for pku (uid 128):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0
root@fileserver # quota -v drk
Disk quotas for drk (uid 129):
Filesystem usage quota limit timeleft files quota limit timeleft
/data 5 4500000 5000000 5 0 0


10. Check quotas on the filesystem
root@fileserver # repquota -va
/dev/md/dsk/d10 (/data):
Block limits File limits
User used soft hard timeleft used soft hard timeleft
kks -- 5 4500000 5000000 5 0 0
trs -- 5 4500000 5000000 5 0 0
ppa -- 5 4500000 5000000 5 0 0
djk -- 5 4500000 5000000 5 0 0
bsk -- 5 4500000 5000000 5 0 0
ksn -- 5 4500000 5000000 5 0 0
opr -- 5 4500000 5000000 5 0 0
usk -- 5 4500000 5000000 5 0 0
ren -- 5 4500000 5000000 5 0 0
umm -- 5 4500000 5000000 5 0 0
sdm -- 5 4500000 5000000 5 0 0
umn -- 5 4500000 5000000 5 0 0
wem -- 5 4500000 5000000 5 0 0
tek -- 5 4500000 5000000 5 0 0
usy -- 5 4500000 5000000 5 0 0
int -- 5 4500000 5000000 5 0 0
mar -- 5 4500000 5000000 5 0 0
lpn -- 5 4500000 5000000 5 0 0
kmp -- 5 4500000 5000000 5 0 0
spi -- 5 4500000 5000000 5 0 0
kpi -- 5 4500000 5000000 5 0 0
jal -- 5 4500000 5000000 5 0 0
huk -- 5 4500000 5000000 5 0 0
kpn -- 5 4500000 5000000 5 0 0
jdi -- 5 4500000 5000000 5 0 0
cmo -- 5 4500000 5000000 5 0 0
kpd -- 5 4500000 5000000 5 0 0
dlk -- 5 4500000 5000000 5 0 0
pku -- 5 4500000 5000000 5 0 0
drk -- 5 4500000 5000000 5 0 0

No comments:

Post a Comment