Abilitare l'acceleratore di scrittura
Si applica a: ✔️ macchine virtuali Linux ✔️ macchine virtuali Windows ✔️ set di scalabilità flessibili ✔️ set di scalabilità uniformi
L'acceleratore di scrittura è una funzionalità del disco per le Macchine virtuali serie M in dischi gestiti SSD Premium. Come indica il nome, lo scopo della funzionalità è migliorare la latenza di I/O delle scritture su dischi SSD Premium. L'acceleratore di scrittura è la soluzione ideale quando gli aggiornamenti dei file di log devono persistere nel disco in modo altamente efficiente per i database moderni.
L'acceleratore di scrittura è disponibile a livello generale per le macchine virtuali di serie M nel cloud pubblico.
Prerequisiti
- Supportato solo con dischi gestiti SSD Premium
- Supportato solo dalle macchine virtuali serie M
Pianificazione per l'uso dell'acceleratore di scrittura
L'acceleratore di scrittura deve essere usato per i volumi che contengono il log delle transazioni o i log di ripristino di un DBMS. Non è consigliabile usare l'acceleratore di scrittura per i volumi di dati di un DBMS perché la funzionalità è ottimizzata per l'uso su dischi di log.
Importante
L'abilitazione dell'acceleratore di scrittura per il disco del sistema operativo della macchina virtuale riavvia la macchina virtuale.
Per abilitare l'acceleratore di scrittura in un disco di Azure esistente che non fa parte di un volume compilato da più dischi con dischi o gestioni volumi di Windows, Windows Spazi di archiviazione, file server di scalabilità orizzontale Windows (SOFS), Linux LVM o MDADM, è necessario arrestare il carico di lavoro che accede al disco di Azure. Le applicazioni di database che usano il disco di Azure devono essere arrestate.
Per abilitare o disabilitare l'acceleratore di scrittura per un volume esistente costruito su più dischi SSD Premium di Azure e con striping usando i gestori di dischi o volumi di Windows, Windows Spazi di archiviazione, file server di scalabilità orizzontale Windows,Linux LVM o MDADM, tutti i dischi che creano il volume devono essere abilitati o disabilitati per l'acceleratore di scrittura in passaggi separati. Arrestare la macchina virtuale prima di abilitare o disabilitare l'acceleratore di scrittura in una configurazione di questo tipo.
L'abilitazione dell'acceleratore di scrittura per i dischi del sistema operativo non deve essere necessaria per le configurazioni di VM correlate a SAP.
Restrizioni per l'uso dell'acceleratore di scrittura
Quando si usa l'acceleratore di scrittura per dischi o dischi rigidi virtuali di Azure, si applicano queste restrizioni:
- La memorizzazione nella cache del disco Premium deve essere impostata su 'Nessuna' o 'Sola lettura'. Tutte le altre modalità di memorizzazione nella cache non sono supportate.
- Gli snapshot sono attualmente supportati solo per i dischi dati abilitati per l'acceleratore di scrittura e non per il disco del sistema operativo. Durante il backup, il servizio Backup di Azure esegue automaticamente il backup e protegge i dischi dati abilitati per l'acceleratore di scrittura collegati alla macchina virtuale.
- Solo le dimensioni di I/O inferiori (<=64 KiB) stanno prendendo il percorso accelerato. In scenari di carichi di lavoro dove i dati vengono caricati in blocco oppure dove i buffer dei log delle transazioni di diversi sistemi di gestione di database vengono popolati con quantità rilevanti di dati prima di venire salvati in modo permanente nella risorsa di archiviazione, è possibile che l'I/O scritto su disco non usi il percorso dell'acceleratore.
Esistono limiti dei dischi SSD Premium di Azure per ogni macchina virtuale che possono essere supportati dall'acceleratore di scrittura. I limiti correnti sono:
SKU di VM | Numero di dischi dell'acceleratore di scrittura | Operazioni di I/O al secondo del disco dell'acceleratore di scrittura per macchina virtuale |
---|---|---|
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 | 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 | 4 | 5000 |
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 |
I limiti di operazioni di I/O al secondo sono per ogni macchina virtuale e non per ogni disco. Tutti i dischi dell'acceleratore di scrittura condividono lo stesso limite di operazioni di I/O al secondo per ogni macchina virtuale. I dischi collegati non possono superare il limite di operazioni di I/O al secondo dell'acceleratore di scrittura per una macchina virtuale. Per un esempio, anche se i dischi collegati possono eseguire 30.000 operazioni di I/O al secondo, il sistema non consente ai dischi di superare 20.000 operazioni di I/O al secondo per M416ms_v2.
Abilitazione dell'acceleratore di scrittura per un disco specifico
Le sezioni successive descrivono come abilitare l'acceleratore di scrittura nei dischi rigidi virtuali SSD Premium di Azure.
Abilitazione dell'acceleratore di scrittura di Azure con Azure PowerShell
Il modulo Azure PowerShell della versione 5.5.0 include le modifiche apportate ai cmdlet pertinenti per abilitare o disabilitare l'acceleratore di scrittura per dischi SSD Premium di Azure specifici. Per abilitare o distribuire dischi supportati dall'acceleratore di scrittura, sono stati modificati i comandi di PowerShell seguenti ed è stato esteso per accettare un parametro per l'acceleratore di scrittura.
È stato aggiunto il nuovo parametro opzionale -WriteAccelerator ai cmdlet seguenti:
Nota
Se si abilita l'acceleratore di scrittura in set di scalabilità di macchine virtuali usando la modalità di orchestrazione flessibile, è necessario abilitarlo in ogni singola istanza.
Se non si assegna il parametro, la proprietà viene impostata su false e verranno distribuiti dischi senza supporto dell'acceleratore di scrittura.
È stato aggiunto il nuovo parametro opzionale -OsDiskWriteAccelerator ai cmdlet seguenti:
Se non si specifica il parametro, la proprietà viene impostata su false per impostazione predefinita, restituendo dischi che non usano l'acceleratore di scrittura.
È stato aggiunto il nuovo parametro booleano facoltativo (non nullable) -OsDiskWriteAccelerator ai cmdlet seguenti:
$true
Specificare o $false
per controllare il supporto dell'acceleratore di scrittura di Azure con i dischi.
Ecco alcuni esempi di comandi:
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
È possibile creare script per due scenari principali, come illustrato nelle sezioni seguenti.
Aggiunta di un nuovo disco supportato dall'acceleratore di scrittura tramite PowerShell
È possibile usare questo script per aggiungere un nuovo disco alla macchina virtuale. Il disco creato con questo script usa l'acceleratore di scrittura.
Sostituire myVM
, myWAVMs
, log001
, dimensioni del disco e LunID del disco con i valori appropriati per la specifica distribuzione.
# 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
Abilitazione dell'acceleratore di scrittura per un disco di Azure esistente con PowerShell
Questo script può essere utilizzato per abilitare l'acceleratore di scrittura per un disco esistente. Sostituire myVM
, myWAVMs
e test-log001
con i valori appropriati per la specifica distribuzione. Lo script aggiunge l'acceleratore di scrittura a un disco esistente in cui il valore $newstatus è impostato su '$true'. L'uso del valore '$false' disabiliterà l'acceleratore di scrittura per il disco specificato.
#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
Nota
L'esecuzione dello script precedente consente di scollegare il disco specificato, abilitare l'acceleratore di scrittura per il disco e quindi di ricollegare il disco.
Abilitazione dell'acceleratore di scrittura con il portale di Azure
È possibile abilitare l'acceleratore di scrittura tramite il portale, dove si specificano le impostazioni di memorizzazione nella cache del disco:
Abilitazione dell'acceleratore di scrittura con l'interfaccia della riga di comando di Azure
È possibile usare l'interfaccia della riga di comando di Azure per abilitare l'acceleratore di scrittura.
Per abilitare l'acceleratore di scrittura in un disco esistente, usare az vm update, è possibile usare gli esempi seguenti se si sostituisce diskName
, VMName
e ResourceGroup
con i propri valori: az vm update -g group1 -n vm1 -write-accelerator 1=true
Per collegare un disco con l'acceleratore di scrittura abilitato, usare az vm disk attach, è possibile usare l'esempio seguente se si sostituisce nei propri valori: az vm disk attach -g group1 -vm-name vm1 -disk d1 --enable-write-accelerator
Per disabilitare l'acceleratore di scrittura, usare az vm update impostando le proprietà su false: az vm update -g group1 -n vm1 -write-accelerator 0=false 1=false
Abilitazione dell'acceleratore di scrittura con le API REST
Per eseguire la distribuzione tramite l'API REST di Azure, è necessario installare Azure armclient.
Installare ARMClient
Per eseguire ARMClient, è necessario installarlo tramite Chocolatey. È possibile installarlo tramite cmd.exe o PowerShell. Usare diritti elevati per questi comandi ("Esegui come amministratore").
Se si usa cmd.exe eseguire il comando seguente: @"%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"
Usando PowerShell, eseguire il comando seguente: Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
A questo punto è possibile installare l'armclient usando il comando seguente in cmd.exe o PowerShell choco install armclient
Ottenere la configurazione corrente della macchina virtuale
Per modificare gli attributi della configurazione del disco, è prima di tutto necessario ottenere la configurazione corrente in un file JSON. È possibile ottenere la configurazione corrente eseguendo il comando seguente: armclient GET /subscriptions/<<subscription-ID<</resourceGroups/<<ResourceGroup>>/providers/Microsoft.Compute/virtualMachines/<<virtualmachinename>>?api-version=2017-12-01 > <<filename.json>>
Sostituire i termini all'interno di "<<>>" con i dati, incluso il nome del file JSON.
L'output potrebbe essere simile al seguente:
{
"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"
Il passaggio successivo include l'aggiornamento del file JSON e l'abilitazione dell'acceleratore di scrittura nel disco denominato 'log1'. Questo passaggio può essere eseguito aggiungendo l'attributo nel file JSON dopo la voce della cache del disco.
{
"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
}
Aggiornare quindi la distribuzione esistente con questo comando: armclient PUT /subscriptions/<<subscription-ID<</resourceGroups/<<ResourceGroup>>/providers/Microsoft.Compute/virtualMachines/<<virtualmachinename>>?api-version=2017-12-01 @<<filename.json>>
L'output dovrebbe essere simile al seguente. È possibile notare che l'acceleratore di scrittura è abilitato per un disco.
{
"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"
Una volta terminata la modifica, l'unità sarà supportata dall'acceleratore di scrittura.