== Installationshinweise: Virtualisierungs-Server unter LibVirt mit KVM == <> === Festplattenpartitionierung (im Detail) === Im ersten/zentralen Virtualisierungs-Server werden schnelle SAS-Festplatten (geringe Kapazität, schneller Zugriff, teuer) und langsamere SATA-Festplatten (größere Kapazität, langsamerer Zugriff als bei SAS-Platten, kostengünstiger) eingebaut. * Die schnellen SAS-Festplatten werden für die Benutzerverzeichnisse von Lehrer/innen und Schüler/innen und für die Ablage der Boot-Images der Diskless-Workstations verwendet. * Auf den nicht ganz so performanten SATA-Festplatten liegen die Betriebssysteme der Server sowie Daten deren Zugriff nicht geschwindigkeitskritisch ist. Die Einteilung der Festplatten fällt von Schule zu Schule unterschiedlich aus. Sie ist abhängig von der Zahl und Größe der Festplatten, sowie der Größe des eingebauten Arbeitsspeichers. '''__Beispiel:__''' * Jeder Virtualisierungs-Server enthält eine gerade Anzahl von Festplatten, für Festplatten-Spiegelung wird in den meisten Fällen der RAID-Level-1 verwendet * RAID-Systemen werden stets mit der Software-Lösung im Linux-Kernel realisiert (sog. /dev/md-Devices) * SATA-Festplatte 1 und 2 werden 20 GByte als Raid (Level 1, Plattenspiegelung) für Betriebssystem des Virtualisierungs-Server reserviert * Swap-Partitionen: Größe des Arbeitsspeichers plus 2GByte auf alle schnellen SAS-Festplatten verteilt * Raid-Basis für LVM Volumes: jeweils zwei gleichgroße Partitionen auf baugleichen Festplatten zu RAID-Devices vom Level-1 zusammenfügen{{{ $ mdadm --create /dev/md1 -l1 -n2 /dev/sda2 /dev/sdb2 $ mdadm --create /dev/md2 -l1 -n2 /dev/sdc2 /dev/sdd2 # weitere RAID-1 Devices einrichten... $ [...] # alle RAID-1 Devices nach Neustart verfügbar machen... $ /usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf $ dpkg-reconfigure mdadm }}} * LVM Volume Groups anlegen: * Volume Group {{{vm-slow-vg}}} beinhaltet alle Level-1 RAIDs der langsameren Festplatten (SATA) * Volume Group {{{vm-fast-vg}}} beinhaltet alle Level-1 RAIDs der schnellen Festplatten (SAS){{{ $ pvcreate /dev/md1 $ pvcreate /dev/md2 $ [...] # alle RAID-1 Devices der SATA-Festplatten zu einer Volume Group zusammenführen $ vgcreate vm-slow-vg /dev/md /dev/md [...] # alle RAID-1 Devices der SAS-Festplatten zu einer Volume Group zusammenführen $ vgcreate vm-fast-vg /dev/md /dev/md [...] }}} * LVM Volumes anlegen: * Logical Volumes für virtuelle Maschinen anlegen. Namenskonvention für LVs: {{{_sd{a,b,c,d,...}}}}{{{ $ lvcreate vm-slow-vg -n tjener.intern_sda -L 400G $ lvcreate vm-fast-vg -n tjener.intern_sdb -L 400G $ lvcreate vm-slow-vg -n disklserver.intern_sda -L 40G $ lvcreate vm-fast-vg -n disklserver.intern_sdb -L 80G }}} FixMe: LTSP-Server ergänzen? === Netzwerk einrichten === Bislang wurde für die beschriebenen Installationsschritte eine vom DHCP-Server des Internet/DSL-Routers vergebene IP-Adresse für den zu installierenden Virtualisierungs-Server verwendet. Im nächsten Schritt wird nun eine feste IP-Adresse für die Backbone-Netzwerkschnittstelle festgelegt und auch die Schnittstelle für das Pädagogische Netzwerk (Debian Edu / Skolelinux Netzwerk) vorbereitet. Der zentrale Virtualisierungs-Server besitzt typischerweise zwei Netzwerkschnittstellen. (ACHTUNG: seit Debian 10 heißen die Netzwerk-Interfaces nicht mehr ethX, sondern werden bekommen einen eindeutigen Schnittstellennamen innerhalb eines Systems, z.B. enp3s0 oder eno1. Vorteil ist, dass die Schnittstellennamen nicht mehr von der Reihe des Ladens der Kerneltreiber abhängen, Nachteil ist, man muss sich die Schnittstellennamen genau in der Ausgabe von {{{ip a}}} oder {{{ifconfig --all}}} anschauen). * Die erste Schnittstelle ist für das Backbone-Netz ({{{172.16.0.0/24}}} vorgesehen. * Die zweite Schnittstelle stellt das Subnetz für die Schulinfrastruktur bereit ({{{10.0.0.0/8}}}). Diese Schnittstelle wird über eine Netzwerk-Bridge an die virtuellen Maschinen übergeben. '''__Beispiel__''': (Datei: {{{/etc/network/interfaces}}} auf {{{virt-man-01}}}){{{ auto lo iface lo inet loopback # backbone interface auto eth0 iface eth0 inet static address 172.16.0.1 netmask 255.255.255.0 broadcast 172.16.0.255 gateway 172.16.0.253 auto eth1 iface eth1 inet manual auto br1 iface br1 inet manual bridge_fd 0 bridge_hello 2 bridge_maxage 12 bridge_stop off bridge_ports eth1 }}} Nach der Neukonfiguration die Schnittstellen muss das Netzwerk (bzw. zum Testen der korrekten Funktion beim System-Boot: der Server) neu gestartet werden. === Virtuelle Maschinen einrichten === Das Programm ''Virtual Machine Manager'' dient der Verwaltung und Steuerung der virtuellen Maschinen. In ihm werden die virtuellen Festplatten konfiguriert, und Arbeitsspeicher sowie Prozessorkerne den virtuellen Maschinen zugeteilt. * Den User {{{locadm}}} der Gruppe {{{libvirt}}} hinzufügen.{{{ $ sudo adduser locadm libvirt }}} * Grafisch am Virtualisierungs-Server als {{{locadm}}} anmelden. * Den "Virtual Machine Manager" starten. * Mit der rechten Maustaste localhost auswählen, dann Details auswählen. Mit ''Speicher hinzufügen'' folgende virtuelle Festplatten anlegen: * vm-fast-vg (LVM Volume Group, s.o.) * vm-slow-vg (LVM Volume Group, s.o.) In ''Virtual Machine Manager'' können jetzt virtuelle Maschinen angelegt werden (genaue Beschreibung auf den Seiten, die die einzelnen VMs beschreiben).