Freigeben über


Dateisystemverhalten

Letztendlich bietet Azure Container Storage, der von Azure Arc aktiviert ist, eine Dateisystemschnittstelle für Anwendungen. Dateisysteme weisen spezifische Verhaltensweisen auf, die Anwendungen berücksichtigen müssen. In diesem Artikel wird erläutert, wie sich freigegebene Dateisystemänderungen verteilen und was mit einem Spiegeldateisystem während der Spiegelsynchronisierung geschieht.

Was bedeuten wir mit einer Dateisystemschnittstelle?

Eine Anwendung kann in ihrer Ordnerstruktur über Einbindungen auf viele Dateisysteme zugreifen. In Kubernetes konfigurieren Anwendungen (Pods) Mounts mithilfe von PVCs. Wenn ein Pod mit einem EdgeVolume PVC montiert wird, erhält er Zugriff auf ein freigegebenes Dateisystem über einen bereitgestellten Ordner.

In diesem Leitfaden finden Sie beispielsweise Anweisungen zur Konfiguration eines PVC für das cloud-basierte Volumen unserer Erweiterung. Ein Dateisystem, das mit einem EdgeVolume PVC montiert ist, verfügt über eine lokale und eine Remote-Komponente. Das lokale Dateisystem empfängt Anwendungsdateisystemvorgänge. Es leitet Dateisystemvorgänge an die Remotekomponente weiter, die Zugriff auf den zugrunde liegenden Speicher hat.

Änderungsverbreitung und lokale Zwischenspeicherung

Viele Pods von einem beliebigen Knoten im Cluster können denselben freigegebenen EdgeVolume-Ordner bereitstellen. In diesem Ordner sind Schreibvorgänge aus einem Pod aus anderen Pods lesbar. Wenn es Pods auf separaten Knoten gibt, die dasselbe freigegebene Verzeichnis einbinden, kann es einige Zeit dauern, bis Änderungen verteilt werden. Neue oder entfernte Dateien und Ordner können bis zu 60 Sekunden dauern, um verteilt zu werden. Dateischreibvorgänge können bis zu 30 Sekunden dauern, bis sie verteilt werden.

Der Grund für diese Verzögerungen liegt an clientseitigen Cache-Ungültigkeitszeiten. Wenn der Pod einen Lesevorgang in das lokale Dateisystem durchführt, kann er einen lokalen Cache verwenden und nie einen Netzwerkanruf tätigen. Die von ihr verwendeten Cacheeinträge laufen schließlich ab. Sobald der relevante Cache abläuft, liest das Dateisystem des Pods die Informationen über das Netzwerk erneut ein. An diesem Punkt ruft das lokale Dateisystem die neuesten Dateimetadaten und -inhalte ab.

Dateivorgangssequenzen, die das Öffnen der Datei, das Lesen und anschließendes Schließen der Datei (im Gegensatz zu langlebigen geöffneten Dateien) umfassen, lesen immer den neuesten Inhalt der Datei. Wenn das Dateisystem des lokalen Pods einen geöffneten Aufruf verarbeitet, wechselt er direkt an den Server, um zu überprüfen, ob sich die Datei geändert hat.

Verhalten des Spiegeldateisystems

Wenn eine Spiegelsynchronisierung auftritt, wird eine interne Anwendung ausgeführt, um Dateisystemvorgänge zu erkennen und auszuführen, damit das Edge-Dateisystem mit einem Blob-Ziel synchronisiert wird. Die Konfiguration des Spiegeluntervolums wird in diesem Artikel beschrieben.

Die Vorgänge, die zum Abschließen einer Spiegelsynchronisierung ausgeführt werden können, sind in die folgenden Kategorien unterteilt:

  • Erstellen neuer Dateien oder Ordner, um neu erstellte Blobs abzugleichen.
  • Entfernen vorhandener Dateien oder Ordner, um entfernte Blobs zuzuordnen.
  • Ändern vorhandener Dateien für geänderte Blobs durch Herunterladen des neuen Blobs und Umbenennen über die alte Datei.
  • Ändern von Datei- oder Ordnermetadaten: Besitzer, Gruppe, Berechtigungen und Xattr basierend auf Metadatenänderungen im Blob.

Wenn die interne Anwendung diese Vorgänge ausführt, erfolgt dies direkt im zugrunde liegenden Dateisystem. Die Änderungen gelangen schließlich zu den Kunden-Pods, die das Dateisystem lesen. Sobald eine Änderung im internen Dateisystem vorgenommen wurde, kann es bis zu 30 Sekunden dauern, bis Dateiänderungen oder bis zu 60 Sekunden, bis erstellte oder entfernte Dateien an Kunden-Pods verteilt werden.

Da Blob-Änderungssynchronisierungen mithilfe von Umbenennungen mit vollständigen Dateiinhalten implementiert werden, werden Anwendungen nie teilweise synchronisierte Dateien angezeigt. Sie sehen entweder den Inhalt der alten Datei oder den Inhalt der neuen Datei.

Metadatenänderungen werden jedoch direkt auf die sichtbare Datei oder den Ordner des Kunden angewendet. Dies bedeutet, dass teilweise synchronisierte Metadaten (Besitzer, Gruppe, Berechtigungen oder Xattrs) angezeigt werden können.