Heim > Betrieb und Instandhaltung > Betrieb und Wartung von Linux > Umgang mit Inkonsistenzen im Dateisystem und in der Größe des Snapshot-Speicherplatzes

Umgang mit Inkonsistenzen im Dateisystem und in der Größe des Snapshot-Speicherplatzes

坏嘻嘻
Freigeben: 2018-09-29 15:38:42
Original
2323 Leute haben es durchsucht

In diesem Artikel wird erläutert, wie mit der Inkonsistenz zwischen dem Dateisystem und dem Snapshot-Speicherplatz umgegangen wird, und der Schwerpunkt liegt auf den spezifischen Schritten. Der Inhalt dieses Artikels ist kompakt und ich hoffe, dass jeder etwas gewinnen kann.

Warum sind die Dateisystem- und Snapshot-Speicherplatzgrößen inkonsistent?

Ein Benutzer erkundigte sich, dass er nach dem Löschen von Dateien in der ECS-Instanz und dem anschließenden Erstellen eines Snapshots festgestellt habe, dass die Snapshot-Kapazität nicht kleiner geworden sei. Der Grund für dieses Phänomen hängt mit dem Snapshot-Prinzip und der Beziehung zwischen dem Dateisystem, der Festplatte und dem Snapshot zusammen. Das heißt, solange der Datenspeicherblock (Block) geschrieben wurde, wird der Datenblock weiterhin gelöscht Auch wenn die zugehörigen Dateien auf der Festplatte gelöscht wurden, nimmt der Snapshot mehr Speicherplatz ein als die Festplatte. Durch das sogenannte Löschen im Dateisystem wird lediglich der Header der zu löschenden Datei markiert, um den Benutzer darüber zu informieren, dass dieser Speicherplatz verwendet werden kann. Der von der Festplatte selbst belegte Speicherplatz wird dadurch jedoch nicht verringert.

Warum sind die Dateisystem- und Snapshot-Speicherplatzgrößen inkonsistent?

Was Benutzer innerhalb der Instanz sehen, ist die Festplatte (EBS), und was auf der Festplattenpartition erstellt wird, ist das Dateisystem (Dateisystem). Das Dateisystem ist für die Verwaltung des Festplattenspeichers verantwortlich und seine Vorgänge werden letztendlich in Festplatten-E/A-Anforderungen umgewandelt. EBS zeichnet den Status von Blöcken auf (was sich auf die Aufteilung der logischen Blockadresse der Festplatte in Blöcke gleicher Größe durch Blockspeicher bezieht) und kopiert fehlerhafte Daten bei Bedarf in OSS. Dies ist der Prozess der Erstellung eines Snapshots.

Die folgenden Gründe können dazu führen, dass der Dateisystemspeicherplatz nicht mit der Snapshot-Größe übereinstimmt:

Die Metadaten des Dateisystems selbst belegen Speicherplatz.

Beim Erstellen eines Dateisystems wird eine große Anzahl von Blöcken geschrieben. Insbesondere die langsame Formatierung von Windows schreibt eine große Anzahl fehlerhafter Blöcke, während die Verwendung einer schnellen Formatierung die Anzahl der geschriebenen Blöcke reduzieren kann.

Um den Overhead zu reduzieren, markiert das Dateisystem die Datei beim Löschen nur intern. EBS erkennt diese Löschanweisung jedoch nicht und der Block ist weiterhin zugewiesen, sodass dieser Teil weiterhin im Snapshot enthalten ist , was dazu führt, dass der Snapshot größer als das Dateisystem ist.

Virtio-Block und Xens Block-Front sowie andere Module unterstützen den TRIM-Befehl (ein E/A-Befehl, der dazu führt, dass ein bestimmtes Datenelement auf dem LBA nicht mehr verwendet wird und gelöscht werden kann) nicht Die Festplatte erkennt nicht, dass die Daten gelöscht werden können.

Das Prinzip zum Erstellen eines Snapshots

Das Prinzip zum Erstellen eines Snapshots ist in der folgenden Abbildung dargestellt.

Erklärung:

Unterteilen Sie die Festplatten-LBA (logische Blockadresse) in Blöcke. Die nicht zugewiesenen werden als leere Blöcke bezeichnet, die durch die kleinen weißen Kästchen im Bild dargestellt werden.

