Alta disponibilidad

La función de alta disponibilidad (que puede configurarse con el mandato dscontrol highavailability) está disponible para el componente Dispatcher, pero no para el componente CBR o Site Selector.

Para mejorar la disponibilidad de Dispatcher, la función del alta disponibilidad de Dispatcher utiliza los siguientes mecanismos:

Nota:
Si desea obtener una ilustración y una descripción de una configuración de alta disponibilidad mutua , donde dos máquinas Dispatcher que comparten dos conjuntos de clústeres actúan como máquina de reserva entre sí, consulte el apartadoAlta disponibilidad mutua. La alta disponibilidad mutua es parecida a la alta disponibilidad aunque se basa específicamente en la dirección de clúster en lugar de basarse en una máquina Dispatcher como un todo. Las dos máquinas deben configurar de la misma forma sus conjuntos de clúster compartidos.

Configurar la alta disponibilidad

La sintaxis completa para dscontrol highavailability se encuentra en dscontrol highavailability — controlar la alta disponibilidad.

Para obtener una descripción más completa de muchas de las tareas siguientes, consulte Configuración de la máquina Dispatcher.

  1. Cree archivos script de alias en cada una de las dos máquinas Dispatcher. Consulte Utilización de scripts.
  2. Inicie el servidor en las dos máquinas servidor Dispatcher.
  3. Inicie el ejecutor en las dos máquinas.
  4. Asegurarse de que la dirección de no reenvío (NFA) de cada máquina Dispatcher está configurada y que es una dirección IP válida para la subred de las máquinas Dispatcher.
  5. Añada la información de pulsos en las dos máquinas:
    dscontrol highavailability heartbeat add dirección_origen dirección_destino
    Nota:
    dirección_origen y dirección_destino son las direcciones IP (los nombres DNS o las direcciones IP) de las máquinas Dispatcher. Los valores se invertirán en cada máquina. Por ejemplo:
    Primary - highavailability heartbeat add 9.67.111.3 9.67.186.8         
    Backup  - highavailability heartbeat add 9.67.186.8 9.67.111.3
    Como mínimo un par de pulsos debe tener las NFA del par como dirección de origen y destino.

    Si es posible, al menos uno de los pares de pulsos debe estar en una subred distinta del tráfico del clúster normal. Si el tráfico de pulsos se identifica claramente se evitará que se produzcan falsas lecturas de otras señales en condiciones de cargas elevadas en la red y se mejorarán los tiempos de recuperación completos después de producirse una sustitución por anomalía.

    Establezca dl número de segundos que el ejecutor utiliza para indicar el tiempo de espera de los pulsos de alta disponibilidad. Por ejemplo:

    dscontrol executor set hatimeout 3

    El valor predeterminado es 2.

  6. En las dos máquinas, configure la lista de direcciones IP que Dispatcher debe poder alcanzar para garantizar un servicio completo, utilizando el mandato reach add. Por ejemplo:
    dscontrol highavailability reach add 9.67.125.18
    Los destinos de alcance son recomendables aunque no necesarios. Consulte Capacidad de detección de anomalías utilizando pulsos y destino de alcance para obtener más información.
  7. Añada la información de reserva en cada máquina:
    Nota:
    Seleccione un puerto no utilizado en las máquinas como puerto. El número de puerto entrado se utilizará como clave para asegurarse de que el paquete lo recibe el host correcto.
  8. Compruebe el estado de alta disponibilidad en cada máquina:
    dscontrol highavailability status
    Cada una de las máquinas debe tener el rol correcto (reserva, primaria o ambos), estados y subestados. La primara debe estar activa y sincronizada; la de reserva debe estar en modalidad de espera y debe sincronizarse en poco tiempo. Las estrategias deben ser las mismas.
  9. Establezca la información de clúster, puerto y servidor en las dos máquinas.
    Nota:
    Para la configuración de alta disponibilidad mutua (Figura 14), por ejemplo, configure los conjuntos del clúster compartidos entre los dos sistema Dispatcher tal como se indica a continuación:
    • Para Dispatcher 1, emita:
      dscontrol cluster set clústerA primaryhost NFAdispatcher1
      dscontrol cluster set clústerB primaryhost NFAdispatcher2
    • Para Dispatcher 2, emita:
      dscontrol cluster set clústerB primaryhost NFAdispatcher2
      dscontrol cluster set clústerA primaryhost NFAdispatcher1
  10. Inicie el gestor y los asesores en las dos máquinas.
