Unterschiede zwischen den Revisionen 1 und 35 (über 34 Versionen hinweg)
Revision 1 vom 2015-07-02 09:29:02
Größe: 12963
Kommentar:
Revision 35 vom 2018-06-20 09:53:20
Größe: 6976
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 Ganeti mit KVM ==
Zeile 5: Zeile 5:
Die Kerninfrastruktur im Projekt IT Zukunft-Schule™ besteht aus mindestens einem zentralen Server, auf dem die Infrastrukturverwaltung und -steuerung des Schulnetzwerks installiert wird. Auf diesem zentralen Server kommt [[Technik/Virtualisierung|Virtualisierung]] zum Einsatz.

Bevor also mit der Installation der Server-Kompenenten für das Pädagogische Schulnetz begonnen werden kann, muss als erste Ebene die Software für Server-Virtualisierung auf dem zentralen Server installiert werden. In der Virtualisierungsumgebung werden dann die Komponenten des Debian Edu / Skolelinux Netzwerks installiert.

Für große Schulen kommen mehrere Virtualisierungs-Server zum Einsatz und die Dienste des Debian Edu / Skolelinux Netzwerks werden dann auf mehrere physikalische Maschinen verteilt.
Ein praktisches Cheat Sheet für die Administration von Ganeti im Terminal ist [[https://nsrc.org/workshops/2014/btnog/raw-attachment/wiki/Track2Agenda/ganeti-cheatsheet.pdf|hier]] zu finden (externer Link!).
Zeile 13: Zeile 9:
Vor der Basisinstallation des ersten Virtualisierungs-Servers muss die [[Technik/Installation/InternetUplink|Internet-Anbindung]] der Schule entsprechend der IT-Zukunft Schule™ [[Technik/Infrastruktur|Netzwerktopologie]] eingerichtet werden. Desweiteren muss eine Backbone-Switch für das Backbone-Netz bereit stehen, welche mit dem Backbone-VLAN des Internet-Routers verbunden ist. Durchführen der [[Technik/Installation/VirtServer/BasisStretch|Basisinstallation]].
Zeile 15: Zeile 11:
Im Backbone-Netz ist standardmäßig ein DHCP-Server aktiv (auf Router für die Internet-Anbindung), so dass angeschlossene Systeme (neue aufzusetzende Server, Notebooks von System-Admins, etc.) sofort Zugriff auf das Internet bekommen können.

=== Basisinstallation ===

Der Virtualisierungs-Server stellt den virtuellen Maschinen Teile der Hardware standardisiert zur Verfügung. Der folgende Abschnitt beschreibt eine allgemeine Installation des ersten/zentralen Virtualiserungs-Servers. Die Details der Installation unterscheiden sich dabei je nach Hardware-Ausstattung des Servers und Nutzungsszenario (Größe der Schule, etc.). In den entsprechenden Textpassagen werden Beispielwerte angegeben, die an die Gegebenheiten der jeweiligen Schule individuell angepasst werden.

=== Installation starten ===

 * Ein startfähiges Medium mit [[ http://www.debian.org/CD/http-ftp/|Debian GNU/Linux stable]] (CD-ROM oder USB Stick) erstellen. Um Verwechslungen vorzubeugen: An dieser Stelle verwenden wir noch nicht Debian Edu / Skolelinux, das kommt erst bei der Installation der virtuellen Maschinen zum Einsatz.

 * Vom erstellten Medium den Virtualisierungs-Server booten.

 * Die folgende Antworten in den angezeigten Menüs auswählen: ''Install'', ''German'', ''Deutschland'' und ''Deutsch''

 * Die Netzwerkschnittstelle mit Zugang zum Internet angeben (in Klammern markiert durch die Bezeichnung ''Copper''). Der Server sollte so verkabelt sein, dass {{{eth0}}} für das Backbone-Netzwerk genutzt wird.

=== Rechnernamen und erste Benutzer anlegen ===

 * Rechnername: {{{virt-man-01}}} (weitere Virtualisierungs-Server werden durchnummerier: {{{virt-man-02}}}, {{{virt-man-03}}}, etc.)
 * domain: {{{backbone}}}
 * Passwort für den Benutzer: {{{root}}} eintragen. ''Wichtig!!! Passwort notieren!!!''
 * Vor- und Zuname für neuen/ersten Benutzer: {{{Local Administrator}}}
 * Benutzername für lokalen Administrator: {{{locadm}}}
 * Passwort für den lokalen Administrator eintragen und bestätigen. ''WICHTIG!!! Passwort notieren!!!''
 * Im nachfolgenden Dialog des Debian Installers werden die Festplatten partitioniert.
    * Partitionierungs-Methode: manuell
    * root-Dateisystem: 20Gb, als Software RAID-1 (/dev/md0) konfigurieren
    * Swap-Space: Arbeitsspeicher +2Gb auf alle schnellen Platten gleichmäßig verteilen
       * optional: Arbeitsspeicher +2Gb auf die zwei langsamen Platten gleichmäßig verteilen
    * Raid-Device (/dev/md0) als ext3-Dateisystem formatieren, Einhängepunkt: ,,/"
 * Software-Installationsprofil ({{{tasksel}}}): grafische Oberfläche abwählen, SSH-Server zusätzlich auswählen

FixMe: Wenn der Server nach der Installation nicht bootet, sollte nach einem {{{grub-install /dev/sdX}}}, {{{grub-install /dev/sdY}}} UND {{{grub-install /dev/md0}}} sowie einem anschließenden {{{update-grub}}} alles funktionieren.

=== Grundeinrichtung ===

 1. Nachdem die Grundinstallation abgeschlossen ist als {{{locadm}}} einloggen.

 1. Als {{{root}}} das Programm {{{sudo}}} installieren. {{{
$ su -c "apt-get install sudo"
}}}

 1. Den User {{{locadm}}} in die Gruppe {{{sudo}}} eintragen. Eingabe mit {{{root}}}-Kennwort bestätigen. __Danach:__ ausloggen und wieder als {{{locadm}}} einloggen. {{{
$ su -c "adduser locadm sudo"
}}}

 1. Der Posix-Gruppe {{{sudo}}} den Aufruf des Kommandos {{{sudo}}} ohne Eingabe des Passworts erlauben:{{{
locadm@virt-man-01:~# su -c "diff -u /etc/sudoers.orig /etc/sudoers"
--- /etc/sudoers.orig 2012-07-27 12:43:30.000000000 +0200
+++ /etc/sudoers 2012-07-27 12:42:07.000000000 +0200
@@ -19,6 +19,6 @@
 # Allow members of group sudo to execute any command
 # (Note that later entries override this, so you might need to move
 # it further down)
-%sudo ALL=(ALL) ALL
+%sudo ALL=(ALL) NOPASSWD: ALL
 #
 #includedir /etc/sudoers.d
}}}

 1. Den Benutzer {{{locadm}}} seine {{{sudo}}}-Rechte wahrnehmen lassen:{{{
$ newgrp sudo
}}}

 1. Nachinstallation von Software:{{{
$ sudo apt-get install lxde mc vim xinit
}}}

 1. Nach der Installation {{{vim}}} als Editor in den Debian "Alternatives" festlegen.{{{
sudo update-alternatives --config editor
}}}

 1. Das Programm Midnight Commander starten (Kommando: {{{mc}}}):
   * F9 drücken
   * Optionen -> Konfiguration: [x] Internen Editor benutzen
   * Optionen -> Einstellungen speichern
   * F10: Midnight Commander beenden
 1. Den Midnight Commander Editor (Kommando: {{{mcedit}}}) starten:
   * F9 drücken
   * Menüpunkt: ''Optionen -> Allgemein''
   * "Backspace durch Tabs" auswählen
   * "Tabs mit Leerzeichen auffüllen" auswählen
   * "Return rückt automatisch ein" abwählen
   * F10: Editor beenden

 1. In {{{/etc/apt/sources.list}}} für alle Varianten {{{contrib}}} und {{{non-free}}} hinzufügen.
 1. GDM-Konfiguration (Greeter) so anpassen, dass der Anmelde-Bildschirm den Hostnamen anzeigt:{{{
locadm@virt-man-01:/etc/gdm$ diff -u gdm.conf.orig gdm.conf
--- gdm.conf.orig
+++ gdm.conf
@@ -62,6 +62,9 @@
 
 [greeter]
 
+DefaultWelcome=false
+Welcome=%n
+
 [chooser]
 
 [debug]
}}}

=== Aktualisierung gezielter Pakete via Debian squeeze-backports und ITZkS-Repository ===

Zwei zusätzliche APT-Quellen werden hinzugefügt:{{{

$ editor /etc/apt/sources.list.d/backports.list

"""
deb http://ftp.de.debian.org/debian-backports squeeze-backports main contrib non-free
"""
}}}{{{
$ editor /etc/apt/sources.list.d/itzks.list

"""
deb http://packages.it-zukunft-schule.de/debian squeeze main
deb http://packages.it-zukunft-schule.de/debian squeeze-backports main
"""

$ apt-get update && apt-get install itzks-keyring && apt-get update
}}}

Aus diesen Quellen werden die folgenden Pakete installiert:{{{
$ apt-get install -t squeeze-backports itzks-systems-virtman linux-image-3.2.0-0.bpo.4-amd64 linux-headers-3.2.0-0.bpo.4-amd64
}}}
Zeile 143: Zeile 14:
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.
Im allen Virtualisierungs-Servern werden schnelle SAS-Festplatten oder SSDs eingebaut.
Zeile 154: Zeile 22:
 * 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
 * SATA-Festplatte 1 und 2 werden 20 GByte als Raid (Level 1, Plattenspiegelung) für Betriebssystem des Virtualisierungs-Servers reserviert
 * Swap-Partitionen: Größe des Arbeitsspeichers plus 2GByte auf alle Festplatten verteilt.
Zeile 157: Zeile 25:
$ mdadm --create /dev/md1 -l1 -n2 /dev/sda2 /dev/sdb2 $ mdadm --create /dev/md1 -l1 -n2 /dev/sda3 /dev/sdb3
Zeile 165: Zeile 33:
 * 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){{{
 * LVM Volume Group {{{ganeti_vg}}} für Ganeti anlegen:{{{
Zeile 171: Zeile 37:
# 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?

=== X2Go Installation ===

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

Installation von X2Go:

 1. Paketquellen neu einlesen{{{
$ sudo apt-get update
}}}
 1. Paket {{{x2go-keyring}}} installieren und Paketquellen neu einlesen.{{{
$ sudo apt-get install x2go-keyring && sudo apt-get update
}}}
 1. Pakete installieren: {{{x2goserver}}} und {{{x2golxdebindings}}}{{{
$ sudo apt-get install x2goserver x2golxdebindings
}}}
 1. Den User {{{locadm}}} der Gruppe {{{fuse}}} hinzufügen (um ''X2Go local folder sharing'' zu aktivieren).{{{
$ sudo adduser locadm fuse
# alle RAID-1 Devices zu einer Volume Group zusammenführen
$ vgcreate ganeti_vg /dev/md1 /dev/md2 [...]
Zeile 213: Zeile 47:
 * Die erste Schnittstelle ist für das Backbone-Netz ({{{172.16.0.0/24}}} vorgesehen.  * Die erste 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.
Zeile 215: Zeile 49:
 * 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.  * Die zweite Schnittstelle ist für das Backbone-Netz ({{{172.16.0.0/24}}} vorgesehen.
Zeile 221: Zeile 55:
auto eth0
iface eth0 inet manual

auto br0
iface br0 inet manual
 bridge_fd 0
 bridge_hello 2
 bridge_maxage 12
 bridge_stop off
 bridge_ports eth0
Zeile 222: Zeile 67:
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
Zeile 239: Zeile 77:
 address 172.16.0.1
 netmask 255.255.255.0
 broadcast 172.16.0.255
 gateway 172.16.0.253
Zeile 242: Zeile 84:
Nach der Neukonfiguration die Schnittstellen muss das Netzwerk (bzw. zum Testen der korrekten Funktion beim System-Boot: der Server) neu gestartet werden. Nach der Neukonfiguration der Schnittstellen muss das Netzwerk (bzw. zum Testen der korrekten Funktion beim System-Boot: der Server) neu gestartet werden.
Zeile 244: Zeile 86:
=== Virtuelle Maschinen einrichten === === Ganeti einrichten ===
Zeile 246: Zeile 88:
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. Ganiti unterstützt Virtualisierung verteilt über mehrere Virtualisierungsserver. Einer dieser Virtualisierungsserver muss Master-Status im Ganeti-Cluster haben. Auf unseren Schulsystemen ist dies Standardmäßig der {{{virt-Man-01.backbone}}}. Ganeti ist aber so eingerichtet, dass theoretisch jeder andere Knoten (in Ganeti heißen Virtualisierungs-Server "Knoten" oder "Node") Master-Status erlangen kann. Der Master bekommt den host-Namen {{{ganeti-cluster.backbone}}}.
Zeile 248: Zeile 90:
 * Den User {{{locadm}}} der Gruppe {{{libvirt}}} hinzufügen.{{{
$ sudo adduser locadm libvirt
==== Vorbereitungen ====
Anpassen von {{{/etc/hosts}}}:
  * auf allen Virtualiesierungs-Servern müssen in {{{/etc/hosts}}} alle Virtualisierungs-Server eingetragen sein, Beispiel:{{{
172.16.0.1 virt-man-01.backbone virt-man-01
172.16.0.2 virt-man-02.backbone virt-man-02
[...]
Zeile 251: Zeile 97:
 * Grafisch am Virtualisierungs-Server als {{{locadm}}} anmelden.
 * Den "Virtual Machine Manager" starten.
  * zusätzlich muss auf allen Virtualisierungs-Servern der Hostname des Ganetimasters in {{{/etc/hosts}}} eingetragen werden, Beispiel:{{{
172.16.0.240 ganeti-cluster.backbone ganeti-cluster
}}}
  * {{{/root/.ssh}}} muss angelegt sein: {{{mkdir /root/.ssh}}}
Zeile 254: Zeile 102:
 * 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.)
==== Ganeti Pakete installieren ====
Zeile 258: Zeile 104:
In ''Virtual Machine Manager'' können jetzt virtuelle Maschinen angelegt werden (genaue Beschreibung auf den Seiten, die die einzelnen VMs beschreiben). Um Ganeti für den Debian Edu / Skolelinux Kontext aufzusetzen, müssen die Pakete {{{ganeti}}} und {{{ganeti-os-noop}}} installiert sein:{{{
$ sudo apt-get install ganeti ganeti-os-noop
}}}

==== Ganeti Cluster initialisieren ====

{{{
$ sudo gnt-cluster init \
  --master-netdev br1 \
  --vg-name ganeti_vg \
  --enabled-hypervisors kvm \
  --nic-parameters link=br0 \
  --hypervisor-parameters kvm:initrd_path=,kernel_path= \
  --enabled-disk-templates=plain
  ganeti-cluster.backbone
}}}

Ganeti erzeugt eine ssh-key-pair in {{{/root/.ssh}}} und hinterlegt dessen public-key in {{{/root/.ssh/authorized_key}}}, welche auf die anderen Virtualisierungs-Server kopiert werden muss.

Nun können die anderen Virtualisierungs-Server dem Cluster hinzugefügt werden:{{{
$ sudo gnt-node add virt-man-<xx>
}}}

Für die Virtuellen Maschinen des !DebianEdu-Netzwerkes stellen wir innerhalb von Ganeti ein Netzwerk bereit:
{{{
$ sudo gnt-network add --network=10.0.0.0/8 --gateway=10.0.0.1 DebianEdu
$ sudo gnt-network connect -N mode=bridged,link=br0 DebianEdu
}}}

Um die !GanetiMgr Instanz (Webfrontend für Ganeti) stellen wir auch das Backbone-Netzwerk innerhalb von Ganeti bereit.{{{
$ sudo gnt-network add --network=172.16.0.0/24 --gateway=172.16.0.253 Backbone
$ sudo gnt-network connect -N mode=bridged,link=br1 Backbone
}}}

Für die von Ganeti verwalteten VMs müssen Standardparameter, (großzügige) Ober- und Untergrenzen festgelegt werden:{{{
$ sudo gnt-cluster modify --ipolicy-std-specs cpu-count=2,disk-count=1,disk-size=10240M,memory-size=2048M,nic-count=1,spindle-use=1 \
                          --ipolicy-bounds-specs min:cpu-count=1,disk-count=1,disk-size=1024M,memory-size=128M,nic-count=1,spindle-use=1/max:cpu-count=32,disk-count=16,disk-size=4048G,memory-size=32768M,nic-count=8,spindle-use=12
}}}


==== Installation von Tjener vorbereiten ====

Nun kann mit der [[https://wiki.it-zukunft-schule.de/Technik/Installation/VM/HauptServerTjener/Jessie|Installation des Hauptservers]] fortgefahren werden.

==== Installation von GanetiMgr ====

Das Web Management Tool !GanetiMgr kann bei der Fa. [[http:das-netzwerkteam.de|DAS-NETZWERKTEAM]] beauftragt werden. Die Installation ist so spezifisch und zeitlichen Änderungen unterworfen, dass eine öffentlich Dokumentation meist immer veraltet oder ungenau ist.

Installationshinweise: Virtualisierungs-Server unter Ganeti mit KVM

Ein praktisches Cheat Sheet für die Administration von Ganeti im Terminal ist hier zu finden (externer Link!).

Vorbereitungen

Durchführen der Basisinstallation.

Festplattenpartitionierung (im Detail)

Im allen Virtualisierungs-Servern werden schnelle SAS-Festplatten oder SSDs eingebaut.

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-Servers reserviert
  • Swap-Partitionen: Größe des Arbeitsspeichers plus 2GByte auf alle 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/sda3 /dev/sdb3
    $ 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 Group ganeti_vg für Ganeti anlegen:

    $ pvcreate /dev/md1
    $ pvcreate /dev/md2
    $ [...]
    # alle RAID-1 Devices zu einer Volume Group zusammenführen
    $ vgcreate ganeti_vg /dev/md1 /dev/md2 [...]

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.

  • Die erste 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.

  • Die zweite Schnittstelle ist für das Backbone-Netz (172.16.0.0/24 vorgesehen.

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

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet manual
        bridge_fd 0
        bridge_hello 2
        bridge_maxage 12
        bridge_stop off
        bridge_ports eth0

# backbone interface
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
        address 172.16.0.1
        netmask 255.255.255.0
        broadcast 172.16.0.255
        gateway 172.16.0.253

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

Ganeti einrichten

Ganiti unterstützt Virtualisierung verteilt über mehrere Virtualisierungsserver. Einer dieser Virtualisierungsserver muss Master-Status im Ganeti-Cluster haben. Auf unseren Schulsystemen ist dies Standardmäßig der virt-Man-01.backbone. Ganeti ist aber so eingerichtet, dass theoretisch jeder andere Knoten (in Ganeti heißen Virtualisierungs-Server "Knoten" oder "Node") Master-Status erlangen kann. Der Master bekommt den host-Namen ganeti-cluster.backbone.

Vorbereitungen

Anpassen von /etc/hosts:

  • auf allen Virtualiesierungs-Servern müssen in /etc/hosts alle Virtualisierungs-Server eingetragen sein, Beispiel:

    172.16.0.1 virt-man-01.backbone virt-man-01
    172.16.0.2 virt-man-02.backbone virt-man-02
    [...]
  • zusätzlich muss auf allen Virtualisierungs-Servern der Hostname des Ganetimasters in /etc/hosts eingetragen werden, Beispiel:

    172.16.0.240 ganeti-cluster.backbone ganeti-cluster
  • /root/.ssh muss angelegt sein: mkdir /root/.ssh

Ganeti Pakete installieren

Um Ganeti für den Debian Edu / Skolelinux Kontext aufzusetzen, müssen die Pakete ganeti und ganeti-os-noop installiert sein:

$ sudo apt-get install ganeti ganeti-os-noop

Ganeti Cluster initialisieren

$ sudo gnt-cluster init \
  --master-netdev br1 \
  --vg-name ganeti_vg \
  --enabled-hypervisors kvm \
  --nic-parameters link=br0 \
  --hypervisor-parameters kvm:initrd_path=,kernel_path= \
  --enabled-disk-templates=plain
  ganeti-cluster.backbone

Ganeti erzeugt eine ssh-key-pair in /root/.ssh und hinterlegt dessen public-key in /root/.ssh/authorized_key, welche auf die anderen Virtualisierungs-Server kopiert werden muss.

Nun können die anderen Virtualisierungs-Server dem Cluster hinzugefügt werden:

$ sudo gnt-node add virt-man-<xx>

Für die Virtuellen Maschinen des DebianEdu-Netzwerkes stellen wir innerhalb von Ganeti ein Netzwerk bereit:

$ sudo gnt-network add --network=10.0.0.0/8 --gateway=10.0.0.1 DebianEdu
$ sudo gnt-network connect -N mode=bridged,link=br0 DebianEdu

Um die GanetiMgr Instanz (Webfrontend für Ganeti) stellen wir auch das Backbone-Netzwerk innerhalb von Ganeti bereit.

$ sudo gnt-network add --network=172.16.0.0/24 --gateway=172.16.0.253 Backbone
$ sudo gnt-network connect -N mode=bridged,link=br1 Backbone

Für die von Ganeti verwalteten VMs müssen Standardparameter, (großzügige) Ober- und Untergrenzen festgelegt werden:

$ sudo gnt-cluster modify --ipolicy-std-specs cpu-count=2,disk-count=1,disk-size=10240M,memory-size=2048M,nic-count=1,spindle-use=1 \
                          --ipolicy-bounds-specs min:cpu-count=1,disk-count=1,disk-size=1024M,memory-size=128M,nic-count=1,spindle-use=1/max:cpu-count=32,disk-count=16,disk-size=4048G,memory-size=32768M,nic-count=8,spindle-use=12

Installation von Tjener vorbereiten

Nun kann mit der Installation des Hauptservers fortgefahren werden.

Installation von GanetiMgr

Das Web Management Tool GanetiMgr kann bei der Fa. DAS-NETZWERKTEAM beauftragt werden. Die Installation ist so spezifisch und zeitlichen Änderungen unterworfen, dass eine öffentlich Dokumentation meist immer veraltet oder ungenau ist.

IT-Zukunft Schule: Technik/Installation/VirtServer/Ganeti (zuletzt geändert am 2022-01-06 15:06:58 durch MikeGabriel)