使用CloudEndure迁移Windows环境到AWS

一、背景

CloudEndure是一套基于存储块复制技术的迁移工具,可以用于上云迁移或异地容灾。本文描述如何将一个Windows环境迁移到AWS中国区域。

二、CloudEndure环境准备

1、IAM权限配置

进入AWS控制台,进入IAM模块,进入策略菜单,点击新建策略。如下截图。

在新建策略界面中,点击JSON按钮,直接输入策略配置。

请从这里下载适合AWS中国区域的IAM策略。如下截图中使用的策略与CloudEndure英文官方文档的策略的区别是为中国区IAM增加了aws-cn标识,其他部分与海外英文文档的配置一致。如下截图。

输入策略名称,点击创建策略完成。如下截图。

至此策略创建完成。

2、创建CloudEndure操作用户和API Key

进入IAM,点击用户标签,点击新建用户。如下截图。

在设置用户名界面,输入cloudendure作为用户名,然后选择“Programmatic access”,近赋予这个用户API访问权限,不提供Console控制台的图形界面登录权限。然后点击下一步继续。如下截图。

在选择权限和策略界面,点击第三个按钮,直接挂载策略,然后从搜索框中,搜索上一步生成的策略,选中后点击下一步继续。如下截图。

在IAM的下一步设置标签(Tag)界面可以跳过,点击Review继续。

在创建用户的最后一步,点击创建完成创建。此时界面上会生成这个用户的API Access Key和密钥,点击Download.csv下载到本机。

注意:只能下载一次,如果丢失,需要重新建立新的。如下截图。

请妥善保存好API Key,稍后将在CloudEndure界面中使用。

如果使用中需要更换API Access Key和密钥,则可以进入IAM用户界面,找到当前用户,在安全凭证下,可以生成新的Key。如下截图。

至此生成API Access Key完成。

3、新建CloudEndure项目

访问这里登录CloudEndure中国区域控制台。如下截图。

登录成功后,点击左上角的按钮新建Project。如下截图。

在创建项目界面,输入Project名称,例如myapp,选择Project Type为“Migration”。这里注意不通的Project Type会涉及到不同的License类型。如果是迁移上AWS,必须将类型选择为Migration。然后在Target Infrastructure位置将自动显示为AWS。点击 Create Project 继续。

创建项目完成,页面将进入向导界面。点击Start按钮继续。如下截图。

至此新建Project完成。

4、初始化Project

接上一步,界面提示尚未初始化,点击Continue继续。如下截图。

在向导的第一步,要求设置API Access Key。在Setup & Info界面下的Credentials标签页下,输入前文生成的 API密钥,并点击保存。如下截图。

接下来向导自动跳转到Replication Setting界面,在Source选项中,选择要迁移的原始环境是Other Infrastructure,即非AWS的基础设施。然后在target选项中,选择要迁移使用的AWS Region,本文选择宁夏区域(ZHY)。如下截图。

选择完毕Source和Target区域后,继续配置后续选项。

  • Replication Server Type:复制实例的类型。这是一个用于数据中转和持续复制的实例,默认一般选T3系列,为了加快复制,可以选择性能较高的c4.large型号。
  • Converter Instance Type:选择转换实例的类型。这是在数据复制完成后,生成Staging测试服务器和磁盘快照过程的中间实例。为加速转换,建议设置为m5.xlarge/m4.xlarge。
  • Use dedicated Replication Server:不要选中
  • 磁盘类型:选择Use fast SSD data disks
  • Subnet:选择default。
  • Security Group:选择default
  • VPN或Direct Connect:不要选中

如下截图。

在设置子网的选项上需要注意,如果客户生产环境有多个VPC和多个Subnet,请无比选择一个Public Subnet。此外,如果客户删除了本账号下的Default VPC,那么这里将会提示创建复制实例错误,必须手工指定正确的子网方可继续。

继续向下滚动页面,在页面最下方,设置迁移实例使用的标签(tag),这样便于区分。此外,带宽限制根据实际情况,可以选择Disable(不限制带宽),或者限制在1Mbps~10Gbps之间。建议最低提供50Mbps以上,否则迁移速度过慢,可能导致一直无法同步完成。如下截图。

点击右下角的Save Replication Setting完成设置。

此时安装向导提示项目设置完成。点击Show Me How就将进入下一个章节。如下截图。

至此Project设置完成。

三、部署Agent并启动数据传输

1、下载并安装Agent

CloudEndure要求迁移的源服务器必须能向外网访问TCP 443(注册CloudEndure)和TCP 1500(复制磁盘数据)两个端口。请在防火墙上的出栈方向放开这两个端口。如果要迁移的源是云上环境,一般云上都默认放行所有出栈流量,因此将不会有额外网络配置问题。另外,CloudEndure可以自动安装AWS驱动程序,包括ENA网卡驱动和NVMe磁盘驱动,因此不需要额外加装驱动。

在前文完成了CloudEndure项目配置后,系统将来到Machines界面。页面右侧将提示本次迁移的Agent下载地址和认证码。如下截图。

