Einbinden des internen Verzeichnisses in den eingebundenen Ordner mit NFS

0

Ich stehe vor dem folgenden Szenario:

Ich mounte einen Ordner /datavon an host1.

Dieser Ordner hat ein Unterverzeichnis: /data/internal/config.

Ich möchte den Mount-Pfad dieses Verzeichnisses überschreiben, aus dem er entnommen werden soll host2.

Ich verwende NFSv4. Ist das möglich?

Motivation : Ich installiere /dataauf vielen Computern, sodass jeder von ihnen den /configOrdner vom Remote-Host abrufen muss. Der /configOrdner ist ziemlich schwer, sodass das System ernsthaft belastet wird (Größe des Verzeichnisses * Anzahl der Computer). Ich möchte diesen Ordner an einem näheren Ort bereitstellen und die Bereitstellung aller Computer an diesem näheren Ort überschreiben, um die Netzwerklast zu verringern.

Anton.P
quelle

Antworten:

0

Nachdem Sie montieren /dataaus host1, können Sie etwas anderes über montieren /data/internal/config(auch wenn dieses Verzeichnis auf host1nicht leer ist):

mount -t nfs host2:/foo/bar/config /data/internal/config

Zwei Probleme:

  1. Sie müssen einhängen, config nachdem Sie einhängen data. Sie sollten die Bereitstellung aufheben, configbevor Sie die Bereitstellung aufheben data. Verwenden Sie diesen Ansatz oder konfigurieren Sie die systemdEinheitenabhängigkeiten ordnungsgemäß (falls zutreffend).
  2. Sie müssen diesen zusätzlichen Mount auf jedem Computer ausführen / konfigurieren.

Das erste Problem kann umgangen werden. Anstatt von host2bis zu /data/internal/configmounten, mounten Sie es in ein leeres Verzeichnis, das auf jeden Fall lokal vorhanden ist (erstellen Sie es einfach) /mnt/config. Dann bereiten Sie einen richtigen Symlink vor auf host1:

mv /whatever_the_share_is/internal/config /elsewhere  # just to free the name 'config'
ln -s /mnt/config /whatever_the_share_is/internal/config

Dieser Symlink kann deaktiviert sein host1(oder nicht; Sie sollten wissen, ob host1diese Konfiguration dort benötigt wird; platzieren Sie die Konfiguration in /mnt/configon host1oder hängen Sie sie ab, host2wenn dies das Problem ist, sodass der Symlink gültig ist).

Auf jedem Computer, der die Freigabe bereitstellt, wird der Symlink lokal aufgelöst. Es zeigt auf local, von /mnt/configdem aus entweder bereits host2oder irgendwann gemountet wurde. Jetzt spielt die Reihenfolge der Montage keine Rolle.


Die zweite Ausgabe bleibt bestehen. Vielleicht erwartet man Sie neu konfigurieren können nur host1 alle Montiermaschinen umleiten, so erhalten sie config direkt aus host2. Ich glaube nicht, dass dies möglich ist (aber ich werde jede vernünftige Lösung befürworten, die mir das Gegenteil beweist).

Kamil Maciorowski
quelle