Notas:
  1. Para configurar una sola máquina Dispatcher para direccionar paquetes sin una máquina de reserva, no emita ninguno de los mandatos de alta disponibilidad durante el arranque.
  2. Para convertir dos máquinas Dispatcher configuradas para alta disponibilidad en una sola máquina, detenga el ejecutor en una de las máquinas y suprima las características de alta disponibilidad (los pulsos, alcance y reserva) de la otra.
  3. En los dos casos anteriores, debe utilizar direcciones de clúster para crear un alias para la tarjeta de interfaz de red, según sea necesario.
  4. Cuando dos máquinas Dispatcher se ejecutan en configuración de alta disponibilidad y están sincronizadas, entre todos los mandatos dscontrol (para actualizar la configuración) primero en la máquina en espera y, a continuación, en la máquina activa.
  5. Cuando se ejecutan dos máquinas Dispatcher en una configuración de alta disponibilidad, pueden producirse resultados inesperados si en las dos máquinas se establecen distintos valores en alguno de los parámetros para el ejecutor, puerto o servidor (por ejemplo, port stickytime).
  6. Para la alta disponibilidad mutua, considere el caso en que uno de las máquinas Dispatcher debe direccionar de forma activa paquetes para su clúster primario así como tomar el control del direccionamiento de paquetes para el clúster de reserva. Asegúrese que esto no exceda la capacidad de la producción en esta máquina.
  7. Para sistemas Linux, al configurar la alta disponibilidad y la ubicación compartida juntas cuando se utiliza el método de reenvío de puerto MAC del componente Dispatcher, consulte Alternativas de alias de bucle de retorno de Linux cuando se utiliza el reenvío MAC de Load Balancer.
  8. Si desea sugerencias que le ayuden a reducir los problemas que pueden surgir derivados de los problemas de configuración de alta disponibilidad, como por ejemplo:
    • Conexiones desactivadas después de la toma de control
    • No se pueden sincronizar máquinas asociadas
    • Solicitudes dirigidas erróneamente a la máquina asociada de reserva
    Consulte Problema: sugerencias para configurar la alta disponibilidad.

Capacidad de detección de anomalías utilizando pulsos y destino de alcance

Además de los criterios básicos de detección de anomalía (la pérdida de conectividad entre máquinas Dispatcher activas y en espera, que se detecta a través de los mensajes de pulso), hay otro mecanismo de detección de anomalías denominado criterios de accesibilidad. Al configurar Dispatcher se puede proporcionar una lista de hosts a los que cada una de las máquinas Dispatcher debe poder llegar para funcionar correctamente. Los dos asociados de alta disponibilidad se comunican continuamente entre sí a través de pulsos y se actualizan mutuamente en la cantidad de destinos de alcance en los que cualquiera de ellos puede hacer ping. Si la máquina en espera hace ping en más destinos de alcance que la máquina activa, se produce una sustitución por anomalía.

Los pulsos los envía la máquina Dispatcher activa y está previsto que la máquina Dispatcher en espera los reciba cada medio segundo. Si la máquina Dispatcher en espera no puede recibir un pulso durante un intervalo 2 segundos, se empieza un proceso de sustitución por anomalía. Para que se produzca un proceso de toma de control por parte de la máquina Dispatcher en espera, es necesario que se interrumpan todos los pulsos. Es decir, cuando hay dos pares de pulsos configurados, los dos pulsos deben interrumpirse. Para estabilizar el entorno de alta disponibilidad y para evitar que se produzca una sustitución por anomalía, añada más de un par de pulsos.

Para los destinos de alcance, debe elegir como mínimo un host para cada subred que utiliza la máquina Dispatcher. Los hosts pueden ser direccionadores, servidores IP u otros tipos de hosts. La accesibilidad de hosts se obtiene mediante el asesor de alcance, que hace ping en el host. La sustitución por anomalía tiene lugar si los mensajes de pulso no pueden transmitirse o si los criterios de accesibilidad los satisface mejor la máquina Dispatcher en espera que la máquina Dispatcher activa. Para tomar una decisión basándose en toda la información disponible, la máquina Dispatcher activa envía regularmente su capacidad de accesibilidad a la máquina Dispatcher en espera. Luego la máquina Dispatcher en espera compara esta capacidad con la suya y decide si debe conmutar el control.

Nota:
Al configurar el destino de alcance, también debe iniciarse el asesor de alcance. El asesor de alcance se inicia automáticamente al iniciar la función de gestor. Para obtener más información sobre el asesor de alcance, consulte la página ***.

Estrategia de recuperación

Hay configuradas dos máquinas Dispatcher: la máquina primaria y una segunda máquina denominada de reserva. Durante el arranque, la máquina primaria envía todos los datos de conexión a la máquina de reserva hasta que la máquina se sincroniza. La máquina primaria pasa a estar activa, es decir, empieza el equilibrio de carga. Mientras tanto, la máquina de reserva supervisa el estado de la máquina primaria y se dice que está en estado en espera.

Si la máquina de reserva detecta en cualquier punto que la máquina primaria ha fallado, realiza una toma de toma de control de las funciones de equilibrio de carga de la máquina primaria y se convierte en la máquina activa. Cuando la máquina primaria vuelve a estar operativa de nuevo, las máquinas responden de acuerdo con la manera en que el usuario ha configurado la estrategia de recuperación. Existen dos tipos de estrategia:

Automática
La máquina primaria reanuda el direccionamiento de paquetes tan pronto vuelve a estar en funcionamiento.
Manual
La máquina de reserva sigue direccionando paquetes incluso después de que la primaria pase a estar en funcionamiento. Para devolver la máquina primaria al estado activo y restablecer la máquina de reserva al estado en espera es necesario realizar una intervención manual.

