Wiss. Rechnen » Dateisysteme
 

Der Cluster verfügt über mehrere Dateisysteme, die verschiedene Zwecke haben. Für normale Nutzer bedeutet dies vor allem, dass Ihre Daten in einem von drei verschiedenen Verzeichnissen (und deren Unterverzeichnissen) liegen. Diese sind:

  • Ihr Home-Verzeichnis unter home/<Ihr Username>. Dieses Verzeichnis wird standardmäßig für alle Ihre Daten genutzt. Es gibt ein Limit von 100 GB pro User. Mehr zu Home-Verzeichnissen finden Sie in Home-Verzeichnis.
  • Das Workspace-Verzeichnis unter /work. Workspaces dienen zur kurzfristigen Speicherung von großen Datenmengen. Jedes Mal, wenn Sie einen Workspace erstellen, wird unter diesem Verzeichnis ein Unterordner für Sie angelegt. Dies ist Ihr Workspace. Workspaces sind von der Größe her unbegrenzt, aber dafür zeitlich beschränkt. Insgesamt steht ein Festplattenplatz von 500 Terabyte zur Verfügung. Mehr dazu im Abschnitt Workspaces.
  • Das Burst-Buffer-Verzeichnis /fast. Dieses Verzeichnis befindet sich physikalisch auf einer Partition mit Solid State Disks (SSDs). Es dient für Rechnungen, bei denen große Datenmengen besonders schnell bewegt werden müssen. Der gesamte Burst Buffer ist nur 32 Terabyte groß. Im Abschnitt Burst Buffer finden Sie Hinweise, wie sie diese Funktion nutzen.

Diese Dateisysteme sind von jedem Knoten des Clusters erreichbar.
Zusätzlich verfügt jeder Knoten noch über lokalen Speicher, auf dem unter anderem temporäre Daten, welche nach Beendigung des Jobs nicht mehr benötigt werden, abgelegt werden. Informationen dazu finden Sie im Abschnitt Temp-Verzeichnis.
Das Zimt verfügt über zusätzliche Speicherdienste die Sie ebenfalls vom OMNI Cluster erreichen können. Beachten Sie dazu die Hinweise unter NAS/XNAS.

Home-Verzeichnis

Als Nutzer haben Sie auf dem Cluster automatisch ein Home-Verzeichnis, in dem Sie Ihre Daten ablegen können. Dieses steht unter /home/<IhrUsername>. Die Größe Ihres Home-Verzeichnisses ist auf 100 GB beschränkt.

Snapshots der Home-Verzeichnisse

Von den Home-Verzeichnissen werden tägliche Snapshots erstellt, diese Snapshots bleiben 30 Tage lang verfügbar. Wenn Sie Daten in Ihrem Home verloren haben, können Sie in das Verzeichnis /home/.snapshots wechseln. In diesem Ordner sind die täglichen Snapshots gespeichert, jeder in einem eigenen Unterordner. Achtung: diese Snapshots sind nicht als verlässliche Backups anzusehen. Wir empfehlen, dass Sie Ihre Daten zusätzlich selbst auf einem anderen Rechner sichern, um sicherzugehen.

Sie können Dateien, die Sie wiederherstellen wollen, einfach in ihr normales Home-Verzeichnis zurückkopieren:

cd ./home/.snapshot/daily_<Datum>_0010/<Ihr Username>
cp <Datei oder Dateien> <Ihr Home-Verzeichnis>

Beispiel:

cd /home/.snapshot/daily.2020-08-04_0010/demo_user/
cp file1 file2 /home/demo_user

Um Ordner und deren Inhalte (rekursiv) zu kopieren nutzen Sie die Option -r. Bitte beachten Sie, dass beim Kopieren, vor allem beim Kopieren von ganzen Ordnern, potenziell Dateien überschrieben werden können. Der Befehl cp bietet Optionen wie z.B. -i oder -n, um dies genauer zu kontrollieren. Mit man cp können Sie sich die Hilfefunktion anzeigen lassen.

Beispiel: einen Ordner exampledir zurückkopieren und bei jeder existierenden Datei nachfragen ob diese überschrieben werden soll

cd /home/.snapshot/daily.2020-08-04_0010/demo_user/
cp -i -r exampledir /home/demo_user

Beispiel: alle versehentlich gelöschten Dateien des Ordners exampledir zurückkopieren ohne existierende Dateien zu überschreiben

cd /home/.snapshot/daily.2020-08-04_0010/js056demo_user352/
cp -n -r exampledir /home/demo_user

Achtung: auf dem HoRUS-Cluster konnten alle Nutzer die Home-Verzeichnisse jedes anderen Nutzers lesen. Dies ist auf dem OMNI-Cluster nicht mehr der Fall. Sie können natürlich weiterhin selbst mit dem Befehl chmod (siehe Linux-Grundlagen) Dateien und Unterordner Ihres Heimverzeichnisses für andere Personen freigeben.

