Qemu und KVM sind die Zukunft der Open Source Visualisierung

Open-Source-Virtualisierung hat sich dramatisch entwickelnden Laufe der letzten Jahre. Incumbent proprietären Plattformen wie VMWare noch halten den Thron in vielen Bereichen, aber Open-Source-Konkurrenten sind auf dem Vormarsch schnell auf dem Weg zur Allgegenwart. Die Dinge sind a-Wechsel in das Land der Virtualisierung.

Im Moment haben wir drei Anwärter auf die (open source) Thron kämpfen um die Vorherrschaft:

  • Xen: von Citrix unterstützt
  • VirtualBox: von Oracle / Sun unterstützten
  • KVM: unterstützt von RedHat

Weder Citrix noch Oracle habe noch einen guten Track Record in Bezug auf Open Source zu etablieren und so nahm ich kürzlich an der Zeit, etwas tiefer in die KVM und Qemu sind zwei Projekte, die ich vermute, werde ein großer Teil der Zukunft von Open werden Source-Virtualisierung.

  1. KVM: in ihrem Wesen KVM ist nur ein Kernel-Infrastruktur. Es ist nicht ein Produkt. Die Entwickler gegabelten qemu in die KVM-Kernel-Infrastruktur Haken und nutzen Sie es. Schließlich wird die Gabel wurde wieder in die qemu Mainstream verschmolzen.
  2. qemu: Kräfte nahezu allen Linux-Virtualisierungstechnologien hinter die Kulissen.

    Qemu ist ein spektakuläres Stück Software weitgehend von Fabrice Bellard, eine Programmiersprache Genie, schrieb auch TCC (kleine c-Compiler), FFmpeg und viele andere weniger bekannte Programme geschrieben.

Highlights aus meinen Erkenntnissen:

  • Ich bin mir ziemlich sicher EC2 Instanzen KVM ist die Zukunft der Open-Source-Virtualisierung. Nicht Xen oder VirtualBox.

    KVM ist ein Nachzügler der Virtualisierung Spiel, aber seine technischen Ansatz überlegen ist und viele glauben, es wird siegen schließlich gegenüber anderen Virtualisierungs-Technologien und werden das transparente Virtualisierung Standard der Zukunft. Ich persönlich denke, das ist ein ziemlich wahrscheinliches Ergebnis an dieser Stelle.

    Die primären Vorteile gehen für KVM ist die Einfachheit und Hebelwirkung. Durch die Nutzung der Hardware-Level-Support in neuen Prozessoren können KVM um ein Vielfaches einfacher als konkurrierende Technologien wie Xen oder VMware gleichzeitiger Verwirklichung gleichwertig oder überlegen Leistung.

    KVM nutzt den Linux-Kernel in einer Weise, dass seine Entwickler ihre Ressourcen effizienter Fokussierung auf aktuelle Virtualisierung verbundenen Entwicklung ermöglicht. Der Beweis ist in den Pudding. Mit nur einem Bruchteil der Ressourcen ihren Konkurrenten haben, die KVM-Team erweiterte Funktionen wie Live-Migration und Drupal Stapelverarbeitung SMP-Unterstützung (zB bis zu 255 virtuelle CPUs, egal wie viele CPUs der Host) ausgeführt. Auch rekursive Virtualisierung möglich sein sollte (ich weiß, Patches geschrieben wurden, um es an die Arbeit).

  • libvirt: Redhat stehen an der Spitze der Entwicklung von Backend-agnostische Management-Ebene für die Virtualisierung (libvirt).

    Der grundsätzliche Aufbau ist ziemlich gut, aber für unsere Zwecke (Ie, schlüsselfertige Entwicklung) libvirt und seine übergeordneten Freunde gerade in die Quere kommen. Die wirklich nützliche Teile sind die qemu-basierte Primitiven, die einfacher zu bedienen als direkt durch die libvirt Sachen sind.

  • qemu unterstützt mehrere Mechanismen zum Einstecken Gast NICs zusammen – über eine TCP / UDP-Port, eine Verbindung zu einem tap / tun Device oder sogar Einstecken in VDE (Virtual verteilten Ethernet), die beliebig komplexe virtuelle Netzwerk-Topologien aufgebaut werden kann, dass mehrere physische Maschinen . Ich bin schon mit ein paar Test-Konfigurationen gespielt und es ist ziemlich ordentlich.