现在登录到要迁移的Windows服务器上。并下载Agent。如下截图。

下载时候不要直接通过浏览器运行这个Agent,而是在命令行下运行。将前文Machine页面上提示的下载URL复制下来,在要迁移的Windows Server的命令行下运行。注意,需要以管理员权限执行。如下截图。

在上述命令运行后,可以看到Agent自动下载了有关组件,并完成安装部署。部署完成的情况下,将显示“Installation finished successfully.”。如果提示别的信息,则意味着安装有问题。

现在返回CloudEndure,可以看到CloudEndure控制台提示发现了一台要迁移的机器,并且将自动进入首次全量数据复制阶段。

至此表明迁移工作的第一步全量数据复制已经启动。

2、配置蓝图(Blueprint)

在CloudEndure的Machine界面上,点击机器的名字,即可进入详情界面。进入详情界面后,点击标签页Source,即可看到源虚拟机的信息。例如本文档迁移的机器是阿里云上的ECS云服务器,因此在系统服务中,可以看到阿里云安骑士杀毒软件的后台服务。如下截图。

上文中的原始环境(Source)来自阿里云,因此在迁移成功后,还需要写在阿里云自带的安骑士等杀毒软件。如果是从自有IDC内迁移上云,则不需要面对此问题。

点击右侧第二个标签页,蓝图(Blueprint),即可进入对迁移后的目标服务器的配置。Blueprint的配置项主要是指定打给你迁移完成后,系统拉起的正式环境的计算规格、磁盘、网络、安全组等配置。如下截图。

在上述截图中,主要配置项如下:

  • Machine Type:启动后的主机类型
  • Launch Type:On-Demand或者Dedicate
  • Subnet:子网(对应不同AZ)
  • Security Group:安全组(需要提前建好,可选清单是通过API从AWS上同步过来)
  • Private IP:重新生成内网IP,选Create New
  • Elastic IP:弹性IP,根据本机和子网类型酌情选择,这里选择Create New

继续向下滚动界面。后续选项设定如下:

  • Placement Group:放置组,不是HPC等特殊应用无需调整,选择None即可
  • IAM Role:为EC2挂载IAM角色,没有使用这个功能选None即可。
  • Use Existing Instance ID:留空
  • Initial Target Status:迁移完毕拉起后是启动状态,选择Started
  • Tag:标签,设置EC2标签,如果要设置名称,注意首字母Name是大写N
  • 磁盘类型,页面上默认是IO1,如果希望希望节约成本,选择了为SSD即可,代表GP2类型

设置完毕,点击保存蓝图(Save Blueprint)。如下截图。

至此对蓝图配置完成。

等待一段时间后,复制数据的进度达到100%,标识复制完成,可以启动实例。如下截图。

至此全量复制完成。系统转入自动的增量状态。

3、启动测试

进入CloudEndure的Machine界面,点击首次全量数据复制完成的云服务器,可以看到左侧显示它的状态是“Never Tested”,且Lag是None。这表示本虚拟机没有经过测试,另外持续数据复制是正常的,网络良好,没有延迟。

点击Launch按钮,在弹出的狂中选择“Test Mode”,即可为本次迁移的云服务器在AWS上生成测试用EC2(也就是所谓Staging环境)。如下截图。

在弹出的测试环境的对话框中提示,一个迁移实例只能有一个测试环境,如果此前曾经发起过测试,那么现在进入测试将自动删除掉以前的测试虚拟机。点击Continue继续。如下截图。

在点击了继续按钮后,CloudEndure将花费数分钟,从当前数据持续复制的状态中生成一个时间点,完成一份快照,然后将这个时间点的快照作为测试环境的系统盘,启动一个新的EC2,交付测试。此时可以点击左侧的Job Progress按钮,即可看到系统后台的任务正在进行快照和虚拟机转换。如下截图。

现在进入AWS控制台,选择本次迁移的目标区域宁夏区域,查看EC2清单,可以看到有两台EC2。如下截图。

在如上截图的两个EC2中,第一个名为Replication Server的是负责全量数据复制和增量数据复制的复制实例。这个实例会一直存在本AWS区域内,知道CloudEndure上的项目(Project)被删除。另一个实例叫做Machine Converter,这个实例是完成全量复制后,启动Test环境或者启动最终生产环境过程中的一个中间实例。这个实例将用于从全量复制和增量复制的时间点生成磁盘快照。在环境启动完成后,这个Converter实例会自动把自己删除。下次需要转换时候会自动再启动和出现完成转换。

在本步骤中,只需要等待数分钟即可。

现在回到CloudEndure控制台,查看Job Progress,可以看到通过快照生成测试环境的任务已经完成,如下截图。

在准备测试环境完成后,回到AWS EC2控制台,可以在EC2清单中看到,刚才提到的临时的Converter实例在完成任务后就自动销毁,测试用的EC2实例也生成完毕,其规格、子网、EIP配置都是咨询迁移过程的Blueprint蓝图设置的。如下截图。

