| Version 9 (modified by anonyme, 5 years ago) (diff) |
|---|
-
- Installer les packages necessaires
- Verifier si les quotas marchent au niveau du kernel
- Verifier si les quotas fonctionnent pour le syteme de fichier
- Verifier si les quotas marchent au niveau du "userland"
- Verifier si les quotas marchent au niveau d'alternc
- Verifier si les quotas marchent sur le bureau d'alternc
- Special vserver
- References
Originalement cree par et pour Koumbit, YMMV. -- TheAnarcat
Installer les packages necessaires
aptitude install quota
Verifier si les quotas marchent au niveau du kernel
Revoir la configuration du kernel pour activer les quotas.
Verifier si les quotas fonctionnent pour le syteme de fichier
Verifier fstab : on ajoute grpquota sur la partition /backup
Exemple, fichier /etc/fstab:
/dev/hda3 /backup ext3 defaults,grpquota 0 0
ou:
/dev/hda3 /backup xfs defaults,grpquota 0 0
Creation du fichier quota.group sur /backup
Etape necessaire seulement pour ext3. XFS stocke l'information de quotas directement dans le metadata du filesystem, donc pas besoin de fichiers.
touch /backup/quota.group chmod 600 /backup/quota.group
On initialise la base des quotas en executant la commande suivante :
quotacheck -auvg
remonter la partition
On peut remonter directement la partition:
mount -o remount /backup mount: /backup not mounted already, or bad option
ce qui peut echouer, comme vous voyez ci-haut. Si c'est le cas, essayez de demonter et remonter le volume:
# umount /backup # mount /backup
Evidemment, demonter / n'est pas suggere, et probablement impossible sans crasher le serveur. :) Il faut donc:
- reviser tout et s'assurer qu'il ne manque pas de morceaux,
- ajouter grpquota aux partitions voulues dans /etc/fstab
- shutdown -r +5 "remoounting /var with grpquota support"
Verifier si les quotas marchent au niveau du "userland"
Verifier si les quota sont actives:
quotaon -av
J'ai cette erreur:
quotaon: using /vservers/mysql/aquota.group on /dev/mapper/vserver--data-mysql [/vservers/mysql]: Device or resource busy
... quand je tente de rouler la commande plus d'une fois, autrement, j'ai:
/dev/mapper/vserver--data-mysql [/vservers/mysql]: group quotas turned on
quota -g 2000 devrait retourner les quotas du groupe 2000. Une autre commande qui permet de voir quels quotas sont actifs sur un filesystem est:
# quot quot: Usage: quot [-acfugvV] [filesystem...]
exemple:
# quot /backup
/dev/hda3 (/backup) users:
4242824 root
8 www-data
Parfois quot ne donne rien ici, mais quota -v -g 0 /vserver/mysql fonctionne:
remus:/home/anarcat# quot -v /vservers/mysql/
remus:/home/anarcat# quota -v -g 0
Disk quotas for group root (gid 0):
Filesystem blocks quota limit grace files quota limit grace
/dev/mapper/vserver--data-mysql
571380 0 0 20714 0 0
Evidemment, les quotas ne sont pas accessibles de l'interieur du vserver, mais c'est un debut.
Verifier si les quotas marchent au niveau d'alternc
/usr/lib/alternc/quota_get 2000
devrait donner les memes chiffres que:
quota -g 2000
Note : si vous n'avez defini aucun quota pour l'usager "root" alors il est normal que les deux commandes ne renvoient pas d'information.
Apache doit avoir le droit d'executer quota_get:
ls -l /usr/lib/alternc/quota_get.sh -rwxr-x--- 1 root www-data 184 oct 9 2003 /usr/lib/alternc/quota_get.sh ls -l /usr/lib/alternc/quota_get -rwsr-x--- 1 root www-data 5685 Oct 8 2003 /usr/lib/alternc/quota_get
Verifier si les quotas marchent sur le bureau d'alternc
- se logger dans le bureau
- aller editer ses quotas
- regler un quota quelconque (?) pour "Disk space" (e.g. 1000000 bytes)
- click "edit the quotas"
- revenir editer ses quotas
Le quota devrait s'afficher comme il faut. C'est un probleme un peu emmerdant: il faut editer tous les comptes pour voir leurs quotas s'activer. :)
Special vserver
Pour les vservers, les quotas posent problemes parce que:
- le vserver n'a pas acces aux devices disque pour gerer les quotas
- les partitions peuvent etre partagees
Ce howto decrit comment passer par dessus la limite (1). La limite (2) pourrait etre controlee avec les limites disque par contexte, mais je n'ai pas encore trouve comment faire ceci, et le howto n'est pas encore ecrit. Alors concentrons nous sur le point (1).
Methode 1: partager le device
Le howto de reference est un peu complique et montre comment faire le setup complet du vserver, mais en gros, si vous voulez tester, vous n'avez qu'a faire:
cp -fa /dev/mapper/vserver--data-mysql /vservers/mysql/dev/hdv1
... et vous assurer que les quotas disques sont actives dans /etc/mtab avec un truc comme:
/dev/hdv1 / ufs defaults,grpquota 0 0
Cette derniere modification ne survit pas aux reboots du vserver. Je continue de tester pour voir comment contourner ce leger probleme.
Methode 2: plus securitaire?
Une autre methode existe, mais elle demande des patches qui ne sont pas disponible pour le kernel 2.6.8 et des commandes que je ne retrouve pas (vrsetup).
References
Manpages, evidemment disponibles sur Linux, directement
Autres
Pour debugger les quotas, utiliser avec soin google et surtout dmesg, qui contient les valeureux messages d'erreurs de XFS. Aussi, notez qu'il n'est pas possible d'activer les quotas une fois que le filesystem est "monte", avec un -o remount. Il faut que les quotas soient actives dans /etc/fstab et donc au boot ou que le filesystem soit "demonte" avant d'activer les quotas.
