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?
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
- -v : mode verbeux, affiche des infos supplémentaires
- -u : vérifie uniquement les fichiers de quotas utilisateurs
- -g : vérifie uniquement les fichiers de quotas groupes
- -f : force la validation et l'écriture d'un nouveau fichier de quotas
- -m : force le remontage de la partition en cas d'échec
- -a : vérifie les fichiers de quotas de tous les systèmes de fichiers en
disposant
- filesystem : vérifie les fichiers de quotas du système de fichiers spécifié
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
- -v : mode verbeux, affiche des infos supplémentaires
- -u : affiche des informations sur les quotas utilisateurs
- -g : affiche des informations sur les quotas groupes
- -a : affiche des informations sur tous les systèmes de fichiers disposant
de quotas
- filesystem : affiche des informations sur les quotas du système de fichiers
spécifié
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 :
- Filesystem : système de fichiers concerné par les quotas.
- blocks : nombre de blocs occupés par l'utilisateur dans
le système de fichiers.
- soft : limite soft en nombre de blocs.
- hard : limite hard en nombre de blocs.
- inodes : nombre d'inodes occupées par l'utilisateur dans
le système de fichiers.
- soft : limite soft en nombre d'inodes.
- hard : limite hard en nombre d'inodes.
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
- Pour un espace CD : limite hard blocks = 683500 et limite hard (inodes)
= 10000000
- Pour un espace DVD : limite hard blocks = 4589000 et limite hard (inodes)
= 10000000
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