Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: ✔️ Maszyny wirtualne z systemem Linux maszyny wirtualne z ✔️ systemem Windows
W poniższych krokach opisano sposób zmiany zestawu dostępności maszyny wirtualnej przy użyciu programu Azure PowerShell. Maszynę wirtualną można dodać do zestawu dostępności tylko podczas tworzenia maszyny wirtualnej. Aby zmienić zestaw dostępności, musisz usunąć maszynę wirtualną, a następnie ponownie utworzyć maszynę wirtualną.
Ten artykuł został ostatnio przetestowany 12 lutego 2019 r. przy użyciu usługi Azure Cloud Shell i modułu Az programu PowerShell w wersji 1.2.0.
Ostrzeżenie
Jest to tylko przykład. W niektórych przypadkach należy zaktualizować je dla określonego wdrożenia.
Upewnij się, że dyski są ustawione detach
jako opcja usuwania . Jeśli są one ustawione na delete
, zaktualizuj maszyny wirtualne przed usunięciem maszyn wirtualnych.
Jeśli maszyna wirtualna jest dołączona do modułu równoważenia obciążenia, musisz zaktualizować skrypt, aby obsłużyć ten przypadek.
Po zakończeniu tego procesu może być również konieczne ponowne zainstalowanie niektórych rozszerzeń.
Jeśli maszyna wirtualna korzysta z korzyści hybrydowych, należy zaktualizować przykład, aby włączyć korzyści hybrydowe na nowej maszynie wirtualnej.
Wymagania wstępne
Zmienianie zestawu dostępności
Poniższy skrypt zawiera przykład zbierania wymaganych informacji, usuwania oryginalnej maszyny wirtualnej, a następnie ponownego tworzenia jej w nowym zestawie dostępności:
# Set variables
$resourceGroup = "myResourceGroup"
$vmName = "myVM"
$newAvailSetName = "myAvailabilitySet"
# Get the details of the VM to be moved to the availability set
$originalVM = Get-AzVM `
-ResourceGroupName $resourceGroup `
-Name $vmName
# Create a new availability set if it doesn't exist
$availSet = Get-AzAvailabilitySet `
-ResourceGroupName $resourceGroup `
-Name $newAvailSetName `
-ErrorAction Ignore
if (-Not $availSet) {
$availSet = New-AzAvailabilitySet `
-Location $originalVM.Location `
-Name $newAvailSetName `
-ResourceGroupName $resourceGroup `
-PlatformFaultDomainCount 2 `
-PlatformUpdateDomainCount 2 `
-Sku Aligned
}
# Remove the original VM
Remove-AzVM -ResourceGroupName $resourceGroup -Name $vmName
# Create the basic configuration for the replacement VM.
$newVM = New-AzVMConfig `
-VMName $originalVM.Name `
-VMSize $originalVM.HardwareProfile.VmSize `
-AvailabilitySetId $availSet.Id
# For a Linux VM, change the last parameter from -Windows to -Linux
Set-AzVMOSDisk `
-VM $newVM -CreateOption Attach `
-ManagedDiskId $originalVM.StorageProfile.OsDisk.ManagedDisk.Id `
-Name $originalVM.StorageProfile.OsDisk.Name `
-Windows
# Add data disks
foreach ($disk in $originalVM.StorageProfile.DataDisks) {
Add-AzVMDataDisk -VM $newVM `
-Name $disk.Name `
-ManagedDiskId $disk.ManagedDisk.Id `
-Caching $disk.Caching `
-Lun $disk.Lun `
-DiskSizeInGB $disk.DiskSizeGB `
-CreateOption Attach
}
# Add NICs and keep the same NICs as primary; keep the private IP too, if it exists
foreach ($nic in $originalVM.NetworkProfile.NetworkInterfaces) {
if ($nic.Primary -eq "True")
{
Add-AzVMNetworkInterface `
-VM $newVM `
-Id $nic.Id -Primary
}
else
{
Add-AzVMNetworkInterface `
-VM $newVM `
-Id $nic.Id
}
}
# Re-create the VM
New-AzVM `
-ResourceGroupName $resourceGroup `
-Location $originalVM.Location `
-VM $newVM `
-DisableBginfoExtension