Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure macchine virtuali supportano due interfacce del controller di archiviazione: Small Computer System Interface (SCSI) e NVM Express (NVMe). SCSI è uno standard legacy che fornisce connettività fisica e trasferimento di dati tra computer e dispositivi periferici. NVMe offre connettività simile, ma è un'interfaccia più veloce ed efficiente per il trasferimento dei dati tra server e sistemi di archiviazione.
Questo articolo illustra come convertire una macchina virtuale Azure da un controller disco SCSI a NVMe usando Azure Boost e lo script di conversione NVMe Azure. Lo stesso script e procedura si applicano a:
- Macchine virtuali Linux e Windows.
- Macchine virtuali con o senza dischi dati e un disco temporaneo.
Azure continua a supportare l'interfaccia SCSI nelle offerte di macchine virtuali che forniscono l'archiviazione SCSI. Tuttavia, non tutte le nuove serie di macchine virtuali includono SCSI come opzione in futuro.
Cosa cambia per la macchina virtuale?
La modifica dell'interfaccia host da SCSI a NVMe non modifica l'archiviazione remota (disco del sistema operativo o dischi dati). Cambia il modo in cui il sistema operativo usa i dischi.
| Disco | SCSI VM | VM NVMe (v5 con disco temporaneo) | VM NVMe (v6) |
|---|---|---|---|
| Disco del sistema operativo | /dev/sda | /dev/nvme0n1 | /dev/nvme0n1 |
| Disco temporaneo | /dev/sdb | /dev/sda | /dev/nvme1n1 |
| Primo disco dati | /dev/sdc | /dev/nvme0n2 | /dev/nvme0n2 |
La conversione della macchina virtuale Azure da SCSI a NVMe usando Azure Boost consente di sfruttare appieno questi miglioramenti delle prestazioni e mantenere un vantaggio competitivo nel panorama del cloud computing.
Eseguire la migrazione di una macchina virtuale da SCSI a NVMe
Per eseguire la migrazione da SCSI a NVMe, seguire questa procedura generale:
- Verificare che la serie di macchine virtuali supporti NVMe.
- Controllare i prerequisiti per il sistema operativo.
- Convertire la macchina virtuale in NVMe.
- Verificare la conversione.
1. Controllare se la serie di macchine virtuali supporta NVMe
La tabella di disponibilità Azure Boost elenca le dimensioni delle macchine virtuali che supportano i dischi collegati NVMe.
2. Controllare i prerequisiti
Prima di iniziare, verificare di aver soddisfatto i prerequisiti seguenti:
- Una sottoscrizione Azure e una macchina virtuale da convertire da SCSI a NVMe o da NVMe a SCSI
- PowerShell e il modulo Az installati e configurati
- Autorizzazioni appropriate per l'esecuzione di script nelle risorse di Azure
3. Utilizzo
Per eseguire lo script, aprire PowerShell come amministratore e seguire questa procedura:
- Installare PowerShell o eseguire lo script in Azure Cloud Shell.
Suggerimento
Installare PowerShell usando la documentazione di PowerShell.
- Consenti file di script di PowerShell non firmati.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
- Connettersi all'account Azure usando
Connect-AzAccount.
Connect-AzAccount
- Assicurarsi di essere connessi alla sottoscrizione. Per modificare la sottoscrizione, usare
Set-AzContext.
Select-AzSubscription -Subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- Scaricare lo script.
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/refs/heads/main/Azure-NVMe-Utils/Azure-NVMe-Conversion.ps1" -OutFile ".\Azure-NVMe-Conversion.ps1"
- Eseguire lo script di conversione.
.\Azure-NVMe-Conversion.ps1
Annotazioni
Se si esegue la conversione tra le dimensioni delle macchine virtuali con supporto di risorse (temporanee) diverse, è necessario registrare la sottoscrizione Azure per la VMTempDiskResizePreview funzionalità. Se la funzionalità non è registrata, lo script viene chiuso con un errore. Registrare la funzionalità usando il comando seguente, attendere 10 minuti per rendere effettiva l'approvazione automatica e quindi eseguire di nuovo lo script.
Register-AzProviderFeature -FeatureName VMTempDiskResizePreview -ProviderNamespace Microsoft.Compute
Esempio
.\Azure-NVMe-Conversion.ps1 -ResourceGroupName <your-RG> -VMName <your-VMname> -NewControllerType <NVMe/SCSI> -VMSize <new-VM-SKU> -StartVM
Lo script ha i parametri seguenti.
| Parametro | Descrizione | Obbligatorio |
|---|---|---|
-ResourceGroupName |
Nome del gruppo di risorse per la macchina virtuale. | Sì |
-VMName |
Nome della macchina virtuale in Azure. | Sì |
-NewControllerType |
Tipo di controller di archiviazione per convertire la macchina virtuale in (NVMe o SCSI). | Sì |
-VMSize |
SKU della macchina virtuale Azure in cui convertire la macchina virtuale. | Sì |
-StartVM |
Avviare la macchina virtuale dopo la conversione. | NO |
-FixOperatingSystemSettings |
Correggere automaticamente le impostazioni del sistema operativo usando Azure Esegui comandi. | NO |
-WriteLogfile |
Creare un file di log. | NO |
-IgnoreSKUCheck |
Ignora il controllo dello SKU della VM. | NO |
-IgnoreWindowsVersionCheck |
Ignorare il controllo della versione Windows. | NO |
-IgnoreAzureModuleCheck |
Non eseguire il controllo dei moduli Azure installati. | NO |
-IgnoreOSCheck |
Non verificare la disponibilità del sistema operativo. Si prevede che il sistema operativo sia pronto. | NO |
-SleepSeconds |
Tempo necessario per Azure risolvere le modifiche prima di avviare la macchina virtuale. | NO |
Lo script esegue le operazioni seguenti:
- Convalida le versioni del modulo Az, l'esistenza della macchina virtuale, il tipo di sistema operativo, la generazione, il tipo di controller corrente e la funzionalità NVMe dello SKU della macchina virtuale di destinazione.
- Con
-FixOperatingSystemSettings, convalida e configura il sistema operativo guest per NVMe usando Azure comando Esegui:- In Linux verifica che il driver NVMe sia in
initrd/initramfs, impostanvme_core.io_timeout=240e verifica la/etc/fstabpresenza di nomi di dispositivo deprecati. - In Windows configura il driver da avviare all'avvio
stornvme(sc.exe config stornvme start=boot).
- In Linux verifica che il driver NVMe sia in
- Arresta e dealloca la macchina virtuale.
- Aggiornamenti
supportedCapabilities.diskControllerTypesaSCSI, NVMenel disco del sistema operativo. - Ridimensiona la macchina virtuale nello SKU di destinazione e imposta il tipo di controller del disco su NVMe.
- Avvia la macchina virtuale (con
-StartVM).
4. Verificare la conversione
Confermare con PowerShell
Dopo il riavvio della macchina virtuale, verificare che il tipo di controller del disco sia stato modificato correttamente.
$vm = Get-AzVM -ResourceGroupName "<resource-group-name>" -VMName "<vm-name>"
$vm.StorageProfile.DiskControllerType
Controllare il risultato all'interno del guest
Controllare i dispositivi usando il nvme comando . Se il nvme comando non è presente, installare il nvme-cli pacchetto.
nvme list
L'output mostra il disco del sistema operativo e i dischi dati.
Suggerimento
È sempre possibile ripristinare SCSI. Lo script fornisce un comando alla fine di un'esecuzione riuscita per ripristinare la configurazione originale. Salvare il comando prima di chiudere la sessione.
Se è necessario eseguire il rollback, eseguire di nuovo lo script con -NewControllerType SCSI e lo SKU originale della macchina virtuale:
.\Azure-NVMe-Conversion.ps1 -ResourceGroupName <your-RG> -VMName <your-VMname> -NewControllerType SCSI -VMSize <original-SKU> -StartVM