Włączanie akceleratora zapisu

Dotyczy: ✔️ Maszyny wirtualne z systemem Linux Maszyny ✔️ wirtualne z systemem Windows ✔️ — elastyczne zestawy ✔️ skalowania

Akcelerator zapisu to funkcja dysków dla maszyn wirtualnych serii M w usłudze Premium Storage z wyłącznie usługą Azure Dyski zarządzane. Jak stwierdza nazwa, celem funkcji jest zwiększenie opóźnienia operacji we/wy zapisu w usłudze Azure Premium Storage. Akcelerator zapisu jest idealnym rozwiązaniem, w którym aktualizacje plików dziennika są wymagane do utrwalania dysku w wysoce wydajny sposób dla nowoczesnych baz danych.

Akcelerator zapisu jest ogólnie dostępny dla maszyn wirtualnych serii M w chmurze publicznej.

Planowanie korzystania z akceleratora zapisu

Akcelerator zapisu powinien być używany dla woluminów zawierających dziennik transakcji lub ponownie dzienniki systemu DBMS. Nie zaleca się używania akceleratora zapisu dla woluminów danych systemu DBMS, ponieważ funkcja została zoptymalizowana pod kątem używania na dyskach dziennika.

Akcelerator zapisu działa tylko w połączeniu z dyskami zarządzanymi platformy Azure.

Ważne

Włączenie akceleratora zapisu dla dysku systemu operacyjnego maszyny wirtualnej spowoduje ponowne uruchomienie maszyny wirtualnej.

Aby włączyć akcelerator zapisu na istniejącym dysku platformy Azure, który nie jest częścią woluminu kompilacji z wielu dysków z systemem Windows lub menedżerami woluminów, windows Miejsca do magazynowania, serwer plików skalowalny w poziomie systemu Windows (SOFS), Linux LVM lub MDADM, obciążenie uzyskiwania dostępu do dysku platformy Azure musi zostać zamknięte. Aplikacje bazy danych korzystające z dysku platformy Azure muszą być zamykane.

Jeśli chcesz włączyć lub wyłączyć akcelerator zapisu dla istniejącego woluminu, który jest zbudowany z wielu dysków usługi Azure Premium Storage i rozłożone przy użyciu menedżerów dysków lub woluminów systemu Windows, Windows Miejsca do magazynowania, serwera plików skalowalnego w poziomie systemu Windows (SOFS), systemu Linux LVM lub MDADM, wszystkie dyski tworzące wolumin muszą być włączone lub wyłączone dla akceleratora zapisu w oddzielnych krokach. Przed włączeniem lub wyłączeniem akceleratora zapisu w takiej konfiguracji zamknij maszynę wirtualną platformy Azure.

Włączenie akceleratora zapisu dla dysków systemu operacyjnego nie powinno być konieczne w przypadku konfiguracji maszyn wirtualnych związanych z oprogramowaniem SAP.

Ograniczenia w przypadku korzystania z akceleratora zapisu

W przypadku korzystania z akceleratora zapisu dla dysku platformy Azure/dysku VHD obowiązują następujące ograniczenia:

  • Buforowanie dysku w warstwie Premium musi być ustawione na wartość "Brak" lub "Tylko do odczytu". Wszystkie inne tryby buforowania nie są obsługiwane.
  • Migawki są obecnie obsługiwane tylko dla dysków danych z włączoną akceleratorem zapisu, a nie dysku systemu operacyjnego. Podczas tworzenia kopii zapasowej usługa Azure Backup automatycznie wykonuje kopię zapasową i chroni dyski danych z obsługą akceleratora zapisu dołączone do maszyny wirtualnej.
  • Tylko mniejsze rozmiary we/wy (<=64 KiB) przyjmują przyspieszoną ścieżkę. W sytuacjach obciążeń, w których dane są ładowane zbiorczo lub gdy bufory dziennika transakcji różnych systemów DBMS są wypełniane w większym stopniu przed utrwalone w magazynie, istnieje prawdopodobieństwo, że operacje we/wy zapisane na dysku nie przyjmują przyspieszonej ścieżki.

Istnieją limity dysków VHD usługi Azure Premium Storage na maszynę wirtualną, które mogą być obsługiwane przez akcelerator zapisu. Bieżące limity to:

Jednostka SKU maszyny wirtualnej Liczba dysków akceleratora zapisu Operacje we/wy zapisu na sekundę dysku akceleratora na maszynę wirtualną
M416ms_v2, M416s_8_v2, M416s_v2 16 20000
M208ms_v2, M208s_v2 8 10 000
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 10 000
M32ms, M32ls, M32ts, M32s, M32dms_v2, M32ms_v2 100 5000
M16ms, M16s 2 2500
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 100 5000
Standard_M96s_1_v3, Standard_M96ds_1_v3, Standard_M96s_2_v3, Standard_M96ds_2_v3 8 10 000
Standard_M176s_3_v3, Standard_M176ds_3_v3, Standard_M176s_4_v3, Standard_M176ds_4_v3 16 20000

Limity liczby operacji we/wy na sekundę są na maszynę wirtualną, a nie na dysk. Wszystkie dyski akceleratora zapisu współdzielą ten sam limit liczby operacji we/wy na sekundę na maszynę wirtualną. Dołączone dyski nie mogą przekraczać limitu liczby operacji we/wy na sekundę akceleratora zapisu dla maszyny wirtualnej. Na przykład, mimo że dołączone dyski mogą wykonać 30 000 operacji we/wy na sekundę, system nie zezwala dyskom na przekroczenie 20 000 operacji we/wy na sekundę dla M416ms_v2.

Włączanie akceleratora zapisu na określonym dysku

W kilku następnych sekcjach opisano sposób włączania akceleratora zapisu na wirtualnych dyskach twardych usługi Azure Premium Storage.

Wymagania wstępne

Następujące wymagania wstępne dotyczą użycia akceleratora zapisu w tym momencie:

Włączanie akceleratora zapisu platformy Azure przy użyciu programu Azure PowerShell

Moduł Azure PowerShell w wersji 5.5.0 zawiera zmiany odpowiednich poleceń cmdlet w celu włączenia lub wyłączenia akceleratora zapisu dla określonych dysków usługi Azure Premium Storage. Aby włączyć lub wdrożyć dyski obsługiwane przez akcelerator zapisu, następujące polecenia programu PowerShell zostały zmienione i rozszerzone w celu zaakceptowania parametru dla akceleratora zapisu.

Nowy parametr przełącznika -WriteAccelerator został dodany do następujących poleceń cmdlet:

Uwaga

W przypadku włączenia akceleratora zapisu w zestawach skalowania maszyn wirtualnych przy użyciu trybu elastycznej aranżacji należy włączyć go w każdym wystąpieniu.

Parametr nie nadaje właściwości false i wdraża dyski, które nie obsługują akceleratora zapisu.

Nowy parametr przełącznika -OsDiskWriteAccelerator został dodany do następujących poleceń cmdlet:

Nie określa parametru ustawia właściwość na wartość false domyślnie, zwracając dyski, które nie korzystają z akceleratora zapisu.

Dodano nowy opcjonalny parametr logiczny (bez wartości null), -OsDiskWriteAccelerator do następujących poleceń cmdlet:

Określ $true lub $false, aby kontrolować obsługę akceleratora zapisu platformy Azure za pomocą dysków.

Przykłady poleceń mogą wyglądać następująco:

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

Dwa główne scenariusze można wykonywać skrypty, jak pokazano w poniższych sekcjach.

Dodawanie nowego dysku obsługiwanego przez akcelerator zapisu przy użyciu programu PowerShell

Możesz użyć tego skryptu, aby dodać nowy dysk do maszyny wirtualnej. Dysk utworzony za pomocą tego skryptu używa akceleratora zapisu.

Zastąp myVMwartości , myWAVMs, , log001rozmiar dysku i identyfikator LunID dysku wartościami odpowiednimi dla określonego wdrożenia.

# 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

Włączanie akceleratora zapisu na istniejącym dysku platformy Azure przy użyciu programu PowerShell

