Nuestro servidor

Nuestro servidor es un cluster formado AMD Athlon(tm) 1.1 Ghz con 256 KB de caché y 512 MB RAM, dispone de dos discos duros de 9G y 7G. Una tarjeta ethernet Realtek 8139 y una tarjeta de video VGA.

Servidor

Montado manualmente con una caja reciclada:

Servidor con Caja

Para las comunicaciones en casa disponemos de una tarjeta Digium TDM 11 B:

Servidor con Caja

Con un puerto FXO (rojo) y un puerto FXS (verde):

Servidor con Caja

Al ver estas imágenes sabréis porque no tenemos una sección de GIMP en nuestro web XD

Nuestro servidor corre Debian GNU/Linux Etch 4.0 con el kernel de la rama 2.6 y la rama 1.4 de Asterisk, Asterisk Addons y drivers Zaptel. Por supuesto obviamente también corre Apache, MySQL y PHP entre otros servicios. Apache y MySQL estan monitorizados por Heartbeat y DRBD.

Esta es la máquina:

processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 6
model name      : AMD Athlon(tm)
stepping        : 2
cpu MHz         : 1145.193
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow up ts
bogomips        : 2291.60

512 MB de RAM:

             total       used       free     shared    buffers     cached
Mem:           504        303        200          0         16         91
-/+ buffers/cache:        195        308
Swap:          180          0        180

Y los discos:

S.ficheros          Tamaño Usado  Disp Uso% Montado en
/dev/hdc1             250M  201M   36M  85% /
tmpfs                 253M     0  253M   0% /lib/init/rw
udev                   10M   56K   10M   1% /dev
tmpfs                 253M     0  253M   0% /dev/shm
/dev/hdb1             9,4G  4,1G  4,9G  46% /var
/dev/hdc9             2,2G  1,3G  854M  60% /home
/dev/hdc8             177M  4,1M  163M   3% /tmp
/dev/hdc5             2,2G  1,9G  243M  89% /usr
/dev/drbd0           1000M  456M  492M  49% /data

El segundo nodo del cluster (donado por Javier) con Apache y MySQL ofreciendo servicio de alta disponibilidad con Heartbeat y DRBD, además de correo Postfix, servidor de Backups y conectividad VPN:

Pentium 3

Es un Pentium 3 a 800Mhz:

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 8
model name      : Pentium III (Coppermine)
stepping        : 6
cpu MHz         : 798.000
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr sse up
bogomips        : 1597.94

Con 750 MB de RAM:

             total       used       free     shared    buffers     cached
Mem:           758         99        658          0         11         54
-/+ buffers/cache:         33        725
Swap:         2274          0       2274

Y 40Gb de disco:

/dev/hda1             250M  108M  130M  46% /
tmpfs                 380M     0  380M   0% /lib/init/rw
udev                   10M   56K   10M   1% /dev
tmpfs                 380M     0  380M   0% /dev/shm
/dev/hda9              18G   59M   18G   1% /home
/dev/hda8             361M  8,1M  334M   3% /tmp
/dev/hda5             4,6G  606M  3,8G  14% /usr
/dev/hda6             2,8G  432M  2,2G  17% /var

Finalmente un Intel Celeron, donde hay una replicación de la base de datos MySQL del blog y un servicio de monitorización con Zabbix, y donde tengo pensado colocar el balanceador de carga Linux Virtual Server para ofrecer así un servicio web con balanceo de carga (para momentos críticos) y al mismo tiempo disponer de un sistema escalable a bajo coste.

Celeron

Es un Intel Celeron 333 Mhz:

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 6
model name      : Celeron (Mendocino)
stepping        : 0
cpu MHz         : 334.093
cache size      : 128 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr up
bogomips        : 669.06

Con 369MB de RAM (tengo que tener más por ahí, esta justito):

             total       used       free     shared    buffers     cached
Mem:           369        340         29          0         13        291
-/+ buffers/cache:         35        334
Swap:          164          0        164

Y 3.2 GB de disco :(

S.ficheros          Tamaño Usado  Disp Uso% Montado en
/dev/hdc1             2,8G  664M  2,1G  25% /
tmpfs                 185M     0  185M   0% /lib/init/rw
udev                   10M   40K   10M   1% /dev
tmpfs                 185M     0  185M   0% /dev/shm

Este era el aspecto del cluster en la fase "beta" de pruebas con Heartbeat, DRBD y la replicación MySQL:

Cluster en pruebas

Y está es la versión actual más user-friendly, ella no lo quería todo por el medio y ya bastante que la convencí para que me deje tenerlos ;)

