Aktivieren der Schreibbeschleunigung

Gilt für: ✔️ Linux-VMs ✔️ Windows-VMs ✔️ Flexible Skalierungsgruppen ✔️ Einheitliche Skalierungsgruppen

Bei der Schreibbeschleunigung handelt es sich um eine Datenträgerfunktion, die nur für virtuelle Computer (Virtual Machines, VMs) der M-Serie in Storage Premium mit Azure Managed Disks verfügbar ist. Wie der Name schon besagt, ist der Zweck der Funktion die Verbesserung der E/A-Wartezeit bei Schreibvorgängen für Azure Storage Premium. Die Schreibbeschleunigung ist hervorragend geeignet, wenn Protokolldateiupdates erforderlich sind, die für moderne Datenbanken auf äußerst leistungsfähige Weise auf dem Datenträger beibehalten werden sollen.

Die Schreibbeschleunigung ist für virtuelle Computer der M-Serie in der öffentlichen Cloud allgemein verfügbar.

Planen der Verwendung der Schreibbeschleunigung

Die Schreibbeschleunigung sollte für die Volumes verwendet werden, die das Transaktionsprotokoll oder die Protokolle der Rollforwardphase eines DBMS enthalten. Es wird davon abgeraten, die Schreibbeschleunigung für die Datenvolumes eines DBMS zu verwenden, weil die Funktion für die Verwendung auf Protokolldatenträgern optimiert wurde.

Die Schreibbeschleunigung funktioniert nur in Verbindung mit verwalteten Azure-Datenträgern.

Wichtig

Wenn Sie die Schreibbeschleunigung für den Betriebssystemdatenträger des virtuellen Computers aktivieren, wird der virtuelle Computer neu gestartet.

Um die Schreibbeschleunigung für einen vorhandenen Azure-Datenträger zu aktivieren, der NICHT Teil eines Volumes ist, das aus mehreren Datenträgern mit Windows-Datenträgerverwaltung oder Volume-Manager, Windows-Speicherplätzen, einem Windows-Dateiserver mit horizontaler Skalierung, Linux LVM oder MDADM besteht, muss die Workload, die auf den Azure-Datenträger zugreift, heruntergefahren werden. Datenbankanwendungen, die den Azure-Datenträger verwenden, MÜSSEN beendet werden.

Wenn Sie die Schreibbeschleunigung für ein vorhandenes Volume aktivieren oder deaktivieren möchten, das aus mehreren Azure Storage Premium-Stripesetdatenträgern mit Windows-Datenträgerverwaltung oder Volume-Manager, Windows-Speicherplätzen, einem Windows-Dateiserver mit horizontaler Skalierung (Scale-out File Server, SOFS), Linux LVM oder MDADM besteht, müssen alle zum Volume gehörigen Datenträger in separaten Schritten für die Schreibbeschleunigung aktiviert oder deaktiviert werden. Fahren Sie vor dem Aktivieren oder Deaktivieren der Schreibbeschleunigung in einer solchen Konfiguration die Azure-VM herunter.

Für SAP-spezifische VM-Konfigurationen sollte das Aktivieren der Schreibbeschleunigung für Betriebssystemdatenträger nicht erforderlich sein.

Einschränkungen bei der Verwendung der Schreibbeschleunigung

Bei der Verwendung der Schreibbeschleunigung für einen Azure-Datenträger/eine Azure-VHD gelten folgende Einschränkungen:

  • Die Premium-Datenträgerzwischenspeicherung muss auf „Keine“ oder „Schreibgeschützt“ festgelegt werden. Alle anderen Zwischenspeicherungsmodi werden nicht unterstützt.
  • Momentaufnahmen werden derzeit nur für Write Accelerator-fähige Datenträger unterstützt, nicht aber für die Betriebssystemfestplatte. Während des Sicherungsvorgangs sichert und schützt der Azure Backup-Dienst automatisch die an den virtuellen Computer angeschlossenen Write Accelerator-fähigen Datenlaufwerke.
  • Der beschleunigte Pfad wird nur für kleinere E/A-Größen (<=64 KiB) verwendet. In Workloadsituationen, bei denen Daten in einem Massenvorgang geladen oder die Transaktionsprotokollpuffer vor ihrer persistenten Speicherung stärker befüllt werden, wird für die auf Datenträger geschriebenen E/A-Vorgänge wahrscheinlich nicht der beschleunigte Pfad verwendet.

