Zum Inhalt

File Services

Die Fileservices der Rechnerbetriebsgruppe sind grundsätzlich unterteilt in Homedirectories (Homes) und Volumes. Dabei sind die Homes zum Speichern von persönlichen Daten und Volumes für gemeinsam genutzte Daten vorgesehen. Beide sind in ihrer Größe durch Quotas beschränkt.

Home Ordner

Interne Home

Zu jedem Account wird ein Home zum Speicherung privater Dateien angelegt, z.B. die .bashrc oder private SSH-Schlüssel. Für Projekte mit anderen Benutzern oder lokal installierte Software sollten Volumes verwendet werden. Das Home ist innerhalb der TechFak überall verfügbar und wird von Netboot unter /homes/USER per Default gemountet. Beim Zugriff von extern ist es aus Sicherheitsgründen nicht erreichbar. Dafür existiert allerdings der remote-Ordner.

remote-Ordner

  • Beim remote-Ordner handelt es sich um ein normales und damit permanentes Verzeichnis.
  • Es befindet sich immer unter /media/remote/USER.
  • Es spielt eine besondere Rolle im Zusammenhang mit files.techfak.de, da von außerhalb des TechFak-Netzwerkes nur dieser Ordner zugänglich ist.
  • Der Speicherverbrauch wird mit dem des home-Verzeichnisses zusammengerechnet.

GPU-Cluster

Auf dem GPU-Cluster gibt es ein separates Home auf einen eigenen Fileserver. Dieses ist vom anderen Home und von allen PCs mit Netboot abgekapselt. Durch den eigenen Fileserver ist einen deutlich größeren Datendurchfluss mit geringerer Latenz möglich.

Volume

Volumes können auf zwei verschiedene Arten genutzt werden, entweder als Projekt-Volume oder als Software-Volume. Sie befinden sich immer in dem Verzeichnis /vol/ und sind meistens mit einer gleichnamigen Unixgruppe verknüpft.

Projekt-Volume

Hierbei handelt es sich um simplen Speicherplatz, den sich verschiedene Leute teilen können um z.B. gemeinsam an einem Projekt oder Übungsaufgaben zu arbeiten. Es gibt quasi keinerlei Limitierungen wann oder wofür ein Volume beantragt werden kann.

Um ein Projektvolume zu beantragen reicht eine Mail mit Begründung an support@techfak.net. Zu einem Volume gehört i.d.R. eine Unixgruppe, in der die Menschen sind, die auf das Volume zugreifen können. Es ist also sinnvoll eine Liste der Personen, die in die Gruppe sollen, gleich mitzuschicken.

Software-Volume

Ein Software-Volume ist für Programme gedacht, welche in den Standard-Paketquellen von Ubuntu

  • gar nicht vorliegen,
  • nur in einer älteren Version vorliegen,
  • nur in einer nicht ausreichenden oder fehlerhaften Version vorliegen (evtl. bei Funktionen, die explizit beim kompilieren aktiviert werden müssen) oder
  • aus lizenztechnischen Gründen nicht vorliegen können (also unfreie Software wie Adobe-Produkte).

Zu jedem Software-Volume gehört ein RCINFO-Paket, um Benutzern eine möglichst einfache Auswahl der Software zu ermöglichen.

Software, die mehr als ein User benutzt, sollte nie anders als über ein Volume und RCINFO genutzt werden! Wenn Du manuell Umgebungsvariablen setzt, kann es dazu führen, dass bei Änderungen der Software der ganze Account nicht mehr richtig  funktioniert. Wenn ein Programm per RCINFO eingebunden ist, kann man entsprechende Variablen für alle Abonnenten reparieren.

Quota

Um sicher zu gehen, dass unser Speicherplatz immer für alle Nutzer:innen ausreicht, haben Homes und Volumes sogenannte Quotas. Das sind Speicherlimits, die verhindern, dass mehr als der zugewiesene Speicherplatz belegt wird. Um aber auch sicher zu gehen, dass jeder immer genug Speicherplatz hat, können Mitarbeitende auf Anfrage ein Quota von 100 GiB bekommen. Dazu reicht eine Mail an support@techfak.net. Die Quotas sind momentan wie folgt:

Kategorie Quota
Studierenden Homes 25 GiB
Mitarbeitenden Homes 25 GiB
Auf Anfrage 100 GiB
Volume 10 GiB - 5 TiB, je nach Bedarf.

Bevor das Quota erreicht wird, bekommst Du eine Warnung per Mail. Das aktuelle Quota für ein Verzeichnis lässt sich mit dem Befehl df -h /pfad/zum/verzeichnis anzeigen und wird als 'size' angegeben. Zum Beispiel:

juser@host$df -h /vol/ghc
Filesystem                                    Size   Used  Avail  Use%  Mounted on
vol.nfs.fs.cit-ec.net:/vol/ghc                100G   8.4G  92G    9%    /vol/ghc

Volume beantragen

Wenn Du ein Software- oder Projektvolume benötigst, kann Du es per Mail an support@techfak.uni-bielefeld.de beantragen. Es wird dann ein Volume eingerichtet, in dem Du die entsprechende Software installieren oder Daten speichern kannst. Speziell für Softwarevolumen sind im folgenden weitere Infos:

