Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
N.O.S.
INDICE
I. OBJETIVO ......................................................................................................................................... 3
V. CONCLUSIÓN ................................................................................................................................ 11
Debido a los recursos disponibles, esta solución se desarrollo bajo maquinas virtuales (4) mas un
cliente que se utilizó para realizar las pruebas finales de aceptación, lo que en total nos deja con 5
maquinas virtuales.
III. DISEÑO
El sistema cuenta con un diseño limitado dada la estructura base en la cual se ha montado, pero
dentro de sus capacidades, esta puede soportar un sinnúmero de equipos trabajando
sincronizadamente, el cual permite un crecimiento lineal y exponencial a la plataforma en
cuestión.
Además, la configuración de red aplicada en este piloto no es imperativa para otro tipo de
soluciones, los equipos pueden trabajar dentro de redes privadas y públicas, permitiendo
optimizar la utilización de recursos en la empresa.
En la siguiente imagen (ref.: img. 1) podemos observar como la solución se compone de 5 nodos,
los cuales se dividen en:
- 2 Balanceadores (OpenMonkey)
- 2 WebServer (Apache v2)
- 1 PC Cliente.
Luego se encuentran los 2 Webserver, los cuales cumplen como función simplemente hospedar
contenido web. Esta solución puede ser complementada con un NAS para optimizar y asegurar la
disponibilidad de contenido (no aplicado en este piloto).
Img. 1
http://10.0.0.2/index.html
VIP: 10.0.0.2
Se realiza Heartbeat
para comprobar la
disponibilidad
10.0.0.3 10.0.0.4
cluster Apache
10.0.0.10 10.0.0.20
Solución Virtualizada
El cliente o consola virtual, será el responsable de visualizar el contenido y verificar que se esté
realizando la alta disponibilidad y balanceo de información.
IPVS (que quiere decir IP Virtual Server), es utilizado para realizar el balanceo de carga a
nivel del kernel de Linux, lo cual nos permite un IO optimizado (esto quiere decir que se
implementa una capa de transporte en capa 4 del modelo OSI).
Esta configuración es aplicada en los nodos lb01 y lb02
Una vez realizado esto, procedemos a cargar los modulos en el sistema (esto también se
puede realizar reiniciando la maquina, el problema es que al hacer esta opción, podríamos
no ver posibles errores que envíe el sistema al no tener soportada la funcionalidad de
IPVS).
modprobe ip_vs_dh
modprobe ip_vs_ftp
modprobe ip_vs 5
modprobe ip_vs_lblc
modprobe ip_vs_lblcr
modprobe ip_vs_lc
modprobe ip_vs_nq
En caso de obtener algún tipo de error, quiere decir que el kernel no soporta IPVS, por lo
cual se debe obtener una versión que si lo haga.
Ultra Monkey es un software desarrollado para montar una solución de balanceo de carga
(ldirectord) y alta disponibilidad (heartbeat) usando los componentes que contiene el
kernel del S.O. Linux.
Para esto, editaremos nuestro archivo de configuración de apt, el cual cuenta con los
repositorios de aplicaciones ubicado en /etc/apt/sources.list y añadiremos lo siguiente:
apt-get update
Utilizaremos esta opción para que los balanceadores de carga sean capaces de redirigir
tráfico hacia nuestro cluster de Apache. Esto lo realizamos añadiendo las siguientes líneas
en nuestro archivo /etc/sysctl.conf
vi /etc/sysctl.conf
Una vez realizado, guarder y ejecutar el siguiente commando (para que el sistema vuelva a 6
leer el archivo de configuración
sysctl –p
Recuerden que estos archivos deben ser idénticos en todos los balanceadores de carga
que tengan.
vi /etc/ha.d/ha.cf
logfacility local0
bcast eth0 # Linux
mcast eth0 225.0.0.1 694 1 0
auto_failback off
node loadb1
node loadb2
respawn hacluster /usr/lib/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster
Donde lb01 es el nombre del balanceador que estarán ocupando y la IP 10.0.0.2 es la VIP.
vi /etc/ha.d/haresources
lb01 \
ldirectord::ldirectord.cf \
LVSSyncDaemonSwap::master \
IPaddr2::10.0.0.2/24/eth0/10.0.0.255
vi /etc/ha.d/authkeys
auth 3
3 md5 cualquierstring
Donde “cualquierstring” como su nombre lo dice, puede ser cualquier palabra que se
desee, solo recorder que esto debe estar configurado en todos los nodos que utilizará para
implementar balanceo de carga.
Además modificaremos los privilegios del archive para que solo pueda ser visto por el
usuario root.
checktimeout=10
checkinterval=2
autoreload=no
logfile="local0"
quiescent=yes
virtual=10.0.0.2:80
real=10.0.0.10:80 gate
real=10.0.0.20:80 gate
fallback=127.0.0.1:80 gate
service=http
request="ldirector.html"
receive="Test Page"
scheduler=rr
protocol=tcp
Ahora para que nuestro demonio se arranque cada vez que iniciamos el S.O. deberemos
instanciarlo en la estructura de arranque de la siguiente manera:
ip addr sh eth0
vi /etc/sysctl.conf
# When making an ARP request sent through eth0 Always use an address
# that is configured on eth0 as the source address of the ARP request.
# If this is not set, and packets are being sent out eth0 for an address
# that is on lo, and an arp request is required, then the address on lo
# will be used. As the source IP address of arp requests is entered into
# the ARP cache on the destination, it has the effect of announcing this
# address. This is not desirable in this case as adresses on lo on the
# real-servers should be announced only by the linux-director.
net.ipv4.conf.eth0.arp_announce = 2
Para que el sistema vuelva a leer la configuración del demonio, ejecutamos el siguiente
comando.
sysctl –p
vi /etc/network/interfaces
auto lo:0
iface lo:0 inet static
address 192.168.0.105
netmask 255.255.255.255
pre-up sysctl -p > /dev/null
ifup lo:0
vi /var/www/ldirector.html
Test Page
10
Desde el punto de vista de virtualización, se debe tener claro si se planea virtualizar alguno de
estas funcionalidades, los requerimientos técnicos del huésped deben ser de muy alta
capacidad, con el fin de no estancar la capacidad de computo de cada nodo que preste
servicios, además deben ser capaces de ser sostenibles en el tiempo (es decir, tener holgura).
VI. REFERENCIA
El material ilustrado en este documento fue obtenido desde Internet desde sitios como
Wikipedia, Apache Foundation, Ultra Monkey (sitio oficial), y conocimiento personal de todos
los involucrados.
Links:
11