Dependendo de como você exclui uma VM, pode ser que apenas o recurso de VM seja excluído, não os recursos de rede e de disco. Você pode alterar as configurações padrão para quais outros recursos são excluídos quando você exclui uma VM.
Definir opções de exclusão ao criar uma VM
Abra o portal.
Selecione + Criar um recurso.
Na página Criar um recurso, em Máquinas virtuais, selecione Criar.
Faça suas escolhas nos Itens Básicos e, em seguida, selecione Avançar: Discos > para abrir a guia Discos.
Em Opções de disco, por padrão, o disco do sistema operacional é definido para Excluir com VM. Se você não quiser excluir o disco do sistema operacional, desmarque a caixa de seleção. Se você está usando um disco de SO existente, o padrão é desanexar o disco do SO quando a VM é excluída.
Em Discos de dados, você pode anexar um disco de dados existente ou criar um disco e anexá-lo à VM.
Se você escolher Criar e anexar um novo disco, a página Criar um disco será aberta e você poderá selecionar se quer excluir o disco quando excluir a VM.
Se você optar por Anexar um disco existente, poderá escolher o disco, o LUN, e se deseja excluir o disco de dados ao excluir a VM.
Quando terminar de adicionar as informações do disco, selecione Avançar: Rede > para abrir a guia Rede.
Na parte inferior da página, selecione Excluir IP público e NIC quando a VM for excluída.
Quando terminar de fazer as seleções, selecione Examinar + criar.
Você pode verificar quais recursos você optou por excluir junto com a VM.
Quando estiver satisfeito com suas seleções e a validação for aprovada, selecione Criar para implantar a VM.
Para especificar o que acontece com os recursos anexados quando você exclui uma VM, use os parâmetros delete-option
. Cada um pode ser definido como Delete
, que exclui permanentemente o recurso quando você exclui a VM ou Detach
, que apenas desconecta o recurso e o deixa no Azure para que ele possa ser reutilizado posteriormente. O padrão para VMs criadas usando a CLI é desanexar o disco do SO. Os recursos que você Detach
, como discos, continuarão incorrendo em encargos conforme aplicável.
--os-disk-delete-option
– Disco do SO.
--data-disk-delete-option
– Disco de dados.
--nic-delete-option
– NIC.
Neste exemplo, criamos uma VM chamada myVM no grupo de recursos chamado myResourceGroup usando uma imagem chamada myImage e definimos o disco do sistema operacional e o NIC a serem excluídos quando excluirmos a VM.
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image myImage \
--public-ip-sku Standard \
--nic-delete-option delete \
--os-disk-delete-option delete \
--admin-username azureuser \
--generate-ssh-keys
Para especificar o que acontece com os recursos anexados quando você exclui uma VM, use os parâmetros DeleteOption
. Cada um pode ser definido como Delete
, que exclui permanentemente o recurso quando você exclui a VM ou Detach
, que apenas desconecta o recurso e o deixa no Azure para que ele possa ser reutilizado posteriormente. O padrão para VMs criadas usando o PowerShell é que o disco do sistema operacional seja desanexado quando você exclui a VM. Os recursos que você Detach
, como discos, continuarão incorrendo em encargos conforme aplicável.
Os parâmetros DeleteOption
são:
-OSDiskDeleteOption
– Disco do SO.
-DataDiskDeleteOption
– Disco de dados.
-NetworkInterfaceDeleteOption
– NIC.
Neste exemplo, criamos uma VM e definimos o disco do sistema operacional e a NIC a serem excluídos quando excluirmos a VM.
New-AzVm `
-ResourceGroupName "myResourceGroup" `
-Name "myVM" `
-OSDiskDeleteOption Delete `
-NetworkInterfaceDeleteOption Delete `
-Location "East US" `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-SecurityGroupName "myNetworkSecurityGroup" `
-PublicIpAddressName "myPublicIpAddress"
Este exemplo mostra como definir o disco de dados e a NIC a serem excluídos quando a VM for excluída. Observe que a versão da API especificada no parâmetro api-version deve ser "2021-03-01" ou mais recente para configurar a opção de exclusão.
PUT
https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/myVM?api-version=xx
{
"storageProfile": {
"dataDisks": [
{
"diskSizeGB": 1023,
"name": "myVMdatadisk",
"createOption": "Empty",
"lun": 0,
"deleteOption": "Delete"
}
]
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/.../Microsoft.Network/networkInterfaces/myNIC",
"properties": {
"primary": true,
"deleteOption": "Delete"
}
}
]
}
}
Você também pode definir essa propriedade para um IP público associado a uma NIC, para que o IP público seja excluído automaticamente quando a NIC for excluída.
PUT https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic?api-version=xx
{
"properties": {
"enableAcceleratedNetworking": true,
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": {
"publicIPAddress": {
"id": "/subscriptions/../publicIPAddresses/test-ip",
"properties": {
"deleteOption": "Delete"
}
},
"subnet": {
"id": "/subscriptions/../virtualNetworks/rg1-vnet/subnets/default"
}
}
}
]
},
"location": "eastus"
}
Atualizar o comportamento de exclusão em uma VM existente
Você pode alterar o comportamento ao excluir uma VM.
O exemplo a seguir define a opção de exclusão para detach
que você possa reutilizar o disco.
az resource update --resource-group myResourceGroup --name myVM --resource-type virtualMachines --namespace Microsoft.Compute --set properties.storageProfile.osDisk.deleteOption=detach
O exemplo a seguir atualiza a VM para excluir o disco do sistema operacional, todos os discos de dados e todos os NICs quando a VM for excluída.
$vmConfig = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
$vmConfig.StorageProfile.OsDisk.DeleteOption = 'Delete'
$vmConfig.StorageProfile.DataDisks | ForEach-Object { $_.DeleteOption = 'Delete' }
$vmConfig.NetworkProfile.NetworkInterfaces | ForEach-Object { $_.DeleteOption = 'Delete' }
$vmConfig | Update-AzVM
O exemplo a seguir atualiza a VM para excluir a NIC, o disco do sistema operacional e o disco de dados quando a VM for excluída. Observe que a versão da API especificada no parâmetro api-version deve ser "2021-03-01" ou mais recente para configurar a opção de exclusão.
PATCH https://management.azure.com/subscriptions/subID/resourceGroups/resourcegroup/providers/Microsoft.Compute/virtualMachines/testvm?api-version=2021-07-01
{
"properties": {
"hardwareProfile": {
"vmSize": "Standard_D2s_v3"
},
"storageProfile": {
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2019-Datacenter",
"version": "latest",
"exactVersion": "17763.3124.2111130129"
},
"osDisk": {
"osType": "Windows",
"name": "OsDisk_1",
"createOption": "FromImage",
"caching": "ReadWrite",
"managedDisk": {
"storageAccountType": "Premium_LRS",
"id": "/subscriptions/subID/resourceGroups/resourcegroup/providers/Microsoft.Compute/disks/OsDisk_1"
},
"deleteOption": "Delete",
"diskSizeGB": 127
},
"dataDisks": [
{
"lun": 0,
"name": "DataDisk_0",
"createOption": "Attach",
"caching": "None",
"writeAcceleratorEnabled": false,
"managedDisk": {
"storageAccountType": "Premium_LRS",
"id": "/subscriptions/subID/resourceGroups/resourcegroup/providers/Microsoft.Compute/disks/DataDisk_0"
},
"deleteOption": "Delete",
"diskSizeGB": 1024,
"toBeDetached": false
},
{
"lun": 1,
"name": "DataDisk_1",
"createOption": "Attach",
"caching": "None",
"writeAcceleratorEnabled": false,
"managedDisk": {
"storageAccountType": "Premium_LRS",
"id": "/subscriptions/subID/resourceGroups/resourcegroup/providers/Microsoft.Compute/disks/DataDisk_1"
},
"deleteOption": "Delete",
"diskSizeGB": 1024,
"toBeDetached": false
}
]
},
"osProfile": {
"computerName": "testvm",
"adminUsername": "azureuser",
"windowsConfiguration": {
"provisionVMAgent": true,
"enableAutomaticUpdates": true,
"patchSettings": {
"patchMode": "AutomaticByOS",
"assessmentMode": "ImageDefault",
"enableHotpatching": false
}
},
"secrets": [],
"allowExtensionOperations": true,
"requireGuestProvisionSignal": true
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/subID/resourceGroups/resourcegroup/providers/Microsoft.Network/networkInterfaces/nic336",
"properties": {
"deleteOption": "Delete"
}
}
]
}
}
}
A exclusão forçada permite excluir sua máquina virtual forçosamente, reduzindo a latência de exclusão e liberando imediatamente os recursos anexados. Para VMs que não exigem desligamento normal, a exclusão forçada excluirá a VM o mais rapidamente possível, liberando os recursos lógicos da VM, ignorando o desligamento normal e algumas das operações de limpeza. A exclusão forçada não libera imediatamente o endereço MAC associado a uma VM, pois esse é um recurso físico que pode levar até dez minutos para ser liberado. Se você precisar reutilizar imediatamente o endereço MAC em uma nova VM, a opção Exclusão Forçada não é recomendada. A Exclusão Forçada só deve ser usada quando você não pretende reutilizar os discos rígidos virtuais. Você pode usar a exclusão forçada por meio do Portal, da CLI, do PowerShell e da API REST.
Ao excluir uma VM existente, você verá uma opção para aplicar a exclusão forçada no painel de exclusão.
- Abra o portal.
- Navegue até a sua máquina virtual.
- Na página Visão Geral, selecione Excluir.
- No painel Excluir máquina virtual, selecione a caixa de seleção Aplicar exclusão forçada.
- Selecione OK.
Use o parâmetro --force-deletion
para excluir az vm.
az vm delete \
--resource-group myResourceGroup \
--name myVM \
--force-deletion none
Use o parâmetro -ForceDeletion
para Remover-AzVm.
Remove-AzVm `
-ResourceGroupName "myResourceGroup" `
-Name "myVM" `
-ForceDeletion $true
Você pode usar a API REST do Azure para aplicar a exclusão forçada às máquinas virtuais. Use o parâmetro forceDeletion
para Máquinas Virtuais – Excluir.
Forçar Exclusão de conjuntos de dimensionamento
A exclusão forçada permite excluir forçosamente seu Conjunto de Dimensionamento de Máquinas Virtuais, reduzindo a latência de exclusão e liberando imediatamente os recursos anexados. A exclusão forçada não libera imediatamente o endereço MAC associado a uma VM, pois esse é um recurso físico que pode levar até dez minutos para ser liberado. Se você precisar reutilizar imediatamente o endereço MAC em uma nova VM, a opção Exclusão Forçada não é recomendada. A Exclusão Forçada só deve ser usada quando você não pretende reutilizar os discos rígidos virtuais. Você pode usar a exclusão forçada por meio do Portal, da CLI, do PowerShell e da API REST.
Ao excluir um conjunto de dimensionamento existente, você verá uma opção para aplicar a exclusão forçada no painel de exclusão.
- Abra o portal.
- Navegue até seu Conjunto de Dimensionamento de Máquinas Virtuais.
- Na página Visão Geral, selecione Excluir.
- No painel Excluir Conjunto de Dimensionamento de Máquinas Virtuais, selecione a caixa de seleção Aplicar exclusão forçada.
- Selecione OK.
Usar o parâmetro --force-deletion
para az vmss delete
.
az vmss delete \
--resource-group myResourceGroup \
--name myVMSS \
--force-deletion true
Use o parâmetro -ForceDeletion
para Remover-AzVmss.
Remove-AzVmss `
-ResourceGroupName "myResourceGroup" `
-Name "myVMSS" `
-ForceDeletion $true
P: Esse recurso funciona com discos compartilhados?
R: Para discos compartilhados, você não pode definir a propriedade 'deleteOption' como 'Delete'. Você pode deixar em branco ou definir como ‘Desanexar’
P: quais recursos do Azure dão suporte a esse recurso?
R: Esse recurso tem suporte em todos os tipos de disco gerenciado usados como discos do sistema operacional e discos de dados, NICs e IPs públicos
P: Posso usar esse recurso em discos e NICs que não estão associados a uma VM?
R: Não, esse recurso só está disponível para discos e NICs associados a uma VM.
P: Como esse recurso funciona com Conjuntos de Dimensionamento de Máquinas Virtuais Flexíveis?
R: Para Conjuntos de Dimensionamento de Máquinas Virtuais Flexíveis, os discos, NICs e PublicIPs têm deleteOption
definido como Delete
por padrão para que esses recursos sejam limpos automaticamente quando as VMs forem excluídas.
Para discos de dados explicitamente criados e anexados às VMs, você pode modificar essa propriedade para ‘Desanexar’ em vez de ‘Excluir’ para que os discos persistam depois que a VM for excluída.
P: As VMs Spot têm suporte para esse recurso?
R: Sim, você pode usar esse recurso para VMs Spot exatamente como faria para VMs sob demanda.
P: Como fazer persistir os discos, NIC e IPs públicos associados a uma VM?
R: Por padrão, discos, NICs e IPs públicos associados a uma VM são persistentes quando a VM for excluída. Se você configurar esses recursos para serem excluídos automaticamente, terá a opção de reverter para que esses recursos persistam depois que a VM for excluída. Para manter esses recursos, defina a propriedade deleteOption
como Detach
.
Para saber mais sobre o gerenciamento básico de VMs, consulte Tutorial: Criar e gerenciar VMs do Linux com a CLI do Azure.