linux cluster computing

39
18/04/2008 Cluster Rocks Apache + IPVS + HA 1 CÓMO Montar un Clúster Apache con Balanceo de Carga y Alta Disponibilidad Miguel Álvarez Úbeda Bruno López Lagares Pedro Lorenzo Riveiros Juan Santos García-Toriello Marcelino Castañeda Sánchez Fernanda García Alves de Oliveira

Upload: biorisk

Post on 27-Jun-2015

383 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 1

CÓMO Montar un Clúster Apache con Balanceo de Carga y Alta Disponibilidad

Miguel Álvarez ÚbedaBruno López Lagares

Pedro Lorenzo RiveirosJuan Santos García-Toriello

Marcelino Castañeda SánchezFernanda García Alves de Oliveira

Page 2: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 2

Estructura del CÓMO

Bloque I – Instalar ROCKS Bloque II – IPVS Bloque III - HA

Page 3: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 3

El PROYECTO… Motivación de montar un servidor apache con

balanceo de carga y alta disponibilidad– Un servidor web suele alojar varias webs. Cuando la

organización tiene un volumen de información a ser servida importante es muy probable que requiera una máquina en exclusiva, y que incluso tenga que ampliar la potencia del sistema

– Una solución escalable, cost-effective, y de alto rendimiento y prestaciones es contar con un clúster de servidores apache.

– Para manejar esta opción, manteniendo las sesiones, es necesario recurrir a soluciones como el balanceo de carga a través de IP.

– La disponibilidad de la web debe ser percibida como algo continuo, sin paradas ni caídas, y fundamentalmente no debe “morir de éxito”.

– Hay muchos entornos en que la disponibilidad es crítica (telemedicina)

Page 4: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 4

El PROYECTO… En base a la motivación, los

ingenieros del máster en Informática de la UDC han llevado a cabo:– Instalación de un clúster con ROCKS– Configuración de la solución de

balanceo de carga con IPVS– Configuración de la solución de alta

disponibildad

...todo ello en una jornada.

Page 5: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 5

El PROYECTO…

Todo ello bajo una muy leve orientación y supervisión del profesor.

Page 6: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 6

He aquí lo que ocurrió…

El PROYECTO…

Page 7: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 7

Introducción

Un clúster es...

Page 8: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 8

Elementos de un Clúster: HW

Frontend, nodos de computación, red, sistema de almacenamiento

Page 9: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 9

Elementos de un Clúster: HW Elementos

adicionales:

SAI KVM Rack …

Page 10: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 10

El SO por excelencia es Linux:– Es gratuito. Disminuye el Total Cost of Ownership (TCO)– Obtiene mejores resultados que sistemas Win, especialmente en

networking al formar parte del kernel, además de utilidades de calidad en modo texto

– Existe una gran cantidad de software y una gran comunidad de desarrolladores y usuarios

– Es tan seguro y fiable como un Unix y presenta numerosas facilidades de administración

– Completo soporte multicore Esto ha llevado a que la inmensa mayoría de los clusters

tengan este SO

Elementos de un Clúster: S.O.

Page 11: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 11

El SO Linux suele ser instalado con distribuciones, que son colecciones de software con el sistema base, programa de instalación y numerosas aplicaciones. Destacan:

– Red Hat. Distribución muy popular. No tiene nuevas versiones desde RH 9– Fedora. Es la sustituta de RH especializada para desarrollo– Red Hat Enterprise Linux. Sustituye a RH especializándose en sistemas

empresariales y en clusters– CentOS es la versión para la comunidad de RHEL.– Slackware. Distribución basada en RH, para computadores de escritorio– Esware. Distribución española basada en Slackware.– Mandriva. Distribución conocida por su facilidad de instalación.– SUSE. Distribución alemana con una importante cantidad de software, y

con amplio soporte.– Debian. Distribución para usuarios avanzados y administradores. Es la más

segura y con mayor cantidad de paquetes.– Ubuntu. Proyecto basado en Debian.– Conectiva. Distribución brasileña orientada a la empresa.

Las distribuciones más utilizadas son RHEL y CentOS.

Elementos de un Clúster: S.O.

Page 12: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 12

Rocks Cluster Web: www.rocksclusters.org (ISO 4GB)

Page 13: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 13

Rocks Cluster ROCKS: http://www.rocksclusters.org Estos recursos son:

– Area 51 – securidad, tripwire y chkrootkit– BIO – aplicaciones de High Performance Computing en el ámbito de

la genómica– Condor/maui – planificación/ejecución de aplicaciones.– Ganglia - monitorización de recursos– Grid – Globus toolkit– PVFS2 – Sistema de ficheros paralelo– Sun Grid Engine, Torque – gestores de colas de recursos– Viz – visualización (matriz de pantallas).– HPC utilities– 411 – gestión información (NIS++)– NFS – network file system– Java– Bibliotecas MPI: LAM/MPICH– ApacheApache

Page 14: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 14

Rocks Cluster

NODOS: compute-0-0 C0-0SERVER: maquina.local

Page 15: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 15

Instalación del Clúster

Page 16: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 16

Instalación del Clúster

Page 17: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 17

Instalación del Clúster

Page 18: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 18

Instalación del Clúster

Page 19: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 19

Instalación del Clúster

Page 20: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 20

Instalación del Clúster

Page 21: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 21

Instalación del Clúster

# insert-ethers– A través de DHCP recibe peticiones

(datos incorporados a Rocks MySQL DB) # insert-ethers --cabinet=1

Page 22: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 22

Instalación del Clúster

