Sun Cluster: Guía de conceptos para SO Solaris

Quórum y dispositivos de quórum

Esta sección se divide en los siguientes apartados:


Nota –

Para obtener una lista de los dispositivos específicos que Sun Cluster admite como dispositivos de quórum, póngase en contacto con el proveedor de servicios Sun.


Debido a que los nodos del clúster comparten datos y recursos, un clúster nunca se debe dividir en particiones separadas que estén activas a la vez porque varias particiones activas pueden provocar que se dañen los datos. Cluster Membership Monitor (CMM) y el algoritmo de quórum garantizan que como mucho una instancia del mismo clúster está operativa cada vez, incluso si se particiona la interconexión del clúster.

Si desea obtener más información acerca de CMM, consulte “Cluster Membership” en Sun Cluster Overview for Solaris OS

Pueden surgir dos tipos de problemas derivados de las particiones del disco:

La esquizofrenia se produce cuando se pierde la interconexión del clúster entre nodos y el clúster se particiona en clústeres secundarios. Cada partición cree que es la única partición porque los nodos en una partición no se pueden comunicar con los nodos en otra partición.

La amnesia se produce cuando el clúster se reinicia después de un apagado teniendo datos de configuración del clúster más antiguos que los del momento del apagado. Este problema se puede producir cuando inicia el clúster en un nodo que no se encuentra en la partición que estaba funcionando la última vez.

Sun Cluster evita la esquizofrenia y amnesia:

Una partición con la mayoría de votos tiene quórum y se le permite funcionar. Este mecanismo de votos de la mayoría evita la esquizofrenia y amnesia cuando hay más de dos nodos configurados en un clúster. Sin embargo, el recuento de los votos de los nodos por sí solo no es suficiente cuando hay más de dos nodos configurados en un clúster. En un clúster de dos nodos, la mayoría es dos. Si dicho clúster de dos nodos se particiona, es necesario un voto externo para que cualquiera de las particiones obtenga quórum. Este voto externo lo proporciona un dispositivo del quórum

Acerca de los recuentos de votos de quórum

Use la opción -q del comando scstat para determinar la siguiente información:

Para obtener más información acerca de este comando, consulte scstat(1M).

Los nodos y los dispositivos de quórum aportan votos al clúster para formar quórum.

Un nodo aporta votos en función del estado del nodo:

Los dispositivos de quórum aportan votos basándose en el número de votos conectados al dispositivo. Cuando configura un dispositivo de quórum, Sun Cluster asigna al dispositivo de quórum un recuento de votos de N-1 donde N es el número de votos conectados al dispositivo de quórum. Por ejemplo, un dispositivo de quórum conectado a dos nodos con recuentos distintos de cero, tiene un recuento del quórum igual a uno (dos menos uno).

Un dispositivo de quórum aporta votos si se cumple una de las siguientes condiciones:

Puede configurar los dispositivos de quórum durante la instalación del clúster o posteriormente utilizando los procedimientos que se describen en “Administering Quorum” en Sun Cluster System Administration Guide for Solaris OS.

Aislamiento de fallos

Un problema fundamental de los clústers es un fallo que provoque en éstos una partición (denominada esquizofrenia). Cuando ocurre, no todos los nodos pueden comunicarse, por lo que algunos podrían intentar formar clústers individuales o subconjuntos que se creerían con permisos de acceso y de propiedad exclusivos respecto a los discos multisistema. En consecuencia, varios nodos intentando escribir en los discos podrían provocar la corrupción de los datos.

El aislamiento de fallos limita el acceso de los nodos a los dispositivos multisistema, evitando que físicamente se pueda acceder a ellos. Cuando un nodo abandona el clúster (falla o se particiona), el aislamiento de fallos se asegura de que el nodo ya no pueda acceder a los discos. Sólo los nodos miembros actuales tendrán acceso a los discos, conservándose así la integridad de los datos.

Los servicios de dispositivos de disco ofrecen prestaciones para servicios que utilizan dispositivos multisistema. Cuando un miembro del clúster que sirve actualmente como primario (propietario) del grupo de dispositivos de disco cae o deja de ser accesible, se elije otro primario, lo que permite que continúe el acceso al grupo de dispositivos de disco con la mínima interrupción. Durante este proceso, el primario antiguo debe renunciar al acceso a los dispositivos antes de que el nuevo primario pueda iniciarse. Sin embargo, cuando un miembro se descuelga del clúster y deja de estar disponible, éste no puede informar al nodo que libere los dispositivos para los que era primario. Por tanto, se necesita un medio para permitir que los miembros supervivientes tomen control y accedan a los dispositivos globales de los miembros fallidos.

El sistema SunPlex usa reservas de disco SCSI para implementar el aislamiento de fallos, gracias a las cuales, los nodos fallidos se “aíslan” de los dispositivos multisistema, evitando que accedan a estos discos.

Las reservas de los discos SCSI-2 admiten un tipo que concede acceso a todos los nodos conectados al disco (cuando no hay ninguna reserva vigente) o restringe el acceso a un nodo individual (el nodo que retiene la reserva).

Cuando un miembro del clúster detecta que otro nodo ya no se está comunicando a través de la interconexión del clúster, inicia un procedimiento de aislamiento de fallos para evitar que el otro nodo acceda a los discos compartidos. Cuando se produce este aislamiento de fallos es normal que el nodo aislado entre en pánico con mensajes de “conflicto de reserva” en la consola.

El conflicto de reserva se produce porque después de haberse detectado que el nodo ya no es miembro del clúster, se pone una reserva SCSI en todos los discos que están compartidos entre este nodo y los demás nodos. El nodo podría no advertir que se le está aislando y si intenta acceder a uno de los discos compartidos, detecta la reserva y entra en situación de pánico.

