Włączanie akceleratora zapisu
Dotyczy: ✔️ Maszyny wirtualne z systemem Linux Maszyny ✔️ wirtualne z systemem Windows ✔️ — elastyczne zestawy ✔️ skalowania
Akcelerator zapisu to funkcja dysku dla maszyn wirtualnych serii M na dyskach zarządzanych SSD w warstwie Premium. Jak stwierdza nazwa, celem funkcji jest zwiększenie opóźnienia operacji we/wy zapisu na dyskach SSD w warstwie Premium. 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.
Wymagania wstępne
- Obsługiwane tylko w przypadku dysków zarządzanych SSD w warstwie Premium
- Tylko obsługiwane przez maszyny wirtualne serii M
Planowanie korzystania z akceleratora zapisu
Akcelerator zapisu powinien być używany dla woluminów zawierających dziennik transakcji lub ponownie dzienniki systemu DBMS. Nie należy używać akceleratora zapisu dla woluminów danych systemu DBMS, ponieważ funkcja jest zoptymalizowana pod kątem używania na dyskach dziennika.
Ważne
Włączenie akceleratora zapisu dla dysku systemu operacyjnego maszyny wirtualnej powoduje 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 dyskami systemu 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, które uzyskuje dostęp do dysku platformy Azure, należy zamknąć. Aplikacje bazy danych korzystające z dysku platformy Azure muszą być zamykane.
Aby włączyć lub wyłączyć akcelerator zapisu dla istniejącego woluminu, który jest zbudowany z wielu dysków SSD w warstwie Azure Premium i rozłożone przy użyciu dysków lub menedżerów 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. Zamknij maszynę wirtualną przed włączeniem lub wyłączeniem akceleratora zapisu w takiej konfiguracji.
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 SSD w warstwie Premium platformy Azure 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 dyskach VHD SSD w warstwie Premium platformy Azure.
Włączanie akceleratora zapisu platformy Azure przy użyciu programu Azure PowerShell
Moduł programu 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 SSD w warstwie Premium platformy Azure. 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 używają akceleratora zapisu.
Dodano nowy opcjonalny parametr logiczny (bez wartości null), -OsDiskWriteAccelerator do następujących poleceń cmdlet:
Określ elementy $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
wartości , 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.