Balanceo de carga para un servidor FTP, Experimento

Iniciado por T0rete, 19 Enero 2011, 15:24 PM

0 Miembros y 1 Visitante están viendo este tema.

T0rete

Temporalmente tengo 2 ADSL legítimos y contratados. No se por cuanto tiempo pero van a ser días por lo que no tengo mucho tiempo y hay que acertar en las pruebas y no se pueden hacer cosas al tun-tun porque pierdo un tiempo que no tengo.

El problema es que el protocolo FTP no se puede balancear con pfsense ni con los otros bsd-linux que he probado. Lo único que se me ocurre es hacer balanceo en el cliente y en el servidor por software. Ademas el uso de dns dinamico hace que el balanceo no se pueda hacer a nivel de los routers.

En el cliente la aplicación creo que podría ser el DownThemAll que permite conexiones paralelas a dos servidores para descargar un mismo archivo. Voy a ver si soporta ftp.
En este caso no seria dos servidores fisicos distintos sino dos direcciones que apuntan cada una a un ADSL y los dos routers estarian conectados al mismo servidor.

El problema es hacer correr una o dos instancias del servidor FTP cada una por una conexion y encontrar una aplicación cliente que pueda conectarse a dos direcciones FTP distintas para descargar un mismo archivo.

Alguien quiere aportar ideas. Por supuesto que la solución que propongo no es la única, esto abierto a propuesta razonadas.

T0rete

El cliente creo que va a tener que ser flashget porque en las features del Downthemall no veo por ningún lado FTP. Espero que el flashget si permita seleccionar dos fuentes para un mismo archivo.

Novlucker

Downthemall si tiene soporte para FTP, pero lo que no creo es que tenga soporte para descargar simultaneamente de varios servidores, ya que hace un tiempo incluso no se podía pausar las descargas porque luego no podía retomarlas :-\
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

T0rete

Si permite seleccionar dos mirrors para un mismo archivo lo que no se si esa caracteristica funciona para el protocolo FTP.

Novlucker

Claro, era lo que quería decir, con el FTP es donde tiene problemas.
Por lo que acabo de ver smartftp también tiene soporte para metalinks

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

T0rete

#5
Cliente que permita dos mirrors FTP para un mismo archivo. CONSEGUIDO


Bajando una iso de Centos desde dos ftps

Para que funcione hay que aumentar el numero de conexiones y de partes y habilitar carpeta para temporales, guardamos el enlace en el downthemall pero con la descarga pausada. Copiamos el otro enlace del otro FTP, vamos a gestor de descargas del downthemall, boton derecho en la descarga y selecionamos "Avanzados" -> Gestionar mirrors, le damos y añadimos el otro enlace.

Vamos a ver que tal sale lo del balanceo de parte del servidor.

PD: no estoy seguro de si esta realmente aprovechando los dos mirror, habrá que hacer una prueba con uno solo de ellos cuando termine la descarga.

madpitbull_99

En teoría (documentación de Microsoft) con WLBS se puede hacer balanceo de carga FTP.

Citar
Launch the FTP server and WLBS.

Configure a port rule that ranges from 20 to 21 for communication within the WLBS application. Configure protocol TCP and Affinity. Click "Add" to specify the new port rule. Set it to "Single or Class C" to designate that the data and connections are managed by the same server.

Configure a port rule that ranges from 1024 to 65535 within the WLBS application. Configure protocol TCP and Affinity. Click "Add" to specify the new port rule. Set it to "Single or Class C" to keep data and connections under one server.

En Linux/BSD tiene que haber alguna forma de hacerlo, se me ocurre hacer algo con LVS y Iptables para balancear FTP, aunque no estoy muy seguro si es lo que quieres.

Seria usando reglas y maquinas virtuales, como en este tutorial. Claro que, hay que planificarlo bien primero.

Si se me ocurre otra cosa, te cuento.



«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red

T0rete

Casi estaba el asunto cuando surgió un EPIC FAIL :xD

-El cliente hace peticiones FTP a las dos direcciones dinamicas serv1 y serv2
-Las direcciones apuntan al router1 y router2 y trasladan la peticion por NAT a la ip del ftp 192.168.1.3
-Los dos routers estan unidos y el router2 envia su peticion por el router1 a servidor al que esta conectado.

(si pongo dos tarjetas de red y no uno los routers entonces si hay que balancear carga en el servidor)

Y ahora viene el epic fail :xD el cliente entra de forma pasiva y el ftp debe saber la ip externa del propio servidor y claro, la forma que tiene de comprobarlo es a puntando el Fillezilla FTP a una direccion que tiene y le devuelve la ip externa. Solo puede ver una ip externa, la del router1 y las peticiones que vienen por el router2 no son atendidas.

La solucion es tener un cliente que permita el modo activo del FTP y pueda conectarse a dos mirrors para un mismo archivo y desgraciadamente eso no lo hace el downthemall.

Estudiaré lo de mad pero el problema esta antes de llegar al servidor.

T0rete

tengo 10 megas contratadas y el resultado de los test de velocidad es este:


Ahora si son 10 megas reales aunque sean dos ADSL de 10 megas :xD

T0rete

Para solucionar el problema del balanceo en el servidor y el tema de modo pasivo he puesto otro sowtware servidor en el mismo server por otro rango de puertos. De este modo la única parte en la que hay balanceo es en el cliente.

Si el martes sigo teniendo las dos conexiones probare una solucion de balanceo en el servidor sin la chapu de las dos instancias de software servidor.