Die Anzahl von Azure Storage Premium-VHDs pro VM, die von der Schreibbeschleunigung unterstützt werden können, ist begrenzt. Die aktuellen Limits lauten wie folgt:

VM-SKU Anzahl von Datenträgern mit Schreibbeschleunigung Datenträger-IOPS der Schreibbeschleunigung pro VM
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 2500
M8ms, M8s 1 1250
Standard_M12s_v3, Standard_M12ds_v3 1 5000
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

Die IOPS-Grenzwerte gelten pro VM und nicht pro Datenträger. Alle Datenträger mit Schreibbeschleunigung verwenden denselben IOPS-Grenzwert pro VM. Angefügte Datenträger dürfen die IOPS-Begrenzung des Schreibbeschleunigers für eine VM nicht überschreiten. Beispiel: Obwohl die angefügten Festplatten 30.000 IOPS bewältigen können, lässt das System nicht zu, dass die Datenträger für M416ms_v2 20.000 IOPS überschreiten.

Aktivieren der Schreibbeschleunigung auf einem bestimmten Datenträger

In den nächsten Abschnitten wird beschrieben, wie die Schreibbeschleunigung auf Azure Storage Premium-VHDs aktiviert werden kann.

Voraussetzungen

Für die Verwendung der Schreibbeschleunigung gelten zurzeit die folgenden Voraussetzungen:

  • Die Datenträger, auf die Sie die Azure-Schreibbeschleunigung anwenden, müssen verwaltete Azure-Datenträger in Storage Premium sein.
  • Sie müssen einen virtuellen Computer der M-Serie verwenden.

Aktivieren der Azure-Schreibbeschleunigung mit Azure PowerShell

Das Azure PowerShell-Modul ab Version 5.5.0 enthält die Änderungen der relevanten Cmdlets zum Aktivieren oder Deaktivieren der Schreibbeschleunigung für bestimmte Azure Storage Premium-Datenträger. Zum Aktivieren oder Bereitstellen von Datenträgern, die von der Schreibbeschleunigung unterstützt werden, wurden die folgenden PowerShell-Befehle geändert und zum Akzeptieren eines Parameters für die Schreibbeschleunigung erweitert.

Den folgenden Cmdlets wurde ein neuer Switch-Parameter -WriteAccelerator hinzugefügt:

Hinweis

Wenn Sie die Schreibbeschleunigung für VM-Skalierungsgruppen mithilfe des flexiblen Orchestrierungsmodus aktivieren, müssen Sie sie für jede einzelne Instanz aktivieren.

Wird der Parameter nicht angegeben, wird die Eigenschaft auf „false“ festgelegt, und es werden Datenträger bereitgestellt, die nicht von der Schreibbeschleunigung unterstützt werden.

Dem folgenden Cmdlet wurde ein neuer Switch-Parameter -OsDiskWriteAccelerator hinzugefügt:

Wenn Sie den Parameter nicht angeben, wird die Eigenschaft standardmäßig auf „false“ gesetzt und es werden Datenträger zurückgegeben, die keine Schreibbeschleunigung verwenden.

Den folgenden Cmdlets wurde ein neuer boolescher (NULL-Werte nicht zulässig) Parameter -OsDiskWriteAccelerator hinzugefügt:

Setzen Sie den Parameter auf „$true“ oder „$false“, um die Unterstützung der Azure-Schreibbeschleunigung mit den Datenträgern zu steuern.

Im Folgenden sehen Sie einige Beispielbefehle:

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

Für zwei Hauptszenarien kann wie in den folgenden Abschnitten erläutert ein Skript verwendet werden.

Hinzufügen eines von der Schreibbeschleunigung unterstützten neuen Datenträgers mit PowerShell

Sie können das folgende Skript verwenden, um Ihrer VM einen neuen Datenträger hinzuzufügen. Der mit diesem Skript erstellte Datenträger verwendet die Schreibbeschleunigung.

Ersetzen Sie myVM, myWAVMs, log001, die Größe des Datenträgers und die LUN-ID des Datenträgers durch Werte, die für Ihre Bereitstellung geeignet sind.

# 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

Aktivieren der Schreibbeschleunigung auf einem vorhandenen Azure-Datenträger mit PowerShell

