J'ai 1 serveur source contenant environ 30 Go de fichiers que je souhaite copier sur 7 autres serveurs. Je SCP actuellement les fichiers sur les quatre premiers serveurs et lorsque ce transfert est terminé, SCP vers les 3 derniers serveurs.
Est-ce que l'utilisation de BitTorrent serait plus rapide pour distribuer les fichiers aux 7 à la fois? La connexion en interne est déjà rapide et cohérente entre chacun des serveurs. Je sais que cela prendrait probablement une certaine charge sur le serveur source, mais cela prendrait-il juste plus de temps pour distribuer les fichiers?
Qu'est-ce qu'un bon client scriptable que je pourrais utiliser à partir du shell? Je voudrais que tout le monde arrête de semer après 100%.
la source
L'avantage de BitTorrent par rapport aux autres outils de distribution de fichiers, par exemple rsync , est que les clients commencent à offrir leurs données aux autres clients, donc si le serveur a une connexion lente aux clients, le débit sera bien meilleur.
Cependant, BT est un protocole conçu pour le partage mondial. Vous devrez donc trouver un moyen de verrouiller tous les autres clients, mais les 7 que vous souhaitez nourrir (ou votre torrent se retrouvera bientôt sur The Pirate Bay).
En ce qui concerne l'arrêt à 100%, chaque client BT le fera: Aucun client ne demandant plus les données, il n'y aura plus d'ensemencement. L'application continuera de fonctionner mais ne fera que générer un petit filet de données entre les clients et le tracker pour leur indiquer qu'elles sont toujours disponibles.
Essayez le client BitTorrent d'origine écrit en Python. Cela vous permettra d'apporter toutes les modifications que vous désirez. Malheureusement, je ne trouve pas de lien ATM. N'importe qui?
[EDIT] Basé sur un commentaire saua : Si vous utilisez un tracker privé, vos torrents ne devraient pas se répandre de manière inattendue. Cela dit, vous ne devez utiliser un client torrent qu'à partir d'une source fiable. Sinon, vous pourriez risquer qu'un cracker ait mis une petite fonctionnalité supplémentaire dans le code qui publie des torrents privés quelque part où vous ne voulez pas qu'ils apparaissent.
la source
BitTorrent est une excellente idée si vous souhaitez répliquer des fichiers via une arborescence de serveurs sans par exemple avoir à émettre une commande à distance sur tous les serveurs pour copier depuis le même endroit; provoquant potentiellement un goulot d'étranglement.
Les ingénieurs de Twitter ont fait cela avec beaucoup de succès avec Murder, qui est maintenant sur github.
http://engineering.twitter.com/2010/07/murder-fast-datacenter-code-deploys.html
la source
Si tous les 8 de vos serveurs sont connectés à la même section du réseau à l'aide de Bit Torrent, il est peu probable d'accélérer les choses. En fait, vous obtiendriez tellement de collisions que ce serait probablement très lent. BitTorrent n'accélérerait les choses que si vous utilisez un réseau entièrement commuté et que les huit serveurs peuvent se parler indépendamment sans affecter la communication entre les autres serveurs.
la source