Przenoszenie maszyny wirtualnej (klasycznej) lub Cloud Services roli do innej podsieci przy użyciu programu PowerShell

Program PowerShell umożliwia przenoszenie maszyn wirtualnych (klasycznych) z jednej podsieci do innej w tej samej sieci wirtualnej. Wystąpienia ról można przenosić, edytując plik CSCFG, a nie za pomocą programu PowerShell.

Uwaga

W tym artykule wyjaśniono, jak przenieść maszyny wirtualne wdrożone tylko za pośrednictwem klasycznego modelu wdrażania.

Dlaczego warto przenieść maszyny wirtualne do innej podsieci? Migracja podsieci jest przydatna, gdy starsza podsieć jest zbyt mała i nie można jej rozszerzyć z powodu istniejących działających maszyn wirtualnych w tej podsieci. W takim przypadku można utworzyć nową, większą podsieć i przeprowadzić migrację maszyn wirtualnych do nowej podsieci, a następnie po zakończeniu migracji można usunąć starą pustą podsieć.

Jak przenieść maszynę wirtualną do innej podsieci

Aby przenieść maszynę wirtualną, uruchom Set-AzureSubnet cmdlet programu PowerShell, używając poniższego przykładu jako szablonu. W poniższym przykładzie przenosimy testVM z jej obecnej podsieci do podsieci Subnet-2. Pamiętaj, aby edytować przykład w celu odzwierciedlenia środowiska. Pamiętaj, że każde uruchomienie Update-AzureVM cmdlet w ramach procedury spowoduje ponowne uruchomienie maszyny wirtualnej w ramach procesu aktualizacji.

Get-AzureVM –ServiceName TestVMCloud –Name TestVM `
| Set-AzureSubnet –SubnetNames Subnet-2 `
| Update-AzureVM

Jeśli określono statyczny wewnętrzny prywatny adres IP dla maszyny wirtualnej, musisz wyczyścić to ustawienie przed przeniesieniem maszyny wirtualnej do nowej podsieci. W takim przypadku użyj następujących funkcji:

Get-AzureVM -ServiceName TestVMCloud -Name TestVM `
| Remove-AzureStaticVNetIP `
| Update-AzureVM
Get-AzureVM -ServiceName TestVMCloud -Name TestVM `
| Set-AzureSubnet -SubnetNames Subnet-2 `
| Update-AzureVM

Aby przenieść wystąpienie roli do innej podsieci

Aby przenieść wystąpienie roli, edytuj plik CSCFG. W poniższym przykładzie przenosimy "Role0" w sieci wirtualnej VNETName z jej obecnej podsieci do podsieci Subnet-2. Ponieważ wystąpienie roli zostało już wdrożone, wystarczy zmienić nazwę podsieci = Subnet-2. Pamiętaj, aby edytować przykład w celu odzwierciedlenia środowiska.

<NetworkConfiguration>
    <VirtualNetworkSite name="VNETName" />
    <AddressAssignments>
       <InstanceAddress roleName="Role0">
            <Subnets><Subnet name="Subnet-2" /></Subnets>
       </InstanceAddress>
    </AddressAssignments>
</NetworkConfiguration>