Solange der Block geschrieben (zugewiesen und kein leerer Block mehr) ist, nimmt er an der Messung teil.

Der erste Snapshot der Festplatte hat die volle Größe und leere Blöcke werden nicht kopiert.

Der nachfolgende Snapshot der Festplatte ist ein inkrementeller Snapshot, der die inkrementellen schmutzigen Daten seit dem vorherigen Snapshot kopiert, sodass derselbe Block möglicherweise mehrere Versionen in verschiedenen Snapshots haben kann (in der Abbildung durch unterschiedliche Farben gekennzeichnet).

Umgang mit Inkonsistenzen im Dateisystem und in der Größe des Snapshot-Speicherplatzes

Snapshot-Messmethode

Wie in der Abbildung oben gezeigt, enthält der Snapshot 11 Blöcke Es gibt noch 2 weitere der 9 Blöcke auf der Festplatte T2.

Alle Snapshots einer einzelnen Festplatte als Ganzes messen.

Nur ​​zugewiesene Blöcke werden gemessen. Die gleiche Blockversion zu unterschiedlichen Zeitpunkten wird nur einmal gezählt.

Verschiedene Versionen von Block belegen das N-fache des Platzes.

Prinzip zum Löschen von Snapshots

Das Prinzip zum Löschen von Snapshots ist in der folgenden Abbildung dargestellt.

Anleitung:

Offline-Analyse aller Blöcke gelöschter Snapshots und Löschen von Daten, auf die nicht von anderen Snapshots verwiesen wird.

Nach dem Löschen von S1 haben die verbleibenden Snapshots insgesamt 10 Blöcke (einschließlich 6 von S0, 2 von S1 generierte schmutzige Daten und 2 von S2) anstelle von 8 Blöcken (6 von S0, 2 von S2). ).

Umgang mit Inkonsistenzen im Dateisystem und in der Größe des Snapshot-Speicherplatzes

Die genaue Definition von „Datenschreibvorgang“

Klären Sie zunächst ein Konzept und die zugrunde liegende Verteilung Bei herkömmlichen Speichersystemen bedeuten „Datenschreibvorgänge“ nicht nur von Benutzern geschriebene Geschäftsdaten, sondern umfassen auch eine Reihe von E/A-Vorgängen wie das Formatieren von Datenträgern.

Nachdem Benutzer die Festplatte erhalten haben, müssen sie sie formatieren, bevor sie normal verwendet werden kann. Der Kern der Formatierung ist der Prozess der Einrichtung eines Dateisystems. Bevor eine Partition oder Festplatte als Dateisystem verwendet werden kann, muss sie initialisiert und die Datenstruktur auf der Festplatte aufgezeichnet werden. Dieser Vorgang wird als Einrichten eines Dateisystems bezeichnet.

Das Einrichten eines Dateisystems auf der Festplatte bedeutet daher das Schreiben von Daten auf die Festplatte. Unterschiedliche Dateisysteme haben bei der Formatierung unterschiedliche Dateigrößen:

Die Windows-Systemformatierung ist in schnelle und normale Formatierung unterteilt:

Die Schnellformatierung weist der Partition nur ein Dateisystem zu und schreibt die Verzeichnistabelle neu.

Die normale Formatierung führt nicht nur die oben genannte Arbeit durch, sondern scannt auch die Partition Sektor für Sektor, um fehlerhafte Sektoren zu identifizieren und zu markieren.

Daher füllt der normale Formatierungsvorgang die leeren Blöcke der Festplatte, was dem Schreiben der gesamten Festplatte entspricht. In diesem Fall entspricht die Größe des ersten vollständigen Snapshots ungefähr der Festplattenkapazität. Der tatsächliche Platzbedarf der Schnellformatierung ist relativ gering.

Die Formatierung eines Linux-Systems ist auch der Prozess der Einrichtung eines Dateisystems. Wenn die Festplatte gerade erst formatiert wurde und der Benutzer keine Geschäftsdaten geschrieben hat, verfügt der erste Snapshot daher auch über eine bestimmte Kapazität, abhängig von den verschiedenen Dateisystemformaten.

Das obige ist der detaillierte Inhalt vonUmgang mit Inkonsistenzen im Dateisystem und in der Größe des Snapshot-Speicherplatzes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage