FreeBSD, Jails und ZFS - ein perfektes Gespann

Jörg Schweizer
Jörg Schweizer zufriedene Kunden und grüne Tests sind die Zutaten für einen erfolgreichen Arbeitstag.
Wolfgang Zenker
Wolfgang Zenker schafft es mit einfachen Worten komplexe technische Prozesse & Programme zu erklären.
Patrick M. Hausen
Patrick M. Hausen Netzwerke und Infrastruktur sind sein Steckenpferd - damit Sie sich auf eine stabile Anwendung verlassen können.

Warum verwendet die punkt.de eigentlich dieses FreeBSD für Ihre Server? Die Antwort ist recht simpel: Weil es gut ist. 

Wir in der Technik haben in den letzten Jahr(zehnt)en mit allen möglichen und unmöglichen Systemen gearbeitet, aber sind letztlich bei FreeBSD geblieben, und zwar aus folgenden Gründen:

Alles aus einem Guss

Das Basissystem (Kernel, Treiber und Standard-Systemprogramme) wird vom FreeBSD-Team gepflegt und folgt daher einem einheitlichen Schema in Sachen Installationsort, Konfigurationsdateien und Dokumentation. Beschrieben in der man-page hier(7). Wir sind in der FreeBSD-Community gut vernetzt und schätzen die stets angenehmen Umgangsformen und die große Hilfsbereitschaft sehr.

Das Basissystem

Das gesamte Betriebssystem samt aller genannten Komponenten liegt in einem zentralen öffentlichen SVN-Repository vor. Der Quellcode kann ausgecheckt und das System mit einem Kommando vollständig reproduzierbar und zuverlässig gebaut werden: Individualisierte Installations-Datenträger, ebenso wie virtuelle Maschinen für Vagrant und ähnliche Umgebungen. Wir provisionieren inzwischen alle unsere neuen dedizierten Server vollautomatisch per PXE-Boot mit angepasstem Filesystem-Layout und der jeweils aktuellen FreeBSD-Version.

Die Dokumentation

Für alle Bestandteile und Programme des Betriebsystems gibt es Dokumentation in Form von man-pages. Man-pages die nicht lügen, also das beschriebene Programm tatsächlich abbilden. Dies führt dazu, dass man stets weiss wo man die gerade benötigten Informationen finden kann.

Ports

Die FreeBSD Ports-Collection enthält im Gegensatz zu den gängigen Paket-Repositories der Linux-Distributionen keine fertig übersetzten Binaries. Vielmehr besteht sie aus „Makefiles“, die den Prozess von der ursprünglichen Quell-Distribution, dem Auschecken oder Herunterladen, ggf. Patches bis zur Übersetzung und Installation vollständig beschreiben. So kann jeder Anwender reproduzierbar aus mehr als 25.000 Open-Source-Produkten selbst die benötigten Installationspakete generieren.

Poudriere

Im Sinne der Philosophie, eher Werkzeuge als Endprodukte zu liefern, enthält FreeBSD das Tool „Poudriere“, mit dem man sich selbst ein tagesaktuelles Paket-Repository aufsetzen kann. Die Möglichkeit, einzelne Pakete in der Konfiguration bereits zur Compile-Zeit anzupassen wird von uns intensiv genutzt. Als Endergebnis liegen alle von uns benötigten Pakete in binärer Form vor. FreeBSD vereint so die Vorteile beider Ansätze: Installation auf dem Server mit der von Tools wie apt bekannten Bequemlichkeit, verbunden mit zentralem und individualisiertem Bauen direkt aus dem Source. Continuous Delivery für Installationspakete!

ZFS

ZFS, ursprünglich entwickelt von Sun Microsystems, um den ständig wachsenden Speicheranforderungen moderner Server Rechnung zu tragen, ist nach der ursprünglichen Portierung auf FreeBSD inzwischen zum meistverwendeten Filesystem in geschäftskritischen Anwendungen gereift. Es zeichnet sich durch praktisch unlimitierte Skalierbarkeit bei guter Performance und vor allem unerreichte Datensicherheit aus. ZFS ist neben BTRFS das einzige Open-Source-Filesystem, das sämtliche Daten grundsätzlich mit Prüfsummen sichert, um auch bei den heute aktuellen Plattengrößen einzelne Fehler mit Sicherheit zu entdecken. Ein flexibles Volume-Management, Snapshots, Replikation und verschiedene Redundanzverfahren für jeden Einsatzzweck verstehen sich da beinahe von selbst.

Jails

Mit Jails, ursprünglich einer Erweiterung von chroot(2), gab uns FreeBSD bereits vor mehr als 15 Jahren eine sehr leichtgewichtige Virtualisierungslösung an die Hand, die inzwischen nicht nur Prozesse und Dateien sondern auch den vollständigen Netzwerk-Stack isoliert. Dies führt dazu, dass man im Zusammenhang mit Jails schon lange nicht mehr von Kinderkrankheiten der Technologie sprechen kann. In Kombination mit ZFS Snapshots und Clones bieten Jails eine äußerst schnelle Provisionierung neuer Instanzen. Jails sind leichtgewichtig, aber persistent und können von einem einzelnen Programm bis zu einer kompletten Betriebssystemumgebung alles enthalten, was für die Anwendung benötigt wird. Wir verwenden Jails mit einer vollständigen „Root“-Umgebung als Basis unseres neuen proServers. Natürlich haben auch wir Docker ausführlich ausprobiert, zeitweise lief sogar unsere Firmenwebseite in Containern, doch haben alle Beteiligten festgestellt, dass ein Jail für derartige Anwendungen der bessere Ansatz ist. Daher läuft unsere Webseite inzwischen natürlich in einem Jail.

Unser Fazit

Diese ausgereifte zuverlässige und skalierbare Technologie verwenden wir für das Hosting der Anwendungen unserer Kunden.

Autoren: Jörg Schweizer, Wolfgang Zenker, Patrick M. Hausen

Kommentare

Bisher wurden keine Kommentare eingereicht. 


Weitere Beiträge

19. August 2016

Anzeigen dynamischer Seiteninhalte im Zusammenspiel mit dem Zurück-Button

In Zeiten von dynamisch nachgeladenem Seiteninhalt kommt es häufiger vor, dass ein Zurückspringen auf … mehr

21. Juni 2016

Agile Coach Camp 17.-19. Juni 2016 in Rückersbach

Es waren einmal zwei ScrumMasterinnen bei punkt.de, die sich nach Fortbildung und Inspiration sehnten. … mehr