Große Dateien auf über 500 Computer übertragen

24

Ich arbeite mit einem Team zusammen, um 500 bis 600 gemietete Windows 7-Computer für eine jährliche Konferenz zu verwalten. Wir haben eine große Datenmenge, die mit diesen Computern synchronisiert werden muss, bis zu 1 TiB. Die Computer sind in Räume unterteilt und über nicht verwaltete Gigabit-Switches miteinander verbunden. Wir bereiten diese Computer im Voraus mit der Windows-Installation und -Konfiguration sowie allen Dateien vor, die uns zur Verfügung stehen, bevor wir das Basisimage zur Replikation an den Vermieter senden. Jedes Jahr haben wir Moderatoren vor Ort, die bis zu eine Menge Daten in den Raum bringen müssen, in dem sie präsentieren werden. Manchmal haben sie nur wenige kleine Dateien, wie z. B. eine PDF-Folie, können dies aber manchmal viel größer sein> 5 GiB.

Unsere derzeitige Strategie zum Übertragen dieser Dateien besteht in der Verwendung von Stapelskripten und RoboCopy. Für die großen Pushs verwenden wir tatsächlich einen BitTorrent-Client, um eine Torrent-Datei zu generieren, und verwenden dann Batch-RoboCopy, um den Torrent in einen Ordner auf den Remotecomputern zu verschieben, der von einem installierten BT-Client überwacht wird. Oft müssen diese Daten sofort mit einem kleinen Zeitfenster übertragen werden. Wir haben mehrere Maschinen in einem Kontrollraum, die mit den Maschinen auf dem Boden identisch sind, die wir für diese Schübe verwenden.

Gelegentlich müssen wir ein Programm auf den Remotecomputern ausführen, und wir verwenden derzeit Batch und PSexec, um diese Aufgabe zu erledigen.

Wir würden gerne in der Lage sein, auf diese Last-Minute-Pushs mit "Entschuldigung, deine Schuld" zu antworten, aber es wird nicht passieren. Die BT-Methode hat uns eine viel schnellere Antwortzeit ermöglicht, aber der gesamte Stapelprozess kann unübersichtlich werden, wenn mehrere Aufträge übertragen werden. Wir verwenden Enterprise Ghost für andere Prozesse, und es funktioniert in diesem großen Maßstab nicht gut. Außerdem ist es für eine Aufgabe wie diese, die einmal im Jahr durchgeführt wird, recht teuer.

BEARBEITEN: Es besteht eine strenge Anforderung, dass auf den Remote-Computern auf dem Boden Windows ausgeführt wird. Die Steuerungsmaschinen haben keine harten Betriebssystemanforderungen. Ich würde mich wirklich gerne von Multicast fernhalten, da es Probleme mit Upstream-Routern gibt. Ist Multicast oder BitTorrent der bessere Weg, dies zu tun? Gibt es ein anderes Protokoll, das möglicherweise besser funktioniert?

WMIF
quelle
3
Als gut geschriebene Frage schmerzt es mich zu sagen, dass Einkaufsfragen auf allen Stack Exchange- Sites nicht zum Thema gehören. Siehe Q & A ist schwer, lass uns einkaufen gehen und die FAQ für weitere Details.
Chris S
I would really like to stay away from Multicast because of complications with upstream routers.Können Sie näher erläutern, warum?
Zoredache
2
Abgesehen davon, dass Sie eine Multicast-Lösung ausgraben, klingt Ihr selbst entwickelter BitTorrent- und PSExec-Prozess nach dem Besten, was Sie tun können. Vielleicht möchten Sie aus Gründen der Automatisierung PowerShell darum wickeln, aber das ist der beste Vorschlag, den ich Ihnen machen kann ...
voretaq7
@Zoredache- Ehrlich gesagt liegt es teilweise daran, dass ich nicht genug Erfahrung mit Multicast habe. Ich habe mich mit Ghost und Multicast beschäftigt und nicht wirklich gute Ergebnisse erzielt. Die vorgeschaltete Ausrüstung gehört zu der Einrichtung, mit der wir einen Vertrag abgeschlossen haben, und wir haben an einigen Standorten mit einigen ziemlich schwierigen IT-Gruppen zu tun. Ich würde nicht erwarten, dass einer ihrer Mitarbeiter überhaupt weiß, was Multicast ist.
WMIF
@ voretaq7- Ich habe darüber nachgedacht, eine Schnittstelle über unsere Struktur zu legen, aber ich würde es schwer haben, es in Powershell zu tun. Es hat mir wehgetan, PS zu lernen, vor allem, weil es sich stark von den strukturierten Sprachen unterscheidet. Wenn ich eine Schnittstelle darüber lege, würde es höchstwahrscheinlich in C # sein.
WMIF

