Capitolo 6. Implementazione del disk Quotas

In aggiunta al controllo dello spazio del disco usato su di un sistema (consultare la Sezione 26.3.1), lo spazio del disco puó essere ristretto implementando il disco quotas, tale implementazione consente all'amministratore del sistema di essere allertato prima che un utente consumi troppo spazio o una partizione diventi piena.

Il disk quotas puó essere configurato sia per utenti singoli che per gruppi di utenti. Questo tipo di flessibilitá rende possibile che un utente possa avere una piccola quota da gestire per un file "personal" (come ad esempio email e riporti), permettendo ai progetti sui quali l'utente lavora, di avere piú quotas (assumendo che vengano assegnati ai progetti, i propri gruppi).

In aggiunta, il quotas puó essere impostato non solo per controllare il numero dei blocchi del disco, ma anche per controllare il numero di inode. Perché gli inode sono usati per contenere informazioni inerenti ai file, ció permette un controllo sui numeri di file che possono essere creati.

The quota RPM must be installed to implement disk quotas. For more information on installing RPM packages, refer to Parte V.

6.1. Configurazione del Disk Quotas

Per implementare il disk quotas, usare le seguenti fasi:

  1. Abilitare quotas per ogni file system, modificando /etc/fstab

  2. Rimontare il file system

  3. Creare i file quotas e generate la tabella d'uso del disco

  4. Assegnare quotas

Ogni singolo passo viene analizzato in dettaglio nelle seguenti sezioni.

6.1.1. Abilitazione di Quotas

Come root, usare l'editor di testo di vostra scelta, aggiungere l'opzione usrquota e/o grpquota ai file system che richiedono quotas:

LABEL=/           /               ext3    defaults        1 1
LABEL=/boot       /boot           ext3    defaults        1 2
none              /dev/pts        devpts  gid=5,mode=620  0 0
LABEL=/home       /home           ext3    defaults,usrquota,grpquota 1 2
none              /proc           proc    defaults        0 0
none              /dev/shm        tmpfs   defaults        0 0
/dev/hda2         swap            swap    defaults        0 0
/dev/cdrom        /mnt/cdrom      udf,iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0          /mnt/floppy     auto    noauto,owner,kudzu 0 0

In questo esempio, il file system /home possiede sia l'utente che il gruppo quotas entrambi abilitati.

6.1.2. Rimontare i file system

Dopo aver aggiunto le opzioni userquota e grpquota, rimontare ogni file system sul quale é stato modificato la entry fstab. Se il file system non é usato in alcun processo, usare il comando umount seguito da mount per rimontare il file system. Se invece esso é usato, il metodo piú facile per rimontare il file system é quello di riavviare il sistema.

6.1.3. Creazione dei file Quota

Dopo che ogni file sistem "abilitato-quota" é stato rimontato, il sistema é capace di lavorare con il disk quotas. Tuttavia, il file system per se stesso, non é pronto per il supporto di quotas. La fase successiva é quella di eseguire il comando quotacheck.

Il comando quotacheck esamina i file systema "abilitati-quota" e costruisce una tabella dell'uso del disco corrente per file system. La tabella viene usata per aggiornare la copia dell'uso del disco del sistema operativo. In aggiunta, i file del disk quota del file system, vengono aggiornati.

Per creare i file quota (aquota.user e aquota.group) sul file system, usare l'opzione -c del comando quotacheck. Per esempio, se l'utente o il gruppo quotas sono abilitati per la partizione /home, creare i file nella /home directory:

quotacheck -acug /home

L'opzione -a significa che tutti i file system non-NFS in /etc/mtab sono controllati per vedere se i quotas sono abilitati. L'opzione -c specifica che i file quota dovrebbero essere creati per ogni file system abilitati ai quotas, la -u specifica il controllo di utenti quotas, e l'opzione -g specifica di controllare per gruppi di quotas.

