Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
As máquinas virtuais (VMs) do Azure suportam duas interfaces de controlador de armazenamento: Small Computer System Interface (SCSI) e NVM Express (NVMe). O SCSI é um padrão legado que fornece conectividade física e transferência de dados entre computadores e dispositivos periféricos. O NVMe oferece conectividade semelhante, mas é uma interface mais rápida e eficiente para a transferência de dados entre servidores e sistemas de armazenamento.
Este artigo mostra-lhe como converter uma VM Azure de um controlador de disco SCSI para NVMe usando o Azure Boost e o script de conversão NVMe do Azure. O mesmo script e procedimento aplicam-se a:
- Máquinas virtuais Linux e Windows.
- VMs com ou sem discos de dados e um disco temporário.
O Azure continua a suportar a interface SCSI nas ofertas de VM que fornecem armazenamento SCSI. No entanto, nem todas as novas séries VM incluem SCSI como opção daqui para a frente.
O que está a mudar para a sua máquina virtual?
Mudar a interface do host de SCSI para NVMe não altera o armazenamento remoto (disco do sistema operativo ou discos de dados). Muda a forma como o sistema operativo utiliza os discos.
| Disk | SCSI VM | VM NVMe (v5 com disco temporário) | NVMe VM (v6) |
|---|---|---|---|
| Disco do sistema operativo | /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 a sua VM Azure de SCSI para NVMe utilizando o Azure Boost pode ajudá-lo a tirar pleno proveito destas melhorias de desempenho e a manter uma vantagem competitiva no panorama da computação em nuvem.
Migrar uma VM de SCSI para NVMe
Para migrar de SCSI para NVMe, siga estes passos de alto nível:
- Verifica se a tua série VM suporta NVMe.
- Verifica os pré-requisitos para o teu sistema operativo.
- Converte a sua VM para NVMe.
- Verifica a conversão.
Note
VMs personalizadas que executam software de terceiros capaz de modificar comportamentos de arranque, drivers de armazenamento, drivers de filtro ou enumeração de discos não são atualmente um cenário de migração suportado. Exemplos incluem certos produtos de backup, segurança, proteção de endpoints e gestão de armazenamento. Para estas configurações, o Suporte do Azure pode ter capacidade limitada para diagnosticar ou remediar falhas de migração. Teste a conversão numa VM representativa não de produção antes de avançar com cargas de trabalho de produção.
1. Verifique se a sua série de máquinas virtuais suporta NVMe
A tabela de disponibilidade do Azure Boost lista os tamanhos das VMs que suportam discos ligados ao NVMe.
2. Verifique os pré-requisitos
Antes de começar, certifique-se de que tem os seguintes pré-requisitos:
- Uma subscrição do Azure e uma máquina virtual que precisas de converter de SCSI para NVMe ou de NVMe para SCSI
- PowerShell e o módulo Az instalados e configurados
- Permissões apropriadas para executar scripts em recursos do Azure
3. Utilização
Para executar o script, abra o PowerShell como administrador e siga estes passos:
- Instale o PowerShell ou execute o script no Azure Cloud Shell.
Sugestão
Instale o PowerShell usando a documentação do PowerShell.
- Permitir ficheiros de scripts PowerShell não assinados.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
- Ligue-se à sua conta Azure usando
Connect-AzAccount.
Connect-AzAccount
- Certifica-te de que estás ligado à tua subscrição. Para alterar a subscrição, use
Set-AzContext.
Select-AzSubscription -Subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- Descarrega 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"
- Executa o script de conversão.
.\Azure-NVMe-Conversion.ps1
Note
Se estiveres a converter entre tamanhos de VM com suporte a diferentes recursos (temporários) para discos, a tua subscrição do Azure tem de estar registada para a VMTempDiskResizePreview funcionalidade. Se a funcionalidade não estiver registada, o script sai com um erro. Registe a funcionalidade usando o seguinte comando, aguarde 10 minutos até que a aprovação automática entre em vigor e depois volte a executar o 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
O script tem os seguintes parâmetros.
| Parâmetro | Descrição | Obrigatório |
|---|---|---|
-ResourceGroupName |
O nome do grupo de recursos para a 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 SKU da VM do Azure para o qual converter a VM. | Yes |
-StartVM |
Inicia a VM após a conversão. | Não |
-FixOperatingSystemSettings |
Corrige automaticamente as definições do sistema operativo usando os Comandos de Execução do Azure. | Não |
-WriteLogfile |
Cria um ficheiro de registo. | Não |
-IgnoreSKUCheck |
Ignora a verificação do SKU VM. | Não |
-IgnoreWindowsVersionCheck |
Ignora a verificação de versões do Windows. | Não |
-IgnoreAzureModuleCheck |
Não faças a verificação dos módulos Azure instalados. | Não |
-IgnoreOSCheck |
Não verifiquem a prontidão do sistema operativo. A expectativa é que o sistema operativo esteja pronto. | Não |
-SleepSeconds |
O tempo para o Azure resolver alterações antes de iniciar a VM. | Não |
O script executa as seguintes etapas:
- Valida as versões do módulo Az (AZ), existência da VM, tipo de sistema operativo, geração, tipo atual de controlador e capacidade NVMe do SKU VM alvo.
- Com
-FixOperatingSystemSettings, valida e configura o sistema operativo convidado para NVMe usando o Azure Run Command:- No sistema Linux, verifica se o controlador NVMe está em
initrd/initramfs, definenvme_core.io_timeout=240e verifica em/etc/fstaba existência de nomes de dispositivos obsoletos. - No Windows, configura o controlador
stornvmepara ser iniciado no arranque (sc.exe config stornvme start=boot).
- No sistema Linux, verifica se o controlador NVMe está em
- Para e desaloca a VM.
- Atualiza
supportedCapabilities.diskControllerTypesparaSCSI, NVMeno disco do sistema operativo. - Redimensiona a VM para o SKU alvo e define o tipo de controlador de disco para NVMe.
- Inicia a VM (com
-StartVM).
4. Verificar a conversão
Confirma usando o PowerShell
Depois de a VM reiniciar, confirme que o tipo de controlador de disco foi alterado com sucesso.
$vm = Get-AzVM -ResourceGroupName "<resource-group-name>" -VMName "<vm-name>"
$vm.StorageProfile.DiskControllerType
Verifique o resultado no sistema convidado
Verifica os dispositivos usando o nvme comando. Se o nvme comando estiver em falta, instala o nvme-cli pacote.
nvme list
A saída mostra o disco do sistema operativo e os discos de dados.
Sugestão
Podes sempre voltar para SCSI. O script fornece um comando no final de uma execução bem-sucedida para reverter à sua configuração original. Guarda esse comando antes de fechares a sessão.
Se precisar de reverter, execute novamente o script com -NewControllerType SCSI e o SKU original da VM:
.\Azure-NVMe-Conversion.ps1 -ResourceGroupName <your-RG> -VMName <your-VMname> -NewControllerType SCSI -VMSize <original-SKU> -StartVM