Antworten:

12

Sie möchten wirklich ein Multicast-Dateiübertragungsprogramm: UFTP mit anständiger Dokumentation und proxt-artigen Erweiterungen für NAT / Router-Traversierung.

Chris S
quelle
Ich suche immer noch in der Dokumentation nach dem Link, den Sie angegeben haben, aber ich sehe noch keine Erwähnung des Multicast-Materials auf niedrigerer Ebene. Verlässt sich dies immer noch auf den Multicast-Rendezvous-Punkt, der in einem Router der Kette eingerichtet werden muss? Ich verlasse mich auf den Standort, um mein Gateway bereitzustellen, sodass ich keinen eigenen zentralen Router habe, der diese Funktion bereitstellen kann. Hat UFTP eine Möglichkeit, dies in der Software zu emulieren?
WMIF
Dies ist die Art von Ergebnissen, die ich oft im Umgang mit Multicast erhalte, und warum ich angegeben habe, dass ich mich davon fernhalten möchte. serverfault.com/questions/56487/…
WMIF
Ich bin mit der Software oder Hardware dieser Frage nicht vertraut, aber ich habe in meinen Setups keine derartigen Probleme festgestellt. Multicast wird mit der Geschwindigkeit des langsamsten Clients ausgeführt. Wenn Sie also unterschiedliche "Schichten" von Client-Geschwindigkeiten haben, möchten Sie möglicherweise mehrere Multicast-Sitzungen für jede Schicht ausführen (dies wirkt sich jedoch nicht auf die endgültige Abschlusszeit aus, sondern ermöglicht lediglich die Beendigung schnellerer Computer früher). Die Intermediate-Switches und -Router müssen Multicast unterstützen. Proxys können dies bis zu einem gewissen Grad abschwächen. Wenn Sie jedoch Leistung wünschen, benötigen Sie eine zuverlässige / leistungsfähige Netzwerkinfrastruktur.
Chris S
Die für die Infrastruktur dieser Frage beteiligten Switches sind alle nicht verwaltet. Die Router sind für jeden Standort unterschiedlich, und ich kann nicht garantieren, dass sie Multicast unterstützen. Gibt es eine Möglichkeit, meinen eigenen Router zur Seite hängen zu lassen, aber trotzdem am Multicast-Teil beteiligt zu sein? Ich frage, weil ich nicht denke, dass es möglich ist.
WMIF
Die Verwaltung wirkt sich nicht direkt auf eine Switching-Unterstützung für Multicast aus. Alle 1-GB-Ethernet-Switches müssen Multicast unterstützen (obwohl alte und besonders billige diese als Broadcast implementieren, um die Arbeit zu erledigen). Ältere Switches haben dies in der Regel bereits getan. Der Mangel an Router-Unterstützung ist der Grund, warum Sie die Einrichtung von Proxys benötigen (einen für jedes Multicast-isolierte Netzwerksegment). Natürlich ist die Verwendung von Routern, die Multicast unterstützen, am einfachsten, aber die Konfiguration von Proxys ist nicht schrecklich (es sei denn, es gibt eine große Menge davon).
Chris S
5

Vielleicht möchten Sie sich mit Mord befassen

Mord ist eine Methode, mit der Bittorrent Dateien an eine große Anzahl von Servern in einer Produktionsumgebung verteilt. Dies ermöglicht skalierbare und schnelle Bereitstellungen in Umgebungen mit Hunderten bis Zehntausenden von Servern, in denen zentralisierte Verteilungssysteme sonst nicht funktionieren würden

