Habilitar el acelerador de escritura

Se aplica a: ✔️ Máquinas virtuales Linux ✔️ Máquinas virtuales Windows ✔️ Conjuntos de escalado flexibles ✔️ Conjuntos de escalado uniformes

El Acelerador de escritura es una capacidad de disco para las máquinas virtuales (VM) de la serie M en Premium Storage con Azure Managed Disks exclusivamente. Como el nombre indica, el propósito de la funcionalidad es mejorar la latencia de E/S de las escrituras en Azure Premium Storage. El Acelerador de escritura se adecua perfectamente a las situaciones en las que las actualizaciones del archivo de registro deben persistir en el disco de una manera muy eficiente para bases de datos modernas.

En general, el Acelerador de escritura está disponible para VM de serie la M en la nube pública.

Planeación del uso del Acelerador de escritura

El Acelerador de escritura se debe usar para los volúmenes que contienen el registro de transacciones o los registros de puestas al día de un DBMS. No se recomienda utilizar el Acelerador de escritura para los volúmenes de datos de un DBMS, ya que la característica se ha optimizado para su uso en los discos de registro.

El Acelerador de escritura solo funciona en conjunto con Azure Managed Disks.

Importante

La habilitación del Acelerador de escritura para el disco del sistema operativo de la máquina virtual hará que esta se reinicie.

Para habilitar el Acelerador de escritura en un disco existente de Azure que NO forme parte de un volumen compuesto de varios discos con administradores de volúmenes o discos de Windows, espacios de almacenamiento de Windows, servidor de archivos de escalabilidad horizontal (SOFS) de Windows, LVM o MDADM de Linux, la carga de trabajo que accede al disco de Azure debe estar apagada. Las aplicaciones de base de datos que usan el disco de Azure DEBEN estar apagadas.

Si desea habilitar o deshabilitar el Acelerador de escritura para un volumen existente que conste de varios discos de Azure Premium Storage y se segmente con administradores de volúmenes o discos de Windows, espacios de almacenamiento de Windows, servidor de archivos de escalabilidad horizontal (SOFS) de Windows, LVM o MDADM de Linux, todos los discos que componen el volumen se deben habilitar o deshabilitar para el Acelerador de escritura en pasos independientes. Antes de habilitar o deshabilitar el Acelerador de escritura en este tipo de configuración, apague la máquina virtual de Azure.

La habilitación del Acelerador de escritura para los discos de sistema operativo no debería ser necesaria para las configuraciones de máquinas virtuales relacionadas con SAP.

Restricciones del uso del Acelerador de escritura

Estas restricciones se aplican al usar el Acelerador de escritura para un VHD o disco de Azure:

  • El almacenamiento en caché de discos Premium debe establecerse en "Ninguno" o "Solo lectura". No se admite ningún otro modo de almacenamiento en caché.
  • Actualmente, las instantáneas solo se admiten en discos de datos con el acelerador de escritura habilitado y no en el disco del sistema operativo. Durante la copia de seguridad, el servicio Azure Backup hacer una copia de seguridad y protege automáticamente los discos de datos con el acelerador de escritura habilitado conectados a la VM.
  • Solo los tamaños de E/S más pequeños (<=64 KiB) toman la ruta de acceso acelerada. En situaciones de carga de trabajo donde los datos se cargan de forma masiva o donde los búferes de registros de transacción de los diferentes sistemas de administración de bases de datos (DBMS) se llenan hasta un mayor grado antes de conservarse en el almacenamiento, existe la probabilidad de que la E/S escrita en el disco no tome la ruta de acceso acelerada.

Hay límites en los discos duros virtuales de Azure Premium Storage por máquina virtual que el Acelerador de escritura puede admitir. Los límites actuales son:

SKU de la máquina virtual Número de discos de Acelerador de escritura IOPS del disco del Acelerador de escritura por máquina virtual
M416ms_v2, M416s_8_v2, M416s_v2 16 20000
M208ms_v2, M208s_v2 8 10000
M192ids_v2, M192idms_v2, M192is_v2, M192ims_v2, 16 20000
M128ms, M128s, M128ds_v2, M128dms_v2, M128s_v2, M128ms_v2 16 20000
M64ms, M64ls, M64s, M64ds_v2, M64dms_v2, M64s_v2, M64ms_v2 8 10000
M32ms, M32ls, M32ts, M32s, M32dms_v2, M32ms_v2 4 5000
M16ms, M16s 2 2.500
M8ms, M8s 1 1250
Standard_M12s_v3, Standard_M12ds_v3 1 5000
Standard_M24s_v3, Standard_M24ds_v3 2 5000
Standard_M48s_1_v3, Standard_M48ds_1_v3 4 5000
Standard_M96s_1_v3, Standard_M96ds_1_v3, Standard_M96s_2_v3, Standard_M96ds_2_v3 8 10000
Standard_M176s_3_v3, Standard_M176ds_3_v3, Standard_M176s_4_v3, Standard_M176ds_4_v3 16 20000

