A Ovest Di Paperino

Welcome to the dark side.

Offsite backup-parte 2

Segue la seconda parte della serie. La prima parte è qui.

Ho cercato in lungo ed in largo applicazioni che supportassero i seguenti requisiti:

  1. supporto backup differenziale e parziale (ovvero se modifico una sola parte di un solo file, non backuppare tutti gli altri 200 e passa gigabait di dati). Questo si traduce più o meno con il supporto per server RSync
  2. supporto per il criptaggio dei backup: significa che i file devono uscire dalla mia home network possibilmente già criptati; è preferibile che i nomi dei file vengano pure offuscati
  3. leggero e veloce in quanto tutta la baracca deve girare su un Atom D510
  4. possibilità di fare il seeding ovvero il bootstrap del backup verso un disco USB da portare nella locazione remota
  5. che sia compatibile con il reverse tunneling SSH

Ho analizzato i seguenti prodotti:

  • Duplicati, open source e gratuito. Per lo più scritto in C#; supporta una modalità differenziale/parziale anche se non RSync: la differenza è che l’operazione di restore è più lenta, ma è poco importante; scartata in quanto non implementa il punto 5. Interessante in prospettiva in quanto potrei metterci le mani e modificarlo a mio diletto e piacimento.
  • Syncrify, commerciale ma gratuito per uso personale; se ben ricordo non supporta l’offuscamento dei nomi dei file.
  • StoreGrid, commerciale: il server è gratuito mentre la versione pro del client ha costi accessibilissimi (30$). Purtroppo installa una quantità inverosimile di pacchetti: Apache, PHP, mysql e chissà quale altra roba. Scartato per il motivo 3.
  • Amanda/Zmanda ha un approccio interessante al problema in quanto il backup server accede ai file del client e non viceversa. Purtroppo, pur credendo che in fondo in fondo sia compatibile con il requirement 5., non credo che sia una soluzione per i deboli di cuore come me
  • QtdSync: una GUI open source molto ben fatta per RSync/windows con la possibilità di passare alcuni parametri RSync a mano; purtroppo niente encryption o similari supportate nativamente
  • BackupAssist: commerciale, costosetto forse per una soluzione casalinga, ma in grado di soddisfare tutti i requirement di cui sopra. Versione trial per 30 giorni

Ho pertanto deciso di provare backup assist, collegando un disco esterno via USB ed iniziando il seeding: il risultato è stato disastroso dal punto di vista della velocità. 50MB/h significa che il prodotto è prettamente inusabile. Però ho notato che altro non è che una GUI intorno ad una versione particolare di RSync/Windows e RSyncrypto una utility a riga di comando sempre open source che implementa l’encryption AES e l’offuscamento dei nomi dei file in maniera trasparente. Credo che gli autori di backup assist abbiano cappellato alla grande in quanto da un Atom D510 mi aspetterei molto più di 50MB di AES ad ora.

Il prossimo step è di fare qualche test con Rsyncrypto e valutare di conseguenza: c’è infatti un’altra idea che continua a rimbalzare tra i due neuroni della mia scatola cranica ed è quella di scrivere un FS filter driver ad hoc risolvendo il problema numero 2. di cui sopra. Con Dokan anche un bambino può farlo (e persino in .Net anche se non saprei se azzardarmi). A quel punto qualsiasi soluzione basata su RSync o similari sarebbe più che buona, anche se ci sono 35$ di buoni motivi per preferire RSync ad un qualsiasi altro protocollo.

-quack