Eine Wiederherstellung eines Docker-Volumes kann zwar jedes Datei-Byte neu erstellen, dabei jedoch erweiterte Attribute verlieren, wenn das Backup-Format, die Optionen, Berechtigungen oder das Ziel diese nicht erhalten können.
Erweiterte Attribute sind Metadaten in Form von Name-Wert-Paaren, die außerhalb der normalen Dateiinhalte, Besitzrechte, Modusbits und Zeitstempel gespeichert werden. Sie können ACL-Daten, SELinux-Labels, Linux-Funktionen, anwendungsspezifische Markierungen oder Samba-Metadaten enthalten. Ein einfaches tar-basiertes Volume-Backup kann ein scheinbar vollständiges Verzeichnis wiederherstellen, während sich Anwendungen dennoch anders verhalten, weil das Archiv keine xattrs aufgezeichnet hat oder der Wiederherstellungsprozess keinen geschützten Namensraum beschreiben konnte.
Quellattribute erfassen, bevor Sie die Wiederherstellung wiederholen
Wählen Sie repräsentative Dateien aus und erfassen Sie deren Hashes, Besitzer, Modus, ACLs sowie jeden Namen und Wert der erweiterten Attribute. Beziehen Sie auch Dateien ein, die sich nach der Wiederherstellung in der Anwendung fehlerhaft verhalten.
Das Linux-xattr-Modell trennt die Namensräume user, system, security und trusted, die jeweils unterschiedliche Zugriffs- und Berechtigungsanforderungen haben.
Wenn die Quelle keine xattrs besitzt, sind sie bei der Wiederherstellung nicht verloren gegangen. Verschwindet nur ein Namensraum, sollten Sie sich auf Berechtigungen, Sicherheitsrichtlinien oder die Unterstützung durch das Ziel konzentrieren und nicht auf die Dateiinhalts-Schicht des Archivs.
Prüfen, was der Docker-Backup-Befehl tatsächlich archiviert hat
Speichern Sie das genaue Image, den Befehl, das Arbeitsverzeichnis, das Archivformat, den Benutzer, die eingebundene Quelle und das eingebundene Backup-Ziel, die vom Backup-Container verwendet wurden.
Das Beispiel für ein Docker-Volume-Backup verwendet tar in einem Hilfscontainer, doch die Erhaltung von Metadaten hängt weiterhin von der verwendeten tar-Implementierung und den ausgewählten Optionen ab.
Eine erfolgreiche Archivdatei beweist, dass Verzeichniseinträge und Nutzdaten gelesen wurden, nicht jedoch, dass jeder xattr-Namensraum enthalten ist. Prüfen Sie das Archiv mit demselben Werkzeug, mit dem es erstellt wurde.
Erweiterte Attribute beim Archivieren und Entpacken aktivieren
Vergleichen Sie die beim Backup und bei der Wiederherstellung verwendeten tar-Optionen. Vergewissern Sie sich, dass xattrs in beide Richtungen aktiviert waren und dass Einschluss- oder Ausschlussmuster keine erforderlichen Namensräume entfernt haben.
GNU tar erklärt, dass --xattrs erweiterte Attribute speichert und wiederherstellt.
Wenn Sie die Option nur beim Entpacken hinzufügen, lassen sich Attribute nicht wiederherstellen, die zuvor nicht gespeichert wurden. Erstellen Sie zunächst ein neues kleines Archiv aus einer Quelldatei mit einem bekannten Test-xattr und prüfen Sie es, bevor Sie Produktions-Backups ändern.
Die richtigen Rsync-Metadatenoptionen für dateibasierte Backups verwenden
Wenn das Volume-Backup Rsync verwendet, prüfen Sie die Optionen für Archivierung, ACLs, xattrs, numerische IDs, fake-super und Berechtigungen sowohl auf Sender- als auch auf Empfängerseite.
Das offizielle Rsync-Handbuch dokumentiert -X zur Erhaltung erweiterter Attribute und beschreibt die Speicherung mit fake-super, wenn privilegierte Metadaten nicht direkt angewendet werden können.
Die übliche Archivoption -a umfasst nicht automatisch alle erforderlichen ACL- und xattr-Anforderungen. Testen Sie den exakten Befehl mit den tatsächlich verwendeten Quell- und Zieldateisystemen.
Unterstützung durch Zieldateisystem und Einbindung überprüfen
Erstellen Sie direkt auf dem wiederhergestellten Volume eine entbehrliche Datei und versuchen Sie, ein Benutzer-xattr zu setzen, aufzulisten und zu entfernen. Wiederholen Sie den Test über den Host und über den Backup-Container.
Verwenden Sie sowohl auf dem Host als auch im Wiederherstellungscontainer ein Dienstprogramm zum Auflisten von Attributen, um unabhängig vom Backup-Archiv nachzuweisen, ob das Ziel xattrs akzeptiert und zurückgibt.
Wenn das direkte Erstellen von xattrs fehlschlägt, prüfen Sie Dateisystemtyp, Einbindungsoptionen, Netzwerkprotokoll, Volume-Treiber und die Unterstützung durch das Speichergerät. Keine Archivoption kann Metadaten wiederherstellen, die das Ziel nicht darstellen kann.
Berechtigungen für die Namensräume security und trusted prüfen
Erfassen Sie den Benutzer des Wiederherstellungscontainers, seine Capabilities, den User-Namensraum, den Rootless-Modus, die SELinux-Richtlinie und ob der Volume-Pfad vom Host als Bind-Mount eingebunden ist.
Red Hat dokumentiert, dass SELinux-Labels nach dem Kopieren oder Neuerstellen von Dateien möglicherweise richtlinienkonform wiederhergestellt werden müssen.
Verleihen Sie einem Backup-Container nicht dauerhaft weitreichende Berechtigungen auf dem Host. Verwenden Sie eine kontrollierte Wiederherstellungsumgebung oder stellen Sie zunächst normale Daten wieder her und wenden Sie richtlinienverwaltete Labels anschließend mit unterstützten Werkzeugen erneut an.
ACLs, Capabilities und anwendungsspezifische xattrs getrennt betrachten
Vergleichen Sie POSIX-ACL-Einträge, Linux-Datei-Capabilities, SELinux-Labels, Benutzer-xattrs sowie Samba- oder macOS-Metadaten getrennt. Sie können aus unterschiedlichen Gründen fehlschlagen.
Das xattr_tdb-Modul von Samba kann xattrs getrennt vom zugrunde liegenden Dateisystem speichern.
Ein dateibasiertes Volume-Archiv kann daher zwar den sichtbaren Dateibaum erhalten, nicht aber eine separate Samba-Metadatenbank. Beziehen Sie jeden abhängigen Metadatenspeicher ein oder erstellen Sie ihn über den unterstützten Prozess der Anwendung neu.
Eine Testdatei wiederherstellen und die Anwendung überprüfen
Erstellen Sie eine bekannte Quelldatei mit einem Inhalts-Hash, einer ACL, einem Benutzer-xattr und allen erforderlichen anwendungsspezifischen Metadaten. Sichern Sie sie und stellen Sie sie in einem entbehrlichen Volume wieder her.
Der ZimaSpace-Artikel über Berechtigungs- und Metadatenänderungen bei NAS-Systemen behandelt umfassenderes Migrationsverhalten; dieser Artikel konzentriert sich auf die Sicherung und Wiederherstellung von Docker-Volumes.
Das Problem ist behoben, wenn Inhalts-Hashes, erforderliche xattr-Namen und -Werte, ACLs, Sicherheitslabels und das Verhalten der Anwendung nach einem zweiten kontrollierten Backup und einer kontrollierten Wiederherstellung übereinstimmen.
Häufig gestellte Fragen
Sind erweiterte Attribute dasselbe wie ACLs?
Nein. ACLs können auf manchen Dateisystemen mithilfe von system-xattrs implementiert werden, xattrs speichern jedoch auch Sicherheitslabels, Capabilities, Benutzermetadaten und anwendungsspezifische Werte.
Behält tar erweiterte Attribute standardmäßig bei?
Gehen Sie nicht davon aus. GNU tar stellt explizite xattr-Optionen bereit, und das Archiv muss die Attribute beim Erstellen speichern, bevor sie beim Entpacken wiederhergestellt werden können.
Können bei einer Wiederherstellung xattrs verloren gehen, selbst wenn sie als Root ausgeführt wird?
Ja. Das Archiv enthält sie möglicherweise nicht, das Ziel unterstützt sie möglicherweise nicht, eine Sicherheitsrichtlinie kann sie ablehnen oder die Metadaten befinden sich in einer separaten Anwendungsdatenbank.
Support & Tipps
Mehr zum Lesen

Leitfaden zur Speicherkapazität, Aufbewahrung und Bereinigung von Live-TV-Aufnahmen
Messen Sie echte Aufzeichnungen, halten Sie Headroom frei, kombinieren Sie Alters- und Kapazitätslimits und weisen Sie nach, dass das älteste geeignete Programm entfernt wird,...

Workflow zur Wiederherstellung von Metadaten für Heimmedien nach der Wiederherstellung einer Datenbank
Schützen Sie den wiederhergestellten Zustand, überprüfen Sie die Medienidentität und die Pfade und reparieren Sie anschließend fehlende Grafiken oder Übereinstimmungen in einer Pilotbibliothek, bevor...

Jellyfin-Client-Kompatibilitätscheckliste für Audio, Video und Untertitel
Testen Sie repräsentative Dateien mit jeweils nur einer veränderten Variable und protokollieren Sie für jeden Client Direct Play, Remux, Audiokonvertierung, Videotranskodierung oder einen Fehler.