Los límites de IOPS son por máquina virtual y no por disco. Todos los discos del Acelerador de escritura comparten el mismo límite de IOPS por máquina virtual. En una máquina virtual, los discos conectados no pueden superar el límite de IOPS del acelerador de escritura. Por ejemplo, aunque los discos conectados pueden realizar 30 000 IOPS, el sistema no permite que superen 20 000 IOPS para M416ms_v2.

Habilitación del Acelerador de escritura en un disco específico

En las secciones siguientes se describe cómo el Acelerador de escritura se pueden habilitar en los VHD de Azure Premium Storage.

Prerrequisitos

En este momento, los requisitos previos siguientes se aplican al uso del Acelerador de escritura:

  • Los discos en los que desea aplicar el Acelerador de escritura de Azure deben ser Azure Managed Disks en Premium Storage.
  • Debe usar una máquina virtual de la serie M

Habilitación del Acelerador de escritura mediante Azure PowerShell

El módulo de Azure PowerShell a partir de la versión 5.5.0 incluye los cambios en los cmdlets pertinentes para habilitar o deshabilitar el Acelerador de escritura para discos específicos de Azure Premium Storage. Con el fin de habilitar o implementar los discos compatibles con el Acelerador de escritura, se modificaron los comandos de PowerShell siguientes y se extendieron para que aceptaran un parámetro para el Acelerador de escritura.

Se ha agregado -WriteAccelerator, un nuevo parámetro de modificador, a los siguientes cmdlets:

Nota:

Si habilita el Acelerador de escritura en conjuntos de escalado de máquinas virtuales usando el modo de orquestación flexible, deberá habilitarlo en cada instancia.

Si no se proporciona el parámetro, la propiedad se establece en false y se implementarán discos no compatibles con el Acelerador de escritura.

Se agregó -OsDiskWriteAccelerator, un nuevo parámetro de modificador, a los siguientes cmdlets:

Si no se especifica el parámetro, la propiedad se establece en false de forma predeterminada y se devuelven los discos que no usan el Acelerador de escritura.

Se agregó -OsDiskWriteAccelerator, un nuevo parámetro booleano opcional (que no admite valores NULL), a los siguientes cmdlets:

Especifique $true o $false para controlar la compatibilidad del Acelerador de escritura con los discos.

Algunos ejemplos de los comandos podrían ser:

New-AzVMConfig | Set-AzVMOsDisk | Add-AzVMDataDisk -Name "datadisk1" | Add-AzVMDataDisk -Name "logdisk1" -WriteAccelerator | New-AzVM

Get-AzVM | Update-AzVM -OsDiskWriteAccelerator $true

New-AzVmssConfig | Set-AzVmssStorageProfile -OsDiskWriteAccelerator | Add-AzVmssDataDisk -Name "datadisk1" -WriteAccelerator:$false | Add-AzVmssDataDisk -Name "logdisk1" -WriteAccelerator | New-AzVmss

Get-AzVmss | Update-AzVmss -OsDiskWriteAccelerator:$false

Se pueden ejecutar dos escenarios principales mediante scripts, tal como se muestra en las secciones siguientes.

Incorporación de un disco nuevo compatible con el Acelerador de escritura utilizando PowerShell

Puede usar este script para agregar un disco nuevo a la máquina virtual. El disco que se crea con este script usa el Acelerador de escritura.

Reemplace myVM, myWAVMs, log001, el tamaño del disco y el LunID del disco con los valores adecuados para su implementación.

# Specify your VM Name
$vmName="myVM"
#Specify your Resource Group
$rgName = "myWAVMs"
#data disk name
$datadiskname = "log001"
#LUN Id
$lunid=8
#size
$size=1023
#Pulls the VM info for later
$vm=Get-AzVM -ResourceGroupName $rgname -Name $vmname
#add a new VM data disk
Add-AzVMDataDisk -CreateOption empty -DiskSizeInGB $size -Name $vmname-$datadiskname -VM $vm -Caching None -WriteAccelerator:$true -lun $lunid
#Updates the VM with the disk config - does not require a reboot
Update-AzVM -ResourceGroupName $rgname -VM $vm

