Como expandir discos rígidos virtuais anexados a uma máquina virtual do Windows

Aplicável a: ✔️ VMs do Windows ✔️ Conjuntos de dimensionamento flexíveis

Ao criar uma nova VM (máquina virtual) em um grupo de recursos implantando uma imagem do Azure Marketplace, a unidade padrão do sistema operacional normalmente tem 127 GB (algumas têm tamanhos de disco de sistema operacional menores por padrão). Embora seja possível adicionar discos de dados à VM (o número depende do SKU escolhido) e seja recomendado instalar aplicativos e cargas de trabalho com uso intensivo de CPU nesses discos adicionais, muitas vezes, os clientes precisam expandir a unidade do sistema operacional para oferecer suporte a cenários específicos:

  • Para oferecer suporte a aplicativos herdados que instalam componentes na unidade do sistema operacional.
  • Para migrar um computador físico ou uma VM do local com uma unidade de sistema operacional maior.

Importante

O redimensionamento de um disco de dados ou sistema operacional de uma máquina virtual do Azure requer que ela seja desalocada.

A redução de um disco existente não tem suporte e pode resultar em perda de dados.

Depois de expandir os discos, você precisará expandir o volume no sistema operacional para aproveitar o disco maior.

Redimensionar sem tempo de inatividade (versão prévia)

Agora, você pode redimensionar os discos gerenciados sem desalocar sua VM.

A versão prévia que permite fazer isso tem estas limitações:

  • Atualmente, disponível somente no Centro-Oeste dos EUA.
  • Tem suporte apenas para discos de dados.
  • Discos menores que 4 TiB não podem ser expandidos para esse tamanho ou maior sem tempo de inatividade.
    • Se você aumentar o tamanho de um disco para 4 TiB ou mais, ele poderá ser expandido sem tempo de inatividade.
  • Instale e use um dos dois:

Para se registrar para o recurso, use o seguinte comando:

Register-AzProviderFeature -FeatureName "LiveResize" -ProviderNamespace "Microsoft.Compute"

Pode levar alguns minutos para que o registro seja concluído. Para confirmar que você se registrou, use o seguinte comando:

Register-AzProviderFeature -FeatureName "LiveResize" -ProviderNamespace "Microsoft.Compute"

Redimensionar um disco gerenciado no portal do Azure

Importante

Se você habilitou LiveResize e seu disco atende aos requisitos em Redimensionar sem tempo de inatividade (versão prévia), ignore a etapa 1. Para redimensionar um disco sem tempo de inatividade no portal do Azure, use o seguinte link: https://aka.ms/iaasexp/DiskLiveResize

  1. No portal do Azure, acesse a máquina virtual na qual você deseja expandir o disco. Selecione Parar a fim de parar\desalocar a VM.

  2. No menu esquerdo em Configurações, escolha Discos.

    Captura de tela que mostra a opção Discos selecionada na seção Configurações do menu.

  3. Em Nome do disco, selecione o disco que você deseja redimensionar.

    Captura de tela que mostra o painel Discos com um nome de disco selecionado.

  4. No menu à esquerda, em Configurações, selecione Tamanho + Desempenho.

    Captura de tela que mostra a opção Tamanho e Desempenho selecionada na seção Configurações do menu.

  5. Em Tamanho + Desempenho, selecione o tamanho de disco desejado.

    Aviso

    O novo tamanho deve ser maior que o tamanho do disco existente. O valor máximo permitido é de 4.095 GB para discos do sistema operacional. (É possível expandir o blob VHD além desse tamanho, mas o sistema operacional só funciona com os primeiros 4.095 GB de espaço.)

    Captura de tela que mostra o painel Tamanho e Desempenho com o tamanho do disco selecionado.

  6. Selecione Redimensionar na parte inferior da página.

    Captura de tela que mostra o painel Tamanho e Desempenho com o botão Redimensionar selecionado.

Redimensionar um disco gerenciado com o PowerShell

Abra o ISE ou a janela do PowerShell no modo administrativo e siga as etapas abaixo:

  1. Conecte-se à sua conta do Microsoft Azure no modo de gerenciamento de recursos e selecione sua assinatura:

    Connect-AzAccount
    Select-AzSubscription –SubscriptionName 'my-subscription-name'
    
  2. Defina o nome do grupo de recursos e o nome da VM:

    $rgName = 'my-resource-group-name'
    $vmName = 'my-vm-name'
    
  3. Obtenha uma referência à VM:

    $vm = Get-AzVM -ResourceGroupName $rgName -Name $vmName
    

    Importante

    Se você habilitou LiveResize e seu disco atende aos requisitos em Redimensionar sem tempo de inatividade (versão prévia), ignore as etapas 4 e 6.

  4. Pare a VM antes de redimensionar o disco:

    Stop-AzVM -ResourceGroupName $rgName -Name $vmName
    
  5. Obtenha uma referência ao disco do sistema operacional gerenciado. Defina o tamanho do disco gerenciado de sistema operacional para o valor desejado e atualize-o:

    $disk= Get-AzDisk -ResourceGroupName $rgName -DiskName $vm.StorageProfile.OsDisk.Name
    $disk.DiskSizeGB = 1023
    Update-AzDisk -ResourceGroupName $rgName -Disk $disk -DiskName $disk.Name
    

    Aviso

    O novo tamanho deve ser maior que o tamanho do disco existente. O valor máximo permitido é de 4.095 GB para discos do sistema operacional. (É possível expandir o blob VHD além desse tamanho, mas o sistema operacional só funciona com os primeiros 4.095 GB de espaço.)

  6. A atualização da VM pode demorar um pouco. Depois que a execução do comando for concluída, reinicie a VM:

    Start-AzVM -ResourceGroupName $rgName -Name $vmName
    