Mecanismo de recuperación rápida para aislamiento de fallos

El mecanismo por el que la estructura del clúster se asegura de que un nodo fallido no pueda rearrancar y empezar a escribir en almacenamiento compartido se denomina recuperación rápida.

Los nodos que son miembros del clúster habilitan permanentemente un ioctl específico, MHIOCENFAILFAST, para los discos a los que tienen acceso, incluidos los de quórum. ioctl es una directiva para el controlador de disco y da a un nodo la posibilidad de entrar en pánico por sí mismo si éste no puede acceder al disco debido a que otro nodo lo está reservando.

ioctl MHIOCENFAILFAST hace que el controlador compruebe el retorno del error de cada lectura y escritura que emite un nodo al disco en el caso del código de error Reservation_Conflict. ioctl emite periódicamente en segundo plano una operación de prueba al disco para comprobar si se produce Reservation_Conflict. Las rutas del flujo de control de segundo y primer plano entran en pánico si se devuelve Reservation_Conflict.

En discos SCSI-2, las reservas no son persistentes, pues no resisten los rearranques de los nodos. En los discos SCSI-3 con reserva de grupo persistente (PGR), la información de reserva se almacena en el disco y permanece entre los rearranques de los nodos. El mecanismo de recuperación rápida funciona igual aunque disponga de discos SCSI-2 o SCSI-3.

Si un nodo pierde conectividad con los otros nodos del clúster y no es parte de una partición que pueda conseguir el quórum, otro nodo lo expulsa del clúster. Otro nodo que forme parte de la partición que pueda conseguir el quórum coloca reservas en los discos compartidos y cuando el nodo que no tiene el quórum intenta acceder a éstos recibe un conflicto de reserva y entra en condición de pánico como resultado del mecanismo de recuperación rápida.

Después de la condición de aviso grave, el nodo podría rearrancar e intentar volver a unirse al clúster o, si éste se compone de sistemas basados en plataformas SPARC, permanecer en el indicador PROM (OBP) de OpenBootTM. La acción que se toma depende del valor del parámetro auto-boot?. Se puede establecer auto-boot? con eeprom(1M), en el indicador ok de la PROM de OpenBoot en un clúster basado en la plataforma SPARC o con la utilidad SCSI que se puede ejecutar opcionalmente tras un arranque de la BIOS en un clúster basado en la plataforma x86.

Acerca de las configuraciones de quórum

La siguiente lista contiene hechos acerca de las configuraciones de quórum:

Para obtener ejemplos de configuraciones de quórum que se deben evitar, consulte Configuraciones de quórum malas . Para obtener ejemplos de configuraciones de quórum recomendadas, consulte Configuraciones de quórum recomendadas .

Cumplimiento de los requisitos de dispositivos de quórum

Debe cumplir los siguientes requisitos. En caso contrario, puede poner en peligro la disponibilidad del clúster.

Para obtener ejemplos de configuraciones de quórum que se deben evitar, consulte Configuraciones de quórum malas . Para obtener ejemplos de configuraciones de quórum recomendadas, consulte Configuraciones de quórum recomendadas .

Cumplimiento de las mejores prácticas recomendadas de dispositivos de quórum

Use la siguiente información para evaluar la mejor configuración de quórum para su topología:

Para obtener ejemplos de configuraciones de quórum que se deben evitar, consulte Configuraciones de quórum malas . Para obtener ejemplos de configuraciones de quórum recomendadas, consulte Configuraciones de quórum recomendadas .

Configuraciones de quórum recomendadas

Para obtener ejemplos de configuraciones de quórum que se deben evitar, consulte Configuraciones de quórum malas .

Quórum en configuraciones de dos nodos

Son necesarios dos votos de quórum para que se forme un clúster de dos nodos. que pueden provenir de los dos nodos del clúster o de un nodo y un dispositivo del quórum.

Figura 3–2 Configuración de dos nodos

Ilustración: Muestra el nodo A y el nodo B con un dispositivo de quórum que está conectado a los dos nodos.

Quórum en configuraciones de más de dos nodos

Es válido configurar un clúster de más de dos nodos sin dispositivo de quórum. Sin embargo, si realiza esta operación, no podrá iniciar el clúster sin una mayoría de nodos en el clúster.

Ilustración: Config1: NodeA-D. A/B conecta a (->) QD1. C/D -> QD2. Config2: NodeA-C. A/C -> QD1. B/C -> QD2. Config3: NodeA-C -> un QD.

Configuraciones de quórum atípicas

Figura 3–3 asume que se están ejecutando aplicaciones de misión crítica (una base de datos de Oracle por ejemplo) en el Nodo A y Nodo B. Si el Nodo A y el Nodo B no están disponibles y no se puede acceder a los datos compartidos, es posible que prefiera que todo el clúster se apague. En caso contrario, esta configuración no es óptima porque no proporciona una alta disponibilidad.

Para obtener más información sobre las prácticas más recomendadas para esta excepción, consulte Cumplimiento de las mejores prácticas recomendadas de dispositivos de quórum.

Figura 3–3 Configuración atípica

Ilustración: NodeA-D. Nodo A/B conecta a QD1-4. NodeC conecta aQD4. NodeD conect a QD4. Total de votos = 10. Votos necesarios para quórum = 6.

Configuraciones de quórum malas

Para obtener ejemplos de configuraciones de quórum recomendadas, consulte Configuraciones de quórum recomendadas .

Ilustración: Config1: NodeA/B conecta a QD1/2. Config2: NodeA- D. A/B conecta a QD1/2. Config3: NodeA-C. A/B conecta a QD1/2. C conecta a QD2.