Converter VMs Linux e Windows de SCSI para NVMe

Azure VMs (máquinas virtuais) dão suporte a duas interfaces de controlador de armazenamento: SCSI (Small Computer System Interface) e NVM Express (NVMe). O SCSI é um padrão herdado que fornece conectividade física e transferência de dados entre computadores e dispositivos periféricos. O NVMe fornece conectividade semelhante, mas é uma interface mais rápida e eficiente para transferência de dados entre servidores e sistemas de armazenamento.

Este artigo mostra como converter uma VM Azure de um controlador de disco SCSI em NVMe usando Azure Boost e o script de Conversão de NVMe Azure. O mesmo script e procedimento se aplicam a:

  • VMs linux e Windows.
  • VMs com ou sem discos de dados e um disco temporário.

Azure continua a dar suporte à interface SCSI nas ofertas de VM que fornecem armazenamento SCSI. No entanto, nem todas as novas séries de VM incluem SCSI como uma opção daqui para frente.

O que está mudando para sua VM?

Alterar a interface do host de SCSI para NVMe não altera o armazenamento remoto (disco do sistema operacional ou discos de dados). Ele altera a maneira como o sistema operacional usa os discos.

Disk SCSI VM VM NVMe (v5 com disco temporário) VM NVMe (v6)
Disco do sistema operacional /dev/sda /dev/nvme0n1 /dev/nvme0n1
Disco temporário /dev/sdb /dev/sda /dev/nvme1n1
Primeiro disco de dados /dev/sdc /dev/nvme0n2 /dev/nvme0n2

Converter sua VM Azure do SCSI em NVMe usando Azure Boost pode ajudá-lo a aproveitar ao máximo essas melhorias de desempenho e manter uma vantagem competitiva no cenário de computação em nuvem.

Migrar uma VM do SCSI para o NVMe

Para migrar do SCSI para o NVMe, siga estas etapas de alto nível:

  1. Verifique se sua série de VMs dá suporte ao NVMe.
  2. Verifique os pré-requisitos do sistema operacional.
  3. Converta sua VM em NVMe.
  4. Verifique a conversão.

1. Verifique se sua série de máquinas virtuais dá suporte ao NVMe

A tabela de disponibilidade do Azure Boost lista os tamanhos de VM que dão suporte a discos anexados NVMe.

2. Verifique os pré-requisitos

Antes de começar, verifique se você tem os seguintes pré-requisitos:

  • Uma assinatura Azure e uma máquina virtual que você precisa converter de SCSI para NVMe ou de NVMe para SCSI
  • PowerShell e o módulo Az instalado e configurado
  • Permissões apropriadas para executar scripts em recursos de Azure

3. Uso

Para executar o script, abra o PowerShell como administrador e siga estas etapas:

  1. Instale o PowerShell ou execute o script no Azure Cloud Shell.

Dica

Instale o PowerShell usando a documentação do PowerShell.

  1. Permitir arquivos de script do PowerShell sem sinal.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
  1. Conecte-se à sua conta Azure usando Connect-AzAccount.
Connect-AzAccount
  1. Verifique se você está conectado à sua assinatura. Para alterar a assinatura, use Set-AzContext.
Select-AzSubscription -Subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  1. Baixe o 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. Execute o script de conversão.
.\Azure-NVMe-Conversion.ps1

Note

Se você estiver convertendo entre tamanhos de VM com suporte de disco de recurso (temporário) diferente, sua assinatura Azure deverá ser registrada para o VMTempDiskResizePreview recurso. Se o recurso não estiver registrado, o script sairá com um erro. Registre o recurso usando o comando a seguir, aguarde 10 minutos para que a aprovação automática entre em vigor e execute novamente o script.

Register-AzProviderFeature -FeatureName VMTempDiskResizePreview -ProviderNamespace Microsoft.Compute

Exemplo

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

O script tem os seguintes parâmetros.

Parâmetro Descrição Obrigatório
-ResourceGroupName O nome do grupo de recursos para sua VM. Yes
-VMName O nome da sua VM no Azure. Yes
-NewControllerType O tipo de controlador de armazenamento para o qual converter a VM (NVMe ou SCSI). Yes
-VMSize O Azure SKU de VM para o qual converter a VM. Yes
-StartVM Inicie a VM após a conversão. Não
-FixOperatingSystemSettings Corrija automaticamente as configurações do sistema operacional usando Azure Executar Comandos. Não
-WriteLogfile Crie um arquivo de log. Não
-IgnoreSKUCheck Ignore a verificação da SKU da VM. Não
-IgnoreWindowsVersionCheck Ignore a verificação de versão do Windows. Não
-IgnoreAzureModuleCheck Não execute a verificação de módulos Azure instalados. Não
-IgnoreOSCheck Não verifique se o sistema operacional está pronto. A expectativa é que o sistema operacional esteja pronto. Não
-SleepSeconds O tempo para Azure para resolver as alterações antes de iniciar a VM. Não

O script executa as seguintes etapas:

  1. Valida as versões do módulo Az, a existência da VM, o tipo de sistema operacional, a geração, o tipo de controlador atual e a funcionalidade NVMe da SKU de VM de destino.
  2. Com -FixOperatingSystemSettings, valida e configura o sistema operacional convidado para NVMe usando Azure Executar Comando:
    • No Linux, verifica se o driver NVMe está em initrd/initramfs, define nvme_core.io_timeout=240e verifica /etc/fstab se há nomes de dispositivo preteridos.
    • No Windows, configura o stornvme driver para iniciar na inicialização (sc.exe config stornvme start=boot).
  3. Interrompe e desaloca a VM.
  4. Atualizações supportedCapabilities.diskControllerTypes no SCSI, NVMe disco do sistema operacional.
  5. Redimensiona a VM para o SKU de destino e define o tipo de controlador de disco como NVMe.
  6. Inicia a VM (com -StartVM).

4. Verificar a conversão

Confirmar usando o PowerShell

Depois que a VM for reiniciada, confirme se o tipo de controlador de disco foi alterado com êxito.

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

Verificar o resultado dentro do convidado

Verifique os dispositivos usando o nvme comando. Se o nvme comando estiver ausente, instale o nvme-cli pacote.

nvme list

A saída mostra o disco do sistema operacional e os discos de dados.

Dica

Você sempre pode reverter para SCSI. O script fornece um comando no final de uma execução bem-sucedida para reverter para sua configuração original. Salve esse comando antes de fechar a sessão.

Se você precisar reverter, execute novamente o script com -NewControllerType SCSI e a SKU original da VM:

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