[TechTalk] Server, Virtualisierung, Zimbra und mehr …
Ein etwas längerer Artikel, genauer ein kleiner Erfahrungsbericht zum Thema Virtualisierung auf einem Hetzner-Server mit Proxmox VE und die Einrichtung eines kompletten Mail- und Collaborationssystem mit Zimbra (Open Source Edition).
Am Anfang …
In den letzten paar Tagen habe ich nun wieder viel mit dem Hetzner-Server rumgespielt. Bei der großen Kiste wollte ich z. B. unbedingt Server-Virtualisierung nutzen — Diskussionen um das Für und Wider sind mir hier einerlei, es gibt halt auch Gründe FÜR virtuelle Server. Vor langer Zeit habe ich mir dazu die Anleitungen für Xen und KVM angeschaut, bin damit aber nie zufrieden gewesen, zumal die immer wiederkehrende Konfiguration auf der Konsole/Shell nervig sein kann; einmal tippen, okay, aber immer wieder? Nee, danke!
Xen, KVM, XenServer, Proxmox VE
Dann hab ich bei den Berliner Piraten entdeckt, dass sie wohl auf ihrem Hetzner-Server XenServer als Hostumgebung eingesetzt haben. Da ich der Berliner IT ebenfalls etwas unter die Arme greifen wollte (und weiterhin auch will), dachte ich mir, probierste ooch mal aus. Nur, weder XenServer 5.6, noch der Vorgänger Version 5.5 wollten richtig laufen. Die 5.5er habe ich wenigstens überhaupt korrekt installiert bekommen, aber danach war dummerweise netztechnische Funkstille, nur über eine Rescue-VNC-Verbindung konnte ich überhaupt den XenServer sehen, brachte mir aber alles nichts, die Netzwerkkonfiguration stellte mich vor ein unlösbares Problem: keine Verbindung ein- oder ausgehend. Das brachte mir nichts, und stunden-, wenn nicht sogar tagelanges Suchen und Probieren wollte ich mir dann doch ersparen.
Dann stöberte ich im Hetzner-Wiki weiter herum und fand noch etwas zum Ausprobieren: Proxmox VE (PVE). Und ihr werdet es kaum glauben, aber das funktionierte! Sogar mehr oder weniger auf Anhieb. Zumindest war auch das Problem mit der Netzverbindung in das große WWW möglich. Und: auch von außen kam ich nun endlich an die Kiste ran. Nettes Feature von PVE: dank Webinterface ist die Administration sehr leicht zu bewerkstelligen. Eventuell sollte man nach erfolgreicher Einrichtung und Lasttests das Webinterface abstellen oder anderweitig abschotten, will man externe Zugriffe darauf gering halten oder gar ganz vermeiden.
Proxmox verwendet als Virtualisierungsformen OpenVZ und KVM. Gut, mit OpenVZ kenn ich mich nicht so sehr aus, war aber auf den ersten Blick auch nicht das Format, welches ich nutzen will (unterstützt z. B. weniger Gastsysteme). KVM kenne ich bereits aus meinen früheren Erfahrungssammelspielchen und wirkte daher prädestiniert als Hauptkandidat.
Da mittlerweile KVM (Kernel-based Virtual Machine) ebenfalls wie die Xen-Architektur auch die Paravirtualisierung unterstützt, stellt sich somit eh nicht mehr die Frage, welches von beiden der geneigte Virtualisierer nutzen will. Zu KVM sei noch gesagt, dass es nur die Infrastruktur bereitstellt und die Emulation selbst durch ein modifiziertes QEMU vollzogen wird, aber das ist eher Fachsimpelei und für den Laien-Sysadmin wie mich nicht weiter wichtig, solange alles läuft, wie es soll und die Leistung nicht großartig beeinträchtigt wird.
Übrigens: ein gerne angeführtes Argument gegen Virtualisierung ist ja immer die mangelnde Leistung und eventuelle Trägheit. Meine Erfahrung zeigten, dass z. B. sogar ein virtualisiertes Windows unter umständen sogar flotter laufen kann, als wenn es nativ installiert wurde (auf ein und dem selben Rechner!). Und Linux wie auch andere Unixoide sind meist nicht so Ressourcen fressend, gerade dann nicht, wenn sie eh als Server ohne grafische Oberfläche daherkommen.
IP-Adressen auf virtuellen Servern
Spannendes Feld bei der Virtualisierung auf einem Hetzner-Server (ich habe einen EQ4, rund 50 EUR monatlich) ist übrigens die Nutzung der kostenfreien Zusatz-IPs für die VMs (Virtual Machines), denn durch die etwas restriktivere Netzwerk-Infrastruktur bei Hetzner darf und kann man nicht jede Form der Konfiguration nutzen. Problem ist hierbei immer, dass Hetzner nur die MAC der Haupt-IP (bzw. der Netzwerkkarte, die da eingebaut ist), reagiert und keine eigenen MAC-Adressen (wie sie durch die VMs erzeugt, genutzt, modifiziert werden können) akzeptiert. D. h., dass man also den ganzen Netzverkehr zwangsweise über die Haupt-IP abwickeln muss, Stichwort Routing fällt hier schnell. Nur dass dieses Setup aus meiner Sicht unschöne Formen annimmt. Grundsätzlich aber richtet man ein Netzwerk ja nur einmal ein und dann läuft das ja erst einmal bis auf unbestimmte Zeit.
Was mir früher immer das Genick gebrochen hat bei solchen Konfigurationen, war die Kombination aus Schnittstellen-Definitionen (die virtuellen Bridges) und das Routing via iptables. iptables ist ein Paketfilter (manche gehen ja soweit, es als Firewall zu deklarieren, aber soviel kann iptables dann doch nicht), und mit diesem Ding habe ich früher noch nie wirklich gearbeitet und will es auch gar nicht weiterhin.
Jedenfalls habe ich mit Proxmox VE und dem Routed-IP-Setup endlich auch mal die Zusatz-IPs auf VMs aufsetzen können; und es funktionierte dann auch das Ansprechen der jeweiligen VM über die zugewiesene IP! Klingt ja im ersten Moment trivial, aber ist es letztlich überhaupt nicht.
Jetzt ging es ans Eingemachte. Zwei VMs habe ich bereits aufgesetzt: einmal eine für das Mailsystem und eine für die Websites (dahin werde ich nach und nach meine Domains umziehen, wenn ich einige Lasttests durchgeführt habe). Die dritte Zusatz-IP werde ich wohl für eine Entwicklungsinstanz freihalten, möglich wäre aber auch ein separierter Datenbank-Server. Würde ich bei Hetzner etwas mehr Geld ausgeben, könnte ich noch ein kleines IPv4-Subnetz nachbuchen, aber zu viele VMs will ich gar nicht laufen lassen, immerhin ist der EQ4 ja nicht endlos in der Leistung.
Mailserver
Mein erster Test war das Mailsystem. Auch hier habe ich in der Vergangenheit einige Experimente durchgeführt. Ein lauffähiges System mit Postfix und Dovecot läuft noch auf dem Server meiner besseren Hälfte. Dramatisch daran ist nur, dass es keine super-einfachen Administrationswerkzeuge gibt und ich die Zeit und Lust nicht aufgebracht habe, welche zu schreiben. Ein Bekannter nutzt ein Mailsystem namens Bongo, aber dieses ließ sich bei mir nie problemlos installieren; es ist auch noch völlig Alpha und braucht noch viel Zeit, da zu wenig Entwickler daran arbeiten.
Dann viel mir ein, dass wir auf Arbeit mit Zimbra unseren Mailverkehr erledigen und schaute dort nach, was die so zu bieten haben. Jetzt sind die dort ganz nett und bieten sogar eine Open Source-Lösung an. Leider nur nicht für die aktuelle Ubuntu 10.04 LTS. Aber macht ja nix, wir können auf den VMs ja so ziemlich alles und jedes System installieren, also nehmen wir uns ein unterstütztes System zur Hand.
Zimbra goes online — easy!
Betriebssystem installiert, Zimbra-Paket runtergeladen, ausgepackt und einfach mal die ./install.sh ausgeführt. Schnell stellt man fest, dass noch einige Pakete aus dem System-Repository fehlen, die aber auch schnell nachinstalliert sind. Nochmal die Zimbra-Installation angeworfen und das Ding installiert sich (mit einigen Rückfragen). Wichtig hierbei ist, schon im Vorfeld die Standard-Domain korrekt im Nameserver (DNS) eingestellt zu haben (besonders wichtig sind die MX-Records im DNS; optional sind dagegen sicherlich die Subdomains wie imap.~, pop.~ und smtp.~, welche ich aber mit CNAME dennoch nachgetragen habe, das macht einigen Mailclients die Einrichtung einfacher, da sie nach solchen doofen Adressen suchen).
Wenn die Installationsroutine ihre Einrichtung und Konfiguration vollendet hat, geht es auch schon fast ans Rumspielen mit dem System. Einer der letzten Schritte ist es, ein Administrator-Passwort einzurichten und die abschließende Routine abzuwarten. Hat man nicht allzu viel falsch gemacht, kann man sich auf der Mailserver-Domain via Webinterface in Zimbra einloggen, aktuell nur als Admin, da ja keine weiteren Accounts existieren. Oben rechts in der Ecke ist dann auch ein Link zur Verwaltungskonsole (auch ein Webinterface), wo der Administrator sich dann nach Herzenslust austoben kann.
Abschließend sei gesagt, dass Zimbra wirklich einen sehr guten Eindruck hinterlässt und die Installation auch von nicht so bewanderten Menschen schnell gemeistert werden kann. Jedenfalls heisst es nicht stundenlanges HOWTO wälzen, probieren, neue Tutorials suchen, wieder probieren … ihr wisst schon, schnell und einfach und ohne Komplikationen.
Auch zusätzliche (Mail-)Domains sind leicht eingerichtet und über den Zimbra Collaboration Server verwaltbar. Wichtig ist immer nur, dass man vorher die Nameserver korrekt konfiguriert.
Webserver
Auf der zweiten VM kommt wieder mein Lieblingswebserver nginx rauf, PHP in Version 5.3 mit FPM (besseres FastCGI als das Standardzeugs), ab Version 5.3.3 ist FPM sogar endlich nativ eingebaut, jedoch lässt sich das selbst auf einem Ubuntu 10.04 LTS nicht problemlos installieren, daher greife ich auf eine 5.3.2-Lösung mit extra FPM-Paket zu. Geht auch. Ruby wird noch nachinstalliert, damit spiele ich in letzter Zeit auch zu gerne rum, und die Datenbankserver (mysql, mongodb/couchdb und eventuell postgres) folgen noch, damit jede Webanwendung zufriedengestellt ist.
Lage normal, alles im Arsch
So schlimm wie diese Teilüberschrift will ich die Situation zwar nicht bewerten, aber dennoch sollte man nun mit dieser Gesamtsituation erst einmal seine Erfahrungen machen und nach Tauglichkeit bewerten. Ich jedenfalls freue mich über diese vielen kleinen Teilerfolge und habe wieder eine Menge gelernt.
Und ich hoffe, der Artikel war nicht zuuu nerdig, ich hab bewusst auf gewisse Termini verzichtet, womit ich den Beitrag komplett ins Linuxer-Nerdforum gepackt hätte. Ich stehe jedenfalls gern mit etwas Rat und Tat zur Seite, die ganzen Seiten, die ich für den einen oder anderen Schritt benötigt habe, sind gespeichert. Bald wird auch ein eigenes Linux-Blog starten, wo ich diese Erfahrungen und Anleitungen schön wieder geben werde, damit auch andere an den Früchten laben können …
Links
- Proxmox VE, http://pve.proxmox.com/wiki/Main_Page
- XenServer, http://www.citrix.de/produkte/schnellsuche/xenserver/ | Download Version 5.6
- Zimbra, http://www.zimbra.com/downloads/os-downloads.html
- Bongo, http://www.bongo-project.org/
- PHP-FPM, http://php-fpm.org/
— Autor: