Unterschiede zwischen den Revisionen 3 und 11 (über 8 Versionen hinweg)
Revision 3 vom 2018-06-01 13:16:18
Größe: 5325
Kommentar:
Revision 11 vom 2021-12-27 16:13:05
Größe: 10280
Kommentar:
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 1: Zeile 1:
== Installationshinweise: Virtualisierungs-Server == == Installationshinweise: Virtualisierungs-Server unter LibVirt mit KVM ==
Zeile 50: Zeile 50:
=== X2Go Installation ===

Die folgende X2Go-Paketquelle in {{{/etc/apt/sources.list.d/x2go.list}}} anlegen:{{{
deb http://packages.x2go.org/debian stretch main
}}}

Zeile 61: Zeile 54:
Der zentrale Virtualisierungs-Server besitzt typischerweise zwei Netzwerkschnittstellen.

 * Die erste Schnittstelle ist für das Backbone-Netz ({{{172.16.0.0/24}}} vorgesehen.
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).

Das Netzwerk-Setup benötigt die Paket {{{bridge-utils}}} und ggf. {{{vlan}}}:

{{{
root@virt-man-01:~# apt-get install bridge-utils vlan
}}}

Sobald das Netzwerk-Setup über {{{ifupdown}}} sauber bei Neustart des Servers gestartet wird, kann das Paket {{{network-manager}}} vom VIRT-MAN-Host entfernt werden:

{{{
root@virt-man-01:~# apt-get autoremove --purge network-manager
}}}