É isso. Agora, com o RDP na VM, abra Gerenciamento do Computador (ou Gerenciamento de Disco) e expanda a unidade usando o espaço recentemente alocado.

Redimensionar um disco gerenciado com o PowerShell

Abra o ISE ou a janela do PowerShell no modo administrativo e siga as etapas abaixo:

  1. Conecte-se à sua conta do Microsoft Azure no modo de gerenciamento de recursos e selecione sua assinatura:

    Connect-AzAccount
    Select-AzSubscription –SubscriptionName 'my-subscription-name'
    
  2. Defina o nome do grupo de recursos e os nomes da VM:

    $rgName = 'my-resource-group-name'
    $vmName = 'my-vm-name'
    
  3. Obtenha uma referência à VM:

    $vm = Get-AzVM -ResourceGroupName $rgName -Name $vmName
    
  4. Pare a VM antes de redimensionar o disco:

    Stop-AzVM -ResourceGroupName $rgName -Name $vmName
    
  5. Defina o tamanho do disco não gerenciado de sistema operacional para o valor desejado e atualize a VM:

    $vm.StorageProfile.OSDisk.DiskSizeGB = 1023
    Update-AzVM -ResourceGroupName $rgName -VM $vm
    

    Aviso

    O novo tamanho deve ser maior que o tamanho do disco existente. O valor máximo permitido é de 2.048 GB para discos de sistema operacional. (É possível expandir o blob VHD além desse tamanho, mas o sistema operacional só funciona com os primeiros 2.048 GB de espaço.)

  6. A atualização da VM pode demorar um pouco. Depois que a execução do comando for concluída, reinicie a VM:

    Start-AzVM -ResourceGroupName $rgName -Name $vmName
    

Scripts para o disco do sistema operacional

Abaixo está o script completo para sua referência para discos gerenciados e não gerenciados:

Discos gerenciados

Connect-AzAccount
Select-AzSubscription -SubscriptionName 'my-subscription-name'
$rgName = 'my-resource-group-name'
$vmName = 'my-vm-name'
$vm = Get-AzVM -ResourceGroupName $rgName -Name $vmName
Stop-AzVM -ResourceGroupName $rgName -Name $vmName
$disk= Get-AzDisk -ResourceGroupName $rgName -DiskName $vm.StorageProfile.OsDisk.Name
$disk.DiskSizeGB = 1023
Update-AzDisk -ResourceGroupName $rgName -Disk $disk -DiskName $disk.Name
Start-AzVM -ResourceGroupName $rgName -Name $vmName

Discos não gerenciados

Connect-AzAccount
Select-AzSubscription -SubscriptionName 'my-subscription-name'
$rgName = 'my-resource-group-name'
$vmName = 'my-vm-name'
$vm = Get-AzVM -ResourceGroupName $rgName -Name $vmName
Stop-AzVM -ResourceGroupName $rgName -Name $vmName
$vm.StorageProfile.OSDisk.DiskSizeGB = 1023
Update-AzVM -ResourceGroupName $rgName -VM $vm
Start-AzVM -ResourceGroupName $rgName -Name $vmName

Redimensionando discos de dados

Este artigo se concentra principalmente em expandir o disco do SO da VM, mas o script também pode ser usado para expandir os discos de dados conectados à VM. Por exemplo, para expandir o primeiro disco de dados conectado à VM, substitua o objeto OSDisk de StorageProfile pela matriz DataDisks e use um índice numérico para obter uma referência para o primeiro disco de dados conectado, como mostrado abaixo:

Disco gerenciado

$disk= Get-AzDisk -ResourceGroupName $rgName -DiskName $vm.StorageProfile.DataDisks[0].Name
$disk.DiskSizeGB = 1023

Disco não gerenciado

$vm.StorageProfile.DataDisks[0].DiskSizeGB = 1023

Da mesma forma, você pode referenciar outros discos de dados conectados à VM usando um índice, conforme mostrado acima, ou a propriedade Nome do disco:

Disco gerenciado

(Get-AzDisk -ResourceGroupName $rgName -DiskName ($vm.StorageProfile.DataDisks | Where ({$_.Name -eq 'my-second-data-disk'})).Name).DiskSizeGB = 1023

Disco não gerenciado

($vm.StorageProfile.DataDisks | Where ({$_.Name -eq 'my-second-data-disk'})).DiskSizeGB = 1023

Expandir o volume no sistema operacional

Após expandir o disco da VM, você precisará acessar o sistema operacional e expandir o volume a fim de abranger o novo espaço. Há vários métodos para expandir uma partição. Esta seção aborda como conectar a VM usando uma conexão RDP para expandir a partição usando DiskPart.

  1. Abra uma conexão RDP com a VM.

  2. Abra um prompt de comando e digite diskpart.

  3. No prompt DISKPART, digite list volume. Anote o volume que você deseja estender.

  4. No prompt DISKPART, digite select volume <volumenumber>. Isso seleciona o volume volumenumber que você deseja estender no espaço vazio contíguo no mesmo disco.

  5. No prompt DISKPART, digite extend [size=<size>]. Isso estende o volume selecionado pelo tamanho em megabytes (MB).

Próximas etapas

Você também pode conectar discos usando o portal do Azure.