L’approccio sicuro consiste nel trattare la pianificazione delle attività, il controllo dell’integrità, l’anteprima della conservazione, la pulizia per il repacking, un nuovo controllo e un ripristino isolato come una sequenza di verifiche osservabili, non come un singolo comando.
In un repository Restic utilizzato da uno o più host home server, il rischio pratico consiste nel dover mantenere un repository Restic senza bloccare i backup né confondere il recupero di spazio con la possibilità di ripristino. Registra l’identità attuale e il punto di ripristino, inizia con il discriminante meno invasivo, interpreta i risultati positivi e negativi prima di modificare un’altra variabile e fermati quando lo storage diventa instabile o l’unica copia recuperabile verrebbe esposta. Il flusso di lavoro seguente termina solo dopo che il carico di lavoro originale ha avuto esito positivo o le evidenze hanno raggiunto una soglia di escalation.
Apri una finestra di manutenzione a livello di repository
Metti in pausa le pianificazioni di backup, forget, check, copy e prune su ogni host che può raggiungere il repository. Conferma che non sia rimasto alcun proprietario attivo di un lock, salva la versione di Restic e l’ID del repository e verifica le credenziali senza esporle nella cronologia della shell o nei log. La manutenzione del repository è una modifica a uno stato condiviso, non un’attività per singolo container.
Se un arresto anomalo precedente ha lasciato un lock, segui il flusso di lavoro di ZimaSpace per un repository Restic bloccato dopo un arresto anomalo prima di sbloccarlo. Un lock è una prova di proprietà; rimuovilo solo dopo che il processo indicato, l’host, i timestamp e l’attività del backend dimostrano che l’operazione è terminata.
Controlla lo spazio libero del backend, gli inode o i limiti degli oggetti, i permessi di scrittura e lo spazio locale per la cache o i file temporanei. Fermati se il percorso di storage è instabile, la conservazione immutabile impedisce l’eliminazione necessaria o non è possibile mettere in pausa un altro writer.
Controlla la struttura e campiona i dati del repository
Esegui restic snapshots e un normale restic check, salvando l’output e il codice di uscita. Pianifica quindi --read-data o i sottoinsiemi di lettura dei dati supportati in base alle dimensioni del repository e alla larghezza di banda. Un esito positivo del solo controllo della struttura non dimostra che ogni pack sia leggibile.
Una discussione della community di Restic distingue i ruoli di routine di check, prune e rebuild-index e spiega che la ricostruzione dell’indice non è una normale attività di manutenzione preventiva. Non eseguire rebuild-index né eliminare i file pack solo perché un check è lento; riserva i comandi di ripristino a un’incoerenza diagnosticata.
Se check segnala pack mancanti, una mancata corrispondenza dell’hash, un errore di lettura del backend o un’incoerenza dell’indice, fermati prima di prune. Proteggi il repository, ripeti solo la lettura non riuscita attraverso un percorso stabile ed esegui l’escalation verso un ripristino documentato su una copia.
Visualizza in anteprima la conservazione, quindi esegui prune e repack
Esegui la policy restic forget prevista con --dry-run e controlla gli snapshot conservati e rimossi per host, percorso e tag. Esegui forget effettivamente solo quando l’elenco conserva i punti di ripristino necessari. Quando possibile, conserva uno snapshot recente verificato al di fuori di una modifica sperimentale della policy.
In Restic, “compact” non è un comando separato: prune rimuove i dati non referenziati e riconfeziona i file del repository quando necessario. Una guida aggiornata alla risoluzione dei problemi descrive gli errori di prune di Restic, inclusi gli errori di spazio libero e di lock che devono essere risolti prima di un altro tentativo distruttivo.
Esegui prune una sola volta, senza concorrenza dei backup, e conserva il log completo. Se non riesce, non ripeterlo alla cieca né eliminare oggetti dall’aspetto temporaneo. Ricontrolla i lock, lo spazio di lavoro libero, i permessi del backend e l’ultima fase completata; conserva lo stato del repository per la diagnosi.
Ripeti il controllo ed esegui un ripristino isolato
Dopo un prune completato correttamente, esegui di nuovo restic check e completa la copertura di lettura dei dati pianificata. Confronta il numero di snapshot, le dimensioni del repository e gli errori con la baseline precedente alla manutenzione. Se lo spazio non diminuisce quanto stimato, non significa che ci sia un problema, se gli snapshot conservati fanno ancora riferimento ai dati.
Ripristina uno snapshot recente e un sottoinsieme rappresentativo più vecchio in una directory vuota. Verifica il contenuto dei file, i permessi, i timestamp, i link simbolici e un artefatto a livello applicativo. Un’operazione di mount o di elenco da sola non è un test di ripristino.
Riattiva le pianificazioni solo quando il check successivo al prune ha esito positivo, i dati ripristinati sono utilizzabili e un nuovo piccolo backup può essere creato e ripristinato. Esegui l’escalation per qualsiasi nuova corruzione, errore ripetuto del backend o prune incompleto prima di consentire nuovamente la scrittura da parte di più host.
Supporto e consigli
Altro da leggere

Guida alla migrazione di Borg Backup per spostare un repository su un nuovo spazio di archiviazione
Sposta un repository Borg come un unico oggetto coerente: interrompi le scritture, preserva le chiavi e l'identità, verifica i ripristini, quindi aggiorna i client...

Guida al ripristino del NAS di Time Machine per cronologie di backup danneggiate o abbandonate
Conserva il vecchio bundle. Separa l’accesso al NAS, l’identità della destinazione, i danni all’immagine e la cronologia abbandonata prima di scegliere se riparare o...

Lista di controllo per la revisione della conservazione degli snapshot per un NAS domestico
Una revisione utile della conservazione collega ogni livello di snapshot a un'esigenza di ripristino, a un responsabile, a un budget di capacità e a...

