Назад | Перейти на главную страницу

Могу ли я обновить управляемый диск, используемый виртуальной машиной Azure, без повторного развертывания виртуальной машины?

Я пытаюсь преобразовать отдельный управляемый диск, который я добавил в свою виртуальную машину 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. Я не хочу этого.

Итак, мои вопросы:

Эврика! Мне удалось обновить управляемый диск с данными без повторного развертывания виртуальной машины! Согласно веб-порталу 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 и сохранил это изменение! Для этого я,

  1. Вы вошли на портал Azure.
  2. Выбрал MyFileServer из списка виртуальных машин на портале.
  3. Я заметил, что состояние моей виртуальной машины показало, что она все еще «Работает».
  4. На панели виртуальной машины я выбрал в меню «Диски».
  5. Я выбрал диск, который хотел преобразовать, MyStorageDrive.
  6. Я выбрал Конфигурацию из меню.
  7. Я изменил тип учетной записи со стандартного жесткого диска на твердотельный накопитель премиум-класса (раньше это было невозможно, так как он был отключен, пока я не отсоединил диск).
  8. Я нажал «Сохранить» и закрыл панель диска.

Преобразование диска произошло буквально мгновенно.

ЭТАП 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>  

Вот сайты, которые помогли мне прийти к этому решению:

1 https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-6

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

6 https://docs.microsoft.com/en-us/learn/modules/caching-and-performance-azure-storage-and-disks/6-exercise-manage-cache-settings-with-powershell