Configuración del almacenamiento para SQL Server en máquinas virtuales de Azure

Se aplica a: SQL Server en máquina virtual de Azure

En este artículo se enseña cómo configurar el almacenamiento para la instancia de SQL Server en máquinas virtuales (VM) de Azure implementadas mediante Azure Marketplace con SSD Premium.

Las VM con SQL Server implementadas mediante imágenes de marketplace siguen automáticamente los procedimientos recomendados de almacenamiento predeterminados, los cuales se pueden modificar durante la implementación. Algunos de estos valores de configuración se pueden cambiar después de la implementación.

Nota:

Este artículo solo se aplica a SQL Server en máquinas virtuales de Azure mediante Premium Storage, no al almacenamiento SSD Premium v2.

Requisitos previos

Para usar la configuración del almacenamiento automática, la máquina virtual requiere las siguientes características:

Nuevas máquinas virtuales

En las secciones siguientes se describe cómo configurar el almacenamiento para nuevas máquinas virtuales de SQL Server.

Portal de Azure

Si aprovisiona una máquina virtual de Azure mediante una imagen de la galería de SQL Server, seleccione Cambiar configuración en Almacenamiento, en la pestaña Configuración de SQL Server, para abrir la página Configurar almacenamiento. Puede dejar los valores predeterminados o modificar el tipo de configuración de disco, con el fin de disfrutar la que mejor se adapte a sus necesidades en función de la carga de trabajo.

Captura de pantalla que resalta la pestaña Configuración de SQL Server y la opción Cambiar configuración.

Nota:

Si seleccionó un tamaño de máquina virtual compatible, puede usar SSD Premium v2, lo que le proporciona un control pormenorizado sobre el tamaño del disco, las IOPS y el rendimiento.

Elija la ubicación de la unidad para los archivos de datos y de registro. Para ello, especifique el tipo y el número de discos. Use los valores de IOPS a fin de determinar la mejor configuración de almacenamiento para satisfacer sus necesidades empresariales. Al seleccionar Premium Storage, el almacenamiento en caché se establece en ReadOnly (Solo lectura) para la unidad de datos y en None (Ninguno) para la unidad de registro, según los procedimientos recomendados de rendimiento de SQL Server en VM de Azure.

Captura de pantalla de Azure Portal de la página Configuración de almacenamiento de VM con SQL Server durante el aprovisionamiento.

La configuración del disco es totalmente personalizable, es decir, se pueden configurar la topología de almacenamiento, el tipo de disco y las IOPS según lo que necesite para la carga de trabajo de SQL Server. También tiene la capacidad de usar Ultradisk como opción en el Tipo de disco si la máquina virtual con SQL Server se encuentra en una de las regiones admitidas y ha habilitado Ultra Disks para su suscripción.

Especifique la configuración de la base de datos tempdb en Almacenamiento de TempDb, como la ubicación de los archivos de base de datos, así como el número de archivos, el tamaño inicial y el tamaño de crecimiento automático en MB.

  • Actualmente, durante la implementación, el número máximo de archivos tempdb es de 8, pero se pueden agregar más archivos después de implementar la máquina virtual con SQL Server.
  • Si configura la instancia tempdb de SQL Server en D: volumen de SSD local como se recomienda, la extensión Agente de IaaS de SQL administra las carpetas y los permisos necesarios al volver a aprovisionar. Esto no requiere que haya creado la máquina virtual SQL con una imagen de Azure Marketplace.

Captura de pantalla que muestra dónde puede configurar el almacenamiento tempdb para su máquina virtual con SQL.

Además, tiene la capacidad de establecer el almacenamiento en caché de los discos. Las máquinas virtuales de Azure tienen una tecnología de almacenamiento en caché multinivel llamada Blob Cache (Caché de blob) cuando se usa con discos Prémium. Blob Cache usa una combinación de la RAM de la máquina virtual y el disco SSD local para almacenar en caché.

El almacenamiento en caché de disco para SSD Premium puede ser ReadOnly (Solo lectura), *ReadWrite (Lectura y escritura), o None (Ninguno).

  • El almacenamiento en caché de solo lectura ReadOnly es muy beneficioso para los archivos de datos de SQL Server almacenados en Premium Storage. El almacenamiento en caché ReadOnly ofrece una latencia de lectura baja y una IOPS de lectura y un rendimiento altos, ya que las lecturas se realizan desde la caché, que está dentro de la memoria de la VM y del disco SSD local. Estas lecturas son mucho más rápidas que las que se realizan del disco de datos, que proceden de Azure Blob Storage. Premium Storage no cuenta las lecturas que se atienden desde la caché hacia las IOPS y el rendimiento del disco. Por lo tanto, la aplicación es capaz de lograr una IOPS y un rendimiento totales mayores.

  • La configuración de la caché None (Ninguno) se debe usar para los discos que hospedan el archivo de registro de SQL Server, ya que el archivo de registro se escribe secuencialmente y no se beneficia del almacenamiento en caché ReadOnly (solo lectura).

  • El almacenamiento en caché de lectura y escritura ReadWrite no debe usarse para hospedar archivos de SQL Server, ya que SQL Server no admite la coherencia de los datos con la memoria caché de lectura y escritura ReadWrite. Escribe la capacidad para residuos de la memoria caché de blobs de solo lectura ReadOnly y las latencias aumentan ligeramente si las escrituras atraviesan las capas de la caché de blobs de solo lectura ReadOnly.

    Sugerencia

    Asegúrese de que la configuración de almacenamiento coincide con las limitaciones impuestas por el tamaño de máquina virtual seleccionado. Si se eligen parámetros de almacenamiento que superen el límite de rendimiento del tamaño de la máquina virtual, se emitirá una advertencia: The desired performance might not be reached due to the maximum virtual machine disk performance cap. Reduzca el límite de IOPS, para lo que debe cambiar el tipo de disco, o aumente el límite de rendimiento, para lo que debe aumentar el tamaño de la máquina virtual. Esto no detendrá el aprovisionamiento.

En función de lo que elija, Azure realiza las siguientes tareas de configuración del almacenamiento después de crear la máquina virtual:

  • Crea y asocia discos SSD Premium a la máquina virtual.
  • Configura los discos de datos para que sean accesibles para SQL Server.
  • Configura los discos de datos en un grupo de almacenamiento en función de los requisitos de tamaño y rendimiento (IOPS y rendimiento) especificados.
  • Asocia el grupo de almacenamiento a una unidad nueva en la máquina virtual.

Para ver información más detallada acerca de cómo crear una máquina virtual con SQL Server en Azure Portal, consulte el tutorial de aprovisionamiento.

Plantillas de Resource Manager

Si utiliza las siguientes plantillas de Resource Manager, se asocian dos discos de datos premium de forma predeterminada, sin configuración del grupo de almacenamiento. Sin embargo, puede personalizar estas plantillas para cambiar el número de discos de datos premium que se asocian a la máquina virtual.

Plantilla de inicio rápido

Puede usar la siguiente plantilla de inicio rápido para implementar una máquina virtual con SQL Server mediante la optimización de almacenamiento.

Nota:

Es posible que algunos tamaños de máquina virtual no tengan almacenamiento temporal o local. Si implementa una instancia de SQL Server en una máquina virtual de Azure sin almacenamiento temporal, los archivos de registro y datos de tempdb se colocan en la carpeta de datos.

Máquinas virtuales existentes

Nota:

El almacenamiento solo se puede configurar para las máquinas virtuales con SQL Server que se implementaron desde una imagen de SQL Server en Azure Marketplace y actualmente no se admiten para discos SSD Premium v2. Para modificar las configuraciones de disco en una máquina virtual de Azure con SQL Server autoinstalado, use el panel Discos.

Modificación de unidades existentes

Para las máquinas virtuales de SQL Server existentes que se han implementado a través de Azure Marketplace, puede modificar algunos ajustes de almacenamiento en Azure Portal a través del recurso Máquinas virtuales SQL, o en el panel Discos.

Para modificar la configuración de almacenamiento, abra el recurso máquinas virtuales SQL y seleccione Configuración de almacenamiento en Configuración, donde podrá:

  • Agregar discos adicionales
  • Configurar o ampliar los discos existentes

Captura de pantalla que resalta la opción Configurar y la sección Uso de almacenamiento.

Al seleccionar Configurar, se abre la página de extensión de la unidad de datos, lo que permite cambiar el tipo de disco, así como agregar discos adicionales. También puede agregar discos a través del panel Discos.

Captura de pantalla de Azure Portal en la que se muestra la página Extender unidad de datos, que se usa para configurar el almacenamiento de una VM con SQL Server existente.

Si ya ha alcanzado el máximo de discos admitidos para un tamaño de máquina virtual determinado, es posible que tenga que cambiar el tamaño de la máquina virtual.

Modificación de tempdb

También es posible modificar la configuración de tempdb mediante la página Configuración de almacenamiento, como el número de archivos tempdb, así como el tamaño inicial y la proporción de crecimiento automático. Seleccione Configurar junto a tempdb para abrir la página Configuración de tempdb.

