Copiez des fichiers volumineux sur plusieurs machines sur un LAN


9

J'ai quelques gros fichiers que je dois copier d'une machine Linux vers une vingtaine d'autres machines Linux, toutes sur le même LAN aussi rapidement que possible. Quels outils / méthodes seraient les meilleurs pour copier ces fichiers, sachant qu'il ne s'agira pas d'une copie unique. Ces machines ne seront jamais connectées à Internet et la sécurité n'est pas un problème.

Mise à jour:

La raison de ma demande est que (si je comprends bien), nous utilisons actuellement scpen série pour copier les fichiers sur chacune des machines et j'ai été informé que cela est "trop ​​lent" et qu'une alternative plus rapide est recherchée. Selon ce que l'on m'a dit, tenter de paralléliser les scpappels ralentit tout simplement davantage en raison des recherches sur le disque dur.


Définissez "grand". Des centaines de Mo / Go / To / plus?
Janne Pikkarainen,

Actuellement, le total se situe à environ 4 Gio (compressé), bien que cela puisse augmenter à l'avenir.
Jonathan Callen

Autrement dit, même en 2011 - PAS GRAND. Étant donné un lien 1gigabit qui est correctement commuté (standard en 2011), c'est assez facile à accomplir. Le faire fonctionner sur un serveur 10g (pas si rare même en 2011) ... enfin;)
TomTom

Réponses:


27

BitTorrent. C'est ainsi que Twitter déploie certaines choses en interne.

http://engineering.twitter.com/2010/07/murder-fast-datacenter-code-deploys.html (lien d'archive Web)


3
En plus de ma réponse (qui, je pense, fera du bon travail, si vous pouvez l'implémenter), la réponse ci-dessous pour NFS est très bonne. Un bon serveur NFS devrait mettre en cache les fichiers afin que vous ne continuiez pas à frapper le disque. De plus, avec cela, ne copiez pas les fichiers du serveur vers les clients. Initiez-le à partir du client et laissez le cache du serveur NFS vous aider.
mfinni

1
Assurez-vous de l'essayer dans un environnement non productif, dans la présentation, ils disent (iirc) que certains commutateurs ont beaucoup souffert lors des premiers déploiements en raison du nombre de paquets échangés.
Shadok

1
@psusi Pourquoi dites-vous qu'il doit envoyer toutes les données 20 fois? Une fois que les autres pairs ont une partie du fichier, ils peuvent commencer à envoyer eux-mêmes les pièces qu'ils ont aux autres pairs.
Jonathan Callen

2
Le problème pour l'OP n'est pas le LAN, c'est le disque sur le serveur central.
mfinni

1
@pSusi - la multidiffusion serait certainement une autre réponse valable. Postez cela comme une réponse, pas comme un coup sur ma réponse.
mfinni

12

Qu'en est-il de l' UFTP , il utilise la multidiffusion pour livrer des fichiers via UDP à plusieurs clients à la fois. Pas pour tout le monde et je ne suis pas un expert en la matière, mais on dirait qu'il fait ce que vous voulez.


1
Avertissement: cela nécessitera un équipement prenant en charge la multidiffusion.
user606723

J'espérais plutôt que ce serait sur le même vlan - réduisant l'impact de cette utilisation.
Chopper3

@ user606723: Tout n'est-il pas moderne? Peut-être que certaines ordures de consommation ne le font pas, mais je n'ai rencontré aucun problème de multidiffusion cassée depuis un moment. Trop l'utilise de nos jours. Je pense que Windows Active Directory utilise même la multidiffusion.
Zan Lynx,

Je n'ai en fait aucune expérience avec ce @ZanLynx. Je sais que de nombreux bureaux / laboratoires informatiques utilisent des commutateurs grand public / non gérés au dernier saut. Comment ces commutateurs se comporteront-ils avec la multidiffusion?
user606723

3

Avez-vous essayé de copier ces données avec rsync? Si vous avez un LAN 1 Gbit ou plus rapide, la copie sur 4 * 20 Go ne devrait pas être un problème.

À quelle fréquence cette copie se produira-t-elle? Est-ce important si cela prend quelques minutes pour terminer?



2

La configuration d'un partage NFS et le fait que chaque machine tire de ce référentiel partagé de fichiers volumineux serait probablement la méthode la plus rapide (NFS est très rapide et a peu de frais généraux).

Vous pouvez ajouter une ou deux cartes réseau supplémentaires au serveur source et les lier ensemble pour vous offrir un meilleur débit.

L'implémentation peut être un simple travail cron sur chaque serveur cible qui extrait aveuglément du partage toutes les heures / jour / peu importe. Vous pouvez également configurer un démon pour rechercher de nouveaux fichiers; vous pouvez également simplement écrire une session de contrôle sur SSH (avec des paires de clés) dans chaque boîte cible et leur demander de récupérer le fichier lorsque vous exécutez votre script.


1
Je crois que mon prédécesseur a tenté d'utiliser NFS pour cela et a constaté que (à l'époque), le cache RAM n'était pas assez grand pour l'ensemble du transfert, ce qui faisait que la charge sur le disque dur devenait le facteur limitant au lieu du réseau la vitesse.
Jonathan Callen
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.