TR-4923: SQL Server en AWS EC2 mediante Amazon FSx ONTAP
Esta solución abarca la puesta en marcha de SQL Server en AWS EC2 mediante Amazon FSx ONTAP.
Autores: Pat Sinthutan y Niyaz Mohamed, NetApp
Introducción
A muchas empresas que desean migrar aplicaciones de las instalaciones al cloud les parece que el esfuerzo se ve obstaculizado por las diferencias en las funcionalidades que ofrecen los sistemas de almacenamiento en las instalaciones y los servicios de almacenamiento en cloud. Esta brecha ha hecho que la migración de aplicaciones empresariales como Microsoft SQL Server sea mucho más problemática. En particular, la falta de servicios necesarios para ejecutar una aplicación empresarial, como copias Snapshot sólidas, funcionalidades de eficiencia del almacenamiento, alta disponibilidad, fiabilidad y rendimiento consistente han obligado a los clientes a realizar sacrificios en diseño o renunciar a la migración de aplicaciones. Con FSx ONTAP, los clientes ya no necesitan contraer compromisos. FSX ONTAP es un servicio de AWS nativo (de 1st partes) que AWS vende, cuenta con el soporte, factura y totalmente gestionado. Utiliza la potencia de ONTAP de NetApp para ofrecer las mismas funcionalidades de gestión de datos y almacenamiento empresarial que NetApp ha proporcionado en las instalaciones durante tres décadas en AWS como servicio gestionado.
Con SQL Server en instancias EC2, los administradores de bases de datos pueden acceder a su entorno de base de datos y personalizarlo con el sistema operativo subyacente. Un servidor SQL Server en una instancia de EC2 junto con "ONTAP FSX de AWS" para almacenar archivos de base de datos, permite un alto rendimiento, gestión de datos y una ruta de migración simple y sencilla mediante la replicación a nivel de bloque. Por lo tanto, se puede ejecutar la compleja base de datos en AWS VPC con un método de sencillo cambio y elevación, menos clics y sin conversiones de esquemas.
Ventajas de usar Amazon FSx ONTAP con SQL Server
Amazon FSx ONTAP es el almacenamiento de archivos ideal para las puestas en marcha de SQL Server en AWS. Sus ventajas incluyen los siguientes:
-
Alto rendimiento y rendimiento uniformes con baja latencia
-
Almacenamiento en caché inteligente con la caché NVMe para mejorar el rendimiento
-
Dimensionamiento flexible para que pueda aumentar o reducir la capacidad, el rendimiento y la tasa de IOPS sobre la marcha
-
Replicación eficiente de bloques de las instalaciones a AWS
-
El uso de iSCSI es un protocolo muy conocido para el entorno de bases de datos
-
Funciones de eficiencia del almacenamiento como thin provisioning y clones sin huella
-
El tiempo de backup se reduce de horas a minutos, con lo que se reduce el objetivo de tiempo de recuperación
-
Backup y recuperación granular de bases de datos de SQL con la intuitiva interfaz de usuario de SnapCenter de NetApp
-
La posibilidad de realizar varias migraciones de pruebas antes de la migración real
-
Tiempo de inactividad más corto durante la migración y superando los retos de la migración con los niveles de archivo o de copia a nivel de I/O.
-
Reducción del MTTR al encontrar la causa raíz después de una actualización importante de una versión o parche
La puesta en marcha de bases de datos de SQL Server en ONTAP FSX con el protocolo iSCSI, como se suele utilizar en las instalaciones, proporciona un entorno de almacenamiento de base de datos ideal con rendimiento, eficiencia del almacenamiento y funcionalidades de gestión de datos superiores. Mediante el uso de varias sesiones iSCSI, suponiendo que se trata de un tamaño de conjunto de trabajo del 5 %, la conexión a Flash Cache proporciona más de 100 000 IOPS con el servicio ONTAP FSX. Esta configuración proporciona un control completo sobre el rendimiento de las aplicaciones más exigentes. SQL Server que se ejecuta en instancias EC2 más pequeñas conectadas a FSx ONTAP puede funcionar igual que SQL Server que se ejecuta en una instancia EC2 mucho más grande, porque solo los límites de ancho de banda de red se aplican contra FSx ONTAP. Al reducir el tamaño de las instancias también se reduce el coste informático, lo que proporciona una puesta en marcha optimizada para TCO. La combinación de SQL con iSCSI, SMB3,0 con recursos compartidos de disponibilidad continua y multicanal en FSx ONTAP proporciona grandes ventajas para las cargas de trabajo de SQL.
Antes de empezar
La combinación de Amazon FSx ONTAP y SQL Server en la instancia de EC2 permite crear diseños de almacenamiento de bases de datos de nivel empresarial que pueden satisfacer los requisitos de aplicaciones más exigentes actuales. Para optimizar ambas tecnologías, es vital comprender los patrones de I/o y las características de SQL Server. Gracias a una buena distribución de almacenamiento para una base de datos de SQL Server, el rendimiento de SQL Server y la gestión de la infraestructura de SQL Server. Un buen diseño del almacenamiento también permite que la puesta en marcha inicial tenga éxito y que el entorno crezca sin problemas a medida que crece su negocio.
Requisitos previos
Antes de completar los pasos de este documento, debe tener los siguientes requisitos previos:
-
Una cuenta de AWS
-
Roles de IAM adecuados para aprovisionar EC2 y FSx ONTAP
-
Un dominio de Windows Active Directory en EC2
-
Todos los nodos de SQL Server deben poder comunicarse entre sí
-
Asegúrese de que la resolución DNS funciona y de que se pueden resolver los nombres de host. Si no es así, utilice la entrada del archivo host.
-
Conocimientos generales de la instalación de SQL Server
Asimismo, consulte las prácticas recomendadas de NetApp para entornos de SQL Server a fin de garantizar la mejor configuración de almacenamiento.
Prácticas recomendadas para entornos de SQL Server en EC2
Con FSX ONTAP, la obtención del almacenamiento es la tarea más sencilla y se puede realizar actualizando el sistema de archivos. Este sencillo proceso permite una optimización dinámica de costes y rendimiento según sea necesario, ayuda a equilibrar la carga de trabajo de SQL y también es un excelente habilitador de thin provisioning. La tecnología de thin provisioning de ONTAP de FSX ha sido diseñada para presentar más almacenamiento lógico a las instancias EC2 que ejecutan SQL Server que el aprovisionado en el sistema de archivos. En lugar de asignar un espacio inicial, el espacio de almacenamiento se asigna de forma dinámica a cada volumen o LUN a medida que se escriben los datos. En la mayoría de configuraciones, el espacio libre también se libera cuando se eliminan datos del volumen o la LUN (y no quedan en ninguna copia Snapshot). La siguiente tabla proporciona ajustes de configuración para asignar almacenamiento de forma dinámica.
Ajuste |
Configuración |
Garantía de volumen |
Ninguno (establecido de forma predeterminada) |
Reserva de LUN |
Activado |
reserva_fraccionaria |
0% (definido de forma predeterminada) |
snap_reserve |
0 % |
Eliminación automática |
volumen / oldest_first |
Tamaño automático |
Encendido |
try_first |
Crecimiento automático |
Política de organización en niveles del volumen |
Solo Snapshot |
Política de Snapshot |
Ninguno |
Con esta configuración, el tamaño total de los volúmenes puede ser mayor que el almacenamiento real disponible en el sistema de archivos. Si los LUN o las copias snapshot requieren más espacio del disponible en el volumen, los volúmenes se ampliarán automáticamente y ocupan más espacio del sistema de archivos que contiene. El crecimiento automático permite que ONTAP FSX aumente automáticamente el tamaño del volumen hasta un tamaño máximo que se predetermina. Debe haber espacio disponible en el sistema de archivos contenedor para admitir el crecimiento automático del volumen. Por lo tanto, con el crecimiento automático habilitado, debe supervisar el espacio libre en el sistema de archivos que contiene y actualizar el sistema de archivos cuando sea necesario.
Junto con esto, configure "asignación de espacio" la opción de LUN en enabled para que FSx ONTAP notifique al host de EC2 TB cuando el volumen se haya quedado sin espacio y el LUN del volumen no pueda aceptar escrituras. Además, esta opción permite a FSx ONTAP recuperar espacio automáticamente cuando SQL Server en el host de EC2 elimina datos. La opción asignación de espacio está establecida en deshabilitada de forma predeterminada.
Si se crea un LUN con reserva de espacio en un volumen sin garantía, la LUN se comporta como un LUN sin espacio reservado. Esto se debe a que un volumen sin garantía de ninguno no tiene espacio para asignar a la LUN; el volumen en sí solo puede asignar espacio a medida que se escribe debido a su ninguna garantía. |
Con esta configuración, los administradores de ONTAP de FSX generalmente pueden ajustar el tamaño del volumen para que deban gestionar y supervisar el espacio usado en la LUN en el lado del host y en el sistema de archivos.
NetApp recomienda utilizar un sistema de archivos independiente para cargas de trabajo de SQL Server. Si el sistema de archivos se utiliza para varias aplicaciones, supervise el uso de espacio tanto del sistema de archivos como de los volúmenes del sistema de archivos para asegurarse de que los volúmenes no compitan por el espacio disponible. |
Las copias de Snapshot utilizadas para crear volúmenes FlexClone no se eliminan mediante la opción de eliminación automática. |
El exceso de compromiso de almacenamiento debe considerarse y gestionarse cuidadosamente para una aplicación esencial, como SQL Server, para la cual no se puede tolerar ninguna interrupción mínima. En este caso, lo mejor es supervisar las tendencias de consumo de almacenamiento para determinar cuánto, si corresponde, es aceptable un exceso de compromiso. |
Mejores prácticas
-
Para obtener un rendimiento óptimo del almacenamiento, aprovisione una capacidad del sistema de archivos de hasta 1,35 veces mayor que el tamaño del uso total de la base de datos.
-
Es necesaria una supervisión adecuada, acompañada de un plan de acción eficaz, cuando se usa el aprovisionamiento ligero para evitar tiempos de inactividad de las aplicaciones.
-
Asegúrese de configurar las alertas de Cloudwatch y otras herramientas de supervisión para que se pueda contactar con las personas con el tiempo suficiente para reaccionar a medida que se llena el almacenamiento.
Configurar almacenamiento para SQL Server e implementar SnapCenter para operaciones de backup, restauración y clonado
Para realizar operaciones de SQL Server con SnapCenter, primero debe crear volúmenes y LUN para SQL Server.
Crear volúmenes y LUN para SQL Server
Para crear volúmenes y LUN para SQL Server, complete los pasos siguientes:
-
Abra la consola de Amazon FSX en https://console.aws.amazon.com/fsx/
-
Cree un Amazon FSX para el sistema de archivos ONTAP de NetApp mediante la opción Standard Create del método de creación. Esto permite definir credenciales FSxadmin y vsadmin.
-
Especifique la contraseña para fsxadmin.
-
Especifique la contraseña para las SVM.
-
Cree volúmenes siguiendo el paso que se indica en "Crear un volumen en FSx ONTAP".
Mejores prácticas
-
Deshabilite los programas de copia de Snapshot de almacenamiento y las políticas de retención. En su lugar, utilice SnapCenter de NetApp para coordinar las copias Snapshot de los volúmenes de registros y datos de SQL Server.
-
Configure bases de datos en LUN individuales en volúmenes independientes para aprovechar la funcionalidad de restauración rápida y granular.
-
Coloque los archivos de datos de usuario (.mdf) en volúmenes independientes debido a que son cargas de trabajo de lectura/escritura aleatorias. Es común crear backups de registros de transacciones con más frecuencia que los backups de bases de datos. Por este motivo, coloque los archivos de registro de transacciones (.ldf) en un volumen aparte de los archivos de datos para poder crear programaciones de backup independientes para cada uno de ellos. Esta separación también aísla la E/S de escritura secuencial de los archivos de registro de la E/S de lectura/escritura aleatoria de los archivos de datos y mejora significativamente el rendimiento de SQL Server.
-
Tempdb es una base de datos del sistema utilizada por Microsoft SQL Server como espacio de trabajo temporal, especialmente para operaciones DBCC CHECKDB con un uso intensivo de E/S. Por lo tanto, coloque esta base de datos en un volumen dedicado. En entornos grandes en los que el número de volúmenes es un reto, puede consolidar tempdb en menos volúmenes y almacenarlo en el mismo volumen que otras bases de datos del sistema tras una planificación cuidadosa. La protección de datos para tempdb no es una prioridad alta porque esta base de datos se vuelve a crear cada vez que se reinicia Microsoft SQL Server.
-
-
Use el siguiente comando SSH para crear volúmenes:
vol create -vserver svm001 -volume vol_awssqlprod01_data -aggregate aggr1 -size 800GB -state online -tiering-policy snapshot-only -percent-snapshot-space 0 -autosize-mode grow -snapshot-policy none -security-style ntfs volume modify -vserver svm001 -volume vol_awssqlprod01_data -fractional-reserve 0 volume modify -vserver svm001 -volume vol_awssqlprod01_data -space-mgmt-try-first vol_grow volume snapshot autodelete modify -vserver svm001 -volume vol_awssqlprod01_data -delete-order oldest_first
-
Inicie el servicio iSCSI con PowerShell con privilegios elevados en servidores Windows.
Start-service -Name msiscsi Set-Service -Name msiscsi -StartupType Automatic
-
Instale Multipath-IO en PowerShell utilizando privilegios elevados en servidores Windows.
Install-WindowsFeature -name Multipath-IO -Restart
-
Busque el nombre del iniciador de Windows con PowerShell mediante privilegios elevados en servidores Windows.
Get-InitiatorPort | select NodeAddress
-
Conéctese a máquinas virtuales de almacenamiento (SVM) mediante putty y cree un iGroup.
igroup create -igroup igrp_ws2019sql1 -protocol iscsi -ostype windows -initiator iqn.1991-05.com.microsoft:ws2019-sql1.contoso.net
-
Use el siguiente comando de SSH para crear LUN:
lun create -path /vol/vol_awssqlprod01_data/lun_awssqlprod01_data -size 700GB -ostype windows_2008 -space-allocation enabled lun create -path /vol/vol_awssqlprod01_log/lun_awssqlprod01_log -size 100GB -ostype windows_2008 -space-allocation enabled
-
Para alinear la I/o con el esquema de particiones del SO, utilice Windows_2008 como tipo de LUN recomendado. Consulte "aquí" para obtener más información.
-
Utilice el siguiente comando SSH para asignar el igroup a las LUN que acaba de crear.
lun show lun map -path /vol/vol_awssqlprod01_data/lun_awssqlprod01_data -igroup igrp_awssqlprod01lun map -path /vol/vol_awssqlprod01_log/lun_awssqlprod01_log -igroup igrp_awssqlprod01
-
Para un disco compartido que utiliza el clúster de conmutación al nodo de respaldo de Windows, ejecute un comando SSH para asignar la misma LUN al igroup que pertenece a todos los servidores que participan en el clúster de conmutación al nodo de respaldo de Windows.
-
Conecte Windows Server a una SVM con un destino iSCSI. Busque la dirección IP de destino en AWS Portal.
-
En el Administrador del servidor y en el menú Herramientas, seleccione el iniciador iSCSI. Seleccione la pestaña detección y, a continuación, seleccione detectar portal. Proporcione la dirección IP de iSCSI del paso anterior y seleccione Avanzada. En adaptador local, seleccione Iniciador iSCSI de Microsoft. En IP del iniciador, seleccione la IP del servidor. A continuación, seleccione Aceptar para cerrar todas las ventanas.
-
Repita el paso 12 para la segunda IP de iSCSI desde la SVM.
-
Seleccione la ficha Targets, seleccione Connect y seleccione Enable muti-path.
-
Para obtener el mejor rendimiento, añada más sesiones; NetApp recomienda crear cinco sesiones iSCSI. Seleccione Propiedades *> *Añadir sesión *> *Avanzado y repita el paso 12.
$TargetPortals = ('10.2.1.167', '10.2.2.12') foreach ($TargetPortal in $TargetPortals) {New-IscsiTargetPortal -TargetPortalAddress $TargetPortal}
Mejores prácticas
-
Configure cinco sesiones iSCSI por interfaz de destino para conseguir un rendimiento óptimo.
-
Configure una normativa por turnos para el mejor rendimiento iSCSI global.
-
Asegúrese de que el tamaño de la unidad de asignación esté establecido en 64K para las particiones al formatear las LUN
-
Ejecute el siguiente comando de PowerShell para asegurarse de que la sesión iSCSI persiste.
$targets = Get-IscsiTarget foreach ($target in $targets) { Connect-IscsiTarget -IsMultipathEnabled $true -NodeAddress $target.NodeAddress -IsPersistent $true }
-
Inicializar discos con el siguiente comando de PowerShell.
$disks = Get-Disk | where PartitionStyle -eq raw foreach ($disk in $disks) {Initialize-Disk $disk.Number}
-
Ejecute los comandos Create Partition y Format Disk con PowerShell.
New-Partition -DiskNumber 1 -DriveLetter F -UseMaximumSize Format-Volume -DriveLetter F -FileSystem NTFS -AllocationUnitSize 65536 New-Partition -DiskNumber 2 -DriveLetter G -UseMaximumSize Format-Volume -DriveLetter G -FileSystem NTFS -AllocationUnitSize 65536
-
Puede automatizar la creación de volúmenes y LUN mediante el script de PowerShell del Apéndice B. También se pueden crear LUN con SnapCenter.
Una vez definidos los volúmenes y los LUN, debe configurar SnapCenter para poder realizar las operaciones de la base de datos.
Información general de SnapCenter
SnapCenter de NetApp es un software de protección de datos de última generación para aplicaciones empresariales de nivel 1. SnapCenter, con su interfaz de gestión de panel único, automatiza y simplifica los procesos manuales, complejos y que requieren mucho tiempo asociados con el backup, la recuperación y el clonado de varias bases de datos y otras cargas de trabajo de aplicaciones. SnapCenter aprovecha las tecnologías de NetApp, como las copias Snapshot de NetApp, SnapMirror, SnapRestore y FlexClone de NetApp. Esta integración permite a las organizaciones TECNOLÓGICAS escalar su infraestructura de almacenamiento, cumplir con compromisos de acuerdos de nivel de servicios cada vez más exigentes y mejorar la productividad de los administradores en toda la empresa.
Requisitos del servidor de SnapCenter
En la tabla siguiente, se enumeran los requisitos mínimos para instalar SnapCenter Server y el plugin en Microsoft Windows Server.
Componentes | Requisito |
---|---|
Recuento de CPU mínimo |
Cuatro núcleos/vCPU |
Memoria |
Mínimo: Se recomiendan 8 GB: 32 GB |
Espacio de almacenamiento |
Espacio mínimo para la instalación: 10 GB espacio mínimo PARA el repositorio: 10 GB |
Sistema operativo compatible |
|
Paquetes de software |
|
Para obtener información detallada, consulte "requisitos de espacio y de tamaño".
Para obtener compatibilidad de versiones, consulte "Herramienta de matriz de interoperabilidad de NetApp".
Distribución de almacenamiento de la base de datos
La figura siguiente muestra algunas consideraciones que se deben tener en cuenta para crear el diseño de almacenamiento de la base de datos de Microsoft SQL Server al realizar backups con SnapCenter.
Mejores prácticas
-
Coloque bases de datos con consultas intensivas de I/o o o con un tamaño de base de datos grande (digamos 500 GB o más) en un volumen aparte para agilizar la recuperación. Este volumen también debe realizarse backup mediante trabajos independientes.
-
Consolide bases de datos de tamaño pequeño a mediano que son menos críticas o tienen menos requisitos de I/o en un único volumen. El backup de un gran número de bases de datos que residen en el mismo volumen da lugar a menos copias de Snapshot que es necesario mantener. También se recomienda consolidar las instancias de Microsoft SQL Server para utilizar los mismos volúmenes para controlar el número de copias de Snapshot de backup realizadas.
-
Cree LUN independientes para almacenar archivos de texto completo y archivos relacionados con streaming de archivos.
-
Asigne LUN independientes por host para almacenar backups de registros de Microsoft SQL Server.
-
Las bases de datos del sistema que almacenan la configuración de metadatos del servidor de bases de datos y los detalles del trabajo no se actualizan con frecuencia. Coloque las bases de datos del sistema/tempdb en unidades o LUN por separado. No coloque las bases de datos del sistema en el mismo volumen que las bases de datos del usuario. Las bases de datos de usuario tienen una política de backup diferente y la frecuencia del backup de la base de datos de usuario no es la misma para las bases de datos del sistema.
-
Para la configuración del grupo de disponibilidad de Microsoft SQL Server, coloque los archivos de datos y de registro de las réplicas en una estructura de carpetas idéntica en todos los nodos.
Además de la ventaja en cuanto al rendimiento que supone separar el diseño de la base de datos del usuario en distintos volúmenes, la base de datos también afecta significativamente el tiempo necesario para las tareas de backup y restauración. La existencia de volúmenes separados para los archivos de datos y de registro mejora considerablemente el tiempo de restauración en comparación con un volumen que aloja varios archivos de datos de usuario. Del mismo modo, las bases de datos de usuario con una aplicación con un gran volumen de I/o son propensas a aumentar el tiempo de backup. Más adelante en este documento se ofrece una explicación más detallada sobre las prácticas de copia de seguridad y restauración.
A partir de SQL Server 2012 (11.x), bases de datos del sistema (Master, Model, MSDB y TempDB), Las bases de datos de usuario de Database Engine se pueden instalar con un servidor de archivos SMB como opción de almacenamiento. Esto se aplica tanto a instalaciones independientes de clúster de conmutación al nodo de respaldo de SQL Server como de SQL Server. Esto te permite utilizar FSx ONTAP con todas sus funcionalidades de rendimiento y gestión de datos, incluidas la capacidad de volúmenes, la escalabilidad de rendimiento y las funciones de protección de datos, de las que SQL Server puede aprovechar. Los recursos compartidos utilizados por los servidores de aplicaciones deben configurarse con el conjunto de propiedades continuamente disponibles y el volumen se debe crear con el estilo de seguridad NTFS. NetApp SnapCenter no se puede usar con bases de datos ubicadas en recursos compartidos de SMB de FSx ONTAP. |
Para las bases de datos de SQL Server que no utilizan SnapCenter para realizar backups, Microsoft recomienda colocar los archivos de datos y de registro en unidades independientes. Para las aplicaciones que actualizan y solicitan datos simultáneamente, el archivo de registro tiene un gran consumo de escrituras y el archivo de datos (en función de la aplicación) tiene un gran volumen de lecturas y escrituras. Para la recuperación de datos, el archivo de registro no es necesario. Por lo tanto, las solicitudes de datos pueden satisfacerse desde el archivo de datos ubicado en su propia unidad. |
Cuando se crea una nueva base de datos, Microsoft recomienda especificar unidades independientes para los datos y los registros. Para mover archivos después de crear la base de datos, ésta debe desconectarse. Para obtener más recomendaciones de Microsoft, vea colocar datos y archivos de registro en unidades independientes. |
Instalación y configuración para SnapCenter
Siga la "Instale el servidor SnapCenter" y.. "Instalar el plugin de SnapCenter para Microsoft SQL Server" Para instalar y configurar SnapCenter.
Después de instalar SnapCenter, lleve a cabo los siguientes pasos para configurarlo.
-
Para configurar las credenciales, seleccione Ajustes > Nuevo y, a continuación, introduzca la información de las credenciales.
-
Añada el sistema de almacenamiento seleccionando Sistemas de almacenamiento > Nuevo y proporcione la información del almacenamiento FSx ONTAP adecuada.
-
Agregue hosts seleccionando hosts > Agregar y, a continuación, proporcione la información del host. SnapCenter instala automáticamente los complementos de Windows y SQL Server. Este proceso puede tardar algún tiempo.
Después de instalar todos los plugins, debe configurar el directorio de registro. Esta es la ubicación donde reside el backup de registros de transacciones. Puede configurar el directorio de registro seleccionando el host y luego seleccione configurar el directorio de registro.
SnapCenter utiliza un directorio de registro de host para almacenar datos de backup de registros de transacciones. Se encuentra en el nivel de host e instancia. Cada host de SQL Server utilizado por SnapCenter debe tener un directorio de registro del host configurado para realizar backups de registros. SnapCenter tiene un repositorio de base de datos, por lo que los metadatos relacionados con las operaciones de backup, restauración o clonado se almacenan en un repositorio de base de datos central. |
El tamaño del directorio de registro de host se calcula de la siguiente manera:
Tamaño del directorio del registro del host = tamaño de la base de datos del sistema + (tamaño máximo de LDF de base de datos × tasa de cambio diaria de registro % × (retención de copias de Snapshot) ÷ (1 – porcentaje de espacio de sobrecarga de LUN)
La fórmula de ajuste de tamaño del directorio de registro de host asume lo siguiente:
-
Copia de seguridad de la base de datos del sistema que no incluya la base de datos tempdb
-
SpacePlace, sobre una sobrecarga del 10% de LUN, el directorio de registro del host en un volumen o una LUN dedicados. La cantidad de datos en el directorio de registro del host depende del tamaño de los backups y de la cantidad de días que se retienen los backups.
Si las LUN ya se han aprovisionado, puede seleccionar el punto de montaje para representar el directorio del registro del host.
Ahora está listo para realizar operaciones de backup, restauración y clonado para SQL Server.
Base de datos de backups con SnapCenter
Después de colocar los archivos de base de datos y de registro en los LUN de ONTAP FSX, se puede usar SnapCenter para realizar backups de las bases de datos. Se utilizan los siguientes procesos para crear un backup completo.
Mejores prácticas
-
En términos de SnapCenter, el objetivo de punto de recuperación se puede identificar como la frecuencia de backup, por ejemplo, con la frecuencia con la que se desea programar el backup para que se pueda reducir la pérdida de datos hasta unos minutos. SnapCenter le permite programar backups con la frecuencia de cada cinco minutos. Sin embargo, puede haber algunas instancias en las que un backup puede no completarse en un plazo de cinco minutos durante los períodos de máxima transacción o cuando la tasa de cambio de los datos es más elevada en el tiempo determinado. Una práctica recomendada es programar backups frecuentes de registros de transacciones en lugar de backups completos.
-
Existen muchos métodos para gestionar el objetivo de punto de recuperación y el objetivo de tiempo de recuperación. Una alternativa a este método de backup es tener políticas de backup separadas para datos y registros con intervalos diferentes. Por ejemplo, desde SnapCenter, programar backups de registros en intervalos de 15 minutos y backups de datos en intervalos de 6 horas.
-
Use un grupo de recursos para llevar a cabo una configuración de backup para la optimización de Snapshot y la cantidad de trabajos que deben gestionarse.
-
Seleccione Recursos y, a continuación, seleccione Microsoft SQL Server *en el menú desplegable de la parte superior izquierda. Seleccione *Actualizar recursos.
-
Seleccione la base de datos de la que desea realizar una copia de seguridad y, a continuación, seleccione Siguiente y (*) para agregar la política si no se ha creado una. Siga la *Nueva política de copia de seguridad de SQL Server para crear una nueva directiva.
-
Seleccione el servidor de verificación si es necesario. Este servidor es el servidor que SnapCenter ejecuta DBCC CHECKDB después de crear una copia de seguridad completa. Haga clic en Siguiente para la notificación y, a continuación, seleccione Resumen para revisar. Después de revisar, haga clic en Finalizar.
-
Haga clic en copia de seguridad ahora para probar la copia de seguridad. En las ventanas emergentes, seleccione copia de seguridad.
-
Seleccione Monitor para comprobar que la copia de seguridad se ha completado.
-
Mejores prácticas
-
Realizar una copia de seguridad del registro de transacciones desde SnapCenter para que, durante el proceso de restauración, SnapCenter pueda leer todos los archivos de copia de seguridad y restaurar automáticamente en secuencia.
-
Si se utilizan productos de terceros para el backup, seleccione Copy backup en SnapCenter para evitar problemas con la secuencia de registros y pruebe la funcionalidad de restauración antes de pasar a la producción.
Restaurar base de datos con SnapCenter
Una de las principales ventajas del uso de FSX ONTAP con SQL Server en EC2 es su capacidad de realizar restauraciones rápidas y granulares a nivel de base de datos.
Complete los siguientes pasos para restaurar una base de datos individual a un momento específico o hasta un minuto con SnapCenter.
-
Seleccione Resources y, a continuación, seleccione la base de datos que desea restaurar.
-
Seleccione el nombre de backup desde el que debe restaurarse la base de datos y, a continuación, seleccione restore.
-
Siga las ventanas emergentes de Restaurar para restaurar la base de datos.
-
Seleccione Monitor para comprobar que el proceso de restauración se ha realizado correctamente.
Consideraciones sobre una instancia con un gran número de bases de datos de tamaño pequeño a grande
SnapCenter puede realizar el backup de un gran número de bases de datos importantes en una instancia o un grupo de instancias dentro de un grupo de recursos. El tamaño de una base de datos no es el factor principal del tiempo de backup. La duración de un backup puede variar en función del número de LUN por volumen, la carga en Microsoft SQL Server, el número total de bases de datos por instancia y, específicamente, el ancho de banda de I/o y el uso. Al configurar la política para realizar un backup de bases de datos desde una instancia o un grupo de recursos, NetApp recomienda restringir el máximo backup de la base de datos por copia de Snapshot a 100 por host. Asegúrese de que el número total de copias Snapshot no supere el límite de 1,023 copias.
NetApp también recomienda limitar los trabajos de backup que se ejecutan en paralelo mediante la agrupación de la cantidad de bases de datos en lugar de la creación de varios trabajos para cada base de datos o instancia. Para lograr un rendimiento óptimo de la duración del backup, se reduce la cantidad de tareas de backup a una cantidad que puede incluir en un backup de unas 100 bases de datos o menos a la vez.
Como se ha mencionado anteriormente, el uso de I/o es un factor importante en el proceso de backup. El proceso de backup debe esperar a que se desactive hasta que se hayan completado todas las operaciones de I/o de una base de datos. Las bases de datos con operaciones de I/o altamente intensivas deben aplazarse hasta otro tiempo de backup o deben aislarse de otras tareas de backup para evitar afectar a otros recursos del mismo grupo de recursos que se debe realizar un backup.
Para un entorno con seis hosts de Microsoft SQL Server que alojan 200 bases de datos por instancia, suponiendo que se tienen cuatro LUN por host y una LUN por volumen creado, se debe establecer una política de backup completa con el número máximo de bases de datos de las que se realiza un backup por copia Snapshot a la versión 100. Cada instancia proporciona doscientos bases de datos, como 200 archivos de datos distribuidos equitativamente en dos LUN y 200 archivos de registro se distribuyen equitativamente en dos LUN, lo que consiste en 100 archivos por LUN y por volumen.
Para programar tres tareas de backup, cree tres grupos de recursos, cada uno agrupando dos instancias que incluyan un total de 400 bases de datos.
Ejecutar las tres tareas de backup en paralelo realiza backups de 1,200 bases de datos simultáneamente. En función de la carga del servidor y del uso de E/S, la hora de inicio y de finalización de cada instancia puede variar. En este ejemplo, se crean un total de 24 copias Snapshot.
Además del backup completo, NetApp recomienda configurar un backup de registros de transacciones para las bases de datos más importantes. Asegúrese de que la propiedad de base de datos está establecida en el modelo de recuperación completa.
Mejores prácticas
-
No incluya la base de datos tempdb en una copia de seguridad porque los datos que contiene son temporales. Coloque tempdb en un LUN o un recurso compartido de SMB que se encuentra en un volumen del sistema de almacenamiento en el que no se crearán copias de Snapshot.
-
Una instancia de Microsoft SQL Server con una aplicación con una alta tasa de I/o debe aislarse en una tarea de backup diferente para reducir el tiempo general de respaldo de otros recursos.
-
Limite el conjunto de bases de datos que se incluirán en un backup simultáneo a 100 y configure el conjunto restante de backups de bases de datos para evitar un proceso simultáneo.
-
Utilice el nombre de la instancia de Microsoft SQL Server en el grupo de recursos en lugar de varias bases de datos porque cada vez que se crean bases de datos nuevas en la instancia de Microsoft SQL Server, SnapCenter considera automáticamente una nueva base de datos para el backup.
-
Si se modifica la configuración de la base de datos, como cambiar el modelo de recuperación de base de datos al modelo de recuperación completa, se debe ejecutar un backup de inmediato para permitir las operaciones de restauración de último minuto.
-
SnapCenter no puede restaurar los backups de registros de transacciones creados fuera de SnapCenter.
-
Al clonar volúmenes de FlexVol, asegúrese de tener suficiente espacio para los metadatos del clon.
-
Cuando se restaura una base de datos, se debe asegurarse de que haya espacio suficiente en el volumen.
-
Cree una política aparte para gestionar y realizar backup de bases de datos del sistema al menos una vez a la semana.
Clonado de bases de datos con SnapCenter
Para restaurar una base de datos en otra ubicación en un entorno de prueba o desarrollo o crear una copia para análisis empresarial, la práctica recomendada por NetApp es aprovechar la metodología de clonación para crear una copia de la base de datos en la misma instancia o en una alternativa.
El clonado de bases de datos que se encuentran 500GB en un disco iSCSI alojado en un entorno de FSx ONTAP normalmente tarda menos de cinco minutos. Una vez finalizada la clonado, el usuario puede realizar toda la operación de lectura/escritura requerida en la base de datos clonada. La mayor parte del tiempo se consume para el análisis de disco (diskpart). Por lo general, el procedimiento de clonación de NetApp lleva menos de 2 minutos independientemente del tamaño de las bases de datos.
La clonado de una base de datos puede realizarse con el método doble: Puede crear un clon a partir del backup más reciente o bien utilizar la gestión del ciclo de vida de clones a través del cual la copia más reciente puede estar disponible en la instancia secundaria.
SnapCenter permite montar la copia de clonado en el disco necesario para mantener el formato de la estructura de carpetas en la instancia secundaria y continuar programar tareas de backup.
Clonar las bases de datos en el nuevo nombre de la base de datos en la misma instancia
Se pueden seguir los pasos siguientes para clonar bases de datos en el nombre de la nueva base de datos en la misma instancia de servidor SQL que se ejecuta en EC2:
-
Seleccione Resources y, a continuación, la base de datos que debe clonarse.
-
Seleccione el nombre de backup que desea clonar y seleccione Clone.
-
Siga las instrucciones de clonación de las ventanas de backup para finalizar el proceso de clonación.
-
Seleccione Monitor para asegurarse de que se ha completado la clonación.
Clone bases de datos en la nueva instancia de SQL Server que se ejecuta en EC2
El siguiente paso se utiliza para clonar bases de datos en la nueva instancia de SQL Server que se ejecuta en EC2:
-
Cree un nuevo servidor SQL Server en EC2 en el mismo VPC.
-
Habilite el protocolo iSCSI y MPIO, y luego configure la conexión iSCSI a FSx ONTAP siguiendo los pasos 3 y 4 de la sección «Crear volúmenes y LUN para SQL Server».
-
Agregue un servidor SQL nuevo en EC2 en SnapCenter siguiendo el paso 3 de la sección “instalación y configuración de SnapCenter”.
-
Seleccione Resource > View instance y, a continuación, Refresh Resource.
-
Seleccione Resources y, a continuación, la base de datos que desea clonar.
-
Seleccione el nombre de backup que desea clonar y, a continuación, seleccione Clone.
-
Siga las instrucciones Clone from Backup proporcionando la nueva instancia de SQL Server en EC2 y el nombre de la instancia para finalizar el proceso de clonado.
-
Seleccione Monitor para asegurarse de que se ha completado la clonación.
Para obtener más información sobre este proceso, vea el siguiente vídeo:
Apéndices
Apéndice A: Archivo YAML para su uso en plantilla de formación en la nube
El siguiente archivo .yaml se puede utilizar con la plantilla de formación en la nube en la Consola de AWS.
Para automatizar la creación de LUN ISCSI y la instalación de SnapCenter de NetApp con PowerShell, clone el repo desde "Este enlace de GitHub".
Apéndice B: Secuencias de comandos PowerShell para aprovisionar volúmenes y LUN
El siguiente script se utiliza para aprovisionar volúmenes y LUN, así como para configurar iSCSI basándose en las instrucciones anteriores. Existen dos scripts de PowerShell:
-
_EnableMPIO.ps1
Function Install_MPIO_ssh {
$hostname = $env:COMPUTERNAME
$hostname = $hostname.Replace('-','_')
#Add schedule action for the next step
$path = Get-Location
$path = $path.Path + '\2_CreateDisks.ps1'
$arg = '-NoProfile -WindowStyle Hidden -File ' +$path
$schAction = New-ScheduledTaskAction -Execute "Powershell.exe" -Argument $arg
$schTrigger = New-ScheduledTaskTrigger -AtStartup
$schPrincipal = New-ScheduledTaskPrincipal -UserId "NT AUTHORITY\SYSTEM" -LogonType ServiceAccount -RunLevel Highest
$return = Register-ScheduledTask -Action $schAction -Trigger $schTrigger -TaskName "Create Vols and LUNs" -Description "Scheduled Task to run configuration Script At Startup" -Principal $schPrincipal
#Install -Module Posh-SSH
Write-host 'Enable MPIO and SSH for PowerShell' -ForegroundColor Yellow
$return = Find-PackageProvider -Name 'Nuget' -ForceBootstrap -IncludeDependencies
$return = Find-Module PoSH-SSH | Install-Module -Force
#Install Multipath-IO with PowerShell using elevated privileges in Windows Servers
Write-host 'Enable MPIO' -ForegroundColor Yellow
$return = Install-WindowsFeature -name Multipath-IO -Restart
}
Install_MPIO_ssh
Remove-Item -Path $MyInvocation.MyCommand.Source
-
_CreateDisks.ps1
.... #Enable MPIO and Start iSCSI Service Function PrepISCSI { $return = Enable-MSDSMAutomaticClaim -BusType iSCSI #Start iSCSI service with PowerShell using elevated privileges in Windows Servers $return = Start-service -Name msiscsi $return = Set-Service -Name msiscsi -StartupType Automatic } Function Create_igroup_vols_luns ($fsxN){ $hostname = $env:COMPUTERNAME $hostname = $hostname.Replace('-','_') $volsluns = @() for ($i = 1;$i -lt 10;$i++){ if ($i -eq 9){ $volsluns +=(@{volname=('v_'+$hostname+'_log');volsize=$fsxN.logvolsize;lunname=('l_'+$hostname+'_log');lunsize=$fsxN.loglunsize}) } else { $volsluns +=(@{volname=('v_'+$hostname+'_data'+[string]$i);volsize=$fsxN.datavolsize;lunname=('l_'+$hostname+'_data'+[string]$i);lunsize=$fsxN.datalunsize}) } } $secStringPassword = ConvertTo-SecureString $fsxN.password -AsPlainText -Force $credObject = New-Object System.Management.Automation.PSCredential ($fsxN.login, $secStringPassword) $igroup = 'igrp_'+$hostname #Connect to FSx N filesystem $session = New-SSHSession -ComputerName $fsxN.svmip -Credential $credObject -AcceptKey:$true #Create igroup Write-host 'Creating igroup' -ForegroundColor Yellow #Find Windows initiator Name with PowerShell using elevated privileges in Windows Servers $initport = Get-InitiatorPort | select -ExpandProperty NodeAddress $sshcmd = 'igroup create -igroup ' + $igroup + ' -protocol iscsi -ostype windows -initiator ' + $initport $ret = Invoke-SSHCommand -Command $sshcmd -SSHSession $session #Create vols Write-host 'Creating Volumes' -ForegroundColor Yellow foreach ($vollun in $volsluns){ $sshcmd = 'vol create ' + $vollun.volname + ' -aggregate aggr1 -size ' + $vollun.volsize #+ ' -vserver ' + $vserver $return = Invoke-SSHCommand -Command $sshcmd -SSHSession $session } #Create LUNs and mapped LUN to igroup Write-host 'Creating LUNs and map to igroup' -ForegroundColor Yellow foreach ($vollun in $volsluns){ $sshcmd = "lun create -path /vol/" + $vollun.volname + "/" + $vollun.lunname + " -size " + $vollun.lunsize + " -ostype Windows_2008 " #-vserver " +$vserver $return = Invoke-SSHCommand -Command $sshcmd -SSHSession $session #map all luns to igroup $sshcmd = "lun map -path /vol/" + $vollun.volname + "/" + $vollun.lunname + " -igroup " + $igroup $return = Invoke-SSHCommand -Command $sshcmd -SSHSession $session } } Function Connect_iSCSI_to_SVM ($TargetPortals){ Write-host 'Online, Initialize and format disks' -ForegroundColor Yellow #Connect Windows Server to svm with iSCSI target. foreach ($TargetPortal in $TargetPortals) { New-IscsiTargetPortal -TargetPortalAddress $TargetPortal for ($i = 1; $i -lt 5; $i++){ $return = Connect-IscsiTarget -IsMultipathEnabled $true -IsPersistent $true -NodeAddress (Get-iscsiTarget | select -ExpandProperty NodeAddress) } } } Function Create_Partition_Format_Disks{ #Create Partion and format disk $disks = Get-Disk | where PartitionStyle -eq raw foreach ($disk in $disks) { $return = Initialize-Disk $disk.Number $partition = New-Partition -DiskNumber $disk.Number -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -AllocationUnitSize 65536 -Confirm:$false -Force #$return = Format-Volume -DriveLetter $partition.DriveLetter -FileSystem NTFS -AllocationUnitSize 65536 } } Function UnregisterTask { Unregister-ScheduledTask -TaskName "Create Vols and LUNs" -Confirm:$false } Start-Sleep -s 30 $fsxN = @{svmip ='198.19.255.153';login = 'vsadmin';password='net@pp11';datavolsize='10GB';datalunsize='8GB';logvolsize='8GB';loglunsize='6GB'} $TargetPortals = ('10.2.1.167', '10.2.2.12') PrepISCSI Create_igroup_vols_luns $fsxN Connect_iSCSI_to_SVM $TargetPortals Create_Partition_Format_Disks UnregisterTask Remove-Item -Path $MyInvocation.MyCommand.Source ....
Ejecute el archivo EnableMPIO.ps1
la primera y la segunda secuencia de comandos se ejecuta automáticamente después de que se haya reiniciado el servidor. Estos scripts de PowerShell pueden eliminarse una vez ejecutados debido al acceso a las credenciales a la SVM.
Dónde encontrar información adicional
-
Amazon FSx ONTAP
-
Cómo empezar con FSx ONTAP
-
Descripción general de la interfaz de SnapCenter
-
Recorrido por las opciones del panel de navegación de SnapCenter
-
Configure el complemento SnapCenter 4.0 para SQL Server
-
Cómo realizar backup y restaurar bases de datos con SnapCenter con el plugin de SQL Server
-
Cómo clonar una base de datos con SnapCenter con el plugin de SQL Server