FreeBSD und KVM-Virtualisierung

© Andrey Bourdioukov, 123RF

Hochzeit

,
Die KVM-basierte FOSS-Cloud ist eine Alternative zu teuren kommerziellen zentralen Virtualisierungslösungen für Windows- und Linux-Gäste. Mit einigen kleineren Vorarbeiten lassen sich damit auch FreeBSD-Server virtualisieren. Dieser Workshop beschreibt genau, wie es geht.
Obwohl Linux als freie Software kostenlos verfügbar ist, setzen viele beim Unternehmenseinsatz auf Enterprise-Distributionen mit Support. Wo die Stärken der ... (mehr)

In der Ausgabe 5/2012 der FreeX wurde ausführlich das Konzept der FOSS-Cloud [1] als rein opensource-basierte Virtualisierungslösung beschrieben [2] . Selbst Windows-XP-Gäste lassen sich auf dem KVM-basierten Server installieren, wenn solche Desktops im Netz verteilt werden sollen [3] .

Die FOSS-Cloud sieht als Gäste eigentlich nur Windows und Linux-Distributionen vor, und Stellschrauben für die Anpassung gibt es dabei praktisch keine. Stattdessen wird erwartet, dass der Gast die Festplatte, das Netzwerk und den Speicher paravirtualisiert mit den zugehörigen Virtio-Treibern zugewiesen bekommt. Diese Virtio-Treiber gibt es auch für FreeBSD ab Version 8, weshalb es machbar erscheint, es ebenfalls mit KVM in der FOSS-Cloud zu virtualisieren.

Paravirtualisierung mit KVM

Die Beschreibungen hier beziehen sich zwar auf die FOSS-Cloud. Die Treiberproblematik und die Lösungen gelten aber immer, wenn FreeBSD in KVM-basierten Umgebungen installiert werden soll, bei denen die Standard-Festplatten- und -Netzwerkkartenemulationen nicht verfügbar sind.

Treiber verlangt

Die Installation eines Betriebssystems auf dem Datenträger ist nur möglich, wenn die notwendigen Festplattentreiber geladen sind. Das ist bei FreeBSD bei SCSI-, IDE- und SATA-Platten der Fall [4] , und damit ist die Installation des Betriebssystems bei allen Virtualisierungslösungen möglich, die diese Datenträger emulieren. KVM mit seinen paravirtualisierten Geräten besitzt jedoch die speziellen Virtio-Devices, die bei der Betriebssysteminstallation nur dann akzeptiert werden, wenn die richtigen Treiber geladen sind.

Der FreeBSD-Kernel ist wie der Linux-Kernel modular, das heißt, Hardware-Treiber können in Form von Kernelmodulen nachgeladen werden. Das Problem bei FreeBSD 8 und 9 ist aber, dass die Virtio-Treiber nicht zum Standard-Lieferumfang gehören, sondern in den Ports enthalten sind. Erst bei FreeBSD 10, der aktuellen CURRENT-Version, sind sie im Standard-Repertoire enthalten.

Selbst gemeistert

Um das Betriebssystem überhaupt installieren zu können, muss deshalb ein neuer Installations-Datenträger zusammengestellt werden. Dies ist prinzipiell sehr einfach, Voraussetzung ist, dass man genau die richtigen VirtIO-Treiber für den gewünschten Installations-Datenträger besitzt. Es ist nicht möglich, die Treiber beispielsweise unter FreeBSD 9-STABLE für den Installationskernel eines FreeBSD-9.0-RELEASE zu kompilieren, die Dateien werden beim Booten von der CD abgelehnt und nicht geladen.

Da die Installation von 8.x, 9.x und CURRENT in der FOSS-Cloud aber unterschiedliche Arbeitsvorbereitungen und -abläufe verlangen, sind hier alle drei Betriebssystemvarianten berücksichtigt.

Da ohnehin die Original-CD von FreeBSD oder deren ISO-Image benötigt wird, bietet es sich an, falls kein FreeBSD auf echter Hardware installiert ist, die Vorarbeiten in einer lokalen virtuellen Maschine auszuführen. Die 32- und die 64-Bit-Version von FreeBSD lassen sich problemlos mit VMware Workstation, Parallels Workstation und Oracle Virtualbox [5] virtualisieren.

Für eine saubere Installation sollte man am besten mit der Release-Version einer aktuellen Version von FreeBSD 8 oder 9 arbeiten. Der Kernel des installierten Betriebssystems darf gegenüber dem auf der CD/DVD nicht aktualisiert sein. Bei FreeBSD 8 ist die DVD für die FOSS-Cloud nötig, bei FreeBSD 9 reicht eine Installations-CD. Alle Arbeiten sind bei der 32- und der 64-Bit-Version identisch. Es ist außerdem nicht sinnvoll, ein älteres FreeBSD 9.0 zu verwenden, weil sich hier der Pfad der Treiber zwischenzeitlich geändert hat, was bei der Installation zu Irritationen führen könnte.

Die Ports können aktualisiert sein, es ist aber nicht unbedingt nötig. Möchte man sie auf den neuesten Stand bringen (zu empfehlen nur bei einem Release, das älter ist als ein halbes Jahr), geschieht das am einfachsten mit Root-Rechten auf der Kommandozeile mit dem Aufruf »portsnap fetch extract« . Dazu muss das System natürlich auf das Internet zugreifen können. Auch alle weiteren hier geschilderten Arbeiten setzten Administratorrechte voraus.

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023