Ten skrypt umożliwia włączenie akceleratora zapisu na istniejącym dysku. Zastąp myVMwartości , myWAVMsi test-log001 odpowiednimi dla danego wdrożenia. Skrypt dodaje akcelerator zapisu do istniejącego dysku, na którym wartość $newstatus jest ustawiona na "$true". Użycie wartości "$false" spowoduje wyłączenie akceleratora zapisu na danym dysku.

#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

Uwaga

Wykonanie powyższego skryptu spowoduje odłączenie określonego dysku, włączenie akceleratora zapisu na dysku, a następnie ponowne dołączenie dysku

Włączanie akceleratora zapisu platformy Azure przy użyciu witryny Azure Portal

Akcelerator zapisu można włączyć za pośrednictwem portalu, w którym określisz ustawienia buforowania dysku:

Akcelerator zapisu w witrynie Azure Portal

Włączanie akceleratora zapisu platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure

Aby włączyć akcelerator zapisu, możesz użyć interfejsu wiersza polecenia platformy Azure.

Aby włączyć akcelerator zapisu na istniejącym dysku, użyj polecenia az vm update, możesz użyć następujących przykładów, jeśli zastąpisz diskName, VMName i ResourceGroup własnymi wartościami: az vm update -g group1 -n vm1 -write-accelerator 1=true

Aby dołączyć dysk z włączonym akceleratorem zapisu, użyj polecenia az vm disk attach, możesz użyć następującego przykładu, jeśli zastąpisz własne wartości: az vm disk attach -g group1 -vm-name vm1 -disk d1 --enable-write-accelerator

Aby wyłączyć akcelerator zapisu, użyj polecenia az vm update, ustawiając właściwości na false: az vm update -g group1 -n vm1 -write-accelerator 0=false 1=false

Włączanie akceleratora zapisu przy użyciu interfejsów API REST

Aby wdrożyć za pomocą interfejsu API REST platformy Azure, musisz zainstalować klienta armclient platformy Azure.

Instalowanie klienta armclient

Aby uruchomić aplikację armclient, musisz zainstalować ją za pośrednictwem aplikacji Chocolatey. Można go zainstalować za pomocą cmd.exe lub programu PowerShell. Użyj praw z podwyższonym poziomem uprawnień dla tych poleceń ("Uruchom jako Administracja istrator").

Przy użyciu cmd.exe uruchom następujące polecenie: @"%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"

Za pomocą programu PowerShell uruchom następujące polecenie: Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

Teraz możesz zainstalować klienta armclient przy użyciu następującego polecenia w cmd.exe lub programie PowerShell choco install armclient

Pobieranie bieżącej konfiguracji maszyny wirtualnej

Aby zmienić atrybuty konfiguracji dysku, należy najpierw pobrać bieżącą konfigurację w pliku JSON. Bieżącą konfigurację można uzyskać, wykonując następujące polecenie: armclient GET /subscriptions/<<subscription-ID<</resourceGroups/<<ResourceGroup>>/providers/Microsoft.Compute/virtualMachines/<<virtualmachinename>>?api-version=2017-12-01 > <<filename.json>>

Zastąp terminy w ciągu "<<>>" danymi, w tym nazwę pliku JSON.

Dane wyjściowe mogą wyglądać następująco:

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

Następnie zaktualizuj plik JSON i włącz akcelerator zapisu na dysku o nazwie "log1". Można to osiągnąć, dodając ten atrybut do pliku JSON po wpisie pamięci podręcznej dysku.

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

Następnie zaktualizuj istniejące wdrożenie za pomocą tego polecenia: armclient PUT /subscriptions/<<subscription-ID<</resourceGroups/<<ResourceGroup>>/providers/Microsoft.Compute/virtualMachines/<<virtualmachinename>>?api-version=2017-12-01 @<<filename.json>>

Dane wyjściowe powinny wyglądać podobnie do poniższego. Widać, że akcelerator zapisu jest włączony dla jednego dysku.

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

Po wprowadzeniu tej zmiany dysk powinien być obsługiwany przez akcelerator zapisu.