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

En ocasiones veo errores…

El fallo en cuestion es debido a falta de memoria RAM, estos cacharritos corren Windows XP…

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.

Highlighting en nano

Para habilitar el coloreado de sintaxis en nano solo tenemos que añadir unas lineas en nuestro fichero .nanorc (si no lo tenemos, lo creamos), las lineas a añadir son las siguientes:

include “/usr/share/nano/c.nanorc”
include “/usr/share/nano/sh.nanorc”
include “/usr/share/nano/html.nanorc”
include “/usr/share/nano/perl.nanorc”

Guardamos y ya tenemos la sintaxis de esos lenguajes coloreada. Por defecto nano trae varios ficheros, podéis verlos listando la carpeta /usr/share/nano/

Ademas de los que trae por defecto, existen mas disponibles por internet, por ejemplo nos podemos bajar este de php:

wget http://pbxinaflash.net/source/nano/php.nanorc

lo movemos a su directorio y lo incluimos en .nanorc.

xine no puede inicializar los controladores de sonido

Post recordatorio 🙂

Error de xine al cargar amaroK

Error de xine al cargar amaroK

Hay veces que sin venir a cuento, fallan los controladores de sonido, asi que para solucionarlo ejecutamos:

lemmke@astaroth:~$ sudo alsa force-reload
Terminating processes: 7524 23106 23106 23106 23106 (with SIGKILL:) 23106.
Unloading ALSA sound driver modules: snd-hda-intel snd-pcm-oss snd-mixer-oss snd -pcm snd-page-alloc snd-hwdep snd-seq-dummy snd-seq-oss snd-seq-midi snd-rawmidi snd-seq-midi-event snd-seq snd-timer snd-seq-device.
Loading ALSA sound driver modules: snd-hda-intel snd-pcm-oss snd-mixer-oss snd-p cm snd-page-alloc snd-hwdep snd-seq-dummy snd-seq-oss snd-seq-midi snd-rawmidi s nd-seq-midi-event snd-seq snd-timer snd-seq-device.

Lector de huellas digitales en Ubuntu 8.04/Debian

Hoy vamos a configurar nuestro lector de huellas!

Lo primero es que ubuntu (o la distro que usemos) nos lo reconozca, asi que:

root@astaroth:~$ lsusb | grep Fingerprint
Bus 001 Device 003: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader

Ok, lo coje, asi que procedemos a instalar los paquetes necesarios:

aptitude install libthinkfinger0 libpam-thinkfinger thinkfinger-tools

Ya lo tenemos instalado, asi que ahora vamos a probarlo, para eso, cuando tecleemos el comando y nos ponga “Please swipe your finger” pasar el dedo por el lector.

root@astaroth:~# tf-tool –acquire

ThinkFinger 0.3 (http://thinkfinger.sourceforge.net/)
Copyright (C) 2006, 2007 Timo Hoenig <thoenig@suse.de>

Initializing… done.
Please swipe your finger (successful swipes 3/3, failed swipes: 1)… done.
Storing data (/root/.thinkfinger.bir)… done.
root@astaroth:~#

Despues, tecleamos el siguiente comando y pasamos el dedo una vez… o las que hagan falta hasta que lo hagas bien:

root@astaroth:~# tf-tool –verify

ThinkFinger 0.3 (http://thinkfinger.sourceforge.net/)
Copyright (C) 2006, 2007 Timo Hoenig <thoenig@suse.de>

Initializing… done.
Please swipe your finger (successful swipes 1/1, failed swipes: 0)… done.
Result: Fingerprint does match.
root@astaroth:~#

Para el uso diario del lector, editamos el fichero “/etc/pam.d/common-auth” y lo dejamos como el siguiente:

# /etc/pam.d/common-auth - authentication settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the
# traditional Unix authentication mechanisms.
#
auth    sufficient      pam_thinkfinger.so
auth    required        pam_unix.so try_first_pass nullok_secure

El siguiente paso es añadir un modulo del kernel, asi que editamos el fichero “/etc/modules” y añadimos al final (si no esta ya) uinput.

Ahora vamos a crear nuestro login, para eso escribimos: sudo tf-tool –add-user your_login

Los usuarios de KDE tenemos un problema con el lector de huellas, y es que KDM actualmente no soporta esta opcion, asi que lo unico que funcionaria en KDE con el lector de huellas es ksudo.

Fuente