Vir­tua­li­sie­rung ist im Fir­men­kon­text und beim pro­fes­sio­nel­len Betrieb von Servern längst nicht mehr weg­zu­den­ken. Auf einem phy­si­ka­li­schen Rechner können mehrere virtuelle Gast­sys­te­me betrieben werden. Einige we­sent­li­che Vorteile sind:

  • Systeme können ohne zu­sätz­li­che Hardware sauber nach Auf­ga­ben­be­reich getrennt werden, bei­spiels­wei­se in Mail­ser­ver, File­ser­ver und An­wen­dungs­ser­ver.
  • Ein Gast­sys­tem kann sozusagen auf Knopf­druck gesichert („ein­ge­fro­ren“) und wie­der­her­ge­stellt werden.
  • Die Migration auf neue Hardware ist in sehr kurzer Zeit möglich.
  • Die Gast­sys­te­me sind letztlich beliebig ska­lier­bar, wodurch flexibel auf Be­las­tungs­spit­zen reagiert werden kann.
  • Für alle Gast­sys­te­me wird eine ein­heit­li­che Hardware-Basis ge­schaf­fen. Trei­ber­kon­flik­te werden im Vorfeld aus­ge­schlos­sen.

Während das freie Be­triebs­sys­tem Linux im Desktop-Bereich und bei Pri­vat­an­wen­dern eher ein Exot ist, gilt es im Server-Bereich längst als etabliert. Eine dem­entspre­chend große Rolle spielt es als Basis für die Vir­tua­li­sie­rung.

Cloud-Migration mit IONOS
Die Hy­per­vi­sor-Al­ter­na­ti­ve
  • Bestes Preis-Leistungs-Ver­hält­nis – keine Vir­tua­li­sie­rungs­kos­ten
  • Mi­gra­ti­ons­hil­fe durch IONOS Cloud-Experten inklusive
  • Ohne Vendor Lock-in & Open-Source-basiert

Was ist KVM?

Die durch die Firma Qumranet im Jahr 2006 vor­ge­stell­te Kernel-based Virtual Machine (KVM) wurde bereits Anfang 2007 offiziell in den Linux-Kernel 2.6.20 über­nom­men. Im Folgejahr wurde Qumranet vom Linux-Dis­tri­bu­tor RedHat auf­ge­kauft. Für die Wei­ter­ent­wick­lung der Tech­no­lo­gie gründete RedHat mit IBM die Open Vir­tua­liza­ti­on Alliance (OVA). An dieser be­tei­lig­ten sich Un­ter­neh­men wie Suse, Intel und HP.

KVM ist eng mit der Emu­la­ti­ons­soft­ware QEMU verbunden. Diese stellt meistens Funk­tio­nen zur Vir­tua­li­sie­rung der Hardware zur Verfügung, während Linux-KVM die Zuteilung der Res­sour­cen vom Wirts­sys­tem verwaltet. Daher findet man häufig auch die Be­zeich­nung KVM/QEMU. Da KVM ein in­te­gra­ler Be­stand­teil von Linux ist, kann die Vir­tua­li­sie­rungs­lö­sung nicht auf Windows-Rechnern ein­ge­setzt werden. Windows wird aber neben den meisten unixoiden Be­triebs­sys­te­men wie Linux, Solaris und BSD als Gast­sys­tem un­ter­stützt. KVM ist stan­dard­mä­ßig in den meisten Linux-Dis­tri­bu­tio­nen enthalten, muss aber aktiviert werden.

Die Funk­ti­ons­wei­se von KVM-Linux im Detail

Um die Funk­ti­ons­wei­se der Kernel-based Virtual Machine zu verstehen, braucht es zunächst einen Exkurs in die Grund­la­gen der Vir­tua­li­sie­rung. Vir­tua­li­sie­rung bedeutet, dass auf einem Wirts­rech­ner (Host) ein oder mehrere voll­wer­ti­ge Be­triebs­sys­te­me (Gast­sys­te­me) aus­ge­führt werden können. Dabei wird die dem Gast­sys­tem zur Verfügung gestellte Hardware entweder soft­ware­sei­tig nach­ge­bil­det (emuliert) oder, durch einen Hy­per­vi­sor gesteuert, realen Hardware-Res­sour­cen zugeteilt. Beim Hy­per­vi­sor handelt es sich um eine Ver­wal­tungs- und Über­set­zungs­schicht zwischen realer und vir­tu­el­ler Hardware. Je nach Art der Vir­tua­li­sie­rung ist also ein Über­set­zen der An­for­de­run­gen an die reale Hardware notwendig oder es erfolgt nur die Zuteilung der ge­for­der­ten Aktionen, bei­spiels­wei­se eine Be­rech­nung im Prozessor.

