-- Main.heidem07 - 19 Sep 2022

SoftwareprojektClusterManagement2022Docu

Gruppe Weiß

0) Organisation und Projektplanung

Die Aufgabenstellung für Gruppe Weiß bestand im Wesentlichen darin, die virtuellen Nodes mit Software auszustatten und so zu konfigurieren, dass in Zukunft die Workloads der anderen Gruppen darauf ausgeführt werden können. Zu diesem Zweck arbeiteten wir exemplarisch auf dem virtuellen LDom-Node hpc104, auf das wir vom Gateway-Node styx aus Zugriff hatten.

Die Planung und Durchführung des Projekts erwies sich als schwieriger als erwartet, da vielfach unerwartete Hindernisse aufgetreten sind. Zunächst hatte sich unsere Gruppengröße und die damit verbundene Leistungsfähigkeit noch vor Beginn der Projektarbeit von fünf Personen auf nur zwei reduziert. Beim offiziellen Projektstart erfuhren wir daraufhin, dass der Cluster, mit dem wir arbeiten sollten, aufgrund der hohen Hitze in den Sommermonaten beschädigt worden war und nicht eingesetzt werden konnte, bis die Belüftungsanlage repariert worden ist. Der dafür zuständige Techniker war jedoch zu diesem Zeitpunkt nicht verfügbar, sodass wir gezwungen waren, zu warten. Auch das Ausweichsystem - der VM-Cluster des Informatikinstituts - war leider nicht in einem nutzbaren Zustand.

Als wir dann schließlich Zugriff auf das VM-System erhielten, ergaben sich unvorhergesehene Schwierigkeiten mit dem von uns gewählten Basis-Image des Betriebssystems (siehe Kapitel 1). Da es sich dabei um einen inoffiziellen Port der Software handelt, gab es leider nur sehr wenig und unzureichende Dokumentation, sodass uns nicht viel übribig blieb außer eigenhändig zu experimentieren. Auch die Dokumentation der Projektgruppen vergangener Jahre erwies sich als teils unvollständig, veraltet und kryptisch, weshalb sie für uns nur eine geringe Hilfe darstellte.

1) Betriebssystem

Als Betriebssystem für die Nodes verwenden wir den inoffiziellen Sparc64 Debian Port von dieser Seite, da der offizielle Support für Sparc-Prozessoren bereits vor Jahren eingestellt wurde.

Aktuell ist das Stable-Image von Debian 9 (Stretch) installiert, da es Probleme mit den neueren Versionen 10 (Buster) und 11 (Bullseye) gab. Die Installationsversuche beider Versionen scheiterten mit demselben Fehler, der nahe legt, dass benötigte Kernel-Module nicht vorhanden sind:

 [!!] Partition disks:   Software RAID not available:    The current kernel 
doesn't seem to support software RAID (MD) devices. This should be
solved by loading the necessary modules.
[!!] Partition disks:   Logical Volume Manager not available:   The current
kernel doesn't support the Logical Volume Manager. You may need to load
the lvm-mod module.

[!!] Partition disks:   The attempt to mount a file system with type ext4
in /dev/vdiska2 at / failed. You may resume partitioning from the
partitioning menu. Do you want to resume partitioning?

Der Versuch, die fehlenden Module bei der Installation bereitzustellen, ist ebenfalls gescheitet. Zukünftig soll der Custom Kernel von Gruppe Grün in ein dediziertes Image für den Cluster integriert werden, um dieses Problem zu umgehen. Sobald dieser Kernel existiert, kann ein erneuter Installationsversuch einer neueren Debian-Version erfolgen.

Der derzeit installierte und funktionale Kernel ist auf Version 4.15.0-2-sparc64-smp.

2) Verbindung mit Cluster Nodes

Um per Kommandozeile Zugriff auf die LDoms zu erhalten, muss zunächst der eigene SSH-Key hinterlegt werden. Darum kümmert sich ein autorisierter Administrator (beispielsweise Barry Linnert). Falls noch nicht vorhanden, kann ein neues SSH-Key-Paar wie hier beschrieben generiert werden.

Sobald die Keys eingerichtet wurden, kann eine SSH-Verbindung zum Cluster aufgebaut werden. Dazu muss der Nutzer sich im Netwerk bzw. im VPN der Freien Universität Berlin befinden. Danach muss zuerst eine Verbindung mit styx und von dort aus eine Verbindung mit dem gewünschten Node hergestellt werden:
$ ssh <username>@styx.imp.fu-berlin.de
$ ssh <username>@<node>

3) Konfiguration der Paketquellen