==== Netzwerk einrichten (ohne VLAN-Trunk) ====


 * Die Nummerierung der Netzwerk-Bridges lassen wir den daran angeschlossenen VLAN IDs entsprechen.
 * Die erste Schnittstelle ist für das Backbone-Netz ({{{172.16.0.0/24}}} vorgesehen. Diese Schnittstelle wird als Netzwerk-Bridge bereitgestellt.
Zeile 67: Zeile 76:
'''__Beispiel__''': (Datei: {{{/etc/network/interfaces}}} auf {{{virt-man-01}}}){{{ '''__Beispiel__''': (Datei: {{{/etc/network/interfaces}}} auf {{{virt-man-01}}}, ohne VLANs){{{
Zeile 73: Zeile 82:
iface eth0 inet static iface eth0 inet manual

# for Backbone network
iface br3 inet static
 bridge_fd 0
 bridge_hello 2
 bridge_maxage 12
 bridge_stop off
 bridge_ports eth0
Zeile 79: Zeile 96:
# edu interface
Zeile 82: Zeile 100:
# for Debian Edu network
auto br2
iface br2 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.

==== Netzwerk einrichten (ohne VLAN-Trunk, aber mit mehreren Bridges für Edu-Netz) ====

 * Die Nummerierung der Netzwerk-Bridges lassen wir den daran angeschlossenen VLAN IDs entsprechen.
 * Die erste Schnittstelle ist für das Backbone-Netz ({{{172.16.0.0/24}}} vorgesehen. Diese Schnittstelle wird als Netzwerk-Bridge bereitgestellt.
 * Die zweite Schnittstelle stellt einen Zugang zum Subnetz für die Schulinfrastruktur bereit ({{{10.0.0.0/8}}}). Diese Schnittstelle wird über eine Netzwerk-Bridge an die virtuelle Maschine TJENER übergeben.
 * Die dritte Schnittstelle stellt auch einen Zugang zum Subnetz für die Schulinfrastruktur bereit ({{{10.0.0.0/8}}}). Diese Schnittstelle wird aber über eine Netzwerk-Bridge an die virtuelle Maschine DISKLSERVER übergeben.

'''__Beispiel__''': (Datei: {{{/etc/network/interfaces}}} auf {{{virt-man-01}}}, ohne VLANs){{{
auto lo
iface lo inet loopback

# The loopback network interface
auto lo
iface lo inet loopback

auto eno1
iface eno1 inet manual

auto br3
iface br3 inet static
 bridge_fd 0
 bridge_hello 2
 bridge_maxage 12
 bridge_stop off
 bridge_ports eno1
 address 172.16.0.1
 netmask 255.255.255.0
 broadcast 172.16.0.255
 gateway 172.16.0.253

auto enp3s0f0
iface enp3s0f0 inet manual

auto br21
iface br21 inet static
 bridge_fd 0
 bridge_hello 2
 bridge_maxage 12
 bridge_stop off
 bridge_ports enp3s0f0

auto enp3s0f1
iface enp3s0f1 inet manual

auto br22
iface br22 inet static
 bridge_fd 0
 bridge_hello 2
 bridge_maxage 12
 bridge_stop off
 bridge_ports enp3s0f1
}}}


Nach der Neukonfiguration die Schnittstellen muss das Netzwerk (bzw. zum Testen der korrekten Funktion beim System-Boot: der Server) neu gestartet werden.

==== Netzwerk einrichten (mit VLAN-Trunk und Uplink mit echter Internet-IP) ====

 * Die erste Schnittstelle ist die primäre Schnittstelle des Virtualisierungsrechners und hat eine Internet-IP

 * Die zweite Schnittstelle ist ein VLAN-Trunk auf der mehrere VLANs für das Intranet konfiguriert sind.

   * VLAN ID 1: OpenLAN
   * VLAN ID 2: EduLAN
   * VLAN ID 3: Backbone Netz
   * VLAN ID ...: etc.pp.

'''__Beispiel__''': (Datei: {{{/etc/network/interfaces}}} auf {{{virt-man-01}}}, mit VLANs){{{
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
 address 123.45.67.0/27
 gateway 123.45.67.1
 # dns-* options are implemented by the resolvconf package, if installed
 dns-nameservers 123.45.67.1
 dns-search institut.uni-irgendwo.de
 bridge_fd 0
 bridge_hello 2
 bridge_maxage 12
 bridge_stop off
 bridge_ports eth0

# The secondary network interface (for internal VLANs)
auto eth1
iface eth1 inet manual

# The VLAN Trunk as a network bridge (so, accessible from VMs)
Zeile 89: Zeile 214:
}}}


Nach der Neukonfiguration die Schnittstellen muss das Netzwerk (bzw. zum Testen der korrekten Funktion beim System-Boot: der Server) neu gestartet werden.

# OpenLAN VLAN
auto vlan1
iface vlan1 inet manual
 vlan-raw-device br1

# Debian Edu VLAN
auto vlan2
iface vlan2 inet manual
 vlan-raw-device br1

# Backbone VLAN
auto vlan3
iface vlan3 inet manual
 vlan-raw-device br1

# OpenLAN (untagged) bridge
auto br11
iface br11 inet manual
 bridge_fd 0
 bridge_hello 2
 bridge_maxage 12
 bridge_stop off
 bridge_ports vlan1

# EduLAN (untagged) bridge
auto br21
iface br21 inet manual
 bridge_fd 0
 bridge_hello 2
 bridge_maxage 12
 bridge_stop off
 bridge_ports vlan2

# Backbone (untagged) bridge
auto br31
iface br31 inet static
 address 172.16.0.1/24
 bridge_fd 0
 bridge_hello 2
 bridge_maxage 12
 bridge_stop off
 bridge_ports vlan3

}}}

Nach der Neukonfiguration der Schnittstellen muss das Netzwerk (bzw. zum Testen der korrekten Funktion beim System-Boot: der Server) neu gestartet werden.

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<A1> /dev/md<A2> [...]
      # alle RAID-1 Devices der SAS-Festplatten zu einer Volume Group zusammenführen
      $ vgcreate vm-fast-vg /dev/md<B1> /dev/md<B2> [...]
  • LVM Volumes anlegen:
    • Logical Volumes für virtuelle Maschinen anlegen. Namenskonvention für LVs: <host-fqdn>_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).

Das Netzwerk-Setup benötigt die Paket bridge-utils und ggf. vlan:

root@virt-man-01:~# apt-get install bridge-utils vlan

Sobald das Netzwerk-Setup über ifupdown sauber bei Neustart des Servers gestartet wird, kann das Paket network-manager vom VIRT-MAN-Host entfernt werden:

root@virt-man-01:~# apt-get autoremove --purge network-manager

Netzwerk einrichten (ohne VLAN-Trunk)

  • Die Nummerierung der Netzwerk-Bridges lassen wir den daran angeschlossenen VLAN IDs entsprechen.
  • Die erste Schnittstelle ist für das Backbone-Netz (172.16.0.0/24 vorgesehen. Diese Schnittstelle wird als Netzwerk-Bridge bereitgestellt.

  • 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, ohne VLANs)

auto lo
iface lo inet loopback

# backbone interface
auto eth0
iface eth0 inet manual

# for Backbone network
iface br3 inet static
        bridge_fd 0
        bridge_hello 2
        bridge_maxage 12
        bridge_stop off
        bridge_ports eth0
        address 172.16.0.1
        netmask 255.255.255.0
        broadcast 172.16.0.255
        gateway 172.16.0.253

# edu interface
auto eth1
iface eth1 inet manual

# for Debian Edu network
auto br2
iface br2 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.

Netzwerk einrichten (ohne VLAN-Trunk, aber mit mehreren Bridges für Edu-Netz)

  • Die Nummerierung der Netzwerk-Bridges lassen wir den daran angeschlossenen VLAN IDs entsprechen.
  • Die erste Schnittstelle ist für das Backbone-Netz (172.16.0.0/24 vorgesehen. Diese Schnittstelle wird als Netzwerk-Bridge bereitgestellt.

  • Die zweite Schnittstelle stellt einen Zugang zum Subnetz für die Schulinfrastruktur bereit (10.0.0.0/8). Diese Schnittstelle wird über eine Netzwerk-Bridge an die virtuelle Maschine TJENER übergeben.

  • Die dritte Schnittstelle stellt auch einen Zugang zum Subnetz für die Schulinfrastruktur bereit (10.0.0.0/8). Diese Schnittstelle wird aber über eine Netzwerk-Bridge an die virtuelle Maschine DISKLSERVER übergeben.

Beispiel: (Datei: /etc/network/interfaces auf virt-man-01, ohne VLANs)

auto lo
iface lo inet loopback

# The loopback network interface
auto lo
iface lo inet loopback

auto eno1
iface eno1 inet manual

auto br3
iface br3 inet static
        bridge_fd 0
        bridge_hello 2
        bridge_maxage 12
        bridge_stop off
        bridge_ports eno1
        address 172.16.0.1
        netmask 255.255.255.0
        broadcast 172.16.0.255
        gateway 172.16.0.253

auto enp3s0f0
iface enp3s0f0 inet manual

auto br21
iface br21 inet static
        bridge_fd 0
        bridge_hello 2
        bridge_maxage 12
        bridge_stop off
        bridge_ports enp3s0f0

auto enp3s0f1
iface enp3s0f1 inet manual

auto br22
iface br22 inet static
        bridge_fd 0
        bridge_hello 2
        bridge_maxage 12
        bridge_stop off
        bridge_ports enp3s0f1

Nach der Neukonfiguration die Schnittstellen muss das Netzwerk (bzw. zum Testen der korrekten Funktion beim System-Boot: der Server) neu gestartet werden.

  • Die erste Schnittstelle ist die primäre Schnittstelle des Virtualisierungsrechners und hat eine Internet-IP
  • Die zweite Schnittstelle ist ein VLAN-Trunk auf der mehrere VLANs für das Intranet konfiguriert sind.
    • VLAN ID 1: OpenLAN
    • VLAN ID 2: EduLAN
    • VLAN ID 3: Backbone Netz
    • VLAN ID ...: etc.pp.

Beispiel: (Datei: /etc/network/interfaces auf virt-man-01, mit VLANs)

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
        address 123.45.67.0/27
        gateway 123.45.67.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 123.45.67.1
        dns-search institut.uni-irgendwo.de
        bridge_fd 0
        bridge_hello 2
        bridge_maxage 12
        bridge_stop off
        bridge_ports eth0

# The secondary network interface (for internal VLANs)
auto eth1 
iface eth1 inet manual

# The VLAN Trunk as a network bridge (so, accessible from VMs)
auto br1
iface br1 inet manual
        bridge_fd 0
        bridge_hello 2
        bridge_maxage 12
        bridge_stop off
        bridge_ports eth1

# OpenLAN VLAN
auto vlan1
iface vlan1 inet manual
        vlan-raw-device br1

# Debian Edu VLAN
auto vlan2
iface vlan2 inet manual 
        vlan-raw-device br1

# Backbone VLAN
auto vlan3
iface vlan3 inet manual
        vlan-raw-device br1

# OpenLAN (untagged) bridge
auto br11
iface br11 inet manual
        bridge_fd 0
        bridge_hello 2
        bridge_maxage 12
        bridge_stop off
        bridge_ports vlan1 

# EduLAN (untagged) bridge
auto br21
iface br21 inet manual
        bridge_fd 0
        bridge_hello 2
        bridge_maxage 12
        bridge_stop off
        bridge_ports vlan2

# Backbone (untagged) bridge
auto br31
iface br31 inet static
        address 172.16.0.1/24
        bridge_fd 0
        bridge_hello 2
        bridge_maxage 12
        bridge_stop off
        bridge_ports vlan3

Nach der Neukonfiguration der 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).

IT-Zukunft Schule: Technik/Installation/VirtServer/LibVirt (zuletzt geändert am 2021-12-27 16:13:05 durch MikeGabriel)