web-dev-qa-db-fra.com

Comment synchronisez-vous d'énormes fichiers clairsemés (images de disque VM) entre les machines?

Existe-t-il une commande, telle que RSYNC, qui peut synchroniser des fichiers énormes, rares, d'un serveur Linux à un autre?

Il est très important que le fichier de destination reste rare. Il peut être plus long (mais pas plus gros) que le lecteur qui le contient. Seuls les blocs modifiés doivent être envoyés sur le fil.

J'ai essayé rsync, mais je n'ai aucune joie. https://groups.google.com/forum/#!topic/mailing.unix.rsync/lposczgfe9m

Si j'écris un programme pour faire cela, je réinvente juste la roue? http://www.finalcog.com/synchronise-block-devices

Merci,

Chris.

23
fadedbee

J'ai fini par écrire un logiciel pour faire ceci:

http://www.virtsync.com

Ce logiciel commercial coûte 49 $ par serveur physique.

Je peux maintenant reproduire un fichier de 50 Go de race (qui contient 3 Go de contenu) en moins de 3 minutes à travers le haut débit résidentiel.

chris@server:~$ time virtsync -v /var/lib/libvirt/images/vsws.img backup.barricane.com:/home/chris/
syncing /var/lib/libvirt/images/vsws.img to backup.barricane.com:/home/chris/vsws.img (dot = 1 GiB)
[........>.........................................]
done - 53687091200 bytes compared, 4096 bytes transferred.

real    2m47.201s
user    0m48.821s
sys     0m43.915s 
4
fadedbee
rsync --ignore-existing --sparse ...

Pour créer de nouveaux fichiers en mode clairsemé

Suivie par

rsync --inplace ...

Pour mettre à jour tous les fichiers existants (y compris ceux qui sont créés précédemment) sur lesquels figurent.

22
Steve P

RSYNC Seuls les transferts Les modifications apportées à chaque fichier et avec-EnPlace ne doivent réécrire que les blocs qui ont changé sans recréer le fichier. De leur Caractéristiques de la page .

rSYNC est un programme de transfert de fichiers pour les systèmes UNIX. RSYNC utilise l'algorithme RSYNC "qui fournit une méthode très rapide pour apporter des fichiers distants en synchronisation. Cela le fait en envoyant uniquement les différences entre les fichiers sur le lien, sans exiger que les deux ensembles de fichiers soient présents à l'une des extrémités du lien au préalable.

À l'aide de --Enface devrait travailler pour vous. Cela vous montrera des progrès, comprimez le transfert (au niveau de la compression par défaut), transférer le contenu de l'annuaire de stockage local de récursivité (que la première étape de la barre oblique de finale), apporte les modifications apportées aux fichiers en place et utilisez SSH pour le transport.

rsync -v -z -r --inplace --progress -e ssh /path/to/local/storage/ \
[email protected]:/path/to/remote/storage/ 

J'utilise souvent le drapeau -a aussi, ce qui fait quelques choses de plus. C'est équivalent à -rlptgod, je laisserai le comportement exact pour que vous recherchiez la page de l'homme.

5
reconbot

Jetez un coup d'œil à Projet de stockage Zumastor Linux Il implémente la sauvegarde "Snapshot" à l'aide de binaire "rsync" via l'outil ddsnap.

De la page de l'homme:

dDSNAP fournit une réplication de périphérique de blocs donné une installation d'instantanée de niveau de bloc capable de contenir plusieurs instantanés simultanés de manière efficace. DDSNAP peut générer une liste de morceaux d'instantanés qui diffèrent entre deux instantanés, puis envoyez cette différence sur le fil. Sur un serveur en aval, écrivez les données mises à jour sur un périphérique de bloc d'instantané.

4
rkthkr

lvmsync Est-ce que cela.

Voici une transcription d'utilisation . Cela crée un instantané LVM sur la source, transfère la partition logique. Vous pouvez transférer des mises à jour incrémentielles des modifications depuis la création d'instantané aussi souvent que vous le souhaitez.

2
Tobu

Pourrait reproduire l'ensemble du système de fichiers être une solution? DRBD? http://www.drbd.org/

1
James C

Peut-être un peu étrange ici, mais j'ai découvert récemment que NFS gère cette amende.

Donc, vous exportez un répertoire sur une machine puis de la monter sur l'autre et que vous ne copiez simplement les fichiers avec des utils de base comme cp. (Certains utilitaires anciens/antiques peuvent avoir un problème avec des fichiers clairsemés.)

J'ai trouvé rsync notamment inefficace dans le transfert de fichiers clairsemés.

1
cstamas

Je ne suis pas au courant d'un tel utilitaire, uniquement des appels système qui peuvent le gérer, donc si vous écrivez un tel utilitaire, cela pourrait être plutôt utile.

ce que vous pouvez réellement faire est d'utiliser qemu-img convert pour copier les fichiers, mais cela ne fonctionnera que si la destination FS prend en charge les fichiers rataides

0
dyasny