Skip to main content

Disk Quotas (W.I.P.)

Enabling Disk Quotas

==Update /etc/fstab==
<pre>Update the fstab - adding ,usrquota,grpquota
/dev/VolGroup00/LogVol01 /                       ext3    noatime,usrquota,grpquota         1 1
/dev/mapper/ORAAPPVG-LV_U01 /u01 ext4 defaults,usrquota,grpquota 1 2
/dev/mapper/ORAAPPVG-LV_U02 /u02 ext4 defaults,usrquota,grpquota 1 2
/dev/mapper/ORAAPPVG-LV_U03 /u03 ext4 defaults,usrquota,grpquota 1 2
</pre>

==Create aquota file for each FS==
<pre>for FS in `grep usrquota /etc/fstab | awk '{ print $2 }'`; do touch ${FS}/aquota.user && chmod 0600 ${FS}/aquota.user; done
for FS in `grep grpquota /etc/fstab | awk '{ print $2 }'`; do touch ${FS}/aquota.group && chmod 0600 ${FS}/aquota.group; done
</pre>

==Remount Filesystem or reboot==
<pre>It is likely best to reboot at this point.
  Otherwise, run # mount -oremount /
</pre>==Turn on quotas / create template user==
  for FS in `grep grpquota /etc/fstab | awk '{ print $2 }'`; do quotacheck ${FS}; done
  quotaon -av <br />
  edquota -u bob
  Disk quotas for user bob (uid 1384):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/mapper/ORAAPPVG-LV_U01          0    2048000    2560000          0        0        0
  /dev/mapper/ORAAPPVG-LV_U02          0    2048000   25600000          0        0        0

This does not work as we use netgroups (follow the next example instead)

  edquota -p bob `awk -F: '$3 > 499 {print $1}' /etc/passwd`

I create a file with all the users, then run...
  for USER in `cat u0X-quotas.users `; do edquota -p bob $USER; done

== Review quotas ==

  repquota -a (or repquota -av -- tons of data with v)
You can review quotas on a per user basis

<pre>
[root@dvgllpsmsapp11 ~]# quota
Disk quotas for user root (uid 0): none
[root@dvgllpsmsapp11 ~]# quota oracle
Disk quotas for user oracle (uid 1038): none
[root@dvgllpsmsapp11 ~]# quota bob
Disk quotas for user bob (uid 1384):
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/root 2304996* 768000 1024000   6days      48       0       0       
/dev/mapper/ORAAPPVG-LV_U01
                  20628  2048000 2560000             107       0       0       
/dev/mapper/ORAAPPVG-LV_U02
                 330444  2560000 3072000           12952       0       0       
/dev/mapper/ORAAPPVG-LV_U03
                  34800  4608000 5120000              24       0       0       
</pre>

==Update Quotas==
I ran into an issue where I grew a quota'd filesystem

The following is a rather abrasive method to just clear it all up...
  quotaoff /u02
  rm -f /u02/aquota.*
  quotacheck -vgum /u02 && quotaon /u02<br /><br />
Disable an individual quota
  setquota -u oracle 0 0 0 0 -a


A bit of code to create quotas based on a particular user
edquota pchernik
  #!/bin/bash
# WORKAROUND TO UPDATE/ADD QUOTAS TO HOSTS USING NETGROUPS

# TODO: Need to create an exclude_list [DONE]
EXCLUDEUSERS=(oracle srm)
QUOTAPROTOUSER=myuser1

echo "# Number of Excluded Users: ${#EXCLUDEUSERS[*]} "

NETGROUPS=`grep ^+ /etc/passwd | sed 's/+@//g' | grep -v sysadmin`
for NETGROUP in $NETGROUPS
do
  echo "# NOTE: processing $NETGROUP"
  USERS=`getent netgroup $NETGROUP | sed 's/${NETGROUP}//g' | sed 's/)/\n/g' | awk 'BEGIN {FS=","}{print $2}' | grep -v ^$ | sed 's/\ //g'`
  for USER in $USERS
  do
    SKIP=0
    for i in "${EXCLUDEUSERS[@]}"
    do
      if [ "$i" == "${USER}" ]
      then
        SKIP=1
      fi
    done
    case $SKIP in
      0)
        echo "edquota -p ${QUOTAPROTOUSER} ${USER}"
        edquota -p ${QUOTAPROTOUSER} ${USER}
      ;;
      *)
        echo "# WARNING: Ignoring ${USER}"
      ;;
    esac
    SKIP=0
  done
  echo
done

Comments

Popular posts from this blog

P2V using dd for KVM-QEMU guest

Preface: I have certainly not exhaustively tested this process.  I had a specific need and found a specific solution that worked. Situation:  I was issued a shiny new laptop running Red Hat Enterprise Linux 7 (with Corp VPN, certs, Authentication configuration, etc...)  The image was great, but I needed more flexibility on my bare metal.  So, my goal was to P2V the corporate image so I could just run it as a VM. * Remove corporate drive and install new SSD * install corp drive in external USB-3 case * Install RHEL 7 on new SSD * dd old drive to a disk-image file in a temp location which will be an image which is the same size as your actual drive (unless you have enough space in your destination to contain a temp and converted image) * convert the raw disk-image to a qcow file while pushing it to the final location - this step should reduce the disk size - however, I believe it will only reduce/collapse zero-byte blocks (not just free space - i.e. if you de...

Sun USS 7100 foo

TIP: put ALL of your LUNs into a designated TARGET and INITIATOR group when you create them.  If you leave them in the "default" group, then everything that does an discovery against the array will find them :-( I'm struggling to recognize a reason that a default should even be present on the array. Also - who, exactly, is Sun trying to kid.  The USS is simply a box.. running Solaris .. with IPMP and ZFS.  Great.  If you have ever attempted to "break-in" or "p0wn" your IBM HMC, you know that there are people out there that can harden a box - then.. there's Sun.  After a recent meltdown at the office I had to get quite intimate with my USS 7110 and learned quite a bit.  Namely: there's a shell ;-) My current irritation is how they attempt to "warn you" away from using the shell (my coverage expired a long time ago to worry about that) and then how they try to hide things, poorly. I was curious as to what version of SunOS it ...

"Error getting authority: Error initializing authority: Could not connect: No such file or directory (g-io-error-quark, 1)"

"Error getting authority: Error initializing authority: Could not connect: No such file or directory (g-io-error-quark, 1)" One issue that may cause this to arise is if you managed to break your /etc/fstab We had an engineer add a line with the intended options of "nfsvers=3" but instead added "-onfsvers=3" and it broke the system fairly catastrophically.