{"id":42,"date":"2011-09-22T13:26:02","date_gmt":"2011-09-22T11:26:02","guid":{"rendered":"http:\/\/blog.roellig-it.de\/?p=42"},"modified":"2015-12-07T00:24:45","modified_gmt":"2015-12-06T23:24:45","slug":"cyrus-imap-murder-cluster","status":"publish","type":"post","link":"https:\/\/blog.roellig-it.de\/index.php\/2011\/09\/22\/cyrus-imap-murder-cluster\/","title":{"rendered":"Cyrus Imap Murder Cluster"},"content":{"rendered":"<p>Wir setzen schon seit einigen Jahren den <a title=\"Cyrus Imapd\" href=\"http:\/\/www.cyrusimap.org\/\" target=\"_blank\">Cyrus Murder<\/a> in unserer Mailcluster Umgebung ein. Aber wie so immer gibt es auch hier hin wieder Sachen die fehlen oder nicht nicht so toll sind.<\/p>\n<p><!--more-->Der Vorteil ist aber die wirklich hohe Dynamik des gesamten Clusters.<\/p>\n<p>Sollten die Ressourcen nicht ausreichen kann man innerhalb weniger Minuten eine neue Maschine aufstellen in Betrieb nehmen und den Cluster im laufenden Betrieb erweitern.<\/p>\n<p>Auch das Splitten des Clusters ist ein gro\u00dfer Vorteil gerade f\u00fcr Kunden die <a title=\"SLA \" href=\"http:\/\/de.wikipedia.org\/wiki\/Service-Level-Agreement\" target=\"_blank\">SLA<\/a> ben\u00f6tigen.<\/p>\n<p>Auch das aufteilen von einzelnen Mailboxen ist ein Vorteil gerade wenn sie sehr gro\u00df sind, oder aber auch Shared Mailboxen lassen sich wunderbar \u00fcber mehrere Server verteilen.<\/p>\n<p>Aber eines der Probleme die wir von Anfang an hatten, waren, das die Cyrus Frontendserver nur <a title=\"LMTP\" href=\"http:\/\/de.wikipedia.org\/wiki\/LMTP\" target=\"_blank\">LMTP<\/a> beherrschen. Da LMTP meist nur als Lokale Transportschicht benutzt wird, verf\u00fcgt LMTP in Cyrus kaum \u00fcber spezielle funktionale F\u00e4higkeiten, da es ja sowie so meist nur \u00fcber einen Lokalen Socket angesprochen wird.<\/p>\n<p>Daher ist die Trennung von Cyrus und Postfix manchmal ein bisschen kompliziert.<\/p>\n<p>Da der Cyrus Frontend Server keine R\u00fcckmeldung beim einliefern gibt wenn die eingestellten Ressourcen zu neige gehen. Postfix kann auf solche Dinge besser reagieren und einen entsprechenden Fehler absetzen.<\/p>\n<p>Deswegen haben wir anfangs auch einige Probleme gehabt wenn der Cyrus Server an seine grenzen stie\u00df, hielt er einfach Verbindungen so lange offen bis die Kiste \u00fcberhaupt nicht mehr reagierte. Daher habe wir einfach auf den Cyrus Frontendserver Postfix mit Installiert. Somit haben wir gleich zwei Fliegen mit einer Klappe geschlagen.<\/p>\n<p>Das erste war: Postfix erzeugt bei zu vielen Verbindungen eine Tempor\u00e4re Fehlermeldung<\/p>\n<p>Das zweite war: Der gesamte Cluster bekam mehr Dynamik, da Postfix nun selbst in der Lage war auf einen anderen Frontendserver um zu schalten. Was vorher nicht der Fall war.<\/p>\n<p>Auch die Lastverteilung auf den verschiedenen Backendserver kann man mit dem Cyrus somit gut unter Kontrolle halten. Je nach dem welcher Backendserver die wenigste Grundlast hat. Wir haben im Laufe der Zeit einige Helperscripte entwickelt um das verschieben der Mailboxen zwischen den Backendservern zu Automatisieren.<\/p>\n<p>Da wir grunds\u00e4tzlich zwei Netzwerksegmente haben, geht das verschieben der Mailboxen entsprechend schnell.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wir setzen schon seit einigen Jahren den Cyrus Murder in unserer Mailcluster Umgebung ein. Aber wie so immer gibt es auch hier hin wieder Sachen die fehlen oder nicht nicht so toll sind.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-42","post","type-post","status-publish","format-standard","hentry","category-cyrus"],"_links":{"self":[{"href":"https:\/\/blog.roellig-it.de\/index.php\/wp-json\/wp\/v2\/posts\/42","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.roellig-it.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.roellig-it.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.roellig-it.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.roellig-it.de\/index.php\/wp-json\/wp\/v2\/comments?post=42"}],"version-history":[{"count":1,"href":"https:\/\/blog.roellig-it.de\/index.php\/wp-json\/wp\/v2\/posts\/42\/revisions"}],"predecessor-version":[{"id":310,"href":"https:\/\/blog.roellig-it.de\/index.php\/wp-json\/wp\/v2\/posts\/42\/revisions\/310"}],"wp:attachment":[{"href":"https:\/\/blog.roellig-it.de\/index.php\/wp-json\/wp\/v2\/media?parent=42"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.roellig-it.de\/index.php\/wp-json\/wp\/v2\/categories?post=42"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.roellig-it.de\/index.php\/wp-json\/wp\/v2\/tags?post=42"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}