Cluster final

Acepto sugerencias o recomendaciones.

URL para hacer trackback a este post:

http://bytecoders.net/trackback/62
 

Comentarios

Algunas preguntillas

Tu articulo es muy interesante, pero tengo algunas dudas.

Primeramente me presento como tú decide montar mi servidor "casero". Yo Dónde tengo alojada algunas web como esta para Buscar trabajo y empleos.

Bueno dicho servidor he tenido que actualizar tres veces por falta de capacidad, por ejemplo ahora tengo 2 ordenadores "AMD Athlon(tm) Dual Core Processor 4850e, 2 cores" : Te preguntarás porque dos, porque el primero es para servir las paginas web y segundo para indexar las web de empleo. Lo intente tenerlo en uno pero se relentizaba por tener demasiadas consultas en el mysql, cada vez revisaba las otras web hacia consulta por si ya tenia el registro y como las bases datos son ya considerables la perdida de rendimiento es considerable.

Como vez no lo monte en cluster, aunque si decidí montar un balanceador de cargas de lineas adsl (router linksys rv042 con dos router más por lineas). Resumiendo tres routers para gestionar las lineas. Cuando lo monte también pensé en montarlo con balanceador con linux, pero leí que era muy complicado había que compilar el kernel y demás.

Pues deciendote esto es para preguntarte sobre algunas cosas de tu articulo:
¿con Asterix y tarjeta puedo balencear las lineas como mis tres routers? ¿Por eso el de centro es como un router?
DRBD este es como raid 1 por la red, es decir todos se replican
¿Heartbeat es para detectar que servidores estan disponibles?
¿Zabbix es para monitorizar la red o lo que esta pasando en lo router?
¿Linux Virtual Server es un gestor de servidores virtuales? ¿pero no lo hace los anteriores? ¿sirve para gestionarlo?
Si te suena webmin que es un administrador remoto del servidor muy útil para no cambiar de cuarto para modificar algo en el servidor. ¿Usa este o alguno similar?. Este gestor tiene un apartado de cluster pero no se si se le instalara todo esto se enteraría de que va todo...
¿Otra pregunta sobre los cluster si existe un cluster maestro si este cae, seguramente pasa otro a maestro?
¿Que sistema operativo has usado? ¿Podría usar suse o debe ser uno adaptado para clusteres?
¿Ella: es la novia o la madre ?

Bueno, gracias por todo de todas formas.

Cuantas cosas

¿con Asterix y tarjeta puedo balencear las lineas como mis tres routers? ¿Por eso el de centro es como un router?

Asterisk es una centralita (IP PBX) VoIP que te permite hacer un montón de cosas en telefonía.

DRBD este es como raid 1 por la red, es decir todos se replican

Sí, aunque por lo que yo sé al momento solo te permite usar dos discos.

¿Heartbeat es para detectar que servidores estan disponibles?

Sí, se envían "latidos" entre ellos hasta que uno cae.

¿Zabbix es para monitorizar la red o lo que esta pasando en lo router?

¿Linux Virtual Server es un gestor de servidores virtuales? ¿pero no lo hace los anteriores? ¿sirve para gestionarlo?

LVS es un balanceador de carga

Si te suena webmin que es un administrador remoto del servidor muy útil para no cambiar de cuarto para modificar algo en el servidor. ¿Usa este o alguno similar?. Este gestor tiene un apartado de cluster pero no se si se le instalara todo esto se enteraría de que va todo...

Sí, he probado webmin aunque ahora no lo uso (en cluster tiene un apartado para monitorizar heartbeat).

¿Otra pregunta sobre los cluster si existe un cluster maestro si este cae, seguramente pasa otro a maestro?

Sí, en el montaje solo hay dos PCs que atienden peticiones (uno de ellos siempre está en standby, esta es la configuración de Heartbeat).

¿Que sistema operativo has usado? ¿Podría usar suse o debe ser uno adaptado para clusteres?

Yo he usado Debian, no es que sea mejor para clústeres pero a mi me parece más sencillo de uso.

¿Ella: es la novia o la madre ?

Ambas se quejan cada vez que lo ven.