Comment utiliser btrfs send / receive pour transmettre des snapshots de sauvegarde via une connection réseau lente et peu fiable?

Je voudrais utiliser la fonction d'envoi / réception de btrfs pour transmettre des snapshots de sauvegarde sur une connection plutôt lente (rupture initiale d'environ 50-100 Go, bande passante amont ~ 1-2 Mbits / s) et peu fiable (interruption forcée quotidienne sur les deux extrémités).

Je vois les exigences suivantes:

  • transfert crypté (généralement obtenu en utilisant un tunnel SSH)
  • robustesse aux connections interrompues

Il semble que ZFS soit capable de reprendre automatiquement les transferts interrompus , comme le fait rsync. Cela s'applique-t-il également à BTRFS? La page wiki d'envoi / réception n'est pas utile en ce qui concerne les transferts interrompus. Si btrfs reprendrait les transferts interrompus, tout ce que je devais faire est d'utiliser un tunnel SSH et de le reprendre en cas d'interruption.

Si ce n'est pas le cas, je devrais utiliser un tampon intermédiaire pour s'assurer que la connection btrfs survit aux interruptions ou que les deux servers soient proches l'un de l'autre (ce qui posera un problème pour les files ajoutés qui excèdent la transmission quotidienne capacités et envoi d'instantanés).

Que dois-je considérer pour transmettre la graine et les instantanés?

J'ai utilisé "btrfs send" pour les sauvegardes pendant un certain time. Il ne gère pas la reprise des transferts brisés. J'ai écrit un utilitaire qui reprend les transferts et synchronise automatiquement les instantanés dans le système de files btrfs local avec Amazon S3. Vous pouvez l'essayer pour voir si cela aide, et j'aimerais beaucoup de vos commentaires! C'est à la fois sur GitHub ( https://github.com/AmesCornish/buttersink ) et PyPi ( https://pypi.python.org/pypi/buttersink/ ).

"envoyer" à un file ou sur un tuyau. "recevoir" avec le file ou le tuyau à l'autre bout. Avec une connection douteuse, vous feriez probablement mieux avec des files et un transport comme rsync.

En plus du buttersink S3 de btrbk , btrbk prend en charge:

Reprendre les sauvegardes (si la cible de sauvegarde n'était pas accessible pendant un moment)

Edit: J'ai appris depuis que le transfert de snapshots individuels n'est pas repris avec btrbk , mais il va traiter la cible de sauvegarde hors ligne (redémarrer le transfert de l'instantané interrompu).