A la hora de hacer una granja de servidores Web (es decir, varios servidores web sirviendo las mismas páginas o el mismo contenido mediante una sistema de balanceo) podemos optar generalmente por 3 opciones:
1.-Balanceador físico
2.-NLB
3.-Software de terceros para repartir carga entre los nodos
Hay veces incluso que se opta por monar un MSCS de IIS ó FTP, pero para una granja de servidores como tal lo más normal son los puntos anteriores. O incluso hacer algún desarrollo intero para ofrecer dicha posibilidad, pero lo más común es lo anterior
Sin duda, la primera opción sueñe ser la más cara pero suele ser la mejor opción -depende del balanceador, pero al estar hecho todo vía hardware se ofrecen posibilidad y opciones más robustas-
La tercera opción ya depende también del fabricante del producto y como lo implemente.
No voy a comenar mucho estas opciones porque no las incorpora el propio sistema que es donde me quiero centrar
Microsoft ofrece una forma de hacerlo mediante NLB que permite hasta 36 nodos (que se pueden ampliar en W2K3 con los anillos), el cual funciona básicamente así:
imaginemos que tenemos 3 servidores Web configurados por NLB para repartirse la carga; éste revisa qué servidor está más saturado o cuál menos, y en base a ello pasa la petición a un nodo u otro según la carga de éstos.
Si un nodo cae, el NLB lo detecta y deja de enviarle peticiones hasta que lo vuelve a ver arrancado.
Esto es a groso modo el funcionamiento simple de él.
NLB tiene un fallo; si el IIS cae (el IIS o cualquier servicio Web), éste no se entera...es decir, para dejar de repartir carga en ese nodo, éste debe estar apagado o caído, pero si cae el IIS intentará seguir pasándole peticiones (ya que no ve al server caído). Resultado: habrá peticones que acaben en error.
Por ello se puede pensar a veces en una solución alternativa para ello: el Round Robin por DNS
El Round Robin funciona del sigueinte modo: un mismo nombre en el dominio tiene asigandas varias entradas con distintas IP's; por ejemplo:
www-->192.168.0.1
www-->192.168.0.2
www-->192.168.0.3
Si un cliente hace una petición a www.dominio.elquesea, el servidor DNS le pasa como respuesta las 3 entradas así:
www-->192.168.0.1
www-->192.168.0.2
www-->192.168.0.3
Si un segundo cliente hace la misma petición después, el DNS se lo pasa así:
www-->192.168.0.3
www-->192.168.0.1
www-->192.168.0.2
Y si lo hace un tercero:
www-->192.168.0.2
www-->192.168.0.3
www-->192.168.0.1
Es decir, va cambiando el orden de preferencia de resolución para balancear la carga ante las peticiones.
Así, el primer cliente mira la respuesta y dice, voy a probar a conectar a www.dominio.elquesea por la IP 192.168.0.1, el segundo lo mismo pero con la 192.168.0.2 y el tercero con la 192.168.0.3, de este modo se balancea la carga también.
Pero es que además ocurre lo siguiente; si el primer cliente puede conectar con el servidor web por la 192.168.0.1 perfecto, usará siempre que pueda esta IP para coenctar a él y poder acceder al sitio web; pero, si el web server (que ni siquiera el servidor) está caído o parado por alguna causa, el lciente intenta conectar por la 192.168.0.1 por http...y ve que no hay respuesta; en vez de arrojar un fallo mira su caché DNS y decir...coñe!! si tengo más IP's que puedo usar para conectar a "www", y es entonces cuando vuelve a lanzar la petición http a la IP siguiente, en su caso la 192.168.0.2
Y así con todos los clientes; cuando el TTL de los registros DNS caduquen (por defecto en DNS de MS es 1 hora), se repite el proceso y el cliente volverá a pedir una resolución de nombres para "www", y puede o no, como es evidente, que se le devuelva en el anterior orden que tuvo o que haya cambiado por el balanceo :-)
Sin embargo la pega de ésto puede ser que en un momento determinado se quiera sacar unservidor del Round Robin por el motivo que sea y las estaciones cliente que ya tiene resuelto ese nombre con ese servidor incluido no se enteren hasta que les expire la caché DNS y vuelvan a solicitar el servidor DNS la resolución de nombre, por lo que puede llevar a demoras o a que ciertas aplicaciones fallen en ese momento :-(
De echo, ésto es lo más normal de usar e implementar en Internet, pudiendo ser después las IP's que se resuelven balanceadores físicos, por ejemplo.
Y como ejemplo calro, un equipo conectado a internet, si hace un nslookup para ver cómo se resuelve el dominio www.microsoft.com podrá ver la multitud de IP's que hay y que se "balancean" por Round Robin en los servidores DNS.
Un saludo
Javier Inglés
MS-MVP
e-m@il:jjingles2000@NOSPAMhotmail.com
<<<QUITAR "NOSPAM" PARA MANDAR MAIL>>>
Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no otorga ningún derecho
Leer las respuestas