Da es von den LDom-Nodes keine direkte Verbindung zum Internet gibt, muss für die Installation von Software aus den Debian-Paketquellen ein Proxy herangezogen werden. Zu diesem Zweck ist auf styx ein Squid-Service eingerichtet (/etc/squid/squid.conf), der über die Adresse http://styx:3128 erreichbar ist.

Auf den Nodes muss der Packetmanager apt entsprechend konfiguriert werden, um sich mit dem Proxy-Service zu verbinden. Dazu muss unter /etc/apt/apt.conf.d/ eine neue Config-Datei (bspw. 80proxyconf) angelegt werden, die die folgenden Optionen enthält:
Acquire::http::Proxy "http://styx:3128";
APT::Get::AllowUnauthenticated "true";

Weil es sich bei Sparc64 um einen inoffiziellen Debian-Port handelt, müssen zudem die Paketquellen modifiziert werden. Dazu müssen unter /etc/apt/sources.list die bestehenden Quellen entfernt bzw. auskommentiert werden und stattdessen diejenigen aus der Sparc64-Dokumentation eingefügt werden. Hierbei muss außerdem jeweils der Parameter [trusted=yes] ergänzt werden, damit zunächst die Signatur der Repositorien ignoriert werden kann:
...

deb [trusted=yes] http://deb.debian.org/debian-ports unstable main deb-src [trusted=yes] http://deb.debian.org/debian unstable main deb [trusted=yes] http://deb.debian.org/debian-ports unreleased main deb-src [trusted=yes] http://deb.debian.org/debian-ports unreleased main

Jetzt kann ein initiales Update der Paketquellen erfolgen. Ein vollständiges System-Upgrade ist ebenfalls möglich, allerdings nicht ohne Risiko, da auf diese Weise die Stabilität gefährdet ist:
# apt-get update
# apt-get upgrade

OPTIONAL - Globale Proxy Settings:

Um in der Lage zu sein, den Squid-Proxy nicht nur für apt sondern auch für andere Programme (z.B. wget, curl, etc.) zu nutzen, kann eine systemweite Proxy-Einstellung unter /etc/profile eingerichtet werden. Dazu müssen die folgenden Zeilen ergänzt werden:
...

# Proxy settings
http_proxy=http://styx:3128
https_proxy=http://styx:3128
export http_proxy
export https_proxy

Allerdings ist es abghängig von den Squid-Einstellungen, welche Domains angesteuert werden dürfen, da an dieser Stelle eine Filterung vorgenommen wird. Ein Nutzer mit entsprechenden Berechtigungen muss daher unter Umständen auf styx unter /etc/squid/squid.conf die Ausnahmen für gewünschte Domains manuell hinzufügen.

4) Installation von Software

Folgende Software kann auf den Knoten problemlos mithilfe des Paketmanagers apt installiert werden:

# apt install fakeroot man-db manpages build-essential ncurses-dev libssl-dev bc flex libelf-dev bison wget

mpi - Es wurde erfolgreich die Version 4.1.4 vom aktuellen stable Branch von OpenMPI installiert. Hierzu wurden die Schritte aus dieser Installationsanleitung angewendet. Für den Fall, dass diese in Zukunft nicht mehr verfügbar sein sollte sind hier noch einmal die erforderten Schritte aufgelistet:

  • Download der aktuellen OpenMPI -Version
# wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.4.tar.bz2
  • Archiv entpacken
# tar -jxf openmpi-4.1.4.tar.bz2
  • Konfigurieren, kompilieren, installieren (Um den Prozess zu beschleunigen, können die make-Befehle auf mehreren Threads ausgeführt werden. Dazu einfach die Flag -j4 für vier Threads hinzufügen)
# ./configure --prefix=$HOME/opt/openmpi 
# make all
# make install
  • Installation für alle Nutzer
# cp -a ~/opt/openmpi/. /usr/local/

Es stehen nun die üblichen MPI-Befehle zur Verfügung.

Folgende Software hat bei der Installation Probleme verursacht:

perf - Das Kommandozeilenwerkzeug perf ist normalerweise Teil des linux-tools Meta-Paketes, das sich allerdings nicht in den Sparc64 Paketquellen befindet. Da perf in einer Version vorliegen muss, die mit dem aktuell installierten Kernel korrespondiert, könnte diese theoretisch manuell kompiliert werden. Leider ist der Quellcode des Sparc64-Debian9-Kernels nicht öffentlich zugänglich, sodass perf frühestens in Verbindung mit dem Custom-Kernel von Gruppe Grün installiert werden kann.