Да, вы можете изменить размер на больший. Остановите работу виртуальной машины, измените размер диска на больший, а затем снова запустите виртуальную машину. Уменьшить размер управляемого Azure диска вы не можете.
Как перейти в Azure на диск меньшего размера?
Стандартное неуправляемое хранилище данных рекомендуется создавать с наибольшим возможным размером, например 1 Тбайт, поскольку оплачиваются только записанные данные. Но при наличии хранилища данных класса премиум и управляемых дисков (стандартных и класса премиум), которые будут основаны на размере диска, а не на количестве записанных данных, ситуация меняется.
В Azure невозможно уменьшить размер диска, поэтому процесс, показанный ниже, является самым лучшим вариантом для перехода на диск меньшего размера:
- Создайте меньший по размеру неуправляемый диск, основываясь на размере целевого диска.
- Смонтируйте диск к виртуальной машине.
- Остановите все службы, которые записывают текущие данные на диск.
- Скопируйте данные с текущего диска данных на новый диск, например: robocopy E:\F:\*.*/j/e/sec/Xd «System Volume Information» «$RECYCLE.BIN»/Xo
Создание виртуальной машины с управляемыми дисками
$vmname = "TestVM" $lPAddr = "10.1.1.11" Write-Output "Creating VM $vmname ($IPAddr)" $user = "iocaladmin" $password = 'Pa55word!' $securePassword = ConvertTo-SecureString $password -AsPlainText —Force $cred = New-Object System.Management.Automation. PSCredential ($user, SsecurePassword) $rgname = "Dal-Infra-RG" SavailSet = Get-AzureRmAvailabilitySet -Name "Dal-Infra-DC-AS"4 -ResourceGroupName $rgname $loc = "EastUS" $networkname = "Prod-Dal-VNet" Ssubnetname = "$networkname-Sub1" SvnetRG = "Dal-VNets-RG" $VNet = Get-AzureRmVirtualNetwork -Name Snetworkname -ResourceGroupName SvnetRG Ssubnet = get-azurermvirtualnetworksubnetcontig -VirtualNetwork $vnet -Name Ssubnetname SsubnetID = Ssubnet.ld # Create VM Object $vm = New-AzureRmVMConfig -VMName Svmname -VMSize Svmsize -AvailabilitySetld SavailSet.Id $nic = New-AzureRmNetworklnterface -Force -Name (‘nic-’ + Svmname) -ResourceGroupName Srgname 4 -Location Sloe -Subnetld SsubnetID -PrivatelpAddress SlPAddr # Add NIC to VM $vm = Add-AzureRmVMNetworklnterface -VM $vm -Id Snic.ld $vm = Set-AzureRmVMSourcelmage -VM $vm -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2016-Datacenter -Version latest $vm = Set-AzureRmVMOSDisk -VM $vm -StorageAccountType StandardLRS -DiskSizelnGB 128' -CreateOption Fromlmage -Caching ReadWrite -Name "$vmname-0S" $vm = Set-AzureRmVMOperatingSystem -VM $vm -Windows -ComputerName Svmname' -Credential Scred -ProvisionVMAgent -EnableAutollpdate #Add data disk SdiskConfig = New-AzureRmDiskConfig -AccountType PremiumLRS -Location Sloe -CreateOption Empty ' -DiskSizeGB 128 SdataDiskl = New-AzureRmDisk -DiskName "$vmname-data1" -Disk SdiskConfig -ResourceGroupName SrgName $vm = Add-AzureRmVMDataDisk -VM $vm -Name "$vmname-data1" -CreateOption Attach -ManagedDiskld SdataDiskl .Id -Lun 1 #Create Virtual Machine New-AzureRmVM -ResourceGroupName Srgname -Location Sloe -VM $vm
- Отмонтируйте больший по размеру диск от виртуальной машины.
- Измените букву драйвера так, чтобы она соответствовала старому диску данных.
- Перезапустите приложение.
Теперь вы можете подключиться к управляемым дискам. Обратите внимание, это работает только для дисков данных. Единственный способ уменьшить размер диска с операционной системой — это загрузить VHD локально, уменьшить размер раздела диска внутри гостевой операционной системы, уменьшить размер VHD, выгрузить обратно в Azure, а затем вновь создать виртуальную машину. Очевидно, что такой процесс приведет к значительному простою в работе.