Man un­ter­schei­det ver­schie­de­ne Arten der Vir­tua­li­sie­rung:

  • Voll­stän­di­ge Vir­tua­li­sie­rung: Die Hardware wird soft­ware­sei­tig komplett nach­ge­bil­det. Dadurch ist kein In­ter­agie­ren mit der realen Hardware nötig, was auch ent­spre­chen­de Treiber über­flüs­sig macht. Diese Variante ist ver­gleichs­wei­se langsam.
  • Pa­ra­vir­tua­li­sie­rung: Das Gast­sys­tem in­ter­agiert direkt mit dem Hy­per­vi­sor und benötigt speziell hierauf ab­ge­stimm­te Treiber.
  • Hard­ware­un­ter­stütz­te Pa­ra­vir­tua­li­sie­rung: Die Hardware-Un­ter­stüt­zung ist bereits im Prozessor in­te­griert. Dadurch wird die Effizienz ge­stei­gert und der An­pas­sungs­auf­wand für Gast­sys­te­me ver­rin­gert. Moderne Pro­zes­so­ren von Intel (Intel-VT-x) und AMD (AMD-V) besitzen diese Funk­tio­na­li­tät. U. U. muss diese im BIOS/UEFI aktiviert werden.

Zudem kann man zwischen zwei Typen von Hy­per­vi­so­ren un­ter­schei­den:

  • Typ 1 (Bare Metal): Der Hy­per­vi­sor läuft direkt auf der ein­ge­setz­ten Hardware, ohne dass er in ein Be­triebs­sys­tem ein­ge­bet­tet ist.
  • Typ 2 (Hosted): Der Hy­per­vi­sor ist in das Wirts­be­triebs­sys­tem ein­ge­bet­tet und wird aus diesem heraus aktiviert.

Linux-KVM ist ein Hy­per­vi­sor des Typs 2 und nutzt die hard­ware­un­ter­stütz­te Pa­ra­vir­tua­li­sie­rung. Besonders macht ihn al­ler­dings die direkte Ein­bin­dung in den Kernel.

Hinweis

„Kernel“ ist das englische Wort für „Kern“ – es handelt sich um den „Kern“ eines Be­triebs­sys­tems. In ihm sind die Grund­funk­tio­nen des Be­triebs­sys­tems in­te­griert, z. B. der Zugriff auf die Hardware und die Zuteilung von Re­chen­zeit an die Pro­zes­so­ren in einem Mul­ti­tas­king-System. Zugriffe auf den Kernel sind besonders geschützt (Kernel-Mode) und die an ihn ge­stell­ten An­for­de­run­gen werden durch Pro­zes­so­ren maximal pri­vi­le­giert behandelt.

Aufgrund der engen Anbindung an den Kernel wird dis­ku­tiert, ob das System nicht sogar Elemente eines Typ-1-Hy­per­vi­sors aufweist.

Aus welchen Be­stand­tei­len besteht die Kernel-based Virtual Machine?

Das Ge­samt­pa­ket KVM besteht aus mehreren Kom­po­nen­ten:

  • Kernel-Er­wei­te­rung: Enthält die ei­gent­li­che Er­wei­te­rung kernel.ko. Diese ist die Über­set­zungs­schicht von realer zu vir­tu­el­ler Hardware. Außerdem gehören die auf die Pro­zes­so­ren ab­ge­stimm­ten Module kvm-amd und kvm-intel dazu.
  • libvirt: Die Pro­gram­mier­schnitt­stel­le (API) zur Ansprache der vir­tu­el­len Maschinen. Damit können sie gesteuert und verwaltet werden. Libvirt bringt auch Werkzeuge wie eine Kom­man­do­zei­le mit der Be­zeich­nung virsh und die grafische Ober­flä­che Virtual-Machine-Manager mit.
  • QEMU: Hierbei handelt es sich um ein grund­sätz­lich ei­gen­stän­di­ges Programm zur Emulation von Rechnern und zur Ver­wal­tung vir­tu­el­ler Maschinen. Linux-KVM nutzt seine Funk­tio­na­li­tät zur Emulation von Hardware und ver­bes­sert die Ge­schwin­dig­keit durch die Pa­ra­vir­tua­li­sie­rung. In vielen Dis­tri­bu­tio­nen werden beide Be­stand­tei­le in einem In­stal­la­ti­ons­pa­ket angeboten.
  • Kvmtool: Eine schlan­ke­re Al­ter­na­ti­ve zu QEMU, die QEMU al­ler­dings noch nicht ver­drän­gen konnte.
  • VirtIO-Treiber: Spezielle Treiber für Gast­sys­te­me, die auf den Hy­per­vi­sor ab­ge­stimmt sind und die Pa­ra­vir­tua­li­sie­rung er­mög­li­chen.

An­wen­dungs­be­rei­che von KVM

Ins­be­son­de­re beim Betrieb von pro­fes­sio­nel­len Ser­ver­an­la­gen wird die Kernel-based Virtual Machine häufig verwendet. Das Bundesamt für Si­cher­heit in der In­for­ma­ti­ons­tech­nik (BSI) be­zeich­ne­te sie 2017 im Rahmen einer Si­cher­heits­stu­die als re­le­van­tes­te Vir­tua­li­sie­rungs­lö­sung im Open-Source-Bereich.

Zu­sätz­li­che Bedeutung bekommt die Linux-KVM durch die Ein­bin­dung als Hy­per­vi­sor in die beliebte Cloud-Software-Lösung OpenStack.

Vor- und Nachteile von KVM

Ab­schlie­ßend be­trach­ten wir kurz einige Vor- und Nachteile der Vir­tua­li­sie­rungs­lö­sung:

Vorteile:

  • Aus­ge­reif­tes, eta­blier­tes System
  • Bereits in den meisten Linux-Dis­tri­bu­tio­nen enthalten
  • Kos­ten­frei und quell­of­fen
  • Einzige echte „Kernel Virtual Machine“, dies sichert Per­for­manz und Sta­bi­li­tät
  • Ent­wick­lung durch re­nom­mier­te Firmen
  • Au­to­ma­ti­sier­te Ad­mi­nis­tra­ti­on durch libvirt möglich

Nachteile:

  • Nur für Linux-Systeme verfügbar
  • Leis­tungs­fä­hi­ge Hardware für den Host-Rechner notwendig
  • Ein­ar­bei­tungs­auf­wand in der Hand­ha­bung
  • Durch Zen­tra­li­sie­rung von Hardware steigen die Risiken bei einem Sys­tem­aus­fall („Single Point of Failure“ – kann mit einer klugen Backup-Strategie ver­rin­gert werden)

Al­ter­na­ti­ven zu Linux-KVM

Im Bereich frei zu­gäng­li­cher Software mit ähnlicher Funk­tio­na­li­tät ist vorrangig XEN als Al­ter­na­ti­ve zu nennen, eine Vir­tua­li­sie­rungs­lö­sung, die ebenfalls eng an Linux an­ge­bun­den, aber nicht im Kernel in­te­griert ist.

Der eta­blier­te kom­mer­zi­el­le Anbieter VMWare bietet mit seinen ESXi-Servern Al­ter­na­ti­ven zur Pa­ra­vir­tua­li­sie­rung und mit seiner Work­sta­tion zur Voll­vir­tua­li­sie­rung. Der VMWare-Player ist für den Pri­vat­ge­brauch kostenlos.

Vir­tu­al­box ist eine ebenfalls freie Al­ter­na­ti­ve zur Voll­vir­tua­li­sie­rung, die für alle gängigen Be­triebs­sys­te­me als Basis zur Verfügung steht.

Microsoft hat für Windows mit dem System Hyper-V eine Vir­tua­li­sie­rungs­lö­sung zur Pa­ra­vir­tua­li­sie­rung, deren Funk­ti­ons­wei­se mit Linux-KVM ver­gleich­bar ist. Sie verfügt über einen de­di­zier­ten Windows-Hyper-V-Server und eine ein­ge­bet­te­te Funk­tio­na­li­tät in den Server-Be­triebs­sys­te­men. Auch in den Versionen Windows 10 Pro­fes­sio­nal und En­ter­pri­se ist Hyper-V enthalten.

Cloud Backup powered by Acronis
Mi­ni­mie­ren Sie Aus­fall­zei­ten mit unserem Kom­plett­schutz
  • Au­to­ma­tisch: Backups und Recovery
  • Intuitiv: Planung und Ma­nage­ment
  • In­tel­li­gent: KI-basierter Be­dro­hungs­schutz
  • Inkl. 300,- € Start­gut­ha­ben im 1. Monat

Fazit

Fle­xi­bi­li­tät und Ska­lier­bar­keit sind zwei nahezu un­schlag­ba­re Argumente für die Nutzung von Vir­tua­li­sie­rung. Gast­be­triebs­sys­te­me können schlank gehalten und für bestimmte An­wen­dungs­zwe­cke verwendet werden. Sichert man die Systeme re­gel­mä­ßig auf räumlich ge­trenn­ten Spei­cher­me­di­en, ist das Aus­fall­ri­si­ko zu ver­nach­läs­si­gen.

Wer Linux für seinen Server nutzt, kommt praktisch nicht mehr daran vorbei, KVM zumindest in Erwägung zu ziehen. Die Aufnahme in den Kernel und die Ent­wick­lung durch eta­blier­te Her­stel­ler sind gute Gründe, sich dafür zu ent­schei­den.

Zum Hauptmenü