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
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 y el componente .
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-agents
n
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:
cluster
Configura opciones de clúster y nodos. Para obtener más información sobre el comandopcs cluster
, consulte el Capítulo 3, Creación de clúster y administración .resource
Crea y administra los recursos de clúster. Para obtener más información sobre el comandopcs cluster
, consulte el Capítulo 5, Configuración de recursos de clúster , el Capítulo 7, Administración de recursos de clúster y el Capítulo 8, Tipos de recursos avanzados.stonith
Configura los dispositivos de vallas para usar con Pacemaker. Para obtener información sobre el comandopcs stonith
, consulte el Capítulo 4, Cercado: Configuración de STONITH.constraint
Administra las restricciones de recursos. Para obtener información sobre el comandopcs constraint
, consulte el Capítulo 6, Restricciones de validación.property
Configura las propiedades de Pacemaker. Para obtener información sobre la configuración de propiedades con el comandopcs property
, consulte el Capítulo 10, Propiedades de clúster Pacemaker.status
Visualiza el clúster y el estatus de recursos actuales. Para obtener información sobre el comandopcs status
, consulte la Sección 2.5, “Vista de estatus”.config
Despliega la configuración de clúster completa en la forma legible para el usuario. Para obtener información sobre el comandopcs config
, consulte la Sección 2.6, “Despliegue de toda la configuración del clúster”.
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:
- Autentique los nodos que constituirán el clúster.
- Configure y sincronice los nodos de clúster
- 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 serhacluster
en cada nodo. Se recomienda que la contraseña para usuariohacluster
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 comandopcs 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 comandopcs 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:
- Ejecute el comando
pcs acl role create...
para crear un rol que defina los permisos para dicho rol. - 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
.
- Este procedimiento requiere que el usuario
rouser
exista en el sistema local y que el usuariorouser
sea un miembro del grupohacluster
.#
adduser rouser
#usermod -a -G hacluster rouser
- Habilite las ACL de Pacemaker con la propiedad de clúster
enable-acl
#
pcs property set enable-acl=true --force
- 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
- Cree el usuario
rouser
en el sistema pcs ACL y asígnele el rol deread-only
.#
pcs acl user create rouser read-only
- 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
.
- Este procedimiento requiere que el usuario
wuser
exista en el sistema local y que el usuariowuser
sea miembro del grupohacluster
.#
adduser wuser
#usermod -a -G hacluster wuser
- Habilite las ACL de Pacemaker con la propiedad de clúster
enable-acl
#
pcs property set enable-acl=true --force
- 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
- Cree el usuario
wuser
en el sistema pcs ACL y asígnele el rolwrite-access
.#
pcs acl user create wuser write-access
- 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 ”
Campo | Tipo | Predeterminado | Descripción |
---|---|---|---|
stonith-timeout | hora | 60 s | El tiempo de espera para que la acción STONITH termine por un dispositivo stonith. Sobrescribe la propiedad de clúster stonith-timeout |
priority | entero | 0 | La prioridad del recurso STONITH. Los dispositivos se prueban en orden descendente. |
pcmk_host_map | cadena | 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_list | cadena | Una lista de máquinas controladas por este dispositivo (Opcional a menos que pcmk_host_check=static-list ). | |
pcmk_host_check | cadena | dynamic-list | Có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.
Campo | Tipo | Predeterminado | Descripción |
---|---|---|---|
pcmk_host_argument | cadena | port | Un 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_action | cadena | reboot | Un 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_timeout | hora | 60 s | Especifica 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_retries | entero | 2 | El 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_action | cadena | off | Un 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_timeout | hora | 60 s | Especifica 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_retries | entero | 2 | El 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_action | cadena | list | Un 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_timeout | hora | 60 s | Especifica 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_retries | entero | 2 | El 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_action | cadena | monitor | Un 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_timeout | hora | 60 s | Especifica 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_retries | entero | 2 | El 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_action | cadena | estado | Un 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_timeout | hora | 60 s | Especifica 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_retries | entero | 2 | El 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
- Para obtener información sobre los campos resource_id, standard, provider, and type del comando
pcs resource create
consulte la Sección 5.2, “Propiedades de recursos”. - Para obtener información sobre cómo definir parámetros para recursos individuales, consulte la Sección 5.3, “Parámetros específicos de recursos”.
- Para obtener información sobre cómo definir metaopciones de recursos, las cuales son utilizadas por el clúster para decidir el comportamiento de los recursos, consulte la Sección 5.4, “Metaopciones de recursos”.
- Para obtener información sobre cómo definir las operaciones a ejecutar en un recurso, consulte la Sección 5.5, “Operaciones de recursos”.
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.
Campo | Descripción |
---|---|
resource_id
| |
standard
| |
Tipo
| |
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.
Comando para desplegar pcs | Salida |
---|---|
pcs resource list | Muestra una lista de todos los recursos |
pcs resource standard | Muestra 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 string | Despliega 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.
Campo | Predeterminado | Descripción |
---|---|---|
priority
| 0
| |
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)
|
is-managed
| true
| |
resource-stickiness
|
0
| |
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.
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:
location
— Una restricción de ubicación determina en cuál de los nodos puede ejecutarse un recurso. Las restricciones de ubicación se describen en la Sección 6.1, “Restricciones de ubicación”.order
— Una restricción de orden determina el orden en el cual se ejecutan los recursos. Las restricciones de orden se describen en la Sección 6.2, “Restricciones de orden”.colocation
constraints — Una restricción de colocación determina dónde se localizarán los recursos relativos a otros recursos. Las restricciones de colocación se describen en la Sección 6.3, “Colocación de recursos”.
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.
Campo | Descripció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.
Campo | Descripció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
|
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.
Campo | Descripció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
, luegoEmail
). - Los recursos se detienen en el orden inverso en el que los especificó (en este ejemplo, primero
Email
luegoIPaddr
).
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 puedeEmail
. - Si
Email
no puede ejecutarse en ninguna parte, no afectará aIPaddr
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 moveresource_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:
- Agregue el recurso
ping
al clúster. El recursoping
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 denominadopingd
. - 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
.
Campo | Descripción |
---|---|
dampen
| |
multiplier
| |
host_list
|
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.
Campo | Descripció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
| |
clone-node-max
| |
notify
| |
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
| |
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.
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
ycorosync
). - remote node — Un nodo que ejecuta
pacemaker_remote
para integrarse de forma remota dentro del clúster sin requerir membresía de clústercorosync
. - 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
ycorosync
), que se ejecuta en nodos de clúster, lanza las máquinas virtuales e inmediatamente se conecta al serviciopacemaker_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.
Campo | Predeterminado | Descripció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.
- Después de instalar el software de virtualización y de habilitar el servicio
libvirtd
en los nodos de clúster, ponga unauthkey
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 unaauthkey
.#
dd if=/dev/urandom of=/etc/pacemaker/authkey bs=4096 count=1
- En cada máquina virtual, instale paquetes
pacemaker_remote
, inicie el serviciopacemaker_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
- Otorga a cada máquina virtual una dirección de red estática y nombre de host único.
- 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 llamadaguest1
, vacíe el xml a otro archivo en el host mediante el siguiente comando..#
virsh dumpxml guest1 > /virtual_machines/guest1.xml
- Cree el recurso
VirtualDomain
, al configurar la metaopción del recursoremote-note
para indicar que la máquina virtual es un nodo capaz de ejecutar recursos.En el ejemplo a continuación, el metaatributoremote-node=guest1
le indica a Pacemaker que este recurso es un nodo remoto con el nombre de hostguest1
que puede integrarse en el clúster. El clúster intentará contactar al serviciopacemaker_remote
de la máquina con el nombre de hostguest1
después de lanzarse.#
pcs resource create vm-guest1 VirtualDomain hypervisor="qemu:///system" config="vm-guest1.xml" meta remote-node=guest1
- 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 comandospcs
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.
Campo | Descripción |
---|---|
role
| |
score
| |
score-attribute
| |
boolean-op
|
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.
Campo | Descripción |
---|---|
value
| |
attribute
| |
type
| |
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
|
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.
Campo | Descripción |
---|---|
start
| |
end
| |
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
|
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.
Campo | Descripción |
---|---|
id
| |
hours
| |
monthdays
| |
weekdays
| |
yeardays
| |
months
| |
weeks
| |
years
| |
weekyears
| |
moon
|
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.
- Tabla 10.1, “Propiedades de clúster” describe las de propiedades de clúster.
- La Sección 10.2, “Configuración y retiro de propiedades de clúster” describe cómo establecer las propiedades de clúster.
- La Sección 10.3, “Consulta de parámetros de propiedades de clúster ” describe la forma de listar todas las propiedades actuales 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.
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.
Componente de configuración | rgmanager | Pacemaker |
---|---|---|
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:
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:
|
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
yz2.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.
- Asegúrese de que
pacemaker
,cman
ypcs
estén instalados.yum install -y pacemaker cman pcs
- Después de la instalación, ejecute el siguiente comando en todos los nodos del clúster para evitar que
corosync
inicie sin el comandocman
.#
chkconfig corosync off
- 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.
- 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 usuariohacluster
, el cual es la cuenta de administraciónpcs
. Se recomienda que la contraseña de usuariohacluster
sea igual en cada nodo.#
passwd hacluster
Changing password for user hacluster. New password: Retype new password: passwd: all authentication tokens updated successfully. - Antes de configurar el clúster, debe iniciar el demonio
pcsd
. Este demonio funciona con el comandopcs
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 serviciopcsd
y habilitarpcsd
al iniciar el sistema.#
service pcsd start
#service pcsd enable
- Autentique el usuario
pcs
hacluster
para cada nodo del clúster en el nodo desde el cual ejecutará el comandopcs
.El siguiente comando autentica el usuariohacluster
enz1.example.com
para ambos nodos en el ejemplo de clúster de dos nodos,z1.example.com
yz2.example.com
.root@z1 ~]#
pcs cluster auth z1.example.com z2.example.com
Username: hacluster Password: z1.example.com: Authorized z2.example.com: Authorized - Ejecute el siguiente comando desde
z1.example.com
para crear el clúster de dos nodosmycluster
que consiste en los nodosz1.example.com
yz2.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... - 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 comandopcs 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:
- Configure un sistema de archivos
ext4
montado en un volumen lógicomy_lv
, como se describe en la Sección B.3.1, “Configuración de un volumen LVM con un sistema de archivos ext4”. - Configure un servidor Web, como se describe en la Sección B.3.2, “Configuración de servidor Web”.
- 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.
- Cree un volumen físico LVM en la partición
/dev/sdb1
.#
pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created - 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 - 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" createdPuede usar el comandolvs
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 ... - Cree un sistema de archivos
ext4
en el volumen lógicomy_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.
- 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
- 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>
- 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.
- 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 - Agregue los grupos de volúmenes diferentes a
my_vg
(el grupo de volúmenes que ha definido para el clúster) como entradas paravolume_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íneavolume_list
del archivolvm.conf
y añada estos grupos de volúmenes como entradas avolume_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 entradavolume_list
comovolume_list = []
. - 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 dispositivoinitramfs
con el siguiente comando. Este comando puede tomar un minuto para completar.#
dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)
- 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 imageninitrd
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 dispositivoinitrd
esté en uso, mediante el comandouname -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 archivoinitrd
después de reiniciar con el nuevo kernel y luego vuelva a arrancar el nodo. - 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 mensajeError: 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.
- Un recurso
LVM
denominadomy_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”. - Un recurso
Filesystem
denominadomy_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”. - Un recurso
IPaddr2
, el cual es una dirección IP flotante para el grupo de recursosapachegroup
. La dirección IP no se debe asociar con un nodo físico. Si el dispositivo NIC del recursoIPaddr2
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. - Un recurso
apache
denominadoWebsite
que usa el archivoindex.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.
- El siguiente comando crea el recurso LVM
my_lvm
. Este comando especifica el parámetroexclusive=true
para garantizar que solo el clúster es capaz de activar el volumen lógico LVM. Ya que el grupo de recursosapachegroup
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): StartedPuede detener o iniciar de forma manual un recurso individual con los comandospcs resource disable
ypcs resource enable
. - 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
- 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.comObserve 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. - 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 comandopcs resource debug-start recurso
para probar la configuración del recurso. Para obtener más información sobre el comandopcs 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.
- El siguiente comando pone el nodo
z1.example.com
en modostandby
.root@z1 ~]#
pcs cluster standby z1.example.com
- 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 enz2
.[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.comEl sitio Web en la dirección IP definida debe aún desplegarse, aún sin interrupción. - Para retirar
z1
del modostandby
, ejecute el siguiente comando:root@z1 ~]#
pcs cluster unstandby z1.example.com
Nota
El retiro de un nodo de modostandby
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.2 | Fri Jun 26 2015 | ||||||
| |||||||
Revisión 2.0-7.1 | Fri Jun 26 2015 | ||||||
| |||||||
Revisión 2.0-7 | Tue Dec 16 2014 | ||||||
| |||||||
Revisión 2.0-5 | Thu Oct 9 2014 | ||||||
| |||||||
Revisión 2.0-4 | Wed Oct 8 2014 | ||||||
| |||||||
Revisión 2.0-2 | Wed Aug 7 2014 | ||||||
| |||||||
Revisión 2.0-1 | Wed Jul 23 2014 | ||||||
| |||||||
Revisión 1.1-2 | Wed Nov 20 2013 | ||||||
| |||||||
Revisión 0.1-4 | Wed Oct 2 2013 | ||||||
|
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.