Chapitre 6. Implémentation des quotas de disque

Outre le contrôle de l'espace disque utilisé sur un système (reportez-vous à la Section 26.3.1), il est également possible de restreindre l'espace disque en implémentant des quotas de disque. Ce faisant, l'administrateur système est averti avant qu'un utilisateur n'utilise trop d'espace disque ou qu'une partition ne se remplisse trop.

Des quotas de disque peuvent être configurés pour des utilisateurs individuels aussi bien que pour des groupes d'utilisateurs. Ce genre de flexibilité permet de donner à chaque utilisateur un petit quota d'espace disque pour ses fichiers 'personnels' (comme des emails ou des rapports), tout en conservant un quota plus important pour les projets sur lesquels ils travaillent (en supposant que les projets soient donnés à des groupes d'utilisateurs spécifiques).

De plus, les quotas permettent non seulement de contrôler le nombre de blocs de disques utilisés mais permettent également de contrôler le nombre d'inodes. Puisque les inodes servent à contenir des informations relatives aux fichiers, ceci permet aussi le contrôle du nombre de fichiers qui peuvent être créés.

Le RPM de quota doit être préalablement installé pour pouvoir implémenter les quotas de disque. Pour obtenir de plus amples informations sur l'installation de paquetages RPM, reportez-vous à la Partie V.

6.1. Configuration des quotas de disque

Pour implémenter les quotas de disque, suivez les étapes ci-dessous:

  1. Activez les quotas par système de fichiers en modifiant /etc/fstab

  2. Remontez le(s) système(s) de fichiers

  3. Créez le fichier de quota et créez le tableau d'utilisation du disque dur

  4. Assignez des quotas

Chacune de ces étapes est examinée en détails dans les sections suivantes:

6.1.1. Activations des Quotas

En tant que super-utilisateur et en utilisant l'éditeur de texte de votre choix, ajoutez les options usrquota et/ou grpquota aux systèmes de fichiers nécessitant des 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

Dans cette exemple, des quotas pour l'utilisateur et le groupe d'utilisateurs sont activés dans le système de fichiers /home.

6.1.2. Remontage des systèmes de fichiers

Après avoir ajouté les options userquota et grpquota, remonter chaque système de fichiers dont l'entrée fstab a été modifiée. Si le système de fichiers n'est utilisé par aucun processus, utilisez la commande umount suivi de mount pour monter à nouveau le système de fichiers. Si le système de fichiers est actuellement utilisé, la méthode la plus simple pour remonter le système de fichier consiste à redémarrer le système.

6.1.3. Création de fichiers quota

Après avoir monté à nouveau chaque système de fichiers doté d'un quota, le système est à même de fonctionner en fonction des quotas de disque. Le système de fichiers lui, n'est toutefois pas encore prêt à prendre en charge les quotas. L'étape suivante consiste à exécuter la commande quotacheck.

La commande quotacheck examine le système de fichiers doté d'un quota et établit un tableau de l'utilisation actuelle du disque pour chaque système de fichiers. Ce tableau est alors utilisé pour mettre à jour la copie de l'utilisation du disque gérée par le système d'exploitation. En même temps, les fichiers quota de disque du système de fichiers sont mis à jour.

Afin de créer des fichiers quota (aquota.user et aquota.group) sur le système de fichiers, utilisez l'option -c de la commande quotacheck. Par exemple, si les quotas d'un utilisateur et d'un groupe sont activés dans la partiton /home, créez le fichier dans le répertoire /home:

quotacheck -acug /home

L'option -a permet de vérifier si tous les systèmes de fichiers montés qui ne sont pas des systèmes de fichiers NFS dans /etc/mtab ont des quotas activés. L'option -c quant à elle spécifie que les fichiers quota devraient être créés pour chaque système de fichiers avec des quotas activés, alors que l'option -u vérifie les quotas utilisateur et l'option -g vérifie les quotas groupe.

Si aucune des deux options -u ou -g n'est spécifiée, seul le fichier quota utilisateur sera créé. Si l'option -g est la seule option spécifiée, seul le fichier quota groupe sera créé.

Une fois les fichiers créés, exécutez la commande suivante pour créer le tableau de l'utilisation actuelle du disque pour chaque système de fichiers avec des quotas activés:

quotacheck -avug

Les options sont utilisées de la manière suivante:

  • a — vérifie tous les systèmes de fichiers montés localement et dotés de quotas activés

  • v — affiche des messages de statut (verbose) lors de la vérification du quota

  • u — vérifie les informations relatives au quota de disque utilisateur

  • g — vérifie les informations relatives au quota de disque groupe

Une fois les opérations de quotacheck terminées, les fichiers quota correspondants aux quotas activés (utilisateur et/ou groupe) sont remplis de données pour chaque système de fichiers doté de quotas activés comme /home, par exemple.

6.1.4. Attribution de quotas par utilisateur

La dernière étape consiste à attribuer les quotas de disque à l'aide de la commande edquota.

Pour permettre la configuration d'un quota pour un utilisateur, à l'invite du shell, exécutez la commande suivante en étant connecté en tant que super-utilisateur:

edquota nom d'utilisateur

Effectuez ces étapes pour chaque utilisateur auquel vous souhaitez attribuer un quota. Par exemple, si un quota est activé dans /etc/fstab pour la partition /home (/dev/hda3) et que la commande edquota testuser est exécutée, l'extrait suivant apparaîtra dans l'éditeur de texte configuré par défaut pour le système:

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

NoteRemarque
 

L'éditeur de texte défini par la variable de l'environnement EDITOR est utilisée par edquota. Pour changer d'éditeur, précisez dans la variable de l'environnement EDITOR le chemin d'accès complet de l'éditeur de votre choix.

La première colonne correspond au nom du système de fichiers doté d'un quota activé. La deuxième colonne elle, affiche le nombre de blocs actuellement employés par un utilisateur. Les deux colonnes suivantes sont utilisées pour déterminer les limites douces (soft limits) et dures (hard limits) des blocs correspondant à l'utilisateur du système de fichiers. La colonne inodes affiche le nombre d'inodes actuellement employées par l'utilisateur. Les deux dernières colonnes servent à déterminer les limites douces et dures des inodes de l'utilisateur sur un système de fichiers.

Une limite dure correspond à la quantité maximale d'espace disque qu'un utilisateur ou groupe peut employer. Une fois la limite atteinte, aucun espace supplémentaire ne peut être utilisé.

La limite douce définit la quantité maximale d'espace disque pouvant être utilisée. Néanmoins, contrairement à la limite dure, la limite douce peut être dépassée pendant un certain temps. On se réfère à cette durée sous le terme période de grâce. Cette dernière peut être exprimée en secondes, minutes, heures, jours, semaines ou mois.

Si toute valeur correspond à 0, cette limite n'est pas déterminée. Dans l'éditeur de texte, changez les limites voulues. Par exemple,

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

Afin de vérifier que le quota pour l'utilisateur a bien été établi, utilisez la commande suivante:

quota testuser

6.1.5. Attribution de quotas par groupe

Des quotas peuvent également être attribués groupe par groupe. Par exemple, pour établir le quota groupe pour le groupe devel, utilisez la commande (le groupe doit bien sûr exister avant de déterminer un quota pour ce groupe):

edquota -g devel

Cette commande permet d'afficher dans l'éditeur de texte, le quota actuel pour le groupe:

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

Modifiez les limites, enregistrez le fichier et configurez ensuite le quota.

Pour vérifier que le quota groupe a bien été établi, utilisez la commande suivante:

quota -g devel

6.1.6. Attribution de quotas par système de fichiers

Pour attribuer des quotas basés sur chaque système de fichiers activé pour l'utilisation de quotas, utilisez la commande suivante:

edquota -t

Comme les autres commandes edquota, celle-ci ouvre le quota actuel du système de fichiers dans l'éditeur de texte:

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

Changez la période de grâce du bloc (block) ou la période de grâce de l'inode, enregistrez les changements dans le fichier et quittez l'éditeur de texte.