Passa al contenuto principale

Backup e ripristino

La pagina Backup e ripristino gestisce le destinazioni di backup e i piani, e consente di scaricare il backup del cluster, un piccolo file crittografato con GPG che contiene configurazioni a livello di cluster, come le impostazioni delle destinazioni di backup, necessarie per ripristinare rapidamente le applicazioni. Se hai un cluster a nodo singolo e desideri ripristinarlo su un nuovo nodo NS8, consulta Recupero di emergenza.

La prima volta che accedi alla pagina Backup e ripristino, è necessario creare una password segreta per crittografare il file di backup del cluster.

Una volta impostata la password del backup del cluster, viene visualizzata l'intera pagina Backup e ripristino. Questa è suddivisa in:

  • Scarica backup del cluster: Scarica il piccolo file di backup del cluster e modifica la sua password di crittografia. Consulta Backup del cluster per ulteriori informazioni.
  • Destinazioni backup: decidi dove possono essere inviati i dati di backup, ad esempio un servizio di hosting remoto S3 o una condivisione SMB locale. Le destinazioni includono segreti di accesso e una chiave di crittografia end-to-end per il backup.
  • Pianificazione backup: pianifica l'esecuzione dei backup in orari specifici, la politica di conservazione e quali applicazioni includere.

Infine, nella scheda Ripristino, è possibile avviare il ripristino di singole applicazioni. Consulta Ripristino delle applicazioni.

Le sezioni successive illustrano ciascuna funzione in dettaglio.

Destinazione del backup

Una destinazione di backup è il luogo in cui vengono salvati i dati di backup delle applicazioni. Definire una destinazione è un prerequisito per pianificare un backup o ripristinare un'applicazione.

Accedi alla pagina Backup e ripristino, fai clic sul pulsante Aggiungi destinazione e scegli un provider. I provider supportati sono:

Compila i campi richiesti per il provider scelto.

Se aggiungi una destinazione precedentemente utilizzata (cioè che contiene già dati), devi compilare il campo Chiave di crittografia dei dati nella sezione Avanzate, altrimenti i backup esistenti non possono essere aperti. Per nuove destinazioni, lascia il campo vuoto per generare una chiave casuale.

Quando una destinazione di backup viene aggiunta o modificata, le sue impostazioni vengono validate da tutti i nodi del cluster. Almeno un nodo deve riuscire a raggiungere la destinazione affinché le impostazioni vengano accettate. Durante l'esecuzione del backup, se un nodo non riesce a raggiungere direttamente una destinazione, tenterà di inoltrare i dati del backup attraverso il nodo leader, quindi attraverso altri nodi worker, fino a trovare un percorso funzionante.

La procedura di backup genera una struttura a due livelli in cui le istanze delle applicazioni sono raggruppate per tipo al primo livello e da una cartella denominata UUID al secondo livello. Ad esempio:

dokuwiki/
├─ dd5b0b7c-579e-42ee-96a3-282d10958cda/
├─ b1497438-76d9-4aa1-b6fd-d8a4f827563e/
├─ fcf7b6e3-2424-442d-b625-ab90438c74db/
mail/
├─ 92b8ee37-44dd-4f9f-9ee8-658e24556c55/
loki/
└─ 652ea526-b0dc-4bfb-a356-8a841b22bbd2/

Ogni directory UUID contiene un repository Restic. Tutti i repository Restic sotto la stessa destinazione di backup condividono la stessa chiave di crittografia dei dati.

L'accesso a basso livello ai repository Restic può essere effettuato utilizzando il comando restic-wrapper, come documentato nel Manuale dello Sviluppatore di NS8.

Storage locale

La destinazione Storage locale consente di memorizzare i dati di backup su uno storage collegato localmente, come un disco USB esterno. Segui questa procedura:

  1. Formatta il disco con un filesystem supportato, ad esempio XFS:

    mkfs.xfs /dev/disk/by-id/some-disk-id
  2. Crea un volume Podman denominato backup00:

    podman volume create \
    --label org.nethserver.role=backup \
    --opt=device=/dev/disk/by-id/some-disk-id \
    --opt=o=noatime \
    backup00
    avviso

    Monta sempre il disco tramite il suo percorso by-id. Se il disco si guasta o si verificano errori di I/O, il montaggio fallirà invece di scrivere silenziosamente i dati sul filesystem di root. Evita i bind mount.

  3. Configura l'unità rclone-webdav.service per utilizzare tale volume:

    echo BACKUP_VOLUME=backup00 > /var/lib/nethserver/node/state/rclone-webdav.env
  4. Riavvia il servizio. Il disco verrà montato automaticamente:

    systemctl restart rclone-webdav.service
    nota

    Il disco viene smontato quando il servizio rclone-webdav viene arrestato.

  5. Rimuovi il volume predefinito utilizzato dal servizio, poiché non è più necessario. Il contenuto esistente verrà perso:

    podman volume rm rclone-webdav

Provider compatibile con Rclone

Qualsiasi provider compatibile con Rclone può essere utilizzato come destinazione di backup fornendo una breve configurazione INI3. L'elenco completo dei provider di storage cloud supportati è mantenuto sul sito ufficiale di Rclone.

Alcuni provider cloud includono esempi di configurazione Rclone nella propria documentazione oppure offrono un file preconfigurato scaricabile dal proprio portale di gestione. Prima di scrivere la configurazione manualmente, consulta la documentazione del tuo provider o i forum della community.

L'esempio seguente configura una destinazione di backup su un server SFTP Unix4 con autenticazione tramite password:

type = sftp
host = 192.168.122.254
user = ubackup
pass = 5U-JvLFx8NKphaUD5e0HvjF6RzUYcG7YgMfNWbQ
shell_type = unix

Rclone richiede che il campo pass contenga una password offuscata. Generane una su NS8 con:

echo 'MySuperSecret' | podman exec -i rclone-gateway rclone obscure -

Per convertire una password offuscata nuovamente in chiaro, esegui:

podman exec rclone-gateway rclone reveal 5U-JvLFx8NKphaUD5e0HvjF6RzUYcG7YgMfNWbQ

Per aggiungere una destinazione di backup compatibile con Rclone, carica il file di configurazione INI oppure incollalo nel modulo Aggiungi destinazione.

Utilizza il campo opzionale Path per specificare dove viene memorizzata la struttura a due livelli del backup, usando / come separatore di directory. Se lasciato vuoto, viene utilizzata la radice della destinazione remota: questo non è consigliato quando la destinazione è condivisa tra più cluster NS8.

Pianificare il backup delle applicazioni

Per pianificare il backup delle applicazioni installate:

  • Fare clic sul pulsante Pianifica backup.
  • Selezionare le applicazioni da includere.
  • Scegliere una destinazione per il backup.
  • Impostare il giorno, l'orario e la politica di conservazione per il backup.
  • Inserire un nome per la pianificazione del backup.
  • Salvare la configurazione facendo clic sul pulsante Pianifica backup.

Per eseguire manualmente un backup, fare clic sull'elemento Esegui backup ora dal menu a tre punti del backup pianificato.

Per modificare le applicazioni incluse in un backup esistente, fare clic sull'elemento Modifica dal menu a tre punti del backup pianificato.

Dopo la prima esecuzione del backup, lo stato del backup viene riportato in Backup > Pianificazione backup > Vedi dettagli.

Se un'applicazione è inclusa in due o più backup pianificati che si sovrappongono nel tempo, le esecuzioni in conflitto vengono ritardate finché la prima non si completa. Se la prima esecuzione non si completa entro un'ora, le esecuzioni rimanenti vengono contrassegnate come non riuscite.

Ripristino delle applicazioni

Per ripristinare un'applicazione, deve essere disponibile almeno una destinazione di backup.

Se non sono presenti destinazioni e si dispone di un file di backup del cluster crittografato, accedere alla pagina Backup e ripristino e fare clic su Importa destinazioni per ripristinarle rapidamente.

Una volta definite le destinazioni, fare clic sulla scheda Ripristina e seguire questa procedura:

  • Fare clic sul pulsante Ripristina applicazione.
  • Una finestra di dialogo elenca tutte le applicazioni trovate nelle destinazioni di backup configurate. Selezionare l'applicazione che si desidera ripristinare.
  • Se l'applicazione selezionata è già installata, diventa visibile una casella di controllo Sostituisci app esistente. Quando abilitata, l'applicazione esistente verrà rimossa automaticamente al termine della procedura di ripristino.
  • Selezionare lo snapshot di backup dall'elenco.
  • Selezionare il nodo di destinazione per il ripristino. Si noti che, in alcuni casi, il ripristino su determinati nodi del cluster potrebbe essere limitato a causa di politiche applicative o limitazioni delle risorse del nodo.
  • Fare clic sul pulsante Ripristina.

