Virtualisierung mit XCP-ng

Section author: @cweikl, @MachtDochNix (pics)

XCP-ng ist eine reine OpenSource-Virtualisierungslösung, die auf Basis von XEN arbeitet. XCP-ng bietet sog. Enterprise-Features wie Replikation, automatisierte Backups, Verschieben von VMs im laufenden Betrieb und weitere Funktionen. Daher eignet sie sich besonders für den virtuellen Betrieb von linuxmuster.net, da diese recht einfach skalierbar ist, mehrere Virtualisierungs-Hosts und Speichereinheiten in einem sog. Resource-Pool zusammengeführt und verwaltet werden können.

Der Betrieb wird auf jeglicher Markenhardware und auf einer Vielzahl an NoName-Hardware unterstützt.

Diese Dokumentation ist eine “Schritt für Schritt” Anleitung für die Installation der linuxmuster.net-Musterlösung in der Version 7 auf Basis von XCP-ng.

Übersicht

In nachstehender Abbildung wird der schematische Netzaufbau der anstehenden v7-Installation unter XCP-ng dargestellt.

Netzwerkübersicht

Für die Installation mit XCP-ng und linuxmuster v7 wird der IP-Bereich 10.0.0.0/16 genutzt. Es gilt nachstehende Zuordnung der IPs zu den VMs bzw. genutzten Hosts.

VM

IP

OPNsense®

10.0.0.254/16

Server

10.0.0.1/16

OPSI

10.0.0.2/16

Dockerhost

10.0.0.3/16

XOA

10.0.0.4/16

Admin-PC

10.0.0.10/16

XCP-ng Host

10.0.0.200/16

Lies zuerst die Abschnitte Was ist neu in 7.0? und Vorüberlegungen, bevor du dieses Kapitel durcharbeitest.

Nach der Installation gemäß dieser Anleitung erhältst du eine einsatzbereite Umgebung bestehend aus

  • einem Host (XCP-ng Hypervisor) für alle virtuellen Maschinen,

  • einer Firewall (OPNsense®)

  • einem Server (linuxmuster.net)

  • einer VM (XOA) zur web-basierten Verwaltung des Virtualisierungs-Hosts

Die Einbindung der VMs für den OPSI-Server und den Docker-Host werden hier nicht weiter beschrieben. Diese sind analog zum Import und Anpassung der Server-VM durchzuführen.

Voraussetzungen

  • Es wird vorausgesetzt, dass du einen Administrationsrechner (Admin-PC genannt) besitzt, den du je nach Bedarf in die entsprechenden Netzwerke einstecken kannst und dessen Netzwerkkonfiguration entsprechend vornehmen kannst.

  • Der Internetzugang des Admin-PCs und auch des XCP-ng-Hosts sollte zunächst gewährleistet sein, d.h. dass beide zunächst z.B. an einem Router angeschlossen werden, über den die beiden per DHCP oder fester IP ins Internet können. Sobald später die Firewall korrekt eingerichtet ist, bekommt der Admin-PC und der XCP-ng-Host eine IP-Adresse im Schulnetz.

Hint

Virtualisierungs-Hosts sollten grundsätzlich niemals im gleichen Netz wie andere Geräte sein, damit dieser nicht von diesen angegriffen werden kann. In dieser Dokumentation wird zur Vereinfachung der Fall dokumentiert, dass der XCP-ng-Host sich im internen Schulnetz befindet.

Bereitstellen des XCP-ng-Hosts

Hint

Der XCP-ng-Host bildet das Grundgerüst für die Firewall OPNsense® und den Schulserver server. Die Virtualisierungsfunktionen der CPU sollten zuvor im BIOS aktiviert worden sein.

Die folgende Anleitung beschreibt die einfachste Installation. Komplexere Einsatzszenarien, die VLANs, Teaming oder RAID berücksichtigen, werden in zusätzlichen Anleitungen betrachtet.

Download der Appliances und der Virtualisierungssoftware XCP-ng

Die Download-Links zur Installation der XCP-ng Virtualisierungssoftware finden Sie nachstehend:

Programm

Beschreibung

XCP-ng

Installationsdatenträger

XCP-ng Center

Windows-Programm zur Verwaltung der Virtualisierungsumgebung

Download-Link:

XCP-ngCenter für XCP-ng ab v8.2 LTS

XVA VMs

VM der lmn v7 für XCP-ng im XVA-Format zum direkten Import

Download-Link:

Download der XVAs-v7

Beschreibung VMs

Beschreibung der VMs für v7

Hint

Die XVAs für die v7 wurden mit XCP-ng v8.2 LTS erstellt. Zudem wurden die xcp-ng Tools für die v8.2 pro VM installiert. Ein Import für eine XCP-ng 7.6 Version scheitert und bricht mit einem Fehler ab. Daher bitte sicherstellen, dass eine aktuelle XCP-ng v8.2 genutzt wird.

Erstellen eines USB-Sticks zur Installation des XCP-ng-Host

Herunterladen von XCP-ng

Diese Anleitung bezieht sich auf die Version 8.2 von XCP-ng. Für nachfolgende Versionen ist dieses Vorgehen entsprechend anzuwenden.

Die ISO-Datei muss heruntergeladen und ein bootfähiger USB-Stick erstellt werden.

Herunterladen: XCP-Webseite

Erstellen des Boot-Sticks

USB-Stick erstellen: In das Download-Verzeichnis wechseln, Buchstaben für USB-Stick unter Linux ermitteln, X durch den korrekten Buchstaben ersetzen und dann nachstehenden Befehl eingeben:

dd if=XCP-ng_8.2.0.iso of=/dev/sdX bs=8M status=progress oflag=direct

Installation XCP-ng

Vom USB-Stick booten, danach erscheint folgender Bildschirm:

Schritt 1 der Installation des XCP-ng Servers

Starten der Installtion mit ENTER.

Wählen Sie Ihr Tastaturlayout.

Schritt 2 der Installation des XCP-ng Servers

Wir verwenden [qwerz] de.

Sollten Sie zusätzliche Treiber benötigen können Sie diese nun laden in dem Sie F9 drücken. Starten Sie das XCP-ng Setup mit Ok.

Schritt 3 der Installation des XCP-ng Servers

Akzeptieren Sie danach die Lizenzbedingungen mit Accept EULA.

Schritt 4 der Installation des XCP-ng Servers

XCP-ng prüft, ob bereits eine vorherige Version entwedern von XenServer oder ggf. auch von XCP-ng installiert war. Falls ja, bietet die Installationsroutine an, die bestehende Installation zu aktualisieren oder eine Neuinstallation vorzunehmen. Wählen Sie das gewünschte Vorgehen aus. Bei einer Aktualisierung legt XCP-ng zuvor eine Sicherheitskopie der bereits bestehenden Installation an, um ggf. wieder auf diese Version zurückkehren zu können.

Schritt 5 der Installation des XCP-ng Servers

Wählen Sie danach den Datenträger aus, der verwendet werden soll und setzen Sie den Haken bei Enable thin provisioning. Bestätigen Sie mit Ok.

Schritt 6 der Installation des XCP-ng Servers

Bei einer Neuinstallation werden für das gewählte Medium dann die Partitionen erstellt, das Dateisystem erzeugt und alle Daten auf dem Medium gelöscht. Bei einem Upgrade bleiben die Daten erhalten.

Danach werden Sie nach der Installationsquelle gefragt.

Schritt 7 der Installation des XCP-ng Servers

Geben Sie hier Local Media an.

Danach werden Sie gefragt, ob das Installationsmedium überprüft werden soll.

Schritt 8 der Installation des XCP-ng Servers

Bestätigen Sie dies mit Verfy installation source.

Nach Abschluss der erfolgreichen Überprüfung des Installationsmediums wird dies bestätigt.

Schritt 9 der Installation des XCP-ng Servers

Legen Sie danach das Kennwort für den Administrator (user: root) fest und bestätigen Sie dieses.

Schritt 10 der Installation des XCP-ng Servers

Solltest du kein Upgrade einer bestehenden Installation durchführen, so must du noch die Netzwerkeinstellungen festlegen.

Schritt 11 der Installation des XCP-ng Servers

Vergebe hier eine statische IP-Adresse aus dem internen Netz (z.B. 10.0.0.200/16). Lege die DNS-Server und Gateway-IP (beides 10.0.0.254) fest.

Schritt 12 der Installation des XCP-ng Servers

Lege danach die Systemzeit fest (manuelle Auswahl oder via NTP-Server (10.0.0.254).

Schritt 13 der Installation des XCP-ng Servers

Bei manueller Angabe der Systemzeit, wähle die Zeitzone aus.

Erst die Region wählen.

Schritt 14 der Installation des XCP-ng Servers

Danach die Stadt auswählen.

Schritt 15 der Installation des XCP-ng Servers

Bestätige danach die Frage nach der Installation von XCP-ng.

Schritt 16 der Installation des XCP-ng Servers

Danach startet die Installation

Schritt 17 der Installation des XCP-ng Servers

Die Frage nach Installation eines Supplemental Pack ist mit No zu beantworten.

Schritt 18 der Installation des XCP-ng Servers

Nach erfolgreicher Installation kannSt du mit Ok den Server neu starten. Achte darauf, dass der USB-Stick nicht mehr für den Bootvorgang aktiv ist.

Schritt 19 der Installation des XCP-ng Servers

Beim Startvorgang erscheint folgende Auswahl:

Schritt 20 der Installation des XCP-ng Servers

XCP-ng wird nach einigen Sekunden automatisch gestartet.

Schritt 21 der Installation des XCP-ng Servers

Nach erfolgreichem Start bootet XCP-ng in folgende Konsole des Hypervisors, in der dann der Hinweis auf die installierte Version 8.1 erscheinen sollte (im Bild noch 7.6):

Schritt 22 der Installation des XCP-ng Servers

XCP-ng: Administration

Für die Administration Deines XCP-ng-Hosts stehen Dir zwei Möglichkeiten zur Verfügung. Zunächst solltest du Dir auf einem Windows-Rechner im Netzwerk das Programm XCP-ng Center installieren. Hiermit kannst du die gesamte Virtualisierungsumgebung administrieren und insbesondere die vorkonfigurierten VMs einfach importieren.

Zudem kann der XCP-ng-Host ebenfalls web-basiert administriert werden. Dies erfolgt mithilfe der Anwendung XenOrchestra (XOA - Xen Orchestra Application). linuxmuster.net stellt hierfür ebenfalls eine vorkonfigurierte VM mit einer installierten XOA App zur Verfügung. XOA wurde hier “from scratch” installiert und an die lmn7 angepasst. Die Nutzung von XOA ist der von XCP-ng empfohle Weg der Administration und bietet im Produktivbetrieb viele Vorteile wie z.B. die Eirichtung und Automatisierung von Backups / Snapshots.

XCP-ng Center unter Windows installieren

Installiere das Programm (siehe Downloads-Links) durch einen Rechtsklick auf die MSI-Datei auf dem Windows-Rechner und wähle dann Als Administrator ausführen aus.

Installation XCP-ng Center

Bestätige die Rückfrage mit Ja

2. Teil: Installation XCP-ng Center

Rufe nach erfolgreicher Installation das Programm XCP-ng Center auf.

Wähle hier den Menüpunkt Add New Server und gebe Sie bei der Installation vergebene IP-Adresse des XCP-Hosts sowie die Benutzerdaten an.

3. Teil: Hinzufügen des XCP-ng-Hosts

Netzwerk einrichten

Jetzt muss das Netzwerk eingerichtet werden. Notiere dir hierzu die Bezeichnungen und MAC-Adressen der eingebauten Netzwerkkarten. Diese findest du unter der Reiterkarte NICs. Die Netzwerkkarte, die die Verbindung zum Internet übernehmen soll, wird später dem Netzwerk Red, diejenige für das interne Schulungsnetz dem Netzwerk Green und die dritte Netzwerkkarte für die Steuerung des WLAN dem Netzwerk Blue zugeordnet - sofern diese überhaupt vorhanden ist.

Damit dies korrekt erfolgt, ist es wichtig zu wissen, wie NIC 0,1,2 physikalisch angeschlossen sind und welche MAC-Adressen diese aufweisen. Anhand der Informationen erfolgt dann im folgenden Schritt die Zuordnung der Netze (vSwitche).

Wähle nun für den XCP-ng-Host die Reiterkarte Networking aus.

4. Teil: Netzwerke einrichten

Wähle das erste Netwerk Network 0 aus, prüfe die Zuordnung der Netzwerkkarte (MAC-Adresse und physikalische Verkabelung beachten). Es sollte diejenige NIC diesem vSwitch zugewiesen sein, die die Verbindung in das interne Netz steuert. In der Abb. ist dies NIC0, die dem Network0 zugeordnet ist. Der Name des vSwitches Network0 wird nun geändert. Klicke dazu auf Properties und ändere den Namen für das Netzwerk in Green.

Führe diese Schritte ebenfalls für die weiteren Netze (BLUE - WLAN Netz und RED - externes Netz) aus und ändere die Namen auf BLUE und RED. In der Abb. ist NIC1 dem vSwitch Network1 zugeordnet und so verkabelt, dass hiermit das WLAN angesteuert wird, so dass dieses nun mit dem Namen Blue anzugeben ist. Network2 wird in diesem Beispiel dann zu Red.

VMs importieren

Nachdem das Netzwerk korrekt eingerichtet wurde, können nun die VMs der linuxmuster.net importiert werden.

Lade dir vorher zunächst alle VMs, die du importieren möchtest unter linuxmuster.net auf deinen Client herunter (siehe obigen Download-Link: XVAs-v7 ). Die heruntergeladenen VMs sind als ZIP-Archiv komprimiert und können nach dem Download mit dem SHA256 HASH-Wert geprüft werden. Entpacke die ZIP-Dateien, so dass du alle VMs als XVA-Dateien vorliegen hast.

Danach rufe im XCP-ng Center den Menüpunkt File -> Import auf.

Import aufrufen

Es erscheint ein neues Fenster. Gebe hier den Speicherort und den Dateinamen der zu importierenden VM an. Die VMs weisen die Dateiendung .xva auf.

Import: Datei mit Speicherort angeben

Nach Bestätigung mit Ok erscheint nun das erste Fenster, um den Import zu steuern. Zunächst must du den XCP-ng-Host festlegen, für den der Import der VM erfolgen soll.

Import: Heimserver angeben

Wähle danach deinen gewünschten Speicher aus. Bestätige mit Next.

Import: Speicher auswählen

Prüfe die Netzwerkeinstellungen, die von der zu importierenden VM stammen.

Import: Netzwerkangaben prüfen

Bestätige diese mit Next.

Bestätige das Management Network des XCP-Hosts als Transfer-Network.

Import: Transfer Network

Prüfe nun nochmals alle Einstellungen für den Import der VM. Falls Änderungen erforderlich sind, gehe mit Previous zurück zur gewünschten Einstellung.

Import: Review import settings

Bestätige nun den Import mit Finish.

Der Import kann einige Zeit dauern. Danach solltest du die importierte VM im XCP-ng Center sehen können.

Importierte VMs in XCP-ng Center

VMs starten und aktualisieren

Wähle im XCP-ng Center links die VM aus, die du starten möchtest. Klicke danach oben in der Menüleiste das Icon Start aus.

Beginne mit der Firewall OPNsense®. Starte diese.

Gestartete VM OPNsense®

Melde Dich auf der Konsole mit den Daten root und Muster! an.

Konsolenmenü OPNsense®

Wähle danach in dem Konsolenmenü den Punkt 12) aus, um die Firewall zu aktualisieren.

Update der VM OPNsense®

Bestätige diesen Vorgang mit y und warte bis die VM neu gestartet wurde.

Starte die VM mit dem linuxmuster.net Server. Melde Dich mit o.g. Login-Daten an.

Important

Vor den folgenden Schritten muss die Datei /etc/apt/sources.list.d/lmn7.list wie folgt geändert werden:

deb https://archive.linuxmuster.net lmn7/
deb-src https://archive.linuxmuster.net lmn7/

Andere Zeilen können gelöscht oder mit “#” am Zeilenanfang auskommentiert werden.

Danach muss mit

wget https://archive.linuxmuster.net/archive.linuxmuster.net.key

der nötige Schlüssel geholt und mit

apt-key add archive.linuxmuster.net.key

aufgenommen werden.

Siehe auch https://ask.linuxmuster.net/t/infrastrukturanpassungen-neuer-paketserver-und-moegliche-folgen

Aktualisiere die VM.

Update der Server VM

Bestätigen Sie das Update mit y.

Update der Server VM

Sofern du weitere VMs importiert hast, führe die Aktualisierungen analog aus.

Hint

Für die weitere Einrichtung von linuxmuster.net für deine Schule folge der Dokumentation unter: Linuxmuster Setup

Xen Orchestra Appliance (XOA)

Xen Orchestra Appliance (XOA) bietet die Möglichkeit, die Virtualisierungsumgebung XCP-ng webbasiert und plattformunabhängig zu administrieren. Die bereitgestellten Funktionen entsprechen denen des Programms XCP-ng Center für Windows und gehen hinsichtlich der Backups darüber hinaus. Es können via Borwserzugriff VMs importiert, exportiert, neue VMs erstellt und verschoben werden. Zudem lassen sich so plattformunabhängig verschiedene Arten von Backups auf unterschiedlichen Datenträgern erstellen und Zeitpläne zur automatisierten Erstellung der Backups definieren und aktivieren.

Xen Orchestra wird von der französischen Firma vates entwickelt und supportet. Diese stellt XOA als Open Source zur Verfügung. Der Quellcode findet sich auf github.

linuxmuster.net hat gemäß dieser eine XOA-VM zum Einsatz auf der Virtualisierungsumgebung XCP-ng auf Basis von Ubuntu 18.04 LTS mit Anpassungen für linuxmuster v7 erstellt. Die VM wurde from the sources erstellt, und für den Betrieb mit linuxmuster.net auf XCP-ng angepasst.

Note

Um XOA VM nutzen zu können, muss diese zuerst unter XCP-ng importiert worden sein!

Import der VM

Lade zuerst die vorbereitete XOA-VM für linuxmuster.net als ZIP-Archiv herunter. Entpacke dieses Archiv lokal und importiere dann die VM wie bereits zuvor im Unterkapitel VMs importieren beschrieben.

Anpassung der VM

Einige Einstellungen der vorkonfigurierten VM sind nach dem Import auf die eigene Virtualisierungsumgebung anzupassen. Öffne hierzu einen Webbrowser und öffne die Seite http://10.0.0.4 oder https://10.0.0.4. Der PC, auf dem der Browser geöffnet wird, muss sich im Netz 10.0.0.0/16 (grünes Netz - internes LAN der linuxmuster.net) befinden, damit eine Verbindung möglich ist. Wählst du den verschlüsselten Zugriff, so bestätige die Zertifikatswarnung, da ein selbst erstelltes Zertifikat für XOA ertsellt und konfiguriert wurde.

Es erscheint folgende Anmeldemaske:

XOA Login - Schritt 1

Gebe hier den User admin@admin.net mit dem Passwort Muster! ein und klicke auf Sign in.

Nach erfolgreicher Anmeldung wirst du darauf hingewiesen, dass du XOA from Sources nutzt und du daher kein Support und keine Updates erhälst.

XOA Login Note - Schritt 2

Bestätige dies, indem du Ok klickst.

Danach siehst du das Welcome-Fenster.

XOA Welcome - Schritt 3

Du must nun den XCP-ng Host oder den XCP-ng Pool angeben, damit XOA hierauf zugreifen und die Ressourcen verwalten kann. Wähle den Eintrag Add Server.

Es erscheint dann das Einstellungs-Fenster für die Server (Settings).

XOA Server Settings - Schritt 4

Trage den Hostnamen, die IP-Adresse 10.0.0.200 ein, die du dem XCP-ng Server gegeben hast und gebe dahinter - durch einen Doppelpunkt getrennt - den Port an. I.d.R. ist dies Port 443, der zu nutzen ist. XCP-ng nutzt hierbei self-signed certificates. Trage den Benutzernamen des root-Benutzers von XCP-ng sowie sein Kennwort ein. Setze zudem den Schiebeschalter nach rechts - auf grün -, damit nicht authorisierte Zertifikate - also self-signed certificates - akzeptiert werden. Klicke auf Connect. Es wird nun von der XOA-VM die Verbindung zum XCP-ng Host aufgebaut und gespeichert.

