Heartbeat

Con la Alta disponibilidad y la replicación distribuida de datos, podemos conseguir que además de ese servidor principal, tengamos otro mas (o varios) que tengan los mismo servicios y datos. De esta manera, en caso que el servidor principal falle o se sature, el servidor secundario empezará a atender las nuevas peticiones, bajando de esta manera la carga del principal.

Todo esto depende de la manera en que se configure,  si quisieramos balancear la carga y poder añadir mas de un nodo al cluster tendriamos que configurar HeartBeat como CRM. En el caso que a mi se me planteaba no era necesario un balanceador de carga ni mas de 2 nodos lo he configurado sin CRM, permitiendo solo 2 nodos en la red.

En primer lugar configuraremos heartbeat con apache, para mas tarde añadir MySQL. Los datos los sincronizaremos con rsync sobre ssh.
El primer paso es instalar HeartBeat en ambas maquinas, para proporcionar la alta disponibilidad de los servicios y chkconfig para replicar los ficheros de configuración. Tambien instalaremos apache y mysql que serán los primeros servicios que replicaremos.

# aptitude install heartbeat apache2 mysql-server

Una vez instalado, añadimos al fichero hosts los nombres de los servidores que formaran el cluster con su ip:

# nano /etc/hosts
127.0.0.1    localhost
192.168.10.10    master.casa.local   master
192.168.10.11    slave.casa.local   slave

Ahora pasamos a modificar los ficheros de configuración del servicio, que estarán situados en /etc/ha.d/:

# nano /etc/ha.d/ha.cf

#Archivos de log de HB
debugfile /var/log/ha-debug
logfile /var/log/ha-log
keepalive 2

# tiempo en segundos en el que se considera un sistema como 'muerto' si no responde
deadtime 10

# puerto de comunicacion por la interfaz de red
udpport 694

# interfaz de red para el heartbeat
bcast eth0

# se define el auto_failback en off para que el servicio solo se balancee ante el fallo de uno de los nodos
auto_failback off

# definicion de nodos del cluster
node master.casa.local
node slave.casa.local

# definimos la IP donde se realiza ping constantemente para comprobar la correcta conectividad del nodo
ping 192.168.10.1

#Deshabilitamos el CRM, ya que solo tenemos dos nodos conectados
crm off

AUTHKEYS

auth 2
# 1 crc your_secret_password
2 sha1 your_secret_password
# 3 md5 your_secret_password

Ahora replicaremos los ficheros de configuracion al servidor secundario mediante SCP e iniciamos el servicio en ambos nodos. Si todo ha ido bien, al desconectar el cable en el servidor primario, el secundario levantará una interfaz de red con la IP del primario.

Anuncios

Fallo al iniciar MySQL [log_bin]

Post Recordatorio

Hoy al iniciar mysql-server en debian me ha saltado este error:

/etc/init.d/mysql: ERROR: Using expire_logs_days without log_bin crashes the server. See README.Debian.gz invoke-rc.d: initscript mysql, action “start” failed.

Para solucionarlo debemos descomentar una o dos lineas en el fichero /etc/mysql/my.cnf, buscamos la linea log_bin y la descomentamos, de manera que quede asi:

log_bin = /var/log/mysql/mysql-bin.log

expire_logs_days = 10

max_binlog_size = 100M

Ahora solo queda guardar los cambios y encender el servidor mysql

Protegiendo Grub

Por temas de trabajo, el otro día tuve que meterle contraseña a una entrada del grub, de manera que al querer acceder tuvieras que introducirla para poder encender el SO, de paso, se protege también el editar los parámetros de arranque. Vamos a ello.

Primero vamos a introducir la contraseña que queremos:

root@astaroth:~# grub-md5-crypt
Password:
Retype password:
$tu-chorro-de-caracteres

Ahora editamos el fichero “menu.lst”, buscamos el apartado “password [‘–md5’] passwd” y lo dejamos asi:

## password [‘–md5’] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line)  and entries protected by the
# command ‘lock’
# e.g. password topsecret
#      password –md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret
password –md5 $tu-chorro-de-caracteres

De esta manera ya tenemos protegido el grub con nuestra contraseña, ahora vamos a hacer que solicite la misma contraseña cuando accedamos a una partición concreta, en mi caso, la de recuperación de Windows Vista que viene con el portátil.

title           [recovery] Microsoft Windows Vista Home Premium
lock
root            (hd0,5)
savedefault
makeactive
chainloader     +1

Lo único que hemos añadido es el comando “lock” entre el titulo y la partición, ahora solo nos queda reiniciar y probarlo.

Instalacion de BCM4318 [AirForce One 54g] [II]

Hace tiempo escribí un post sobre como instalar la BCM4318 en Ubuntu GNU/Linux, ahora probe a instalarla en debian, y lo hice con ndiswrapper, y a verdad es que es mucho mas estable que con bcm43xx-fwcutter

Si tenemos ndiswrapper instalado, procedemos a descargar el modulo del kernel:

# rmmod ndiswrapper

Le decimos a ndiswrapper donde esta el driver

# ndiswrapper -i [ruta_archivo]/bcmwl5.inf

vemos si ha instalado correctamente el driver

# ndiswrapper -l

Cargamos ndiswrapper en el kernel

# modprobe ndiswrapper

Una vez esto hecho, no me funcionaba, por lo que instale este paquete.
Para ello:

# wget http://wifislax.com/modulos-extra/broadcom-wifislax-injects.tar.gz
# tar -zxvf broadcom-wifislax-injects.tar.gz
# cd broadcom-wifislax-injects
# install.sh —> EDITAR y CAMBIAR LA VERSION DEL KERNEL POR LA VUESTRA

Saludos