Workspaces

Für Ihre Rechenjobs empfiehlt es sich, nicht das Home-Verzeichnis zu verwenden, sondern einen sogenannten Workspace anzulegen. Dies hat zwei Vorteile: zum einen gibt es für Workspaces keine Größenbeschänkung, zum anderen befinden sie sich physikalisch auf Festplatten mit einer schnelleren Anbindung. Es gibt für Workspaces eine zeitliche Beschränkung von 30 Tagen: nach Ablauf der Frist wird der Workspace gelöscht. Sie können diese Frist allerdings bis zu drei Mal verlängern.

Achtung: es werden keine automatischen Backups von Workspaces erstellt!

Workspaces anlegen und verlängern

Sie können einen neuen Workspace anlegen mit dem Befehl:

ws_allocate <WS-Name> <Dauer>

wobei die Dauer in Tagen angegeben wird. Die Maximaldauer ohne nachträgliche Verlängerung beträgt 30 Tage.

Achtung: wenn Sie die Dauer weglassen, wird der Workspace nur für einen Tag angelegt.

Der Workspace wird in einem Unterordner des Verzeichnisses /work/ws-tmp/ erstellt und setzt sich aus Ihrem Usernamen und dem von Ihnen angegebenen Workspace-Namen zusammen. Der Workspace ist wie jeder normale Ordner auch mit cd erreichbar. Im folgenden Beispiel:

$ ws_allocate test1 4
Info: creating workspace.
/work/ws-tmp/demo_user-test1
remaining extensions  : 3
remaining time in days: 4

sehen Sie, dass ein Workspace namens test1 für zunächst 4 Tage angelegt wurde.

Wenn sie einen bestehenden Workspace verlängern möchten, geben Sie

ws_extend <WS-Name> <Dauer>

mit dem Namen eines bereits bestehenden Workspaces und einer Zeitdauer ein. Sie können den Workspace insgesamt drei Mal um jeweils bis zu 30 Tage verlängern. Wenn Sie den Namen eines noch nicht existierenden Workspace eingeben, wird dieser neu angelegt, als ob Sie ws_allocate verwendet hätten.

Der ws_allocate-Befehl verfügt noch über weitere Funktionen, die Sie sich mit man ws_allocate anzeigen lassen können.

Dateisystem manuell wählen

Im Gegensatz zu HoRUS können Sie bei OMNI das Dateisystem für den Workspace auswählen. Das Dateisystem für die normalen Workspaces hat im Workspace-Mechanismus den Namen work, der weiter unten beschriebene Burst Buffer hat die Bezeichnung fast. Mit dem Befehl ws_list -l können Sie die Dateisysteme anzeigen lassen.

Bei ws_allocate und ws_extend können Sie mit der Option -F angeben, wo Sie den Workspace anlegen möchten. Wenn Sie -F nicht verwenden, wird der Default (work) verwendet:

ws_allocate -F [work|fast] <WS-Name>  <Dauer>
ws_extend -F [work|fast] <WS-Name>  <Dauer>

Achtung: wenn Sie einen Workspace verlängern, müssen Sie dasselbe Dateisystem angeben wie beim ursprünglichen ws_allocate. Das heißt, wenn Sie z.B. einen Workspace mit ws_allocate -F fast angelegt haben, müssen Sie ihn auch mit ws_extend -F fast verlängern. Falls Sie den Workspace ursprünglich ohne -F angelegt haben, wurde der Default (work) verwendet und Sie müssen dies nicht nochmal angeben.

E-Mail-Benachrichtigungen

Der Workspace-Mechanismus kann Ihnen eine E-Mail schicken, bevor der Workspace ausläuft.

Wir empfehlen dass Sie diese Funktion immer nutzen, um Datenverluste zu vermeiden.

Der entsprechende Befehl lautet:

ws_allocate <WS-Name> <Dauer> -r <Anzahl Tage> -m <Ihre E-Mail-Adresse>

Mit der Option -m spezifizieren Sie die Adresse und mit -r den Abstand (in Tagen) bis zum Ablauf, an dem Sie benachrichtigt werden möchten. Wenn Sie die E-Mail-Adresse nicht jedes Mal von Hand eingeben möchten, können Sie in Ihrem Home-Verzeichnis eine Datei namens .ws_user.conf anlegen. In dieser schreiben Sie einen Text nach dem folgenden Muster:

mail: demo_user@uni-siegen.de

Beachten Sie bitte, dass nach dem Doppelpunkt ein Leerzeichen sein muss (YAML-Syntax).

Sie können auch einen Kalendertermin erzeugen mittels

ws_send_ical <WS-Name> <E-Mail-Adresse>

Workspaces anzeigen

