Personalizzazione backup

La personalizzazione di base può essere effettuata direttamente dal nuovo Server Manager. Vedi Personalizzazione backup dati.

Backup dati

Il backup dei dati può essere eseguito utilizzando diversi engine:

Quando si seleziona un engine, l’amministratore di sistema deve valutare attentamente molteplici aspetti:

  • Compressione: i dati vengono compressi sulla destinazione, l’utilizzo del disco può variare in funzione dell’efficienza della compressione, che dipende anche dal set di dati
  • Deduplicazione: invece di comprimere i file, i dati vengono suddivisi in blocchi e viene conservata solo una copia di ciascun blocco. L’efficienza dipende molto dal set di dati
  • Crittografia: i dati salvati nella memoria di destinazione sono crittografati. Di norma i dati vengono crittografati prima del trasferimento
  • Dimensione: lo spazio utilizzato nella destinazione per ciascun backup, può essere inferiore o uguale al set di dati originale. Quando si utilizzano engine senza supporto per la compressione, lo spazio sulla destinazione dovrebbe sempre essere più grande rispetto a quello occupato nella sorgente
  • Conservazione: la politica che fissa la quantità di tempo in cui un set di dati rimarrà disponibile per il ripristino
  • Integrità: è la capacità dell’engine di verificare se il backup eseguito è valido in caso di ripristino
  • Tipo: un backup può essere completo, incrementale o basato su snapshot (sempre incrementale):
    • completo: tutti i file vengono copiati nella destinazione ogni volta
    • incrementale: confronta i dati con l’ultimo backup completo e copia solo gli elementi modificati o aggiunti. Il backup completo e tutti gli incrementali intermedi sono necessari per il processo di ripristino. È richiesto che venga eseguito regolarmente un backup completo.
    • snapshot: crea un backup completo solo la prima volta, successivamente crea solo backup differenziali. Le istantanee possono essere eliminate e consolidate ed è necessario un solo backup completo
Engine Compressione Deduplicazione Crittografia Integrità Tipo
duplicity No No completo / incrementale
restic No snapshot
rsync No Parziale No No snapshot

Backend di archiviazione

Supportati da tutti gli engine:

  • CIFS: cartella condivisa Windows, disponibile su tutti i NAS (Network Attached Storage). Utilizza credenziali di accesso come: MioUtente,domain=miodominio.com
  • NFS: cartella condivisa Linux, disponibile su tutti i NAS, solitamente più veloce di CIFS
  • WebDAV: disponibile su molti server NAS e remoti (utilizzare come destinazione WebDAV un server con un certificato SSL valido, altrimenti il sistema non riuscirà a montare il filesystem)
  • USB: disco collegato ad una porta USB/SATA locale

Supportati da restic ed rsync

  • SFTP: SSH File Transfer Protocol

Supportati solo da restic

  • Amazon S3 (o altro server compatibile come Minio)
  • Backblaze B2

Engine

Duplicity

Duplicity è l’engine di backup predefinito per NethServer. Ha un buon algoritmo di compressione che riduce in modo apprezzabile l’utilizzo della spazio sulla destinazione. Duplicity richiede un backup completo una volta alla settimana, quando il set di dati è molto grande il processo potrebbe richiedere più di 24 ore per essere completato. NethServer non implementa la crittografia per il backup se l’engine è Duplicity.

Backend di archiviazione supportati:

  • CIFS
  • NFS
  • USB
  • WebDAV (solo quando usato come backup singolo)

Nota

Il nome della directory di destinazione è basato sul nome host del server: in caso di modifica dell’FQDN, l’amministratore dovrà occuparsi di copiare/spostare i dati di backup dalla vecchia directory a quella nuova.

Restic

Restic implementa un backup basato su snapshot e sempre crittografato. Supporta la deduplicazione e può eseguire il backup sui servizi cloud. Poiché Restic richiede solo un backup completo, tutte le esecuzioni successive alla prima dovrebbero essere veloci e potrebbero essere programmate più volte al giorno.

Backend di archiviazione supportati:

  • CIFS
  • NFS
  • USB
  • WebDAV (solo quando usato come backup singolo)
  • SFTP (SSH File Transfer Protocol)
  • Amazon S3 (o altro server compatibile come Minio)
  • Backblaze B2
  • restic REST server

Quando si configura un backup utilizzando l’engine restic e un back-end di archiviazione remoto, assicurarsi di disporre di una larghezza di banda sufficiente per completare il primo backup entro 24 ore. In caso contrario, restic creerà molteplici istantanee diverse. Se si dispone di una connessione lenta e si desidera ancora utilizzare un back-end di archiviazione remoto, attenersi alla seguente procedura:

  • configurare il backup con restic
  • eseguire manualmente il backup cliccando su Esegui ora
  • disabilitare il backup configurato, in modo che non venga avviato alla successiva esecuzione pianificata
  • terminato il backup manuale, riabilitare il backup per consentirne l’esecuzione pianificata

