Este artigo aborda algumas perguntas comuns sobre o suporte para discos NVMe (NVM Express) remotos em VMs (máquinas virtuais) criadas no Azure.
Quais são os pré-requisitos para habilitar a interface NVMe remota na minha VM?
O DiskControllerTypes valor é definido durante a configuração da VM e é determinado pelo tamanho da VM selecionado como NVMe ou SCSI (Small Computer System Interface). Se você não especificar um valor DiskControllerTypes, a plataforma escolherá automaticamente o controlador padrão com base na configuração de tamanho da VM.
Para habilitar a interface NVMe remota em sua VM, você deve atender aos seguintes pré-requisitos:
A maioria dos tamanhos de VM do Azure modernos dá suporte ao tipo de controlador de disco NVMe para armazenamento remoto. O suporte começa com tamanhos de VM Ebsv5 e gerações posteriores (v6, v7).
Selecione a imagem do sistema operacional que estiver marcada como tendo suporte a NVMe. Para tamanhos de VM que dão suporte à interface NVMe, o Azure configura automaticamente o tipo de controlador de disco NVMe durante a criação da VM. A configuração NVMe na guia Avançado é selecionada por padrão e não pode ser alterada.
Aceite o NVMe selecionando o tipo de controlador de disco NVMe no portal do Azure ou no modelo do Azure Resource Manager, da CLI do Azure ou do PowerShell do Azure. Para obter instruções passo a passo, consulte as perguntas frequentes gerais sobre o NVMe.
Como posso redimensionar uma VM baseada em SCSI para uma VM remota habilitada para NVMe de um tamanho diferente?
Você pode usar o seguinte processo para:
- Redimensionar uma VM baseada em SCSI criada usando uma imagem sem marca em uma VM habilitada para NVMe de um tamanho diferente sem recriar as configurações da VM e sem marcar a imagem.
- Redimensionar uma VM baseada em SCSI para uma VM habilitada para NVMe de um tamanho diferente sem recriar as configurações da VM.
A VM de origem pode ser:
- Uma imagem do sistema operacional não etiquetada que dá suporte ao NVMe remoto.
- Uma imagem do sistema operacional marcada por NVMe.
Para redimensionar a VM, use o seguinte comando para executar um script do PowerShell do Azure que define o valor de destino discontrollertype da VM como NVMe:
azure-nvme-VM-update.ps1 [-subscription_id] <String> [-resource_group_name] <String> [-vm_name] <String> [[-disk_controller_change_to] <String>] [-vm_size_change_to] <String> [[-start_vm_after_update] <Boolean>] [[-write_logfile] <Boolean>]
Para obter mais detalhes, consulte SCSI para NVMe para VMs Linux
Como posso verificar se uma imagem está marcada como NVMe?
Para verificar se uma imagem está marcada como NVMe, use o seguinte comando:
az vm image show --urn URN_OF_IMAGE
Como criar uma definição de imagem que dê suporte ao NVMe para discos remotos?
Para criar uma definição de imagem que dê suporte ao NVMe para discos remotos, conclua as seguintes etapas:
Carregue um VHD (disco rígido virtual) compatível com NVMe na sua conta de armazenamento. AzCopy é uma maneira rápida, mas você também pode usar o portal para fazer upload.
azcopy copy <local path to your VHD> <container in your storage account>Crie uma galeria de imagens usando o PowerShell, o portal ou a CLI do Azure.
Crie uma definição de imagem. Certifique-se de incluir
--feature DiskControllerTypes=SCSI,NVMe.Veja um exemplo da CLI do Azure:
az sig image-definition create --resource-group <resourceGroupName> --gallery-name <galleryName> --gallery-image-definition <imageName> --publisher <publisher> --offer <offerName> --sku <skuName> --os-type <osType> --os-state <osState> --feature DiskControllerTypes=SCSI,NVMeCrie a versão da imagem com o VHD compatível com NVMe.
Veja um exemplo da CLI do Azure:
az sig image-version create --resource-group <resourceGroupName> --gallery-name <galleryName> --gallery-image-definition <imageName> --gallery-image-version <version> --target-regions <region1> <region2> --replica-count <replicaCount> --os-vhd-uri <NVMe-supported vhd uri> --os-vhd-storage-account <storageAccount>
Quais opções de armazenamento em disco do Azure são compatíveis com discos NVMe remotos?
Os tamanhos de NVMe podem ser combinados com o HDD Standard do Azure, o SSD Standard, o SSD Premium v1, o SSD Premium v2 e o Armazenamento em Disco Ultra. Para obter mais informações sobre as ofertas de disco do Azure, confira Tipos de disco gerenciado do Azure.
O Azure dá suporte ao redimensionamento dinâmico em discos com tamanhos de VM NVMe?
Há suporte para redimensionamento dinâmico do NVMe em discos SSD v1 do Azure Premium, discos SSD Premium v2, discos SSD Standard e discos HDD Standard. Você também pode adicionar discos NVMe remotos sem reiniciar a VM.
Como identificar discos NVMe remotos em uma VM do Linux?
Obtenha o pacote
nvme-cli:sudo apt install nvme-cliExecute o comando
listdo NVMe para buscar detalhes do disco NVMe:sudo nvme list
Veja como os dados aparecem em resposta aos comandos do PowerShell do Azure:
Como identificar discos NVMe em uma VM do Windows?
Abra o PowerShell do Azure e use os comandos a seguir:
wmic diskdrive get model,scsilogicalunit
Os discos anexados ASAP são apresentados no convidado com a cadeia de caracteres do modelo Virtual_Disk NVMe Premium. A unidade lógica do SCSI tem o valor da ID do LUN visível do portal incrementada em 1.
Aqui está um instantâneo de como os discos NVMe aparecem na VM do Windows habilitada para NVMe:
O instantâneo a seguir mostra a saída de convidado para discos de dados anexados em LUN 0 e LUN 4 (CRP). A ID do LUN é equivalente à ID do namespace.
Há suporte para discos compartilhados em discos remotos com VMs habilitadas para NVMe?
O recurso de disco compartilhado tem suporte para discos Premium SSD, SSD Premium v2 e Amazenamento de Disco Ultra. Não há suporte para discos compartilhados usando NVMe com o sistema operacional Windows Server 2019.
Um disco de dados pode ser desanexado de uma VM baseada em SCSI e anexado a uma VM baseada em NVMe?
Sim. Um disco de dados pode ser desanexado de uma VM baseada em SCSI e anexado a uma VM baseada em NVMe. Depois de anexado, o tipo de disco será convertido automaticamente em NVMe.
Todos os discos da minha VM serão anexados a um controlador NVMe ou serão distribuídos entre vários controladores?
Tipos de VM do Azure mais antigos (como Ebsv6) anexam todos os discos a um único controlador NVMe. Selecione os tamanhos de máquinas virtuais mais recentes (V7 e superiores, em execução no hardware Intel e ARM) que distribuem automaticamente os discos entre vários controladores e separam discos em cache (incluindo o disco do sistema operacional) de discos de dados não armazenados em cache, para melhorar o desempenho e a confiabilidade.
Como os discos são atribuídos aos controladores e o que devo saber sobre o gerenciamento de disco?
Discos de inicialização e discos de dados em cache são atribuídos ao controlador de cache, enquanto discos de dados sem cache vão para o controlador sem cache. A atribuição do controlador é automática com base na política de cache de disco selecionada nas configurações da VM.
Se você precisar alterar a política de cache de um disco, é recomendável interromper a VM, alterar a política de cache e, em seguida, iniciar a VM novamente para uma operação estável. Isso ajuda a evitar estados inconsistentes e problemas de remapeamento. As alterações de cache de disco do sistema operacional não funcionam e serão desabilitadas em atualizações futuras.
Como identificar e gerenciar discos entre controladores no Linux e no Windows?
Observação
O uso de UUIDs (Linux) ou GUIDs (Windows) garante que os discos sejam corretamente identificados e remontados após eventos de VM, atualizações ou alterações do controlador. Se os nomes de dispositivo forem alterados após reinicializações ou operações de disco, confie em UUIDs/GUIDs ou nomenclatura persistente para automação e script.
- Para exibir controladores NVMe e discos anexados, execute:
lsblk -o NAME,MODEL,SIZE,TYPE,MOUNTPOINT
Isso lista todos os dispositivos de bloco, mostrando quais discos (por exemplo, nvme0n1, nvme1n1) estão anexados a quais controladores. Discos em cache (incluindo o disco do sistema operacional) normalmente aparecem em nvme0, enquanto os discos de dados não em cache aparecem em nvme1.
- Para obter informações detalhadas do NVMe, execute:
nvme list
Isso exibe todos os dispositivos NVMe, suas IDs do controlador, namespaces e números de série.
- Para identificação de disco persistente, use:
blkid
Isso mostra a UUID para cada disco, que pode ser usada para remontagem confiável após eventos de VM.