可以使用 PowerShell 将 VM(经典)从一个子网移到同一虚拟网络(VNet)中的另一个子网。 可以通过编辑 CSCFG 文件而不是使用 PowerShell 来移动角色实例。
注释
本文介绍如何移动仅通过经典部署模型部署的虚拟机。
为什么将 VM 移到另一个子网? 当旧子网太小且由于该子网中现有的正在运行的 VM 而无法扩展时,子网迁移非常有用。 在这种情况下,可以创建新的更大的子网并将 VM 迁移到新子网,然后在迁移完成后,可以删除旧的空子网。
如何将 VM 移到另一个子网
若要移动 VM,请使用以下示例作为模板运行 Set-AzureSubnet PowerShell cmdlet。 在下面的示例中,我们将 TestVM 从其当前子网移动到 Subnet-2。 请务必编辑示例以反映环境。 请注意,每当在过程中运行 Update-AzureVM cmdlet 时,它将在更新过程中重启 VM。
Get-AzureVM –ServiceName TestVMCloud –Name TestVM `
| Set-AzureSubnet –SubnetNames Subnet-2 `
| Update-AzureVM
如果为 VM 指定了静态内部专用 IP,则必须清除该设置,然后才能将 VM 移到新子网。 在这种情况下,请使用以下内容:
Get-AzureVM -ServiceName TestVMCloud -Name TestVM `
| Remove-AzureStaticVNetIP `
| Update-AzureVM
Get-AzureVM -ServiceName TestVMCloud -Name TestVM `
| Set-AzureSubnet -SubnetNames Subnet-2 `
| Update-AzureVM
将角色实例移到另一个子网
若要移动角色实例,请编辑 CSCFG 文件。 在以下示例中,我们将虚拟网络中的“Role0”从其当前子网移动到 Subnet-2VNETName。 由于角色实例已部署,因此只需更改子网名称 = Subnet-2。 请务必编辑示例以反映环境。
<NetworkConfiguration>
<VirtualNetworkSite name="VNETName" />
<AddressAssignments>
<InstanceAddress roleName="Role0">
<Subnets><Subnet name="Subnet-2" /></Subnets>
</InstanceAddress>
</AddressAssignments>
</NetworkConfiguration>