Azure 虚拟机能很容易地导出 vhd 并迁移到各种环境中,包含本地及云端环境,或者迁移至其他区域。这为开发、测试、扩展带来了极大的便利。本文以阿里云为例,阐述如何将Windows Server 的虚拟机迁移到 Azure 环境,同时能保存虚拟机内的数据,不需重新部署应用的方法。
主要步骤
迁移的主要步骤分为:准备环境、调整服务器配置、导出磁盘、上传磁盘,建立新的虚拟机。在这几个步骤中,调整服务器配置将对阿里云中的配置进行调整以符合 Azure 的需求,因此将会涉及一些影响在阿里云运行的调整。有几个推荐的做法:
- 在调整前进行,操作错误时可进行
- 如本地有 Hyper-V 机器,可先进行导出磁盘再进行调整服务器配置
因此,根据你的策略,流程可分为
1.准备环境=>调整服务器配置=>导出磁盘=>上传磁盘=>建立新的虚拟机
2.准备环境=>导出磁盘=>调整服务器配置=>上传磁盘=>建立新的虚拟机
由于修改服务配置可能造成云端服务中断,而在本地则需要额外的资源及较长的操作时间,你可根据需要决定选择何种流程,以下我们将针对各步骤进行详细说明。
准备环境
首先,推荐先对现有磁盘进行。
接着,为了导出虚拟机的磁盘,我们需要挂载数据盘以存放导出的虚拟磁盘文件(.vhd),大小建议为需要备份的磁盘大小的两倍,详细方法请参考,值得提醒的是,除了在阿里云控制台进行挂载,也需要在操作系统内。
最后,为了准备上传磁盘的空间,需要在 Azure 上创建一个存储账户,值得注意的是这个存储账户必须与虚拟机是同一种类型,这边采用的是资源管理模式(Azure Resource Manager),进行,同时请创建一个容器(container),名为 vhds。
调整服务器配置
在此步骤中,我们将进行服务器的调整以兼容于Azure的环境。
1. 用具有管理员权限的账户登入阿里云的Windows Server虚拟
2. 在阿里云的虚拟机内下载
3. 解压缩工具包
4. 执行 AliyunWindowsPreparation.ps1
此脚本将会修改 Windows Server 的配置并安装 Azure 的 Agent 。至此,已完成迁移至 Azure 的准备。
导出磁盘
在 Windows Server 中,我们所使用的工具是 ,在之前下载的内 tools 的文件夹已经包含,或者也可以单独下载。
执行这个 disk2vhd,选择要备份的磁盘并将备份的目标路径指向刚才挂载的磁盘上,并取消勾选 use vhdx,最后点选 create。
等待直至导出磁盘完成。
上传磁盘
在此我们将运用 Azure PowerShell 将刚才导出的磁盘上传至先前创建的存储账户中。
用具有管理员权限的账户登入阿里云的 Windows Server 虚拟机
在阿里云的虚拟机内下载 (若之前下载过可省略2.3.步骤)
解压缩工具包
在 tools 文件夹中,执行 vhdUploader.ps1
vhdUploader 将会进行下列步骤:
1. 输入 Azure 订阅名称
2. 输入要上传的目标存储账户
3. 安装 Azure PowerShell 模组
4. 输入 Azure 账号及密码
5. 进行磁盘上传
等待直至上传完成,记录磁盘的 url,或到 查询刚才上传的磁盘的 url 。
建立新的虚拟机
当上述步骤都已经完成,可以点选下面图标根据你上传的磁盘 url 创建机器。
在栏位中依序填入 VM 创建的地点,刚才上传的系统磁盘 url,OS 类型(这边应该选 Windows),VM 的大小及 VM 的名称。接着点选创建,虚拟机将开始进行部署。过一段时间之后,便可以连结上你所迁移的机器了。
===============
其他有关虚拟机迁移的文章:
欢迎有兴趣的朋友多多交流
A究院研究生 Azurecommunity@qq.com