.

Murder wurde / wird von den Leuten bei Twitter entwickelt und sie verwenden es täglich, um Dateien zu verbreiten.

Jens Timmerman
quelle
4

Möglicherweise ist eine neue Lösung aufgetaucht: BitTorrent Sync

Später bearbeiten: Eigentlich würde ich heutzutage wahrscheinlich Git-Annex Assistant oder Syncthing empfehlen, aber es gibt viele Alternativen

ptman
quelle
Nicht nur eine andere, sondern eine sehr gute in diesem Anwendungsfall, denke ich!
Argeman
Genau. Ich fand das auf /. und ich richte gerade einige Testszenarien ein, um zu sehen, ob es so gut funktioniert, wie es sich anhört.
WMIF
Ich habe gerade einen umfangreichen Test mit der BT-Synchronisierung durchgeführt und festgestellt, dass sie 239.192.0.0 für Multicast-Broadcast-Verkehr verwendet. Ich hatte keine Kontrolle über die Netzwerkinfrastruktur und war daher nicht in der Lage, eine vollständige Analyse durchzuführen. Dies verursachte jedoch einen spürbaren Anstieg des ausgehenden Internetverkehrs. In Kombination mit einigen allgemeinen Problemen mit der Synchronisierung von Dateien, die zu Problemen führten, musste ich das Programm herunterfahren. Schade, weil es in kleinerem Maßstab mit weniger als 50 Computern wunderbar funktionierte.
WMIF
1

Ich könnte eine Idee für Sie haben, die helfen würde. Verzeihen Sie mir, ich verstehe nicht ganz, warum dies so komplex sein muss, aber wenn Sie es für den Endbenutzer einfach halten und die Daten dennoch schnell und einfach in einem LAN erreichen möchten, können Sie sich vielleicht für eine entscheiden NAS-Gerät. Ich besitze eine Synology DS1812 +, die mit einem anderen Synology-Laufwerk oder verschiedenen RSYNC-fähigen Geräten RSYNC-fähig ist. Sie verfügt über eine etwas torrentfähige Anwendung namens "Download Station" Veröffentlichen Sie eine Torrent-Datei mit dieser Anwendung, damit andere Benutzer die von ihnen benötigte Datei herunterladen können. Es hat Apps für mobile Geräte von Apple und Android. Es kann auch FTP-Übertragungen durchführen. In diesem Laufwerkschacht können Sie Dateien schnell und einfach an das LAN senden und dann im LAN verteilen. Ich empfehle, die Daten im LAN zu platzieren, um den LAN-Benutzern einen schnelleren Zugriff zu ermöglichen. Das Schöne an diesen NAS-Geräten ist jedoch, dass Sie sie überall online stellen können, solange sie über eine schnelle Internetverbindung verfügen. Vielleicht ist eines der High-End-NAS-Geräte von Synology genau das Richtige für Sie.

Synology hat eine virtuelle Benutzeroberfläche, die Sie durchsehen können, um eine bessere Vorstellung davon zu bekommen, ob dies für Sie nützlich wäre. Ich werde den Link unten in die virtuelle Oberfläche einfügen

http://www.synology.com/products/dsm_livedemo.php?lang=us

Mit diesem Gerät können Benutzer auch über eine Webschnittstelle oder eine Anwendung für mobile Geräte auf ihre Daten zugreifen.

Ich hoffe das hilft und wie gesagt, vergib mir, wenn ich die Frage nicht richtig verstehe.

Frank R
quelle
1
Ich bin mir nicht sicher, wie das besser ist als das, was er jetzt tut. WMIF muss nicht warten, bis die Benutzer die Daten selbst abrufen. Von seinem Team wird erwartet, dass es die Datendateien vorab auf den Maschinen bereitstellt, sobald sie für sie verfügbar sind.
Mfinni
@mfinni ist richtig. Die Aufgabe besteht darin, sicherzustellen, dass die Dateien, die wir erhalten, alle auf die Konferenzcomputer geladen werden, bevor die Teilnehmer den Raum betreten.
WMIF