Clusters Kerrighed

Kerrighed (kerrighed.org), es un software que permite disponer de un cluster SSI (Single System Image) bajo Linux, similar a OpenMosix pero con algunas importantes diferencias:

  1. permite migrar procesos multi-hilo (bueno).
  2. no tiene herramientas de usuario gráficas (malo).
  3. funciona sobre kernel Linux 2.6 y es un proyecto activo (muy bueno).

Kerrighed está formado por los siguientes componentes:

  • un parche para el kernel Linux.
  • el módulo kerrighed.
  • algunas herramientas de usuario para la línea de comandos.
  • el script de inicio /etc/init.d/kerrighed.
  • dos archivos de configuración: /etc/kerrighed_nodes y /etc/default/kerrighed.
  • la librería libkerrighed.

Instalar Kerrighed

  1. Paquete Debian: para instalar Kerrighed mediante paquetes Debian añadiremos a /etc/apt/sources.list la siguiente entrada:
    # Kerrighed official packages
    deb http://kerrighed.gforge.inria.fr/debian sid main
    deb-src http://kerrighed.gforge.inria.fr/debian sid main

    Actualizamos la lista de paquetes:

    # apt-get update

    E instalamos Kerrighed (paquetes kerrighed kerrighed-dev):

    # apt-get install kerrighed kerrighed-dev
  2. Configurar GRUB: editamos /boot/grub/menu.lst y añadimos (node_id es el identificador del nodo en el cluster, cada nodo debe tener un número diferente):
    kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=linux root=/dev/sda1 acpi=ht
      resume=/dev/sda5 vga=788 node_id=0
  3. Configurar los nodos: listamos en /etc/kerrighed_nodes los nodos que componen el cluster (nbmin es el número de nodos requeridos para el cluster arranque automáticamente):
    session=1
    nbmin=2
    12.12.12.1:0:eth0
    12.12.12.2:1:eth0
  4. Filesystem compartido: Kerrighed necesita tener exactamente los mismos binarios, librerías, usuarios y grupos en cada nodo, así como un filesystem compartido accessible por todos los nodos bajo el mismo path, para que los procesos que abren archivos puedan migrar.

    Para conseguirlo, la manera recomendada por Kerrighed es instalar Kerrighed sólo en un nodo, que éste exporte su filesystem mediante NFSROOT y que los demás nodos arranquen desde el NFSROOT (de esta manera no necesitan disco duro).

    Otra manera es instalar exactamente los mismos paquetes en cada nodo (por ejemplo, replicando un nodo en los demás) y exportar mediante NFS únicamente el directorio /home, que los demás nodos montarán en /home.

    Recursos

Iniciar Kerrighed

  1. Cargar el módulo: para cargar el módulo Kerrighed usaremos el script de inicio:
    # /etc/init.d/kerrighed start

    Este script cargará el módulo si así está configurado en /etc/default/kerrighed:

    # If true, enable Kerrighed module loading
    ENABLE=true
    #ENABLE=false

    Podemos comprobar si ha cargado el módulo y si ha asignado el node_id correctamente mirando los mensajes del kernel:

    # dmesg
    Init Kerrighed low-level framework (nodeid 1): done
  2. Arrancar/parar el cluster: cargar el módulo no arranca el cluster. Para que arranque el cluster tenemos dos sistemas:
    • manualmente: si no hemos establecido nbmin (es opcional) arrancaremos el cluster utilizando el comando krgadm:
      # krgadm cluster start
    • automáticamente: si hemos establecido nbmin el cluster arrancará automáticamente en el momento en que haya suficientes nodos disponibles. Por ejemplo, si nbmin=4 el cluster arrancará automáticamente en el momento en que haya 4 nodos activos.

    Podemos comprobar si el cluster está funcionando ejecutando el comando top: veremos los procesos de otros nodos, y presionando "1" dentro de top veremos todas las CPUs.

Manejar Kerrighed

Kerrighed sólo dispone de herramientas de usuario para la línea de comandos. Algunas de ellas son:

  • krgadm: administra el cluster (start/stop) y los nodos (añadir/borrar).
  • krgcapset: modifica las opciones de migración de un proceso.
  • migrate: migra un proceso a un nodo concreto.

Artículos en la categoría "Virtualización"

  1. Centralitas telefónicas IP PBX
  2. Clusters Beowulf/PVM
  3. Clusters Beowulf/MPI
  4. Clusters OpenMosix
  5. Clusters Kerrighed
  6. Clusters HA con LVS
  7. Clusters UltraMonkey
  8. Clusters LVS + Keepalived
  9. Emulador Qemu
  10. Máquina virtual VirtualBox
  11. Máquina virtual Xen
  12. API de Windows para Linux: WINE
  13. La jaula en Linux: chroot
  14. Cómo ejecutar aplicaciones Android en Linux
  15. RAID (discos redundantes)
  16. LVM (volúmenes lógicos)
  17. AoE (ATA over Ethernet)
  18. Mirror remoto con DRBD

2 Comments:

  1. Hola,
    Ante todo gracias por la pagina. Es enriquecedor para los que todavia no dominamos el cambio a otra plataforma tener articulos que van “al grano”.
    Veo que hablais de casi todas las posibilidades que hay en clusters (hasta de una que no conocia y que tiene buena pinta, Kerrighed ) y no hablais de OpenSSi. No se si este proyecto esta parado o no lo considerais suficientemente serio para hacer un articulo. ¿ Que opinais de el ?
    Gracias y un saludo

  2. Solo comentar que los repositorios esos no tiran :)