Sie können dieses Skript verwenden, um die Schreibbeschleunigung auf einem vorhandenen Datenträger zu aktivieren. Ersetzen Sie myVM, myWAVMs, und test-log001 durch Werte, die für Ihre Bereitstellung geeignet sind. Das Skript fügt die Schreibbeschleunigung zu einem vorhandenen Datenträger hinzu, wenn der Wert für $newstatus auf „$true“ festgelegt ist. Mit dem Wert „$false“ wird die Schreibbeschleunigung auf einem Datenträger deaktiviert.

#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

Hinweis

Durch die Ausführung des obigen Skripts wird der angegebene Datenträger getrennt, die Schreibbeschleunigung für den Datenträger aktiviert und anschließend der Datenträger wieder angefügt.

Aktivieren der Schreibbeschleunigung mit dem Azure-Portal

Sie können die Schreibbeschleunigung über das Portal aktivieren, in dem Sie die Datenträgercache-Einstellungen angeben:

Schreibbeschleunigung im Azure-Portal

Aktivieren der Schreibbeschleunigung mit der Azure-Befehlszeilenschnittstelle

Sie können die Schreibbeschleunigung mithilfe der Azure CLI aktivieren.

Um die Schreibbeschleunigung auf einem vorhandenen Datenträger zu aktivieren, verwenden Sie az vm update. Sie können die folgenden Beispiele verwenden, wenn Sie diskName, VMName und ResourceGroup durch Ihre eigenen Werte ersetzen: az vm update -g group1 -n vm1 -write-accelerator 1=true.

Um einen Datenträger mit Schreibbeschleunigung anzufügen, verwenden Sie az vm disk attach. Dabei können Sie das folgende Beispiel verwenden, wenn Sie Ihre eigenen Werte einsetzen: az vm disk attach -g group1 -vm-name vm1 -disk d1 --enable-write-accelerator.

Um die Schreibbeschleunigung zu deaktivieren, verwenden Sie az vm update und legen die Eigenschaften auf „false“ fest:az vm update -g group1 -n vm1 -write-accelerator 0=false 1=false

Aktivieren der Schreibbeschleunigung mit REST-APIs

Zur Bereitstellung über die Azure-REST-API müssen Sie Azure-ARMClient installieren.

Installieren von ARMClient

Um ARMClient auszuführen, müssen Sie ihn über Chocolatey installieren. Die Installation können Sie über „cmd.exe“ oder PowerShell ausführen. Verwenden Sie erhöhte Berechtigungen für diese Befehle („Als Administrator ausführen“).

Führen Sie mit cmd.exe den folgenden Befehl aus:@"%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"

Führen Sie mit PowerShell den folgenden Befehl aus: Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')).

Jetzt können Sie ARMClient mithilfe des folgenden Befehls in cmd.exe oder PowerShell installieren choco install armclient

Abrufen der aktuellen VM-Konfiguration

Um die Attribute Ihrer Datenträgerkonfiguration zu ändern, müssen Sie zunächst die aktuelle Konfiguration in einer JSON-Datei abrufen. Sie können die aktuelle Konfiguration abrufen, indem Sie den folgenden Befehl ausführen:armclient GET /subscriptions/<<subscription-ID<</resourceGroups/<<ResourceGroup>>/providers/Microsoft.Compute/virtualMachines/<<virtualmachinename>>?api-version=2017-12-01 > <<filename.json>>

Ersetzen Sie die Begriffe in „<<>>“ durch Ihre Daten (einschließlich des Dateinamens, den Sie für die JSON-Datei verwenden möchten).

Die Ausgabe sieht in etwa wie folgt aus:

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

Als Nächstes aktualisieren Sie die JSON-Datei und aktivieren die Schreibbeschleunigung auf dem Datenträger namens „log1“. Dafür können Sie das folgende Attribut nach dem Cacheeintrag des Datenträgers in der JSON-Datei hinzufügen.

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

Aktualisieren Sie anschließend die vorhandene Bereitstellung, indem Sie den folgenden Befehl ausführen:armclient PUT /subscriptions/<<subscription-ID<</resourceGroups/<<ResourceGroup>>/providers/Microsoft.Compute/virtualMachines/<<virtualmachinename>>?api-version=2017-12-01 @<<filename.json>>

Die Ausgabe sollte wie folgt aussehen. Sie können sehen, dass die Schreibbeschleunigung für einen Datenträger aktiviert wurde.

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

Nachdem Sie die Änderung vorgenommen haben, sollte das Laufwerk von der Schreibbeschleunigung unterstützt werden.