Podmiana dysku z OS na Azure VM

Swap the OS Disk of an Azure VM

Cześć dzisiaj szybki temat podmiany dysku zawierającego system operacyjny (OS) na maszynach wirtualnych (VM) w Azure. W artykule pokażę że można to zrobić w łatwy i szybki sposób za pomocą Powershell.

Poco to robić? poco podmieniać dyski?

Ja lubię przed skomplikowanymi operacjami wykonać kopię dysków na maszynie wirtualnej. Zrobić taki backup, żeby w przypadku błędu móc szybko wrócić do stanu przed zmian. Poza tym jest mnóstwo innych powodów zaczynając od tworzenia kopi istniejących maszyn, bo nie każdy musi używać Azure Backup.

Może się przydać także przy aktualizacji tych maszyn, które już są. Na jednej VM możemy wprowadzić zmiany przetestować, a jak wszystko działa to skopiować dysk z poprawkami i podpiąć pod inną VM.

Ja kiedyś używałem takiej podmiany dysków także gdy przenosiłem maszyny między subskrypcjami, wtedy wystarczyło skopiować snapshoot za pomocą Storage Account na inną subskrypcję i można było łatwo odtworzyć VM w nowej subskrypcji. Zastosowań jest masa.

Jak to zrobić?

Kiedyś podmienić dysk na inny w VM można było tylko za pomocą poweshella albo CLI. Aktualnie można to zrobić za pomocą portalu, tylko… no właśnie czasem pojawiają się problemy wyskakują błędy,
albo Azure nie wykrywa nam dysku z systemem, który byśmy mogli użyć do podmiany.

Azure VM swap OS disk

W takim przypadku najlepiej użyć starych metod.

Żeby podmienić dysk z systemem na wirtualce musimy wyłączyć maszynę wirtualną i w tej samej subskrypcji mieć przygotowany dysk którego chcemy użyć.

Azure Swap disk - resource group

Otwieramy Powershell i logujemy się do naszej subskrypcji:

Powershell Connect-AzAccount

Poprawiamy poniższy skrypt. Zakładając że dysk i maszyna są w tej samej grupie zasobów zamiast XXXXXXXX podajemy nazwę:

  • dysku który chcemy podmienić
  • maszyny wirtualnej
  • grupy zasobów
$DiskBackupName = XXXXXXXXX
$VMName = XXXXXXXXX
$ResourceGroupName = XXXXXXXXX

$vm = Get-AzureRmVM -ResourceGroupName $ResourceGroupName -Name $VMName
$disk = Get-AzureRmDisk -ResourceGroupName $ResourceGroupName -Name $DiskBackupName

Set-AzureRmVMOSDisk -VM $vm -ManagedDiskId $disk.Id -Name $disk.Name
Update-AzureRmVM -ResourceGroupName $ResourceGroupName -VM $vm

Można także użyć nowszej wersji skryptu(zamiast AzureRM użyć poprostu Az):

$DiskBackupName = XXXXXXXXX
$VMName = XXXXXXXXX
$ResourceGroupName = XXXXXXXXX

$vm = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $VMName
$disk = Get-AzDisk -ResourceGroupName $ResourceGroupName -Name $DiskBackupName

Set-AzVMOSDisk -VM $vm -ManagedDiskId $disk.Id -Name $disk.Name
Update-AzVM -ResourceGroupName $ResourceGroupName -VM $vm

To wszystko, uruchamiamy poprawiony skrypt, a gdy polecenie się wykona, to możemy uruchomić naszą maszynę wirtualną z nowym dyskiem.

Skrypcik można rozbudować jeszcze o to, by przed podmianą dysku sam wyłączył nam VM-kę i po podmianie sam ją włączył, ale tu chciałem to uprościć.

Więcej informacji na temat maszyn wirtualnych znajdziesz na stronach Microsoftu: https://docs.microsoft.com/pl-pl/azure/virtual-machines/

Jeśli podobał Ci się artykuł na temat podmiany dysków z OS na Azure VM, to zajrzyj do innych związanych z Azurem, znajdziesz je w kategorii azure.

1 myśl na “Podmiana dysku z OS na Azure VM”

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *