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 funcionalidad de disco para máquinas virtuales (VM) de la serie M en discos administrados SSD prémium. Como indica el nombre, el propósito de la funcionalidad es mejorar la latencia de E/S de escrituras en discos SSD prémium. 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.
Requisitos previos
- Solo se admite con discos administrados SSD prémium
- Solo compatible con máquinas virtuales de la serie M
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 debe usar el Acelerador de escritura para los volúmenes de datos de un DBMS, ya que la característica está optimizada para usarse en discos de registro.
Importante
Al habilitar el Acelerador de escritura para el disco del sistema operativo de la máquina virtual, se reinicia la máquina virtual.
Para habilitar el Acelerador de escritura en un disco de Azure existente que no forma parte de una compilación de volumen de varios discos con administradores de discos o volúmenes de Windows, espacios de almacenamiento de Windows, servidor de archivos de escalabilidad horizontal de Windows (SOFS), LVM de Linux o MDADM, es necesario apagar la carga de trabajo que accede al disco de Azure. Las aplicaciones de base de datos que usan el disco de Azure deben apagarse.
Para habilitar o deshabilitar el Acelerador de escritura para un volumen existente creado a partir de varios discos SSD prémium de Azure y seccionados mediante administradores de discos o volúmenes de Windows, Espacios de almacenamiento de Windows, servidor de archivos de escalabilidad horizontal de Windows (SOFS), LVM o MDADM de Linux, todos los discos que compilan el volumen deben estar habilitados o deshabilitados para el Acelerador de escritura en pasos independientes. Apague la máquina virtual Antes de habilitar o deshabilitar el Acelerador de escritura en esta configuración.
No es necesario habilitar el Acelerador de escritura para discos del sistema operativo 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 de discos SSD prémium de Azure por máquina virtual compatibles con el Acelerador de escritura. 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. Los discos conectados no pueden superar el límite de IOPS del acelerador de escritura para una máquina virtual. Por ejemplo, aunque los discos conectados pueden hacer 30 000 IOPS, el sistema no permite que los discos pasen por encima de 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 se puede habilitar el Acelerador de escritura en discos duros virtuales SSD prémium de Azure.
Habilitación del Acelerador de escritura mediante Azure PowerShell
El módulo de Azure PowerShell de la versión 5.5.0 incluye los cambios en los cmdlets pertinentes para habilitar o deshabilitar el Acelerador de escritura para discos SSD prémium de Azure específicos. 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:
Sin especificar el parámetro establece la propiedad en false de forma predeterminada, devolviendo 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 de Azure 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:
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, use az vm update, puede usar los ejemplos siguientes si reemplaza el diskName
, VMName
, y ResourceGroup
por sus propios valores: 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.