Looker_Studio - stock.adobe.com
Linux : contrôlez le stockage utilisateur à l'aide des quotas
Cet article explique les utilisations et les fonctions des quotas de stockage sous Linux. Il donne un exemple de configuration des quotas étape par étape. Les administrateurs peuvent déployer des quotas avec un minimum de perturbations pour les utilisateurs.
Les utilisateurs considèrent généralement que le stockage est bon marché et relativement illimité, et même certains administrateurs peuvent penser ainsi. Bien que la capacité des disques de stockage continue d'augmenter et que leur prix par gigaoctet diminue généralement, il reste essentiel de gérer le stockage avec soin. C’est le rôle des quotas sous Linux.
L'efficacité du stockage a un impact qui va au-delà du simple coût d'achat de disques supplémentaires ou de capacité cloud. Elle affecte également les éléments suivants :
- Le temps de sauvegarde.
- Le délai de restauration/l'objectif de délai de récupération et d'autres tâches de reprise après sinistre.
- Les temps de migration.
- Les migrations physiques vers virtuelles.
- Les capacités d'indexation et de recherche sur disque.
- Les efforts de déduplication des données.
Il est essentiel de laisser de l'espace de stockage disponible sur les disques système afin que le système d'exploitation puisse l'utiliser pour ses activités régulières, notamment la création de fichiers temporaires, la journalisation, les mises à jour et la fragmentation.
Heureusement, les administrateurs Linux peuvent mettre en place des quotas de stockage afin de contrôler la manière dont les utilisateurs consomment la capacité.
Que sont les quotas de Linux pour le stockage ?
Les quotas sont une caractéristique et une fonctionnalité du système de fichiers, et non du système d'exploitation. Les systèmes de fichiers tels que ext4, XFS et Btrfs prennent en charge les quotas. Le système ZFS propose également des quotas, mais ceux-ci ne font pas partie du noyau Linux principal.
Vous disposez de deux options de configuration différentes pour déployer les quotas. La première approche consiste à collecter des informations, en définissant des quotas sans empêcher les utilisateurs d'enregistrer des fichiers lorsqu'ils dépassent l'espace qui leur est alloué. Ces quotas sont appelés « quotas souples » et sont utiles pour apprendre et comprendre comment vos utilisateurs consomment l'espace de stockage.
La deuxième approche consiste à utiliser des « quotas stricts », qui empêchent les utilisateurs d'enregistrer des fichiers lorsqu'ils dépassent leur quota.
Commencez par les quotas souples. Utilisez ces quotas Linux pendant quelques mois pour recueillir des données sur les ressources qui seraient bloquées par des quotas stricts sans imposer ces limites à vos utilisateurs. À partir de là, communiquez vos attentes en matière de stockage aux utilisateurs, puis mettez en place des quotas stricts.
Voici à quoi pourrait ressembler un calendrier type :
1/ Commencez par utiliser des quotas souples et collectez des données d'utilisation au fil du temps.
2/ Réfléchissez aux meilleures règles de stockage et communiquez-les à vos utilisateurs afin d'éviter toute surprise et frustration.
3/ Mettez en place des quotas stricts une fois que les utilisateurs ont eu le temps de nettoyer leurs répertoires.
4/ Vérifiez régulièrement les quotas afin de tenir compte des changements dans les besoins de stockage des utilisateurs au fil du temps.
Linux met en œuvre les quotas par système de fichiers. Il s'agit d'un élément important à prendre en compte lors de la conception de vos quotas. Vous pouvez contrôler la consommation de stockage des utilisateurs et/ou des groupes pour chaque système de fichiers sur lequel vous avez activé les quotas.
Les quotas de groupe correspondent à la somme de toute la capacité de stockage consommée par les membres du groupe sur le système de fichiers.
Mettez en œuvre les quotas Linux pour le stockage
Vous aurez besoin de trois éléments pour commencer :
- Un système de fichiers prenant en charge les quotas.
- Des utilisateurs soumis à des limites de quota.
- Des groupes soumis à des limites de quota.
Commencez par planifier. Les quotas s'appliquent à l'ensemble d'un système de fichiers. Cela signifie que si vous implémentez un quota de 10 Go pour un utilisateur afin de contrôler l'espace de stockage de son répertoire personnel, cette même limite s'applique à tous les autres répertoires de ce système de fichiers, tels que les répertoires de projet ou de service. Vous pourriez involontairement affecter le flux de travail de l'utilisateur en bloquant la consommation dans d'autres parties de la structure du répertoire.
Il en résulte que vous devez planifier les zones de stockage qui nécessitent des contrôles de quota et les créer en tant que systèmes de fichiers distincts. Les deux candidats les plus courants sont /home et /var/log.
- /home est l'emplacement de stockage par défaut pour tous les répertoires personnels des utilisateurs locaux. Ces répertoires contiennent généralement les documents, images, fichiers musicaux et autres ressources des utilisateurs.
- /var/log est le répertoire de stockage des fichiers journaux du système et des applications. De nombreux administrateurs conservent cet emplacement sur un système de fichiers distinct afin d'éviter qu'un fichier journal incontrôlable ne consomme la partition où réside la racine du système de fichiers. Les quotas peuvent également contribuer à protéger cet espace.
Cependant, les administrateurs centralisent souvent les répertoires personnels des utilisateurs sur un seul serveur. Par exemple, vous pouvez mapper les répertoires personnels des 20 membres de l'équipe de développement sur un seul serveur, ce qui facilite la sauvegarde et la sécurisation de leurs fichiers.
Les administrateurs peuvent également configurer le transfert des fichiers journaux rsyslog afin de consolider tous les fichiers journaux sur un seul serveur pour faciliter le dépannage, l'analyse des fichiers journaux et l'archivage. Supposons que vous soyez responsable de 20 serveurs Linux ; imaginez à quel point il serait plus efficace de transférer tous leurs fichiers journaux vers un seul emplacement de stockage centralisé. Cependant, vous devez également vous assurer que les fichiers journaux incontrôlables ne consomment pas trop d'espace.
Votre serveur peut également héberger d'autres répertoires mappés qui stockent des données spécifiques à un service ou à un projet. En les plaçant sur un système de fichiers distinct, vous pouvez gérer leur capacité à l'aide de quotas.
Étapes de déploiement
Une fois que vous avez déterminé la structure de système de fichiers la mieux adaptée à vos besoins, implémentez les quotas en suivant les étapes suivantes :
1/ Activez les quotas pour le système de fichiers cible en ajoutant les options aux points de montage dans le fichier /etc/fstab. Ajoutez usrquota pour les utilisateurs, grpquota pour les groupes, ou les deux.
2/ Remontez le système de fichiers pour intégrer la gestion des quotas : sudo mount -o remount /home. Notez que, dans de nombreux cas, un redémarrage complet est plutôt recommandé.
3/ Initialisez la base de données des quotas : sudo quotacheck -ugm /home où u est l'utilisateur ciblé, g est le groupe ciblé et m est une option permettant d'éviter de remonter le système de fichiers en lecture seule. Cette commande génère les fichiers aquota.user et aquota.group à la racine du système de fichiers. Cette étape peut s'avérer inutile dans certains systèmes de fichiers modernes.
4/ Activez les quotas pour le système de fichiers ciblé : sudo quotaon -v /projects.
5/ Configurez un quota pour l'utilisateur user1 : sudo edquota -u user1.
6/ Configurez un quota pour le groupe devteam : sudo edquota -g devteam.
Par défaut, vous définirez des limites de quota en blocs, qui équivalent à 1 Ko. Pour définir une limite de 10 Go, effectuez le calcul suivant :
10 Go = 10 x 1024 x 1024 = 10 485 760 Ko
Dresser des rapports sur les quotas
Exécutez la commande repquota pour générer un rapport sur l'état des quotas. Utilisez les options disponibles pour filtrer les résultats dont vous avez besoin, tels que l'utilisation par utilisateur ou par groupe.
Voici quelques-unes des options les plus courantes :
-a - Affiche les résultats pour tous les systèmes de fichiers compatibles avec les quotas sur le système.
-s - Affiche une sortie lisible par l'utilisateur.
-u - Affiche uniquement les résultats des quotas pour tous les utilisateurs.
-g - Affiche uniquement les résultats des quotas pour tous les groupes.
Notez qu'un caractère + apparaît dans la deuxième colonne après le nom d'utilisateur si celui-ci a dépassé le quota Linux.
Pour afficher l'utilisation du quota pour des utilisateurs ou des groupes individuels, utilisez la commande quota.
Pour générer un rapport sur un utilisateur spécifique, tapez quota -u {nom d'utilisateur}.
Pour générer un rapport sur un groupe spécifique, tapez quota -g {nom du groupe}.
Créez un script Bash ou une tâche cron pour planifier la génération régulière de rapports.
Conseils de dépannage
Utilisez les conseils de dépannage suivants pour assurer la maintenance de votre programme de gestion des quotas.
- Vérifiez la prise en charge des quotas dans le système de fichiers. La plupart des systèmes de fichiers modernes prennent en charge les quotas Linux.
- Vérifiez que vous avez monté le système de fichiers avec les options de quota dans le fichier /etc/fstab (usrquota ou grpquota).
- Redémarrez ou remontez le système de fichiers. Vous pouvez également essayer systemctl daemon-reload après la commande remount.
- Vérifiez la capacité de stockage à l'aide d'outils tels que du, df, lsblk et mount.
- Vérifiez que les outils de gestion existent, notamment quota, edquota, quotacheck, quotaon et quotaoff.
- Vérifiez que vous avez initialisé les fichiers de quota : quotacheck -cug /home.
- Vérifiez les fichiers journaux /var/log/message pour les entrées liées aux quotas.
Le paramètre du noyau quotacheck.mod gère la manière dont le système vérifie les quotas au démarrage. Il utilise le service systemd-quotacheck.service pour gérer ces vérifications. Vous pouvez forcer ou ignorer les vérifications. Par défaut, les quotas sont vérifiés automatiquement si nécessaire.
