Unterschiede zwischen den Revisionen 14 und 15
Revision 14 vom 2015-07-14 15:56:49
Größe: 3154
Kommentar:
Revision 15 vom 2015-07-14 16:46:59
Größe: 4757
Kommentar:
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 77: Zeile 77:

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. Ganeti ist aber so eingerichtet, das theoretisch jeder andere Knoten (in Ganeti heißen Virtualisierungsserver Knoten) Master-Status erlangen kann. Der Master bekommt den host-Namen {{{ganeti-cluster.intern}}}.

==== Vorbereitungen ====
Anpassen von {{{/etc/hosts}}}:
  * auf allen Virtualiesierungsserver müssen in /etc/hosts alle Virtualisierungsserver 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 Virtualisierungsservern 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 Cluster initializieren ====

{{{
$ gnt-cluster init \
  --master-netdev eth1 \
  --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 Virtualisierungsserver kopiert werden muss.

Nun können die anderen Virtualisierungsserver den Cluster hinzugefügt werden:{{{
gnt-node add virt-man-<xx>
}}}

Installationshinweise: Virtualisierungs-Server

Vorbereitungen

Durchführen der Basisinstallation.

Festplattenpartitionierung (im Detail)

Im allen Virtualisierungs-Servern werden schnelle SAS-Festplatten 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-Server 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 static
        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. Ganeti ist aber so eingerichtet, das theoretisch jeder andere Knoten (in Ganeti heißen Virtualisierungsserver Knoten) Master-Status erlangen kann. Der Master bekommt den host-Namen ganeti-cluster.intern.

Vorbereitungen

Anpassen von /etc/hosts:

  • auf allen Virtualiesierungsserver müssen in /etc/hosts alle Virtualisierungsserver 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 Virtualisierungsservern 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 Cluster initializieren

$ gnt-cluster init \
  --master-netdev eth1 \
  --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 Virtualisierungsserver kopiert werden muss.

Nun können die anderen Virtualisierungsserver den Cluster hinzugefügt werden:

gnt-node add virt-man-<xx>

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