Rsync

L’engine di backup stile Time machine utilizza rsync. Dopo il primo backup completo, copia solo i file modificati o nuovi utilizzando un effiecente sistema di trasferimento incrementale. Sulla destinazione, la deduplicazione parziale viene ottenuta attraverso l’uso di link fisici. Se la directory di destinazione del backup è piena, i backup più vecchi vengono automaticamente eliminati per liberare spazio.

Backend di archiviazione supportati:

  • NFS
  • USB
  • WebDAV (solo quando usato come backup singolo)
  • SFTP (SSH File Transfer Protocol)

Rsync non supporta la crittografia né la compressione sulla destinazione. Durante il trasferimento dei dati, SFTP assicura la crittografia e i dati vengono compressi per ridurre al minimo l’utilizzo della banda utilizzata.

Nota

Quando si utilizza l’engine rsync, assicurarsi che il backend di destinazione supporti link simbolici e fisici. Si rammenta che NethServer non supporta collegamenti su condivisioni Samba per implicazioni di sicurezza. Inoltre i link simbolici non sono supportati su WebDAV.

È necessario accedere alla destinazione con l’utente root.

Esecuzione da riga di comando

Per lanciare un backup da riga di comando, utilizzare:

backup-data -b <name>

in cui name è il nome del backup che si desidera lanciare.

Nota

Di default il nome del primo backup configurato su NethServer è backup-data

Personalizzazione backup dati

In caso di installazione di software aggiuntivi, potrebbe esser necessario modificare la lista delle directory e dei file inclusi (o esclusi) dal backup.

Inclusione

Se si desidera includere una directory o un file nel backup dei dati, è sufficiente aggiungere una riga al file /etc/backup-data.d/custom.include.

Ad esempio, per includere nel backup un software installato nella directory /opt, aggiungere questa riga:

/opt/mysoftware

La stessa sintassi si applica al backup della configurazione. Le modifiche dovranno essere incluse all’interno del file /etc/backup-config.d/custom.include.

Esclusione

Se si desidera escludere una directory o un file dal backup dei dati, aggiungere una riga al file /etc/backup-data.d/custom.exclude.

Ad esempio, per escludere dal backup tutte le directory chiamate Download, aggiungere la riga:

**Download**

Per escludere la casella di posta test, aggiungere la riga:

/var/lib/nethserver/vmail/test/

La stessa sintassi si applica al backup della configurazione. Le modifiche dovrebbero essere fatte all’interno del file /etc/backup-config.d/custom.exclude.

Personalizzazione inclusioni ed esclusioni

Tutti i backup utilizzano la stessa configurazione, ma l’elenco dei file salvati ed esclusi può essere personalizzato per ciascun backup utilizzando due file speciali:

  • /etc/backup-data/<name>.include
  • /etc/backup-data/<name>.exclude

In cui name è il nome del backup.

Entrambi i file sostituiranno il set di dati inclusi ed esclusi dal backup. La sintassi accettata è la stessa indicata nel paragrafo precedente.

Ad esempio, dato un backup chiamato mybackup1, andranno creati i seguenti file:

  • /etc/backup-data/mybackup1.include
  • /etc/backup-data/mybackup1.exclude
Esempio

È possibile configurare un backup programmato ogni ora che includa solo i file della posta.

  1. Configurare il nuovo backup mymailbackup utilizzando l’interfaccia utente

  2. Creare un file include custom contenente solo la directory delle email:

    echo "/var/lib/nethserver/vmail" > /etc/backup-data/mymailbackup.include
    
  3. Creare un file exclude custom vuoto:

    touch /etc/backup-data/mymailbackup.exclude
    
  4. Applicare la configurazione:

    signal-event nethserver-backup-data-save mymailbackup
    

Avvertimento

Assicurarsi di non lasciare righe vuote all’interno file modificati.

Nota

Questo tipo di backup non può essere utilizzato in caso di disaster recovery.

Backup configurazione

Il backup della configurazione è un’attività automatizzata che viene eseguita ogni notte alle 00.15 e che crea un nuovo archivio, /var/lib/nethserver/backup/backup-config.tar.xz, se la configurazione è cambiata nelle 24 ore precedenti.

L’elenco dei moduli installati è incluso nell’archivio di backup. La procedura di ripristino consente di scaricare e installare automaticamente i moduli riportati nell’elenco.

Nella maggior parte dei casi non è necessario modificare il backup della configurazione. Ma può essere utile, ad esempio, se si è aggiunta una configurazione custom per httpd. In questo caso è possibile aggiungere al backup della configurazione il percorso del file che contiene la personalizzazione.

Inclusione

Se si desidera includere una directory o un file nel backup della configurazione, aggiungere una riga al file /etc/backup-config.d/custom.include.

Ad esempio, per eseguire il backup del file /etc/httpd/conf.d/mycustom.conf, aggiungere la riga:

/etc/httpd/conf.d/mycustom.conf

Non aggiungere mai directory e file voluminosi al backup della configurazione.

