cyrus-imapd und Quota
Irgendwann hatte ich mir einmal aufnotiert, wie innerhalb des cyrus-imapd Quotas gesetzt und ausgelesen werden. Eine Information, die ggf. auch für andere „da draußen“ interessant sein könnte.
Die administrative Ansteuerung des cyrus-imapd erfolgt über den cyradm, und das umfasst so ziemlich alles: das Anlegen neuer sowie das Löschen nicht mehr benötigter User, das Prüfen der Mailboxgrößen, das Setzen der Zugriffsrechte und so weiter. Und natürlich das Setzen und Auslesen der Quota. Ist man erst einmal im cyradm eingeloggt, erfolgt das Setzen der Quota in kB. Nachfolgend setzen wir eine Quota von 1GB für den User fritz.
cyradm> sq user.fritz 1048576
quota:1048576
User arno soll eine Quota von 3GB erhalten.
cyradm> sq user.arno 3145728
quota:3145728
Selbstredend ist es günstiger, vorher zu prüfen, wieviel die User fritz und arno schon in ihrer Mailbox haben – und sie gegebenenfalls zum Aufräumen zu ermutigen ;) Wenn die Quota gesetzt ist, können wir schauen, wie ausgelastet die einzelnen Mailboxen im Verhältnis zur gesetzten Quota sind.
cyradm> lq user.arno
STORAGE 257701/3145728 (8.19209416707357%)
arno hat also ~251MB und somit 8.19% seiner Mailbox belegt. Dazu korrespondierend gibt es noch zwei weitere Files.
$ less /var/imap/quota/a/user.arno
263895518
3145728
$ less /var/imap/quota/f/user.fritz
10966
1048576
Hinweis: der korrekte Pfad steht in Abhängigkeit davon, was in /etc/imapd.conf als configdirectory konfiguriert wurde. In meinem Fall ist das /var/imap. Der Output ist unnötig kompliziert für mein Empfinden; der obere Wert in der Ausgabe für fritz gibt den tatsächlich belegten Speicher der Mailbox an (in Byte!, also in diesem Falle ~10kB), der untere Wert gibt den verfügbaren Speicher der Mailbox an (in kB!, also 1GB). Angeblich werden die Quotas im cyrus über ein 32bit-Integer gesetzt. Im Umkehrschluss bedeutet das, dass eine Quota > 4GB zum einem Integer-Überlauf und damit in Zusammenhang stehenden, recht unangenehmen Problemen führt. Diese Angabe muss ich jedoch für ganz aktuelle Versionen der Software noch überprüfen.
Im Thunderbird kann man sich die Auslastung als Balken begucken: Rechtsklick auf den Posteingang → Eigenschaften → Quota. Und in der Horde sorgt eine kleine Anpassung dafür, dass die Angabe sichtbar wird (Version 3.2): in imp/config/servers.php.
'quota' => array (
'driver' => 'cyrus',
'params' => array()
)
Ausloggen, einloggen, und die Kapazitätenanzeige erscheint.
2 Kommentare
Von: Andreas E. Mueller
2008-06-27 22:14:28 +0200
Bei älteren Cyrus Versionen gab es, meiner Erfahrung nach, einen segmentation fault bei Angaben über 4 GB. Bei versionen älter als 2006 zumindest trifft dies nicht mehr zu.
Oder war es nur weil ich seitdem ein 64-bit System besitze (und mein cyrus 64-bit compiled war)?
Weiss nicht mehr so genau... könnte auch gelogen sein.
Gruss,
Andy
Von: Andreas E. Mueller
2008-06-27 22:16:38 +0200
Kleine Korrektur:
"Bei versionen älter^H^H^H^H^Hjünger als 2006 zumindest trifft dies nicht mehr zu."
Hinterlasse einen Kommentar
Ich freue mich über jeden Kommentar, es sei denn, er ist blöd.
Deshalb sind die Kommentare auf dieser Seite auch generell moderiert.