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 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:
- Dyski, które chcesz zastosować akcelerator zapisu platformy Azure, muszą być dyskami zarządzanymi platformy Azure w usłudze Premium Storage.
- Musisz używać maszyny wirtualnej serii M
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 myVM
wartości , myWAVMs
, , log001
rozmiar 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 myVM
wartości , myWAVMs
i 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:
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 administrator").
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.