Azure运维系列10:跨订阅迁移ARM虚拟机

简介:

在使用Azure VM的过程中,我们可能会遇到移动虚拟机的需求,比如从区域A移动到区域B去,甚至有可能需要跨订阅的对虚拟机进行迁移。在以前我们通过Azcopy可以很方便的完成存储的迁移,今天我们要分享的是通过Azure Storage Explorer来完成存储迁移,再通过Azure PowerShell快速的完成其他资源的迁移。

首先,我们需要在Azure Storage Explorer里面添加不同订阅的帐户。然后找到源虚拟机的VHD文件,右键选择copy。
Azure运维系列10:跨订阅迁移ARM虚拟机

然后我们直接在目标存储帐户对应的blob容器中进行粘贴。

Azure运维系列10:跨订阅迁移ARM虚拟机

我们可以在下方看到存储迁移的进度,也可以通过PowerShell更直观的看到VHD的移动进展。

Azure运维系列10:跨订阅迁移ARM虚拟机

然后在存储帐户中找到Blob存储,找到对应的VHD文件,并复制它的URL。
Azure运维系列10:跨订阅迁移ARM虚拟机

接下来就要用到我们的PowerShell了,如果没有安装,请在以下地址下载最新版Azure PowerShell:
https://github.com/Azure/azure-powershell/releases
Azure运维系列10:跨订阅迁移ARM虚拟机

关于更多安装和使用Azure PowerShell的文章请浏览:
http://reinember.blog.51cto.com/2919431/1857099

然后我们通过PowerShell 完成登录,这里我的环境还是国内由世纪互联提供的Azure服务。
Login-AzureRmAccount -EnvironmentName azurechinacloud
Azure运维系列10:跨订阅迁移ARM虚拟机

然后我们提前定义以下变量信息:
$VMNAME = "虚拟机名称"
$RG="资源组"
$VNETNAME=$RG+"-VNET"
$SUBNETNAME=$RG+"-SUBNET"
$NSGNAME=$RG+"-NSG"
$OSDN = $VMNAME + "_OSDisk"
$OSDU = "https://rstorageaccount.blob.core.chinacloudapi.cn/vhds/XXXXXXXXXXXXXXXXX.vhd"
$LOC="China North"
以上信息的命名是自定义的,其中OSDU是我们前面复制的VHD的URL地址。
Azure运维系列10:跨订阅迁移ARM虚拟机

然后我们通过以下命令来重建虚拟网络:
$vnet=New-AzureRmVirtualNetwork -Name $VNETNAME -ResourceGroupName $RG -Location $LOC -AddressPrefix 11.0.0.0/24
Azure运维系列10:跨订阅迁移ARM虚拟机

通过以下命令重建网络安全规则:(可以使用多条此命令添加多个规则)
$nsgrule = New-AzureRmNetworkSecurityRuleConfig -Name RDP -Description "Allow RDP" -Access Allow -Protocol Tcp -Direction Inbound -Priority 100 -SourceAddressPrefix Internet -SourcePortRange -DestinationAddressPrefix -DestinationPortRange 3389
Azure运维系列10:跨订阅迁移ARM虚拟机

然后使用以下命令重建网络安全组:
$nsg = New-AzureRmNetworkSecurityGroup -ResourceGroupName $RG -Location $LOC -Name $NSGNAME -SecurityRules $nsgrule
Azure运维系列10:跨订阅迁移ARM虚拟机

重新添加子网配置:
Add-AzureRmVirtualNetworkSubnetConfig -Name $SUBNETNAME -VirtualNetwork $vnet -AddressPrefix 11.0.0.0/24 -NetworkSecurityGroup $nsg
Azure运维系列10:跨订阅迁移ARM虚拟机

完成子网配置:
$vnet=Set-AzureRmVirtualNetwork -VirtualNetwork $vnet
Azure运维系列10:跨订阅迁移ARM虚拟机

通过以下命令获取子网ID:
$subnet = Get-AzureRmVirtualNetworkSubnetConfig -Name $SUBNETNAME -VirtualNetwork $vnet
可以通过以下命令检查输出结果:
$subnet.id 
Azure运维系列10:跨订阅迁移ARM虚拟机

重新为虚拟机创建公网IP地址,当然这是按需创建的,在此命令中我们可以指定是创建动态公网地址还是静态公网地址,通过AllocationMethod参数进行控制。
$pip =New-AzureRmPublicIpAddress -Name $VMNAME"-PIP" -ResourceGroupName $RG -Location $LOC -AllocationMethod Static -IpAddressVersion IPv4 -Force
Azure运维系列10:跨订阅迁移ARM虚拟机

重新为虚拟机创建网络接口卡,也就是虚拟机的网卡。需要使用到我们前面已经创建好的子网、公网IP地址以及网络安全组信息。
$nic = New-AzureRmNetworkInterface -Name $VMNAME"-NIC" -ResourceGroupName $RG -Location $LOC -SubnetId $subnet.id -PublicIpAddressId $pip.id -NetworkSecurityGroupid $nsg.id
Azure运维系列10:跨订阅迁移ARM虚拟机