Sie können Ihre bestehenden Workspaces anzeigen lassen, indem Sie

ws_list

eingeben.

Workspace freigeben (löschen)

Wenn Sie einen Workspace nicht mehr benötigen, können Sie ihn freigeben. Achtung: die Dateien in diesem Workspace sind dann nicht mehr zugänglich!

Dazu verwenden Sie den Befehl:

ws_release <Workspace-Name>

Workspace wiederherstellen

Abgelaufene Workspaces sind wie beschrieben nicht mehr zugänglich, werden aber nicht sofort gelöscht. Abgelaufene oder mittels ws_release freigegebene Workspaces werden bis zu 10 Tage aufbewahrt, bevor sie endgültig gelöscht werden. So ist es möglich, die Daten in versehentlich abgelaufenen Workspaces wiederherzustellen. Dazu gehen Sie wie folgt vor:

  1. Sie können sich eine Liste mit Ihren abgelaufenen Workspaces anzeigen lassen mittels:

    $ ws_restore -l 
    <user>-<alter-workspace>-<nummer>
            unavailable since Tue Jun 12 09:30:01 2018
  2. Erzeugen Sie einen neuen Workspace:

    ws_allocate <neuer-workspace> <duration>
  3. Stellen Sie den abgelaufenen Workspace mit dem Befehl ws_restore in dem neuen Workspace wieder her. Dazu benötigen Sie den kompletten Namen des alten Workspace (inklusive Ihres Usernamens und einer Kennnummer), den Sie wie bereits erwähnt mittels ws_restore -l angezeigt bekommen.

    ws_restore <user>-<alter-workspace>-<nummer> <neuer-workspace>

    Der neue Workspace wird den alten in einem Unterverzeichnis enthalten.

  4. Tippen Sie den angezeigten Text ab. Dies dient dazu, dass Workspace-Wiederherstellung nicht automatisiert werden kann.

Burst Buffer

Der OMNI-Cluster verfügt über einen sogenannten Burst Buffer, das heißt einen schnelleren Datenspeicher. Dieser besteht aus SSDs und ist 32 Terabyte groß.

Bei der Benutzung des Burst Buffer sind zwei Sachen zu beachten:

  • Der Burst Buffer ist weniger stabil als die anderen Dateisysteme, deshalb sollten Sie die Daten nach Ihrer Rechnung so schnell wie möglich in einen regulären Workspace verschieben.
  • Der Burst Buffer ist mit 32 TB nicht allzu groß und für alle Nutzerinnen und Nutzer des Clusters zugänglich. Bitte benutzen Sie ihn nur, wenn Sie die höhere Verarbeitungsgeschwindigkeit wirklich brauchen.

Anlegen eines Workspaces im Burst Buffer

Funktional sind Ihre Verzeichnisse auf dem Burst Buffer ebenfalls Workspaces. Deshalb funktionieren die meisten Befehle wie im vorherigen Abschnitt beschrieben. Um einen Workspace im Burst Buffer zu erstellen, verwenden Sie ws_allocate wie sonst auch, Sie müssen nur zusätzlich angeben, dass das Dateisystem unter /fast verwendet werden soll.

ws_allocate -F fast <WS-Name> <Dauer>

Beachten Sie, dass Sie bei einem ws_extend dann ebenfalls zwangsläufig die Option -F fast angeben müssen.

Sie können die Liste aller Dateisysteme, auf denen Sie Workspaces erstellen können, anzeigen lassen mit dem Befehl ws_list -l:

$ ws_list -l
available filesystems:
fast
work (default)

Temp-Verzeichnis

Viele Anwendungen legen temporäre Dateien an, was Sie als Nutzer nicht immer mitbekommen, weil das Betriebssystem hierfür standardmäßig ein Temp-Verzeichnis (/tmp) bereitstellt. Jeder Knoten hat ein Temp-Verzeichnis auf seinem lokalen Speicher. Andere Knoten können darauf nicht zugreifen. Temporäre Dateien werden nach Programmende nicht mehr benötigt und normalerweise von den Anwendungen selbst gelöscht.

In der Vergangenheit kam es gelegentlich dazu, dass Datein im Temp-Verzeichnis nach einem Job nicht sauber gelöscht wurden und das Verzeichnis mit der Zeit volllief. Wir haben nun einen Mechanismus implementiert, der dieses Verzeichnis nach dem Job automatisch aufräumt, ohne andere laufende Jobs zu beeinträchtigen.

