Blog de Amazon Web Services (AWS)
Implementaciones de alta disponibilidad de SQL Server con Amazon FSx para ONTAP de NetApp
Al implementar una carga de trabajo de misión crítica, es de suma importancia garantizar que todos los componentes estén altamente disponibles. Los clientes que elijan usar SQL Server en sus cargas de trabajo críticas pueden lograr una alta disponibilidad mediante la implementación de SQL Server Always On. SQL Server Always On se puede implementar en dos configuraciones principales: instancias de clúster (FCI) Always On y grupos de disponibilidad (AG) Always On.
En este blog, nos centraremos en cómo implementar las instancias de clúster Always On de SQL Server (FCI siempre activas). Hasta ahora, la forma más sencilla y rentable de implementar las FCI de Always On en AWS consistía en utilizar Amazon FSx for Windows File Server para la capa de almacenamiento compartido. Sin embargo, en AWS, siempre estamos buscando más formas de satisfacer las necesidades de nuestros clientes. Con este fin, recientemente lanzamos Amazon FSx para ONTAP de NetApp (FSx para ONTAP) como una solución de almacenamiento de archivos totalmente gestionada, altamente fiable, escalable, de alto rendimiento y rica en funciones, basada en el popular sistema de archivos ONTAP de NetApp. FSx para ONTAP proporciona acceso multiprotocolo a los datos a través de los protocolos NFS, SMB y iSCSI para sistemas Windows y Linux.
Una FCI Always On le permite ejecutar una instancia de SQL Server en varios nodos del clúster de Windows Server (WSFC). La instancia de SQL está activa en un único nodo del clúster y, en caso de que se produzca un error, la propiedad de la instancia de SQL y de todos los recursos asociados se transfiere a otro nodo del cluster. Se requiere un almacenamiento compartido para habilitar esta configuración. Una de las principales ventajas de esta configuración es que elimina la necesidad de actualizar de SQL Standard a SQL Enterprise únicamente para admitir los AGs de Always On. Además, dado que la FCI de SQL Server proporciona protección a nivel de instancia, todos los cambios administrativos (como la creación y administración de los inicios de sesión y los usuarios) y de programación (tareas y programas de los agentes SQL) se propagan automáticamente de las instancias de FCI activas a las pasivas del cluster a través del almacenamiento compartido.
Las FCI Always On de SQL Server admiten el uso de almacenamiento compartido que se presenta tanto a través de SMB como de iSCSI. En el caso de las pequeñas y medianas empresas, los clientes de AWS se han beneficiado desde 2018 del uso de FSx para Windows File Server. Con el lanzamiento de FSx para ONTAP, los clientes también pueden optar por utilizar SMB en FSx para ONTAP o iSCSI en FSx para ONTAP. En esta entrada del blog, explicamos cómo configurar un SQL Server Always On FCI con FSx para ONTAP como almacenamiento iSCSI compartido.
Descripción general de la solución
Los sistemas de archivos FSx para ONTAP ofrecen una alta disponibilidad y durabilidad en todas las zonas de disponibilidad (AZ) de AWS y están diseñados para ofrecer una disponibilidad continua de los datos. Cada sistema de archivos funciona con dos servidores de archivos en zonas de disponibilidad independientes, cada uno con su propio almacenamiento. Amazon FSx replica automáticamente sus datos en las zonas de disponibilidad para protegerlos de posibles fallos en los componentes, supervisa de forma continua los fallos de hardware y reemplaza automáticamente los componentes de la infraestructura en caso de que se produzca un fallo.
Los FSx para los sistemas de archivos ONTAP están configurados como Multi-AZ de forma predeterminada. Cada sistema de archivos tiene una subred preferida (activa) y una subred en espera (pasiva). En nuestro escenario, la AZ-A aloja la subred preferida y la AZ-B aloja la subred en espera. El sistema de archivos FSx para ONTAP proporciona puntos finales específicos de administración y protocolo para cada zona de disponibilidad. Los nodos FCI de SQL Server acceden al sistema de archivos FSx for ONTAP a través de interfaces de red elásticas (ENI). Estas interfaces de red residen en la Amazon VPC que usted asocia a su sistema de archivos. Los clientes acceden al sistema de archivos FSx for ONTAP a través de estas ENI (preferidas y en espera).
Como práctica recomendada, el nodo FCI activo de SQL Server debe estar en la misma subred que la subred preferida del sistema de archivos FSx para ONTAP, a fin de lograr el mejor rendimiento y la latencia más baja y evitar el tráfico de red innecesario entre zonas de disponibilidad.
En el siguiente tutorial, configuramos una FCI de SQL Server de dos nodos con FSx para ONTAP, que proporciona almacenamiento compartido mediante el protocolo iSCSI.
Recomendamos configurar los puntos finales iSCSI preferidos y los de reserva en el lado del cliente (nodos FCI de SQL Server) como destinos iSCSI. Habilitar el controlador MPIO que reconoce varias rutas al almacenamiento. Las operaciones de conmutación por error y conmutación por recuperación se gestionan mediante la política de conmutación por error del MPIO y el ALUA. La política de conmutación por error de MPIO debe configurarse de forma rotativa, de modo que solo se utilicen en un momento dado las rutas activas/optimizadas desde el cliente iSCSI (nodos FCI de SQL Server) hasta el destino iSCSI (FSx para el sistema de archivos ONTAP).
Figura 1: Configuración de FCI de SQL Server con discos compartidos iSCSI (FSx para ONTAP)
Consideraciones importantes
Al configurar las cargas de trabajo de SQL, es importante tener en cuenta cómo piensa hacer copias de seguridad de las bases de datos. El servicio FSx for ONTAP proporciona una funcionalidad de copia de seguridad automatizada que incluye copias de seguridad e instantáneas integradas. Para simplificar, en este escenario de ejemplo, desactivamos FSx para las copias de seguridad e instantáneas automatizadas de ONTAP en favor de las herramientas nativas de SQL. Si decide utilizar FSx para la funcionalidad avanzada de protección de datos de ONTAP, debe tener en cuenta los requisitos de almacenamiento adicionales para las instantáneas de respaldo.
El acceso al sistema de archivos FSx for ONTAP se realiza a través de la red, por lo que debe elegir una instancia de Amazon Elastic Compute Cloud (Amazon EC2) con un rendimiento de red suficiente para soportar su carga de trabajo. En este tutorial, utilizaremos instancias r5n.4xlarge como nodos FCI de SQL Server. Esta instancia EC2 proporciona un ancho de banda de red de hasta 25 Gbps. Disponer de un tipo y un tamaño de instancia adecuados para soportar tanto el tráfico de red como el iSCSI es fundamental para lograr un rendimiento óptimo. Como siempre, pruebe sus cargas de trabajo antes de transferirlas a producción. Si tiene requisitos de rendimiento de disco especialmente altos (por ejemplo, más de 1024 MB/s), considere la posibilidad de habilitar tramas gigantes en sus instancias y configurar sesiones iSCSI adicionales para cada destino iSCSI.
Consulte la documentación de NetApp para configurar el almacenamiento en función de sus requisitos de carga de trabajo y rendimiento: Guía de prácticas recomendadas para Microsoft SQL Server con ONTAP. En el paso 7 del tutorial que aparece a continuación, detallamos los ajustes de FSx para ONTAP, junto con los comandos necesarios para configurarlos.
Requisitos previos y configuración básica
Antes de comenzar el tutorial, asegúrese de haber completado o preparado los siguientes pasos/requisitos:
- Microsoft Active Directory y una cuenta de usuario de AD privilegiada para realizar la configuración de las instancias de Windows. En este tutorial, utilizamos AWS Managed Microsoft AD.
- Los controladores de dominio de Active Directory (AD) deben tener abiertos todos los puertos necesarios para que los nodos de SQL Server se unan al dominio y se autentiquen en AD.
- Medio de instalación de Microsoft SQL Server. Para este tutorial, utilizamos la edición para desarrolladores de SQL Server 2019.
- Lance 2 instancias de Amazon EC2 Windows Server 2019 en 2 subredes privadas distribuidas en dos zonas de disponibilidad dentro de una nube privada virtual (VPC).
- Puede usar RDP para conectarse desde un servidor Jump/Bastion a las instancias del nodo del clúster o usar AWS Systems Manager Fleet Manager.
- Configure 2 IP secundarias adicionales en el mismo ENI para cada nodo del clúster (3 IP en total por instancia de EC2).
- Une los nodos al dominio. Compruebe que ha iniciado sesión con las credenciales de dominio antes de crear y configurar el clúster.
- Configure las reglas de entrada de los grupos de seguridad y las excepciones del Firewall de Windows para permitir que los nodos se comuniquen en un entorno restrictivo.
- Determine los requisitos de espacio de almacenamiento (por ejemplo, datos, registros, copias de seguridad y espacio de almacenamiento de instantáneas ONTAP de NetApp).
- Configure un FSx para el sistema de archivos ONTAP. En este tutorial, configuramos FSx para ONTAP con 2 TB de capacidad de almacenamiento SSD, 512 MB/s de capacidad de rendimiento y 20 000 IOPS aprovisionadas. Consulte la página de rendimiento de Amazon FSx para ONTAP de NetApp.
Para este ejemplo de carga de trabajo, hemos configurado las copias de seguridad utilizando la tecnología de servidor SQL nativa para separar el almacenamiento. Por este motivo, hemos desactivado el FSx para las copias de seguridad automáticas
Tabla 1: Direcciones IP utilizadas en este tutorial
Tutorial
Evalúe los comandos de este tutorial en un entorno de prueba antes de intentar utilizarlos en producción.
Configure Amazon FSx para el sistema de archivos ONTAP y configure los ajustes de destino iSCSI
En primer lugar, siga los pasos de la documentación de FSx para ONTAP para crear un sistema de archivos. En este tutorial, utilizamos varios scripts y comandos que se refieren a la máquina virtual de almacenamiento (svm) de FSx para ONTAP como sql-svm01. Si quieres ahorrar tiempo, usa el mismo nombre para tu svm. Al crear el sistema de archivos FSx para ONTAP mediante la opción de creación estándar, puede dejar la creación de volúmenes predeterminada en blanco y no necesitará unir el svm a AD. Crearemos los volúmenes de ONTAP necesarios más adelante en este tutorial. Usamos la VPC predeterminada y la tabla de enrutamiento predeterminada de la VPC.
Luego instalamos y configuramos las funciones de Windows que necesitamos para completar este tutorial.
- Conéctese a su instancia EC2 mediante RDP con una cuenta de usuario de AD que tenga permisos de administrador local en ambos nodos.
- En cada instancia, instale las funciones necesarias (MultiPath-IO, Failover-Clustering, RSAT-AD-Tools, RSAT-DNS-Server) mediante el administrador del servidor o ejecute el siguiente comando de PowerShell (ejecutar como administrador):
- En cada instancia, inicie el servicio de iniciador iSCSI de Microsoft y configure el tipo de inicio en «Automático» desde el complemento Servicios, o ejecute el siguiente comando de PowerShell (ejecutar como administrador):
- En cada instancia, vaya a las propiedades del iniciador iSCSI, elija la pestaña de configuración y anote el nombre del iniciador, o ejecute el siguiente comando de PowerShell (ejecutar como administrador):
- Anote la dirección IP del terminal de administración de la consola FSx para ONTAP.
Figura 2: FSx para la consola ONTAP: direcciones IP de punto final del sistema de archivos
- Conéctese a su sistema FSx for ONTAP mediante SSH (por ejemplo, ssh fsxadmin@x .x.x.x de PowerShell). Si no puede acceder a su sistema de archivos, siga las instrucciones que se indican aquí.
- Desde su sesión ssh de FSx para ONTAP, utilice los siguientes comandos para crear un volumen, un iGroup y 3 LUNs (quórum, datos y registros) y asignarlos al iGroup. Personalice estos comandos en función de sus propios requisitos y convenciones de nomenclatura. Asegúrese de actualizar los nombres de los iniciadores iSCSI que aparecen a continuación con los que registró en el paso 4. El comando se ejecutará correctamente, aunque no actualice los nombres de los iniciadores, pero los nodos FCI de SQL Server no podrán conectarse al destino iSCSI.
Estos comandos configuran los siguientes ajustes:
Tabla 2: Configuración de ONTAP para la configuración de FCI de SQL Server en este tutorial
Configure el almacenamiento iSCSI y WSFC en Amazon EC2 Windows
Ahora iniciaremos y configuraremos las instancias EC2 de Windows con conexiones y discos iSCSI.
- En cada instancia EC2, recupere todas las direcciones IP (3 IP por instancia EC2) y anótelas. Estas direcciones IP se utilizan en los pasos siguientes.
- Obtenga las direcciones IP de los puntos finales iSCSI (subred preferida y subred en espera) de la consola FSx for ONTAP. Elija su svm (en este tutorial, sql-svm01) en la página Máquinas virtuales de almacenamiento. Estas direcciones IP se utilizan como destinos iSCSI en el siguiente paso.
Figura 3: FSx para la consola ONTAP: direcciones IP de punto final ISCSI
- En cada instancia, vaya a la configuración del iniciador iSCSI y conéctese a sus destinos iSCSI (FSx para los terminales iSCSI de ONTAP) o ejecute el siguiente script de PowerShell (ejecute como administrador): (sustituya las direcciones IP por las que recuperó en el paso anterior):
Figura 4: Propiedades del dispositivo de disco, pestaña MPIO para el LUN conectado mediante iSCSI
- En la instancia EC2 de la AZ-A, vaya a la herramienta de administración de discos de Windows e inicialice y formatee cada disco iSCSI nuevo, o ejecute el siguiente script de PowerShell (ejecútelo como administrador):
- En la instancia EC2 de la AZ-A, configure el cluster mediante el administrador de clústers o ejecute el siguiente script de PowerShell (ejecútelo como administrador):
NOTA: Asegúrese de cambiar las variables $WSfcClusterName y $ClusterNodes para que coincidan con su entorno, y modifique la variable $ClusterIps para incluir la primera de las direcciones IP secundarias de cada nodo (registrada en el paso 8). En nuestro tutorial, SQLNode1 tiene una IP principal de 172.31.10.100 y direcciones IP secundarias de 172.31.10.101 y 172.31.10.102, por lo que usaremos 172.31.10.101. Usaremos la tercera dirección IP durante la instalación de la FCI de SQL Server.
Figura 5: Los discos se muestran en el Administrador de clústeres de conmutación por error
Instalación del clúster de conmutación por error de SQL Server
- Ejecute la configuración de SQL Server desde el medio de instalación y, a continuación, seleccione la instalación y la instalación del nuevo clúster de conmutación por error de SQL Server. Complete el asistente de instalación del clúster con los parámetros de configuración que elija en ambos nodos FCI de SQL Server. A continuación, destacamos algunos pasos importantes del proceso de instalación.
- En Configuración de red de clústeres, seleccione la línea de dirección IP que corresponde a la subred del nodo SQL actual, desactive la casilla de verificación DHCP y utilice la tercera dirección IP de los nodos de SQL Server (IP secundaria 2 para cada nodo de la tabla 1). En nuestro tutorial, SQLNode1 está configurado con 172.31.10.102 como tercera dirección IP.
Figura 6: Asistente de instalación de clústeres: configuración de red de clústeres SQLNode1
- Durante la instalación, puede elegir la opción «Permitir realizar una tarea de mantenimiento del volumen» para habilitar la función de inicialización instantánea de archivos para SQL Server.
Figura 7 — Asistente de instalación de clústeres: configuración del servidor
Una vez finalizada la instalación del primer nodo de su clúster FCI de SQL, puede continuar y añadir nodos adicionales a su FCI de SQL Server.
¡Limpie!
Se recomienda eliminar los recursos que ya no utilice para no incurrir en cargos imprevistos. Puedes limpiar los siguientes recursos que creaste para este tutorial:
Conclusión
Los clientes llevan muchos años implementando las instancias de clúster de conmutación por error Always On de Microsoft SQL en el almacenamiento local de NetApp con mucho éxito. Con Amazon FSx para ONTAP de NetApp, los clientes ahora pueden implementar y configurar las FCI de SQL en un almacenamiento totalmente gestionado basado en el sistema de archivos ONTAP de NetApp en la nube de AWS.
En esta entrada de blog, explicamos cómo configurar un FSx para el sistema de archivos ONTAP, aprovisionar y optimizar los volúmenes de ONTAP, configurar las conexiones iSCSI y, por último, implementar un SQL Server Always On FCI con almacenamiento iSCSI compartido.
Sobre os autores
Andy Ward es arquitecto de soluciones especializado sénior en AWS y se centra en las cargas de trabajo de Microsoft. Andy lleva más de 20 años trabajando con la tecnología de Microsoft y ayuda a los clientes y socios a ejecutar, transformar y optimizar sus cargas de trabajo de Microsoft en AWS.
Baris Furtinalar es arquitecto principal de soluciones y forma parte del equipo de especialistas en arquitecturas de Microsoft de AWS. Le apasiona la computación en la nube y cree que este cambio a la nube ayuda a las empresas a transformar sus negocios, ganar agilidad y mejorar la capacidad de respuesta operativa. Tiene una formación diversa, que incluye la administración de bases de datos SQL, la virtualización y la seguridad de sistemas. Diseñó, implementó y respaldó las implementaciones de servidores Windows/SQL desde el año 2000.
Traductor
JuanMa Silva quien es arquitecto de soluciones con especialidad en Microsoft para México y MCO. Cuenta con 15 años de experiencia en la industria de IT, en posiciones de Sysadmin, consultor para ayudar a migrar clientes a la nube y modernización de aplicaciones, soporte aplicaciones de misión crítica basados en tecnología Microsoft.