Empujar archivos grandes a más de 500 computadoras

24

Trabajo con un equipo para administrar 500-600 computadoras con Windows 7 alquiladas para una conferencia anual. Tenemos una gran cantidad de datos que deben sincronizarse con estas computadoras, hasta 1 TiB. Las computadoras se dividen en salas y se conectan a través de conmutadores gigabit no administrados. Preparamos estas computadoras con anticipación con la instalación y configuración de Windows, más cualquier archivo que tengamos disponible antes de enviar la imagen base para que la compañía de alquiler la reproduzca. Todos los años, contamos con un enfoque de presentadores en el sitio con hasta una gran cantidad de datos que deben llevarse a la sala en la que se presentarán. A veces solo tienen unos pocos archivos de tamaño pequeño, como un PDF de diapositivas, pero pueden a veces puede ser mucho más grande> 5 GiB.

Nuestra estrategia actual para enviar estos archivos es usar scripts por lotes y RoboCopy. Para los empujes grandes, en realidad usamos un cliente BitTorrent para generar un archivo torrent, y luego usamos el lote-RoboCopy para empujar el torrent a una carpeta en las máquinas remotas que está siendo monitoreado por un cliente BT instalado. Muchas veces, estos datos deben enviarse inmediatamente con una pequeña ventana de tiempo. Tenemos varias máquinas en una sala de control que son idénticas a las máquinas en el piso que usamos para estos empujes.

Ocasionalmente tenemos la necesidad de ejecutar un programa en las máquinas remotas, y actualmente utilizamos lotes y PSexec para manejar esta tarea.

Nos encantaría poder responder a estos empujones de última hora con "lo siento, es tu culpa", pero no sucederá. El método BT nos ha permitido tener un tiempo de respuesta mucho más rápido, pero todo el proceso por lotes puede ser complicado cuando hay varios trabajos que se envían. Utilizamos Enterprise Ghost para otros procesos, y no funciona bien en esta gran escala, además es realmente bastante costoso para una tarea anual como esta.

EDITAR: Hay un requisito difícil de que las máquinas remotas en el piso ejecuten Windows. Las máquinas de control no tienen un requisito de sistema operativo difícil. Realmente me gustaría alejarme de Multicast debido a complicaciones con los enrutadores ascendentes. ¿Es Multicast o BitTorrent la mejor manera de hacerlo? ¿Hay otro protocolo que podría funcionar mejor?

WMIF
fuente
3
Como una pregunta bien escrita, me duele decir que las preguntas de compras no están incluidas en ninguno de los sitios de Stack Exchange . Ver preguntas y respuestas es difícil, vamos de compras y las preguntas frecuentes para obtener más detalles.
Chris S
I would really like to stay away from Multicast because of complications with upstream routers.¿Puedes explicar por qué?
Zoredache
2
Honestamente, aparte de desenterrar una solución de multidifusión, su proceso de BitTorrent y PSExec de cosecha propia parece lo mejor que puede hacer. Es posible que desee para envolver algunos PowerShell alrededor de ella para bonito / aras de automatización, pero eso es la mejor sugerencia que puedo darle ...
voretaq7
@ Zoredache- Honestamente, es en parte porque no tengo suficiente experiencia con multidifusión. He tratado con Ghost y multicast, y realmente no he obtenido muy buenos resultados. El equipo aguas arriba pertenece a la instalación con la que tenemos contrato, y hemos tratado con algunos grupos de TI bastante difíciles en algunos lugares. No esperaría que ninguno de sus empleados supiera qué es la multidifusión.
WMIF
@ voretaq7- He considerado poner una interfaz sobre nuestra estructura, pero me sería difícil hacerlo en PowerShell. Ha sido doloroso para mí aprender PS, principalmente porque es un comportamiento muy diferente de los lenguajes más estructurados. Si pongo una interfaz sobre él, lo más probable es que esté en C #.
WMIF

Respuestas:

12

Realmente desea un programa de transferencia de archivos de multidifusión: UFTP , con documentación decente y extensiones de estilo proxt para NAT / enrutador transversal también.

