Я пытаюсь преобразовать отдельный управляемый диск, который я добавил в свою виртуальную машину Windows 2019 Server, со стандартного твердотельного накопителя на твердотельный накопитель премиум-класса. Согласно шагам на https://docs.microsoft.com/bs-latn-ba/Azure/virtual-machines/windows/convert-disk-storage, Мне придется остановить виртуальную машину, чтобы выполнить это, но я боюсь, что если я остановлю ее, возникнет волновой эффект, который задержит возможность моей команды снова подключиться к сети и продолжить работу. Один конкретный сценарий, которого я пытаюсь избежать, - это обязательное повторное развертывание виртуальной машины.
Видите ли, у меня есть стороннее программное обеспечение, работающее на этой виртуальной машине Azure, и его модуль лицензирования программного обеспечения (SLM) может потребовать сброса / повторной инициализации, если виртуальная машина будет повторно развернута. Эта повторная инициализация может быть длительным процессом, потому что мне нужно позвонить в службу технической поддержки, запросить помощь, перенаправить, кто знает сколько раз, дождаться перевыпуска лицензии, применить новую лицензию и протестировать ее. все вернулось в норму. Этого я пытаюсь избежать, потому что это может привести к тому, что моя команда потеряет дневной объем работы, пока я заставляю производителя программного обеспечения повторно выпустить / перенастроить мой SLM. SLM полагается на CPUID и MAC ID своего хост-компьютера. Поскольку передислокация подразумевает, что виртуальная машина может быть развернута на другом физическом оборудовании, мне, скорее всего, понадобится сброс SLM. Я не хочу этого.
Итак, мои вопросы:
Если я выключу виртуальную машину для обслуживания (например, для обновления внешнего управляемого диска со стандартного SSD на Premium SSD), приведет ли это к повторному развертыванию?
По сути, завершение работы - это то же самое, что и нажатие кнопки Stop для этой виртуальной машины на портале Azure?
Я слышал, что есть опция Stop и отдельная опция Stop / Redeploy, но если это так, я не сразу вижу это. Я посмотрю, это вариант "Повторное развертывание" после Я нажал Стоп?
Эврика! Мне удалось обновить управляемый диск с данными без повторного развертывания виртуальной машины! Согласно веб-порталу Azure, «размер дисков или тип учетной записи можно изменить, только когда они не подключены или виртуальная машина-владелец освобождена». Казалось, что если бы я мог отключить / отсоединить рассматриваемый управляемый диск, я мог бы быть дома бесплатно, не требуя остановки и освобождения виртуальной машины! На самом деле это было так.
Я узнал, что, "Ты можешь горячий удалить диск с данными используя PowerShell, но убедитесь, что ничто не активно использует диск, прежде чем отсоединять его от виртуальной машины ». (Источник: см. мою гиперссылку № 3 внизу этого сообщения.) Поэтому я пошел дальше и остановил свои сторонние службы, которые зависели от Этот диск оставил виртуальную машину включенной, и со своего локального ПК я выполнил все шаги, которые записал здесь.
Ниже я подробно расскажу о пользовательских командах PowerShell, которые я выполнил (как записано из моего пользовательского интерфейса Windows PowerShell ISE, со встроенными результатами, в том, что я называю фазами 1, 2 и 4). Мне также нужно было использовать веб-портал Azure (в том, что я называю этапом 3).
Все это РАБОТАЛ! Еще раз обратите внимание, что я выполнил свое решение в четыре фазы. Вкратце, это:
ФАЗА 1. Это было сделано с помощью PowerShell. Первоначально, вплоть до команды Connect-AzAccount, вы увидите подготовительные шаги, которые установили необходимые модули Azure PowerShell и настроили мой компьютер, чтобы разрешить выполнение сценария. Мне пришлось несколько раз нажать «Да» или «Да для всех», чтобы завершить установку модуля.
ФАЗА 2: все еще используется PowerShell. Здесь мне пришлось ввести свои учетные данные портала Azure при запуске Connect-AzAccount. Обычно я отсоединяю диск, пока виртуальная машина все еще работает. Это происходит при выполнении команды Remove-AzVMDataDisk и команды Update-AzVM, которая следует сразу за ней.
ЭТАП 3. В этот момент я вернулся на свой веб-портал Azure и изменил свой управляемый диск данных со стандартного на твердотельный накопитель Premium.
ФАЗА 4: Наконец, я вернулся к своему экрану PowerShell и приступил к выполнению шагов, которые привели к команде Add-AzVMDataDisk для повторного подключения моего диска к виртуальной машине - и последующему Update-AzVM, который запускает это действие. Это вернуло к жизни модернизированный управляемый диск на моей виртуальной машине!
Что еще лучше, все данные остались нетронутыми, буква диска, которую я назначил ей ранее, была сохранена, и даже имя сетевого ресурса, которое я дал ей, все еще было доступно для других виртуальных машин через мою виртуальную сеть!
(Обратите внимание, что на этапе 4 я также выполнил дополнительный шаг, чтобы, надеюсь, получить оптимальную производительность SSD премиум-класса с кешем чтения / записи: это команда 'Set-AzVMDataDisk -VM $ VM -Lun "0" -Caching ReadWrite'.)
Теперь просмотрите все подробные шаги, которые я предпринял в PowerShell, и что я сделал на веб-портале Azure:
ФАЗА 1
PS C:\WINDOWS\system32> Install-Module -Name Az -AllowClobber
PS C:\WINDOWS\system32> Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine Undefined
PS C:\WINDOWS\system32> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
PS C:\WINDOWS\system32> Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine Undefined
ФАЗА 2
PS C:\WINDOWS\system32> Connect-AzAccount
Account SubscriptionName TenantId
------- ---------------- --------
admin@MYCOMPANY.onmicrosoft.com Microsoft Azure (MYCOMPANY): #0000000 ffffff...
PS C:\WINDOWS\system32> $VirtualMachine = Get-AzVM -ResourceGroupName "MYFILESERVERRESOURCES" -Name "MyFileServer"
PS C:\WINDOWS\system32> Remove-AzVMDataDisk -VM $VirtualMachine -Name "MyStorageDrive"
ResourceGroupName : MYFILESERVERRESOURCES
Id : /subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resour
ceGroups/MYFILESERVERRESOURCES/providers/Microsoft.Compute/virtualMachines/MY
FileServer
VmId : eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee
Name : MyFileServer
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
DiagnosticsProfile : {BootDiagnostics}
Extensions : {AzureDiskEncryption, AzurePerformanceDiagnostics,
MicrosoftMonitoringAgent}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration,
Secrets, AllowExtensionOperations}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
PS C:\WINDOWS\system32> Update-AzVM -ResourceGroupName "MYFILESERVERRESOURCES" -VM $VirtualMachine
RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
True OK OK
ЭТАП 3
Здесь я вернулся на портал Azure, изменил диск со стандартного SSD на Premium SSD и сохранил это изменение! Для этого я,
Преобразование диска произошло буквально мгновенно.
ЭТАП 4
PS C:\WINDOWS\system32> $rgName = "MYFILESERVERRESOURCES"
$vmName = "MyFileServer"
$location = "East US"
$dataDiskName = "MyStorageDrive"
$disk = Get-AzDisk -ResourceGroupName $rgName -DiskName $dataDiskName
PS C:\WINDOWS\system32> $vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
PS C:\WINDOWS\system32> $vm = Add-AzVMDataDisk -CreateOption Attach -Lun 0 -VM $vm -ManagedDiskId $disk.Id
PS C:\WINDOWS\system32> Update-AzVM -VM $vm -ResourceGroupName $rgName
RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
True OK OK
PS C:\WINDOWS\system32> $VM.StorageProfile.OsDisk.Caching
ReadWrite
PS C:\WINDOWS\system32> $vm.StorageProfile.DataDisks
Name :
DiskSizeGB :
Lun : 0
Caching : None
CreateOption : Attach
SourceImage :
VirtualHardDisk :
PS C:\WINDOWS\system32> Set-AzVMDataDisk -VM $VM -Lun "0" -Caching ReadWrite
ResourceGroupName : MYFILESERVERRESOURCES
Id : /subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/MYFILESERVERRESOURCES/providers
/Microsoft.Compute/virtualMachines/MyFileServer
VmId : eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee
Name : MyFileServer
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
DiagnosticsProfile : {BootDiagnostics}
Extensions : {AzureDiskEncryption, AzurePerformanceDiagnostics, MicrosoftMonitoringAgent}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets, AllowExtensionOperations}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
PS C:\WINDOWS\system32> Update-AzVM -VM $vm -ResourceGroupName $rgName
RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
True OK OK
PS C:\WINDOWS\system32>
Вот сайты, которые помогли мне прийти к этому решению:
2 https://docs.microsoft.com/en-us/powershell/azure/install-az-ps?view=azps-2.5.0
3 https://docs.microsoft.com/en-us/azure/virtual-machines/windows/detach-disk
4 https://docs.microsoft.com/bs-latn-ba/Azure/virtual-machines/windows/convert-disk-storage
5 https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps