La soluzione proposta:
Hai un'istanza Amazon EC2, con un archivio di blocchi elastici abbastanza grande da contenere l'intera immagine che intendi eseguire il backup:
backup-host.yourdomain.com:
/mnt/EBS/my-desktop-backup/coreimage.dmg
/mnt/EBS/my-laptop-backup/coreimage.dmg
Dove:
/dev/ebs-disk-001 -> /mnt/EBS/my-desktop-backup
/dev/ebs-disk-002 -> /mnt/EBS/my-laptop-backup
etc.
etc.
o
backup-host.yourdomain.com:
/mnt/EBS/my-desktop-backup_coreimage.dmg
/mnt/EBS/my-laptop-backup_coreimage.dmg
Dove:
/dev/ebs-disk-001 -> /mnt/EBS
Il backup iniziale richiederebbe molto tempo per la sincronizzazione, ma se si utilizza rsync per la sincronizzazione, alla fine è possibile far sì che l'immagine remota raggiunga le modifiche dell'immagine locale.
Una volta raggiunto, è quindi possibile avviare uno snapshot EBS sul lato Amazon per il volume EBS contenente l'immagine crittografata.
Risciacquare e ripetere per ogni periodo di backup + istantanea di cui si desidera eseguire il backup sul server remoto, tenendo conto dei seguenti elementi / requisiti:
- L'immagine crittografata deve essere smontata.
- La copia dell'immagine remota deve essere sincronizzata al 100% con l'immagine locale non montata.
- L'istantanea deve essere eseguita con il volume EBS remoto sincronizzato, i buffer del file system svuotati e senza modifiche in sospeso.
Con questo, sarai in grado di eseguire i backup incrementali utilizzando la tecnologia cloud di Amazon.
S3 ha alcune serie limitazioni, che non soddisferebbero le tue esigenze, per questo particolare scopo.
L'istanza EC2, se completamente supportata da EBS, può essere chiusa quando non si esegue una sincronizzazione remota. Ad esempio, quando il backup inizia, puoi farlo avviare l'istanza tramite l'API EC2 di Amazon e ottenere il nome dinamico o l'indirizzo IP. Una volta confermato che è attivo, può dare il via al backup rsync. Al termine, può arrestare l'immagine remota e avviare un'azione di snapshot del volume Amazon EBS.
Modificare:
rsync fa differenze a livello di blocco / blocco per file più grandi. È possibile specificare la dimensione del blocco diff:
--block-size=SIZE
È inoltre possibile specificare il flusso di dati da inviare al server remoto da comprimere, risparmiando sul traffico.
Avvertenze su S3 vs EBS:
A meno che la soluzione utilizzata non supporti la suddivisione del singolo file di grandi dimensioni in segmenti e l'invio in parallelo, Amazon S3 limita i dati inviati a meno di 400 KB / sec dopo una determinata dimensione.
Uso i backup differenziali rsync sui miei server su S3 come tarball compressi. Anche con dimensioni tarball di circa 500 MB, S3 accelererà. Per ovviare a questo, è necessario dividere il file che si sta inviando in parti, altrimenti il backup su S3 richiederà per sempre.
Considerando che un'istanza EC2 con volumi EBS sarà più veloce e non richiederà la necessità di dividere i file, semplificando il backup e il ripristino.