![Gemeinsam genutztes Blockgeräte-Dateisystem (Cluster-Dateisystem ohne Netzwerk)](https://rvso.com/image/567644/Gemeinsam%20genutztes%20Blockger%C3%A4te-Dateisystem%20(Cluster-Dateisystem%20ohne%20Netzwerk).png)
Gibt es ein Dateisystem, das mehrfach gemountet werden kann und gleichzeitigen Dateizugriff für Linux unterstützt? Im Grunde möchte ich so etwas wie ein Cluster-Dateisystem, aber ohne die Notwendigkeit eines laufenden Netzwerks für einen verteilten Sperrmanager. Das kann in Verbindung mit virtuellen Maschinen sehr praktisch sein, die Daten mit dem Host oder einer anderen VM teilen können, ohne dass eine Netzwerkverbindung hergestellt werden muss. Dies möchte ich vermeiden, um die Netzwerkarchitektur sicher zu halten (virtuelle Maschine in DMZ), aber große Dateien gemeinsam zu nutzen. Es muss nicht hochskaliert werden, nur zwei Maschinen, die dasselbe Blockgerät mounten.
Sollte es nicht möglich sein, Informationen zum Sperren von Dateien direkt auf der Festplatte zu haben?
Antwort1
Ich würde vermuten, dass Sie N VMs Zugriff auf dasselbe Blockgerät gewähren können, aber nur schreibgeschützt. Sie bemerken das Wort „Vermutung“.
Wenn eine der VMs anfängt, Dinge zu ändern, kommt es schnell zum Zusammenbruch, da alle Festplatten-Cachings der anderen VMs nun ungültig werden.
Das Problem bei der Speicherung von Dateisperrinformationen auf der Festplatte besteht darin, dass dies bisher noch niemand getan hat. Ohne gründlich darüber nachzudenken, ist die Idee einer atomaren Lese-/Änderungs-/Schreibtransaktion auf einer Festplatte wahrscheinlich das Grundproblem.
Ich schätze, Sie könnten ein typisches, bereits mehrfädiges Dateisystem nehmen, herausfinden, wo die Sperre(n) verwendet wird/werden, und dies in eine Art Lese-/Änderungs-/Schreibvorgang auf der Festplatte ändern.
Das andere Problem beim Lesen/Ändern/Schreiben auf der Festplatte besteht darin, dass bei häufigem Sperren die Leistung ziemlich nachlässt, da für jede Änderung an irgendetwas auf der Festplatte Folgendes erforderlich ist:
- Platte sperren (suchen, lesen/ändern/schreiben)
- Lesen Sie den Sektor, den Sie ändern möchten (suchen/lesen)
- Nehmen Sie die Änderung vor und schreiben Sie (schreiben Sie)
- Festplatte entsperren (suchen, lesen/ändern/schreiben)
Es hilft wahrscheinlich nicht, aber ich würde mir so etwas wie BSD Jails als leichteres VM-System ansehen, wenn Sie wirklich keine Vernetzung wünschen.
Antwort2
Um meine eigene Frage zu beantworten: Im Bereich der (Para-)Virtualisierung gibt es einige gemeinsam genutzte Dateisysteme, die verwendet werden können, um Dateien ohne Netzwerk zwischen Instanzen zu teilen. XenFS ist ein Ansatz, der meines Erachtens nicht aktiv entwickelt wird. Aber für KVM und hoffentlich bald auch für XEN gibt es einen Ordnerfreigabemechanismus basierend auf der Virtio-Bibliothek namens9p_virtio.