| Version 7 (modified by anonyme, 7 years ago) (diff) |
|---|
-
- Installer les packages necessaires
- Vérifier si les quotas marchent au niveau du kernel
- Vérifier si les quotas fonctionnent pour le syteme de fichier
- Vérifier si les quotas marchent au niveau du "userland"
- Vérifier si les quotas marchent au niveau d'alternc
- Vérifier si les quotas marchent sur le bureau d'alternc
- Spécial vserver
- Références
Originalement créé par et pour Koumbit, YMMV. -- TheAnarcat
Installer les packages necessaires
aptitude install quota
Vérifier si les quotas marchent au niveau du kernel
Revoir la configuration du kernel pour activer les quotas.
Vérifier si les quotas fonctionnent pour le syteme de fichier
Vérifier 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
Création du fichier quota.group sur /backup
Étape nécessaire 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 exécutant 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 échouer, comme vous voyez ci-haut. Si c'est le cas, essayez de démonter et remonter le volume:
# umount /backup # mount /backup
Évidemment, démonter / n'est pas suggéré, et probablement impossible sans crasher le serveur. :) Il faut donc:
- réviser 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"
Vérifier si les quotas marchent au niveau du "userland"
Vérifier si les quota sont activés:
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
Évidemment, les quotas ne sont pas accessibles de l'intérieur du vserver, mais c'est un début.
Vérifier si les quotas marchent au niveau d'alternc
/usr/lib/alternc/quota_get 2000
devrait donner les mêmes chiffres que:
quota -g 2000
Note : si vous n'avez défini 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
Vérifier si les quotas marchent sur le bureau d'alternc
- se logger dans le bureau
- aller éditer ses quotas
- régler un quota quelconque (?) pour "Disk space" (e.g. 1000000 bytes)
- click "edit the quotas"
- revenir éditer ses quotas
Le quota devrait s'afficher comme il faut. C'est un problème un peu emmerdant: il faut éditer tous les comptes pour voir leurs quotas s'activer. :)
Spécial vserver
Pour les vservers, les quotas posent problèmes parce que:
- le vserver n'a pas accès aux devices disque pour gérer les quotas
- les partitions peuvent être partagées
Ce howto décrit comment passer par dessus la limite (1). La limite (2) pourrait être contrôlée avec les limites disque par contexte, mais je n'ai pas encore trouvé comment faire ceci, et le howto n'est pas encore écrit. Alors concentrons nous sur le point (1).
Méthode 1: partager le device
Le howto de référence est un peu compliqué et montre comment faire le setup complet du vserver, mais en gros, si vous voulez tester, vous n'avez qu'à faire:
cp -fa /dev/mapper/vserver--data-mysql /vservers/mysql/dev/hdv1
... et vous assurer que les quotas disques sont activés dans /etc/mtab avec un truc comme:
/dev/hdv1 / ufs defaults,grpquota 0 0
Cette dernière modification ne survit pas aux reboots du vserver. Je continue de tester pour voir comment contourner ce léger problème.
Méthode 2: plus sécuritaire?
Une autre méthode 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).
Références
Manpages, évidemment disponibles sur Linux, directement
Autres
Pour débugger 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 "monté", avec un -o remount. Il faut que les quotas soient activés dans /etc/fstab et donc au boot ou que le filesystem soit "démonté" avant d'activer les quotas.
