Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

Chapitre 16. Quotas de disques

L'espace disque peut être restreint en implémentant des quotas de disques qui alerteraient un administrateur système avant qu'un utilisateur ne consomme trop d'espace disque ou qu'une partition ne soit pleine.
Les quotas de disques peuvent être configurés pour des utilisateurs individuels ainsi que pour des groupes d'utilisateurs. Ceci permet de gérer l'espace alloué pour les fichiers spécifiques aux utilisateurs (par exemple pour les courriers électroniques) séparément de l'espace alloué aux projets sur lesquels un utilisateur travaille (en supposant que ces projets se voient offrir leurs propres groupes).
En outre, des quotas peuvent être définis non seulement pour contrôler le nombre de blocs de disques consommés, mais aussi pour contrôler le nombre d'inodes (des structures de données contenant des informations sur les fichiers dans les systèmes de fichiers UNIX). Comme les inodes sont utilisés pour contenir des informations concernant des fichiers, cela permet de contrôler le nombre de fichiers pouvant être créés.
Le RPM quota doit être installé pour implémenter les quotas de disques.

16.1. Configurer les quotas de disques

Pour fixer les quotas de disques, procédez aux étapes suivantes :
  1. Activez les quotas par système de fichiers en modifiant le fichier /etc/fstab.
  2. Remontez le(s) système(s) de fichiers.
  3. Créez les fichiers de la base de données des quotas et générez le tableau d'utilisation du disque.
  4. Assignez les politiques des quotas.
Chaque étape sera discutée en détails dans les sections suivantes.

16.1.1. Activer les quotas

En tant que root et à l'aide d'un éditeur de texte, modifiez le fichier /etc/fstab.

Exemple 16.1. Modifiez /etc/fstab

Par exemple, pour utiliser l'éditeur de texte vim, veuillez saisir :
# vim /etc/fstab
Ajoutez les options usrquota ou grpquota aux systèmes de fichiers qui requièrent des quotas :

Exemple 16.2. Ajoutez les quotas

/dev/VolGroup00/LogVol00 /         ext3    defaults        1 1 
LABEL=/boot              /boot     ext3    defaults        1 2 
none                     /dev/pts  devpts  gid=5,mode=620  0 0 
none                     /dev/shm  tmpfs   defaults        0 0 
none                     /proc     proc    defaults        0 0 
none                     /sys      sysfs   defaults        0 0 
/dev/VolGroup00/LogVol02 /home     ext3    defaults,usrquota,grpquota  1 2 
/dev/VolGroup00/LogVol01 swap      swap    defaults        0 0 . . .
Dans cet exemple, le système de fichiers /home possède des quotas utilisateurs et groupes activés.

Note

Les exemples suivants supposent qu'une autre partition /home a été créée pendant l'installation de Red Hat Enterprise Linux. La partition root (/) peut être utilisée pour définir les politiques de quotas dans le fichier /etc/fstab.

16.1.2. Remonter les systèmes de fichiers

Après avoir ajouté les options usrquota ou grpquota, veuillez remonter chaque système de fichier dont l'entrée fstab a été modifiée. Si le système de fichiers n'est pas en cours d'utilisation, veuillez utiliser les commandes suivantes :
umount /mount-point
Par exemple, umount /work.
mount /file-system /mount-point
Par exemple, mount /dev/vdb1 /work.
Si le système de fichierrs est en cours d'utilisation, la plus simple méthode pour remonter le système de fichiers est de redémarrer le système.

16.1.3. Créer les fichiers de base de données de quotas

Après avoir remonté chaque système de fichiers dont les quotas sont activés, veuillez exécuter la commande quotacheck.
La commande quotacheck examine les systèmes de fichier dont les quotas sont activés et crée un tableau de l'utilisation actuelle du disque par système de fichiers. Le tableau est ensuite utilisé pour mettre à jour la copie de l'utilisation du disque du système d'exploitation. En outre, les fichiers de quotas du système de fichiers sont aussi mis à jour.
Pour créer les fichiers de quotas (aquota.user et aquota.group) sur le système de fichiers, veuillez utiliser l'option -c de la commande quotacheck.

Exemple 16.3. Créer des fichiers de quotas

