Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

Configuración de Red Hat High Availability Add-On con Pacemaker

Red Hat Enterprise Linux 6

Documento de referencia de adición de alta disponibilidad para Red Hat Enterprise Linux 6

Edición 1

Logo

Resumen

Configuración de Red Hat High Availability Add-On con Pacemaker proporciona información sobre configuración de Red Hat High Availability Add-On con Pacemaker.

Introducción

Este documento proporciona información sobre instalación, configuración y administración de componentes de adiciones de alta disponibilidad de Red Hat. Los componentes de adiciones de alta disponibilidad de Red Hat le permiten conectar a un grupo de computadores (llamados nodos o miembros) para que funcionen juntos como un clúster. En este documento, el uso de la palabra clúster o clúster se utiliza para referirse a un grupo de computadores que ejecutan la adición de alta disponibilidad de Red Hat.
La audiencia de este documento debe tener amplia experiencia con Red Hat Enterprise Linux y comprender los conceptos de clúster, almacenamiento y servidor de informática.
Para obtener mayor información acerca de Red Hat Enterprise Linux 6, consulte los siguientes recursos:
  • Guía de instalación de Red Hat Enterprise Linux — Proporciona información sobre instalación de Red Hat Enterprise Linux 6.
  • Guía de implementación de Red Hat Enterprise Linux — Proporciona información sobre la implementación, configuración y administración de Red Hat Enterprise Linux 6.
Para obtener mayor información sobre la adición de alta disponibilidad y productos relacionados para Red Hat Enterprise Linux 6, consulte los siguientes recursos:
  • Visión general de adición de alta disponibilidad — Proporciona una descripción general de la adición de alta disponibilidad de Red Hat.
  • Administración de clúster — Proporciona información sobre instalación, configuración y administración de adiciones de Alta disponibilidad.
  • Administración del Gestor de volúmenes lógicos — Proporciona una descripción del Gestor de Volúmenes Lógicos (LVM) e incluye información sobre la ejecución de LVM en un entorno de clúster.
  • Sistema de archivos global 2: Configuración y administración — Proporciona información sobre instalación, configuración, y mantenimiento de Red Hat GFS2 (Red Hat Global File System 2), el cual se incluye en la adición de almacenamiento resistente.
  • DM Multipath — Proporciona información sobre la función del dispositivo mapeador multirrutas de Red Hat Enterprise Linux 6.
  • Administración del equilibrador de cargas — Proporciona información sobre configuración de sistemas de alto rendimiento y servicio con la adición de equilibrador de cargas, un conjunto de componentes de software integrados que proporcionan Servidores Virtuales de Linux (LVS) para equilibrio de carga IP a travé de un conjunto de servidores reales.
  • Notas de lanzamiento — Proporciona información sobre el lanzamiento actual de productos de Red Hat.
La documentación de Red Hat Cluster Suite y otros documentos de Red Hat están disponibles en versiones HTML, PDF, y RPM en el CD de documentación de Red Hat Enterprise Linux y en línea en https://access.redhat.com/site/documentation/.

1. Comentarios

