GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So richten Sie schnell einen KVM-Server ein

Dies ist eine sehr kurze, schnelle Einrichtung, wie Sie den KVM-Server (The Linux Kernel Virtual Machine Hypervisor) zum Laufen bringen.

Warum KVM?

KVM ist ein Hypervisor, genau wie VmWare ESX, Microsofts Hyper-V und XEN. Das Tolle (wie immer) an KVM ist, dass es Teil von Linux ist, was bedeutet, dass es kostenlos ist und seine Leistung ausgezeichnet ist. Die Verwendung in einer Produktionsumgebung als eigenständiger Hypervisor ist eine ausgezeichnete Wahl, hat einen geringen Hostserver-Fußabdruck (in Bezug auf Leistungsanforderungen und Festplatten) und kann einfach mit anderen Tools wie virt-manager verwaltet werden.

Annahmen

Dieses kurze Tutorial geht davon aus, dass:
  • Sie möchten einen KVM-Server mit mindestens einer Gast-VM ausführen,
  • Ihr KVM-Server erhält eine IP-Adresse in Ihrem Netzwerk,
  • Ihre virtuelle(n) Maschine(n) erhält(n) eine IP-Adresse von Ihrem Netzwerk – Sie können also Bridging anstelle von Natting verwenden (die Verwendung von NATting anstelle von Bridging ist eine einfache Aufgabe, aber nicht Teil dieser Anleitung),
  • Sie können lvm für die Zuweisung von Speicherplatz auf Ihrem KVM-Master verwenden (die Verwendung anderer Methoden zur Zuweisung von Speicherplatz wie Image-Dateien ist ebenfalls einfach, aber nicht Teil dieses Howtos) – beachten Sie, dass Sie dies installieren müssen, bevor Sie das durchgehen unten, falls es noch nicht auf Ihrem Server installiert ist.
  • Sie verwenden Ubuntu 10.04 oder neuer. Es sollte ein aktueller Ubuntu-Server mit Netzwerkverbindung und Zugriff über ssh sein.

Danksagungen

Dies ist ein kurzer Leitfaden, der überarbeitet werden muss und bald fertig sein wird, aber in seinem jetzigen Zustand hauptsächlich von www.screenage.de übernommen wurde, also großes Lob an den ursprünglichen Autor, ccm. Aus Gründen der Lesbarkeit wurden geringfügige Änderungen vorgenommen.

Das Netzwerk zum Laufen bringen

Für das Bridged-Netzwerk müssen Sie die Bridge-Dienstprogramme installieren und Ihre Netzwerkkonfiguration ändern. Installieren Sie zuerst das Paket:
$ sudo apt-get install bridge-utils
Fügen Sie nun eine Bridge namens „br0“ hinzu (dies muss nur einmal gemacht werden):
$ sudo brctl addbr br0
Ändern Sie nun Ihre /etc/network/interfaces so, dass sie die Brücke br0 verwendet. Dieser Schritt richtet tatsächlich br0 anstelle von eth0 ein. Stellen Sie sich eth0 einfach als einen physischen Transport vor, der der virtuellen Bridge-Schnittstelle hinzugefügt wird.
# The loopback network interface
auto lo
iface lo inet loopback
 
auto eth0
iface eth0 inet manual
 
auto br0
iface br0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off

Bitte stellen Sie sicher, dass Sie nicht vergessen, Ihr „eth0“ wie oben gezeigt auf „iface eth0 inet manual“ zu setzen. Dies ist erforderlich, da Sie verhindern möchten, dass eth0 eine Adresse über DHCP abruft, aber dennoch für Ihre Bridge vorhanden sein soll, da es sich um die physikalische Schicht handelt. Nachdem Sie die Bridge eingerichtet haben, starten Sie entweder Ihr Netzwerk neu (sudo /etc/init.d/networking restart ) oder starten Sie Ihren Server neu. Wenn Sie bereits per ssh auf Ihren Server zugreifen, seien Sie gewarnt, dass eine Fehlkonfiguration Sie aussperren könnte.

KVM installieren

Jetzt ist es an der Zeit, kvm und einige nützliche Hilfsanwendungen zu installieren:
$ sudo apt-get install qemu-kvm ubuntu-vm-builder uml-utilities \
  virtinst

Das ist alles:Sie haben jetzt bereits einen kvm-Server. Zeit bis…

Installieren Sie Ihre erste virtuelle Maschine

Wir werden ein logisches 100-GB-Volume für den Gast einrichten, Ubuntu herunterladen und eine Maschine mit 2 GB RAM und 4 Kernen erstellen:

# create an empty 100Gb logical volume
sudo lvcreate --size 100G vg0 --name guest1
# download Ubuntu iso (or use one you already have)
$ wget http://..../
# create machine
$ sudo virt-install --connect qemu:///system -n guest1 -r 2048 \
 --vcpus=4 -f /dev/mapper/guest1 --network=bridge:br0 \
 --vnc --accelerate -v -c ./SOMEUBUNTUISO.iso \
 --os-type=linux --os-variant=ubuntuKarmic --noautoconsole
# please note: "ubuntuKarmic" is currently the most recent
# virt-install defaults scheme - just use this if in doubt.

Stellen Sie eine VNC-Verbindung her

KVM verwendet VNC, um Ihnen eine grafische Benutzeroberfläche für Ihren Computer bereitzustellen. Das Gute daran ist, dass Sie damit problemlos grafische Installer (und ja, sogar Windows) verwenden können. Da sogar Ubuntu-Server am Anfang in einem grafischen Modus booten, ist es großartig, hier VNC zu verwenden.

Ich nehme an, Sie arbeiten auf einem Remote-Server. KVM gibt jedem Gast, den er startet, eine neue vnc-Instanz mit einem neuen, inkrementierten Port. Es beginnt mit 5900. Tunneln wir also über ssh:

ssh user@remotekvmhost -L 5900:localhost:5900

Sie verbinden sich über ssh mit Ihrem entfernten kvm-Host und öffnen einen ssh-Tunnel für Port 5900. Starten Sie nun Ihren bevorzugten VNC-Client lokal und lassen Sie ihn sich entweder mit „0“ oder Port 5900 verbinden, was in VNC dasselbe bedeutet (duh…).

Von nun an sollten Sie Ihren Server auf einem VNC-Display sehen. Installieren Sie es wie jeden anderen Server. Das Netzwerk wird überbrückt, sodass Sie sogar DHCP verwenden können, wenn dies in Ihrem Netzwerk angeboten wird.

Bitte stellen Sie sicher, dass Sie das Paket „acpi“ in Ihrem kvm-Gast installieren, sonst können Sie den Gast nicht vom Master aus stoppen (wie es über acpi gemacht wird):

# make sure, "acpi" is installed in the *guest* machine
sudo apt-get install acpi

Nach der Installation können Sie Ihre kvm-gues mit den folgenden Befehlen verwalten:

# list running instances
$ virsh list
# start an instance
$ virsh start INSTANCENAME
# stop an instance politely
$ virsh stop INSTANCE
# immediatly destroy a running instance
$ virsh destroy INSTANCE
# edit the config file for an instance
$ virsh edit INSTANCE

Einhängen der LVM-Volumes

Wie Sie vielleicht bemerkt haben, können die lvm-Volumes Ihres virtuellen Gastes nicht direkt im Master gemountet werden, da sie ihre eigene Partitionstabelle enthalten. Wenn Sie jedoch vom Master aus Zugriff auf das Dateisystem des Gasts benötigen, müssen Sie einige Geräteknoten erstellen. Es gibt ein großartiges Tool namens „kpartx“, das Geräteknoten für Sie erstellen und löschen kann. So einfach geht's:

# install kpartx
$ sudo install kpartx
# make sure, virtual gues is switched off!
# create device nodes
$ sudo kpartx -a /dev/mapper/guest1
# check /dev/mapper for new device nodes and mount/unmount them
# after you are done, delete the nodes
$ sudo kpartx -d /dev/mapper/guest1

Bitte beachten Sie, dass diese Methode auch mit anderen Blockgeräten wie Image-Dateien mit Partitionstabellen funktioniert. Sie könnten nur dann in Schwierigkeiten geraten, wenn Ihr lvm-Volume ein eigenes lvm enthält. Wenn das der Fall ist, spielen Sie mit pvscan, vgscan und lvscan herum, nachdem Sie kpartx verwendet haben. Seien Sie mutig, aber seien Sie gewarnt, dass das Sichern von Daten immer eine gute Idee ist.

Alternative Verwaltungsschnittstellen

Falls Sie wirklich eine GUI für Ihre Verwaltungsanforderungen benötigen, überprüfen Sie „virt-manager“. Sie können dies auf Ihrem Desktop installieren und laufende Instanzen fernverwalten:

$ sudo install virt-manager

Sie sollten jedoch die Seite „Virtual Machine Manager“ von RedHat überprüfen. Es könnte eine gute Idee sein, eine neuere Version manuell zu kompilieren und zu installieren und sich auf die Setup-Howtos zu verlassen. Persönlich bevorzuge ich hier die einfache Textkonsole, da es hilft, bei Problemen recht schnell und von überall aus reagieren zu können, und Sie natürlich nicht den Overhead haben, X11 auf dem Server auszuführen.

Schlussfolgerung

Heutzutage ist es ziemlich einfach, einen KVM-Server einzurichten. Da KVM/libvirt-fähige Gäste ziemlich schnell sind, ist dies eine nette und einfache Möglichkeit, sogar virtuelle Maschinen zu hosten. Ich betreibe seit zwei Jahren etwa ein Dutzend virtuelle Maschinen und drei Hardwareserver ohne ernsthafte Probleme.


Linux
  1. So richten Sie einen SVN-Server unter CentOS ein

  2. So richten Sie den Rsyslog-Server unter Debian 11 ein

  3. So richten Sie passwortloses SSH unter Linux ein

  4. Wie richte ich einen NTP-Server in CentOS ein?

  5. Wie starte ich den Tomcat-Server unter Linux?

Gewusst wie:Ersteinrichtung des Ubuntu 15.04-Servers

Gewusst wie:Ersteinrichtung des Fedora 21-Servers

Gewusst wie:Ersteinrichtung des Debian 8.2-Servers

So richten Sie HAProxy unter CentOS 8 ein

So richten Sie den Nginx-Cache auf dem LEMP-Server ein

Wie ändere ich die Zeitzone auf Ubuntu 18.04 Server?