Comment utiliser l'envoi / réception btrfs pour transmettre des instantanés de sauvegarde sur une connexion réseau lente et peu fiable?

11

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

Je vois les exigences suivantes:

  • transfert crypté (généralement réalisé en utilisant un tunnel SSH)
  • robustesse aux connexions interrompues

Il semble que ZFS soit capable de reprendre automatiquement les transferts interrompus , comme le fait rsync. Est-ce que cela s'applique également au BTRFS? La page wiki d'envoi / réception n'est pas utile pour les transferts interrompus. Si btrfs reprendait les transferts interrompus, tout ce que j'aurais à faire serait d'utiliser un tunnel SSH et de reprendre s'il était interrompu.

Sinon, je devrais utiliser un tampon intermédiaire pour s'assurer que la connexion btrfs survit aux interruptions, ou rapprocher les deux serveurs pour l'amorçage (ce qui sera un problème en ce qui concerne les fichiers ajoutés qui excellent la transmission quotidienne capacités et envoi d'instantanés).

Que devrai-je prendre en compte pour transmettre la graine et les instantanés?

Jens Erat
la source

Réponses:

8

J'utilise "btrfs send" pour les sauvegardes depuis un moment. Il ne gère pas la reprise des transferts interrompus. J'ai écrit un utilitaire qui fait les transferts de curriculum vitae, et automatiquement des instantanés dans le système synchronise de fichiers Btrfs local pour Amazon S3. Vous êtes invités à l'essayer pour voir si cela aide, et j'aimerais avoir vos commentaires! C'est à la fois sur GitHub ( https://github.com/AmesCornish/buttersink ) et PyPi ( https://pypi.python.org/pypi/buttersink/ ).

user80646
la source
J'y reviendrai certainement dès que j'aurai du temps libre. Votre fichier Lisez-moi dit que le ssh-backend n'est pas encore implémenté, cela signifie que la synchronisation avec un système de fichiers btrfs distant est toujours dans la file d'attente?
Jens Erat
sonne bien, mais malheureusement j'ai aussi besoin de SSH pour que cela soit utile.
Matthias Urlichs du
2
Le backend SSH est maintenant implémenté (à partir de la version 0.6)
user80646
4

"envoyer" dans un fichier ou sur un canal. "recevoir" avec le fichier ou le tuyau à l'autre extrémité. Avec une connexion douteuse, vous feriez probablement mieux avec des fichiers et un transport comme rsync.

user66738
la source
1
à droite, il est même possible de diviser le fichier en plusieurs morceaux. Il peut être préférable pour rsync de reprendre un transfert interrompu (ou d'utiliser le --partial avec rsync)
ascobol
1

Outre buttersinkle curriculum vitae de S3, btrbkprend en charge:

Reprise des sauvegardes (si la cible de sauvegarde n'a pas pu être atteinte pendant un certain temps)

Edit: j'ai depuis appris que le transfert des instantanés individuels n'est pas repris btrbk, mais il traitera la cible de sauvegarde hors ligne (redémarrage du transfert de l'instantané interrompu).

Tom Hale
la source
Je vais certainement regarder btrbket comment il implémente la reprise des transferts, bien que je n'aime pas du tout le choix du langage de programmation - mais il semble implémenter à peu près l'ensemble de fonctionnalités dont j'ai besoin.
Jens Erat