[index des documents]

Conception et mise en oeuvre d'un Service d'Archivage

Gestion des quotas

L'idée est de gérer les quotas sur le serveur d'archivage (sous Linux Fedora Core 2) afin de limiter les espaces d'archivages des utilisateurs. Les utilisateurs, enregistrés sur l'annuaire AD du PDC sous Windows 2000, n'ont pas de compte sur le serveur d'archivage. L'utilisation des quotas leur permettera d'écrire sur le serveur d'archivage dans leur espace réservé sur environ 4,7Go ou 700Mo, en fonction de ce qu'ils ont réservé comme espace d'archivage (espace pour CD ou pour DVD). Lorsqu'un utilisateur réserve un espace, un répertoire nommé comme son nom de login, est créé sur le serveur d'archivage, puis, un quota disque lui est attribué suivant la taille du disque optique qu'il a choisi initialement (CD ou DVD).
Ce document montre comment mettre en oeuvre la gestion des quotas sous Linux pour le serveur d'archivage.
Le noyau gère t'il les quotas?
Configuration de la gestion des quotas
Attribution des quotas
Quelques liens

Le noyau gère t'il les quotas?

Pour le savoir, on vérifie tout simplement :
[root@localhost root]# rpm -qa | grep quota
quota-3.10-2
Puis :
[root@localhost root]# grep -i quota /boot/config-2.6.5-1.358
CONFIG_XFS_QUOTA=y
CONFIG_QUOTA=y
CONFIG_QUOTACTL=y

Configuration de la gestion des quotas

Les quotas sont activés au démarrage grâce à la commande /sbin/quotaon lancée par le script /etc/rc.d/rc.sysinit. Ils sont désactivés à l'arrêt du système par la commande quotaoff.
Nous devons modifier le fichier /etc/fstab pour gérer les quotas au niveau utilisateur. Il suffit de rajouter le mot-clé usrquota au niveau de la ligne de la partition concernée :
/dev/md3	/home	ext3	default,usrquota	1	2
PS : Ici, nous ne souhaitons gérer les quotas qu'au niveau utilisateur. On pourrait les gérer au niveau groupe en mettant également le mot-clé grpquota dans le fichier /etc/fstab à la ligne correspondante à la partition concernée.
Le fichier aquota.user doit être créé à la racine du système de fichier qui comporte les quotas, c'est à dire /home dans notre cas. A la création de ce fichier, il faut veiller à lui donner les droits en lecture/écriture seulement pour le root.
[root@localhost root]# touch /home/aquota.user
[root@localhost root]# chmod 600 /home/aquota.user
[root@localhost root]# mount -o remount /home
PS : Si nous voulions gérer les quotas au niveau groupe, il faudrait créer de la même manière le fichier aquota.group. A noter que l'on peut gérer les quotas utilisateur et les quotas groupe simultanément.
Initialisons la base des quotas :
[root@localhost root]# quotacheck -afm
Voici la syntaxe de la commande : quotacheck [ -vugfm ] -a | filesystem

Attribution des quotas

Tout d'abord, voici la commande pour afficher un résumé de l'utilisation des quotas :
[root@localhost root]# repquota -a
Voici la syntaxe de la commande : repquota [ -vug ] -a | filesystem
La commande suivante permet tout simplement d'afficher le quota de l'utilisateur courant :
[root@localhost root]# quota
Celle-ci, affiche le quota de l'utlisateur CAMPUS+alenorcy :
[root@localhost root]# quota CAMPUS+alenorcy
Disk quotas for user CAMPUS+alenorcy (uid 11679):
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
       /dev/md3      16       0       0               3       0       0
Pour attribuer un quota à l'utilisateur CAMPUS+alenorcy :
[root@localhost root]# edquota -u CAMPUS+alenorcy
Par defaut, vi se lance et il faut modifier le fichier qui apparaît pour attribuer un quota à l'utilisateur CAMPUS+alenorcy. Pour que ce fichier soit lancé automatiquement dans un autre éditeur, il suffit de mettre le nom de votre éditeur favori dans la variable $EDITOR.
Le fichier lancé par vi est le suivant :
Disk quotas for user CAMPUS+alenorcy (uid 11679):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/md3                         16          0          0          3        0        0
Pour attribuer un quota, il faut modifier les valeurs qui sont mises à zero puis enregistrer et fermer l'éditeur.
Le fichier se compose de 6 colonnes :
Pour attribuer un quota à plusieurs utilisateurs de façon automatique (sans devoir modifier un fichier sous vi...), il faut affecter un "modèle de quota" aux utilisateurs. Voici un exemple :
[root@localhost root]# edquota -p CAMPUS+alenorcy -u autre_utilisateur
L'utilisateur autre_utilisateur a désormais le même quota que l'utilisateur CAMPUS+alenorcy.
Pour le service d'archivage, il nous faut fixer une limite "hard" au niveau blocks et au niveau inodes
Concernant le DVD, la capacité d'un disque est de 4.7GB. Mais pour les constructeurs de disque, 4.7GB correspond réellement à 4 700 000 000 octets... Donc, si l'on transforme 4.7GB en Ko (Kilo-octets avec 1 Ko octets = 1024 octets) alors cela représente 4 589 843 Ko. Nous arrondissons à 4 589 000 par sécurité car la (ou les) dernières pistes ne sont pas toujours très bien gérées par les graveurs ou les lecteurs. En ce qui concerne les CD, on réalise un convertion du même genre : 700MB (selon les constructeurs) réprésente seulement 683 593 Ko (avec 1 Ko = 1024 octets...), puis nous arrondissons à 683 000 Ko. Par principe, nous limitons le nombre de fichiers à 10 000 000.
Nous allons définir deux nouveaux utilisateurs Unix (avec useradd). Nous les nommons cd et dvd puis leur fixons un quota correspondant à leur intitulé.
Ainsi, à chaque nouvelle réservation d'espace d'archivage, la commande edquota -p sera lancé par un script pour attribuer le quota du nouvel utilisateur en fonction de ce qu'il a réservé comme espace. Par exemple, admettons que l'utilisateur CAMPUS+alenorcy réserve un espace d'archivage d'une capacité CD, son quota lui sera instauré par la commande suivante :
[root@localhost root]# edquota -p cd -u CAMPUS+alenorcy
Après avoir modifié un quota, on fait une vérification de la cohérence du système :
[root@localhost root]# quotacheck -afm
Ainsi, il est très simple d'automatiser l'ajout un quota pour un nouvel utilisateur.

Quelques liens


MAJ le 20/06/2005