Par exemple, si les quotas d'utilisateurs et de groupes sont activés pour le système de fichiers /home, veuillez créer les fichiers dans le répertoire /home :
# quotacheck -cug /home
L'option -c indique que des fichiers de quotas doivent être créés pour chaque système de fichiers sur lequel les quotas sont activés, l'option -u indique que les quotas d'utilisateurs seront vérifiés, et l'option -g indique que les quotas de groupes seront vérifiés.
Si les options -u ou -g ne sont pas spécifiées, seul le fichier du quota d'utilisateurs sera créé. Si seule l'option -g est spécifiée, seul le fichier du quota de groupes sera créé.
Une fois que les fichiers sont créés, veuillez exécuter la commande suivante afin de générer le tableau d'utilisation du disque actuelle par système de fichiers avec quotas activés :
# quotacheck -avug
Les options utilisées sont comme suit :
a
Vérifie tous les systèmes de fichiers montés localement avec quotas activés
v
Affiche les informations détaillées pendant la progression de la vérification du quota
u
Vérifie les informations du quota de disques de l'utilisateur
g
Vérifie les informations du quota de disques de groupe
Une fois que quotacheck a terminé son exécution, les fichiers de quotas correspondants aux quotas activés (d'utilisateurs ou de groupes) sont remplis avec des données pour chaque système de fichiers monté localement avec quotas activés, tel que /home.

16.1.4. Allouer les quotas par utilisateur

La dernière étape consiste à assigner les quotas de disques avec la commande edquota.
Pour configurer le quota pour un utilisateur, en tant que root, utiliser la commande suivante :
# edquota username
Procédez à cette étape pour chaque utilisateur qui a besoin d'un quota. Ainsi, si un quota est activé dans /etc/fstab pour la partition /home (/dev/VolGroup00/LogVol02 dans l'exemple ci-dessous) et que la commande edquota testuser est exécutée, vous verrez ce qui suit dans l'éditeur configuré par défaut dans le système :
Disk quotas for user testuser (uid 501):   
Filesystem                blocks     soft     hard    inodes   soft   hard   
/dev/VolGroup00/LogVol02  440436        0        0     37418      0      0

Note

L'éditeur de texte défini par la variable d'environnement EDITOR est utilisé par edquota. Pour changer l'éditeur, définir la variable d'environnement EDITOR dans votre fichier ~/.bash_profile vers le chemin d'accès de l'éditeur de votre choix.
La première colonne correspond au nom du système de fichiers qui contient un quota activé. La seconde colonne montre combien de blocs l'utilisateur utilise actuellement. Les deux colonnes suivantes sont utilisées pour fixer des limites de blocs « soft » ou « hard » pour l'utilisateur sur le système de fichiers. La colonne inodes affiche le nombre d'inodes actuellement en cours d'utilisation par l'utilisateur. Les deux dernières colonnes sont utilisées pour définir les limites d'inode « soft » et « hard » pour l'utilisateur sur le système de fichiers.
La limite hard bloc correspond au montant maximum d'espace disque qu'un utilisateur ou un groupe peut utiliser. Une fois que la limite est atteinte, on ne peut pas utiliser d'espace supplémentaire.
La limite de bloc « soft » détermine le montant maximum de d'espace disque pouvant être utilisé. Cependant, à la différence de la limite dure (« hard »), la limite « soft » peut être dépassée pendant un moment. Ce moment est appelé la période de grâce. La période de grâce peut être exprimée en secondes, minutes, heures, jours, semaines, ou mois.
Si une seule des valeurs est fixée à 0, cette limite n'est pas définie. Dans l'éditeur de texte, veuillez changer les limites qui vous souhaitez.

Exemple 16.4. Modifier les limites souhaitées

Par exemple:
Disk quotas for user testuser (uid 501):   
Filesystem                blocks     soft     hard   inodes   soft   hard   
/dev/VolGroup00/LogVol02  440436   500000   550000    37418      0      0
Pour vous assurer que le quota utilisateur a bien été défini, utiliser la commande :
# quota username
Disk quotas for user username (uid 501): 
   Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
     /dev/sdb    1000*   1000    1000               0       0       0

16.1.5. Assigner les quotas par groupe

Les quotas peuvent aussi être assignés sur une base « par groupe ». Par exemple, pour définir un quota de groupe pour le groupe devel (le groupe doit exister avant de définir le quota du groupe), veuillez utiliser la commande :
# edquota -g devel
Cette commande affiche le quota existant pour le groupe dans l'éditeur de texte :
Disk quotas for group devel (gid 505):   
Filesystem                blocks    soft     hard    inodes    soft    hard   
/dev/VolGroup00/LogVol02  440400       0        0     37418       0       0
Modifiez les limites, puis enregistrez le fichier.
Pour vérifier que le quota de groupe a bien été défini, veuillez utiliser la commande :
# quota -g devel

16.1.6. Définir la période de grâce pour les limites soft

Si un quota donné possède des limites « soft », vous pouvez modifier la période de grâce (la période pendant laquelle la limite « soft » peut être dépassée) avec la commande suivante :
# edquota -t
Cette commande fonctionne sur les quotas pour les inodes ou les blocs pour utilisateurs ou pour groupes.

Important

Tandis que les autres commandes edquota opèrent sur les quotas d'un utilisateur ou d'un groupe particulier, l'option -t opère sur tous les systèmes de fichiers dont les quotas sont activés.