Entorno HA para Linux

Linux como sistema operativo debe de ofrecer una serie de facilidades, para que los sistemas de alta disponibilidad puedan integrarse correctamente tal y como se hace en otros entornos. Estas facilidades están relacionados directamente con el entorno hardware y el software para las aplicaciones de alta disponibilidad. En esta sección se comentaran los diversos subsistemas que ayudan a "virtualizar" recursos, así como subsistemas para evitar SPOF.

Sistemas de computación

Actualmente Linux es una plataforma de computación y supercomputación muy consolidada. Se puede afrontar la idea de eliminar SPOF en los sistemas de computación, pero sólo a partir de un nivel que Linux como sistema operativo pueda obrar. Es decir que si consideramos la computación al nivel de nodos y superiores no habrá problemas, pero si consideramos a nivel de procesadores y memorias, es mas un problema muy cercano a una solución hardware tolerante a fallos.

Sistemas de red

Linux puede presumir de tener una de las pilas TCP/IP mas completas y estables que existen actualmente. La característica de IP Aliasing de Linux, permite asignar varias direcciones IP a una misma interfaz; esto nos permite poder levantar una dirección IP, exclusivamente, en un nodo del clúster. Si algún nodo perece con su IP, cualquier otro nodo del clúster, puede tomar el testigo.

También, Linux es capaz de actualizar sus tablas de rutas dinámicamente, gracias a demonios de enrutamiento tales como ospfd. ospfd es un demonio de enrutamiento que implementa el algoritmo de enrutamiento OSPF. Con estos servicios el clúster puede ser consciente de la topología de la red y reaccionar ante las caídas de líneas de comunicaciones o nodos.

Sistemas de almacenamiento

En los sistemas de almacenamiento existe una doble problemática:

  1. SPOF en los elementos de almacenamiento.

  2. Consistencia ante un crash o caída.

El SPOF se soluciona con sistemas de discos capaces de hacer redundantes los datos, así como de sustituir un disco dañado por otro en reserva.

La consistencia se consigue revisando la integridad de los datos; la consistencia debe ser establecida en el mínimo tiempo posible ya que el servicio de datos depende de él.

Sistemas de disco

Redundant Array of Independent Disks (RAID)

Un subsistema RAID nos va a permitir eliminar SPOF de los recursos de almacenamiento.

Actualmente el kernel de Linux soporta RAID 0,1 y 5 con el driver MD. Además de RAID software también soporta gran numero de controladoras SCSI y ATA100 que ofrecen volúmenes de RAID por hardware. Compaq e IBM han colaborado mucho en este aspecto, creando drivers para sus productos. También cabe mencionar los sistemas LAN-Mirror que son una opción barata para conseguir un medio compartido y eliminación de SPOF replicando por red. Como ejemplos cabe destacar DRBD, NBD y ENBD.

Logical Volume Management (LVM)

El software de gestión de volúmenes permite exportar los volúmenes de grupos de discos para que el servicio de datos pueda hacer uso de el. Logical Volume Management inicialmente adoptado por IBM luego por la OSF, esta en desarrollo. No sólo es capaz de cambiar el tamaño de discos lógicos sino también de sistemas de ficheros ext2.

Sistemas de ficheros con journal

Journaling es una técnica que nació de las bases de datos y se ha ido incorporando a los sistemas de ficheros. Cuando un sistema de ficheros sufre una caída, dado a un fallo del sistema, este se chequea al completo corrigiendo las inconsistencias. Con journal se lleva una cuenta de que se ha ido modificando en el sistema de ficheros, ya que a la hora de chequearlo sólo comprobara la inconsistencias de unos pocos ficheros y directorios.

El tiempo de puesta en consistencia de un sistema de ficheros disminuye considerablemente. Además se incorporan técnicas como árboles B y Hashes para un acceso mas rápido a ficheros.

A continuación se enumeran los sistemas de ficheros mas familiares y apropiados para la HA en Linux:

ext3

Es el clásico ext2 pero con el añadido de una partición de log, para llevar el journal. Hace journal de datos y metadatos. Por lógica es algo mas lento que ext2 en acceso pero mas rápido en tiempo de recuperación de consistencia. Lo realmente interesante es que hace journal de datos y metadatos.

Reiserfs

Es un sistema de ficheros creado desde 0 con la idea de sacar partido a arboles B, hashes y técnicas de journal actuales. Es un sistema de ficheros realmente rápido en lo que a Linux se refiere. Sólo hace journaling de datos. Actualmente sus creadores están desarrollando Reiser4 bajo el patrocinio de la DARPA.

JFS

IBM lo ha puesto bajo GPL y ha sacado su primera versión con calidad de producción. De momento desarrollan con bastante independencia, de versiones actuales del kernel, ya que sacan parches para versiones especificas.

XFS

Silicon ha sacado releases con calidad de producción bajo GPL. Casi tan rápido como reiserfs. Esta muy bien integrado con Linux, teniendo en consideración otros subsistemas como puede ser quota o NFS. Sacan parches cada una o dos versiones del kernel. Una opción muy a considerar, en un futuro.