Implementación de aplicaciones en clúster en Azure Elastic SAN
Los volúmenes de Azure Elastic SAN se pueden asociar simultáneamente a varios clientes de proceso, lo que le permite implementar o migrar aplicaciones de clúster a Azure. Debe usar un administrador de clústeres para compartir un volumen de Elastic SAN, como el clúster de conmutación por error de Windows Server (WSFC) o Pacemaker. El administrador de clústeres controla las comunicaciones del nodo de clúster y el bloqueo de escritura. Elastic SAN no ofrece de forma nativa un sistema de archivos totalmente administrado al que se puede acceder a través de SMB o NFS.
Cuando se usa como volumen compartido, los volúmenes de SAN elástico se pueden compartir entre zonas de disponibilidad o regiones. El uso compartido de un volumen en una SAN de almacenamiento con redundancia local entre zonas reduce el rendimiento debido a una mayor latencia entre el volumen y los clientes.
Limitaciones
- Los scripts de conexión de Elastic SAN se pueden usar para conectar volúmenes compartidos a máquinas virtuales en Virtual Machine Scale Sets o máquinas virtuales en conjuntos de disponibilidad. No se admite la alineación del dominio de error.
- El número máximo de sesiones que admite un volumen compartido es 128.
- Un cliente individual puede crear varias sesiones en un volumen individual para aumentar el rendimiento. Por ejemplo, si crea 32 sesiones en cada uno de los clientes, solo cuatro clientes podrían conectarse a un único volumen.
Consulte Compatibilidad con las características de Azure Storage para conocer otras limitaciones de Elastic SAN.
Funcionamiento
Los volúmenes compartidos de Elastic SAN usan reservas persistentes SCSI-3 para permitir que los iniciadores (clientes) controlen el acceso a un volumen de SAN elástico compartido. Este protocolo permite a un iniciador reservar acceso a un volumen de SAN elástico, limitar el acceso de escritura (o lectura) por otros iniciadores y conservar la reserva en un volumen más allá de la duración de una sesión de forma predeterminada.
La solicitud de incorporación de cambios SCSI-3 tiene un papel fundamental en el mantenimiento de la coherencia y la integridad de los datos en volúmenes compartidos en escenarios de clúster. Los nodos de proceso de un clúster pueden leer o escribir en sus volúmenes de SAN elásticos adjuntos en función de la reserva elegida por sus aplicaciones de clúster.
Flujo de reserva persistente
En el siguiente diagrama se ilustra un ejemplo de aplicación de base de datos en clúster de dos nodos que usa SCSI-3 PR para permitir la conmutación por error de un nodo a otro.
El flujo es el siguiente:
- La aplicación en clúster que se ejecuta tanto en la VM1 de Azure como en la VM2 registra su intención para leer o escribir en el volumen de SAN elástico.
- La instancia de la aplicación en la VM1 toma una reserva exclusiva para escribir en el volumen.
- Esta reserva se aplica en el volumen y la base de datos ya puede escribir en el volumen de forma exclusiva. Las escrituras de la instancia de la aplicación en la VM2 no se realizarán correctamente.
- Si la instancia de la aplicación en la VM1 deja de funcionar, la instancia en la VM2 puede iniciar una conmutación por error de la base de datos y hacerse cargo del volumen.
- Ahora, esta reserva se aplica en el volumen, y este ya no aceptará escrituras de la VM1. Solo acepta escrituras de la VM2.
- La aplicación en clúster puede completar la conmutación por error de la base de datos y atender las solicitudes de la VM2.
En el diagrama siguiente se ilustra otra carga de trabajo en clúster común que consta de varios nodos que leen datos de un volumen de SAN elástico para la ejecución de procesos paralelos, como el entrenamiento de modelos de Machine Learning.
El flujo es el siguiente:
- La aplicación en clúster que se ejecuta en todas las VM registra la intención de leer o escribir en el volumen de SAN elástico.
- La instancia de la aplicación en la VM1 toma una reserva exclusiva para escribir en el volumen mientras abre las lecturas en el volumen de otras VM.
- Esta reserva se aplica en el volumen.
- Ya se pueden leer todos los nodos del clúster desde el disco. Solo un nodo reescribe los resultados en el volumen en nombre de los demás nodos del clúster.
Comandos de SCSI PR admitidos
Los siguientes comandos son compatibles con volúmenes de Elastic SAN:
Para interactuar con el volumen, comience con la acción de reserva persistente adecuada:
- PR_REGISTER_KEY
- PR_REGISTER_AND_IGNORE
- PR_GET_CONFIGURATION
- PR_RESERVE
- PR_PREEMPT_RESERVATION
- PR_CLEAR_RESERVATION
- PR_RELEASE_RESERVATION
Al usar PR_RESERVE, PR_PREEMPT_RESERVATION o PR_RELEASE_RESERVATION, proporcione uno de los siguientes tipos de reserva persistente:
- PR_NONE
- PR_WRITE_EXCLUSIVE
- PR_EXCLUSIVE_ACCESS
- PR_WRITE_EXCLUSIVE_REGISTRANTS_ONLY
- PR_EXCLUSIVE_ACCESS_REGISTRANTS_ONLY
- PR_WRITE_EXCLUSIVE_ALL_REGISTRANTS
- PR_EXCLUSIVE_ACCESS_ALL_REGISTRANTS
El tipo de reserva persistente determina el acceso al volumen desde cada nodo del clúster.
Tipo de reserva persistente | Titular de la reserva | Registered | Otros |
---|---|---|---|
SIN RESERVA | N/D | Lectura y escritura | Lectura-escritura |
ESCRITURA EXCLUSIVA | Lectura y escritura | Solo lectura | Solo lectura |
ACCESO EXCLUSIVO | Lectura y escritura | Sin acceso | Sin acceso |
ESCRITURA EXCLUSIVA: SOLO REGISTRADORES | Lectura-escritura | Lectura y escritura | Solo lectura |
ACCESO EXCLUSIVO: SOLO REGISTRADORES | Lectura-escritura | Lectura y escritura | Sin acceso |
ESCRITURA EXCLUSIVA: TODOS LOS REGISTRADORES | Lectura-escritura | Lectura y escritura | Solo lectura |
ACCESO EXCLUSIVO: TODOS LOS REGISTRADORES | Lectura-escritura | Lectura y escritura | Sin acceso |
También debe proporcionar una clave de reserva persistente al usar:
- PR_RESERVE
- PR_REGISTER_AND_IGNORE
- PR_REGISTER_KEY
- PR_PREEMPT_RESERVATION
- PR_CLEAR_RESERVATION
- PR_RELEASE-RESERVATION.