Exportieren Sie gcsfuse mount, damit ein dritter Client auf Dateien in einem Speicher-Bucket zugreifen kann.

Exportieren Sie gcsfuse mount, damit ein dritter Client auf Dateien in einem Speicher-Bucket zugreifen kann.

Ich mounte einen Storage Bucket in ein lokales Verzeichnis. /share Dann versuche ich, dieses Verzeichnis – nun mit dem Inhalt des Object Stores gefüllt – einer anderen Maschine zugänglich zu machen. Ziel ist, dass diese andere Maschine selbst keinen gcsfuse-Client verwenden muss, sondern auf NFS oder ähnliches zurückgreifen kann.

Ich habe versucht, das gcsfuse-Verzeichnis mit NFS freizugeben /share. Die NFS-Freigabe hat funktioniert. Aber als ich den Cloud-Speicher-Bucket in die NFS-Freigabe eingebunden habe, hat der Remote-Computer – der NFS-Client – ​​die Dateien aus dem Objektspeicher nie gesehen.

Die beiden Teile der Kette arbeiten also unabhängig voneinander:

  • Ich kann einen Objektspeicher in einem lokalen Verzeichnis bereitstellen.
  • Ich kann ein Verzeichnis per NFS auf eine zweite Maschine exportieren.

Aber ich kann den Inhalt des Objektspeichers NICHT an die zweite Maschine „weiterleiten“.

All dies geschieht innerhalb eines Kubernetes-Clusters.

Um NFS aus der Gleichung auszuschließen, habe ich das Sidecar-Muster verwendet, um es /shareeinem zweiten Container im selben Pod zugänglich zu machen. Gleiches Ergebnis: Der zweite Container sieht nie den Inhalt des Objektspeichers.

Ich weiß nicht viel über das (gcs)fuse-Dateisystem, aber es wird oft als „User-Space“-Dateisystem bezeichnet. Ist das der Grund, warum ich den Inhalt einer gcsfuse-Einbindung nicht an eine zweite Maschine weitergeben kann?

Bearbeiten: Ich habe beim Mounten des Objektspeichers mehrere verschiedene Optionen ausprobiert: hier sind sie:

gcsfuse -o nonempty -o allow_other --implicit-dirs --gid 0 --uid 0 --file-mode 777 --dir-mode 777 video-storage-dev /share
gcsfuse -o nonempty -o allow_other video-storage-dev /share

Antwort1

Mögliche Lösungen für dieses Problem:

  1. Möglicherweise ist die Konfigurationsoption in der Fuse-Konfiguration nicht user_allow_otheraktiviert. Stellen Sie dazu sicher, dass in der Datei /etc/fuse.confdie folgende Zeile unkommentiert ist: user_allow_other, und versuchen Sie es dann erneut.

  2. Wenn das oben genannte nicht funktioniert, sollten Sie einen Blick aufdiese Unix-Frage, das sich mit dem Exportieren von FUSE über NFS befasst. Kurz gesagt: Die meisten Linux-Distributionen erlauben nicht das Exportieren eines FUSE-gemounteten FUSE-Dateisystems über NFSv2 oder NFSv3, daher müssen Sie NFSv4 verwenden.

verwandte Informationen