Il ripristino di un volume Docker può ricreare ogni byte dei file, ma perdere gli attributi estesi quando il formato del backup, le opzioni, i privilegi o la destinazione non consentono di conservarli.
Gli attributi estesi sono coppie di metadati nome-valore archiviate al di fuori del contenuto ordinario dei file, della proprietà, dei bit dei permessi e dei timestamp. Possono contenere dati ACL, etichette SELinux, funzionalità Linux, indicatori dell’applicazione o metadati Samba. Un semplice backup di un volume basato su tar può ripristinare una directory apparentemente completa, mentre le applicazioni si comportano in modo diverso perché l’archivio non ha registrato gli xattr oppure il processo di ripristino non ha potuto scrivere in uno spazio dei nomi protetto.
Inventaria gli attributi della sorgente prima di ripetere il ripristino
Seleziona file rappresentativi e registra i relativi hash, proprietario, permessi, ACL e ogni nome e valore degli attributi estesi. Includi i file che, dopo il ripristino, causano errori nell’applicazione.
Il modello xattr di Linux separa gli spazi dei nomi user, system, security e trusted, ciascuno con requisiti diversi in termini di accesso e privilegi.
Se la sorgente non contiene xattr, il ripristino non li ha persi. Se scompare un solo spazio dei nomi, concentrati sui privilegi, sui criteri di sicurezza o sul supporto della destinazione, anziché sul livello dei contenuti dei file dell’archivio.
Controlla cosa ha effettivamente archiviato il comando di backup Docker
Salva l’immagine esatta, il comando, la directory di lavoro, il formato dell’archivio, l’utente, la sorgente montata e la destinazione del backup montata utilizzati dal container di backup.
L’esempio di backup dei volumi Docker utilizza tar all’interno di un container di supporto, ma la conservazione dei metadati dipende comunque dall’implementazione di tar e dalle opzioni selezionate.
Un file di archivio creato correttamente dimostra che le voci delle directory e i dati sono stati letti, non che siano stati inclusi tutti gli spazi dei nomi xattr. Ispeziona l’archivio con lo stesso strumento usato per crearlo.
Abilita gli attributi estesi durante la creazione e l’estrazione dell’archivio
Confronta le opzioni tar utilizzate per il backup e il ripristino. Verifica che gli xattr siano stati abilitati in entrambe le direzioni e che i criteri di inclusione o esclusione non abbiano rimosso gli spazi dei nomi necessari.
GNU tar specifica che --xattrs memorizza e ripristina gli attributi estesi.
Aggiungere l’opzione solo durante l’estrazione non può recuperare attributi che non sono mai stati memorizzati. Crea un nuovo archivio di piccole dimensioni da un file sorgente con un xattr di test noto e ispezionalo prima di modificare i backup di produzione.
Usa le opzioni corrette di Rsync per i metadati nei backup basati su file
Se il backup del volume utilizza Rsync, controlla le opzioni relative ad archivio, ACL, xattr, ID numerici, fake-super e privilegi sia sul mittente sia sul destinatario.
Il manuale ufficiale di Rsync documenta -X per la conservazione degli attributi estesi e descrive la memorizzazione fake-super quando i metadati privilegiati non possono essere applicati direttamente.
La comune opzione di archivio -a non include automaticamente tutti i requisiti relativi ad ACL e xattr. Testa il comando esatto sui filesystem reali della sorgente e della destinazione.
Verifica il supporto del filesystem e del montaggio nella destinazione
Crea un file temporaneo direttamente sul volume ripristinato e prova a impostare, elencare e rimuovere un xattr user. Ripeti l’operazione tramite l’host e tramite il container di backup.
Usa un’utilità per elencare gli attributi sia nell’host sia nel container di ripristino, così da dimostrare che la destinazione accetta e restituisce gli xattr indipendentemente dall’archivio di backup.
Se la creazione diretta di un xattr non riesce, controlla il tipo di filesystem, le opzioni di montaggio, il protocollo di rete, il driver del volume e il supporto dell’appliance di archiviazione. Nessuna opzione dell’archivio può ripristinare metadati che la destinazione non è in grado di rappresentare.
Controlla i privilegi per gli spazi dei nomi security e trusted
Registra l’utente del container di ripristino, le capability, lo spazio dei nomi utente, la modalità rootless, i criteri SELinux e verifica se il percorso del volume è montato tramite bind dall’host.
Red Hat documenta che le etichette SELinux potrebbero dover essere ripristinate in modo conforme ai criteri dopo la copia o la ricreazione dei file.
Non concedere in modo permanente ampi privilegi sull’host a un container di backup. Usa un ambiente di ripristino controllato oppure ripristina prima i dati ordinari e riapplica le etichette gestite dai criteri con gli strumenti supportati.
Separa ACL, capability e xattr specifici delle applicazioni
Confronta separatamente le voci ACL POSIX, le capability dei file Linux, le etichette SELinux, gli xattr user e i metadati Samba o macOS. Possono non essere conservati per motivi diversi.
Il modulo xattr_tdb di Samba può memorizzare separatamente gli xattr rispetto al filesystem sottostante.
Un archivio del volume a livello di file può quindi conservare l’albero dei file visibile, ma non un database separato dei metadati Samba. Includi ogni archivio di metadati dipendente oppure ricrealo tramite la procedura supportata dall’applicazione.
Ripristina un file di test e convalida l’applicazione
Crea un file sorgente noto con hash del contenuto, ACL, xattr user e tutti i metadati applicativi necessari. Esegui il backup e ripristinalo in un volume temporaneo.
L’articolo di ZimaSpace sulle modifiche ai permessi e ai metadati NAS tratta il comportamento generale delle migrazioni; questo articolo si concentra sul backup e sul ripristino dei volumi Docker.
Il problema è risolto quando gli hash del contenuto, i nomi e i valori degli xattr necessari, le ACL, le etichette di sicurezza e il comportamento dell’applicazione coincidono dopo un secondo backup e ripristino controllato.
Domande frequenti
Gli attributi estesi sono la stessa cosa delle ACL?
No. Su alcuni filesystem le ACL possono essere implementate utilizzando xattr di sistema, ma gli xattr possono anche contenere etichette di sicurezza, capability, metadati utente e valori specifici delle applicazioni.
tar conserva gli attributi estesi per impostazione predefinita?
Non darlo per scontato. GNU tar offre opzioni xattr esplicite e l’archivio deve memorizzare gli attributi durante la creazione, prima che l’estrazione possa ripristinarli.
Un ripristino può perdere gli xattr anche se viene eseguito come root?
Sì. L’archivio potrebbe non contenerli, la destinazione potrebbe non supportarli, un criterio di sicurezza potrebbe rifiutarli oppure i metadati potrebbero trovarsi in un database applicativo separato.
Supporto e consigli
Altro da leggere

Guida all’archiviazione delle registrazioni TV in diretta per capacità, conservazione e pulizia
Misura le registrazioni reali, riserva margine, combina i limiti di età e capacità e dimostra che il programma idoneo più vecchio viene rimosso prima...

Procedura di recupero dei metadati multimediali domestici dopo il ripristino di un database
Proteggi lo stato ripristinato, verifica l'identità e i percorsi dei media, quindi correggi le copertine o le corrispondenze mancanti in una libreria pilota prima...

Checklist di compatibilità del client Jellyfin per audio, video e sottotitoli
Testa file rappresentativi una variabile alla volta e registra Direct Play, remux, conversione audio, transcodifica video o errore per ogni client.