Note

Falls du einen XCP-ng Pool mit mehreren Servern und Speicherressourcen definiert hast, must du hier nur den Pool-Master als Server eintragen. Alle weiteren Server und Ressourcen werden dann automatisch erkannt.

Ändere nun das voreingestellte Kennwort für den root-Benutzer (admin@admin.net) der XOA-VM. Klicke hierzu auf der linken Menüleiste ganz unten auf der Personensymbol.

XOA Edit My Settings - Schritt 5

Danach erscheint das Kontexmenü für den Bentuzer: Hier kannst du das Kennwort ändern und weitere Einstellungen vornehmen.

XOA Edit Password - Schritt 6

Trage das bisherige Kennwort Muster! sowie zweimal dein neues Kennwort ein. Stelle die Sprache ein und bestätige die Änderungen mit einem Klick auf OK.

SSH-Verbindung zur VM

Um sich erstmalig mit der XOA-VM via SSH zu verbinden, gibst du in einem Terminal ein:

ssh -p 22 muster@10.0.0.4

Bestätige den fingerprint mit yes``und gebe das Kennwort ``Muster! ein.

Gebe auf der Konsole passwd ein und ändere der Kennwort für den Benutzer muster.

Wechsle auf der Konsole zum root-Benutzer, indem du als Benutzer muster den Befehl sudo su angibst. Du wirst nach dem Kennwort des Muster-Nutzers gefragt. Gebe das vorher geänderte Kennwort an, danach kannst du nun als Benutzer root arbeiten.

Im Verzeichnis /root findet sich eine README-Datei mit Hinweisen zur VM sowie weitere Skripte zur Aktualisierung der XOA-Installation.

Update der XOA-Installation

Um die XOA-Installation zu aktualisieren, findest du ein Skript, das du als root-Benutzer ausführen must.

Rufe das Skript /root/xo-update.sh auf. Die XOA-Installation from Sources wird aktualisiert. Weitere Hinweise huerzu findest du unter /root/README.

Backups: Backup NG

Um mithilfe von XOA Backups zu definieren, wählst du in der GUI der XOA-VM links im Menü den Eintrag Backup NG. Dies ist der Eintrag, um Backups für XCP-ng zu erstellen. Der Menüeintrag Backup existiert aufgrund der Abwärtskompatibilität zu XenServer - Installationen.

Grundlegende Erläuterungen zu den verschiedenen Backup-Möglichkeiten mit XOA findest du im Handbuch zu XOA. Hier gibt es ebenfalls Einführungsvideos.

Wurden Backups definiert und wurden diese bereits ausgeführt, dann kannst du deren Status und ggf. zusätzliche Backupinformationen aufrufen.

Dies kann dann z.B. wie in folgender Abbildung aussehen:

XOA Backup NG - Status

Aktualisierung des XCP-ng-Hosts

Nachdem du o.g. Installationsschritte sowie den Import der VMs erfolgreich ausgeführt hast, kann der XCP-ng Host über die Firewall eine Internet-Verbindung aufbauen. Um den XCP-ng Host zu aktualisieren, benötigt der Hypervisor eine funktionierende Internet-Verbindung. Dies sollte nunmehr der Fall sein.

Wähle in dem Startbildschirm des XCP-ng Hosts den Menüpunt Local Command Shell und drücke Enter. Gebe als Benutzer root an und das Passwort das du während der Installation vergeben hast.

Danach teste zuerst, ob die Verbindung zum Internet funktioniert:

ping 8.8.8.8
ping www.linuxmuster.net

Erhälst Du hierauf erfolgreich Antworten, so funktioniert die Verbindung vom XCP-ng Host zum Internet sowie die Namensauflösung.

Gebe nun auf der Konsole den Befehl

yum update

ein. XCP-ng fragt nun via Internetverbindung die Repositories ab und prüft, ob Aktualisierungen vorhanden sind. Falls ja, werden die zu aktualisierenden Pakete angezeigt. Die Aktualisierung ist mit y zu starten.

Schritt 23 der Installation des XCP-ng Servers

Danach ist Dein XCP-ng Host auf dem aktuellen Stand.

Weiter geht es mit dem Setup

follow_me2setup