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

Se aplica a:SQL Server en VM 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.

Screenshot that highlights the SQL Server settings tab and the Change configuration option.

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.

Screenshot from the Azure portal of the SQL Server VM Storage Configuration page during provisioning.

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.

Screenshot that shows where you can configure the tempdb storage for your SQL VM.

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 las máquinas virtuales con SQL Server existentes que hayan sido implementadas en Azure Marketplace, puede modificar algunas opciones de configuración del almacenamiento en el Portal de Azure.

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

Screenshot that highlights the Configure option and the Storage Usage section.

Puede modificar la configuración de disco de las unidades que se configuraron durante el proceso de creación de la máquina virtual con SQL Server. 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.

A screenshot from the Azure portal showing the Extend Data drive page, used to configure storage for an existing SQL Server VM.

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.

Screenshot of the tempdb configuration page of the Azure portal from the SQL virtual machines resource page.

Reinicie su servicio SQL Server para aplicar sus cambios.

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.

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.

    Screenshot showing the VM disk configuration pane in the 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).

    Screenshot showing the disk caching policy configuration in the 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.

    Screenshot showing the VM disk configuration pane in the Azure portal.

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

    Screenshot showing the write accelerator cache policy.

  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

El panel Configuración de almacenamiento puede estar atenuada en Azure Portal si la extensión Agente de IaaS de SQL está en estado de error. Repare la extensión Agente de IaaS de SQL.

La opción Configurar del panel "Configuración de almacenamiento" puede estar atenuada si ha personalizado el bloque de almacenamiento o si usa una imagen que no es del marketplace.

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.