El parámetro strategy debe tener el mismo valor en ambas máquinas.

Utilizando el mandato takeover, la estrategia de recuperación manual permite forzar el direccionamiento de paquetes a una máquina determinada. La recuperación manual es útil cuando el mantenimiento se lleva a cabo en la otra máquina. La estrategia de recuperación de automática está diseñada para operaciones desatendidas normales.

Para una configuración de alta disponibilidad mutua, no existe ninguna anomalía por clúster. Si hay algún problema en una máquina, incluso si sólo afecta a un clúster, la otra máquina tomará el control de los dos clústeres.

Nota:
Durante las situaciones de toma de control, es posible que se pierdan algunas actualizaciones de conexiones. Esto puede causar que se terminen conexiones de larga ejecución existentes (como Telnet) a las que se está accediendo cuando se lleva a cabo la toma de control.

Utilización de scripts

Para que Dispatcher direccione paquetes, cada dirección de clúster debe tener un alias asociado a un dispositivo de interfaz de red.

Para obtener información sobre la creación de alias para la tarjeta de interfaz de red, consulte Paso 5. Crear un alias para la tarjeta de interfaz de red.

Puesto que las máquinas Dispatcher cambiarán su estado cuando se detecte una anomalía, los mandatos anteriores deben emitirse automáticamente. Para ello Dispatcher ejecutará scripts creados por el usuario. Los scripts de ejemplo se encuentran en el directorio siguiente:

Estos scripts se deben mover al directorio siguiente para poder trabajar:

Los scripts se ejecutarán automáticamente sólo si dsserver se está ejecutando.

Notas:
  1. Para una configuración de alta disponibilidad mutua, Dispatcher invoca cada script “go" con un parámetro que identifique la dirección del Dispatcher primario. El script debe consultar este parámetro y ejecutar los mandatos executor configure para dichas direcciones de clúster asociadas a dicho Dispatcher primario.
  2. Para configurar la alta disponibilidad para el método de reenvío NAT de Dispatcher, debe añadir a los archivos de script las direcciones de retorno.

Se pueden utilizar los siguientes scripts de ejemplo:

goActive
El script goActive se ejecuta cuando un Dispatcher pasa a estado activo y empieza el direccionamiento de paquetes.
goStandby
El script goStandby se ejecuta cuando Dispatcher pasa al estado en espera y supervisa el estado de la máquina activa, pero sin direccionar ningún paquete.
goInOp
El script goInOp se ejecuta cuando se detiene un ejecutor de Dispatcher.
goIdle
El script goIdle se ejecuta cuando un Dispatcher pasa a estado desocupado y empieza el direccionamiento de paquetes. Esto ocurre cuando no se han añadido las características de alta disponibilidad, como en una configuración autónoma. También sucede en una configuración de alta disponibilidad antes de añadir las características de alta disponibilidad o después de eliminarlas.
highavailChange
El script highavailChange se ejecuta siempre que cambia el estado de alta disponibilidad dentro de Dispatcher, como ocurre cuando se llama a los scripts "go". El parámetro único pasado a este script es el nombre del script "go" que acaba de ejecutar Dispatcher. Cree este script para utilizar información de cambio de estado, por ejemplo, para avisar a un administrador o para anotar el suceso.

En sistemas Windows: en la configuración, si dispone de Site Selector equilibrando la carga de dos máquinas Dispatcher que están funcionando en un entorno de alta disponibilidad, será necesario añadir un alias a la pila de Microsoft para los Metric Servers. Este alias debe añadirse al script goActive. Por ejemplo:

call netsh interface ip add address "Conexión de área local"
  addr=9.37.51.28 mask=255.255.240.0

En el caso de goStandby y goInOp, será necesario suprimir el alias: Por ejemplo:

call netsh interface ip delete address "Conexión de área local"
  addr=9.37.51.28

Si hay varias NIC en la máquina, compruebe primero qué interfaz debe utilizar emitiendo el siguiente mandato en el indicador de mandatos: netsh interface ip show address. Este mandato devolverá una lista de las interfaces configuradas actualmente y asignará un número a "Conexión de área local" (por ejemplo, "Conexión de área local 2") para que pueda determinar cuál debe utilizar.

En Linux para S/390: Dispatcher emite un ARP injustificado para mover direcciones IP de un Dispatcher a otro. Este mecanismo está, por lo tanto, relacionado con el tipo de red implícito. Cuando se ejecuta Linux para S/390, Dispatcher sólo puede realizar de forma nativa tomas de control de alta disponibilidad (completas con movimientos de dirección IP) en las interfaces que pueden emitir un ARP injustificado y configurar la dirección en la interfaz local. Este mecanismo no funcionará correctamente en interfaces punto a punto como, por ejemplo, IUCV y CTC, y no funcionará correctamente en algunas configuraciones de qeth/QDIO.

Para estas interfaces y configuraciones donde la función de toma de control de IP nativa del Dispatcher no funcionará correctamente, el cliente puede colocar mandatos adecuados en los scripts go para mover las direcciones de manera manual. De esta manera también se asegurará de que dichas topologías de red se puedan beneficiar de la alta disponibilidad.