Die meisten Anwendungen verwenden gänige Umgebungsvaraiblen um den Ablageort temporärer Daten zu bestimmen und bedürfen daher keiner Anpassung. Sollte das bei Ihrer Anwendung oder Ihren selbst geschriebenen Programmen und Skipten nicht der Fall sein, bitten wir Sie folgende Hinweise zu beachten:

  • Beim Jobstart wird nun auf jedem beteiligten Compute-Knoten (zB. hpc-node300) unter /tmp ein neues Verzeichnis angelegt, welches sich eindeutig Ihrem Job zuordnen lässt (/tmp/slurm_<nutzerkennung>.<job-id>). Nachdem der Job endet, wird dieses temporäre Verzeichnis wieder gelöscht.

  • Der Pfad zu diesem temporäre Speicherort ist in den Umgebungsvariablen $TMP, $TEMP, $TMPDIR, $TMP_DIR, $TMPSESS hinterlegt.
    Bei Anwendungen, wo Sie als Nutzer explizit ein temporäres Verzeichnis angeben, z.B. in einer Konfig-Datei oder über eine Optionen beim Programmaufruf, sollten sie dies entsprechend anpassen (bspw. -tmp_dir=$TMP / -temp=$TMP).
    Weiterhin müssen Sie Skripte anpassen, die direkt auf das Verzeichnis /tmp zugeifen. Entsprechende Stellen sind durch eine Abfrage der Umgebungsvariablen TMP zu ersetzen.

  • Beim Starten einer Shell in einem interactiven Job (srun --pty ... /bin/bash) müssen Sie die Umgebungsvariablen händisch setzen. Z.B. mit folgendem Kommando: export TMP=/tmp/slurm_${SLURM_JOB_USER}.${SLURM_JOB_ID}

  • Sie können die Verwendung des temporären Ordners prüfen, indem Sie sich während der Jobausführung auf einen der daran beteiligten Compute-Knoten verbinden und nachsehen, wo Ihre Dateien landen. Ihre Dateien sollten sich nur unter /tmp/slurm_<nutzerkennung>.<job-id> befinden, aber nicht direkt unter /tmp.

    Lassen Sie sich ihre Jobs anzeigen, dort finden Sie auch eine Liste der am Job beteiligten Knoten:
    squeue -u <nutzerkennung>
    Verbinden auf einen Knoten, auf dem Ihr Job läuft:
    ssh hpc-nodeXXX
    Finden Sie unter allen lesbaren Daten Ihre Dateien:
    find /tmp ! -readable -prune -o -user <nutzerkennung> -print
    Schließen Sie die Verbindung zum Compute-Knoten:
    exit
    Alle Daten, die direkt unter /tmp liegen, werden nicht automatisch bereinigt. Prüfen Sie in diesem Fall, ob Ihre Skripte oder Anwendungen so konfiguriert werden können, dass die Daten in Ihrem temporären Verzeichnis landen, oder löschen Sie diese Daten am Jobende manuell (siehe nächster Punkt).

  • Sollte es nicht möglich sein, temporäre Ausgaben in den entsprechenden Ornder umzuleiten, sollten Sie am Jobende Ihre Daten manuell löschen. Dazu können Sie folgende Kommandos am Ende Ihres Jobskriptes aufnehmen oder in ein separates Skript packen, welches Sie am Ende Ihres Jobs aufrufen:

    job_list=`/cm/shared/apps/slurm/current/bin/squeue --noheader --format=%i --user=$USER --node=localhost` || exit 0
    if [ -z "$job_list" ] ; then
      rm -rf /tmp/.
    fi

    Damit werden ausschließlich Ihre Daten unter /tmp gelöscht und auch nur, wenn Sie keinen anderen Job mehr auf dem Knoten laufen haben.

Anbindung an die Speicherdienste des ZIMT (NAS/XNAS)

Um den Transfer von Daten für die Nutzer*innen des Clusters OMNI zu erleichtern, besteht die Möglichkeit, die vom ZIMT bereitgestellten Speicherdienste NAS und XNAS zu nutzen. Da diese Option ausschließlich für den Transfer von Daten zum oder vom OMNI-Cluster genutzt werden soll, sind die Netzwerklaufwerke nur über die Login-Knoten erreichbar. Des Weiteren ist zu beachten, dass wir von den Netzwerklaufwerken kein automatisches Backup erstellen, die Nutzer*innen sind hierfür selber verantwortlich! Bei dem Dienst NAS ist keine Freigabe für Dritte möglich, das XNAS kann allerdings gruppenintern zum Austausch von Dateien verwendet werden.

Nutzer*innen, welche die Speicherdienste beantragt haben, müssen, um Zugriff zu erhalten, den Befehl kinit ausführen und anschließend das Passwort ihres Zimt-Accounts eingeben:

$ kinit
Password for <Username>@UNI-SIEGEN.DE:

Bitte beachten Sie, dass die Eingabe des Passworts nicht angezeigt wird.

Die Netzwerklaufwerke sind dann unter den Pfaden /nas/<Username> für NAS bzw. /xnas/<Username> erreichbar.

Aktualisiert um 17:04 am 8. Februar 2021 von Jan Steiner