jueves, 3 de enero de 2013

Hacer un balanceador en apache2 parte II

Poder configurar esto, resulta muy útil, cuando es necesario realizar un Balanceo de Carga y se posee un conjunto de servidores con características desiguales.
Supongamos que necesitamos mejorar nuestra configuración anterior, pues el primer nodo, solamente soporta el 40% de la carga de peticiones. Dejaremos al segundo nodo el 60% de las peticiones restantes.
La nueva configuración quedaría de la siguiente manera.
ProxyPass / balancer://cluster 
<Proxy balancer://cluster> 
    BalancerMember http://www.youtube.com loadfactor=4
    BalancerMember http://www.yahoo.com loadfactor=6
    ProxySet lbmethod=byrequests
</Proxy>
Guardamos el archivo, y reiniciamos nuestro servidor Apache. Si abrimos una ventana de explorador y la refrescamos 10 veces, podremos ver que 4 veces obtendremos el primer nodo, y 6 veces el segundo.
Existen otros dos métodos para el Balanceo de carga, los cuales son:
bytraffic
La idea detrás de este algoritmo es muy similar a byrequests; El factor de carga se define en cuantos bytes requerimos que cada nodo administre o maneje.
Esto puede representarse como un valor que muestra la cantidad de trabajo que se comparte entre los nodos del grupo.
Si modificamos nuestra configuración anterior, para que el método sea bytraffic, nos quedaría de esta manera.
ProxyPass / balancer://cluster 
<Proxy balancer://cluster> 
    BalancerMember http://www.youtube.com loadfactor=1
    BalancerMember http://www.yahoo.com loadfactor=2
    ProxySet lbmethod=bytraffic
</Proxy>
Con la configuración anterior, estamos indicando que el nodo 2 deberá procesar el doble de bytes que el nodo 1. Nota: Para términos de explicación, he utilizado dos nodos, o servidores de diferente tipo. Para que este Método de Balanceo funcione adecuadamente, debemos utilizar dos o mas nodos los cuales posean la misma aplicación destino. El rango de valores de load factor, corresponde a los enteros positivos de 1 a 100. Dependiendo del valor configurado, el servidor verificara los otros valores y configurara el balanceamiento de una manera proporcional.
bybusynesss
Este método de Balanceo de Carga mantiene un registro de cuantas peticiones han sido asignadas a cada nodo. De esta manera, las nuevas peticiones entrantes son enviadas al servidor con la menor cantidad de peticiones servidas o activas.
Este método resulta muy útil si, las peticiones entrantes son encoladas por los nodos, pues al direccionar las nuevas peticiones al servidor con menos carga activa, el nivel de las colas y la carga de los nodos se mantiene balanceado. Jamás se forzara a un servidor que ya se encuentra ocupado.
Todas las configuraciones anteriores muestran, a detalle como realizar un balanceo de carga, pero no nos muestra nada sobre las estadísticas o el estado de los nodos configurados. Para suplir este requerimiento el modulo mod_proxy_balancer cuenta con una interfaz que necesita ser activada en una carpeta especifica.
Antes de comenzar con la configuración debemos instalar un modulo que es necesario para el correcto funcionar el monitor de carga:
#a2enmod status
Y luego reiniciamos nuestro servidor Apache.
Luego tenemos que crear una nueva carpeta en la Raíz de nuestro espacio de trabajo:
#cd /var/www
#mkdir balancer-manager/
Una vez creada esta carpeta, tenemos que regresar al archivo de configuración de nuestro sitio de trabajo predeterminado, y colocar el siguiente código:
ProxyPass /balancer-manager !
<Location /balancer-manager>
    SetHandler balancer-manager
    Order deny,allow
    Allow from all
</Location>
Nuevamente reiniciamos nuestro servidor Apache.
En la siguiente parte finalizaremos con el tema de balanceo de cargas.


No hay comentarios:

Publicar un comentario