Conversión de máquinas virtuales Linux y Windows de SCSI a NVMe

Azure máquinas virtuales (VM) admiten dos interfaces de controlador de almacenamiento: Small Computer System Interface (SCSI) y NVM Express (NVMe). SCSI es un estándar heredado que proporciona conectividad física y transferencia de datos entre equipos y dispositivos periféricos. NVMe proporciona conectividad similar, pero es una interfaz más rápida y eficaz para la transferencia de datos entre servidores y sistemas de almacenamiento.

En este artículo se muestra cómo convertir una máquina virtual de Azure de un controlador de disco SCSI a NVMe mediante Azure Boost y el script de conversión nvMe de Azure. El mismo script y procedimiento se aplican a:

  • Máquinas virtuales Linux y Windows.
  • Máquinas virtuales con o sin discos de datos y un disco temporal.

Azure sigue admitiendo la interfaz SCSI en las ofertas de máquina virtual que proporcionan almacenamiento SCSI. Sin embargo, no todas las nuevas series de máquinas virtuales incluyen SCSI como opción en el futuro.

¿Qué cambia para la máquina virtual?

Cambiar la interfaz de host de SCSI a NVMe no cambia el almacenamiento remoto (disco del sistema operativo ni de discos de datos). Cambia la forma en que el sistema operativo usa los discos.

Disco Máquina virtual SCSI VM NVMe (v5 con disco temporal) VM NVMe (v6)
Disco del sistema operativo /dev/sda /dev/nvme0n1 /dev/nvme0n1
Disco de archivos temporales /dev/sdb /dev/sda /dev/nvme1n1
Primer disco de datos /dev/sdc /dev/nvme0n2 /dev/nvme0n2

La conversión de la máquina virtual de Azure de SCSI a NVMe mediante Azure Boost puede ayudarle a aprovechar al máximo estas mejoras de rendimiento y mantener un perímetro competitivo en el panorama informático en la nube.

Migración de una máquina virtual de SCSI a NVMe

Para migrar de SCSI a NVMe, siga estos pasos generales:

  1. Compruebe que la serie de máquinas virtuales admite NVMe.
  2. Compruebe los requisitos previos del sistema operativo.
  3. Convierta la máquina virtual en NVMe.
  4. Compruebe la conversión.

1. Comprobar si la serie de máquinas virtuales admite NVMe

En la tabla de disponibilidad Azure Boost se enumeran los tamaños de máquina virtual que admiten discos conectados a NVMe.

2. Compruebe los requisitos previos

Asegúrese de que cumple los siguientes requisitos previos antes de empezar:

  • Una suscripción Azure y una máquina virtual que necesita convertir de SCSI a NVMe o de NVMe a SCSI
  • PowerShell y el módulo Az instalados y configurados
  • Permisos adecuados para ejecutar scripts en recursos de Azure

3. Uso

Para ejecutar el script, abra PowerShell como administrador y siga estos pasos:

  1. Instale PowerShell o ejecute el script en Azure Cloud Shell.

Sugerencia

Instale PowerShell mediante la documentación de PowerShell.

  1. Permitir archivos de script de PowerShell sin firmar.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
  1. Conéctese a la cuenta de Azure mediante Connect-AzAccount.
Connect-AzAccount
  1. Asegúrese de que está conectado a la suscripción. Para cambiar la suscripción, use Set-AzContext.
Select-AzSubscription -Subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  1. Descargue el 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"
  1. Ejecute el script de conversión.
.\Azure-NVMe-Conversion.ps1

Note

Si va a convertir entre tamaños de máquina virtual con compatibilidad con discos de recursos diferentes (temporales), la suscripción de Azure debe registrarse para la VMTempDiskResizePreview característica. Si la característica no está registrada, el script se cierra con un error. Registre la característica mediante el comando siguiente, espere 10 minutos para que la aprobación automática surta efecto y vuelva a ejecutar el script.

Register-AzProviderFeature -FeatureName VMTempDiskResizePreview -ProviderNamespace Microsoft.Compute

Example

.\Azure-NVMe-Conversion.ps1 -ResourceGroupName <your-RG> -VMName <your-VMname> -NewControllerType <NVMe/SCSI> -VMSize <new-VM-SKU> -StartVM

El script tiene los parámetros siguientes.

Parámetro Descripción Obligatorio
-ResourceGroupName Nombre del grupo de recursos de la máquina virtual.
-VMName Nombre de la máquina virtual en Azure.
-NewControllerType Tipo de controlador de almacenamiento al que se va a convertir la máquina virtual (NVMe o SCSI).
-VMSize SKU de máquina virtual de Azure a la que se va a convertir la máquina virtual.
-StartVM Inicie la máquina virtual después de la conversión. No
-FixOperatingSystemSettings Corrija automáticamente la configuración del sistema operativo mediante Azure Ejecutar comandos. No
-WriteLogfile Cree un archivo de registro. No
-IgnoreSKUCheck Ignore la comprobación de la SKU de la máquina virtual. No
-IgnoreWindowsVersionCheck Omita la comprobación de la versión de Windows. No
-IgnoreAzureModuleCheck No ejecute la comprobación de los módulos de Azure instalados. No
-IgnoreOSCheck No compruebe la preparación del sistema operativo. La expectativa es que el sistema operativo esté listo. No
-SleepSeconds Tiempo para que Azure aplique los cambios antes de iniciar la máquina virtual. No

Este script lleva a cabo los pasos siguientes:

  1. Valida las versiones del módulo Az, la existencia de máquinas virtuales, el tipo de sistema operativo, la generación, el tipo de controlador actual y la funcionalidad NVMe de la SKU de máquina virtual de destino.
  2. Con -FixOperatingSystemSettings, valida y configura el sistema operativo invitado para NVMe mediante Azure ejecutar comando:
    • En Linux, comprueba que el controlador NVMe está en initrd/initramfs, establece nvme_core.io_timeout=240y comprueba si /etc/fstab hay nombres de dispositivo en desuso.
    • En Windows, configura el stornvme controlador para que se inicie en el arranque (sc.exe config stornvme start=boot).
  3. Detiene y desasigna la máquina virtual.
  4. Actualizaciones supportedCapabilities.diskControllerTypes de SCSI, NVMe en el disco del sistema operativo.
  5. Cambia el tamaño de la máquina virtual a la SKU de destino y establece el tipo de controlador de disco en NVMe.
  6. Inicia la máquina virtual (con -StartVM).

4. Comprobación de la conversión

Confirmación mediante PowerShell

Una vez reiniciada la máquina virtual, confirme que el tipo de controlador de disco cambió correctamente.

$vm = Get-AzVM -ResourceGroupName "<resource-group-name>" -VMName "<vm-name>"
$vm.StorageProfile.DiskControllerType

Comprobación del resultado dentro del invitado

Compruebe los dispositivos mediante el nvme comando . Si falta el nvme comando, instale el nvme-cli paquete.

nvme list

La salida muestra el disco del sistema operativo y los discos de datos.

Sugerencia

Siempre puede volver a SCSI. El script proporciona un comando al final de una ejecución correcta para revertir a la configuración original. Guarde ese comando antes de cerrar la sesión.

Si necesita revertir los cambios, vuelva a ejecutar el script con -NewControllerType SCSI y la SKU original de la máquina virtual:

.\Azure-NVMe-Conversion.ps1 -ResourceGroupName <your-RG> -VMName <your-VMname> -NewControllerType SCSI -VMSize <original-SKU> -StartVM