Chris S
fuente
Todavía estoy revisando la documentación del enlace que proporcionó, pero todavía no veo ninguna mención de las cosas de multidifusión de nivel inferior. Con eso quiero decir, ¿esto todavía depende del punto de encuentro de multidifusión que se establecerá en algún enrutador de la cadena? Confío en la ubicación para proporcionar mi puerta de enlace, por lo que no tengo mi propio enrutador central que pueda proporcionar esta función. ¿UFTP tiene alguna forma de emular eso dentro del software?
WMIF
Este es el tipo de resultados que obtengo a menudo cuando trato con multidifusión, y por qué dije que me gustaría alejarme de él. serverfault.com/questions/56487/…
WMIF
No estoy familiarizado con el software o el hardware de esa pregunta, pero no he experimentado problemas como ese en mis configuraciones. La multidifusión se ejecutará a la velocidad del cliente más lento, por lo que si tiene diferentes "estratos" de velocidades del cliente, es posible que desee ejecutar varias sesiones de multidifusión para cada estrato (sin embargo, no afecta el tiempo final de finalización, solo permite que las computadoras más rápidas terminen cuanto antes). Los conmutadores y enrutadores intermedios tienen que admitir multidifusión, los servidores proxy pueden mitigar eso hasta cierto punto, pero si desea rendimiento necesitará una infraestructura de red confiable / capaz.
Chris S
Los conmutadores involucrados para la infraestructura de esta pregunta no están administrados. Los enrutadores serán diferentes para cada ubicación, y no puedo garantizar que admitan la multidifusión. ¿Hay alguna manera de que pueda tener mi propio enrutador colgando a un lado, pero aún así estar involucrado con la parte de multidifusión? Pregunto porque no creo que sea posible.
WMIF
La administración no afecta directamente un soporte de conmutación para multidifusión. Todos los conmutadores Ethernet de 1 GB son necesarios para admitir Multidifusión (aunque los antiguos y particularmente baratos lo implementan como difusión, lo que hace el trabajo); Los interruptores más viejos generalmente ya hicieron esto. La falta de soporte del enrutador es la razón por la que necesitaría la configuración de proxies (una para cada segmento de red aislado de multidifusión). Obviamente, usar enrutadores que admitan multidifusión será lo más fácil, pero configurar servidores proxy no es terrible (a menos que haya una gran cantidad de ellos).
Chris S
5

Es posible que desee investigar el asesinato

El asesinato es un método de usar Bittorrent para distribuir archivos a una gran cantidad de servidores dentro de un entorno de producción. Esto permite implementaciones escalables y rápidas en entornos de cientos a decenas de miles de servidores donde los sistemas de distribución centralizados no funcionarían de otra manera

.

El asesinato fue desarrollado por la gente de Twitter y lo usan a diario para distribuir archivos.

Jens Timmerman
fuente
4

Es posible que haya aparecido una nueva solución: BitTorrent Sync

Edición posterior: en estos días, probablemente recomendaría el asistente de git-annex o la sincronización, pero hay muchas alternativas

ptman
fuente
¡No solo otro, sino uno muy bueno en este caso de uso, creo!
Argeman el
Estoy de acuerdo. Encontré esto en /. y actualmente estoy configurando algunos escenarios de prueba para ver si funcionará tan bien como parece.
WMIF
Acabo de hacer una prueba a gran escala con BT Sync, y descubrí que usa 239.192.0.0 para el tráfico multidifusión broadcast-ish. No tenía control sobre la infraestructura de red, así que no pude analizar completamente, pero esto estaba causando un aumento notable en el tráfico saliente de Internet. Combinado con algunos problemas generales de desajuste de sincronización de archivos, y causó suficientes problemas que tuve que cerrarlo. Desafortunadamente porque funcionaba maravillosamente en una escala menor de menos de 50 computadoras.
WMIF
1

Podría tener una idea para ti que ayudaría. Perdóneme porque no entiendo completamente por qué esto debe ser tan complejo, pero si su necesidad es mantenerlo simple para el usuario final y aún así hacer que los datos sean rápidos y fáciles de alcanzar dentro de una LAN, tal vez podría ir con un Dispositivo NAS. Tengo un Synology DS1812 + que puede RSYNC con otra unidad Synology o varios dispositivos con capacidad RSYNC, tiene una aplicación con capacidad para torrent llamada "Download Station", sé que puedes descargar archivos torrent desde el compartimento de la unidad y creo que también puedes crear o publicar un archivo torrent con esa aplicación para permitir que otros descarguen el archivo que necesitan. Tiene aplicaciones para dispositivos móviles tanto Apple como Android. También puede hacer transferencias FTP. Esta bahía de unidad podría darle la capacidad de enviarle un archivo rápidamente y luego dispersarlo entre la LAN de manera rápida y fácil. Sugiero colocar los datos dentro de la LAN solo para que los usuarios de LAN tengan un acceso más rápido, pero la belleza de estos dispositivos NAS es que pueden ponerlos en línea en cualquier lugar siempre que tengan una conexión rápida a Internet. Quizás uno de los dispositivos NAS Synology de gama más alta se ajuste a sus necesidades.

Synology tiene una interfaz virtual que puede revisar para darle una mejor idea de si esto sería útil para usted. Pegaré el siguiente enlace a la interfaz virtual

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

Este dispositivo también brinda a las personas la posibilidad de acceder a sus datos a través de una interfaz web o aplicación de dispositivo móvil.

Espero que esto ayude y, como dije, perdóname si no entiendo la pregunta correctamente.

Frank R
fuente
1
No estoy seguro de cómo eso es mejor de lo que está haciendo ahora. WMIF no puede querer esperar a que los usuarios comiencen a obtener los datos ellos mismos; se espera que su equipo prepare previamente los archivos de datos en las máquinas a medida que estén disponibles para ellos.
mfinni
@mfinni es correcto. El trabajo consiste en asegurarse de que los archivos que se nos proporcionan estén cargados en las computadoras de la sala de conferencias antes de que los asistentes entren en la sala.
WMIF