Si encuentra un error tipográfico o si ha pensado en alguna forma de mejorar este manual, nos encantaría saberlo. Por favor, envíe un informe en Bugzilla (http://bugzilla.redhat.com/bugzilla/). Reporte el fallo con el nombre del producto Red Hat Enterprise Linux 6 y el componente doc-Cluster_General.
Asegúrese de mencionar el identificador del manual:
Configuring_High_Availability_With_Pacemaker(EN)-6 (2014-8-7T16:26)
Al mencionar este identificador de manual, sabemos exactamente qué versión de la guía tiene usted.
Si tiene alguna sugerencia de cómo mejorar la documentación, por favor trate de ser lo más explícito posible. Si ha encontrado algún error, incluya el número de la sección y parte del texto que lo rodea para así poderlo hallar fácilmente.

Capítulo 1. Configuración de adición de alta disponibilidad y visión general de referencia administrativa de Red Hat

Este documento provee la descripción de opciones y funcionalidades que Red Hat High Availability Add-On soporta mediante Pacemaker
Este manual documenta el uso de la interfaz de configuración pcs para Red Hat Enterprise Linux Release 6.6 y posterior.

Nota

Para obtener información sobre las mejores prácticas para implementar y actualizar los clústeres de Red Hat Enterprise Linux mediante la adición de alta disponibilidad y el Sistema de archivos global 2 de Red Hat (GFS2), consulte el artículo "Red Hat Enterprise Linux Cluster, High Availability, y GFS Deployment Best Practices" en Red Hat Customer Portal, https://access.redhat.com/kb/docs/DOC-40821.

1.1. Instalación de las herramientas de configuración Pacemaker

Utilice el comando yum install para instalar los paquetes de software Red Hat High Availability Add-On, junto con los agentes disponibles: agentes de vallas del canal de alta disponibilidad.
# yum install pcs fence-agentsn
Los paquetes lvm2-cluster y gfs2-utils hacen parte del canal ResilientStorage. Instálelos con el siguiente comando cuando los necesite:
# yum install lvm2-cluster gfs2-utils

Aviso

Después de instalar los paquetes Red Hat High Availability Add-On, asegúrese de que las preferencias de actualización de software estén configuradas para que nada se instale automáticamente. La instalación en clústeres en ejecución puede producir conductas inesperadas.

1.2. Cómo configurar el cortafuegos de iptables para permitir componentes de clúster

Red Hat High Availability Add-On requiere que los siguientes puertos estén habilitados:
  • Para TCP: Puertos 2224, 3121, 21064
  • Para UDP: Puertos, 5405

1.3. Archivos de configuración de Cluster y Pacemaker

Los archivos de configuraćión para Red Hat High Availability Add-on son cluster.conf y cib.xml. No los modifique directamente; en su lugar, use la interfaz pcs o pcsd.
El archivo cluster.conf proporciona los parámetros utilizados por corosync, el gestor de clúster en el que se crea Pacemaker.
El archivo cib.xml es un archivo XML que representa, tanto la configuración del clúster como el estado actual de todos los recursos del clúster. Este archivo es utilizado por la Base de información de clúster (CIB) de Pacemaker. El contenido de la CIB se mantiene automáticamente en sincronía a través de todo el clúster.

Capítulo 2. Interfaz de línea de comandos pcs

La interfaz de línea de comandos pcs proporciona la capacidad de controlar y configurar corosync y pacemaker.
El formato general del comando pcs es el siguiente.
pcs [-f file] [-h] [commands]...

2.1. Los comandos pcs

Los comandos pcs son los siguientes:

2.2. Uso de la pantalla de ayuda pcs

Use la opción -h de pcs para visualizar los parámetros de un comando pcs y la descripción de esos parámetros. Por ejemplo, el siguiente comando muestra los parámetros del comando pcs resource. Únicamente se muestra una porción de la salida.
# pcs resource -h
Usage: pcs resource [commands]...
Manage pacemaker resources
Commands:
    show [resource id] [--all]
        Show all currently configured resources or if a resource is specified
        show the options for the configured resource.  If --all is specified
        resource options will be displayed

    start <resource id>
        Start resource specified by resource_id
...

2.3. Visualización de una configuración de clúster cruda

Aunque no debería modificar directamente el archivo de configuración de clúster, puede ver la configuración de clúster cruda con el comando pcs cluster cib.
Puede guardar una configuración de clúster cruda en un archivo especificado con pcs cluster cib nombre de archivo como se describe en la Sección 2.4, “Guardado de un cambio de configuración en un archivo”.

2.4. Guardado de un cambio de configuración en un archivo

Cuando use el comando pcs, use la opción -f para guardar un cambio de configuración a un archivo sin afectar la CIB activa.
Si configuró anteriormente un clúster y ya existe una CIB activa, use el siguiente comando para guardar el archivo xml crudo.
pcs cluster cib filename
Por ejemplo, el siguiente comando guarda el xml crudo de la CIB en un nombre de archivo testfile.
pcs cluster cib testfile
El siguiente comando crea un recurso en el archivo testfile1, pero no lo agrega a la configuración de clúster que está en ejecución.
# pcs -f testfile1 resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.120 cidr_netmask=24 op monitor interval=30s
Puede enviar contenido actual de testfile en la CIB con el siguiente comando:
pcs cluster cib-push filename

2.5. Vista de estatus

Despliegue el estatus del clúster y los recursos de clúster, mediante el siguiente comando:
pcs status commands
Si no especifica un parámetro commands, este comando muestra toda la información sobre el clúster y los recursos. Despliegue únicamente el estatus de los componentes del clúster al especificar resources, groups, cluster, nodes, o pcsd.

2.6. Despliegue de toda la configuración del clúster

Use el siguiente comando para desplegar toda la configuración actual del clúster.
pcs config

2.7. Despliegue de la versión actual de pcs

El siguiente comando muestra la versión actual de pcs que está en ejecución.
pcs --version

Capítulo 3. Creación de clúster y administración

Este capítulo describe la forma básica de administrar clúster con Pacemaker, incluidas la creación de clúster, la administración de componentes de clúster y la presentación del estatus de clúster.

3.1. Creación de clúster

Para crear un clúster, siga los siguientes pasos:
  1. Autentique los nodos que constituirán el clúster.
  2. Configure y sincronice los nodos de clúster
  3. Inicie los servicios de clúster en los nodos de clúster.
Las siguientes secciones describen los comandos para realizar estos pasos.

3.1.1. Autenticación de nodos de clúster

El siguiente comando autentica pcs para el demonio pcs en los nodos del clúster.
  • El nombre de usuario para el administrador pcs debe ser hacluster en cada nodo. Se recomienda que la contraseña para usuario hacluster sea la misma en cada nodo.
  • Si no especifica un nombre de usuario o contraseña, el sistema le indicará los parámetros para cada nodo cuando ejecute el comando.
  • Si no especifica ningún nodo, este comando autenticará pcs en los nodos que se especifican con un comando pcs cluster setup, si lo ha ejecutado anteriormente.
pcs cluster auth [node] [...] [-u username] [-p password]
La autorización de identificadores se almacena en el archivo ~/.pcs/tokens (o /var/lib/pcsd/tokens).

3.1.2. Configuración e inicio de nodos de clúster

El siguiente comando configura el archivo de configuración de clúster y sincroniza la configuración a los nodos especificados.
  • Si especifica la opción --start, el comando también iniciará los servicios de clúster en los nodos especificados. Si es necesario, también puede iniciar los servicios de clúster con un comando pcs cluster start por separado.
  • Si especifica la opción --local, el comando realizará cambios en el nodo local únicamente.
pcs cluster setup [--start] [--local] --name cluster_ name node1 [node2] [...]
El siguiente comando inicia los servicios de clúster en el nodo o nodos específicos.
  • Si especifica la opción --all, el comando inicia los servicios de clúster en todos los nodos.
  • Si no especifica ningún nodo, los servicios de clúster se inician en el nodo local únicamente.
pcs cluster start [--all] [node] [...]

3.2. Administración de nodos de clúster

Las siguientes secciones describen los comandos que debe utilizar para administrar nodos de clúster, incluidos los comandos para iniciar y detener el clúster y agregar y retirar nodos de clúster.

3.2.1. Detención de servicios de clúster

El siguiente comando detiene los servicios de clúster en el nodo o nodos especificados. Como con pcs cluster start, la opción --all detiene los servicios de clúster en todos los nodos y si usted no especifica ningún nodo, los servicios de clúster se detienen en el nodo local únicamente.
pcs cluster stop [--all] [node] [...]
Puede forzar la parada de los servicios de clúster en el nodo local con el siguiente comando, el cual ejecuta el comando kill -9
pcs cluster kill

3.2.2. Habilitar o inhabilitar los servicios de clúster

Use el siguiente comando para configurar los servicios de clúster para que se ejecuten en el inicio en el nodo o nodos especificados.
  • Si especifica la opción --all, el comando inicia los servicios de clúster en todos los nodos.
  • Si no especifica ningún nodo, los servicios de clúster se habilitan en el nodo local únicamente.
pcs cluster enable [--all] [node] [...]
Use el siguiente comando para configurar los servicios de clúster para que no se ejecuten en el inicio en el nodo o nodos especificados.
  • Si especifica la opción --all, el comando inhabilita los servicios de clúster en todos los nodos.
  • Si no especifica ningún nodo, los servicios de clúster se inhabilitan en el nodo local únicamente.
pcs cluster disable [--all] [node] [...]

3.2.3. Adición y remoción de nodos de clúster

El siguiente comando agrega un nuevo nodo a un clúster existente. Este comando también sincroniza el archivo de configuración de clúster, cluster.conf para todos los nodos del clúster, incluido el nuevo nodos que está agregando.
pcs cluster node add node
El siguiente comando apaga el nodo especificado y lo retira del archivo de configuración del clúster, cluster.conf, en todos los nodos del clúster. Para obtener información sobre cómo retirar toda la información del clúster desde los nodos del clúster, y así destruir el clúster de forma permanente, consulte la Sección 3.4, “Retiro de la configuración de clúster”.
pcs cluster node remove node

3.2.4. Modo en espera

El siguiente comando pone en modo de espera al nodo especificado . El nodo especificado ya no puede albergar recursos de hosts. Cualquier recurso activo actualmente en el nodo, será desplazado a otro nodo, Si especifica --all, este comando pone todos los nodos en espera.
Puede usar el comando para actualizar los paquetes de recursos. También puede usar este comando para probar una configuración, estimular la recuperación sin apagar el nodo.
pcs cluster standby node | --all
El siguiente comando retira el nodo especificado del modo en espera. Después de ejecutar este comando, el nodo especificado podrá albergar recursos. Si especifica la opción --all, este comando retira todo los nodos del modo en espera.
pcs cluster unstandby node | --all
Observe que cuando ejecute el comando pcs cluster standby, este comando agrega limitaciones a los recursos para evitar que se ejecuten en un nodo no indicado. Al ejecutar el comando pcs cluster unstandby, este comando elimina las limitaciones. No necesariamente, devuelve los recursos al nodo indicado; en el cual se pueden ejecutar los recursos, depende de cómo los ha configurado inicialmente. Para obtener información sobre limitaciones de recursos, consulte el Capítulo 6, Restricciones de validación.

3.3. Configuración de permisos de usuario

A partir de Red Hat Enteprise Linux 6.6, usted puede usar el comando pcs acl para establecer el permiso para que usuarios locales tengan acceso de solo lectura o solo escritura para la configuración de clúster mediante las listas de control de acceso (ACL).
El establecimiento de permisos para usuarios es un proceso de dos pasos:
  1. Ejecute el comando pcs acl role create... para crear un rol que defina los permisos para dicho rol.
  2. Asigne el rol que creó a un usuario con el comando pcs acl user create.
El siguiente procedimiento de ejemplo proporciona acceso de solo lectura para una configuración de clúster a un usuario local llamado rouser.
  1. Este procedimiento requiere que el usuario rouser exista en el sistema local y que el usuario rouser sea un miembro del grupo hacluster.
    # adduser rouser
    # usermod -a -G hacluster rouser
  2. Habilite las ACL de Pacemaker con la propiedad de clúster enable-acl
    # pcs property set enable-acl=true --force 
  3. Cree un rol llamado read-only con permisos de solo lectura para la CIB
    # pcs acl role create read-only description="Read access to cluster" read xpath /cib
  4. Cree el usuario rouser en el sistema pcs ACL y asígnele el rol de read-only.
    # pcs acl user create rouser read-only
  5. Visualice la ACL actual
    # pcs acl
    User: rouser
      Roles: read-only
    Role: read-only
      Description: Read access to cluster
      Permission: read xpath /cib (read-only-read)
El siguiente procedimiento de ejemplo proporciona acceso de escritura a un usuario local llamado wuser.
  1. Este procedimiento requiere que el usuario wuser exista en el sistema local y que el usuario wuser sea miembro del grupo hacluster.
    # adduser wuser
    # usermod -a -G hacluster wuser
  2. Habilite las ACL de Pacemaker con la propiedad de clúster enable-acl
    # pcs property set enable-acl=true --force 
  3. Cree un rol llamado write-access con permisos de solo escritura para cib.
    # pcs acl role create write-access description="Full access" write xpath /cib
  4. Cree el usuario wuser en el sistema pcs ACL y asígnele el rol write-access.
    # pcs acl user create wuser write-access
  5. Visualice la ACL actual
    # pcs acl
    User: rouser
      Roles: read-only
    User: wuser
      Roles: write-access
    Role: read-only
      Description: Read access to cluster
      Permission: read xpath /cib (read-only-read)
    Role: write-access
      Description: Full Access
      Permission: write xpath /cib (write-access-write)
Para más información sobre las ACL de clúster, consulte la pantalla de ayuda para el comando pcs acl.

3.4. Retiro de la configuración de clúster

Para retirar todos los archivos de configuración de clúster y detener todos los servicios de clúster y destruirlos completamente, use el siguiente comando:

Aviso

Este comando retira de forma permanente cualquier clúster de configuración que haya creado. Se recomienda que ejecute pcs cluster stop antes de destruir el clúster.
pcs cluster destroy

3.5. Vizualización del estatus del proceso

El siguiente comando muestra el estatus actual del clúster y los recursos de clúster
pcs statusi
Despliegue un subconjunto de información sobre el estatus actual del clúster con los siguientes comandos:
El siguiente comando muestra el estatus actual del clúster, pero no los recursos de clúster.
pcs cluster status
El siguiente comando muestra el estatus actual de los recursos de clúster.
pcs status resources

Capítulo 4. Cercado: Configuración de STONITH

STONITH es un acrónimo en inglés para Shoot-The-Other-Node-In-The-Head (dispárele al otro nodo en la cabeza) y protege sus datos de que se corrompan por nodos rogue o de acceso concurrente.
El hecho de que un nodo no responda, no significa que no está accediendo a sus datos. La única forma que garantiza que sus datos estén cien por ciento seguros, es cercando el nodo mediante STONITH para asegurarse de que el nodo está verdaderamente fuera de línea antes de permitir el acceso a los datos desde otro nodo.
STONITH también tiene que jugar un rol cuando no se puede detener un servicio agrupado en clúster. En este caso, el clúster usa STONITH a fin de forzar todo el nodo fuera de línea, para que sea seguro iniciar el servicio en cualquier parte.

4.1. Agentes STONITH (Cercado) disponibles

Use el siguiente comando para ver la lista de los agentes STONITH. Especifique un filtro, este comando despliega únicamente los agentes STONITH que corresponden al fitro.
pcs stonith list [filter]

4.2. Propiedades generales de dispositivos de cercado

Nota

Para inhabilitar un dispositivo o recurso de cercado, establezca target-role como lo haría para un recurso normal.

Nota

Para evitar que un nodo específico use un dispositivo de cercado, las restricciones de ubicación funcionarán como se espera.
La Tabla 4.1, “Propiedades generales de dispositivos de cercado” describe las propiedades generales que puede establecer para dispositivos de cercado. Consulte la Sección 4.3, “Despliegue de las opciones de cercado específicas para dispositivos ” para obtener información sobre propiedades de cercado que puede establecer para dispositivos de cercado.

Nota

Para obtener más información sobre propiedades de configuración avanzadas, consulte la Sección 4.9, “Opciones adicionales de configuración de cercado ”

Tabla 4.1. Propiedades generales de dispositivos de cercado

CampoTipoPredeterminadoDescripción
stonith-timeouthora60 sEl tiempo de espera para que la acción STONITH termine por un dispositivo stonith. Sobrescribe la propiedad de clúster stonith-timeout
priorityentero0La prioridad del recurso STONITH. Los dispositivos se prueban en orden descendente.
pcmk_host_mapcadena Un mapa de nombres de hosts para números de puertos que no soportan nombres de hosts. Por ejemplo: node1:1;node2:2,3 le dice al clúster que use el puerto 1 para node1 y los puertos 2 y 3 para node2
pcmk_host_listcadena Una lista de máquinas controladas por este dispositivo (Opcional a menos que pcmk_host_check=static-list).
pcmk_host_checkcadenadynamic-listCómo determinar cuáles máquinas son controladas por el dispositivo. Valores permitidos: dynamic-list (solicita el dispositivo), static-list (revisa el atributo pcmk_host_list), ninguno (supone que cada dispositivo puede cercar cada máquina)

4.3. Despliegue de las opciones de cercado específicas para dispositivos

Use el siguiente comando para ver las opciones para el agente STONITH especificado
pcs stonith describe stonith_agent
Por ejemplo, el siguiente comando despliega las opciones para el agente de cercado para APC en telnet y SSH.
# pcs stonith describe fence_apc
Stonith options for: fence_apc
  ipaddr (required): IP Address or Hostname
  login (required): Login Name
  passwd: Login password or passphrase
  passwd_script: Script to retrieve password
  cmd_prompt: Force command prompt
  secure: SSH connection
  port (required): Physical plug number or name of virtual machine
  identity_file: Identity file for ssh
  switch: Physical switch number on device
  inet4_only: Forces agent to use IPv4 addresses only
  inet6_only: Forces agent to use IPv6 addresses only
  ipport: TCP port to use for connection with device
  action (required): Fencing Action
  verbose: Verbose mode
  debug: Write debug information to given file
  version: Display version information and exit
  help: Display help and exit
  separator: Separator for CSV created by operation list
  power_timeout: Test X seconds for status change after ON/OFF
  shell_timeout: Wait X seconds for cmd prompt after issuing command
  login_timeout: Wait X seconds for cmd prompt after login
  power_wait: Wait X seconds after issuing ON/OFF
  delay: Wait X seconds before fencing is started
  retry_on: Count of attempts to retry power on

4.4. Cómo crear un dispositivo de cercado

El siguiente comando crea un dispositivo STONITH.
pcs stonith create stonith_id stonith_device_type [stonith_device_options]
# pcs stonith create MyStonith fence_virt pcmk_host_list=f1 op monitor interval=30s 
Si utiliza un dispositivo de vallas para varios nodos con diferentes puertos para cada nodo, no cree un dispositivo independiente para cada nodo. En su lugar, use la opción pcmk_host_map para definir el puerto que va con el nodo. Por ejemplo, el siguiente comando crea un dispositivo de cercado individual myapc-west-13 que usa un interruptor APC denominado west-apc y un puerto 15 para nodo west-13.
# pcs stonith create myapc-west-13 fence_apc pcmk_host_list="west-13" ipaddr="west-apc" login="apc" passwd="apc" port="15"
No obstante, el siguiente ejemplo usa el interruptor APC denominado west-apc para cercar nodos west-13 con el puerto 15, west-14 con el puerto 17, west-15 con el puerto 18 y west-16 con el puerto 19.
# pcs stonith create myapc fence_apc pcmk_host_list="west-13,west-14,west-15,west-16" pcmk_host_map="west-13:15;west-14:17;west-15:18;west-16:19" ipaddr="west-apc" login="apc" passwd="apc" 

4.5. Configuración de dispositivos de cercado basados en almacenamiento con remoción de cercado.

Al crear dispositivos de vallas SAN o de cercado de almacenamiento, es decir los que usen un agente de cercado non-power, debe establecer la metaopción provides=unfencing cuando cree el dispositivo stonith. Así se asegura que la cerca de un nodo cercado se elimine, antes de que el nodo sea reiniciado y los servicios del clúster se inicien en el nodo.
No es necesario establecer la metaopción provides=unfencing para configurar un dispositivo de vallas basado en energía, puesto que el dispositivo mismo provee energía al nodo para que arranque (e intenta reconectar el clúster). La acción de arranque en este caso, implica que se ha quitado el cercado.
El siguiente comando configura un dispositivo STONITH denominado my-scsi-shooter que usa el agente de vallas fence_scsi y habilita la eliminación del cercado para el dispositivo.
pcs stonith create my-scsi-shooter fence_scsi devices=/dev/sda meta provides=unfencing

4.6. Despliegue de dispositivos de cercado

El siguiente comando muestra todos los dispositivos. Si especifica stonith_id, el comando muestra únicamente las opciones para ese dispositivo configurado stonith. Si especifica la opción --full, se despliegan todas las opciones stonith configuradas.
pcs stonith show [stonith_id] [--full]

4.7. Modificación y borrado de dispositivos de cercado

Use el siguiente comando para modificar o agregar opciones a un dispositivo de cercado configurado.
pcs stonith update stonith_id [stonith_device_options]
Ejecute el siguiente comando para retirar un dispositivo de cercado desde su configuración actual:
pcs stonith delete stonith_id

4.8. 4.8. Administración de nodos con dispositivos de cercado

Puede cercar un nodo de forma manual con el siguiente comando. Si especifica --off usará la llamada API off para stonith, la cual apagará el nodo en lugar de reiniciarlo.
pcs stonith fence node [--off]
Confirme si el nodo está apagado con el siguiente comando:

Nota

Si el nodo que especificó está aún ejecutando normalmente el software o los servicios de clúster controlados por el clúster, se presentará una interrupción de datos o falla de clúster.
pcs stonith confirm node

4.9. Opciones adicionales de configuración de cercado

La Tabla 4.2, “Propiedades avanzadas de dispositivos de cercado”. Resume las propiedades adicionales que puede establecer para dispositivos de cercado. Observe que estas propiedades son para uso avanzado únicamente.

Tabla 4.2. Propiedades avanzadas de dispositivos de cercado

CampoTipoPredeterminadoDescripción
pcmk_host_argumentcadenaportUn parámetro alternativo para abastecer en lugar de 'port'. Algunos dispositivos no soportan el parámetro de puerto estándar o pueden proporcionar otros adicionales. Puede utilizarlo como un comando alternativo, específico para dispositivo, el cual indica que la máquina puede ser cercada. Un valor de none puede servir para indicarle al clúster que no provea parámetros adicionales.
pcmk_reboot_actioncadenarebootUn comando alternativo en lugar de reboot. Algunos dispositivos no soportan los comandos estándar o proporcionan comandos adicionales. Lo puede utilizar para especificar un comando alternativo, específico para dispositivo, que implemente la acción 'reboot'.
pcmk_reboot_timeouthora60 sEspecifica un tiempo de espera alternativo para reiniciar acciones en lugar de stonith-timeout. Algunos dispositivos necesitan mucho más o mucho menos tiempo del normal. Utilícelo para especificar un tiempo de espera alternativo, específico para dispositivo, para acciones 'reboot'.
pcmk_reboot_retriesentero2El número máximo de veces para reintentar el comando reboot dentro del periodo de tiempo de espera. Algunos dispositivos no soportan múltiples conexiones. Las operaciones pueden fallar si el dispositivo está ocupado con otra tarea, por eso Pacemaker reintentará automáticamente, sí aún queda tiempo. Use esta opción para alterar el número de reintentos que Pacemaker puede hacer de acciones 'reboot'.
pcmk_off_actioncadenaoffUn comando alternativo para ejecutar en lugar de off. Algunos dispositivos no soportan los comandos estándar o proporcionan comandos adicionales. Puede utilizarlo como un comando alternativo, específico para dispositivo, que implementa la acción 'off'.
pcmk_off_timeouthora60 sEspecifica un tiempo de espera alternativo para usar acciones off en lugar de stonith-timeout. Algunos dispositivos requieren mucho más o mucho menos tiempo del normal. Utilícelo para especificar un tiempo de espera alternativo, específico para dispositivo, para acciones 'off'.
pcmk_off_retriesentero2El número máximo de veces para reintentar el comando off dentro del periodo de tiempo de espera. Algunos dispositivos no soportan múltiples conexiones. Las operaciones pueden fallar si el dispositivo está ocupado con otra tarea, por eso Pacemaker reintentará automáticamente, sí aún queda tiempo. Use esta opción para alterar el número de reintentos que Pacemaker puede hacer de acciones 'off'.
pcmk_list_actioncadenalistUn comando alternativo para ejecutar en lugar de list. Algunos dispositivos no soportan los comandos estándar o proporcionan comandos adicionales. Puede utilizarlo como un comando alternativo, específico para dispositivo, que implementa la acción 'list'.
pcmk_list_timeouthora60 sEspecifica un tiempo de espera alternativo para usar acciones 'list' de stonith-timeout. Algunos dispositivos necesitan mucho más o mucho menos tiempo del normal. Utilícelo para especificar un tiempo de espera alternativo, específico para dispositivo, para acciones 'list'.
pcmk_list_retriesentero2El número máximo de veces para reintentar el comando list dentro del periodo de tiempo de espera. Algunos dispositivos no soportan múltiples conexiones. Las operaciones pueden fallar si el dispositivo está ocupado con otra tarea, por eso Pacemaker reintentará automáticamente, sí aún queda tiempo. Use esta opción para alterar el número de reintentos que Pacemaker puede hacer de acciones 'list'.
pcmk_monitor_actioncadenamonitorUn comando alternativo para ejecutar en lugar de monitor. Algunos dispositivos no soportan los comandos estándar o proporcionan comandos adicionales. Puede utilizarlo como un comando alternativo, especifico para dispositivos, que implementa la acción 'monitor'.
pcmk_monitor_timeouthora60 sEspecifica un tiempo de espera alternativo para usar acciones 'monitor' de stonith-timeout. Algunos dispositivos necesitan mucho más o mucho menos tiempo del normal. Utilícelo para especificar un tiempo de espera alternativo, específico para dispositivo, para acciones 'monitor'.
pcmk_monitor_retriesentero2El número máximo de veces para reintentar el comando monitor dentro del periodo de tiempo de espera. Algunos dispositivos no soportan múltiples conexiones. Las operaciones pueden fallar si el dispositivo está ocupado con otra tarea, por eso Pacemaker reintentará automáticamente, sí aún queda tiempo. Use esta opción para alterar el número de reintentos que Pacemaker puede hacer de acciones 'monitor'.
pcmk_status_actioncadenaestadoUn comando alternativo para ejecutar en lugar de status. Algunos dispositivos no soportan los comandos estándar o pueden proporcionar comandos adicionales. Puede utilizarlo como un comando alternativo, específico para dispositivo, que implementa la acción 'status'.
pcmk_status_timeouthora60 sEspecifica un tiempo de espera alternativo para usar acciones de estatus de stonith-timeout. Algunos dispositivos necesitan mucho más o mucho menos tiempo del normal. Utilícelo para especificar un tiempo de espera alternativo, específico para el dispositivo, para acciones 'status'.
pcmk_status_retriesentero2El número máximo de veces para reintentar el comando status dentro del periodo de tiempo de espera. Algunos dispositivos no soportan múltiples conexiones. Las operaciones pueden fallar si el dispositivo está ocupado con otra tarea, por eso Pacemaker reintentará automáticamente, sí aún queda tiempo. Use esta opción para alterar el número de reintentos que Pacemaker puede hacer de acciones 'status'.

4.10. Configuración de niveles de cercado

Pacemaker soporta nodos de cercado con múltiples dispositivos a través de una funcionalidad llamada topologías de cercado. Para implementar topologías, cree los dispositivos individuales como se definen normalmente y luego defina uno o más niveles de cercado en la sección de topología de cercado de la configuración.
  • Cada nivel se intenta en orden numérico ascendente, iniciando en 1.
  • Si un dispositivo falla, el procesamiento termina para el nivel actual. Ningún otro dispositivo en ese nivel se utilizan y se intenta el siguiente nivel en su lugar.
  • Si todos los dispositivos son cercados, entonces ese nivel es correcto y no se intentan otros niveles.
  • La operación ha terminado cuando un nivel ha pasado (éxito) o se han intentado todos los niveles (fallado).
Use el siguiente comando para agregar un nivel de cercado a un nodo. Los dispositivos se dan como una lista separada por coma de los ID stonith, que se ensayan por el nodo en dicho nivel.
pcs stonith level add level node devices
El siguiente comando lista todos los niveles de cercado que están configurados actualmente.
pcs stonith level
En el siguiente ejemplo, hay dos dispositivos de vallas configurados para nodo rh7-2: un dispositivo de vallas ilo llamado my_ilo y un dispositivo de vallas apc llamado my_apc. Estos comandos configuran los niveles de vallas, para que si el dispositivo my_ilo falla y no puede cercar el nodo, entonces Pacemaker intente usar el dispositivo my_apc. Este ejemplo también muestra la salida del comando pcs stonith level después de configurar los niveles.
# pcs stonith level add 1 rh7-2 my_ilo
# pcs stonith level add 2 rh7-2 my_apc
# pcs stonith level
 Node: rh7-2
  Level 1 - my_ilo
  Level 2 - my_apc
El siguiente comando retira el nivel de vallas para el nodo y dispositivos especificados. Si no se especifica ningún nodo o dispositivo, entonces el nivel de vallas será eliminado.
pcs stonith level remove level [node_id] [stonith_id] ... [stonith_id]
El siguiente comando limpia los niveles de vallas en el nodo especificado o id stonith. Si no se especifica ningún nodo o dispositivo, entonces los niveles de vallas serán eliminados.
pcs stonith level clear [node|stonith_id(s)]
Si especifica más de un id stonith, deben ir separados por una coma sin espacios. Por ejemplo:
# pcs stonith level clear dev_a,dev_b
El siguiente comando verifica si todos los dispositivos de vallas y nodos especificados existen.
pcs stonith level verify

Capítulo 5. Configuración de recursos de clúster

Este capítulo proporciona información sobre configuración de recursos de clúster

5.1. Creación de recursos

Use los siguientes comandos para crear un recurso de clúster.
pcs resource create resource_id standard:provider:type|type [resource options]
Por ejemplo, el siguiente comando crea un recurso con el nombre VirtualIP de ocf estándar, proveedor heartbeat, y tiipo IPaddr2. La dirección flotante de este recurso es 192.168.0.120, el sistema revisará si el recurso se ejecuta cada 30 segundos.
# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.120 cidr_netmask=24 op monitor interval=30s
También puede omitir los campos estándar y proveedor y usar el siguiente comando. Este comando predeterminará un estándar ocf y un proveedor heartbeat.
# pcs resource create VirtualIP IPaddr2 ip=192.168.0.120 cidr_netmask=24 op monitor interval=30s
Use el siguiente comando para borrar un recurso configurado.
pcs resource delete resource_id
Por ejemplo, el siguiente comando borra un recurso existente con un ID de recursos de VirtualIP
# pcs resource delete VirtualIP

5.2. Propiedades de recursos

Las propiedades de recursos que usted define para un recurso le indica al clúster cuál script usar para el recurso, dónde encontrarlo y a cuáles estándares se ajusta. La Tabla 5.1, “Propiedades de recursos” describe dichas propiedades.

Tabla 5.1. Propiedades de recursos

CampoDescripción
resource_id
Su nombre para el recurso
standard
El estándar al que se ajusta el script. Valores permitidos: ocf, service, upstart, systemd, lsb, stonith
Tipo
El nombre del agente de recursos que desea utilizar, por ejemplo: IPaddr or Filesystem
Proveedor
La especificación OCF permite a múltiples proveedores abastecer el mismo ResourceAgent. La mayoría de los agentes que Red Hat distribuye usan heartbeat como el proveedor.
La Tabla 5.2, “Comandos para mostrar las propiedades de recursos” resume los comandos que despliegan las propiedades de recursos disponibles que puede usar para crear un recurso.

Tabla 5.2. Comandos para mostrar las propiedades de recursos

Comando para desplegar pcsSalida
pcs resource listMuestra una lista de todos los recursos
pcs resource standardMuestra una lista de todos los estándares de agente de recursos
pcs resource providers Muestra una lista de todos los proveedores disponibles de agente de recursos.
pcs resource list stringDespliega una lista de los recursos disponibles filtrados por la cadena específica. Use el comando para desplegar recursos filtrados por el nombre de un estándar, un proveedor o un tipo.

5.3. Parámetros específicos de recursos

Mediante el siguiente comando, despliegue los parámetros que usted puede usar para establecer recursos individuales.
# pcs resource describe standard:provider:type|type
Por ejemplo, el siguiente comando muestra los parámetros que puede establecer para un recurso del tipo LVM.
# pcs resource describe LVM
Resource options for: LVM
  volgrpname (required): The name of volume group.
  exclusive: If set, the volume group will be activated exclusively.
  partial_activation: If set, the volume group will be activated even
  only partial of the physicalvolumes available. It helps to set to
  true, when you are using mirroring logical volumes.

5.4. Metaopciones de recursos

Además de los parámetros de recursos específicos, puede configurar opciones de recurso adicionales para cualquier recurso. Estas opciones son utilizadas por el clúster para decidir la conducta de su recurso. La Tabla 5.3, “Metaopciones de recursos” describe las opciones.

Tabla 5.3. Metaopciones de recursos

CampoPredeterminadoDescripción
priority
0
Si no todos los recursos están activos, el clúster detendrá los recursos de prioridad inferior para mantener activos los de alta prioridad.
target-role
Started
¿En cuál estado debe el clúster tratar de mantener este recurso? Los valores permitidos son:
* Stopped - Obliga al recurso a parar
* Started - Permite al recurso iniciarse (en el caso de recurso multiestados, no serán promovidos al maestro)
* Master - Permite al recurso iniciarse y, si es apropiado, promoverse
is-managed
true
¿El clúster tiene permiso para iniciar y detener el recurso? Valores permitidos: true, false
resource-stickiness
0
Valor para indicar cuánto prefiere el recurso estar donde está.
requires
Calculado
Indica bajo qué condiciones puede iniciarse el recurso
Se predetermina a fencing excepto en las condiciones anotadas abajo. Posibles valores:
* nothing - El clúster siempre puede iniciar el recurso.
* quorum - El clúster solo puede inicar este recurso si la mayoría de los nodos configurados están activos. Este es el valor predeterminado si stonith-enabled es false o si el standard del recurso es stonith.
* fencing - El clúster solo puede iniciar este recurso si la mayoría de los nodos configurados estań activos y ningún nodo desconocido o fallido ha sido apagado.
* unfencing - El clúster solo puede iniciar este recurso si la mayor parte de los nodos configurados están activos y cualquier nodo fallido o desconocido ha sido apagado y solo en nodos a los que se les ha eliminado la valla. Este es el valor predeterminado si la metaopción provides=unfencing stonith ha sido establecida para un dispositivos de cercado. Para obtener información sobre la metaopción provides=unfencing stonith, consulte la Sección 4.5, “Configuración de dispositivos de cercado basados en almacenamiento con remoción de cercado. ”.
migration-threshold
INFINITY (disabled)
Cuántas fallas pueden ocurrir para este recurso en un nodo, antes de que el nodo sea marcado como no elegible para albergar este recurso. Para obtener información sobre cómo configurar la opción migration-threshold, consulte la Sección 7.2, “Desplazamiento de recursos debido a un fallo”.
failure-timeout
0 (desactivado)
Se usa junto con la opción migration-threshold, indica cuántos segundos se puede esperar antes de actuar como si la falla no hubiese ocurrido, y en potencia permitiendo al recurso volver al nodo en el que fallo. Para obtener información sobre cómo configurar la opción failure-timeout, consulte la Sección 7.2, “Desplazamiento de recursos debido a un fallo”.
multiple-active
stop_start
Lo que debería hacer el clúster si alguna vez encuentra el recurso activo en más de un nodo. Los valores permitidos son:
* block - marca el recurso como no administrado
* stop_only - detiene todas las instancias y las deja como en esa for
* stop_start - detiene todas las instancias activas e inicia el recurso en una sola ubicación
Use el siguiente comando para cambiar el valor predeterminado de una opción de recursos:
pcs resource defaults options
Por ejemplo, el siguiente comando restablece el valor predeterminado de resource-stickiness a 100.
# pcs resource defaults resource-stickiness=100
Al omitir el parámetro options de pcs resource defaults aparece una lista de valores predeterminados configurados actualmente para opciones de recursos. El siguiente ejemplo muestra la salida del comando después de haber restablecido el valor de resource-stickiness a 100.
# pcs resource defaults
resource-stickiness:100
Si ha restablecido o no el valor predeterminado de un valor de una metaopción de recursos, puede establecer una opción de recursos para un recurso determinado a un valor diferente al predeterminado cuando crea el recurso. A continuación aparece el formato del comando pcs resource create que usted utiliza para especificar el valor para una metaopción de recursos.
pcs resource create resource_id standard:provider:type|type [resource options] [meta meta_options...]
Por ejemplo, el siguiente comando crea un recurso con un valor resource-stickiness de 50.
# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.120 cidr_netmask=24 meta resource-stickiness=5O
También puede establecer el valor de una metaopción de recursos para un recurso existente, grupo o recurso maestro,mediante el siguiente comando:
pcs resource meta resource_id | group_id | clone_id | master_id  meta_options
En el siguiente ejemplo, hay un recurso denominado dummy_resource. Este comando establece la metaopción failure-timeout a 20 segundos para que el recurso pueda alcanzar a reiniciar en el mismo nodo en 20 segundos.
# pcs resource meta dummy_resource failure-timeout=20s 
Después de ejecutar este comando, puede desplegar los valores pare el recurso y verificar si failure-timeout=20s está configurado.
# pcs resource show dummy_resource
 Resource: dummy_resource (class=ocf provider=heartbeat type=Dummy)
  Meta Attrs: failure-timeout=20s
  Operations: start interval=0s timeout=20 (dummy_resource-start-timeout-20)
              stop interval=0s timeout=20 (dummy_resource-stop-timeout-20)
              monitor interval=10 timeout=20 (dummy_resource-monitor-interval-10)
Para obtener información sobre metaopciones de clones de recursos, consulte la Sección 8.1, “Clones de recursos” y para información sobre meta opciones de recursos maestros, consulte la Sección 8.2, “Recursos multiestados: Recursos que tienen modos múltiples”.

5.5. Operaciones de recursos

Para asegurarse de que los recursos permanezcan en buen estado, puede agregar una operación de monitorización a una definición de recursos. Si no especifica una operación de monitorización para un recurso, el comando pcs creará de forma predeterminada una operación de monitorización con un intervalo establecido por el agente de recursos. Si el agente de recursos no proporciona un intervalo de monitorización, el comando pcs creará una operación de monitorización con un intervalo de 60 segundos.
La Tabla 5.4, “Propiedades de una operación” resume las propiedades de una operación de monitorización de recursos.

Tabla 5.4. Propiedades de una operación

CampoDescripción
id
Nombre único para la acción. El sistema lo asigna al configurar una operación.
name
La acción a realizar. Valores comunes: monitor, start, stop
interval
La frecuencia (en segundos) para realizar la operación. El valor predeterminado es: 0, el cual significa nunca.
timeout
El tiempo de espera antes de declarar que la acción ha fallado. Si su sistema incluye un recurso que tarda mucho tiempo para iniciar, detenerse o realizar una acción de monitorización o recurrente en el inicio y requiere más tiempo del que el sistema permite antes de declarar fallida la acción, puede aumentar esta valor desde el valor predeterminado de 20 o el valor de timeout en "op defaults".
on-fail
La acción a tomar si la acción falla alguna vez. Los valores permitidos:
* ignore - Pretende que el recurso no ha fallado
* block - No realiza ninguna otra operación en el recurso
* stop -Detiene el recurso y no inicia en ninguna parte
* restart - Detiene el recurso y lo reinicia (posiblemente en otro nodo)
* fence - STONITH el nodo en el que el recurso ha fallado
* standby - Aleja todos los recursos del nodo en el que el recurso ha fallado
El predeterminado para la operación stop es fence cuando STONITH se habilita y block . Todas las demás operaciones se predeterminan a restart.
enabled
Si false, se considera que la operación no existe. Valores predeterminados: true, false
Puede configurar las operaciones de monitorización al crear un recurso, mediante el siguiente comando:
pcs resource create resource_id standard:provider:type|type [resource_options] [op operation_action operation_options [operation_type operation_options]...]
Por ejemplo, el siguiente comando crea un recurso IPaddr2 con una operación de monitorización. El nuevo recurso se denomina VirtualIP con una dirección IP de 192.168.0.99 y una máscara de red de 24 en eth2. Una operación de monitorización se realizará cada 30 segundos.
# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.99 cidr_netmask=24 nic=eth2 op monitor interval=30s
# pcs resource create my_address IPaddr2 ip=10.20.30.40 cidr_netmask=24 op monitor 
También puede agregar una operación de monitorización al recurso existente con el siguiente comando:
pcs resource op add resource_id operation_action [operation_properties]
Use el siguiente comando para borrar una operación de recursos configurados.
pcs resource op remove resource_id operation_name operation_properties

Nota

Especifique las propiedades de la operación exactas para eliminar correctamente una operación existente.
Para cambiar los valores de una opción de monitorización, elimine la operación existente, luego agregue la nueva operación. Por ejemplo, cree un VirtualIP con el comando:
# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.99 cidr_netmask=24 nic=eth2
El comando crea de forma predeterminada estas operaciones.
Operations: start interval=0s timeout=20s (VirtualIP-start-timeout-20s)
            stop interval=0s timeout=20s (VirtualIP-stop-timeout-20s)
            monitor interval=10s timeout=20s (VirtualIP-monitor-interval-10s)
Ejecute los siguientes comandos para cambiar la operación de tiempo de espera de parada:
# pcs resource op remove VirtualIP stop interval=0s timeout=20s
# pcs resource op add VirtualIP stop interval=0s timeout=40s

# pcs resource show VirtualIP
 Resource: VirtualIP (class=ocf provider=heartbeat type=IPaddr2)
  Attributes: ip=192.168.0.99 cidr_netmask=24 nic=eth2
  Operations: start interval=0s timeout=20s (VirtualIP-start-timeout-20s)
              monitor interval=10s timeout=20s (VirtualIP-monitor-interval-10s)
              stop interval=0s timeout=40s (VirtualIP-name-stop-interval-0s-timeout-40s)
Ejecute el siguiente comando para establecer los valores globales predeterminados para operaciones de monitorización:
pcs resource op defaults [options]
Por ejemplo, el siguiente comando establece el valor predeterminado de un valor de timeout de 240 s para todas las operaciones de monitorización.
# pcs resource op defaults timeout=240s
Ejecute el siguiente comando pcs resource op defaults para desplegar los valores predeterminados para operaciones de monitorización:
Por ejemplo, el siguiente comando muestra los valores predeterminados de un valor para un clúster que ha sido configurado con un valor timeout de 240 s.
# pcs resource op defaults
timeout: 240s

5.6. Despliegue de los recursos configurados

Use el siguiente comando para desplegar recursos configurados:
pcs resource show
Por ejemplo, si su sistema está configurado con un recurso llamado VirtualIP y otro llamado WebSite, el comando pcs resource show produce la siguiente salida:
# pcs resource show
 VirtualIP	(ocf::heartbeat:IPaddr2):	Started 
 WebSite	(ocf::heartbeat:apache):	Started
Para desplegar una lista de todos los recursos y parámetros configurados para esos procesos, use la opción --full del comando pcs resource show como el siguiente ejemplo:
# pcs resource show --full
 Resource: VirtualIP (type=IPaddr2 class=ocf provider=heartbeat)
  Attributes: ip=192.168.0.120 cidr_netmask=24 
  Operations: monitor interval=30s
 Resource: WebSite (type=apache class=ocf provider=heartbeat)
  Attributes: statusurl=http://localhost/server-status configfile=/etc/httpd/conf/httpd.conf 
  Operations: monitor interval=1min
Use el siguiente comando para desplegar los parámetros configurados para un recurso:
pcs resource show resource_id
Por ejemplo, el siguiente comando muestra los parámetros actuales configurados para el recurso VirtualIP
# pcs resource show VirtualIP
 Resource: VirtualIP (type=IPaddr2 class=ocf provider=heartbeat)
  Attributes: ip=192.168.0.120 cidr_netmask=24
  Operations: monitor interval=30s

5.7. Cómo modificar los parámetros de recursos

Use el siguiente comando para modificar los parámetros de recursos:
pcs resource update resource_id [resource_options]
La siguiente secuencia muestra los valores iniciales de los parámetros configurados para el recurso VirtualIP, el comando para cambiar el valor del parámetro ip y los valores después del cambio:
# pcs resource show VirtualIP
 Resource: VirtualIP (type=IPaddr2 class=ocf provider=heartbeat)
  Attributes: ip=192.168.0.120 cidr_netmask=24
  Operations: monitor interval=30s
# pcs resource update VirtualIP ip=192.169.0.120
# pcs resource show VirtualIP
 Resource: VirtualIP (type=IPaddr2 class=ocf provider=heartbeat)
  Attributes: ip=192.169.0.120 cidr_netmask=24
  Operations: monitor interval=30s

5.8. Múltiples operaciones de monitorización

Puede configurar un recurso único con cuántas operaciones de monitorización el agente de recursos soporte. De este modo puede realizar un chequeo superficial cada minuto y luego en forma progresiva, chequeos más intensos en intervalos más altos.

Nota

Al configurar múltiples operaciones de monitorización, asegúrese de que no se realicen dos operaciones en el mismo intervalo.
Para configurar múltiples operaciones de monitorización a fin de que un recurso soporte más chequeos intensivos en diferentes niveles, agregue una opción OCF_CHECK_LEVEL=n.
Por ejemplo. para configurar el siguiente recurso IPaddr2, se crea de forma predeterminada una operación de monitorización con un intervalo d 10 segundos y un valor de espera de 20 segundos.
# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.99 cidr_netmask=24 nic=eth2 
Si la IP virtual soporta una revisión diferente con una profundidad de 10, el siguiente comando hace que Pacemaker realice más de una revisión de monitorización avanzada cada 60 segundos aparte de la revisión normal de IP virtual cada 10 segundos. (Como se anotó, no debe configurar la operación de monitorización adicional con un intervalo de 10 segundos).
# pcs resource op add VirtualIP monitor interval=60s OCF_CHECK_LEVEL=10

5.9. Habilitación e inhabilitación de recursos de clúster

El siguiente comando habilita el recurso especificado por resource_id.
pcs resource enable resource_id
El siguiente comando inhabilita el recurso especificado por resource_id.
pcs resource disable resource_id

5.10. Limpieza de recursos de clúster

Si un recurso falla, el mensaje de error aparecerá al desplegar el estatus de clúster. Si resuelve ese recurso, puede limpiar el estatus de error con el comando pcs resource cleanup. Este comando restablece el estatus del recurso y el conteo de fallos, y le dice al clúster que olvide el historial de la operación de un recurso y que redetecte su estado actual.
El siguiente comando limpia el recurso especificado por resource_id.
pcs resource cleanup resource_id

Capítulo 6. Restricciones de validación

Puede determinar la conducta de un recurso en un clúster al configurar las restricciones para dicho recurso. Puede configurar las siguientes categorías de restricciones:
Como un abreviado para configurar una serie de restricciones que ubicarán y garantizarán que los recursos se inicien en forma secuencial y se detengan en orden inverso, Pacemaker es compatible con el concepto de grupos de recursos. Para obtener información sobre grupos de recursos, consulte la Sección 6.5, “Grupos de recursos”.

6.1. Restricciones de ubicación

Restricciones de ubicación determinan los nodos que un recurso puede ejecutar. Puede configurar restricciones de ubicación para determinar si un recurso preferirá o evitará un nodo especificado.
La Tabla 6.1, “Opciones para restricciones de ubicación”. resume las opciones para configurar las restricciones de ubicación.

Tabla 6.1. Opciones para restricciones de ubicación

CampoDescripción
id
Un nombre único para la restricción. Establecido por el sistema cuando usted configura una restricción de ubicación con pcs.
rsc
Un nombre de recurso
node
Un nombre de nodo
score
Valor para indicar la preferencia de si un recurso debe ejecutarse en un nodo o evitar un nodo.
Un valor de cambios INFINITY "should" (debería) a "must" (debe); INFINITY es el valor del puntaje predeterminado para una restricción de ubicación de recursos.
El siguiente comando crea una restricción de ubicación para que un recurso prefiera el nodo o nodos especificado(s)
pcs constraint location rsc prefers node[=score] ...
El siguiente comando crea una restricción de ubicación para que un recurso evite el nodo o nodos especificado(s)
pcs constraint location rsc avoids node[=score] ...
No hay estrategias alternativas para especificar en qué nodos se puede ejecutar un recurso.
  • Opt-In Clusters — Configure un clúster, en el cual se predetermina que no se puede ejecutar ningún recurso en ninguna parte y luego habilitar de forma selectiva los nodos autorizados para recursos específicos. El procedimiento para configurar un clúster opt-in se describe en la Sección 6.1.1, “Configuración de un clúster "Opt-In" ”.
  • Opt-Out Clusters — Configure un clúster, en el cual se predetermina que todos recursos se ejecuten en cualquier parte y cree restricciones de ubicación para recursos que no estén autorizados para ejecutarse en nodos específicos. El procedimiento para configurar un clúster opt-out se describe en la Sección 6.1.2, “Configuración de un clúster "Opt-Out"”.
Si elige configurar un cluster opt-in u opt-out depende tanto de la preferencia personal como del diseño del clúster. Si la mayoría de recursos pueden ejecutarse en la mayoría de nodos, entonces un arreglo opt-out es posible que resulte en un configuración más sencilla. Por otra parte, si la mayoría de recursos pueden ejecutarse unicamente en un subconjunto pequeño de nodos una configuración opt-in podría ser más sencilla.

6.1.1. Configuración de un clúster "Opt-In"

Para crear un clúster "Opt-In", establezca la propiedad del clúster symmetric-cluster a false para evitar que los recursos se ejecuten en cualquier parte.
# pcs property set symmetric-cluster=false
Habilita nodos para recursos individuales. Los siguientes comandos configuran restricciones de ubicación para que el recurso Webserver prefiera el nodo example-1, el recurso Database prefiere el nodo example-2, y ambos recursos puedan conmutarse al nodo example-3 si su nodo preferido falla.
# pcs constraint location Webserver prefers example-1=200
# pcs constraint location Webserver prefers example-3=0
# pcs constraint location Database prefers example-2=200
# pcs constraint location Database prefers example-3=0

6.1.2. Configuración de un clúster "Opt-Out"

Para crear un clúster"Opt-Out", establezca la propiedad de clúster symmetric-cluster a true para permitir que los recursos se ejecuten de forma predeterminada en cualquier parte.
# pcs property set symmetric-cluster=true
Los siguientes comandos producirán una configuración que es equivalente a Sección 6.1.1, “Configuración de un clúster "Opt-In" ”. Ambos recursos pueden conmutarse al nodo example-3 si su nodo preferido falla, puesto que cada nodo tiene un puntaje implícito de 0.
# pcs constraint location Webserver prefers example-1=200
# pcs constraint location Webserver avoids example-2=INFINITY
# pcs constraint location Database avoids example-1=INFINITY
# pcs constraint location Database prefers example-2=200
Observe que no es necesario especificar un puntaje de INFINITY

6.2. Restricciones de orden

Las restricciones de orden determinan el orden en el que se ejecutan los recursos. Puede configurar una restricción de orden para determinar el orden en el cual los recursos inician y se detienen.
Use el siguiente comando para configurar una restricción de orden.
pcs constraint order [action] resource_id then [action] resource_id [options]
La Tabla 6.2, “Propiedades de una restricción de orden”. resume las propiedades y opciones para configurar restricciones de orden.

Tabla 6.2. Propiedades de una restricción de orden

CampoDescripción
resource_id
El nombre del recurso en el cual se realiza una accion
action
La acción a realizar en un recurso. Los valores posibles de la propiedad acción son los siguientes:
* start - Inicia el recurso.
* stop - Detiene el recurso
* promote - Promueve el recurso de un recurso esclavo a un recurso maestro.
* demote - Degrada el recurso de un recurso maestro a un recurso esclavo.
Si no se especifica la acción, se predetermina a start. Para obtener información sobre los recursos maestros y esclavos, consulte la Sección 8.2, “Recursos multiestados: Recursos que tienen modos múltiples”.
Opción kind
Forma de imponer la restricción. Los valores posibles de la opción kind son los siguientes:
* Optional - solamente aplica si ambos recursos están iniciando o parando. Para obtener más información sobre ordenamiento opcional, consulte la Sección 6.2.2, “Recomendación de ordenamiento”.
* Mandatory - siempre (valor predeterminado). Si el primer recurso que usted especificó se detiene o no puede iniciarse, el segundo recurso que usted especificó debe detenerse. Para obtener más información sobre ordenamiento obligatorio, consulte la Sección 6.2.1, “Ordenamiento obligatorio”.
* Serialize - garantiza que no ocurran dos acciones de parada o de inicio al mismo tiempo para un conjunto de recursos.
Opciones symmetrical
Si es verdadero, el cual es el predeterminado, detiene los recursos en el orden inverso. El valor predeterminado: true

6.2.1. Ordenamiento obligatorio

Un ordenamiento obligatorio indica que el segundo recurso que especifica no puede ejecutarse sin el primer recurso que usted especificó como activo. Este es el valor predeterminado de la opción kind. Al dejar el valor predeterminado se garantiza que el segundo recurso que usted especifique reaccionará cuando el primer recurso que especifique cambie de estado.
  • Si el primer recurso que especificó estaba ejecutándose y paró, el segundo recurso que especificó también se detendrá. (si se está ejecutando).
  • Si el primer recurso que especificó no estaba ejecutándose y no puede iniciarse, el segundo recurso que especificó también se detendrá. (si se está ejecutando).
  • Si el primer recurso que especificó se reinicia mientras el segundo recurso que especificó está ejecutándose, el segundo recurso que especificó se detendrá y reiniciará.

6.2.2. Recomendación de ordenamiento

Cuando se especifica la opción kind=Optional para una restricción de orden, la restricción se considera opcional y solamente tiene efecto cuando ambos recursos se están deteniendo o iniciando. Cualquier cambio en el estado del primer recurso que especificó no tiene efecto en el segundo recurso que especificó.
El siguiente comando configura una recomendación de restricción de ordenamiento para el recurso denominado VirtualIP y dummy_resource.
# pcs constraint VirtualIP then dummy_resource kind=Optional 

6.2.3. Conjunto de recursos ordenados

Es común para un administrador crear una cadena de recursos ordenados, donde A inicia antes del recurso B el cual inicia antes del recurso C. Puede configurar una cadena de recursos ordenados con el siguiente comando. Los recursos iniciarán en el orden especificado.
pcs constraint order set resource1 resource2 [resourceN]... [options] [set resource1 resource2 ...]
Si ya tiene tres recursos denominados D1, D2 y D3, el siguiente comando los configura como un conjunto de recursos ordenado.
# pcs constraint order set D1 D2 D3

6.2.4. Retiro de recursos de restricciones de ordenamiento

Use el siguiente comando para retirar recursos de cualquier restricción de ordenamiento.
pcs constraint order remove resource1 [resourceN]...

6.3. Colocación de recursos

Una restricción de colocación determina la ubicación de un recurso depende de la ubicación de otro recurso.
Hay un efecto importante al crear una restricción de colocación entre dos recurso: afecta el orden en que los recursos se asignen al nodo. Esto se debe a que no puede colocarse un recurso A relativo al recurso B, a menos que usted sepa en dónde se encuentra el recurso B. Por lo tanto, cuando cree restricciones de colocación, es importante considerar si debe colocar el recurso A con el recurso B con el recurso A.
Algo que también hay que tener en cuenta al crear restricciones de colocación es presumir que como el recurso A está colocado con el recurso B, el clúster también tendrá en cuenta las preferencias del recurso A para decidir qué nodo elegir para el recurso B.
El siguiente comando crea una restricción de colocación.
pcs constraint colocation add [master|slave] source_resource with [master|slave] target_resource [score] [options]
Para obtener información sobre recursos maestros y esclavos, consulte la Sección 8.2, “Recursos multiestados: Recursos que tienen modos múltiples”.
La Tabla 6.3, “Propiedades de una restricción de colocación”. resume las propiedades y opciones para configurar restricciones de colocación.

Tabla 6.3. Propiedades de una restricción de colocación

CampoDescripción
source_resource
La fuente de colocación. Si la restricción no se puede satisfacer, el clúster decide no permitir que el recurso se ejecute de ninguna manera.
target_resource
El destino de la colocación. El clúster primero decidirá dónde colocar este recurso y luego dónde colocar el recurso de origen.
Puntaje
Los valores positivos indican que el recurso debe ejecutarse en el mismo nodo. Los valores negativos indican que los recursos no se deberían ejecutar en el mismo nodo. Un valor de + INFINITY, el valor predeterminado, indica que source_resource debe ejecutarse en el mismo nodo como target_resource. Un valor de -INFINITY indica que source_resource no debe ejecutarse en el mismo nodo como un target_resource.

6.3.1. Colocación obligatoria

La colocación obligatoria ocurre en cualquier momento en que el puntaje de restricción sea +INFINITY o -INFINITY. en estos casos, si la restricción no puede satisfacerse, entonces no se permite ejecutar source_resource. Para score=INFINITY, esta incluye casos donde target_resource no está activo.
También, si necesita configurar myresource1 para que siempre se ejecute en la misma máquina como myresource1, usted agregaría la siguiente restricción:
# pcs constraint colocation add myresource1 with myresource2 score=INFINITY
Debido a que se utilizó INFINITY, si myresource2 no puede ejecutarse en ninguno de los nodos de clúster (por la razón que sea) entonces myresource1 no podrá ejecutarse.
También, si desea configurar el opuesto, un clúster en el cual myresource1 no pueda ejecutarse en la misma máquina como myresource2. En este caso, use score=-INFINITY
# pcs constraint colocation add myresource1 myresource2 with score=-INFINITY
De nuevo, al especificar -INFINITY, la restricción es la vinculación. Por lo tanto, si el único sitio que queda para ejecutarse es donde myresource2 ya se está, entonces myresource1 no puede ejecutarse en ninguna parte.

6.3.2. Ubicación de recomendación

Si la colocación es sobre "debe" (must) y "no debe" (must not), entonces la colocación de la recomendación es la alternativa "Preferiría" (I'd prefer). Para restricciones con puntajes superiores a -INFINITY e inferiores a INFINITY, el clúster intentará acomodar sus deseos, pero puede ignorarlos si la alternativa es detener algunos de los recursos de clúster. Las restricciones de colocación de la recomendación pueden combinarse con otros elementos de la configuración para comportarse como si fueran obligatorios.

6.3.3. Colocación de conjunto de recursos

Use el siguiente comando para crear una restricción de colocación en un conjunto de recursos. Puede establecer la opción sequential a true o false para indicar si el conjunto de recursos colocados es un conjunto ordenado.
colocation set resource1 resource2 [resourceN]... [setoptions name=value] ... [set resourceX resourceY ...] [setoptions name=value...]
Puede establecer la opción role para una colocación establecida a master o slave. Para obtener información sobre recurso multiestados, consulte la Sección 8.2, “Recursos multiestados: Recursos que tienen modos múltiples”.

6.3.4. Retiro de restricciones de colocación

Use el siguiente comando para retirar las restricciones de colocación con source_resource.
pcs constraint colocation remove source_resource target_resource

6.4. Despliegue de restricciones

Hay varios comandos que puede usar para desplegar restricciones que han sido configuradas.
El siguiente comando lista todas las restricciones de ubicación, orden y colocación actuales
pcs constraint list|show
El siguiente comando lista todas las restricciones de ubicación actuales.
  • Si se especifica resources, la ubicación de restricciones se despliega por recurso. Esta es la conducta predeterminada.
  • Si se especifica nodes, las restricciones de ubicación se despliegan por nodo.
  • Si se especifican los recursos o los nodos, entonces solamente se desplegará la información acerca de estos recursos o nodos.
pcs constraint location [show resources|nodes [specific nodes|resources]] [--full]
El siguiente comando lista todas las restricciones de ordenamiento actuales. Si se especifica la opción --full, mostrará los ID de restricciones internas.
pcs constraint order show [--full]
El siguiente comando lista todas las restricciones de colocación. Si se especifica la opción --full, mostrará los ID de restricciones internas.
pcs constraint colocation show [--full]
El siguiente comando lista todas las restricciones que hacen referencia a los recursos específicos.
pcs constraint ref resource ...

6.5. Grupos de recursos

Uno de los elementos más comunes de un clúster es un conjunto de recursos que necesitan localizarse juntos, iniciar en secuencia y detenerse en orden inverso.
Cree un grupo de recursos con el siguiente comando, especifique los recursos a incluir en el grupo. Si el grupo no existe, este comando crea el grupo. Si el grupo existe, este comando crea el grupo. Si el grupo existe, este comando agrega recursos adicionales al grupo. Los recursos iniciarán en el orden que usted los especifique con este comando y se detendrán en el orden inverso al orden de inicio.
pcs resource group add group_name resource_id...
También puede agregar un nuevo recurso a un grupo existente cuando cree el recurso, mediante el siguiente comando. El recurso que crea se agrega al grupo denominado group_name.
pcs resource create resource_id standard:provider:type|type [resource_options] [op operation_action operation_options] --group group_name
Retire un recurso de un grupo con el siguiente comando. Si no hay recursos en el grupo, este comando retira el grupo.
pcs resource group remove group_name resource_id...
El siguiente comando lista todos los grupos de recursos configurados actualmente.
pcs resource group list
El siguiente ejemplo crea un grupo de recursos shortcut que contiene recursos existentes IPaddr y Email.
# pcs resource group add shortcut IPaddr Email
El número de recursos que un grupo puede contener es ilimitado. Las propiedades fundamentales de un grupo son las siguientes:
  • Los recursos se inician en el orden en que los especificó (en este ejemplo, primero IPaddr, luego Email).
  • Los recursos se detienen en el orden inverso en el que los especificó (en este ejemplo, primero Email luego IPaddr).
Si un recurso en el grupo no puede ejecutarse en ninguna parte, entonces ningún recurso especificado después de dicho recurso puede ejecutarse.
  • Si IPaddr no puede ejecutarse en ninguna parte, ni puede Email.
  • Si Email no puede ejecutarse en ninguna parte, no afectará a IPaddr de ninguna forma.
Obviamente a medida que el grupo se hace más grande, el esfuerzo de configuración reducido de crear grupos de recursos se vuelve importante.

6.5.1. Opciones de grupos

Un grupo de recursos hereda las siguientes opciones de los recursos que contiene: priority, target-role, is-managed. Para obtener más información sobre opciones de recursos, consulte la Tabla 5.3, “Metaopciones de recursos”.

6.5.2. Pegajosidad de grupos

La pegajosidad, es la medida del tiempo que desea que un recurso esté donde está, se adiciona en grupos. Cada recurso activo de los grupos contribuirá con su valor de pegajosidad al total del grupo. Por lo tanto, si el resource-stickiness predeterminado es 100 y un grupo tiene siete miembros, cinco de los cuales están activos, el grupo como un todo preferirá su ubicación actual con un puntaje de 500.

Capítulo 7. Administración de recursos de clúster

Este capítulo describe varios comandos que usted puede utilizar para administrar recursos de clúster. Proporciona información sobre los siguientes procedimientos:

7.1. Desplazamiento manual de los recursos alrededor del clúster

Puede sobrescribir el clúster y forzar los recursos para desplazarlos desde su ubicación. Hay dos ocasiones en que usted necesitará hacerlo.
  • Cuando un nodo está en mantenimiento y usted necesita desplazar todos los recursos que están ejecutándose en ese nodo a otro nodo.
  • Cuando solo se necesita desplazar un recurso
Para desplazar los recursos que se ejecutan en un nodo a otro nodo, ponga el nodo en modo de espera. Para obtener más información sobre cómo poner un nodo de clúster en modo de espera, consulte la Sección 3.2.4, “Modo en espera”.
Para desplazar un recurso apagado del nodo en el que se está ejecutando, use el siguiente comando, especifique el resource_id del nodo como se define.
pcs resource move resource_id
Si desea especificar el nodo en que ejecuta el recurso que está desplazando, use el siguiente comando para especificar destination_node.
pcs resource move resource_id destination_node
Utilice el siguiente comando para devolver el recurso al nodo en el que se estaba ejecutando originalmente, permitiéndole al clúster reanudar la operación normal. Este comando retira las restricciones que el comando move resource_id definió:
pcs resource clear resource_id [node]
Observe que cuando ejecuta el comando pcs resource move, este comando agrega restricciones al recurso para evitar que se ejecute en el nodo indicado. Cuando ejecute el comando pcs resource clear , este comando retira las restricciones. Esta acción no devuelve necesariamente los recursos al nodo indicado; el sitio en donde los recursos pueden ejecutarse en ese momento dependerá de la forma como ha configurado inicialmente sus recursos. Para obtener información sobre restricciones de recursos, consulte el Capítulo 6, Restricciones de validación.

7.2. Desplazamiento de recursos debido a un fallo

Cuando cree un recurso, configúrelo para que pueda desplazarse al nuevo nodo después de un número definido de fallos al establecer la opción migration-threshold para dicho recurso. Cuando se haya alcanzado el umbral, el nodo ya no podrá ejecutar el recurso fallido, sino hasta que:
  • El administrador reconfigure manualmente el conteo de fallos mediante el comando pcs resource failcount.
  • Haya alcanzado el valor del recurso failure-timeout.
No hay un umbral definido predeterminado.

Nota

Configurar migration-threshold para un recurso no es lo mismo que configurar un recurso para migración, en el cual el recurso se desplaza a otro sitio sin perder el estado.
El siguiente ejemplo agrega un umbral de migración de 10 al recurso denominado dummy_resource, lo cual indica que el recurso se desplazará a un nodo después de 10 fallos.
# pcs resource meta dummy_resource migration-threshold=10
Agregue un umbral de migración para que se predetermine a todo el clúster con el siguiente comando:
# pcs resource defaults migration-threshold=10
Para determinar el estatus y los límites del fallo actual del recurso, use el comando pcs resource failcount.
Hay dos excepciones para el concepto de umbral de migración; ellas se presentan cuando un recurso falla para iniciar o detenerse. Las fallas de inicio hacen que el conteo de fallas se establezca a INFINITY y haga que el recurso siempre se desplace inmediatamente.
Las fallas de parada son ligeramente diferentes y cruciales. Si un recurso falla y se detiene cuando STONITH está activado, entonces el clúster cercará el nodo para poder iniciar el recurso en cualquier parte. Si STONITH no está activado, entonces el clúster no tiene forma de continuar y no intentará iniciar el recurso en ninguna parte, pero intentará detenerlo otra vez después de que el tiempo de espera falle.

7.3. Desplazamiento de recursos debido a cambios de conectividad

La configuración del clúster para desplazar recursos cuando la conectividad externa se pierde es un proceso de dos pasos:
  1. Agregue el recurso ping al clúster. El recurso ping usa la herramienta con el mismo nombre para probar si una lista de máquinas (especificadas por el nombre de host DNS o dirección IPv4/IPv6) se puede contactar y usa también los resultados para mantener un atributo de nodo denominado pingd.
  2. Configure una restricción de sitio para el recurso que desplazará el recurso a un nodo diferente cuando se pierda la conectividad.
Tabla 5.1, “Propiedades de recursos” describe las propiedades que puede establecer para un recurso ping .

Tabla 7.1. Propiedades de un recurso ping

CampoDescripción
dampen
El tiempo de de espera (dampening) para que se presenten otros cambios. Esto evita que un recurso rebote contra el clúster cuando los nodos notan la pérdida de conectividad en tiempos poco diferentes.
multiplier
El número de nodos ping conectados se multiplica por el valor de un puntaje. Sirve cuando hay múltiples nodos ping configurados.
host_list
Las máquinas a contactar para determinar el estatus de conectividad actual. Los valores permitidos incluyen los nombres de hosts DNS, las direcciones IPv4 e IPv6.
El siguiente comando de ejemplo crea un recurso ping que verifica conectividad a www.example.com. En la práctica, usted verificaría la conectividad de su puerta de enlace de red/enrutador. Configure el recurso ping como un clon para que el recurso se ejecute en todos los nodos de clúster.
# pcs resource create ping ocf:pacemaker:ping dampen=5s multiplier=1000 host_list=www.example.com --clone
El siguiente ejemplo configura la regla de restricciones para el recurso existente denominado Webserver. Esta acción hará que el recurso Webserver se desplace a un host que pueda contactar a www.example.com si el host que está ejecutándose actualmente no puede contactar a www.example.com.
# pcs constraint location Webserver rule score=-INFINITY pingd lt 1 or not_defined pingd

7.4. Habilitación, inhabilitación y rechazo de recursos de clúster

Aparte del comando pcs resource move descrito en la Sección 7.1, “Desplazamiento manual de los recursos alrededor del clúster”, hay una variedad de comandos que puede usar para controlar la conducta de los recursos de clúster.
Puede detener un recurso y evitar que el clúster lo reinicie con el siguiente comando. Según el resto de la configuración (restricciones, opciones, fallos, etc), el recurso puede permanecer iniciado. Si especifica la opción --wait,pcs esperará hasta 30 segundos (o 'n' segundos) para que el recurso se detenga y luego retornará 0, si el recurso se detiene o si el recurso no ha parado.
pcs resource disable resource_id [--wait[=n]]
Use el siguiente comando para permitir que el clúster inicie un recurso. Según el resto de la configuración, el recurso puede permanecer detenido. Si especifica la opción --wait, pcs esperará hasta 30 segundos (o 'n' segundos) para que el recurso inicie y luego retornará 0 si el recurso se inicia o 1 si el recurso no ha sido iniciado.
pcs resource enable resource_id [--wait[=n]]
Use el siguiente comando para evitar que un recurso se ejecute en un nodo específico o en un nodo actual si no se especifica ningún nodo.
pcs resource ban resource_id [node]
Observe que cuando ejecuta el comando pcs resource, este comando agrega restricciones al recurso para evitar que se ejecute en el nodo indicado. Cuando ejecute el comando pcs resource clear , este comando retira las restricciones. Esta acción no devuelve necesariamente los recursos al nodo indicado; el sitio en donde los recursos pueden ejecutarse en ese momento dependerá de la forma como ha configurado inicialmente sus recursos. Para obtener información sobre restricciones de recursos, consulte el Capítulo 6, Restricciones de validación.
pcs resource clear resource_id [node]
Puede usar el parámetro debug-start del comando pcs resource para forzar el inicio de un recurso especificado en un nodo actual, ignorando las recomendaciones del clúster e imprimiendo la salida del inicio del recurso. Sirve principalmente para depurar recursos; el inicio de recursos en un clúster casi siempre es realizado por Pacemaker y no directamente con el comando pcs. Si su recurso no inicia, suele deberse a una configuración incorrecta del recurso (el cual usted depura en el registro del sistema), restricciones del recurso desde el inicio o debido a un recurso inhabilitado. Puede usar este comando para probar configuración de recursos, pero no debe usarla para iniciar recursos en un clúster.
El formato general del comando debug-start es el siguiente.
pcs resource debug-start resource_id

7.5. Inhabilitación de operaciones de monitorización

La forma más fácil de detener una monitorización recurrente es borrarla. Sin embargo, hay veces en que solo se desea inhabilitarla temporalmente. En tales casos, agregue enabled="false" a la definición de la operación. Cuando desee restablecer la operación de monitorización, establezca la definición de operación a enabled="true".

7.6. Recursos administrados

Establezca un recurso a un modo no administrado, lo cual indica que el recurso aún está en la configuración, pero Pacemaker no lo administra.
El siguiente comando establece los recursos indicados en el modo no administrado
pcs resource unmanage resource1  [resource2] ...
El siguiente comando establece los recursos en el modo administrado, el cual es el estado predeterminado.
pcs resource manage resource1  [resource2] ...
Especifique el nombre de un grupo de recursos con los comandos pcs resource manage o pcs resource unmanage. El comando actuará en todos los recursos del grupo, para que usted pueda administrar o no todos los recursos en un grupo con un solo comando y luego administrar los recursos incluidos individualmente.

Capítulo 8. Tipos de recursos avanzados

Este capítulo describe los tipos de recursos avanzados que son compatibles con Pacemaker.

8.1. Clones de recursos

Puede clonar un recurso para que el recurso esté activo en múltiples nodos. Por ejemplo, puede usar recursos clonados para configurar múltiples instancias de un recurso IP y distribuirlos en un clúster para balanceo de nodos. Clone un recurso siempre y cuando el agente de recursos sea compatible. Un clon consta de un recurso o un grupo de recursos.

Nota

Únicamente los recursos que pueden estar activos al mismo tiempo en múltiples nodos son aptos para clonación. Un recurso Filesystem que monte un sistema de archivos que no esté agrupado, tal como ext4 desde un dispositivo de memoria compartida, no se debe clonar. Como la partición ext4 no reconoce al clúster, este sistema de archivos no es apto para operaciones de lectura y escritura que se realicen en múltiples nodos simultáneamente.

8.1.1. Creación y remoción de un recurso clonado

Cree un recurso y clónelo al mismo tiempo con el siguiente comando:
pcs resource create resource_id standard:provider:type|type [resource options]  \
--clone  [meta clone_options]
El nombre del clon será resource_id-clone.
No puede crear un grupo de recursos y un clon de dicho grupo con un solo comando.
También puede crear un clon de un recurso o un grupo de recursos creado anteriormente con el siguiente comando:
pcs resource clone resource_id | group_name [clone_options]...
El nombre del clon será id_de_recurso-clon o nombre_de_grupo-clon.

Nota

Debe configurar los cambios de configuración de recursos en un solo nodo.

Nota

Cuando haya restricciones en la configuración, use siempre el nombre del grupo o clon.
Cuando cree un clon de un recurso, el clon adquiere el nombre del recurso con -clone adherido al nombre. El siguiente comando crea un recurso del tipo apache denominado webfarm y un clon de dicho recurso denominado webfarm-clone.
# pcs resource create webfarm apache clone
Use el siguiente comando para retirar un clon de un recurso o de un grupo de recursos. Esta acción no retira el recurso o el grupo de recursos por sí mismo.
pcs resource unclone resource_id | group_name
Para obtener más información sobre opciones de recursos, consulte la Sección 5.1, “Creación de recursos”.
La Tabla 8.1, “Opciones de recursos de clon” describe las opciones que usted puede especificar para un recurso clonado.

Tabla 8.1. Opciones de recursos de clon

CampoDescripción
priority, target-role, is-managed
Las opciones heredadas del recurso que se está clonando, como se describe en la Tabla 5.3, “Metaopciones de recursos”.
clone-max
Número de copias que se deben iniciar del recurso. Se predetermina al número de nodos en el clúster.
clone-node-max
Número de copias del recurso que se pueden iniciar en un solo nodo. El valor predeterminado es 1.
notify
Indique a las otras copias cuando detenga o inicie una copia del clon y cuando la acción tenga éxito. Los valores permitidos son: false, true. El valor predeterminado es false.
globally-unique
¿Cada copia de clon funciona diferente? Valores permitidos: false, true
Si el valor de esta opción es false, estos recursos se comportan de forma idéntica en cualquier parte que se ejecuten y por lo tanto, solo pueden ser una copia del clon activo por máquina.
Si el valor de esta opción es true, la copia del clon que se ejecute en una máquina no es equivalente en otra instancia, sea que dicha instancia se esté ejecutando en otro nodo o en el mismo. El valor predeterminado es true si el valor de clone-node-max es mayor que 1; de lo contrario, el valor predeterminado es false.
ordered
Las copias deberían iniciarse en series (en lugar de en paralelo). Los valores permitidos: false, true. El valor predeterminado es false.
interleave
Los cambios de conducta sobre restricciones de ordenamiento (entre clones y maestros) para que las instancias puedan iniciarse o detenerse cuando su instancia par tenga (en lugar de esperar cada instancia que tiene el otro clon). Los valores permitidos son: false y true. El valor predeterminado es false.

8.1.2. Restricciones de clon

En la mayoría de los casos, un clon hará una copia única de cada nodo de clúster activo. Sin embargo, usted puede establecer clone-max para el clon de recursos a un valor inferior al número total de nodos en el clúster. Si este es el caso, indique los nodos al que el clúster debe asignar preferentemente copias con las restricciones de ubicación de recursos. Estas restricciones no se escriben de forma diferente a los recursos regulares a excepción de que se debe utilizar el ID de clon.
El siguiente comando crea una restricción de ubicación para que el clúster asigne preferentemente clon de recursos webfarm-clone a node1.
# pcs constraint location webfarm-clone prefers node1
Las restricciones de ordenamiento se comportan un poco diferente para clones. En el ejemplo de abajo, webfarm esperará a que todas las copias del clon que se deban iniciar lo hayan hecho para poderse iniciar. Solamente si no se inician copias, se evitará que webfarm se active. Además, el clon esperará a que webfarm pare, antes de detener el clon.
# pcs constraint order start webfarm-clone then webfarm
La colocación de un recurso regular (o grupo) con un clon significa que el recurso puede ejecutarse en cualquier máquina con una copia activa del clon. El clúster elegirá una copia según el sitio en donde se ejecute el clon y las preferencias de ubicación del propio recurso.
La colocación entre clones también es posible. En tal caso, el set de ubicaciones permitidas para el clon se limita a nodos en los cuales el clon esté activo (o estará activo). Luego, la asignación se realiza normalmente.
El siguiente comando crea una restricción de colocación para garantizar que el recurso webfarm se ejecute en el mismo nodo que el clon.
# pcs constraint colocation add webfarm with webfarm-clone

8.1.3. Pegajosidad de clon

Para realizar un patrón de asignación estable, los clones son un poco pegajosos de forma predeterminada. Si no se proporciona ningún valor resource-stickiness, el clon utilizará un valor de 1. En un valor pequeño, provoca una interferencia mínima para los cálculos de otros recursos, pero es suficiente para evitar que Pacemaker traslade copias innecesarias alrededor de clúster.

8.2. Recursos multiestados: Recursos que tienen modos múltiples

Los recursos multiestados son una especialización de recursos de clones. Ellos permiten que las instancias estén en alguno de los dos modos operativos denominados: Maestro y Esclavo. Los nombres de los modos no tienen significados específicos, a excepción de la limitación de que cuando se inicie una instancia, debe aparecer en el estado Esclavo.
Cree un recurso como un clon maestro o esclavo con el siguiente comando:
pcs resource create resource_id standard:provider:type|type [resource options] \
--master [meta master_options]
El nombre del clon maestro o esclavo será resource_id-master.
También puede crear un recurso maestro/esclavo desde un recurso o grupo de recurso creado anteriormente con el siguiente comando: cuando use este comando, puede especificar un nombre para que el clon maestro/esclavo sea resource_id-master o group_name-master.
pcs resource master master/slave_name resource_id|group_name [master_options]
Para obtener más información sobre opciones de recursos, consulte la Sección 5.1, “Creación de recursos”.
La Tabla 8.2, “Propiedades de un recurso multiestados” describe las opciones que puede especificar para un recurso de multiestados.

Tabla 8.2. Propiedades de un recurso multiestados

CampoDescripción
id
Su nombre para el recurso multiestados
priority, target-role, is-managed
clone-max, clone-node-max, notify, globally-unique, ordered, interleave
master-max
Número de copias del recurso que pueden ser promovidas al estatus master; predeterminado 1.
master-node-max
Número de copias del recurso que pueden ser promovidas al estatus master; predeterminado 1.

8.2.1. Monitorización de recursos multiestados

Para agregar una operación de monitorización para el recurso maestro únicamente, agregue una operación de monitorización para el recurso. No obstante, observe que cada operación de monitorización en un recurso debe tener un intervalo diferente.
El siguiente ejemplo configura una operación de monitorización con un intervalo de 11 segundos en el recurso maestro para ms_resource. Este recurso de supervisión es en adición a la operación de monitorización predeterminada con un intervalo de 10 segundos.
# pcs resource op add ms_resource interval=11s role=Master

8.2.2. Restricciones de multiestados

En la mayoría de los casos, un recurso multiestados tiene una sola copia en cada nodo de clúster. Si este no es el caso, puede indicar los nodos a los que el clúster preferentemente debe asignar copias con restricciones de ubicación de recursos. Estas restricciones se escriben de la misma forma que los recursos regulares.
Para obtener más información sobre restricciones de ubicación, consulte la Sección 6.1, “Restricciones de ubicación”.
Puede crear una restricción de colocación que especifique si los recursos son maestros o esclavos. El siguiente comando crea una restricción de colocación de recursos.
pcs constraint colocation add [master|slave] source_resource with [master|slave] target_resource [score] [options]
Para obtener información sobre restricciones de ubicación, consulte Sección 6.3, “Colocación de recursos”.
Al configurar una restricción de ordenamiento que incluya recursos multiestados, puede especificar la acción promote, la cual indica que el recurso se promueve de esclavo a maestro o, también, la acción demote, la cual indica que el recurso se degrada de maestro a esclavo.
El comando para configurar una restricción de orden es el siguiente:
pcs constraint order [action] resource_id then [action] resource_id [options]
Para obtener información sobre restricciones de orden de recursos, consulte la Sección 6.2, “Restricciones de orden”.

8.2.3. Pegajosidad de multiestados

Para lograr un patrón de asignación estable, los recursos multiestados son automáticamente un poco pegajosos. Si no se proporciona un valor para resource-stickiness, el recurso multiestados usará un valor de 1. Siendo un valor pequeño, causa mínimas interferencias con los cálculos del puntaje de otros recursos, pero es suficiente para evitar que Pacemaker haga copias innecesarias alrededor del clúster.

8.3. Notificación de eventos con recursos de monitorización

Un clúster de Pacemaker es un sistema de eventos, en donde un evento podría ser un fallo de recurso o un cambio de configuración. El recurso ocf:pacemaker:ClusterMon puede monitorizar el estatus del clúster y activar alertas en cada evento de clúster. Este recurso ejecuta crm_mon en el segundo plano a intervalos regulares y usa herramientas crm_mon para enviar mensajes de correo-e (SMTP) o trampas SNMP. También puede ejecutar un programa externo mediante el parámetro extra_options.
El ejemplo a continuación configura un recurso ClusterMon denominado ClusterMon-SMTP, el cual enviará notificaciones de correo. Los eventos de Pacemaker harán que se envíe un correo-e a pacemaker@example.com desde pacemaker@nodeX.example.com, mediante el host de correo mail.example.com. Este recurso es creado como un clon para que se ejecute en cada nodo del clúster.
# pcs resource create ClusterMon-SMTP ClusterMon --clone user=root update=30 \ extra_options="-T pacemaker@example.com -F pacemaker@nodeX.example.com \ -P PACEMAKER -H mail.example.com" 
El siguiente ejemplo configura un recurso ClusterMon denominado ClusterMon-SNMP, el cual enviará trampas SNMP con el usuario root SNMP conectado al host snmphost.example.com. Este recurso es creado como un clon para que se ejecute en cada nodo del clúster.
# pcs resource create ClusterMon-SNMP ClusterMon user=root update=30 \ extra_options="-S snmphost.example.com -C public" --clone 
El siguiente ejemplo configura un recurso ClusterMon denominado ClusterMon-External que ejecuta el programa /usr/local/bin/example.sh, el cual determina lo que se debe hacer con las notificaciones de clúster. Este recurso es creado como clon para que se ejecute en cada nodo del clúster.
# pcs resource create ClusterMon-External ClusterMon --clone user=root \ update=30 extra_options="-E /usr/local/bin/example.sh -e 192.168.12.1" 

8.4. El servicio pacemaker_remote

El servicio pacemaker_remote permite a los nodos, que no se ejecutan en corosync, integrarse al clúster y hacer que el clúster administre sus recursos como si fueran nodos de clúster reales. Esto significa que los clústeres Pacemaker ahora pueden manejar entornos virtuales (KVM/LXC) y recursos que viven dentro de dichos entornos, sin que los entornos ejecuten pacemaker o corosync.
Los siguientes términos se utilizan para describir el servicio pacemaker_remote.
  • cluster node - Un nodo que se ejecuta en servicios de alta disponibilidad (pacemaker y corosync).
  • remote node — Un nodo que ejecuta pacemaker_remote para integrarse de forma remota dentro del clúster sin requerir membresía de clúster corosync.
  • container — Un recurso Pacemaker que contiene recursos adicionales. Por ejemplo, un recurso de máquina virtual KVM que contiene un recurso webserver.
  • container remote node — Un nodo de huésped virtual remoto que ejecuta el servicio pacemaker_remote. Describe el uso de un caso de nodo específico en el que un recurso de huésped virtual administrado por el clúster es iniciado por el clúster e integrado en el clúster como un nodo remoto.
  • pacemaker_remote — Un demonio de servicio capaz de realizar administración remota de aplicaciones dentro de los nodos de huéspedes (KVM y LXC) tanto en clúster Pacemaker como en entornos de clúster y entornos autónomos (non-cluster). Este servicio es una versión mejorada del recurso local del Demonio de administración de recursos locales (LRMD) de Pacemaker, que es capaz de manejar y monitorizar los recursos en un huésped de forma remota: LSB, OCF, upstart, y systemd. Permite que pcs funcione de forma nativa en nodos remotos.
  • LXC — Un contenedor Linux definido por el controlador de contenedor Linux libvirt-lxc.
Un clúster Pacemaker que ejecute el servicio pacemaker_remote tiene las siguientes características:
  • Los nodos remotos virtuales ejecutan el servicio pacemaker_remote (con muy poca configuración requerida en la máquina virtual).
  • La pila de clúster (pacemaker y corosync), que se ejecuta en nodos de clúster, lanza las máquinas virtuales e inmediatamente se conecta al servicio pacemaker_remote, lo cual permite que las máquinas virtuales se integren en el clúster.
La diferencia entre nodos remotos de máquina virtual y los nodos de clúster, radica en que los nodos remotos no se ejecutan en la pila de clúster. Es decir que los nodos remotos no se realizan en cuórum. También significa que los nodos remotos no están vinculados a los límites de escalabilidad asociados a la pila de clúster. Aparte de la limitación de cuórum, los nodos remotos se comportan igual que los nodos de clúster en relación con la administración de recursos. El clúster es totalmente capaz de administrar y monitorizar recursos en cada nodo remoto. Usted puede crear restricciones para nodos remotos, pausarlos o realizar alguna otra acción en nodos de clúster. Los nodos remotos aparecen en la salida de estatus de clúster al igual que los nodos de clúster.

8.4.1. Opciones de recursos de nodo remoto de contenedor

Cuando configure una máquina virtual o recurso LXC para que actúe como un nodo remoto, cree un recurso VirtualDomain, el cual administra la máquina virtual. Para obtener descripciones de las opciones, establezca un recurso VirtualDomain, mediante el siguiente comando:
# pcs resource describe VirtualDomain
Además de las opciones del recurso VirtualDomain, puede configurar opciones de metadatos para habilitar el recurso como nodo remoto y definir los parámetros de conexión. Habilite el recurso como un nodo remoto y defina los parámetros de conexión. La Tabla 8.3, “Las opciones de metadatos para configurar recursos KVM/LXC como nodos remotos” describe estas opciones de metadatos.

Tabla 8.3. Las opciones de metadatos para configurar recursos KVM/LXC como nodos remotos

CampoPredeterminadoDescripción
remote-node
<none>
El nombre del nodo remoto que define este recurso. Esta acción habilita el recurso como un nodo remoto y define el nombre único utilizado para identificar el nodo remoto. Si no se establecen otros parámetros, este valor también se toma como nombre de host para conectarse al puerto 3121. ADVERTENCIA: este valor no puede sobrepasar un recurso o ID de nodo.
remote-port
3121
Configura un puerto personalizado para usar la conexión de huésped a pacemaker_remote
remote-addr
Valor remote-node usado como nombre de host
La dirección IP o nombre de host para conectarse si el nombre de nodo remoto no es el nombre de host del huésped
remote-connect-timeout
60s
Cantidad de tiempo antes de que la conexión de huésped pendiente expire
El siguiente comando crea un recurso VirtualDomain llamado vm-guest1, el cual es un nodo remoto capaz de ejecutar recursos mediante el metaatributo remote-node.
# pcs resource create vm-guest1 VirtualDomain hypervisor="qemu:///system" config="vm-guest1.xml" meta remote-node=guest1

8.4.2. Autenticación de host y huésped

La autenticación y el cifrado de la conexión entre nodos de clúster y nodos remotos se realiza mediante cifrado y autenticación TLS con PSK en TCP puerto 3121. Es decir que, tanto el nodo de clúster como el nodo remoto, deben compartir la misma llave privada. Esta llave se coloca automáticamente en /etc/pacemaker/authkey tanto en los nodos de clúster como en los nodos remotos.

8.4.3. Cambio de opciones predeterminadas pacemaker_remote

Si necesita cambiar el puerto determinado o la ubicación de authkey, sea para Pacemaker o para pacemaker_remote, hay variables de entorno que usted establece que afectan ambos demonios. Estas variables de entornose pueden habilitar al colocarlas en el archivo /etc/sysconfig/pacemaker de la siguiente manera:
#==#==# Pacemaker Remote
# Use a custom directory for finding the authkey.
PCMK_authkey_location=/etc/pacemaker/authkey
#
# Specify a custom port for Pacemaker Remote connections
PCMK_remote_port=3121

8.4.4. Visión general: Nodo remoto KVM

Esta sección proporciona una vista general de resumen de alto nivel de los pasos a realizar para que Pacemaker lance una máquina virtual y la integre como un nodo remoto, mediante libvirt y huéspedes virtuales KVM.
  1. Después de instalar el software de virtualización y de habilitar el servicio libvirtd en los nodos de clúster, ponga un authkey con la ruta /etc/pacemaker/authkey en cada nodo de clúster y máquina virtual. De esta manera asegura la comunicación remota y la autenticación.
    El siguiente comando crea una authkey.
    # dd if=/dev/urandom of=/etc/pacemaker/authkey bs=4096 count=1
  2. En cada máquina virtual, instale paquetes pacemaker_remote, inicie el servicio pacemaker_remote, habilítelo para ejecutarlo en el inicio y abra el puerto TCP 3121 en el cortafuegos.
    # yum install pacemaker-remote resource-agents
    # systemctl start pacemaker_remote.service
    # systemctl enable pacemaker_remote.service
    # firewall-cmd --add-port 3121/tcp --permanent
  3. Otorga a cada máquina virtual una dirección de red estática y nombre de host único.
  4. Para crear el agente de recursos VirtualDomain para la administración de la máquina virtual, Pacemaker requiere que el archivo xml config de la máquina sea vaciado al archivo en disco. Por ejemplo, si creó una máquina virtual llamada guest1, vacíe el xml a otro archivo en el host mediante el siguiente comando..
    # virsh dumpxml guest1 > /virtual_machines/guest1.xml
  5. Cree el recurso VirtualDomain, al configurar la metaopción del recurso remote-note para indicar que la máquina virtual es un nodo capaz de ejecutar recursos.
    En el ejemplo a continuación, el metaatributo remote-node=guest1 le indica a Pacemaker que este recurso es un nodo remoto con el nombre de host guest1 que puede integrarse en el clúster. El clúster intentará contactar al servicio pacemaker_remote de la máquina con el nombre de host guest1 después de lanzarse.
    # pcs resource create vm-guest1 VirtualDomain hypervisor="qemu:///system" config="vm-guest1.xml" meta remote-node=guest1
  6. Después de crear un recurso VirtualDomain, puede utilizar el nodo remoto como lo haría con cualquier otro nodo en el clúster. Por ejemplo, puede crear un recurso y localizar una restricción de recursos en el recurso para ejecutar en el nodo remoto.
    # pcs resource create webserver apache params configfile=/etc/httpd/conf/httpd.conf op monitor interval=30s
    # pcs constraint webserver prefers guest1
    Cuando un nodo remoto se integra al clúster, ejecute los comandos pcs desde el nodo remoto, como si el nodo remoto estuviera ejecutando Pacemaker.

Capítulo 9. Reglas Pacemaker

Las reglas pueden servir para que su configuración sea más dinámica. Uno de los ejemplos más comunes es el de establecer un valor para resource-stickiness durante horas laborales para evitar que los recursos sean devueltos a su ubicación preferida y otro valor para fines de semana cuando no haya nadie que note la interrupción.
Otro uso de reglas podría ser asignar máquinas a diferentes grupos de procesamiento (mediante un atributo de nodos) con base en el tiempo para luego usar el atributo durante la creación de restricciones de ubicación.
Cada regla puede contener un número de expresiones, expresiones de fecha y otras reglas. Los resultados de las expresiones se combinan según el campo boolean-op de regla para determinar si la regla se evalúa como true o false. Lo que suceda luego, dependerá del contexto en el que la regla sea utilizada.

Tabla 9.1. Propiedades de una regla

CampoDescripción
role
Los sets de reglas a aplicar únicamente cuando el recurso está en dicho rol. Los valores permitidos son: Started, Slave, y Master. NOTA: Una regla con role="Master" no puede determinar la ubicación inicial de una instancia de clon. Solamente afectará las instancias que serán promovidas.
score
El puntaje a aplicar si la regla evalúa como true. Se limita a usar en reglas que hacen parte de restricciones de ubicación.
score-attribute
El atributo de nodos a buscar y usar como un puntaje si la regla evalúa como true. Se limita a usar en reglas que hacen parte de las restricciones de ubicación.
boolean-op
Cómo combinar el resultado de varios objetos de expresión. Los valores permitidos son: and y or. El valor predeterminado es and.

9.1. Expresiones de atributos de nodo

Las expresiones de nodos se utilizan para controlar un recurso basado en atributos definidos por un nodo o nodos.

Tabla 9.2. Propiedades de una expresión

CampoDescripción
value
El valor de usuario para comparar
attribute
Los atributos de nodos para probar
type
Determina la forma como se deben probar los valores. Valores permitidos: string, integer, version
operation
La comparación a realizar. Valores permitidos:
* lt - 'True' si el valor del atributo de nodo es menor que value
* gt - 'True' si el valor del atributo de nodo es mayor que value
* lte - 'True' si el valor del atributo de nodo es menor o igual a value
* gte - 'True' si el valor del atributo de nodo es mayor o igual a value
* eq - 'True' si el valor del atributo de nodo igual a value
* ne - 'True' si el valor del atributo de nodo es igual a value
* defined - 'True' si el nodo tiene el atributo especificado
* not_defined - Es 'True' si el nodo no tiene un atributo especificado

9.2. Expresiones de tiempo/fecha

Las expresiones de fecha se utilizan para controlar un recurso o una opción de clúster con base en la fecha y la hora actual. Estas expresiones contienen una especificación de fecha opcional.

Tabla 9.3. Propiedades de una expresión de fecha

CampoDescripción
start
Una fecha y hora conforme a la especificación ISO8601.
end
Una fecha y hora conforme a la especificación ISO8601.
operation
Compara la fecha/tiempo actual con que el que inicia o termina la fecha, según el contexto. Los valores permitidos son:
* gt - 'True' si la fecha/tiempo actual va después de start
* lt - 'True' si la fecha/tiempo actual va antes de end
* in-range - 'True' si la fecha/tiempo actual va después de start y antes de end
* date-spec - - realiza una comparación similar a cron de la fecha y hora actual

9.3. Especificaciones de fecha

Las especificaciones de fecha se utilizan para crear expresiones cron-like relacionadas con el tiempo. Cada campo puede contener un número o un rango individual. En lugar de predeterminar a cero, cualquier campo que no se proporcione será omitido.
Por ejemplo, monthdays="1" corresponde al primer día de cada mes y hours="09-17" corresponde a las horas entre las 9 a. m y 5 p. m. (inclusive). Sin embargo, usted no puede especificar weekdays="1,2" o weekdays="1-2,5-6" porque ellos contienen múltiples rangos.

Tabla 9.4. Propiedades de especificación de fecha

CampoDescripción
id
Un nombre único para la fecha
hours
Valores permitidos: 0-23
monthdays
Valores permitidos: 0-31 (según el mes y el año)
weekdays
Valores permitidos: 0-7 (1=Lunes, 7=Domingo)
yeardays
Valores permitidos: 0-366 (según el año)
months
Valores permitidos: 0-12
weeks
Valores permitidos: 0-53 (según el año)
years
Año según el calendario gregoriano
weekyears
Pueden diferir de los años gregorianos; por ejemplo, 2005-001 Ordinal también es 2005-01-01 Gregorian también es 2004-W53-6 Weekly
moon
Valores permitidos: 0-7 (0 es luna nueva y 4 luna llena)

9.4. Duración

La duración se utiliza para calcular un valor para end cuando no se proporciona para operaciones in _range. Contienen los mismos campos como objetos date_spec, pero sin las limitaciones (p. ej. puede tener una duración de 19 meses). Como date_specs, cualquier campo no especificado se ignora.

9.5. Configuración de reglas con pcs

Para configurar una regla, use el siguiente comando. Si se omite score, se predetermina a INFINITY. Si se omite id, se genera una del constraint_id. rule_type debe ser expression o date_expression.
pcs constraint rule add constraint_id [rule_type] [score=score [id=rule_id] expression|date_expression|date_spec options
Para retirar una regla, use lo siguiente: Si la regla que está eliminando es la última regla en su restricción, la restricción será eliminada.
pcs constraint rule remove rule_id

9.6. Muestra de expresiones basadas en tiempo

El siguiente comando configura una expresión verdadera si es la hora actual en el año 2005.
# pcs constraint location Webserver rule score=INFINITY date-spec years=2005 
El siguiente comando configura una expresión de 9 a. m. a 5 p. m. Lunes a Viernes. Observe que el valor hours de 16 coincide hasta con 16:59:59, ya que el valor numérico (hour) aún coincide.
# pcs constraint location Webserver rule score=INFINITY date-spec hours="9-16" weekdays="1-5"
El siguiente comando configura una expresión verdadera cuando hay luna llena en un viernes 13.
# pcs constraint location Webserver rule date-spec weekdays=5 monthdays=13 moon=4

9.7. Uso de reglas para determinar la ubicación de recursos

Puede usar una regla para determinar una ubicación de recurso con el siguiente comando:
pcs resource constraint location resource_id rule [rule_id] [role=master|slave] [score=score expression]
La expresión puede ser lo siguiente:
  • defined|not_defined attribute
  • attribute lt|gt|lte|gte|eq|ne value
  • date [start=start [end=end operation=gt|lt|in-range
  • date-spec date_spec_options

Capítulo 10. Propiedades de clúster Pacemaker

Las propiedades de clúster controlan la conducta del clúster cuando se confronta con situaciones que pueden presentarse durante la operación de clúster.

10.1. Resumen de propiedades y opciones de clúster

Tabla 10.1, “Propiedades de clúster” resúmenes de las propiedades de clúster Pacemaker, que muestran los valores predeterminados y los posibles valores que puede establecer para estas propiedades.

Nota

Hay otras propiedades de clúster, aparte de las descritas en esta tabla, que son expuestas por el software de clúster. Para ello, se recomienda no cambiar sus valores a los predeterminados.

Tabla 10.1. Propiedades de clúster

OpciónPredeterminadoDescripción
batch-limit30
el número de tareas que el motor de transición (TE) puede ejecutar en paralelo. El valor "correct" dependerá de la velocidad y carga de su red y nodos de clúster.
migration-limit-1 (ilimitado)
el número de tareas que el (TE) puede ejecutar en paralelo en un nodo.
no-quorum-policyoldetener
Qué hacer cuando el clúster no tiene cuórum. Valores permitidos:
* ignore - continuar la administración de todos los recursos
* freeze - continuar la administración de los recursos, pero no recuperar recursos de nodos que no estén en la partición afectada.
* stop -detener todos los recursos en la partición de clúster afectada
* suicide - cercar todos los nodos en la partición de clúster afectada
symmetric-clustertrue
Indica si los recursos se pueden ejecutar de forma predeterminada en cualquier nodo:
stonith-enabledtrue
Indica que los nodos fallidos y los nodos con recursos que no se pueden detener deben cercarse. Para proteger sus datos debe establecerlo a true.
Si true, o sin establecer, el clúster no iniciará los recursos, a menos que alguno de los recursos STONITH también haya sido configurado.
stonith-actionreiniciar
Una acción para enviar al dispositivo STONITH. Valores permitidos: reboot, off. El valor poweroff también es permitido, pero solo se utiliza para dispositivos de legado.
cluster-delay60s
Demora del viaje por toda la red (se excluye la acción de ejecución). El valor "correct" dependerá del consumo y carga de su red y nodos de clúster.
stop-orphan-resourcestrue
Indica si los recursos borrados deben detenerse.
stop-orphan-actionstrue
Indica si las acciones borradas deben cancelarse.
start-failure-is-fataltrue
Cuando se establece a false, el clúster utilizará en su lugar failcount de recurso y el valor para resource-failure-stickiness.
pe-error-series-max-1 (all)
El número de entradas PE que resultan en ERRORES a guardar. Se utiliza al reportar problemas.
pe-warn-series-max-1 (all)
El número de entradas PE que resultan en ADVERTENCIAS a guardar. Se utiliza al reportar problemas.
pe-input-series-max-1 (all)
El número de entradas PE "normal" a guardar. Se utiliza al reportar problemas.
cluster-infrastructure 
La pila de mensajes en la cual se está ejecutando Pacemaker. Se utiliza para propósitos informativos y de diagnóstico; no es configurable.
dc-version 
Versión de Pacemaker en el Controlador designado de clúster (DC). Se utiliza para propósitos de diagnóstico; no es configurable.
last-lrm-refresh 
Última actualización del Gestor de recursos local, que se entrega en unidades de segundos desde 'epoca'. Se utiliza para propósitos de diagnóstico; no es configurable.
cluster-recheck-interval60
Intervalo de votación para cambios de tiempo a opciones, parámetros de recursos y limitaciones. Valores permitidos: Cero desactiva votación, los valores positivos están en intervalos de segundos (a menos que otras unidades 'SI' se especifiquen, p.ej. cada 5 min).
default-action-timeout20 s
Valor de tiempo de espera para una acción de Pacemaker. La configuración para una operación en un recurso siempre tiene prioridad sobre el valor predeterminado establecido como opción de clúster.
maintenance-modefalse
El modo de mantenimiento le dice al clúster que vaya al modo de no interferencia o "hands off", y no inicia ni detiene ningún servicio hasta que se le indique. Cuando el modo de mantenimiento se completa, el clúster revisa el estado de los servicios y luego detiene o inicia el que lo necesite.
shutdown-escalation20 min
El tiempo después del cual deja de intentar apagar con gracia y simplemente sale. Uso avanzado únicamente.
stonith-timeout60s
El tiempo de espera para que una acción STONITH se complete.
stop-all-resourcesfalse
Los clústeres deben detener todos los recursos.
default-resource-stickiness5000
Indica cuánto prefiere un recurso quedarse donde está. Se recomienda que establezca el valor como un recurso u operación predeterminada en lugar de una opción de clúster.
is-managed-defaulttrue
Indica si el clúster puede iniciar y detener un recurso. Se recomienda que establezca este valor a un recurso u operación predeterminado en lugar de una opción de clúster.
enable-aclfalse
(Red Hat Enterprise Linux 6.6 y posterior) Indica si el cluster puede usar listas de control de acceso, como se establece con el comando pcs acl.

10.2. Configuración y retiro de propiedades de clúster

Use el siguiente valor de comando pcs para establecer el valor de una propiedad de clúster.
pcs property set property=value
Use el siguiente comando para establecer el valor de symmetric-cluster a false:
# pcs property set symmetric-cluster=false
Puede retirar una propiedad de clúster de la configuración mediante el siguiente comando.
pcs property unset property
También puede retirar una propiedad de clúster de una configuración al dejar en blanco el campo del valor del comando pcs property set. Así, restaura dicha propiedad a su valor predeterminado. Por ejemplo, si ya ha establecido la propiedad symmetric-cluster a false, el siguiente comando retira el valor que usted ha establecido de la configuración y restaura el valor de symmetric-cluster a true, el cual es el valor predeterminado.
# pcs property set symmetic-cluster=

10.3. Consulta de parámetros de propiedades de clúster

En la mayoría de los casos, cuando use el comando pcs para desplegar valores de los varios componentes de clúster, use pcs list o pcs show. En los siguientes ejemplos, pcs list es el formato utilizado para desplegar toda una lista de los parámetros para más de una propiedad, mientras que pcs show es el formato utilizado para mostrar todos los valores de una propiedad específica.
Use el siguiente comando pcs para desplegar los valores de parámetros de propiedades que han sido establecidos.
pcs property list
Use el siguiente comando para desplegar todos los valores de los parámetros de propiedad, incluidos los valores predeterminados que no han sido establecido explícitamente.
pcs property list --all
Para desplegar un valor actual de una propiedad de clúster específica, use el siguiente comando.
pcs property show property
Por ejemplo, para desplegar el valor actual de la propiedad de cluster-infrastructure, ejecute el siguiente comando:
# pcs property show cluster-infrastructure
Cluster Properties:
 cluster-infrastructure: cman
Use el siguiente comando para propósitos informativos, despliegue una lista de todos los valores para propiedades, ya sea que hayan sido establecidos o no a un valor diferente del predeterminado:
pcs property [list|show] --defaults

Apéndice A. Creación de clúster en lanzamiento 6.5 Red Hat Enterprise Linux y lanzamiento 6.6 Red Hat Enterprise Linux

La configuración de Red Hat High Availability Cluster en Red Hat Enterprise Linux 6.6 con Pacemaker requiere una serie de herramientas de configuración con una interfaz administrativa diferente a la usada para configurar un clúster en Red Hat Enterprise Linux 6 con rgmanager. La Sección A.1, “Creación de clúster con rgmanager y con Pacemaker” resume las diferencias de configuración entre varios componentes de clúster.
El lanzamiento 6.6 de Red Hat Enterprise Linux 6.6 proporciona algunas funcionalidades para configurar clúster con Pacemaker. La Sección A.2, “Creación de clúster con Pacemaker en los lanzamientos 6.5 y 6.6 de Red Hat Enterprise Linux” resume algunas diferencias entre soporte pcs en el lanzamiento 6.5 de Red Hat Enterprise Linux y el lanzamiento 6.6 y el soporte pcs en el lanzamiento 6.6 de Red Hat Enterprise Linux..

A.1. Creación de clúster con rgmanager y con Pacemaker

La Tabla A.1, “Comparación de configuración de clúster con rgmanager y Pacemaker” proporciona un resumen comparativo de la configuración de los componentes de un clúster cuando se utiliza rgmanager y cuando se utiliza Pacemaker en el lanzamiento 6.6 de Red Hat Enterprise Linux.

Tabla A.1. Comparación de configuración de clúster con rgmanager y Pacemaker

Componente de configuraciónrgmanagerPacemaker
Archivo de configuración de clúster
El archivo de configuración de clúster en cada nodo es cluster.conf, el cual puede ser editado directamente si se desea. De lo contrario, use la interfaz luci o ccs para definir la configuración de clúster.
Los archivos de configuración de clúster y Pacemaker son cluster.conf y cib.xml. No los modifique directamente; use al interfaz pcs en su lugar.
Configuración de red
Configure direcciones IP y SSH antes de configurar el clúster.
Configure direcciones IP y SSH antes de configurar el clúster.
Herramientas de configuración de clúster
luci, el comando ccs, modificación manual del archivo cluster.conf.
pcs
Instalación
Instale rgmanager (el cual extrae todas las dependencias, incluidas ricci, luci, y los agentes de recursos y cercado). Si es necesario, instale lvm2-cluster y gfs2-utils.
Instale pacemaker, cman, pcs, y el agente de recursos y cercado que requiera. Si es necesario, instale lvm2-cluster y gfs2-utils.
Inicio de servicios de clúster
Inicie y habilite los servicios de clúster de la siguiente manera:
  1. Inicie rgmanager, cman, y, si es necesario, clvmd y gfs2.
  2. Inicie ricci, y luci si está utilizando interfaz luci.
  3. Ejecute chkconfig on para los servicios que requiera a fin de que puedan iniciar en cada tiempo de ejecución.
También, puede ejecutar ccs --start para iniciar y habilitar los servicios de clúster.
Inicie y habilite los servicios de clúster de la siguiente manera:
  1. En cada nodo, ejecute service pcsd start, luego service pcsd enable para permitir que pcsd inicie en tiempo de ejecución.
  2. Ejecute en un nodo del clúster pcs cluster start --all para iniciar cman y pacemaker.
Control de acceso a las herramientas de configuración
Para luci, el usuario root o el usuario con permisos de luci pueden acceder a luci. Todo acceso requiere la contraseña ricci para el nodo.
No hay configuración para Interfaz gráfica de usuario
Creación de clúster
Dé un nombre al clúster y defina los nodos que va a incluir en el clúster con luci o ccs, o modifique directamente el archivo cluster.conf.
Nombre el clúster e incluya nodos con el comando pcs cluster setup.
Propagación del archivo de configuración de clúster a todos los nodos
Al configurar un clúster con luci, la es automática. Con ccs, use la --sync. También puede usar el comando cman_tool version -r.
La propagación de los archivos de clúster y Pacemaker, cluster.conf y cib.xml es automática al configurar el clúster o agregar un recurso.
Propiedades de clúster global
Los siguientes funcionalidades con rgmanager:
*Puede configurar el sistema para que el sistema elija la dirección multidifusión a usar para la multidifusión IP en la red de clúster.
* Si la multidifusión IP no está disponible, use el mecanismo de transporte UDP Unicast.un
* Puede configurar un clúster para usar el protocolo RRP
Pacemaker soporta las siguientes funcionalidades para un clúster:
* Puede establecer no-quorum-policy para el clúster a fin de especificar lo que debe hacer el sistema cuando el clúster no tiene cuórum.
*Para obtener las propiedades adicionales de clúster que puede establecer, consulte la Tabla 10.1, “Propiedades de clúster”.
Registro
Puede establecer la configuración de ingreso específico y global de demonios
Consulte el archivo /etc/sysconfig/pacemaker para obtener más información sobre cómo configurar manualmente el ingreso.
Validación de clúster
La validación de clúster es automática con luci y ccs, cuando utiliza el esquema de clúster. El clúster se valida automáticamente en el inicio.
El clúster se valida automáticamente en el inicio o usted mismo puede validarlo con pcs cluster verify.
Cuórum en clústeres de dos nodos
Con un clúster de dos nodos, usted puede configurar la forma como el sistema determina el cuórum:
* Configure un disco cuóorum
* Use ccs o modifique el archivo cluster.conf para establecer una serie de two_node=1 y expected_votes=1 y permitir que un único nodo mantenga cuórum.
pcs automáticamente agrega las opciones necesarias para clúster de dos nodos a cman.
Estatus de clúster
En luci, el estatus actual del clúster es visible en los varios componentes de la interfaz, la cual puede ser actualizada. Use la opción --gethost del comando ccs para ver el archivo de configuración actual. Use el comando clustat para mostrar el estatus de clúster.
Despliegue el estatus actual del clúster con el comando pcs status.
Recursos
Agregue recursos de tipos definidos y configure propiedades de recursos específicos con luci o el comando ccs, o modifique el archivo de configuración cluster.conf.
Para agregar recursos de tipos definidos y configurar propiedades específicas de recursos con el recurso pcs resource create. Para obtener información general sobre configuración de recursos de clúster con Pacemaker, consulte el Capítulo 5, Configuración de recursos de clúster .
Conducta de recursos, agrupamiento y orden de inicio y parada
Defina servicios de clúster para configurar la forma de interacción de los recursos.
Con Pacemaker use grupos de recursos como un método de definir una serie de recursos que necesitan ser localizados juntos e iniciados y detenidos en secuencia. Además, defina la forma como los recursos se comportan e interaccionan, de las siguientes formas:
* Establezca algunos aspectos de conducta de recursos como opciones de recursos.
* Use las restricciones de ubicación para determinar los nodos que un recurso puede ejecutar.
*Use las restricciones para determinar el orden en el que se ejecutan los recursos.
* Use las restricciones de colocación para determinar que la ubicación de un recurso depende de la ubicación de otro recurso.
Para obtener más información sobre estos tópicos, consulte el Capítulo 5, Configuración de recursos de clúster .
Administración de recursos: Desplazamiento, inicio y parada de recursos
luci, le permite administrar clústeres, nodos de clúster individual y servicios de clúster. Con el comando ccs, usted puede administrar el clúster. Use clusvadm para administrar los servicios de clúster.
Puede inhabilitar temporalmente un nodo para que no pueda albergar recursos con el comando pcs cluster standby, el cual hace que los recursos migren. Puede detener un recurso con el comando pcs resource disable.
Retiro completo de una configuración de clúster
luci, le permite seleccionar todos los nodos en un clúster para eliminar un clúster. También puede retirar cluster.conf de cada nodo del clúster.
Retire una configuración de clúster de un nodo con el comando pcs cluster destroy.
Recursos activos en múltiples nodos, recursos activos en múltiples nodos en múltiples modos
No equivalente
Con Pacemaker, puede clonar recursos que puedan ejecutarse para que puedan operar en nodos múltiples, y definir recursos clonados como recursos maestros y esclavos para que puedan operar en múltiples modos. Para obtener más información sobre recursos clonados y recursos maestros y esclavos, consulte el Capítulo 8, Tipos de recursos avanzados.
Fencing -- dispositivo de vallas único por nodo
Cree de manera global o local dispositivos de cercado y agréguelos a nodos. Puede definir valores post-fail delay y post-join delay para el clúster como un todo.
Cree un dispositivo de vallas para cada nodo con el comando pcs stonith create. Para dispositivos que pueden cercar múltiples nodos, defínalos todos de una sola vez, en lugar de hacerlo con cada nodo por separado. También puede definir pcmk_host_map para configurar dispositivos de vallas para todos los nodos con un único comando. Para obtener información sobre pcmk_host_map, consulte la Tabla 4.1, “Propiedades generales de dispositivos de cercado”. Defina el valor stonith-timeout para el clúster como un todo.
Dispositivos múltiples de cercado (de respaldo)por nodo
Defina dispositivos de respaldo con luci, mediante el comando ccs, o al modificar el archivo cluster.conf.
Configure los niveles de cercado

A.2. Creación de clúster con Pacemaker en los lanzamientos 6.5 y 6.6 de Red Hat Enterprise Linux

Para un clúster de Pacemaker en Red Hat Enterprise Linux 6.5, debe crear el clúster e iniciar los servicios de clúster en cada nodo del clúster. Por ejemplo, para crear un clúster llamado my_cluster que conste de los nodos z1 .example.com y z2.example.com e iniciar los servicios de clúster en los nodos, ejecute los siguientes comandos desde z1.example.com y z2.example.com.
[root@rhel6.5]# pcs cluster setup --name my_cluster z1.example.com z2.example.com
[root@rhel6.5]# pcs cluster start
En Red Hat Enterprise Linux 6.6, ejecute el comando de creación de clúster desde un nodo de clúster. El siguiente comando se ejecuta desde un nodo únicamente, crea el clúster llamado my_cluster que consta de los nodos z1.example.com y z2.example.com e inicia los servicios de clúster.
[root@rhel6.6]# pcs cluster setup --start --name my_cluster z1.example.com z2.example.com

Apéndice B. Ejemplo de configuración con comandos pcs

Este apéndice proporciona un procedimiento paso a paso para configurar un clúster Red Hat Enterprise Linux High Availability Add-On, mediante el comando pcs command, en el lanzamiento de Red Hat Enterprise Linux 6.6 y posterior. También describe cómo configurar un servidor Web Apache en el clúster.
La configuración de clúster provista en este capítulo requiere que el sistema incluya los siguientes componentes:
  • Dos nodos, los cuales crearán el clúster. En este ejemplo, los nodos son z1.example.com y z2.example.com.
  • Interruptor de red para redes privadas, requerido para comunicación entre nodos de clúster y otro hardware de clúster, tal como los interruptores de energía de redes y de canal de fibra.
  • Un dispositivo de cercado para cada nodo del clúster. Este ejemplo usa dos puertos de interruptor de energía APC con un nombre de host de zapc.example.com.

B.1. Configuración inicial del sistema

Esta sección describe la configuración inicial del sistema que utilizará para crear el clúster.

B.1.1. Instalación del software de clúster

Siga el siguiente procedimiento para instalar el software de clúster.
  1. Asegúrese de que pacemaker, cman y pcs estén instalados.
    yum install -y pacemaker cman pcs
  2. Después de la instalación, ejecute el siguiente comando en todos los nodos del clúster para evitar que corosync inicie sin el comando cman.
    # chkconfig corosync off
  3. Si desea comprobar que cman completa el inicio aunque no haya cuórum y haya más de dos nodos en el clúster, ejecute el siguiente comando:
    # sed -i.sed "s/.*CMAN_QUORUM_TIMEOUT=.*/CMAN_QUORUM_TIMEOUT=0/g" /etc/sysconfig/cman

B.1.2. Creación e inicio del clúster

Esta sección presenta los pasos para crear el clúster inicial, en el cual usted configurará los recursos de clúster.
  1. A fin de usar pcs para configurar el clúster y comunicarse entre los nodos, debe establecer una contraseña en cada nodo para el ID de usuario hacluster, el cual es la cuenta de administración pcs. Se recomienda que la contraseña de usuario hacluster sea igual en cada nodo.
    # passwd hacluster
    Changing password for user hacluster.
    New password:
    Retype new password:
    passwd: all authentication tokens updated successfully.
  2. Antes de configurar el clúster, debe iniciar el demonio pcsd. Este demonio funciona con el comando pcs para administrar la configuración a través de los nodos del clúster.
    En cada nodo del clúster, ejecute los siguientes comandos para iniciar el servicio pcsd y habilitar pcsd al iniciar el sistema.
    # service pcsd start
    # service pcsd enable
  3. Autentique el usuario pcs hacluster para cada nodo del clúster en el nodo desde el cual ejecutará el comando pcs.
    El siguiente comando autentica el usuario hacluster en z1.example.com para ambos nodos en el ejemplo de clúster de dos nodos, z1.example.com y z2.example.com.
    root@z1 ~]# pcs cluster auth z1.example.com z2.example.com
    Username: hacluster
    Password:
    z1.example.com: Authorized
    z2.example.com: Authorized
  4. Ejecute el siguiente comando desde z1.example.com para crear el clúster de dos nodos mycluster que consiste en los nodos z1.example.com y z2.example.com. De esta manera, propagará los archivos de configuración de clúster para ambos nodos del clúster. Este comando incluye la opción --start, la cual iniciará los servicios de clúster en ambos nodos del clúster.
    [root@z1 ~]# pcs cluster setup --start --name my_cluster \
    z1.example.com z2.example.com
    z1.example.com: Succeeded
    z1.example.com: Starting Cluster...
    z2.example.com: Succeeded
    z2.example.com: Starting Cluster...
  5. También, puede habilitar los servicios de clúster para ejecutar en cada nodo del clúster en el arranque del nodo.

    Nota

    Para un entorno determinado, puede elegir dejar inhabilitados los servicios de clúster saltándose este paso. Esta acción le permite estar seguro de que si el nodo se cae, cualquier problema que haya con su clúster o sus recursos se resolverá antes de que el nodo se reconecte al clúster. Si deja los servicios de clúster inhabilitados, deberá iniciar manualmente los servicios en el arranque de un nodo, mediante el comando pcs cluster start.
    # pcs cluster enable --all
Despliegue el estatus actual del clúster con el comando pcs cluster status.
[root@z1 ~]# pcs cluster status
Cluster Status:
 Last updated: Thu Jul 25 13:01:26 2013
 Last change: Thu Jul 25 13:04:45 2013 via crmd on z2.example.com
 Stack: corosync
 Current DC: z2.example.com (2) - partition with quorum
 Version: 1.1.10-5.el7-9abe687
 2 Nodes configured
 0 Resources configured

B.2. Configuración de cercado

Debe configurar un dispositivo de cercado para cada nodo en el clúster. Para obtener información general sobre configuración de dispositivos de cercado, consulte el Capítulo 4, Cercado: Configuración de STONITH.

Nota

Al configurar el dispositivo de cercado, asegúrese de que el dispositivo de cercado no comparta energía con el nodo que controla.
Este ejemplo, usa el interruptor de energía APC con un nombre de host de zapc.example.com para cercar los nodos, y utiliza el agente de cercado fence_apc_snmp. Puesto que ambos nodos serán cercados por el mismo agente de cercado, puede configurar ambos dispositivos como un recurso único, mediante las opciones pcmk_host_map y pcmk_host_list .
Crea un dispositivo de cercado al configurar el dispositivo como un recurso stonith con el comando pcs stonith create. El siguiente comando configura un recurso stonith denominado myap que usa el agente de cercado fence_apc_snmp para los nodos z1.example.com y z2.example.com. La opción pcmk_host_map asigna z1.example.com al puerto 1, y z2.example.com al puerto 2. El valor para nombre y contraseña del dispositivo APC es apc. Este dispositivo utilizará, de forma predeterminada, un intervalo de monitorización de 60 segundos para cada nodo.
Observe que usted puede usar una dirección IP cuando especifique el nombre de host para los nodos.
[root@z1 ~]# pcs stonith create myapc fence_apc_snmp params \
ipaddr="zapc.example.com" pcmk_host_map="z1.example.com:1;z2.example.com:2" \
pcmk_host_check="static-list" pcmk_host_list="z1.example.com,z2.example.com" \
login="apc" passwd="apc"

Nota

Al crear un dispositivo fence_apc_snmp stonith, verá la siguiente advertencia, la cual puede ignorar:
Warning: missing required option(s): 'port, action' for resource type: stonith:fence_apc_snmp
El siguiente comando muestra los parámetros de un dispositivo STONITH existente.
[root@rh7-1 ~]# pcs stonith show myapc
 Resource: myapc (class=stonith type=fence_apc_snmp)
  Attributes: ipaddr=zapc.example.com pcmk_host_map=z1.example.com:1;z2.example.com:2 pcmk_host_check=static-list pcmk_host_list=z1.example.com,z2.example.com login=apc passwd=apc
  Operations: monitor interval=60s (myapc-monitor-interval-60s)

B.3. Configuración de un servidor Web Apache en un Red Hat High Availability Cluster con el comando pcs

Esta sección describe cómo configurar un servidor Web Apache en clúster de dos nodos Red Hat Enterprise Linux High Availability Add-On mediante pcs para configurar recursos de clúster. En este ejemplo, los clientes acceden al servidor Web Apache a través de una dirección IP flotante. El servidor Web se ejecuta en uno los dos nodos del clúster. Si el nodo en el que se ejecuta el servidor Web deja de funcionar, el servidor Web inicia en el segundo nodo del clúster con una interrupción del servicio mínima.
Este ejemplo requiere que su sistema incluya los siguientes componentes:
  • Un clúster de dos nodos Red Hat High Availability con energía de cercado configurada para cada nodo. Este procedimiento usa el ejemplo de clúster provisto en la Sección B.1.2, “Creación e inicio del clúster”.
  • Una dirección IP virtual pública, requerida para el servidor Web Apache.
  • Almacenamiento compartido para los nodos del clúster, mediante iSCSI o canal de fibra.
El clúster se configurado con un grupo de recursos de Apache, el cual contiene los componentes de clúster que el servidor Web requiere: un recurso LVM, un recurso de sistema de archivos, un recurso de dirección IP, y un recurso de servidor Web. Este grupo de recursos puede fallar desde un nodo del clúster al otro, lo cual permite a cualquier nodo ejecutarse en el servidor Web. Antes de crear el grupo de recursos para este clúster, siga los siguientes pasos:
  1. Configure un sistema de archivos ext4 montado en un volumen lógico my_lv, como se describe en la Sección B.3.1, “Configuración de un volumen LVM con un sistema de archivos ext4”.
  2. Configure un servidor Web, como se describe en la Sección B.3.2, “Configuración de servidor Web”.
  3. Asegúrese de que solo un clúster pueda activar el grupo de volúmenes que contiene my_lv, y que el grupo de volúmenes no se active fuera del clúster durante el inicio, como se describe en la Sección B.3.3, “Activación exclusiva de un grupo de volúmenes en un clúster”.
Después de seguir este procedimiento, cree el grupo de recursos y los recursos que contenga, como se describe en la Sección B.3.4, “Creación de recursos y grupos de recursos con el comando pcs”.

B.3.1. Configuración de un volumen LVM con un sistema de archivos ext4

Este ejemplo requiere que usted cree un volumen lógico LVM en almacenamiento compartido entre los nodos del clúster.
El siguiente procedimiento crea un volumen lógico LVM y luego crea un sistema de archivos ext4 en dicho volumen. En este ejemplo, la partición compartida /dev/sdb1 se utiliza para almacenar el volumen físico LVM desde el cual el volumen lógico LVM será creado.

Nota

Los volúmenes LVM y las particiones correspondientes y los dispositivos utilizados por nodos de clúster conectados a los nodos de clúster únicamente.
Debido a que la partición /dev/sdb1 es almacenamiento que debe ser compartido, realice este procedimiento en un solo nodo.
  1. Cree un volumen físico LVM en la partición /dev/sdb1.
    # pvcreate /dev/sdb1
      Physical volume "/dev/sdb1" successfully created
  2. Cree un grupo de volumen my_vg que conste del volumen físico /dev/sdb1.
    # vgcreate my_vg /dev/sdb1
      Volume group "my_vg" successfully created
  3. Cree un volumen lógico mediante el grupo de volumen my_vg.
    # lvcreate -L450 -n my_lv my_vg
      Rounding up size to full physical extent 452.00 MiB
      Logical volume "my_lv" created
    Puede usar el comando lvs para desplegar el volumen lógico.
    # lvs
      LV      VG      Attr      LSize   Pool Origin Data%  Move Log Copy%  Convert
      my_lv   my_vg   -wi-a---- 452.00m
      ...
  4. Cree un sistema de archivos ext4 en el volumen lógico my_lv.
    # mkfs.ext4 /dev/my_vg/my_lv
    mke2fs 1.42.7 (21-Jan-2013)
    Filesystem label=
    OS type: Linux
    ...

B.3.2. Configuración de servidor Web

El siguiente procedimiento configura un servidor Web Apache.
  1. Asegúrese de que el servidor Apache esté instalado en cada nodo del clúster. También necesita la herramienta wget instalada en el clúster para poder revisar el estatus del servidor Web Apache.
    En cada nodo, ejecute el siguiente comando:
    # yum install -y httpd wget
  2. A fin de que el agente de recursos Apache obtenga el estatus del servidor Web, asegúrese de que el siguiente texto esté presente en el archivo /etc/httpd/conf/httpd.conf en cada nodo del clúster, y verifique si no ha sido descomentado. Si el texto no está presente, agréguelo al final del archivo.
    
    <Location /server-status>
      SetHandler server-status
      Order deny,allow
      Deny from all
      Allow from 127.0.0.1
    </Location>
    
  3. Cree una página Web para Apache. En un nodo del clúster, monte el sistema de archivos que creó en la Sección B.3.1, “Configuración de un volumen LVM con un sistema de archivos ext4”, cree el archivo index.html en ese sistema de archivos y luego desmonte el sistema de archivos.
    # mount /dev/my_vg/my_lv /var/www/
    # mkdir /var/www/html
    # mkdir /var/www/cgi-bin
    # mkdir /var/www/error
    # restorecon -R /var/www
    # cat <<-END >/var/www/html/index.html
    <html>
    <body>Hello</body>
    </html>
    END
    # umount /var/www

B.3.3. Activación exclusiva de un grupo de volúmenes en un clúster

El siguiente procedimiento configura el grupo de volumen en una forma que asegura que solo el clúster es capaz de activar el grupo de volúmenes, y que el grupo de volúmenes no se activará por fuera del clúster en el inicio. Si el grupo de volúmenes es activado por un sistema externo al clúster, no hay riesgo de corromper los metadatos de grupo de volúmenes.
Este procedimiento modifica la entrada volume_list en el archivo de configuración /etc/lvm/lvm.conf. Los grupos de volúmenes listados en la entrada volume_list pueden activarse automáticamente en el nodo local por fuera del control del gestor de clúster. Los grupos de volúmenes relacionados con root local de nodos y directorios principales deben incluirse en esta lista. Todos los grupos de volúmenes administrados por el gestor de clúster deben ser excluidos de la entrada volume_list. Observe que este procedimiento no requiere el uso de clvmd.
Siga los siguientes pasos en cada nodo del clúster.
  1. Determine cuáles grupos de volúmenes están actualmente configurados en su almacenamiento local con el siguiente comando. Este comando, entregará una lista de grupos de volúmenes configurados actualmente. Si tiene un espacio asignado en grupos de volúmenes independientes para root y para el directorio principal en este nodo, verá estos volúmenes en la salida, como en este ejemplo:
    # vgs --noheadings -o vg_name
      my_vg        
      rhel_home
      rhel_root
  2. Agregue los grupos de volúmenes diferentes a my_vg (el grupo de volúmenes que ha definido para el clúster) como entradas para volume_list en el archivo de configuración /etc/lvm/lvm.conf. Por ejemplo, si tiene asignado espacio en grupos de volúmenes independientes para root y para su directorio principal, descomente la línea volume_list del archivo lvm.conf y añada estos grupos de volúmenes como entradas a volume_list así:
    volume_list = [ "rhel_root", "rhel_home" ]

    Nota

    Si no hay grupos de volúmenes locales presentes en un nodo que va a ser activado por fuera del gestor de clúster, aún debe inicializar la entrada volume_list como volume_list = [].
  3. Reconstruya la imagen de arranque initramfs para garantizar que la imagen de arranque no intente activar un grupo de volúmenes controlado por por el clúster. Actualice el dispositivo initramfs con el siguiente comando. Este comando puede tomar un minuto para completar.
    # dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)
  4. Reinicie el nodo.

    Nota

    Si ya ha instalado un nuevo kernel de Linux desde el arranque del nodo en el cual creó la imagen de arranque, la nueva imagen initrd será para el kernel que estaba ejecutándose cuando la creó y no para el nuevo kernel que se está ejecutando cuando reinicie el nodo. Puede asegurarse de que el dispositivo initrd esté en uso, mediante el comando uname -r antes y después del reinicio para determinar el lanzamiento del kernel que está ejecutando. Si los lanzamientos no son los mismos, actualice el archivo initrd después de reiniciar con el nuevo kernel y luego vuelva a arrancar el nodo.
  5. Cuando el nodo haya reiniciado, ejecute el comando pcs cluster status en ese nodo, para revisar si los servicios de clúster han iniciado otra vez en ese nodo. Si aparece el mensaje Error: cluster is not currently running on this node, entonces ejecute el siguiente comando:
    # pcs cluster start
    También, puede esperar hasta que haya reiniciado cada nodo del clúster e iniciar servicios de clúster en cada uno de los nodos con el siguiente comando:
    # pcs cluster start --all

B.3.4. Creación de recursos y grupos de recursos con el comando pcs

Para este caso de uso debe crear cuatro recursos de clúster. Para asegurarse de que todos estos recursos se ejecuten en el mismo nodo, están configurados como parte del grupo de recursos apachegroup. Los recursos a crear son los siguientes, listados en el orden de inicio.
  1. Un recurso LVM denominado my_lvm que usa el grupo de volúmenes LVM que usted creó en la Sección B.3.1, “Configuración de un volumen LVM con un sistema de archivos ext4”.
  2. Un recurso Filesystem denominado my_fs, que usa el dispositivo de sistema de archivos /dev/my_vg/my_lv que usted creó en la Sección B.3.1, “Configuración de un volumen LVM con un sistema de archivos ext4”.
  3. Un recurso IPaddr2, el cual es una dirección IP flotante para el grupo de recursos apachegroup. La dirección IP no se debe asociar con un nodo físico. Si el dispositivo NIC del recurso IPaddr2 no se está especificado, la IP flotante debe residir en la misma red como direcciones IP asignadas de forma estática, utilizadas por los nodos de clúster, de lo contrario, el dispositivo NIC para asignar la dirección IP flotante no se puede detectar correctamente.
  4. Un recurso apache denominado Website que usa el archivo index.html y la configuración Apache que definió en la Sección B.3.2, “Configuración de servidor Web”.
El siguiente procedimiento crea el grupo de recursos apachegroup y los recursos del grupo. Los recursos iniciarán en el orden en el cual usted los agrega al grupo, y se detendrán en el orden contrario al que se agregaron al grupo. Ejecute este procedimiento desde un nodo del clúster únicamente.
  1. El siguiente comando crea el recurso LVM my_lvm. Este comando especifica el parámetro exclusive=true para garantizar que solo el clúster es capaz de activar el volumen lógico LVM. Ya que el grupo de recursos apachegroup no existe, este comando crea el grupo de recursos.
    [root@z1 ~]# pcs resource create my_lvm LVM volgrpname=my_vg \
    exclusive=true --group apachegroup
    Al crear un recurso, el recurso se inicia automáticamente. Use el siguiente comando para confirmar que el recurso fue creado e iniciado.
    # pcs resource show
     Resource Group: apachegroup
         my_lvm	(ocf::heartbeat:LVM):	Started
    Puede detener o iniciar de forma manual un recurso individual con los comandos pcs resource disable y pcs resource enable.
  2. Los siguientes comandos crean los recursos restantes para la configuración, adicionándolos al grupo de recursos existente apachegroup.
    [root@z1 ~]# pcs resource create my_fs Filesystem \
    device="/dev/my_vg/my_lv" directory="/var/www" fstype="ext4" --group \
    apachegroup
    
    [root@z1 ~]# pcs resource create VirtualIP IPaddr2 ip=198.51.100.3 \
    cidr_netmask=24 --group apachegroup
    
    [root@z1 ~]# pcs resource create Website apache \
    configfile="/etc/httpd/conf/httpd.conf" \
    statusurl="http://127.0.0.1/server-status" --group apachegroup
  3. Después de crear los recursos y el grupo de recursos que los contienen, puede revisar el estatus del clúster. Observe que todos los cuatro recursos se estén ejecutando en el mismo nodo.
    [root@z1 ~]# pcs status
    Cluster name: my_cluster
    Last updated: Wed Jul 31 16:38:51 2013
    Last change: Wed Jul 31 16:42:14 2013 via crm_attribute on z1.example.com
    Stack: corosync
    Current DC: z2.example.com (2) - partition with quorum
    Version: 1.1.10-5.el7-9abe687
    2 Nodes configured
    6 Resources configured
    
    
    Online: [ z1.example.com z2.example.com ]
    
    Full list of resources:
     myapc	(stonith:fence_apc_snmp):	Started z1.example.com 
     Resource Group: apachegroup
         my_lvm	(ocf::heartbeat:LVM):	Started z1.example.com 
         my_fs	(ocf::heartbeat:Filesystem):	Started z1.example.com 
         VirtualIP	(ocf::heartbeat:IPaddr2):	Started z1.example.com 
         Website	(ocf::heartbeat:apache):	Started z1.example.com
    Observe que si no ha configurado un dispositivo de cercado para su clúster, como se describe en la Sección B.2, “Configuración de cercado”, los recursos no se iniciarán.
  4. Una vez que el clúster está encendido y en ejecución, apunte el navegador a la dirección IP que definió como el recurso IPaddr2 para ver la pantalla de muestra, la cual consta de la palabra "Hello".
    Hello
    Si los recursos que configuró no se están ejecutando, puede usar el comando pcs resource debug-start recurso para probar la configuración del recurso. Para obtener más información sobre el comando pcs resource debug-start, consulte el manual High Availability Add-On Reference.

B.3.5. Prueba de configuración de recursos

En el estatus de clúster que aparece en la Sección B.3.4, “Creación de recursos y grupos de recursos con el comando pcs”, todos los recursos se ejecutan en el nodo z1.example.com. Puede probar si el grupo de recursos falla en el nodo z2.example.com mediante el siguiente procedimiento para poner el primer nodo en modo standby, después de que el nodo ya no pueda albergar recursos.
  1. El siguiente comando pone el nodo z1.example.com en modo standby.
    root@z1 ~]# pcs cluster standby z1.example.com
  2. Después de poner el nodo z1 en modo standby, verifique si el estatus de clúster. Observe que los recursos estarán ahora ejecutándose en z2.
    [root@z1 ~]# pcs status
    Cluster name: my_cluster
    Last updated: Wed Jul 31 17:16:17 2013
    Last change: Wed Jul 31 17:18:34 2013 via crm_attribute on z1.example.com
    Stack: corosync
    Current DC: z2.example.com (2) - partition with quorum
    Version: 1.1.10-5.el7-9abe687
    2 Nodes configured
    6 Resources configured
    
    
    Node z1.example.com (1): standby
    Online: [ z2.example.com ]
    
    Full list of resources:
    
     myapc	(stonith:fence_apc_snmp):	Started z1.example.com 
     Resource Group: apachegroup
         my_lvm	(ocf::heartbeat:LVM):	Started z2.example.com 
         my_fs	(ocf::heartbeat:Filesystem):	Started z2.example.com 
         VirtualIP	(ocf::heartbeat:IPaddr2):	Started z2.example.com 
         Website	(ocf::heartbeat:apache):	Started z2.example.com
    El sitio Web en la dirección IP definida debe aún desplegarse, aún sin interrupción.
  3. Para retirar z1 del modo standby, ejecute el siguiente comando:
    root@z1 ~]# pcs cluster unstandby z1.example.com

    Nota

    El retiro de un nodo de modo standby no hace que los recursos se recuperen para ese nodo. Para obtener información sobre control de los recursos de nodos en que pueden ejecutarse, consulte el capítulo sobre configuración de recursos de clúster en Red Hat High Availability Add-On Reference.

Apéndice C. Historia de revisiones

Historial de revisiones
Revisión 2.0-7.2Fri Jun 26 2015Gladys Guerrero Lozano
Traducido
Revisión 2.0-7.1Fri Jun 26 2015Gladys Guerrero Lozano
Los archivos de traducción sincronizados con fuentes XML 2.0-7
Revisión 2.0-7Tue Dec 16 2014Steven Levine
Actualización para implementar sort_order en la página de inicio de RHEL 6.
Revisión 2.0-5Thu Oct 9 2014Steven Levine
Versión para lanzamiento de disponibilidad general 6.6
Revisión 2.0-4Wed Oct 8 2014Steven Levine
Resuelve: #1131544
Añade documentación para ACL
Revisión 2.0-2Wed Aug 7 2014Steven Levine
Versión para lanzamiento Beta 6.6
Revisión 2.0-1Wed Jul 23 2014Steven Levine
Borrador Beta 6.6
Resuelve: #1126896, #1126018, #986462, #1045406, #1122145, #1079340
Correcciones técnicas y modificaciones menores
Resuelve: #1081225, #1081248, #1092720
Actualiza documentos para contar con soporte para sincronizar configuración a través de nodos y otras funcionalidades de comunicación internodos
Revisión 1.1-2Wed Nov 20 2013Steven Levine
Versión para lanzamiento de disponibilidad general 6.5
Revisión 0.1-4Wed Oct 2 2013Steven Levine
Primera impresión del borrador Beta 6.5

Aviso Legal

Copyright © 2014 Red Hat, Inc. and others.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.