IT-Administrator startet mit einem Blick in die Zukunft in das neue Jahr. So dreht sich der Heftschwerpunkt der Januar-Ausgabe um das Thema 'Future Networks'. ... (mehr)

OS-Definitionen einrichten

Für die ersten Tests soll das Paket "ganeti-instance-debootstrap" genügen, mit dem sich Debian-Instanzen erzeugen lassen. Haben Sie es mit dem Ubuntu-Paketmanager installiert, müssen Sie noch einen Link zum Standardverzeichnis für die OS-Definitionen anlegen:

# ln -s /usr/share/ganeti/os /srv/ganeti/os

Eine neue Debian-Instanz legt nun der folgende Befehl an:

# gnt-instance add -t drbd -o debootstrap+default -s 2G -n node1:node3 instance0

Der Hostname "instance0" muss im DNS/Hosts-File existieren, sonst gibt der Befehl eine Fehlermeldung aus, die sich allerdings bei einem Aufruf mit den Schaltern "--no-name-check" und "--no-ip-check" abstellen lässt. Hinter "-n" folgen die der VM zugeordneten Hosts, in diesem Fall node1 und node3, wobei der erste Node der primary Host für die VM ist. Die "htools" sind eine Sammlung von Programmen, um die Auslastung der Nodes und die Verteilung der VMs zu optimieren. So ist "hbal" der Balancer, der die nötigen Umzüge der VMs berechnet und ausführt. Die Strategie dafür berechnet "hail", das ein in Ganeti dafür vorgesehenes Interface namens IAllocator umsetzt:

# gnt-instance add -t drbd -o debootstrap+default -s 2G --iallocator hail

Da nun ein Debian-System von Grund auf installiert wird, dauert es schon mal eine Viertelstunde, bis der Befehl abgeschlossen ist. Mit »gnt-cluster console instance0« verbinden Sie sich mit der Konsole des Systems. Wenn das nicht klappt, geben Sie einer Instanz beim Erzeugen die Option "-H kvm:serial_console=true" mit. Normalerweise sollte das aber die Default-Einstellung für KVM sein, die Sie mit »gnt-cluster info | grep serial« überprüfen können.

Serielle Konsole für VMs anlegen

In der virtuellen Maschine muss ein Getty-Prozess laufen, der mit der seriellen Schnittstelle der VM verbunden ist, damit das Login funktioniert. Dies können Sie überprüfen oder korrigieren, indem Sie sich Zugriff auf das Gastdateisystem verschaffen, was in etwa so funktioniert:

# gnt-instance activate-disks instance0
node3:disk/0:/dev/drbd0
# kpartx -a /dev/drbd0
# mount /dev/mapper/drbd0p1 /mnt/

Jetzt können Sie, je nach Distribution, ein Init-File für die serielle Konsole anlegen oder den Getty-Start in "/etc/inittab" festlegen. Detaillierte Informationen über eine VM-Instanz gibt der Befehl »gnt-in-stance info instance0« aus. Danach müssen Sie das Device wieder unmounten und die Disk deaktivieren.

Alternativ zur Speicherung per DRBD erlaubt Ganeti auch andere Backends, zum Beispiel den Shared File Storage, der beispielsweise die Nutzung von NFS erlaubt. Haben Sie den Cluster anfangs ohne Support für Shared File Storage konfiguriert, schalten Sie ihn wie folgt ein:

# gnt-cluster modify --enabled-disk-templates plain,drbd,sharedfile
# gnt-cluster modify --ipolicy-disk-templates plain,drbd,sharedfile

Per Default verwendet Ganeti dafür das Verzeichnis "/srv/ganeti/shared-filestorage". Dort können Sie dann zum Beispiel ein NFS Share mounten. Aus Sicherheitsgründen muss jedes Shared-

File-Verzeichnis in "/etc/ganeti/file-storage-paths" eingetragen sein. Diese Datei muss auf allen Hosts existieren und wird vom Befehl »gnt-cluster redist-conf« nicht übertragen. Sie können sie allerdings mit »gnt-cluster copyfile« auf alle Knoten übertragen. Das voreingestellte Verzeichnis lässt sich mit dem folgenden Befehl auch clusterweit ändern:

# gnt-cluster modify --shared-file-storage-dir=/nfs/
comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2020