Si noti che i certificati TLS ottenuti da Let's Encrypt non fanno parte del backup e non vengono ripristinati con l'applicazione: devono essere richiesti nuovamente dalla pagina delle impostazioni dell'applicazione dopo il ripristino.

Alcune applicazioni principali hanno comportamenti speciali durante il ripristino:

  • Traefik ripristina solo i certificati caricati e le rotte HTTP definite dall'utente. Fare riferimento a Caricare certificati TLS personalizzati e Creare una rotta HTTP personalizzata.
  • Il ripristino di Loki installa un'istanza aggiuntiva di Loki inattiva. Può essere utilizzata solo per le ricerche nei log, come spiegato in Log di sistema.
  • Il comportamento del ripristino di Samba dipende dal fatto che il dominio utente AD sia già presente nel cluster. Se presente, vengono ripristinati solo i dati delle cartelle condivise. In caso contrario, viene ripristinato anche il database LDAP del DC. Vedere Ripristinare il file server da un backup per ulteriori informazioni.

Ripristino selettivo dei contenuti

Alcune applicazioni consentono di cercare e ripristinare elementi specifici da uno snapshot di backup. Per maggiori informazioni, fare riferimento a:

Backup del cluster

Il backup del cluster contiene tutti i dati necessari per il Ripristino di emergenza, incluse le configurazioni delle destinazioni e le relative chiavi di crittografia dei dati, che sono indispensabili anche per ripristinare i backup delle singole applicazioni. Si tratta di un file JSON compresso e crittografato con GPG.

La prima volta che si accede alla pagina Backup e ripristino, è necessario impostare una password di crittografia e conservarla in un luogo sicuro. Una nuova password di crittografia è richiesta dopo l'elezione di un nuovo nodo leader (vedi Promuovere un nodo a leader).

Il backup del cluster viene copiato automaticamente nelle destinazioni di backup durante le esecuzioni programmate, garantendo backup aggiornati sia dei dati che della configurazione del cluster. Se il cluster dispone di un abbonamento attivo che include il backup cloud della configurazione del cluster, il backup del cluster è disponibile anche dal portale dell'abbonamento.

Scaricare periodicamente il backup del cluster e conservarlo in un luogo sicuro. Fare clic sul pulsante Scarica backup del cluster nella pagina Backup e ripristino.

nota

Se si perde il backup del cluster, è comunque possibile ripristinare le applicazioni su un altro cluster solo se si conosce la password di crittografia dei dati della destinazione di backup.

Per ispezionare il contenuto del file scaricato, utilizzare il seguente comando, sostituendo "SECRET" con la propria password di crittografia:

echo 'SECRET' | gpg --batch --passphrase-fd 0 --decrypt backup.json.gz.gpg | gunzip | jq

Ripristino di emergenza

La procedura di ripristino di emergenza è progettata per il ripristino di un cluster a nodo singolo. È sufficiente disporre del file backup del cluster originale.

  1. Assicurarsi che il nuovo sistema abbia spazio libero su disco sufficiente. La procedura di ripristino non verifica lo spazio libero su disco.
  2. Installare un nuovo cluster e accedere utilizzando le credenziali predefinite.
  3. Modificare la password predefinita dell'amministratore.
  4. Fare clic sul pulsante Ripristina cluster.
  5. Scegliere se ripristinare una configurazione del cluster da un server HTTP remoto o caricare il backup dal browser.
  6. Inserire il segreto di crittografia nel campo Backup password.
  7. Selezionare le applicazioni da ripristinare.

Per ulteriori informazioni, fare riferimento alle note di backup e ripristino per ciascuna applicazione. Ad esempio:

Footnotes

  1. https://aws.amazon.com/s3/

  2. https://www.backblaze.com/b2/cloud-storage.html

  3. https://en.wikipedia.org/wiki/INI_file

  4. https://rclone.org/sftp/

NethServer 8