Btrfs parte 2: backup alla velocità della luce (senza rsync)

Pubblicato da TheJoe il

Tempo di lettura stimato: 2 minuti

Nel post precedente abbiamo visto come rendere il nostro sistema resiliente “sul posto” usando RAID e snapshot. Ma se il PC esplode o il server viene rubato, gli snapshot locali non servono a nulla. Oggi facciamo il salto di qualità: impariamo a usare Btrfs Send e Receive.

Dimenticate rsync e le sue scansioni infinite dei file. Con Btrfs, il backup diventa un flusso di dati puro, trasferendo solo i blocchi che sono effettivamente cambiati dall’ultima volta.

1. La logica: perché send/receive è meglio

Il limite di rsync è che deve confrontare le date e le dimensioni (o i checksum) di ogni singolo file tra sorgente e destinazione. Se hai milioni di file, perdi minuti solo per capire cosa trasferire. Btrfs, essendo un file system copy-on-write, tiene già traccia di ogni blocco modificato. Il comando send estrae queste differenze e le “spara” verso il comando receive, che le scrive sulla destinazione.

Requisito fondamentale: Entrambi i supporti (sorgente e destinazione) devono essere formattati in Btrfs.

2. Pratica: backup su disco esterno

Supponiamo di voler fare il backup della nostra /home su un disco USB. Prima creiamo uno snapshot di sola lettura (indispensabile per il send):

# Crea lo snapshot di sola lettura
sudo btrfs subvolume snapshot -r /home /home/backup_temp

Ora inviamo tutto al disco esterno montato in /mnt/backup_disk:

# Il primo invio (Full Backup)
sudo btrfs send /home/backup_temp | sudo btrfs receive /mnt/backup_disk/

Dalla prossima volta, potremo fare l’invio incrementale, specificando lo snapshot precedente come base. Sarà una questione di millisecondi.

3. Backup remoti via SSH: efficienza massima

Questa è la parte che preferisco. Possiamo inviare il flusso di dati attraverso un tunnel SSH. Ideale per chi ha connessioni fibra con upload non esagerato, perché invierai solo i pochi MB modificati durante la giornata.

# Invia lo snapshot a un server remoto
sudo btrfs send /home/backup_oggi | ssh utente@server "sudo btrfs receive /backup/remoto"

I dati arrivano a destinazione esattamente come sono partiti, con l’integrità garantita dai checksum nativi del file system.

Guarda qui:  OpenOffice introduce le nuove icone minimaliste

4. Automazione: non farlo a mano (usa Btrbk)

Siamo onesti: nessuno si ricorda di lanciare questi comandi ogni giorno. Per questo esiste Btrbk. È uno script in Perl, leggerissimo, che si configura con un semplice file di testo in /etc/btrbk.conf.

Gli dici quale subvolume monitorare, quante copie tenere (es. 7 giornaliere, 4 settimanali) e dove inviarle. Lui si occupa di creare gli snapshot, fare il send/receive e cancellare quelli vecchi.

Esempio veloce di config btrbk:

volume /mnt/data
  subvolume home
    target send-receive /mnt/backup_esterno
    snapshot_preserve_min 2d
    snapshot_preserve 7d

5. Disaster recovery: Il “boot” dal backup

Cosa succede se il disco principale muore? Se hai usato Send/Receive su un altro disco interno o esterno, i tuoi dati sono già in formato subvolume. Non devi “estrarre” un archivio .tar o .zip. Ti basta montare il backup e, se necessario, usarlo come nuova /home modificando semplicemente /etc/fstab. È il ripristino più veloce del mondo.

Attenzione: Ricorda che gli snapshot usati come base per l’incrementale (il parametro -p nel send) devono esistere su entrambi i lati. Se cancelli lo snapshot “padre” dal disco di backup, il prossimo incrementale fallirà e dovrai rifare un invio completo.

Conclusione

Btrfs Send/Receive trasforma il backup da un compito noioso a un processo invisibile e istantaneo. Se hai seguito la guida precedente e hai già i tuoi subvolume pronti, prendi un vecchio disco, formattalo Btrfs e inizia a “sparare” i tuoi dati. La tranquillità di sapere che il tuo backup è un’immagine speculare e verificata dei tuoi dati non ha prezzo.

Hai dubbi su come configurare Btrbk o su come gestire i permessi SSH? Scrivilo nei commenti!


TheJoe

Mantengo questo blog a livello amatoriale dal 2009. Sono appassionato di grafica, tecnologia, software Open Source. Fra i miei articoli non sarà difficile trovarne circa la musica, ed alcuni di riflessioni personali, ma preferisco indirizzare la linea del blog principalmente verso la tecnologia. Per informazioni contattami.

0 commenti

Lascia un commento

Segnaposto per l'avatar

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.