Se non sono specificate le opzioni -u o -g, viene creato solo l'utente del file quota. Se solo -g viene specificato, viene creato allora solo il gruppo quota.

Dopo che vengono creati i file, eseguite il seguente comando per generare la tabella dell'uso corrente del disco, per file system ai quali é abilitato il quotas:

quotacheck -avug

Le opzioni usate sono le seguenti:

  • a — Controllare tutti i file system abilitati-quota montati in modo locale.

  • v — Mostrate le informazioni sulla stato verbose, durante la prosecuzione del controllo quota

  • u — Controllare le informazioni dell'utente del disk quota

  • g — Controllare le informazioni del gruppo del disk quota

Dopo che quotacheck ha terminato l'esecuzione, i file quota corrispondenti al quotas abilitato (utente e/o gruppo) sono popolati con dei dati, per ogni file system abilitati-quota, come ad esempio /home.

6.1.4. Assegnare quotas ad un utente

L'ultima fase é quella di assegnare il disk quotas con il comando edquota.

Per configurare il quota per un utente, come utente root in un prompt della shell, eseguire il comando:

edquota username

Effettuare questa fase per ogni utente sul quale volete implementare il quota. Per esempio, se il quota é abilitato in /etc/fstab per la partizione /home (/dev/hda3) e il comando edquota testuser é eseguito, viene mostrato quanto segue nell'editor configurato come il default per il sistema:

Disk quotas for user testuser (uid 501):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/hda3                    440436          0          0      37418        0        0

NotaNota Bene
 

L'editor di testo definito dalla variabile dell'ambiente EDITOR é usato da edquota. Per cambiare l'editor, impostare la variabile dell'ambiente EDITOR per il percorso completo dell'editor di vostra scelta.

La prima colonna é il nome del file system che ha abilitato un quota. La seconda colonna mostra il numero di blocchi l'utente stá usando. Le successive due colonne sono usate per impostare i limiti soft e hard del blocco per l'utente sul file system. La colonna inodes mostra il numero di inodes che l'utente stá utilizzando. Le ultime due colonne sono usate per impostare i limiti inode soft e hard, per l'utente sul file system.

Un limite hard é l'ammontare massimo di spazio del disco che un utente o un gruppo puó utilizzare. Una volta raggiunto questo limite, non si puó utilizzare nessun altro spazio.

Il limite soft definisce l'ammontare massimo di spazio che puó essere usato. Tuttavia, a differenza del limite hard, il limite soft puó essere superato per un certo limite di tempo. Quel periodo é chiamato periodo di grazia. Tale periodo puó essere espresso in secondi, minuti, ore, settimane e mesi.

Se uno dei valori é impostato su zero, quel limite non é impostato. Cambiare i limiti desiderati, nell'editor di testo. Per esempio:

Disk quotas for user testuser (uid 501):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/hda3                    440436     500000     550000     37418        0        0

Per verificare che il quota per un utente sia stato impostato, usare il comnado:

quota testuser

6.1.5. Assegnare quota ad un gruppo

Quotas puó anche essere assegnato ad un gruppo. Per esempio, per assegnare un quota per il gruppo devel, usare il comando (il gruppo deve esistere prima di impostare il quota):

edquota -g devel

Questo comando mostra il quota esistente per il gruppo in un editor di testo:

Disk quotas for group devel (gid 505):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/hda3                    440400          0          0      37418        0        0

Modificare i limiti, salvare il file, e configurare poi il quota.

Per verificare che il gruppo del quota é stato impostato, usare il comando:

quota -g devel

6.1.6. Assegnare quotas ad un file system

Per assegnare quota ad ogni file system abilitato per quotas, usare il comando:

edquota -t

Come gli altri comandi edquota, esso apre il quotas corrente per il file system nell'editor di testo:

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/hda3                     7days                  7days

Cambiare il periodo di grazia del blocco o dell'inode, salvare i cambiamenti, e uscire dall'editore di testo.