一切就绪,将所有配置信息全部添加到我们虚拟机的配置信息中,其中VMSize是可以自己控制的,如果不清楚当前区域有哪些虚拟机大小,可以通过Get-AzureRmVMSize命令来查看。
$vmconfig = New-AzureRmVMConfig -VMName $VMNAEME -VMSize Standard_D2 |Set-AzureRmVMOSDisk -Name $OSDN -VhdUri $OSDU -CreateOption Attach -Windows | Add-AzureRmVMNetworkInterface -Id $nic.id -Primary
Azure运维系列10:跨订阅迁移ARM虚拟机

最后一步当然是创建虚拟机了,通过新建虚拟机命令,完成虚拟机的迁移重建,这里我没有截图,完成之后会有一个返回创建成果的显示:
New-AzureRmVM -ResourceGroupName $RG -Location $LOC -VM $vmconfig

完成之后,就可以在管理门户中,查看虚拟机的状态了,如果是正在运行,那就已经迁移完成了,整个过程还是非常简单的,可以快速、跨地域的完成虚拟机迁移,再也不用担心虚拟机位置不能变的问题了。







 本文转自 reinxu 51CTO博客,原文链接:http://blog.51cto.com/reinember/2045558,如需转载请自行联系原作者

相关文章
|
安全 Linux 开发工具
【Azure 环境】Azure 虚拟机上部署 DeepSeek R1 模型教程(1.5B参数)【失败】
遇见错误一:operator torchvision::nms does not exist 遇见错误二:RuntimeError: Failed to infer device type
1321 22
|
API 网络架构 开发者
【Azure 环境】调用Azure RunCommand 的REST API 设置虚拟机的环境变量(SetEnvironmentVariable)
【Azure 环境】调用Azure RunCommand 的REST API 设置虚拟机的环境变量(SetEnvironmentVariable)
197 0
|
安全 Windows
【Azure 环境】Azure 的PaaS服务如果涉及到安全漏洞问题后,我们如何确认所用服务的实例(VM:虚拟机)的操作系统已修复该补丁呢?
【Azure 环境】Azure 的PaaS服务如果涉及到安全漏洞问题后,我们如何确认所用服务的实例(VM:虚拟机)的操作系统已修复该补丁呢?
264 0
|
安全 网络安全
【Azure 环境】当本地网络通过ER专线与Azure云上多个虚拟网络打通,如何通过特定的网络策略来限制本地部分网段访问云上虚拟机22端口?
【Azure 环境】当本地网络通过ER专线与Azure云上多个虚拟网络打通,如何通过特定的网络策略来限制本地部分网段访问云上虚拟机22端口?
267 0
|
API 网络架构
【Azure Developer】如何通过Azure REST API 获取到虚拟机(VM)所使用的公共IP地址信息
【Azure Developer】如何通过Azure REST API 获取到虚拟机(VM)所使用的公共IP地址信息
222 0
|
存储 机器学习/深度学习 数据库
阿里云服务器X86/ARM/GPU/裸金属/超算五大架构技术特点、场景适配参考
在云计算技术飞速发展的当下,云计算已经渗透到各个行业,成为企业数字化转型的关键驱动力。选择合适的云服务器架构对于提升业务效率、降低成本至关重要。阿里云提供了多样化的云服务器架构选择,包括X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及高性能计算等。本文将深入解析这些架构的特点、优势及适用场景,以供大家了解和选择参考。
1566 61
|
消息中间件 数据可视化 Kafka
docker arm架构部署kafka要点
本内容介绍了基于 Docker 的容器化解决方案,包含以下部分: 1. **Docker 容器管理**:通过 Portainer 可视化管理工具实现对主节点和代理节点的统一管理。 2. **Kafka 可视化工具**:部署 Kafka-UI 以图形化方式监控和管理 Kafka 集群,支持动态配置功能, 3. **Kafka 安装与配置**:基于 Bitnami Kafka 镜像,提供完整的 Kafka 集群配置示例,涵盖 KRaft 模式、性能调优参数及数据持久化设置,适用于高可用生产环境。 以上方案适合 ARM64 架构,为用户提供了一站式的容器化管理和消息队列解决方案。
1133 10
|
存储 机器学习/深度学习 算法
阿里云X86/ARM/GPU/裸金属/超算等五大服务器架构技术特点、场景适配与选型策略
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别。本文将深入解析这些架构的特点、优势及适用场景,帮助用户更好地根据实际需求做出选择。
|
弹性计算 编解码 运维
飞天技术沙龙回顾:业务创新新选择,倚天 Arm 架构深入探讨
飞天技术沙龙回顾:业务创新新选择,倚天 Arm 架构深入探讨
439 1