Elija junto a Configurar archivos de datos tempdb para modificar la configuración y, después, elija junto a Administrar carpetas de base de datos tempdb al reiniciar para permitir que Azure administre la configuración, carpeta y permisos de tempdb la próxima vez que se inicie el servicio de SQL Server. Esto no requiere que haya creado la máquina virtual SQL con una imagen de Azure Marketplace.

Captura de pantalla de la página de configuración tempdb de Azure Portal de la página de recursos de máquinas virtuales de SQL.

Reinicie su servicio SQL Server para aplicar sus cambios.

Aumento del tamaño del disco temporal

Para aumentar el tamaño del disco temporal, cambie el tamaño de la máquina virtual a una SKU que admita un tamaño de disco superior para el almacenamiento temporal.

Cambios automatizados

Esta sección proporciona una referencia para los cambios en la configuración del almacenamiento que Azure realiza automáticamente durante el aprovisionamiento de la máquina virtual de SQL Server o la configuración en Azure Portal.

  • Azure configura un bloque de almacenamiento desde el almacenamiento seleccionado de la máquina virtual. En la sección siguiente de este artículo se proporcionan los detalles de la configuración del bloque de almacenamiento.
  • La configuración automática del almacenamiento siempre utiliza discos de datos P30 de discos SSD Premium. Por lo tanto, hay una asignación 1:1 entre el número de terabytes seleccionado y el número de discos de datos asociados a la máquina virtual.

Para más información, consulte la página Storage pricing (Precios de almacenamiento) en la pestaña Almacenamiento en disco .

Creación del grupo de almacenamiento

Azure usa la siguiente configuración para crear el grupo de almacenamiento en máquinas virtuales de SQL Server.

Configuración Value
Stripe size (Tamaño de las franjas) 64 KB
Tamaños de disco 1 TB cada uno
Cache Lectura
Tamaño de la asignación Tamaño de la unidad de asignación NTFS = 64 KB
Recuperación Recuperación simple (sin resistencia)
Número de columnas Número de discos de datos hasta 81

1 Después de crear el grupo de almacenamiento, no puede modificar el número de columnas en el grupo de almacenamiento.

Nota:

Use Optimize-StoragePoo y Optimize-Volume para reequilibrar la asignación de espacio en un grupo y optimizar el rendimiento de los tipos de carga de trabajo que tienen patrones de E/S en cola totalmente aleatorios.

Habilitar el almacenamiento en caché

Para SSD Premium, puede cambiar la directiva de almacenamiento en caché en el nivel de disco. Para ello, puede usar Azure Portal, PowerShell o la CLI de Azure.

Para cambiar una directiva de almacenamiento en caché en Azure Portal, siga estos pasos:

  1. Detenga el servicio SQL Server.

  2. Inicie sesión en Azure Portal.

  3. Vaya a la máquina virtual y seleccione Discos en Configuración.

    Captura de pantalla que muestra el panel de configuración de discos de máquina virtual en Azure Portal.

  4. Seleccione la directiva de almacenamiento en caché adecuada para el disco en el menú desplegable: Read Only (Solo lectura) o None (Ninguno).

    Captura de pantalla que muestra la configuración de directivas de almacenamiento en cache de discos en Azure Portal.

  5. Una vez que el cambio surta efecto, reinicie la VM con SQL Server e inicie el servicio SQL Server.

Habilitar el acelerador de escritura

El Acelerador de escritura es una función de disco que solo está disponible para las máquinas virtuales (VM) de la serie M. La finalidad de esta característica es mejorar la latencia de E/S de las operaciones de escritura en Azure Premium Storage cuando se necesita una latencia de E/S de un solo dígito, debido a las cargas de trabajo de OLTP o a los entornos de almacenamiento de datos de elevado volumen.

Antes de habilitar el Acelerador de escritura, revise algunas de las restricciones para confirmar que son aceptables para su empresa.

Detenga toda la actividad de SQL Server y cierre el servicio SQL Server antes de realizar cambios en la directiva de aceleración de escritura.

Si los discos están seccionados, habilite la aceleración de escritura para cada disco de forma individual; la máquina virtual de Azure debe estar apagada antes de realizar los cambios.

Para habilitar la aceleración de escritura mediante Azure Portal, haga lo siguiente:

  1. Detenga el servicio SQL Server. Si los discos están seccionados, apague la máquina virtual.

  2. Inicie sesión en Azure Portal.

  3. Vaya a la máquina virtual y seleccione Discos en Configuración.

    Captura de pantalla que muestra el panel de configuración de discos de máquina virtual en Azure Portal.

  4. En el menú desplegable, elija la opción de caché con Acelerador de escritura del disco.

    Captura de pantalla que muestra la directiva de caché del acelerador de escritura.

  5. Cuando el cambio surta efecto, inicie la máquina virtual y el servicio SQL Server.

