Chapitre 4. Gestion des quotas GFS2
Les quotas de système de fichiers sont utilisés pour limiter la quantité d'espace de système de fichiers qu'un utilisateur ou un groupe peut utiliser. Un utilisateur ou un groupe n'a pas de limite de quota tant qu'il n'en a pas défini une. Lorsqu'un système de fichiers GFS2 est monté avec l'option quota=on
ou quota=account
, GFS2 garde une trace de l'espace utilisé par chaque utilisateur et chaque groupe, même si aucune limite n'a été fixée. GFS2 met à jour les informations relatives aux quotas de manière transactionnelle, de sorte que les pannes de système n'exigent pas la reconstitution de l'utilisation des quotas.
Pour éviter un ralentissement des performances, un nœud GFS2 ne synchronise les mises à jour du fichier de quotas que périodiquement. La comptabilisation floue des quotas peut permettre aux utilisateurs ou aux groupes de dépasser légèrement la limite fixée. Pour minimiser ce phénomène, GFS2 réduit dynamiquement la période de synchronisation à l'approche d'une limite de quota stricte.
GFS2 prend en charge les fonctions de quota standard de Linux. Pour les utiliser, vous devez installer le fichier quota RPM. C'est la méthode préférée pour administrer les quotas sur GFS2 et elle doit être utilisée pour tous les nouveaux déploiements de GFS2 utilisant des quotas.
Pour plus d'informations sur les quotas de disque, consultez les pages man
des commandes suivantes :
-
quotacheck
-
edquota
-
repquota
-
quota
4.1. Configuration des quotas de disque GFS2
La mise en œuvre des quotas de disque pour les systèmes de fichiers GFS2 s'effectue en trois étapes.
Les étapes à suivre pour mettre en œuvre les quotas de disque sont les suivantes :
- Configurer les quotas en mode exécution ou en mode comptabilité.
- Initialiser le fichier de la base de données des quotas avec les informations sur l'utilisation actuelle des blocs.
- Attribuer des politiques de quotas. (En mode comptabilité, ces politiques ne sont pas appliquées)
Chacune de ces étapes est examinée en détail dans les sections suivantes.
4.1.1. Mise en place de quotas en mode exécution ou comptabilité
Dans les systèmes de fichiers GFS2, les quotas sont désactivés par défaut. Pour activer les quotas pour un système de fichiers, montez le système de fichiers en spécifiant l'option quota=on
.
Pour monter un système de fichiers avec les quotas activés, spécifiez quota=on
pour l'argument options
lors de la création de la ressource du système de fichiers GFS2 dans un cluster. Par exemple, la commande suivante indique que la ressource GFS2 Filesystem
en cours de création sera montée avec les quotas activés.
# pcs resource create gfs2mount Filesystem options="quota=on" device=BLOCKDEVICE directory=MOUNTPOINT fstype=gfs2 clone
Il est possible de suivre l'utilisation du disque et de gérer la comptabilité des quotas pour chaque utilisateur et groupe sans appliquer les valeurs de limite et d'avertissement. Pour ce faire, montez le système de fichiers en spécifiant l'option quota=account
.
Pour monter un système de fichiers avec des quotas désactivés, spécifiez quota=off
pour l'argument options
lors de la création de la ressource de système de fichiers GFS2 dans un cluster.
4.1.2. Création des fichiers de la base de données des quotas
Une fois que chaque système de fichiers compatible avec les quotas est monté, le système est capable de fonctionner avec des quotas de disque. Toutefois, le système de fichiers lui-même n'est pas encore 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 à quotas et construit un tableau de l'utilisation actuelle du disque par système de fichiers. Ce 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 de disque du système de fichiers sont mis à jour.
Pour créer les fichiers de quotas sur le système de fichiers, utilisez les options -u
et -g
de la commande quotacheck
; ces deux options doivent être spécifiées pour que les quotas d'utilisateurs et de groupes soient initialisés. Par exemple, si les quotas sont activés pour le système de fichiers /home
, créez les fichiers dans le répertoire /home
:
# quotacheck -ug /home
4.1.3. Attribution de quotas par utilisateur
La dernière étape consiste à attribuer les quotas de disque à l'aide de la commande edquota
. Notez que si vous avez monté votre système de fichiers en mode comptabilité (avec l'option quota=account
spécifiée), les quotas ne sont pas appliqués.
Pour configurer le quota d'un utilisateur, exécutez la commande suivante en tant que root dans une invite de l'interpréteur de commandes :
# edquota username
Effectuez cette étape pour chaque utilisateur qui a besoin d'un quota. Par exemple, si un quota est activé pour la partition /home
(/dev/VolGroup00/LogVol02
dans l'exemple ci-dessous) et que la commande edquota testuser
est exécutée, l'éditeur configuré par défaut pour le système affiche ce qui suit :
Disk quotas for user testuser (uid 501): Filesystem blocks soft hard inodes soft hard /dev/VolGroup00/LogVol02 440436 0 0
L'éditeur de texte défini par la variable d'environnement EDITOR
est utilisé par edquota
. Pour changer d'éditeur, définissez la variable d'environnement EDITOR
dans votre fichier ~/.bash_profile
avec le chemin complet de l'éditeur de votre choix.
La première colonne est le nom du système de fichiers pour lequel un quota est activé. La deuxième colonne indique le nombre de blocs actuellement utilisés par l'utilisateur. Les deux colonnes suivantes sont utilisées pour définir des limites de blocs souples et dures pour l'utilisateur sur le système de fichiers.
La limite souple des blocs définit la quantité maximale d'espace disque qui peut être utilisée.
La limite des blocs durs est la quantité maximale absolue d'espace disque qu'un utilisateur ou un groupe peut utiliser. Une fois cette limite atteinte, aucun espace disque supplémentaire ne peut être utilisé.
Le système de fichiers GFS2 ne gère pas de quotas pour les inodes. Ces colonnes ne s'appliquent donc pas aux systèmes de fichiers GFS2 et seront vides.
Si l'une des valeurs est fixée à 0, cette limite n'est pas définie. Dans l'éditeur de texte, modifiez les limites. Par exemple :
Disk quotas for user testuser (uid 501): Filesystem blocks soft hard inodes soft hard /dev/VolGroup00/LogVol02 440436 500000 550000
Pour vérifier que le quota de l'utilisateur a été défini, utilisez la commande suivante :
# quota testuser
Vous pouvez également définir des quotas à partir de la ligne de commande avec la commande setquota
. Pour plus d'informations sur la commande setquota
, consultez la page de manuel setquota
(8).
4.1.4. Attribution de quotas par groupe
Les quotas peuvent également être attribués par groupe. Notez que si vous avez monté votre système de fichiers en mode comptabilité (avec l'option account=on
spécifiée), les quotas ne sont pas appliqués.
Pour définir un quota de groupe pour le groupe devel
(le groupe doit exister avant de définir le quota de groupe), utilisez 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 gère pas de quotas pour les inodes. Ces colonnes ne s'appliquent donc pas aux systèmes de fichiers GFS2 et seront vides. Modifiez les limites, puis enregistrez le fichier.
Pour vérifier que le quota de groupe a été défini, utilisez la commande suivante :
$ quota -g devel