Retour

Activer les quotas sur un système de fichiers XFS



Pour différentes raisons, il peut être nécessaire d'activer les quotas sur une partition avec un système de fichiers en XFS.


Avec les quotas on peut limiter l'espace alloué a un ou plusieurs utilisateurs, à un groupe, contrôler l'occupation des inodes, du nombre de fichiers créés.

Le système de fichiers XFS supporte très simplement les quotas, mais on ne les active pas de la même façon que par exemple avec un système de fichiers ext3, il n'y a pas de fichier aquota.user et aquota.group.  
Pour activer les quotas sur XFS, il suffit dans un premier temps d'ajouter l'option uquota sur la ligne de la partition dans /etc/fstab ou dans la commande mount. Exemple :

LABEL=/data2   /media/hdc2     xfs   noatime,nodiratime,user,uquota,noauto 0    2

Pour configurer les quotas il faut d'abord monter la partition avec l'option uquota. 

Pour avoir une information sur l'état des lieux, l'option quot de la commande xfs_quota parcourt rapidement le fs pour donner un résumé de l'occupation par utilisateur, groupe, ou projet.  

       :~# xfs_quota -x -c quot
/dev/hdc2 (/media/hdc2) User:
       4    cep
       4    epi
       4    casa
       4    passant

L'option state résume les types de quotas en service et l'occupation.

:~# xfs_quota -x -c state
User quota state on /media/hdc2 (/dev/hdc2)
  Accounting: ON
  Enforcement: ON
  Inode: #131 (4 blocks, 4 extents)
Group quota state on /media/hdc2 (/dev/hdc2)
  Accounting: OFF
  Enforcement: OFF
  Inode: #18446744073709551615 (0 blocks, 0 extents)
Project quota state on /media/hdc2 (/dev/hdc2)
  Accounting: OFF
  Enforcement: OFF
  Inode: #18446744073709551615 (0 blocks, 0 extents)
Blocks grace time: [7 days]
Inodes grace time: [7 days]
Realtime Blocks grace time: [7 days]

Comme le système de fichiers va maintenant être mis en service pour plusieurs users, nous allons leur fixer des limites avec la commande xfs_quota -x en mode interactif et utiliser les sous commandes path, limit pour fixer les occupations possibles en indiquant l'ID de l'user concerné, et quota -h ID de l'user pour afficher la valeur configurée :  

:~# xfs_quota -x /media/hdc2
xfs_quota> path
      Filesystem          Pathname
[000] /media/hdc2         /dev/hdc2 (uquota)
xfs_quota> limit bsoft=4g bhard=5g 1001
xfs_quota> quota -h 1001        # -h = human-readable comme dans df
Disk quotas for User epi (1001)
Filesystem   Blocks  Quota  Limit Warn/Time    Mounted on
/dev/hdc2        4K     4G     5G  00 [------] /media/hdc2
xfs_quota> limit bsoft=2200m bhard=2500m 1002
xfs_quota> quota -h 1002
Disk quotas for User casa (1002)
Filesystem   Blocks  Quota  Limit Warn/Time    Mounted on
/dev/hdc2        4K   2,1G   2,4G  00 [------] /media/hdc2
xfs_quota> limit bsoft=2200m bhard=2500m 1003
xfs_quota> q
:~#

À tout moment, pour avoir le rapport d'occupation : 

       :~# xfs_quota -x -c ' report -h ' /media/hdc2
User quota on /media/hdc2 (/dev/hdc2)
                        Blocks
User ID      Used   Soft   Hard Warn/Grace
---------- ---------------------------------
root            0        0       0        00   [------]
cep            4K        0       0       00   [------]
casa           4K      4G     5G     00   [------]
epi             4K    2,1G   2,4G   00   [------]
passant      4K   2,1G   2,4G   00   [------]

D'après le man, pour établir un quota par user, on aurait aussi pu utiliser la commande : 

       xfs_quota -x -c 'limit bsoft=2200m bhard=2500m epi' /media/hdc2

Pour une utilisation des quotas sur les groupes ou les projets, voir le man xfs_quota. 


Retour



Valid HTML 4.01 Transitional        Valid CSS!