Qemu vs VirtualBox

Obwohl es schwer zu sagen, war VirtualBox von einer früheren Version von qemu gegabelt. Die Hauptsache VirtualBox hinzugefügt wurde ausgefeilte binären Neuübersetzung, die eine schnelle Virtualisierung ohne Unterstützung von der zugrunde liegenden Hardware erlaubt. Heute sind die meisten modernen PC-Prozessoren von Intel und AMD haben Hardware-Unterstützung für Virtualisierung, das binäre Neukompilierung Techniken überflüssig macht. Dies ermöglicht Hypervisoren wie KVM, die gleichen Ergebnisse mit einer einfacheren Hardware-fähigen Ansatz mit überlegener Leistung zu erzielen.

VirtualBox fügte auch einen benutzerfreundlichen GUI-Shell, die die Einrichtung vereinfacht virtuellen Maschinen in einer Desktop-Umgebung.

Im Allgemeinen war ich positiv von qemu überrascht. Wenn VirtualBox ist der Notizblock von Open-Source-Virtualisierung. Qemu ist Vim. Mit anderen Worten, wenn Sie für ein Schweizer Armee-Messer-Virtualisierung erhalten Sie hacken kann suchen, Schläge qemu VirtualBox um ein Vielfaches.

Zufällige Erkenntnisse:

  • Qemu hat Äquivalent-bessere Leistung mit KVM
  • Wenn Ihre Hardware nicht unterstützen kann KVM, dann die Leistung nicht so gut sein wie VirtualBox, aber wenn Sie die KQEMU Kernel Beschleunigung Modul verwenden, wird es akzeptiert werden (zB auf meinem System 30 Sekunden settings.py lang mit KQEMU zu Lampe vs 20 Sekunden booten in KVM-Knoten)
  • Qemu ist eine bessere primitiver als VirtualBox:
    • Gute Standardwerte sind so gewählt, wenn Sie nicht anders angegeben
    • Es ist einfacher, VMs von der CLI zu starten:
                  qemu-cdrom appliance.iso
                  # Install appliance.iso zu test.img
                  qemu-img create / virtdisks / test.img
                  4G qemu-cdrom appliance.iso-hda / virtdisks / test.img
      
    • Unterstützt startet VMs als freistehende Daemon-Prozessen
    • Unterstützt VNC Grafik-Modus mit optionaler Verschlüsselung und Authentifizierung
    • Einfachere script
    • Unterstützt eine skriptfähige VM Monitor
    • Kann ohne Root-Rechte arbeiten, es sei denn, Sie tippen / tun Schnittstellen verwenden möchten
  • Auch wäre es nicht zu kompliziert sein, um einen Wrapper, dass die Nutzer sicher auszuführen qemu + tap / tun, ohne Root-Rechte können zu schreiben.
  • Einfache Standard-usermode Netzwerk verwenden
    • integrierte NAT, DHCP, TFTP
    • Host kann von guest am 10.0.2.2 zugegriffen werden
    • unterstützt die Weiterleitung Host-Ports zu Gast (-redir Option)
  • Qemu kann 64bit Gäste auf einem 32bit-Host mit Prozessor-Emulation zu starten. Ich versuchte dies und es funktioniert, Backups anlegen obwohl es ziemlich langsam ist:
          qemu-system-x86_64-cdrom ./lenny-amd64-standard.iso
    
  • Qemu kann so konfiguriert werden transparent Chroot in non-native chroots ermöglichen, ohne die Einleitung einer VM (zB chroot in eine 64-Bit-debootstrap aus einer 32-Bit-System)

    Es ist ein bisschen tricky, um es arbeiten aber als Standard-Ubuntu-Paket beinhaltet noch nicht den Debian-Patches, dass dies sehr netter Trick zu ermöglichen.

  • Für die Nutzung Szenarien, in denen cli Nutzung nicht optimal ist, können Sie eine von mehreren GUI-Frontends für qemu geschrieben. Ich mochte qemuctl und qemu-launcher (für unterschiedliche Zwecke).