Habilitación del Acelerador de escritura en un disco de Azure existente utilizando PowerShell

Pueden usar este script para habilitar el Acelerador de escritura en un disco existente. Reemplace myVM, myWAVMs y test-log001 con los valores adecuados para su implementación. El script agrega el Acelerador de escritura a un disco existente cuando el valor de $newstatus está establecido en "$true". Si usa el valor "$false", el Acelerador de escritura se deshabilitará en un disco determinado.

#Specify your VM Name
$vmName="myVM"
#Specify your Resource Group
$rgName = "myWAVMs"
#data disk name
$datadiskname = "test-log001"
#new Write Accelerator status ($true for enabled, $false for disabled)
$newstatus = $true
#Pulls the VM info for later
$vm=Get-AzVM -ResourceGroupName $rgname -Name $vmname
#add a new VM data disk
Set-AzVMDataDisk -VM $vm -Name $datadiskname -Caching None -WriteAccelerator:$newstatus
#Updates the VM with the disk config - does not require a reboot
Update-AzVM -ResourceGroupName $rgname -VM $vm

Nota

Si ejecuta el script anterior, desconectará el disco especificado, habilitará el Acelerador de escritura en el disco y, luego, lo volverá a adjuntar.

Habilitación del Acelerador de escritura mediante Azure Portal

Puede habilitar el Acelerador de escritura a través del portal, donde especifique la configuración de caché del disco:

Acelerador de escritura en Azure Portal

Habilitación del Acelerador de escritura mediante la CLI de Azure

Puede usar la CLI de Azure para habilitar el acelerador de escritura.

Para habilitar el Acelerador de escritura en un disco existente, puede usar az vm update. Puede usar los siguientes ejemplos si sustituye los valores diskName, VMName y ResourceGroup por los suyos propios: az vm update -g group1 -n vm1 -write-accelerator 1=true

Para conectar un disco al Acelerador de escritura habilitado, use az vm disk attach. Puede usar el ejemplo siguiente si sustituye sus propios valores: az vm disk attach -g group1 -vm-name vm1 -disk d1 --enable-write-accelerator

Para deshabilitar el Acelerador de escritura, use az vm update, estableciendo las propiedades en false: az vm update -g group1 -n vm1 -write-accelerator 0=false 1=false

Habilitación del Acelerador de escritura mediante las API REST

Para realizar la implementación a través de la API REST de Azure, es preciso instalar ARMclient de Azure.

Instalación de ARMclient

Para ejecutar ARMclient, debe instalarlo a través de Chocolatey. Puede instalarlo a través de cmd.exe o PowerShell. Use derechos elevados para estos comandos ("Ejecutar como administrador").

Con cmd.exe, ejecute este comando: @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

Si usa PowerShell, ejecute el siguiente comando: Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

Ahora puede instalar armclient con el siguiente comando en cmd.exe o PowerShell choco install armclient

Obtención de la configuración de la máquina virtual actual

Para cambiar los atributos de la configuración de disco, primero debe obtener la configuración actual en un archivo JSON. Puede obtener la configuración actual ejecutando el siguiente comando: armclient GET /subscriptions/<<subscription-ID<</resourceGroups/<<ResourceGroup>>/providers/Microsoft.Compute/virtualMachines/<<virtualmachinename>>?api-version=2017-12-01 > <<filename.json>>

Reemplace los términos dentro de "<<>>" con los datos, incluido el nombre que debe tener el archivo JSON.

La salida debería parecerse a esta:

