Come utilizzare btrfs invio / ricezione per la trasmissione di snapshot di backup su una connessione di rete lenta e inaffidabile?


11

Mi piacerebbe usare la funzione di invio / ricezione di btrfs per trasmettere istantanee di backup su una connessione piuttosto lenta (seed iniziale di circa 50-100 GB, banda upstream con ~ 1-2 MB / s) e inaffidabile (interruzione forzata giornaliera su entrambe le estremità).

Vedo i seguenti requisiti:

  • trasferimento crittografato (generalmente ottenuto utilizzando un tunnel SSH)
  • robustezza alle connessioni interrotte

Sembra che ZFS sia in grado di riprendere automaticamente i trasferimenti interrotti , in modo simile a come fa rsync. Questo vale anche per BTRFS? La pagina wiki di invio / ricezione non è utile rispetto ai trasferimenti interrotti. Se btrfs riprendesse i trasferimenti interrotti, tutto ciò che dovrei fare è usare un tunnel SSH e riprendere se interrotto.

Altrimenti, dovrei usare un buffer tra di loro per assicurarmi che la connessione btrfs sopravviva agli interrupt, o avvicinare entrambi i server per il seeding (che sarà un problema rispetto ai file aggiunti che eccellono nella trasmissione giornaliera capacità e invio di istantanee).

Cosa dovrò considerare per la trasmissione del seme e delle istantanee?

Risposte:


8

Sto usando "btrfs send" per i backup per un po '. Esso non gestire ripresa di trasferimenti rotti. Ho scritto un'utility che fa i trasferimenti curriculum, e sincronizza automaticamente le istantanee nel file system locale Btrfs ad Amazon S3. Ti invitiamo a provarlo per vedere se aiuta, e mi piacerebbe qualsiasi feedback! È su GitHub ( https://github.com/AmesCornish/buttersink ) e su PyPi ( https://pypi.python.org/pypi/buttersink/ ).


Lo esaminerò sicuramente non appena avrò del tempo libero. Il tuo file Leggimi dice che il back-end ssh non è ancora implementato, questo significa che la sincronizzazione con un filesystem btrfs remoto è ancora in coda?
Jens Erat,

suona alla grande, ma sfortunatamente anch'io ho bisogno di SSH perché sia ​​utile.
Matthias Urlichs,

2
Il backend SSH è ora implementato (a partire da 0.6)
user80646

4

"invia" a un file o su una pipe. "ricevi" con il file o la pipe dall'altra parte. Con una connessione discutibile, probabilmente faresti meglio con i file e un trasporto come rsync.


1
giusto, è anche possibile dividere il file in più blocchi. Potrebbe essere meglio per rsync riprendere un trasferimento interrotto (o usare il --partial con rsync)
ascobol

1

Oltre al buttersinkcurriculum S3, btrbksupporta:

Ripresa dei backup (se la destinazione del backup non è stata raggiungibile per un po ')

Modifica: da allora ho appreso che il trasferimento dei singoli snapshot non viene ripreso btrbk, tuttavia si occuperà della destinazione del backup che non è in linea (riavviando il trasferimento dell'istantanea interrotta).


Sicuramente darò un'occhiata a btrbkcome implementa la ripresa dei trasferimenti, anche se in qualche modo non mi piace la scelta del linguaggio di programmazione, ma sembra implementare praticamente il set di funzionalità di cui ho bisogno.
Jens Erat,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.