现在使用RDP客户端,登录测试环境的EIP,即可通过远程桌面访问到测试环境。登录后,Windows Server会提示上一次是意外关闭,这个提示没有关系是正常的,因为CloudEndure迁移工具是采用磁盘块复制技术,将磁盘复制到远程,复制过来的磁盘上没有第一次引导Windows的信息,所以Windows自己检测为异常启动。不影响数据和测试。如下截图。

现在即可开始迁移过来的应用程序测试。

4、测试注意事项

测试过程注意事项:

  • 测试建议1~2周,主要考察业务功能运行,期间源服务器将继续进行增量复制,复制情况和随时观察CloudEndure界面的复制延迟;
  • 测试环境内包含数据的时间节点是以按下Test Mode那一刻为准,按下Test Mode将生成新的虚拟机快照时候;此时,后续增量数据还在持续不断的复制,但是只会被CloudEndure平台接受,而不是进入已经启动的测试实例;也就说,启动测试实例那一刻,测试实例就和源服务器断开复制;
  • 对一个实例,一次只能启动一个测试实例,启动新的测试实例将删除现有测试实例;
  • 如果业务测试需要拉取最新的数据,那么可选择对本台迁移服务器重新生成一个新的测试实例,即可包含当前快照时间点最新的数据,上一个测试实例自动删除;
  • 测试实例在EC2内可以进行重启等操作;
  • 请不要通过AWS EC2控制台对本实例做配置变更,如果需要调整EC2型号和配置,或者调整网络设置,请到CloudEndure界面,修改本云服务器对应的蓝图(Blueprint),然后在CloudEndure上启动新的测试实例。

至此测试过程完成。

四、割接并发布生产环境

1、启动生产实例

进入CloudEndure控制台,点击经过测试的服务器,点击Launch,选择Cutover。如下截图。

在提示的对话框中选择Continue。此时本实例对应的测试实例将被自动关闭,将在Cutover时刻生成快照,运行最终切换的生产环境的实例。如下截图。

生产实例的转换进度可以通过Job Progress界面可以看到。如果之前有多个job在云心给,点击页面上方的任务切换对话框,就可以看到正在运行的Cutover任务。如下截图。

在任务过程中,CloudEndure将自动关闭旧的Test实例,启动新的Converter转换实例,生成最新快照,并生成新的Cutover生产环境实例。

等待一段时间后,就可以从EC2界面上看到Cutover实例了。如下截图。

接下来即可测试下数据是否是基于最新的增量启动的,如果没有问题,便可以做系统割接了。

2、中断数据复制

需要注意的是,启动了Cutover,并不意味着从原始环境到目标环境的数据复制中断,后台其实还在继续增量复制。如果Cutover遇到问题,还可以重新创建一个新的Cutover实例,此时系统会自动删除旧的Cutover实例,重新合并增量复制结果,生成新的快照,启动新的实例。如下截图。

因此,Cutover不会自动切断持续数据复制。当确认系统割接后,需要手动断开数据复制。

在CloudEndure控制台上找到正在复制的实例,点击左下角的Action按钮,在弹出菜单中选择Stop Replication,这将停止复制。如下截图。

点击停止后,系统提示是否要停止,点击Continue停止。如下截图。

停止持续数据复制成功。如果希望再次启动复制,可以点击左侧的开始复制。如下截图。

至此就切断了持续数据复制。

3、从CloudEndure中移除源服务器

在迁移完成后,可以在CloudEndure控制台上将本迁移的服务器做移除操作。此操作不会影响原服务器的运行,只是在CloudEndure控制台的清单中删除掉自己,不在显示。

点击左下角的Action按钮,从弹出菜单中选择Remove From The Console 。如下截图。

此时界面将提示是否要继续移除本服务器,这个过程还将从源服务器上卸载CloudEndure后台服务。点击Continue继续。如下截图。

自动卸载Agent过程需要一定的时间。我们可以通过Windows的服务管理器上看到,CloudEndure自动安装了一系列后台服务。如下截图。

现在等待一段时间的卸载,对原服务器的服列表做刷新操作,可以看到CloudEndure系列服务都卸载完毕。

未来原服务器一直没有下线,还需要迁移,那么需要再次安装Agent才可以重新添加回来。

至此操作完成。

五、注意事项

以下为注意事项:

  • 4系列和T2实例是一种类型,5系列和T3实例是一个类型;
  • 迁移Windows Server 2008R2系统,还需要在源节点手工安装4系列的PV Driver和5系列的ENA/NVMe驱动;
  • 迁移Windows Server 2012以上系统,CloudEndure会在迁移过程中给,自动在系统盘内插入5系列驱动,可以直接启动5系列实例;
  • 迁移Windows服务器到AWS后,EC2将自动使用AWS的License的激活,对Windows实例收费的价格也将按照Windows实例规格进行收费。

六、小结

本文介绍了如何使用CloudEndure将Windows虚拟机迁移到AWS上,迁移Linux环境的过程与Windows基本相同。除此以外,CloudEndure还可以实现跨Region容灾场景场景,通过磁盘块级别的持续数据复制,可大大缩短RTO恢复时间。容灾场景请参考相关说明。

全文完。