Esclusione

Se si desidera escludere una directory o un file dal backup della configurazione, aggiungere una riga al file /etc/backup-config.d/custom.exclude.

Avvertimento

Assicurarsi di non lasciare righe vuote nei file modificati. La sintassi del backup della configurazione supporta solo semplici percorsi di file e directory.

Ripristino da linea di comando

Nel caso in cui l’interfaccia web select_restore-section non fosse sufficiente, il ripristino può essere eseguito dalla riga di comando.

Tutti i file rilevanti sono conservati nella directory /var/lib/nethserver/ :

  • Cartelle di posta: /var/lib/nethserver/vmail/<user>
  • Cartelle condivise: /var/lib/nethserver/ibay/<name>
  • Home utenti: /var/lib/nethserver/home/<user>

Per ottenere un elenco dei dati contenuti in un backup, utilizzare:

backup-data-list -b <name>

Per ripristinare tutti i dati nella loro posizione originale, utilizzare:

restore-data -b <name>

Per ripristinare un file o una directory, utilizzare:

restore-file -b <name> <position> <path>

Esempio, ripristinare un file alla versione di 15 giorni fa:

restore-file -b <name> -t 15D /tmp "/var/lib/nethserver/ibay/test/myfile"

L’opzione -t consente di specificare il numero di giorni (15 in questo scenario). Quando viene utilizzato con engine basati su snapshot, l’opzione -t richiede il nome dello snapshot da ripristinare.

Nota

Nel caso si utilizzi CIFS per accedere alla condivisione e il comando di restore non funzioni nel modo atteso, verificare che utente e password della condivisione di rete siano corretti. Se la coppia utente/password è sbagliata nel file /var/log/messages si troveranno degli errori di NT_STATUS_LOGON_FAILURE. Allo stesso tempo il comando backup-data-list non andrà a buon fine e uscirà immediatamente riportando degli errori.

Formattazione di un disco locale

I dischi locali possono essere formattati direttamente dalla interfaccia web. Se qualcosa andasse storto o fosse necessario un partizionamento personalizzato, seguire i seguenti passaggi.

I migliori filesystem per dischi di backup SATA/USB sono EXT3 o EXT4. Il filesystem FAT è supportato ma non raccomandato, mentre NTFS non è supportato. EXT3 o EXT4 sono obbligatori in caso di utilizzo dell’engine rsync.

Per eseguire la formattazione, è necessario collegare il disco e identificarlo correttamente:

# dmesg | tail -20

Apr 15 16:20:43 mynethserver kernel: usb-storage: device found at 4
Apr 15 16:20:43 mynethserver kernel: usb-storage: waiting for device to settle before scanning
Apr 15 16:20:48 mynethserver kernel:   Vendor: WDC WD32  Model: 00BEVT-00ZCT0     Rev:
Apr 15 16:20:48 mynethserver kernel:   Type:   Direct-Access           ANSI SCSI revision: 02
Apr 15 16:20:49 mynethserver kernel: SCSI device sdc: 625142448 512-byte hdwr sectors (320073 MB)
Apr 15 16:20:49 mynethserver kernel: sdc: Write Protect is off
Apr 15 16:20:49 mynethserver kernel: sdc: Mode Sense: 34 00 00 00
Apr 15 16:20:49 mynethserver kernel: sdc: assuming drive cache: write through
Apr 15 16:20:49 mynethserver kernel: SCSI device sdc: 625142448 512-byte hdwr sectors (320073 MB)
Apr 15 16:20:49 mynethserver kernel: sdc: Write Protect is off
Apr 15 16:20:49 mynethserver kernel: sdc: Mode Sense: 34 00 00 00
Apr 15 16:20:49 mynethserver kernel: sdc: assuming drive cache: write through
Apr 15 16:20:49 mynethserver kernel:  sdc: sdc1
Apr 15 16:20:49 mynethserver kernel: sd 7:0:0:0: Attached scsi disk sdc
Apr 15 16:20:49 mynethserver kernel: sd 7:0:0:0: Attached scsi generic sg3 type 0
Apr 15 16:20:49 mynethserver kernel: usb-storage: device scan complete

Un altro buon comando da utilizzare è essere:

lsblk -io KNAME,TYPE,SIZE,MODEL

In questo esempio, il disco è stato riconosciuto come device sdc.

  • Creare una unica partizione Linux sull’intero disco:

    sgdisk --zap-all /dev/sdc
    sgdisk --largest-new=1 /dev/sdc
    
  • Creare il filesystem sulla partizione sdc1 assegnando una label, ad esempio backup:

    mkfs.ext4 -v /dev/sdc1 -L backup -E lazy_itable_init
    
  • Scollegare e ricollegare il disco USB:

    E’ possibile utilizzare il comando seguente per simulare il collegamento del disco:

    blockdev --rereadpt /dev/sdc
    
  • A questo punto l’etichetta backup sarà visualizzata nella pagina Backup.