Partager via


Activer l’Accélérateur des écritures

S’applique aux : ✔️ Machines virtuelles Linux ✔️ Machines virtuelles Windows ✔️ Groupes identiques flexibles ✔️ Groupes identiques uniformes

L’Accélérateur d’écriture est une fonctionnalité de disque pour les machines virtuelles (VM) de la série M sur les disques managés SSD Premium. Comme son nom l’indique, cette fonctionnalité a pour but d’améliorer la latence d’E/S des écritures sur les disques SSD Premium. L’Accélérateur des écritures est particulièrement adapté lorsque les mises à jour du fichier journal doivent être conservées sur disque dans un système à hautes performances pour répondre aux besoins des bases de données modernes.

L’Accélérateur des écritures est généralement disponible pour les machines virtuelles Série M dans le cloud public.

Prérequis

Planification de l’utilisation de l’Accélérateur des écritures

Utilisez l’Accélérateur des écritures pour les volumes qui stockent le journal des transactions ou les journaux d’activité de restauration d’un SGBD (système de gestion de base de données). Vous ne devez pas utiliser l’Accélérateur d’écriture pour les volumes de données d’un système de gestion de base de données (SGBD), car cette fonctionnalité est optimisée pour être utilisée avec les disques de journal.

Important

L’activation de l’Accélérateur d’écriture pour le disque du système d’exploitation de la machine virtuelle entraîne son redémarrage.

La charge de travail qui accède au disque Azure doit être éteinte pour activer l’Accélérateur d’écriture sur un disque Azure existant qui ne fait pas partie d’une build de volume constituée de plusieurs disques avec des gestionnaires de disques ou de volumes Windows, d’espaces de stockage Windows, de serveurs de fichiers Windows avec montée en puissance parallèle (SOFS), de LVM Linux ou de MDADM. Les applications de base de données qui utilisent le disque Azure doivent être arrêtées.

Tous les disques qui constituent le volume doivent être activés ou désactivés pour l’Accélérateur d’écriture lors d’étapes distinctes, afin d’activer ou de désactiver l’Accélérateur d’écriture pour un volume existant créé à partir de plusieurs disques Azure SSD Premium, et dont les partitions sont gérées à l’aide de gestionnaires de disques ou de volumes Windows, d’espaces de stockage Windows, de serveurs de fichiers Windows avec montée en puissance parallèle (SOFS), de LVM Linux ou de MDADM. Dans une telle configuration, avant d’activer ou de désactiver l’Accélérateur d’écriture, vous devez arrêter la machine virtuelle.

Pour les configurations de machines virtuelles liées à SAP, il ne devrait pas être nécessaire d’activer l’Accélérateur d’écriture pour les disques du système d’exploitation.

Restrictions relatives à l’utilisation de l’Accélérateur des écritures

Quand vous utilisez l’Accélérateur des écritures sur un disque/disque dur virtuel Azure, les restrictions suivantes s’appliquent :

  • La mise en cache du disque Premium doit être définie sur Aucune ou Lecture seule. Tous les autres modes de mise en cache ne sont pas pris en charge.
  • Les instantanés sont actuellement pris en charge uniquement pour les disques de données avec accélérateur d’écriture, et non pour le disque du système d’exploitation. Lors de la sauvegarde, le service Sauvegarde Azure sauvegarde et protège automatiquement les disques de données avec accélérateur d’écriture attachés à la machine virtuelle.
  • Seules les tailles d’E/S plus petites (<=64 Kio) prennent le chemin accéléré. Dans les cas de charge de travail où les données sont chargées en bloc ou les tampons de journal des transactions des différents systèmes de gestion de base de données (SGBD) sont davantage remplis avant d’être conservés dans le stockage, les E/S écrites sur le disque risquent de ne pas prendre le chemin d’accès accéléré.

Le nombre de disques Azure SSD Premium par machine virtuelle qui peuvent être pris en charge par l’Accélérateur d’écriture est limité. Les limites actuelles sont :

Référence de la machine virtuelle Nombre de disques avec Accélérateur des écritures IOPS du disque Accélérateur d’écriture par machine virtuelle
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 5 000
M16ms, M16s 2 2 500
M8ms, M8s 1 1250
Standard_M12s_v3, Standard_M12ds_v3 1 5 000
Standard_M24s_v3, Standard_M24ds_v3 2 5 000
Standard_M48s_1_v3, Standard_M48ds_1_v3 4 5 000
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

Les limites d’IOPS s’entendent par machine virtuelle et non par disque. Tous les disques avec Accélérateur des écritures partagent la même limite d’IOPS par machine virtuelle. Les disques attachés ne peuvent pas dépasser la limite d’IOPS de l’accélérateur d’écriture pour une machine virtuelle. Par exemple, même si les disques connectés peuvent effectuer 30 000 IOPS, le système n’autorise pas les disques à dépasser 20 000 IOPS pour M416ms_v2.

Activation de l’Accélérateur des écritures sur un disque spécifique

Les sections suivantes décrivent comment l’Accélérateur d’écriture peut être activé sur les disques durs virtuels Azure SSD Premium.

Activation de l’Accélérateur des écritures Azure à l’aide d’Azure PowerShell

Le module Azure PowerShell de la version 5.5.0 inclut les modifications apportées aux cmdlets qui permettent d’activer ou de désactiver l’Accélérateur d’écriture pour des disques Azure SSD Premium spécifiques. Pour permettre l’activation ou le déploiement de disques pris en charge par l’Accélérateur d’écriture, les commandes PowerShell suivantes ont été modifiées et étendues avec un paramètre pour l’accélérateur.

Le nouveau paramètre de commutateur -WriteAccelerator a été ajouté aux applets de commande suivantes :

Remarque

Si vous activez l’Accélérateur d’écriture sur des groupes de machines virtuelles identiques à l’aide du mode d’orchestration flexible, vous devez l’activer sur chaque instance individuelle.

Si le paramètre n’est pas spécifié, la propriété est définie sur false, et les disques déployés ne sont pas pris en charge par l’Accélérateur des écritures.

Le nouveau paramètre de commutateur -OsDiskWriteAccelerator a été ajouté aux applets de commande suivantes :

Si le paramètre n’est pas spécifié, la propriété prend la valeur false par défaut, ce qui retourne les disques qui n’utilisent pas l’Accélérateur d’écriture.

Le nouveau paramètre booléen -OsDiskWriteAccelerator (paramètre facultatif et qui n’accepte pas les valeurs Null) a été ajouté aux applets de commande suivantes :

Indiquez soit $true, soit $false pour contrôler la prise en charge de l’Accélérateur d’écriture Azure par les disques.

Exemples de commandes :

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

Les scripts montrés dans les sections suivantes correspondent à deux scénarios courants.

Ajout d’un nouveau disque pris en charge par l’Accélérateur des écritures à l’aide de PowerShell

Vous pouvez utiliser ce script pour ajouter un nouveau disque à votre machine virtuelle. Le disque créé avec ce script utilise l’Accélérateur des écritures.

Remplacez myVM, myWAVMs, log001, la taille du disque et le LunID du disque par les valeurs appropriées pour votre déploiement spécifique.

# 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

Activation de l’Accélérateur des écritures sur un disque Azure existant à l’aide de PowerShell

Vous pouvez utiliser ce script pour activer l’Accélérateur des écritures sur un disque existant. Remplacez myVM, myWAVMs, et test-log001 par les valeurs appropriées pour votre déploiement spécifique. Le script ajoute l’Accélérateur des écritures à un disque existant si le paramètre $newstatus est défini sur « $true ». Si ce paramètre est défini sur $false, l’Accélérateur des écritures est désactivé sur le disque.

#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

Notes

L’exécution du script ci-dessus détache le disque spécifié, active l’Accélérateur des écritures sur le disque, puis réattache le disque

Activation de l’Accélérateur des écritures à l’aide du Portail Azure

Vous pouvez activer l’Accélérateur des écritures sur le portail, en spécifiant vos paramètres de mise en cache du disque :

Accélérateur des écritures sur le Portail Azure

Activation de l’Accélérateur des écritures à l’aide de Azure CLI

Vous pouvez utiliser Azure CLI pour activer l’accélérateur d’écriture.

Pour activer l’Accélérateur d’écriture sur un disque existant, utilisez az vm update. Vous pouvez utiliser les exemples suivants si vous remplacez diskName, VMName, et ResourceGroup par vos propres valeurs : az vm update -g group1 -n vm1 -write-accelerator 1=true

Pour attacher un disque avec l’Accélérateur d’écriture activé, utilisez la commande az vm disk attach. Vous pouvez utiliser l’exemple suivant si vous indiquez vos propres valeurs : az vm disk attach -g group1 -vm-name vm1 -disk d1 --enable-write-accelerator

Pour désactiver l’Accélérateur des écritures, utilisez la commande az vm update et définissez les propriétés sur false : az vm update -g group1 -n vm1 -write-accelerator 0=false 1=false

Activation de l’Accélérateur d’écriture à l’aide d’API REST

Pour effectuer le déploiement à l’aide de l’API REST Azure, vous devez installer Azure armclient.

Installer armclient

Pour pouvoir utiliser armclient, installez-le via Chocolatey, à l’aide de cmd.exe ou PowerShell. Exécutez ces commandes avec des droits élevés (« Exécuter en tant qu’administrateur »).

Avec cmd.exe, exécutez la commande suivante : @"%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"

Exécutez la commande suivante avec PowerShell : Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

Vous pouvez maintenant installer armclient à l’aide de la commande suivante dans cmd.exe ou PowerShell choco install armclient

Obtenir la configuration actuelle de votre machine virtuelle

Pour changer les attributs de configuration du disque, vous devez d’abord obtenir la configuration actuelle et l’enregistrer dans un fichier JSON. Pour cela, exécutez la commande suivante : armclient GET /subscriptions/<<subscription-ID<</resourceGroups/<<ResourceGroup>>/providers/Microsoft.Compute/virtualMachines/<<virtualmachinename>>?api-version=2017-12-01 > <<filename.json>>

Remplacez le contenu entre les balises <<>> par vos propres données, dont le nom souhaité pour le fichier JSON.

Le résultat doit être semblable à ceci :

{
  "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"

Ensuite, mettez à jour le fichier JSON et à activer l’Accélérateur des écritures sur le disque appelé « log1 ». Ce peut être effectué en ajoutant cet attribut après l’entrée du cache du disque dans le fichier JSON.

        {
          "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
        }

Ensuite, mettez à jour le déploiement existant avec cette commande : armclient PUT /subscriptions/<<subscription-ID<</resourceGroups/<<ResourceGroup>>/providers/Microsoft.Compute/virtualMachines/<<virtualmachinename>>?api-version=2017-12-01 @<<filename.json>>

Le résultat doit ressembler à l’exemple ci-dessous. Vous pouvez voir que l’Accélérateur des écritures est activé pour un seul disque.

{
  "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"

Une fois ce changement effectué, le disque est normalement pris en charge par l’Accélérateur des écritures.