Wissensdatenbank

Smart NTFS und Block-Level-Backups

Smart NTFS und Block-Level-Backups

Eine verbreitete Einschränkung bei Backup-Vorgängen ist der Metadaten-Scan, den herkömmliche dateibasierte Backup-Software benötigt. Diese Lösungen durchlaufen typischerweise den Verzeichnisbaum und prüfen Änderungszeitstempel über stat()-Aufrufe. Auf Dateiservern mit einer großen Anzahl von Dateien kann dieser Scan erhebliche Zeit in Anspruch nehmen, bevor die Datenübertragung überhaupt beginnt.

Um die Effizienz inkrementeller Backups zu verbessern, umgeht StateWarden das Durchlaufen des Dateisystems im Userspace und setzt stattdessen auf Block-Level-Tracking.


1. Grenzen dateibasierter Backups

Wenn herkömmliche Software ein dateibasiertes Backup durchführt, arbeitet sie im Userspace:

  1. Sie fragt beim Betriebssystem die Verzeichnis- und Dateiliste ab.
  2. Sie fragt beim Betriebssystem Dateimetadaten ab (z. B. Größe, Änderungsdatum).
  3. Sie öffnet die Datei und liest sie sequenziell.

Wurde eine große Datei (z. B. ein 50-GB-Festplattenimage einer virtuellen Maschine) nur geringfügig verändert, liest und hasht eine dateibasierte Backup-Lösung häufig die gesamte Datei, um die Änderungen zu verarbeiten.

2. Block-Level-Backup-Architektur

StateWarden verarbeitet Speichervolumes auf Blockebene. Durch die Einbindung von Low-Level-Kernel-APIs des Hosts identifiziert und überträgt das System nur geänderte Sektoren.

Windows: Smart NTFS und das USN-Journal

In Windows-Umgebungen geht StateWarden wie folgt vor:

  1. Auswertung des USN-Journals: Der Agent überwacht das NTFS Update Sequence Number Journal (USN-Journal), das Dateiänderungen protokolliert. Der Agent wertet dieses Journal aus, um geänderte Dateien zu identifizieren, ohne den Verzeichnisbaum zu durchsuchen.
  2. Physische LCN-Zuordnung: Der Agent nutzt FSCTL_GET_RETRIEVAL_POINTERS, um die geänderten Dateien direkt ihren physischen Logical Cluster Numbers (LCNs) auf der Festplatte zuzuordnen.
  3. Raw-Sektor-Lesevorgänge: Der Agent liest Sektoren direkt von \\.\PhysicalDrive0, statt Standard-Dateizugriffe im Userspace auszuführen. Dies erhöht den Durchsatz und umgeht klassische Konflikte durch Dateisperren.

Linux: Tracking auf Kernel-Ebene und Logical Volume Management

In Linux-Umgebungen nutzt StateWarden das Device-Mapper-Framework:

  1. Abfangen von Schreibvorgängen: StateWarden bindet epochenbasierte Tracking-Targets im Linux-Kernel (dm-era) ein. Diese Strukturen überwachen und protokollieren Schreibvorgänge auf Ebene des Blockgeräts.
  2. Dateisystemunabhängig: Da das Tracking auf Sektorebene des Volumes stattfindet (z. B. /dev/md0p1), arbeitet das Changed Block Tracking (CBT) unabhängig vom zugrunde liegenden Dateisystem (z. B. ext4, xfs, btrfs).

3. Operative Vorteile

Der Betrieb unterhalb der Dateisystem-Abstraktionsschicht bietet mehrere Vorteile:

  • Effiziente inkrementelle Scans: Der Metadaten-Scan entfällt weitgehend. Der Agent identifiziert, hasht und überträgt nur die geänderten Daten-Chunks.
  • Reduzierte IOPS: Durch Raw-Sektor-Lesevorgänge senkt StateWarden die IOPS-Last auf dem Produktivserver während des Backup-Fensters.
  • Deduplizierung auf Blockebene: Das mathematische Chunking des rohen Festplattenstroms ermöglicht eine effiziente geräteübergreifende Deduplizierung auf der Data Plane (Driad). Identische Blöcke auf verschiedenen Servern (z. B. allgemeine Betriebssystem-Updates) werden nur einmal gespeichert.

War dieser Artikel hilfreich?