Page 23: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 23

Instalación del Clúster

Page 24: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 24

Instalación del Clúster

Page 25: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 25

Instalación del Clúster

add-extra-nic --if eth1 --module sk98lin --name compute-0-1.gbe compute-0-0add-extra-nic --if eth1 --module e1000 --name compute-1-0.gbe compute-1-0add-extra-nic --if eth2 --module r8169_n --name compute-2-0.gbe compute-2-0

/etc/sysconfig/network-scripts/ifcfg-eth1: DEVICE=eth1

HWADDR=00:0e:0c:6a:8b:d6IPADDR=10.10.10.1NETMASK=255.0.0.0BOOTPROTO=noneONBOOT=yes

Page 26: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 26

Instalación del Clúster

Page 27: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 27

Instalación del Clúster

mySQL + phpMyAdmin

Page 28: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 28

Instalación del Clúster $ cluster-fork ps -U$USER

– Ejecuta "ps" en todos los nodos – e.g.: cluster-fork ps -Udiego

$ cluster-ps PATTERN – Ejecuta "ps -aux | grep PATTERN" en todos los nodos. – e.g.: cluster-ps MATLAB

$ cluster-fork [cmd] – Ejecutar cualquier comando en todos los nodos del cluster cluster-

fork – e.g.: cluster-fork cp -r MatLabToolBox/ tmp/

$ cluster-fork --query="select name from nodes where name like 'scompute-0-%'" [cmd] – Ejecuta [cmd] en los nodos devueltos por la query SQL. El

resultado de la query es una lista de nodos $ cluster-fork --nodes="scompute-0-%d:1-4 scompute-0-

%d:7,9,11,15-16" [cmd] – Ejecuta [cmd] en los distintos nodos especificados por "--nodes".

Page 29: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 29

Rocks Cluster

Page 30: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 30

Rocks Cluster

Page 31: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 31

Monitorización de Clusters: Ganglia

Page 32: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 32

Balanceo de Carga: Linux Virtual Server

Balanceo de Carga – Problema

• Un balanceo estático perfecto no es posible– El tiempo de ejecución de los trabajos no es conocido

• Los sistemas no balanceados pueden ser ineficientes

– Solución• Migración de procesos

– Previa a la ejecución

» La granularidad debe ser fina

– Durante la ejecución

» El coste debe ser evaluado

Page 33: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 33

Balanceo de Carga: Linux Virtual Server Linux Virtual Server (LVS, IPVS en kernels 2.6.x) es

un servicio de red altamente escalable y de alta disponibilidad que realiza:– Equilibrado de carga mediante NAT (Network Address

Translation), tunneling IP o enrutamiento directo (DR) por medio de un nodo maestro que da servicio a peticiones FTP y HTTP a los nodos de un cluster. Este servicio es proveído a nivel de kernel (ha de estar compilado el soporte para LVS/IPVS)

• NAT hace que el clúster funcione con una única IP pública, siendo los paquetes reescritos por el nodo maestro para ocultar los nodos internos. Sólo es aceptable para un número pequeño de nodos, por la sobrecarga que acarrea

• Tunneling IP es similar a NAT, pero el nodo maestro ya no reescribe los paquetes, siendo su tarea mucho más liviana

• El enrutamiento directo (DR) es un sistema aún más ligero, pero necesita que todos los servidores compartan el mismo segmento de red

Page 34: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 34

Balanceo de Carga: Linux Virtual Server

Linux Virtual Server (LVS): NAT vs TUN

Page 35: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 35

Balanceo de Carga: Linux Virtual Server

Linux Virtual Server (LVS): DR & HA

Page 36: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 36

Alta Disponibilidad: Linux-HA

– Hardware• Los clusters están conformados por

componentes de reducido coste• Es razonable tener hardware extra

– Más nodos de los precisos– Redes redundantes (2 GbE y Myrinet)

– Software• Linux-HA, basado en heartbeat,

programa que detecta la caída del servidor.

Page 37: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 37

RAID (Redundant Array of Inexpensive Disks ó Redundant Array of Independent Disks) es un sistema de almacenamiento que por medio de múltiples discos duros distribuye y/o replica datos. De este modo se consigue mayor integridad, mayor tolerancia a fallos, mayor capacidad y mayor rendimiento I/O.

Puede ser:– RAID 0: divide los datos de modo que aumenta el rendimiento de

I/O, pero sin tolerancia a fallos, aumentando la capacidad del Raid resultante (mín. 2 HD).

– RAID 1: replica los datos, aumenta el rendimiento de lectura, no aumenta la capacidad y provee tolerancia a fallos (mín. 2 HD).

Alta Disponibilidad: Almacenamiento

Page 38: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 38

RAID 1+0

– RAID 5: aumenta la capacidad, provee tolerancia a fallos y aumenta el rendimiento repartiendo bloques redundantes en los distintos discos del RAID (mín. 3 HD).

– RAID 0+1: RAID 0 en el primer nivel, y RAID 1 en el segundo.

– RAID 1+0: RAID 1 en el primer nivel, y RAID 0 en el segundo.

Alta Disponibilidad: Almacenamiento

Page 39: Linux Cluster Computing

18/04/2008 Cluster Rocks Apache + IPVS + HA 39

CÓMO Montar un Clúster Apache con Balanceo de Carga y Alta Disponibilidad

Miguel Álvarez ÚbedaBruno López Lagares

Pedro Lorenzo RiveirosJuan Santos García-Toriello

Marcelino Castañeda SánchezFernanda García Alves de Oliveira