{
  "properties": {
    "vmId": "2444c93e-f8bb-4a20-af2d-1658d9dbbbcb",
    "hardwareProfile": {
      "vmSize": "Standard_M64s"
    },
    "storageProfile": {
      "imageReference": {
        "publisher": "SUSE",
        "offer": "SLES-SAP",
        "sku": "12-SP3",
        "version": "latest"
      },
      "osDisk": {
        "osType": "Linux",
        "name": "mylittlesap_OsDisk_1_754a1b8bb390468e9b4c429b81cc5f5a",
        "createOption": "FromImage",
        "caching": "ReadWrite",
        "managedDisk": {
          "storageAccountType": "Premium_LRS",
          "id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Compute/disks/mylittlesap_OsDisk_1_754a1b8bb390468e9b4c429b81cc5f5a"
        },
        "diskSizeGB": 30
      },
      "dataDisks": [
        {
          "lun": 0,
          "name": "data1",
          "createOption": "Attach",
          "caching": "None",
          "managedDisk": {
            "storageAccountType": "Premium_LRS",
            "id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Compute/disks/data1"
          },
          "diskSizeGB": 1023
        },
        {
          "lun": 1,
          "name": "log1",
          "createOption": "Attach",
          "caching": "None",
          "managedDisk": {
            "storageAccountType": "Premium_LRS",
            "id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Compute/disks/data2"
          },
          "diskSizeGB": 1023
        }
      ]
    },
    "osProfile": {
      "computerName": "mylittlesapVM",
      "adminUsername": "pl",
      "linuxConfiguration": {
        "disablePasswordAuthentication": false
      },
      "secrets": []
    },
    "networkProfile": {
      "networkInterfaces": [
        {
          "id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Network/networkInterfaces/mylittlesap518"
        }
      ]
    },
    "diagnosticsProfile": {
      "bootDiagnostics": {
        "enabled": true,
        "storageUri": "https://mylittlesapdiag895.blob.core.windows.net/"
      }
    },
    "provisioningState": "Succeeded"
  },
  "type": "Microsoft.Compute/virtualMachines",
  "location": "westeurope",
  "id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Compute/virtualMachines/mylittlesapVM",
  "name": "mylittlesapVM"

Después, actualice el archivo JSON y habilite el Acelerador de escritura en el disco llamado "log1". Para ello, agregue este atributo en el archivo JSON después de la entrada de caché del disco.

        {
          "lun": 1,
          "name": "log1",
          "createOption": "Attach",
          "caching": "None",
          "writeAcceleratorEnabled": true,
          "managedDisk": {
            "storageAccountType": "Premium_LRS",
            "id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Compute/disks/data2"
          },
          "diskSizeGB": 1023
        }

Luego, actualice la implementación existente con este comando: armclient PUT /subscriptions/<<subscription-ID<</resourceGroups/<<ResourceGroup>>/providers/Microsoft.Compute/virtualMachines/<<virtualmachinename>>?api-version=2017-12-01 @<<filename.json>>

La salida debe parecerse a la que aparece a continuación. Puede ver que el Acelerador de escritura está habilitado para un disco.

{
  "properties": {
    "vmId": "2444c93e-f8bb-4a20-af2d-1658d9dbbbcb",
    "hardwareProfile": {
      "vmSize": "Standard_M64s"
    },
    "storageProfile": {
      "imageReference": {
        "publisher": "SUSE",
        "offer": "SLES-SAP",
        "sku": "12-SP3",
        "version": "latest"
      },
      "osDisk": {
        "osType": "Linux",
        "name": "mylittlesap_OsDisk_1_754a1b8bb390468e9b4c429b81cc5f5a",
        "createOption": "FromImage",
        "caching": "ReadWrite",
        "managedDisk": {
          "storageAccountType": "Premium_LRS",
          "id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Compute/disks/mylittlesap_OsDisk_1_754a1b8bb390468e9b4c429b81cc5f5a"
        },
        "diskSizeGB": 30
      },
      "dataDisks": [
        {
          "lun": 0,
          "name": "data1",
          "createOption": "Attach",
          "caching": "None",
          "managedDisk": {
            "storageAccountType": "Premium_LRS",
            "id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Compute/disks/data1"
          },
          "diskSizeGB": 1023
        },
        {
          "lun": 1,
          "name": "log1",
          "createOption": "Attach",
          "caching": "None",
          "writeAcceleratorEnabled": true,
          "managedDisk": {
            "storageAccountType": "Premium_LRS",
            "id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Compute/disks/data2"
          },
          "diskSizeGB": 1023
        }
      ]
    },
    "osProfile": {
      "computerName": "mylittlesapVM",
      "adminUsername": "pl",
      "linuxConfiguration": {
        "disablePasswordAuthentication": false
      },
      "secrets": []
    },
    "networkProfile": {
      "networkInterfaces": [
        {
          "id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Network/networkInterfaces/mylittlesap518"
        }
      ]
    },
    "diagnosticsProfile": {
      "bootDiagnostics": {
        "enabled": true,
        "storageUri": "https://mylittlesapdiag895.blob.core.windows.net/"
      }
    },
    "provisioningState": "Succeeded"
  },
  "type": "Microsoft.Compute/virtualMachines",
  "location": "westeurope",
  "id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Compute/virtualMachines/mylittlesapVM",
  "name": "mylittlesapVM"

Una vez haya hecho el cambio, la unidad debería admitir el Acelerador de escritura.