Softwarevolumen

Du bist der/die Ansprechpartner:in für Nutzer:innen bei Problemen mit der von Dir bereitgestellten Software und sorgst bei Updates innerhalb der Version darum, dass sie zeitnah bereitgestellt werden.

Struktur

Softwarevolumen sind strukturiert nach dem üblichen FHS-Schema:

bin/ Programme des Softwarepaketes
lib/ Bibliotheken des Softwarepaketes
man/ Manpages für die entsprechenden Binaries
share/applications/ .desktop-Files, um GUI-Software ins Menü zu integrieren
doc/ Dokumentation des Softwarepaketes
src/ Quellcode inklusive lokale Patches

Neben diesen Verzeichnissen gibt es noch das TechFak-spezifische .rcinfo mit folgendem Inhalt

.rcinfo/description Beschreibung des Volumes (72 Zeichen), was man bekommt, wenn man das RCINFO-Paket für dieses Volume wählt
.rcinfo/maintainer TechFak-Username wer für dieses Volume verantwortlich ist
.rcinfo/environment Umgebungsvariablen welche benötigt werden, um die Software zu verwenden

Um in diese Struktur zu installieren reicht in den meisten Fällen die Verwendung des Schalters --prefix beim Compilereisatz:

./configure --prefix="/vol/acme" && make && make install

Environmentvariablen

Damit Benutzer:innen die Software, bzw. zwischen unterschiedlichen Versionen auswählen können, benutzt RCINFO kleine Pakete, welche die Environmentvariablen definieren, die notwendig für den Betrieb der Software sind.

Das von uns bereitgestellte Standardpaket sieht wie folgt aus (wobei ${RCINFO_PACKAGE_NAME} durch den Namen Deines Volumes ersetzt wird):

PATH=/vol/${RCINFO_PACKAGE_NAME}/bin MANPATH=/vol/${RCINFO_PACKAGE_NAME}/man XDG_DATA_DIRS=/vol/${RCINFO_PACKAGE_NAME}/share

Sollte es nicht vermeidbar sein, dass Deine Volumekonfiguration von diesem Standardenvironment abweicht, so kannst Du die Defaults überschreiben; so lassen sich auch zusätzliche Variablen definieren oder nicht benötigte auslassen:

PATH="/vol/chaosvolume/ACME Programme" LD_LIBRARY_PATH="/vol/chaosvolume/ACME Bibliotheken" JAVA_HOME="/vol/chaosvolume/ACME Java"

Übliche Variablen:

Variable Funktion
PATH Suchpfad für Programmbinaries befinden
LD_LIBRARY_PATH Suchpfad für Programmbibliotheken
MANPATH Suchpfad für manpages
XDG_DATA_DIRS Suchpfad für Menüeinträge der grafischen Benutzeroberfläche

Neuere Versionen

Bei neuen Versionen bekommst Du auf Anfrage ein weiteres Volume (z.B. /vol/NAME-1.2.3) für den Parallelbetrieb. Der Default /vol/NAME sollte jeweils auf die Version zeigen, die die meisten Benutzer benötigen und z.B. nicht während eines Semesters oder vor wichtigen Terminen, wie Projektdemos, geändert werden.

Alternative Struktur

Mein (proprietäres) Softwarebundle ist aber nicht strukturiert, sondern kommt flach (alles in einem Ordner) daher. Kann ich nicht einfach ein flaches Volume bekommen?

Nein.

Flache Volumes für Softwarepakete erschweren unnötig die Pflege der Volumes und dazugehörigen RCINFO-Pakete.

Nicht gewartete RCINFO-Pakete führen dazu, dass Benutzer:innen Programme direkt aus den Unterverzeichnissen starten, oder sich die langen Pfade in Ihre Konfiguration übernehmen, mit den entsprechenden negativen Folgen bei Änderungen (z.B. Upgrades oder Umbenennung der Binaries).

Die dadurch auftretenden Fehler betreffen nicht nur die entsprechende Software, sondern führen auch zu fehlerhaftem Betrieb des gesamten Systems. Oftmals bleiben die Probleme auch lange Zeit unentdeckt, so dass der Zusammenhang nicht unmittelbar hergestellt werden kann, oder der Zustand bei Benutzer:innen als normal betrachtet wird (''Firefox stürzt immer ab, also nehme ich Opera™'').

Sollte Deine Software unstrukturiert daher kommen, empfehlen wir sie in einem Unterordner in das Verzeichnis lib/ zu legen:

/vol/acme/lib/alles-in-allem-15.0_de

und in bin/ einen Symlink auf die verfügbaren Binaries zu setzen:

/vol/acme/bin/feuerrot → /vol/acme/lib/alles-in-allem-15.0_de/feurrot-de-15.0.98 /vol/acme/bin/marineblau → /vol/acme/lib/alles-in-allem-15.0_de/marineblau-de-15.0.22

Ebenso können selbstverständlich kurze Bash-Skripte als Starter dienen.