В зависимости от способа удаления виртуальной машины, удаление может быть выполнено только в отношении ресурса виртуальной машины, а не сетевых и дисковых ресурсов. При удалении виртуальной машины можно изменить параметры по умолчанию для других ресурсов.
Настройка параметров удаления при создании виртуальной машины
Откройте портал.
Выберите + Создать ресурс.
На странице "Создание ресурса" в разделе "Виртуальные машины" выберите "Создать".
Внесите свой выбор в основные сведения, а затем нажмите кнопку "Далее: диски", чтобы открыть вкладку "Диски>".
В разделе "Параметры диска" по умолчанию диск ОС имеет значение Delete with VM. Если вы не хотите удалить диск ОС, снимите флажок. Если вы используете существующий диск ОС, по умолчанию следует отключить диск ОС при удалении виртуальной машины.
В разделе "Диски данных" можно подключить существующий диск данных или создать новый диск и подключить его к виртуальной машине.
Если выбрать "Создать и подключить новый диск", откроется страница "Создать новый диск", и вы можете выбрать, следует ли удалить диск при удалении виртуальной машины.
Если вы решили подключить существующий диск, вы можете выбрать диск, LUN, а также указать, хотите ли вы удалить диск данных при удалении виртуальной машины.
После добавления сведений о диске нажмите кнопку "Далее: сеть", чтобы открыть вкладку "Сеть>".
В нижней части страницы выберите удалить общедоступный IP-адрес и сетевой адаптер при удалении виртуальной машины.
После завершения выбора нажмите кнопку "Проверить и создать".
Вы можете проверить, какие ресурсы вы выбрали для удаления при удалении виртуальной машины.
Когда будете удовлетворены выбранными вариантами и проверка будет пройдена, выберите Создать, чтобы развернуть виртуальную машину.
Чтобы указать, что происходит с подключенными ресурсами при удалении виртуальной машины, используйте delete-option
параметры. Для каждого из них можно задать Delete
значение , которое окончательно удаляет ресурс при удалении виртуальной машины или Detach
только отсоединяет ресурс и оставляет его в Azure, чтобы его можно было повторно использовать позже. По умолчанию для виртуальных машин, созданных с помощью интерфейса командной строки, необходимо отключить диск ОС. Ресурсы, такие как Detach
диски, будут продолжать влечь за собой расходы, если это применимо.
-
--os-disk-delete-option
— диск ОС.
-
--data-disk-delete-option
— диск данных.
-
--nic-delete-option
— NIC.
В этом примере мы создадим виртуальную машину с именем myVM в группе ресурсов с именем myResourceGroup с помощью образа myImage, а при удалении виртуальной машины необходимо удалить диск ОС и сетевой адаптер.
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
Чтобы указать, что происходит с подключенными ресурсами при удалении виртуальной машины, используйте DeleteOption
параметры. Для каждого из них можно задать Delete
значение , которое окончательно удаляет ресурс при удалении виртуальной машины или Detach
только отсоединяет ресурс и оставляет его в Azure, чтобы его можно было повторно использовать позже. Значение по умолчанию для виртуальных машин, созданных с помощью PowerShell, означает отсоединение диска ОС при удалении виртуальной машины. Ресурсы, такие как дискиDetach
, будут продолжать вызывать расходы в соответствии с применимыми тарифами.
Параметры DeleteOption
:
-
-OSDiskDeleteOption
— диск операционной системы.
-
-DataDiskDeleteOption
— диск данных.
-
-NetworkInterfaceDeleteOption
— сетевой адаптер.
В этом примере мы создадим виртуальную машину и зададим диск ОС и сетевой адаптер, которые будут удалены при удалении виртуальной машины.
New-AzVm `
-ResourceGroupName "myResourceGroup" `
-Name "myVM" `
-OSDiskDeleteOption Delete `
-NetworkInterfaceDeleteOption Delete `
-Location "East US" `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-SecurityGroupName "myNetworkSecurityGroup" `
-PublicIpAddressName "myPublicIpAddress"
В этом примере показано, как задать диск данных и сетевой адаптер для удаления виртуальной машины. Обратите внимание, что версия API, указанная в параметре версии API, должна быть "2021-03-01" или более поздней, чтобы настроить параметр удаления.
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"
}
}
]
}
}
Это свойство также можно задать для общедоступного IP-адреса, связанного с сетевым адаптером, чтобы общедоступный IP-адрес автоматически удаляется при удалении сетевого адаптера.
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"
}
Обновление поведения удаления на существующей виртуальной машине
При удалении виртуальной машины можно изменить поведение.
В следующем примере устанавливается параметр удаления detach
, чтобы можно было повторно использовать диск.
az resource update --resource-group myResourceGroup --name myVM --resource-type virtualMachines --namespace Microsoft.Compute --set properties.storageProfile.osDisk.deleteOption=detach
Пример ниже обновляет параметры виртуальной машины так, чтобы при удалении виртуальной машины удалялись диск ОС, все диски данных и все сетевые адаптеры.
$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
В следующем примере виртуальная машина обновляется для удаления сетевого адаптера, диска ОС и диска данных при удалении виртуальной машины. Обратите внимание, что версия API, указанная в параметре версии API, должна быть "2021-03-01" или более поздней, чтобы настроить параметр удаления.
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"
}
}
]
}
}
}
Принудительное удаление виртуальных машин
Принудительное удаление позволяет принудительно удалять виртуальную машину, уменьшая задержку удаления и немедленно освобождая подключенные ресурсы. Для виртуальных машин, которые не требуют корректного завершения работы, принудительное удаление будет удалять виртуальную машину как можно быстрее при удалении логических ресурсов из виртуальной машины, обходя корректное завершение работы и некоторые операции очистки. Принудительное удаление не сразу освобождает MAC-адрес, связанный с виртуальной машиной, так как это физический ресурс, который может занять до 10 минут. Если необходимо немедленно повторно использовать MAC-адрес на новой виртуальной машине, принудительное удаление не рекомендуется. Принудительное удаление следует использовать только в том случае, если вы не планируете повторно использовать виртуальные жесткие диски. Вы можете использовать принудительное удаление с помощью портала, ИНТЕРФЕЙСА командной строки, PowerShell и REST API.
Когда вы перейдете к удалению существующей виртуальной машины, вы найдете возможность применить принудительное удаление в области удаления.
- Откройте портал.
- Перейдите к виртуальной машине.
- На странице Обзор выберите Удалить.
- В области "Удалить виртуальную машину " установите флажок " Применить принудительное удаление".
- Нажмите OK.
--force-deletion
Используйте параметр az vm delete.
az vm delete \
--resource-group myResourceGroup \
--name myVM \
--force-deletion none
-ForceDeletion
Используйте параметр для Remove-AzVm.
Remove-AzVm `
-ResourceGroupName "myResourceGroup" `
-Name "myVM" `
-ForceDeletion $true
С помощью REST API Azure можно применить принудительное удаление к виртуальным машинам. Используйте параметр forceDeletion
для Виртуальные машины — Удаление.
Принудительное удаление для масштабируемых наборов
Принудительное удаление позволяет принудительно удалять масштабируемый набор виртуальных машин, уменьшая задержку удаления и немедленно освобождая подключенные ресурсы. Принудительное удаление не сразу освобождает MAC-адрес, связанный с виртуальной машиной, так как это физический ресурс, который может занять до 10 минут. Если необходимо немедленно повторно использовать MAC-адрес на новой виртуальной машине, принудительное удаление не рекомендуется. Принудительное удаление следует использовать только в том случае, если вы не планируете повторно использовать виртуальные жесткие диски. Вы можете использовать принудительное удаление с помощью портала, ИНТЕРФЕЙСА командной строки, PowerShell и REST API.
При удалении существующего масштабируемого набора вы найдете возможность применить принудительное удаление в области удаления.
- Откройте портал.
- Перейдите к масштабируемому набору виртуальных машин.
- На странице Обзор выберите Удалить.
- В области "Удалить масштабируемый набор виртуальных машин" установите флажок "Применить принудительное удаление".
- Нажмите OK.
Используйте параметр --force-deletion
для az vmss delete
.
az vmss delete \
--resource-group myResourceGroup \
--name myVMSS \
--force-deletion true
-ForceDeletion
Используйте параметр remove-AzVmss.
Remove-AzVmss `
-ResourceGroupName "myResourceGroup" `
-Name "myVMSS" `
-ForceDeletion $true
Вопросы и ответы
Вопрос. Работает ли эта функция с общими дисками?
Ответ. Для общих дисков нельзя задать для свойства deleteOption значение Delete. Его можно оставить пустым или задать для него значение "Отсоединить"
Вопрос. Какие ресурсы Azure поддерживают эту функцию?
Ответ. Эта функция поддерживается во всех управляемых типах дисков, используемых в качестве дисков ОС и дисков данных, сетевых адаптеров и общедоступных IP-адресов.
Вопрос. Можно ли использовать эту функцию на дисках и сетевых адаптерах, которые не связаны с виртуальной машиной?
Ответ. Нет, эта функция доступна только на дисках и сетевых адаптерах, связанных с виртуальной машиной.
Вопрос. Как эта функция работает с гибким масштабируемым набором виртуальных машин?
Ответ. Для гибкого масштабируемого набора виртуальных машин диски, сетевые карты и общедоступные IP-адреса устанавливаются deleteOption
Delete
по умолчанию, чтобы эти ресурсы автоматически очищались при удалении виртуальных машин.
Для дисков данных, которые были явно созданы и подключены к виртуальным машинам, можно изменить это свойство на "Отсоединить", а не "Удалить", если вы хотите, чтобы диски сохранялись после удаления виртуальной машины.
Вопрос: Поддерживают ли виртуальные машины Spot эту функцию?
Ответ. Да, вы можете использовать эту функцию для точечных виртуальных машин так же, как и для виртуальных машин по запросу.
Вопрос. Как сохранить диски, сетевые карты и общедоступные IP-адреса, связанные с виртуальной машиной?
Ответ. По умолчанию диски, сетевые карты и общедоступные IP-адреса, связанные с виртуальной машиной, сохраняются при удалении виртуальной машины. Если эти ресурсы будут автоматически удалены, можно обновить параметры, чтобы ресурсы остались после удаления виртуальной машины. Чтобы сохранить эти ресурсы, установите свойству deleteOption
значение Detach
.
Дальнейшие действия
Дополнительные сведения об управлении базовыми виртуальными машинами см. в руководстве по созданию виртуальных машин Linux и управлению ими с помощью Azure CLI.