3.5. Gestion des Quotas GFS2

Les quotas des systèmes de fichiers sont utilisés pour limiter le montant d'espace qu'un utilisateur ou une groupe d'utilisateurs peut emprunter dans un système de fichiers. Un groupe ou utilisateur ne possède pas de limite de quotas avant qu'il ait été défini. Quand un système de fichiers GFS2 est monté par l'option quota=on ou quota=account, GFS2 enregistre l'espace de chaque usager ou groupe, même lorsque l'espace est illimité. GFS2 met à jour les informations sur les quotas de manière transactionnelle de façon à ce que les systèmes d'utilisation de quotas n'aient pas besoin d'être reconstruits en cas de crash du système.
Pour éviter un ralentissement de la performance, un nœud GFS2 synchronise les mises à jour dans le fichier de quotas périodiquement. Le signal "fuzzy" permet aux utilisateurs ou groupes d'excéder légèrement leur limite. En vue de minimiser cet effet, GFS2 réduit la période de synchronisation dynamique au fur et à mesure que la "hard" limite de quotas approche.

Note

Dans Red Hat Enterprise Linux 6.1, GFS2 prend en charge les fonctionnalités de quotas standard de Linux. Pour en bénéficier, vous devrez installer le RPM quota. C'est la meilleure façon d'administrer les quotas sur GFS2 et devra être utilisée pour tous les nouveaux déploiements de GFS2 qui utilisent les quotas. Cette section documente la gestion des quotas GFS2 par ces fonctionnalités.
Dans les versions plus anciennes de Red Hat Enterprise Linux, GFS2 a besoin de la commande gfs2_quota pour gérer les quotas. Pour obtenir des informations sur la commande gfs2_quota, voir Annexe A, Gestion des quotas GFS2 par la commande gfs2_quota.

3.5.1. Configurer les quotas de disque

Pour fixer les quotas de disque, procédez aux étapes suivantes :
  1. Définir les quotas en mode "enforcement" ou "accounting".
  2. Initialiser la base de données de quota par des informations d'utilisation de blocs courantes.
  3. Indiquer les politiques de quota. (en mode "accounting", ces politiques ne sont pas respectées.)
Chaque étape sera discutée en détails dans les sections suivantes :

3.5.1.1. Configurer les quota en mode "enforcement" ou "accounting" (calcul des quotas)

Dans les systèmes de fichiers GFS2, le contrôle des quota est désactivé par défaut. Pour activer le contrôle des quotas pour un système de fichiers, monter le système de fichiers avec l'option quota=on spécifiée.
Il est possible d'enregistrer l'utilisation du disque et de mettre en place un système de calcul de quota pour chaque utilisateur ou chaque groupe sans avoir à forcer les valeurs fermes ou d'avertissement. Dans ce but, monter le système de fichiers avec l'option quota=account spécifiée.
Utilisation
Pour monter un système de fichiers avec le contrôle de quotas activé, monter le système de fichiers avec l'option quota=on spécifiée.
mount -o quota=on BlockDevice MountPoint
Pour monter un système de fichiers avec le contrôle de quotas désactivé, même si les limites ne sont pas contrôlées, monter le système de fichiers avec l'option quota=account spécifiée.
mount -o quota=account BlockDevice MountPoint
Pour monter un système de fichiers avec le contrôle de quotas désactivé, monter le système de fichiers avec l'option quota=off spécifiée. C'est la configuration par défaut.
mount -o quota=off BlockDevice MountPoint
quota={on|off|account}
on - précise que les quotas sont activés quand le système de fichiers est monté.
off - précise que les quotas sont désactivés quand le système de fichiers est monté.
account -précise que les statistiques d'utilisation d'un groupe ou d'un utilisateur sont maintenues dans le système de fichiers, même si les limites de quotas ne sont pas appliquées.
BlockDevice
Précise le périphérique en mode bloc où le système de fichiers GFS2 se situe.
MountPoint
Précise le répertoire où le système de fichiers GFS2 devrait être monté.
Exemples
Dans cet exemple, le système de fichiers GFS2 de /dev/vg01/lvol0 est monté sur le répertoire /mygfs2 avec les quotas activés.
mount -o quota=on /dev/vg01/lvol0 /mygfs2
Dans cet exemple, le système de fichiers GFS2 de /dev/vg01/lvol0 est monté sur le répertoire /mygfs2 avec les quotas "accounting" maintenus, mais non appliqués.
mount -o quota=account /dev/vg01/lvol0 /mygfs2

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

Après que chaque système de fichier soit monté, pourvu de ses quotas, le système est capable de fonctionner avec des quotas de disques. Cependant, le système de fichiers lui-même n'est pas prêt à prendre en charge les quotas. L'étape suivante consiste à exécuter la commande quotacheck.
La commande quotacheck examine les systèmes de fichiers avec quotas activés, et construit une table de l'utilisation actuelle du disque par système de fichiers. Le tableau est alors utilisé pour mettre à jour la copie d'utilisation du disque du système d'exploitation. De plus, les fichiers de quotas de disque du système sont mis à jour.
Pour créer les fichiers de quotas sur le système de fichiers, utiliser l'option -u et les options -g de la commande quotacheck; ces deux options doivent être spécifiées pour que les quotas de groupe et d'utilisateur puissent être initialisés. Par exemple, si les quotas sont activés pour le système de fichiers home, créez les fichiers pour le répertoire /home :
quotacheck -ug /home

3.5.1.3. Allouer les quotas par utilisateur

La dernière étape consiste à assigner les quotas de disque par la commande edquota. Notez que si vous avez monté votre système de fichiers en mode "accounting" (avec l'option quota=account), les quotas ne sont pas appliqués.
Pour configurer le quota pour l'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

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 soft ou hard blocs pour l'utilisateur sur son système de fichiers.
La limite de soft bloc détermine le montant maximum de d'espace disque pouvant être utilisé.
La limite hard bloc correspond au montant maximum d'espace disque qu'un utilisateur ou un groupe peuvent utiliser. Une fois que la limite est atteinte, on ne peut pas utiliser d'espace supplémentaire.
Le système de fichiers GFS2 ne conserve pas les quotas pour les inodes, donc ces colonnes ne s'appliquent pas aux systèmes de fichiers GFS2 et seront vides.
Si une valeur est fixée à 0, cette limite n'est pas définie. Dans l'éditeur de texte, changer les limites qui vous souhaitez. Ainsi :
Disk quotas for user testuser (uid 501):   
Filesystem                blocks     soft     hard    inodes   soft   hard
/dev/VolGroup00/LogVol02  440436   500000   550000
Pour vous assurer que le quota utilisateur a bien été défini, utiliser la commande :
quota testuser

3.5.1.4. Assigner les quotas par groupe

Les quotas peuvent aussi être assignés sur la base d'un groupe. Notez que si vous avez monté votre système de fichiers en mode 'accounting' (avec account=on), les quotas ne seront pas appliqués.
Pour définir un quota de groupe pour le groupe devel (le groupe doit pouvoir exister avant que vous puissiez définir le quota de groupe), utiliser la commande suivante :
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
Le système de fichiers GFS2 ne maintient pas de quotas pour les inodes, donc ces colonnes ne s'appliquent pas aux systèmes de fichiers GFS2 et resteront vides. Modifier ces limites, puis sauvegardez le fichier.
Pour vérifier que le quota de groupe a bien été défini, utiliser la commande suivante :
quota -g devel