Seccionamiento del disco

Para disfrutar de un mayor rendimiento, puede agregar más discos de datos y usar el seccionamiento de discos. Para determinar el número de discos de datos, analice el rendimiento y el ancho de banda necesarios para los archivos de datos de SQL Server, incluido el registro y tempdb. Los límites de rendimiento y ancho de banda varían según el tamaño de la VM. Para obtener más información, consulte el Tamaño de VM.

  • Para Windows 8/Windows Server 2012 o posterior, use espacios de almacenamiento con las siguientes directrices:

    1. Configure la intercalación (tamaño de sección) en 64 KB (65 536 bytes) para evitar que el rendimiento se vea afectado debido a una mala alineación de las particiones. Esta característica debe establecerse con PowerShell.

    2. Establezca recuento de columnas = número de discos físicos. Use PowerShell (no la interfaz de usuario del Administrador del servidor) al configurar más de 8 discos.

Por ejemplo, aquí PowerShell crea un nuevo grupo de almacenamiento con el tamaño de intercalación de 64 KB y un número de columnas igual a la cantidad de disco físico en el bloque de almacenamiento:

$PhysicalDisks = Get-PhysicalDisk | Where-Object {$_.FriendlyName -like "*2" -or $_.FriendlyName -like "*3"}

New-StoragePool -FriendlyName "DataFiles" -StorageSubsystemFriendlyName "Windows Storage on <VM Name>" `
    -PhysicalDisks $PhysicalDisks | New-VirtualDisk -FriendlyName "DataFiles" `
    -Interleave 65536 -NumberOfColumns $PhysicalDisks.Count -ResiliencySettingName simple `
    -UseMaximumSize |Initialize-Disk -PartitionStyle GPT -PassThru |New-Partition -AssignDriveLetter `
    -UseMaximumSize |Format-Volume -FileSystem NTFS -NewFileSystemLabel "DataDisks" `
    -AllocationUnitSize 65536 -Confirm:$false

En Windows Server 2016 y versiones superiores, el valor predeterminado de -StorageSubsystemFriendlyName es Windows Storage on <VM Name>.

Problemas conocidos

La opción "Configurar disco" o el panel "Configuración de almacenamiento" del recurso de máquina virtual de SQL están atenuados

La página Almacenamiento puede estar atenuada en el panel de recursos Máquinas virtuales de SQL en Azure Portal por los siguientes motivos:

  • La extensión Agente de IaaS de SQL se encuentra en estado de error. Elimine y luego registre la VM con SQL Server con la extensión una vez más.
  • Ha personalizado el grupo de almacenamiento.
  • Está usando una imagen que no es de Marketplace.
  • Ha creado la máquina virtual con discos no administrados. Solo se admiten los discos administrados.

La opción Extender disco está atenuada

La opción Extender disco puede estar atenuada por los siguientes motivos:

  • Ha personalizado el grupo de almacenamiento. Si necesita ampliar el disco, agregue discos al grupo de almacenamiento para ampliar el disco virtual.
  • Ha cambiado los nombres de disco virtual o volumen de sus valores predeterminados:
    • Nomenclatura de bloque de almacenamiento: SQLVMStoragePool1, SQLVMStoragePool2, SQLVMStoragePool3.
    • Disco virtual: SQLVMVirtualDisk1, SQLVMVirtualDisk2, SQLVMVirtualDisk3.
    • Volúmenes: SQLVMDATA1, SQLVMLOG y SQLVMTEMPDB.
  • Ha instalado un clúster de Windows en la VM con SQL Server, por lo que no se admite la extensión de discos.

Tengo un disco con 1 TB de espacio sin asignar que no puedo quitar del bloque de almacenamiento.

No hay ninguna opción para quitar el espacio sin asignar de un disco que pertenece a un grupo de almacenamiento.

Mi registro de transacciones está lleno

Revise Solución de problemas de un registro de transacciones lleno si el registro se llena.

No se puede configurar el almacenamiento con el recurso de máquinas virtuales SQL

El panel Configuración de almacenamiento para el recurso máquinas virtuales SQL en Azure Portal puede no estar disponible, estar atenuado o que al seleccionar Extender discos no haga nada, en los escenarios siguientes:

  • Máquinas virtuales con instancias de SQL Server autoinstaladas. Actualmente, solo se admiten imágenes de máquina virtual con SQL Server de Azure Marketplace.
  • Máquinas virtuales de SQL Server con SSDv2 Premium. Actualmente, solo se admiten máquinas virtuales de SQL Server con SSD Premium.
  • Cuando TCP/IP está deshabilitado en Administrador de configuración de SQL Server.