Offsite backup–parte 4: finale?
I pezzi del puzzle e gli appuntamenti precedenti:
- la prima parte era dedicata ai requirement generali
- la seconda parte, dedicata ai punti fondamentali e ad una analisi delle possibili soluzioni
- la terza parte a come ho risolto il problema del criptaggio dei dati
- un intermezzo dedicato ad un piccolo problema con SSH
Questo post finale è dedicato al mettere insieme i vari pezzi che compongono la mia soluzione.
Hardware: un HD esterno Seagate con dock. Il vantaggio di tale soluzione è che ci sono dei dock con micro-Linux che potrebbero funzionare stand-alone ad un costo irrisorio per le funzionalità offerte. Ad ogni modo mi sono limitato ad usarlo come unità esterna collegata al PC offsite.
Software:
- OpenSSH, da installare in versione server sul server casalingo. Ovviamente va aperta l’apposita porta (22) sul firewall. Discusso in dettaglio al punto 3 di cui sopra.
- Un client SSH fatto a mano: non è pronto per il mondo in quanto c’è ancora qualche baco da sistemare, ma l’idea è di creare un client inossidabile. Gli altri client che ho provato hanno il difetto di disconnettersi senza avvertire.
- DeltaCopy, una versione grafica di RSync. Da installare lato client sul server casalingo e lato server sul PC offsite. Ho provato tante GUI ma questa seppur spartana ha tutte le feature che interessano: task scheduler integrato con quello di sistema e client SMTP che alla fine di ogni backup invia una mail dettagliata
- PeoneFS, vedasi punto due di cui sopra
Praticamente il PC offsite si collega via SSH al server casalingo. Nel collegarsi crea un tunnel-rovesciato sulla porta di RSync (873). Questo significa che la porta 873 sul server di casa sarà un tonnel alla stessa porta del server RSync sul PC offsite. Sul server casalingo ci gira il client RSync e PeoneFS; il client è configurato per fare il backup dal drive PeoneFS al server RSync ad una certa ora specifica di ogni giorno.
Sperando che un diagramma valga più di cento parole:
Possibili miglioramenti: rsync, per quanto sia molto efficiente nel trasferire spezzoni di file, non mi sembra sia altrettanto efficiente nel caso di confronto di directory molto ampie. Quando ci sono tantissimi file in ballo come nel mio caso un backup dura almeno un’ora. Sto pensando ad un modo di utilizzare il Remote Differential Protocol in combinazione con il Sync Framework per ottenere il migliore dei mondi possibili. Ma questo è un progetto per più di un weekend.
-quack