cluster de alta disponibilidad

Discussion in 'Cementerio De Temas' started by janod21, Oct 15, 2009.

Thread Status:
Not open for further replies.
  1. janod21

    janod21 Usuario Habitual nvl.3 ★
    687/812

    Joined:
    Aug 9, 2007
    Messages:
    7,005
    Likes Received:
    295
    Cluster Alta disponibilidad en LINUX


    En este articulo aprenderemos a implementar un Cluster de Alta disponibilidad (AD).
    [​IMG]
    Material necesario:

    • 2 maquinas con Linux
    • El paquete Heardbeat
    • un Sistema de ficheros con Journaling
    • Una Red
    • Puerto serie
    ¿Qué es un Cluster y para que me sirve?
    Un cluster , consiste en un grupo de nodos conectados entre si que interactuan como una sola maquina (“En caso que un nodo dejase de funcionar tomaría el control el segundo nodo”) , reduciendo así considerablemente la tolerancia a fallos y caídas de servicio.
    Un cluster podría servir perfectamente en el caso de un problema de Hardware nuestros clientes
    tendrían igualmente servicio ya que uno de los nodos tomaría el control como maquina primaria.
    ¿Qué es Heartbeat?
    Heartbeat es un paquete de software creado por LINUX-HA, funciona de forma similar al System V o init pero en vez de una sola máquina pasaría a ejecutar los servicios en los nodos, basándose en que no le llegan respuestas estas se hacen por medio de ping y por pulsaciones del cable serie.
    ¿Que es STONITH?
    STONITH son la Siglas de “Shoot The Other Node In The Head” (“ Pégale un Tiro en la Cabeza al otro Nodo”). Es una técnica usada por Heartbeat que se asegura de que un servidor supuestamente muerto no interfiera con el funcionamiento del cluster, en caso de no implementarse bien esta técnica, podría dar lugar a que el cluster no funcione.
    A grosso modo STONITH consiste en que el servidor secundario nota que el primario no funciona, y
    este le haría un DDOS al primario para asegurarse de que ha sido un falso positivo y tomaría el nodo
    secundario el control.
    Preparando el Hardware
    Existen 3 cosas especificas del cluster que hay que conectar, los discos, las NICs de interconexión,
    el cable serial de interconexión y los cables de control de los UPS

    • Primero instalaremos los discos, pero no crearemos aun ningún sistema de ficheros.
    • Instalaremos las NICs y las configuraremos con IPs privadas de la misma subred en los rangos
      192.168.0.0/16 o el rango 10.0.0/8
    • A continuación nos haremos con un cable Serial para la comunicación PC a PC . Nos
      aseguraremos de que el cable incluya modems null y que incluya cables CTS Y RTS
    • Conectamos cada ordenador a su UPS
    Instalación del Software
    Para nuestro cluster necesitaremos varios paquetes de software.
    Heartbeat-1.0.3, Heartbeat-pils-1.0.3, Heartbeat-stonith-1.0.3
    cada uno de ellos se encuentra en los repositorios de las distribuciones o se incluye como paquete en
    los CDs de instalación de esta (“ Cuando instale SUSE 9.3 me pareció verlos en la instalación) si no los encontráis podéis mirar en http://linux-ha.org los paquetes los instalaremos usando nuestro administrador de paquetes favoritos ya sea apt-get, yast,urpmi, emerge, etc.
    Por ultimo nos queda instalar el servicio que queramos dar ya sea samba,apache postfix, etc.
    Configurando DRBD.
    DRBD se configura en el fichero /etc/drbd.conf
    Código:
    resource drbd0 {
    protocol=C
    fsckcmd=/bin/true
    disk {
    disk-size=80418208
    do-panic
    }
    net {
    sync-rate=8M # bytes/sec
    timeout=60
    connect-int=10
    ping-int=10
    }
    on Zeus { # Zeus es el nombre del servidor principal
    device=/dev/nb0
    disk=/dev/hda1
    address=192.168.1.1
    port=7789
    }
    on SolarUX { #SolarUX es el nombre del servidor secundario
    device=/dev/nb0
    disk=/dev/hda1
    address=192.168.1.2
    port=7789
    }
    }
    Nota: Para calcular el tamaño del disco usaremos blockdev-getsize y dividiremos el resultado por dos si ambas partes dan resultado diferente elegiremos el mas grande
    Creando el Sistema de Ficheros
    A continuación crearemos el sistema de ficheros para Zeus ( Servidor Primario) es importante usar un sistema de ficheros con Journaling como Reiserfs, ext3, jfs, xfs.
    Crearemos dos particiones del mismo tamaño en el dispositivo /dev/nb0 los dos servidores y con
    Reiserfs ya que se considera mas seguro.
    Instrucciones a ejecutar en Zeus
    Código:
    Root@Zeus:~# /etc/init.d/drbd startLe respondemos “yes” para que nos ponga a Zeus como primario.
    ahora creamos el sistema de ficheros y lo montamos
    Código:
    Root@Zeus:~# mkfs -t reiserfs /dev/nb0 datadisk /dev/nb0 startpor último si usamos una conexión Ethernet de 1Gb para la sincronización, cambiaremos los
    parámetros los parámetros de esta para que nos funcione en modo fullduplex ver Activando
    Fullduplex en tarjetas ethernet en este mismo foro
    Configurando Heartbeat
    Heartbeat tiene tres ficheros de configuración.

    1. ha.cf Configura información básica del cluster
    2. haresources.cf Configura los grupos de recursos tipo init
    3. authkeys Configura la Autenticación de red

    Se pueden encontrar ejemplos de estos ficheros en /usr/share/doc/pakages/Heartbeat y se documentan en el fichero “Getting Started” de Heartbeat
    ha.cf le aporta a Heartbeat la información de la configuración básica. Configura los nodos,
    pulsaciones serial, la manera de registrar los logs intervalo de tiempo muerto y pulsaciones
    ejemplo de nuestro ha.cf
    Código:
    logfacility local7 # servicio de syslog
    keepalive 1 #Intervalo pulsación
    warntime 2 #Pulsación Tardía
    deadtime 10 # Tiempo control Fallos
    nice_failback on
    node Zeus SolarUX
    ping 10.10.10.254 # Dirección del Router
    bcast eth0 eth1 #Broadcast Interfaces Heartbeat
    serial /dev/ttyS0 #Enlace Serial Heartbeat
    respawn /usr/lib/Heartbeat/ipfail
    stonith_host Zeus apcsmart SolarUX /dev/ttyS1
    stonith_host SolarUX apcsmart Zeus /dev/ttyS1las pulsaciones se envían por eth0, eth1 y serial /dev/ttyS0 este fichero es idéntico para todos los nodos
    Fichero /etc/ha.d/haresources
    Este fichero crea un grupo de recursos que en teoría pertenecen a Zeus, asociados a una IP virtual
    10.10.10.20 y los recursos a servir:

    ● NFS (Network File System)
    ● Samba (compartir archivos Windows)
    ● Dhcp (asignación dinámica de IPs)
    ● Postfix (Servidor de Correo electrónico)

    Código:
    Zeus 10.10.10.20 datadisk::drbd0 nfslock nfsserver smb dhcpd postfixPara clarificar donde están colocados los scripts diré que Ipaddr y datadisk están en
    /etc/ha.d/resource.d y el resto de servicios típicos en /etc/init.d/

    Heartbeat se las apaña de maravilla administrando la mayoría de servicios que vienen en los V
    System init comúnmente llamados los scripts de arranque, sin embargo una de las condiciones para
    que Heartbeat administre correctamente los Scripts es que tienen de tener el mismo nombre en todos
    los Nodos, por lo tanto recomiendo usar una distribución idéntica en las dos maquinas así
    simplificaremos la configuración y el mantenimiento.
    Fichero /etc/ha.d/authkeys
    authkeys es el fichero de configuración mas sencillo de todos. Contiene el método de autenticación basado en (sha1) con la clave que se usara para firmar los paquetes . este fichero tiene que ser idéntico en todos los servidores y no debe tener ningún usuario acceso de lectura a excepción de root:
    Código:
    auth 1
    1 sha1 RandomPasswordfc970c94efbConfiguración de los Servicios
    Tenemos de deshabilitar los servicios para que no sean controlados por init si no por Heartbeat
    esto lo conseguiremos con el siguiente comando:
    Código:
    Root@Zeus:~# chkconfig -del nfslock nfsserver smb dhcpd postfixNótese que deberíamos cambiar los servicios marcados en azul por los que tenemos configurados en
    /etc/ha.d/haresources para servir.
    Configurando /etc/fstab
    Tenemos de tener especial cuidado en que la partición /home no se monte automáticamente desde /etc/fstab si existe ya una entrada para /home en dicho fichero la eliminamos y creamos esta:
    Código:
    /dev/nb0 /home reiserfs noauto 0 0Nota: si home ya esta montado lo desmontamos con umount /home
    Configuración del Fichero /etc/hosts
    Si no tenemos un servidor DNS corriendo en nuestra red tendremos de usar nuestro archivo /etc/hosts quedando de esta manera:
    Código:
    10.10.10.20 Cluster # IP virtual cluster
    192.168.1.1 Zeus #Servidor Primario
    192.168.1.2 SolarUX # Servidor Segundario (Nodo)Montando todo el Cotarro
    Ahora es el momento de configurar el servidor segundario para que monte /home desde NFS
    añadiendo lo siguiente en /etc/fstab
    Código:
    Cluster:/home /home nfs defaults 0 0Una vez la partición NFS montada creamos el directorio /home/HA.config
    y creamos la siguiente estructura de directorios:
    Código:
    /etc
    postfix/
    samba/
    exports
    dhcpd.conf
    /var
    lib/
    dhcpd
    samba
    nfs
    spool/
    postfix/
    mail/Después de montar la estructura de directorios tendríamos que crear enlaces simbólicos por ejemplo
    Código:
    ln -s /home/HA.config/etc/samba/smb.cf /etc/samba/smb.cfAhora desmontamos /home de la siguiente forma:
    Código:
    Root@Zeus:~# datadisk /dev/nb0 stop
    Root@Zeus:~# /etc/init.d/drbd stopTambién podemos configurar samba para que escuche en la interface del cluster modificando dentro
    de la directiva [ global ] de /etc/samba/smb.cf
    Código:




    Opciones de alta disponibilidad para Exchange 2007 - parte 1

    Es, quizás, uno de los requerimientos más solicitados por todos. Tener una alta disponibilidad de servicio de correo y con menor costo. No todas las organizaciones están preparadas para afrontar los costos asociados con las opciones de alta disponibilidad que ofrecen las versiones anteriores de Exchange, por lo tanto en esta nueva versión se establecen nuevas.

    • La primer opción se llama Local Continuous Replication (o LCR). Esta solución implica un sólo servidor que usa tecnología de Log Shipping para crear y mantener una copia de un Storage Group en un segundo set de discos, que están conectados al mismo servidor que el Storage Group. LCR provee log shipping, log replay y la posibilidad de switchear rápidamente a la copia de la base.
    • La segunda opción es Cluster Continuous Replication (CCR). Es una solución de cluster que utiliza la misma tecnología de log shipping que LCR, pero el Storage Group se mantiene en un servidor separado. CCR fue diseñado para estar en el mismo datacenter o en uno remoto, brindando no sólo alta disponibilidad de hardware sino también de sitios.
    • Por último tenemos Single Copy Cluster (SCC). Es una solución de cluster que usa una sóla copia del Storage Group en un storage compartido entre los nodos del cluster. SCC es muy similar a las opciones de cluster de las versiones anteriores de Exchange, con algunos cambios y mejoras.
    Tanto CCR como SCC son soluciones que se aplican a cluster con failover. Sólo el rol de Mailbox Server puede ser instalado en esos servidores. Todas las opciones de alta disponibilidad de los roles restantes se pueden obtener con una combinación de redundancia de servidores, Network Load Balancing o DNS Round Robin.


    Opciones de alta disponibilidad para Exchange 2007 - parte 2

    Siendo la primer opción en la parte 1 de esta serie de notas, nos centraremos en LCR (Local Continuous Replication).
    LCR es una solución que involucra un sólo servidor y hace uso de la tecnología de Log Shipping y Log Replay built in en Exchange 2007 para crear y mantener actualizada una copia de un Storage Group determinado en un segundo set de discos, conectados al mismo servidor.
    Esta tecnología podría graficarse de la siguiente manera:
    [​IMG]

    LCR nos da la posibilidad de, manualmente, switchear a la copia pasiva de las bases de un Storage Group determinado ante una fatalidad. Esta tecnología fue básicamente diseñada para:

    • Reducir considerablemente el tiempo de recuperación por un error a nivel datos.
    • Reducir el número de full backups requeridos para una óptima protección de la información.
    • Reducir el impacto de backups en el rendimiento del servidor. Todos los tipos de backups (full, incremental, diferencial y copia) pueden ser tomados de la copia pasiva del Storage Group.
    Cuando sea necesario la copia local del Storage Group pasivo puede convertirse en la productiva. LCR no tiene requerimientos específicos de Storage, todos los medios soportados sirven.
    LCR es la opción ideal para aquellas empresas o redes que necesitan soluciones de Disaster Recovery rápidas ante fallas o corrupción en los buzones.
    Aunque LCR provea ciertas ventajas ante un backup tradicional, no provee una disponibilidad completa. Básicamente porque reside en un mismo servidor, y lo único que lo separa de la base productiva es subsistema de discos distintos.
    LCR será la primer barrera ante una falla en la base de datos productiva y un recovery generalmente toma unos 10 minutos únicamente. Teniendo este tiempo de restore tan bajo, podemos empezar a pensar en cuotas de buzones mucho mayores.
    Requerimientos
    LCR tiene algunos requerimientos de storage y recomendaciones. Justamente una de las recomendaciones es que el storage que almacenará la copia pasiva sea de la misma capacidad y mismo rendimiento que el de la copia activa. Alguna de las mejores prácticas incluyen:

    • Utilizar una sola base de datos por Storage Group. Cuando se habilita LCR en un Storage Group, éste sólo puede contener una sóla base de datos.
    • No se podrá utilizar LCR en Public Folders si existe más de una base de datos de Public Folders en la organización, debido a la replicación.
    • Particiones para rendimiento y recuperación. Generalmente particionando los discos se obtiene un rendimiento mayor y menor volúmen de datos a restaurar. Debería usarse discos y particiones diferentes para:
      • Archivos del sistema operativo
      • Archivos de aplicación de Exchange
      • Bases de datos activas de Exchange
      • Transaction logs activos de Exchange
      • Bases de datos pasivas de Exchange
      • Transaction logs pasivos de Exchange
      • Adicionalmente, los discos de las copias activas y pasivas deberían estar aislados unos de otros.
    • Asegurar espacio libre adecuado.
    • Asegurar memoria RAM y CPU adecuados para LCR.

    Opciones de alta disponibilidad para Exchange 2007 - parte 3

    Como tercera parte, cubriremos Cluster Continuous Replication (CCR). Para simplificar el término, CCR es un LCR pero en otro nodo pasivo que, cuando el activo falla traspasa los recursos al nodo pasivo, através de los servicios de Cluster de Windows.
    CCR combina la tecnología de Log Shipping y Log Replay con el servicio de Windows Cluster para brindar una solución que:

    • No tiene un punto de fallas único
    • No tiene requerimientos especiales de Hardware
    • Puede ser configurado en uno o dos datacenters distintos
    • Al igual que LCR, reduce la frecuencia de backups.
    Al configurar CCR, la primer operación que ocurre se denomina seeding que, básicamente, copia la base de datos del Storage Group al nodo pasivo. Luego que esta operación finaliza, se comienzan las de Log Replay. El comando de PowerShell involucrado en el falivoer es Move-ClusteredMailboxServer. Este cmdlet hace verificaciones para asegurar que el nodo pasivo está listo para recibir los recursos.
    CCR combina las siguientes tecnologías para hacer este servicio posible:

    • Failover y virtualización provista por el servicio de Windows Cluster.
    • Transaction Log Replay y Log Shipping de Exchange Server 2007.
    • Una cola de mensajes del Hub Transport llamada Transport Dumpster.
    Como la siguiente figura grafica, CCR requiere dos equipos o nodos unidos a un mismo cluster. Estos nodos alojan las bases de datos de buzones, clusterizadas.
    [​IMG]

    El cluster utiliza la tecnología ya conocida del servicio de Cluster de Windows, pero agrega una novedad a nivel Quorum. En vez de usar un recurso de cluster, utiliza una nueva tecnología denominada Majority Node Set (MNS) quorum with file share witness.
    CCR usa un "testigo" o file share witness en un tercer equipo fuera del cluster, utilizado por los nodos para hacer un seguimiento de cuál nodo tiene el control de los recursos del Cluster. Este recurso es sólo utilizado cuando los nodos pierden comunicación entre ellos, siendo innecesario cuando éstos pueden interactuar entre ellos e intercambiar esta información. El testigo es utilizado cuando:

    • Un nodo del cluster se inicia y sólo un nodo es el activo.
    • Existe un problema en la red que evita que los nodos se intercomuniquen.
    • Un nodo del cluster es quitado.
    • Periodicamente para validación. La frecuencia es configurable.
    La carga en el File Server que aloja el "testigo" es muy poca.
    Requerimientos
    Existen ciertas consideraciones a tener en cuenta antes de implementar este tipo de soluciones:

    • Se debe utilizar una sóla base de datos por Storage Group.
    • Si se cuenta con un sólo servidor de Maiblox en la organización y está en un ambiente de CCR, el servidor puede contener un almacén de Carpetas Públicas. En esta configuración, existe una única base de datos de Public Folders, por lo tanto la replicación está deshabilitada.
    • Si se tienen varios Mailbox Servers, y sólo uno tiene una base de Public Folders, esta base puede estar alojada en un CCR. En esta configuración, existe una única base de datos de Public Folders, por lo tanto la replicación está deshabilitada.
    • Si más de un Mailbox Server tiene bases de datos de Public Folders, y la replicación está habilitada, las Public Folders no pueden estar alojadas en un CCR.
    • Todos los nodos del cluster deben pertenecer al mismo dominio de Active Directory.
    • Exchange Server 2007, en CCR, no está soportado si el servidor es también Domain Controller.
    • Asegurarse que el cluster sea configurado antes de instalar Exchange Server 2007.
    • No pueden existir otras aplicaciones instaladas en los nodos que utilicen el cluster (cluster-aware), como SQL Server o Exchange Server 2000 / 2003. Sí está soportado, por ejemplo, que el nodo corra SQL Server 2005 Express, sin clusterizar.
    • Se debe instalar la misma versión de Exchange Server 2007 en todos los nodos pertenecientes al cluster. Adicionalmente, el Sistema Operativo y los binarios de Exchange deben estar instalado en los mismos path y unidades en ambos nodos.
    • La cuenta de servicio de Cluster debe ser miembro del grupo Administradores local de cada nodo.
    Requerimientos de Software

    • Todos los nodos en el cluster deben correr Windows Server 2003 Enterprise, utilizando las mismas unidades para el sistema y booteo.
    • El cluster debe tener instalado el fix 921181
    • La carpeta compartida para el quorum de MNS no necesariamente tiene que ser un equipo dedicado. En un ambiente con delegaciones de administración, la recomendación es que el quorum resida en un Hub Transport u otro servidor de Exchange, para que pueda ser controlada por un Administrador de Exchange.
    • En CCR sólo se puede instalar el rol de Mailbox Server. No se puede compartir ningún otro rol.
    Requerimientos de Red

    • Cada nodo debe contar con, al menos, dos interfaces de red disponibles para el servicio de Windows Cluster. Una interfaz será pública, y la otra para las comunicaciones intra-cluster.
    • Cada nodo requiere una dirección ip estática para cada uno de los adaptadores que serán utilizados por el servicio de cluster. Las direcciones de los adaptadores no pueden estar en la misma subnet.
    • Las interfaces privadas (comunicación intra-cluster) deben estar en la misma subnet.
    • Las interfaces públicas deben estar en la misma subnet.
     
  2. Maathy!

    Maathy! Usuario Maestro nvl. 6 ★ ★ ★ ★
    687/812

    Joined:
    Apr 25, 2009
    Messages:
    57,601
    Likes Received:
    2
Thread Status:
Not open for further replies.