Windows Server: 将虚拟机迁移到 Azure (以阿里云为例)

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 中,我们所使用的工具是 disk2vhd,在之前下载的工具包内 tools 的文件夹已经包含,或者也可以单独下载。

执行这个 disk2vhd,选择要备份的磁盘并将备份的目标路径指向刚才挂载的磁盘上,并取消勾选 use vhdx,最后点选 create

等待直至导出磁盘完成。

上传磁盘

在此我们将运用 Azure PowerShell 将刚才导出的磁盘上传至先前创建的存储账户中。

  1. 用具有管理员权限的账户登入阿里云的 Windows Server 虚拟机。
  2. 在阿里云的虚拟机内下载工具包 (若之前下载过可省略 2.3. 步骤)。
  3. 解压缩工具包。
  4. 在 tools 文件夹中,执行 vhdUploader.ps1。

vhdUploader 将会进行下列步骤:

  1. 输入 Azure 订阅名称。
  2. 输入要上传的目标存储账户。
  3. 安装 Azure PowerShell 模组。
  4. 输入 Azure 账号及密码。
  5. 进行磁盘上传。

等待直至上传完成,记录磁盘的 url,或到 Azure 门户查询刚才上传的磁盘的 url。

建立新的虚拟机

当上述步骤都已经完成,可以点选下面图标根据你上传的磁盘 url 创建机器。

deploy

在栏位中依序填入 VM 创建的地点,刚才上传的系统磁盘 url,OS 类型(这边应该选 Windows),VM 的大小及 VM 的名称。

接着点选创建,虚拟机将开始进行部署。过一段时间之后,便可以连结上你所迁移的机器了。