CloudOps云上运维系列课程第四节由阿里云弹性计算技术专家白辉万主讲《ECS多场景迁移上云最佳实践》。
随着云计算领域的蓬勃发展,企业数字化转型已然是大趋势。在上云的过程中,企业将IT核心资产服务器应用迁移上云是很常见的操作。而服务器应用的迁移在很多时候不是一件简单轻松的工作,因为其操作门槛高、花费成本大,往往成为上云路上的第一道拦路虎。今天的课程围绕ECS服务器多场景迁移上云最佳实践展开,主要分享的内容有以下三点。
1. 如何将线下服务迁移上云
服务器平台应用的常见场景可以见下图:
服务器平台应用工作负载架构如下图,架构分为上下两层,底层是Host平台,上层是Guest OS,从名称可以理解为他们是主客的关系,线下常见的Host平台一般有自建IDC机房里的物理机、虚拟机,还有一种常见的是个人PC桌面。
Guest OS层又主要分为:
最下层的操作系统,例如Linux、Windows系统,在它上层运行着各种应用软件,例如数据库应用MySQL、SQL Server等,Web网站应用Apache、Nginx、Windows平台的IIS等,文件服务的FTP,还有最后比较常见的桌面服务应用,如个人办公应用、影音编辑软件等生产力应用软件等等。而服务器迁移中的迁移对象说的就是Guest OS层。
线下服务器迁移上云的常见方案策略有:
1.1 线下服务器迁移上云之3R策略
∙ 重新部署(Redeploy):这是一种将应用在云上重新部署的策略,一般适合应用软件安装部署比较简单的场景;
∙ 重构(Refactor):这是一种将应用针对云平台去重新设计开发的策略,适合应用需重新定制优化改进的场景,操作比较复杂;
∙ 重新托管(Rehost):这是一种将应用完整平迁到云上的策略。它的实际效果就像是给服务器的GuestOS直接更换了一个Host平台,而GuestOS里的操作系统应用软件数据都原封不动。这个方式是三种方式里最省心最省力的,是一种比较理想比较方便的迁移方式,也是接下来主要讨论的策略方案。
对于线下服务器,如果想把Guest os直接拿到云上去启动,是不一定能够正常跑起来的,为什么?主要原因是线下服务器系统和云上ECS系统有比较大的差异。
第一个是硬件驱动不同。线下的服务器系统用的都是通用磁盘等硬件驱动,但是到了云上ECS上面,系统用的是虚拟化的硬件驱动,比如现在主流的KVM Virtio驱动,同时也是最大、最关键的差异点。
第二个是系统配置不同。线下服务器一般的系统配置例如启动引导配置、磁盘挂载、网络配置都不太统一,各个发行版本都有各自的规则,云上的ECS系统配置相对统一,磁盘网络、配置系统都是相对比较规范的。
第三点是依赖的软件不同,线下服务器系统一般没有系统初始化或者配置软件,可能一些比较有条件的企业会在系统里装一些自动化批量运维的工具,这种方案非常多,但是没有统一的配置。云上不同的是原生自带的初始化配置的软件,包括cloud-init、云助手软件等。
正是因为有这些差异,线下的服务系统迁移上云前需要做一些Guest OS系统的适配工作,以避免上云后服务器系统内部无法正常运行,阿里云平台针对这些情况提供了ECS云服务器Guest OS的镜像标准规范以及提供了相应的制作镜像、导入镜像的流程。
1.2 线下服务器迁移方案-导入镜像
首先要理解镜像的概念。镜像可以理解为服务器Guest OS模板,有了这个模板就可以去云上面创建云服务器,下面以Linux为例看一下大概的过程。
导入镜像的第一步就是需要先去查阅下导入镜像必读规范,然后准备Linux镜像文件,可以用虚拟机安装操作系统,在里面安装需要的应用软件,参考镜像规范安装云上必要的插件,比如cloud-init、Virtio驱动,还有一些定制化需求的一些配置;
第二步检测镜像是否满足规范,可以用云上的自动化镜像检测的工具;
第三步把整个系统做成镜像文件,上传到阿里云的OSS,再通过ECS导入自定义镜像的功能最终做成可用的ECS镜像。
从这边可以看出手动导入自定义镜像的方式有较多操作步骤,首先客户需要熟悉整个ECS操作系统的规范,包括后面需要上手安装配置的系统和必要的组件,整个操作过程是有操作门槛的,针对这个情况阿里云还提供了另外一种自动化迁移的方案。
1.3 线下服务器迁移方案-SMC自动化迁移
SMC迁移的流程是:左边是线下服务系统例如物理机、虚拟机、特定的VMware虚拟机、个人的PC桌面,通过服务器迁移中心SMC自动化迁移产品工具,可以迁移到阿里云(最右面的服务器)包括通用的ECS服务器、轻量应用服务器、无影云桌面服务器。自动化迁移产品SMC具体是什么呢?下面来简单介绍一下。
1.4 SMC自动化迁移简介
服务器迁移中心(Server Migration Center,简称SMC),是阿里云的一款免费的自助式服务器迁移产品。专注于提供能力普惠、体验一致、效率至上的迁移服务。
SMC迁移上云的一个目标是:Any Platform To Alibaba Cloud,就是支持所有主流的服务器平台的机器迁移到阿里云。
1.5 SMC自动化迁移操作步骤
步骤一:导入迁移源
步骤二:创建迁移任务
主要分为两步,第一步导入迁移源。原理是在源系统里安装SMC的客户端代理工具,把它运行起来。
SMC也提供了好几种白屏化自动化导入的方式,第一种是可以通过控制台一键自动导入,需要走公网IP远程连接原服务器系统,是有条件的。第二种选择使用命令行的方式,在SMC控制台获取命令行激活码的命令,拿到原服务器系统执行,就可以一键把原服务器系统导入。第三种是为了满足没有公网访问能力或者无法开放远程连接的服务器场景,也提供了手动下载客户端的方式来导入。
导入迁移源之后,第二步创建迁移任务,只需要选择必要的任务参数,比如目标地域、要迁移的磁盘分区、以及一些其他的必要参数,后续的操作只需要静静等待迁移完成即可,它会自动化完成整个迁移过程,包括前面说过的自动化需要手动在Guest OS里面做云上规范适配的过程,包括到后面上传源系统镜像数据、制作镜像数据的过程全部自动完成。使用SMC自动化迁移是更高效更省心的迁移方式,它大大降低了迁移上云的门槛,让企业一键快捷迁移上云成为可能。
针对线下服务器迁移场景有一些最佳实践的建议。
1.6 线下服务器迁移最佳实践建议
第一是建议迁移演练。迁移演练比较重要的两个点,一个是迁移源检测,客户端运行后会自动检查源环境迁移条件常规项,可选择一键自动修复;第二点是创建迁移演练任务,选择开启迁移演练的开关,填入真实迁移任务参数,等待5分钟就可以跑完真实迁移场景的测试项,包括从源系统环境到目标环境的条件检查,模拟真实的源端到目标端的网络连接、数据传输等一些测试。测试完成之后提供全面的迁移演练报告供客户参考。
第二是迁移实施。对于不同的业务应用场景建议使用不同的迁移功能。对于数据库应用服务器推荐使用增量迁移,前期先不停服全量迁移,在最后割接阶段再停服,然后进行最后一次增量同步,这种方式可缩短停服时间;同理,Web应用服务器使用增量迁移同上,前期先不切换流量,等正式割接后再把域名重新解析到新ECS服务器;对于桌面应用服务器,这种场景使用一次性全量迁移即可,因为PC桌面数据量不太多,主要是里面的应用软件要完整的上云,迁移前只需注意保存好工作文档资料。
第三步迁移验证。这是整个迁移完成之后可以去做的认证的流程。首先建议创建迁移任务时,开启镜像检测,迁移完成后,可提供检查迁移镜像检测报告,显示最后迁移的镜像结果是否符合阿里云ECS规范。其次,也可以选择使用验证迁移结果自动化的功能,原理是在迁移完成后可自动用镜像创建临时ECS服务器,然后跑一些检查系统内部应用是否正常的命令,也会生成迁移验证报告提供参考。
1.7 SMC自动化迁移演练与验证示例
迁移演练报告,迁移镜像检测报告,迁移镜像验证报告
通过这些报告,可以在迁移前后掌握真实的迁移测试或者迁移验证的结果,为后面做正式迁移做好规划评估打好基础。特别推荐一定要做好迁移演练,这是能提升迁移成功率的最大保障。
前面花了较大篇幅讲解如何从线下服务器迁移上云,主要是因为在企业上云是比较常见的场景。现在在CloudOps流行趋势下,可能企业的一些服务器早就在云上了。下面讲解如何从云平台迁移到阿里云。
2. 如何从云平台迁移到阿里云
云平台服务器迁移和线下服务器的迁移相比还是有不同的,云平台服务器迁移有优势也有劣势。
2.1 云平台服务器迁移的优劣势
主要有三个优势和一个劣势。
∙ 第一个优势是底层平台架构相似,主要跟前面讲的硬件驱动有联系。一般的云平台底层都是虚拟化平台,所以硬件驱动都是相似的,它的Guest OS层版本包括里面的软件都是统一的。
∙ 第二个优势是网络访问能力可控,云服务器支持独立公网IP、弹性IP,所以远程连接访问方式和能力都很可控。
∙ 第三是云平台服务器批量运维方案丰富,因为一般都会有支持规模化自动化的运维管理能力。最后的劣势是不同的云平台管理软件不太统一,云系统初始化配置管理软件不同,不同云平台可能会有不兼容甚至影响系统启动的问题。
因为有了这些优势,从其他云平台迁移到阿里云相对来说可能会更方便,但也不能忽略最后这个劣势问题。
那么从其他云平台迁移到阿里云该如何进行呢?
2.2 云平台服务器迁移方案-SMC自动化迁移
整体的流程是:云平台通用服务器、云平台轻量应用服务器、云平台桌面服务器,通过服务器迁移中心SMC自动化迁移方案,选择用合适的方式导入迁移源、创建合适的迁移任务类型,就可以迁移到阿里云对应的服务器类型,包括阿里云的ECS服务器、轻量应用服务器、无影云桌面等。
针对云平台服务器迁移场景也有一些最佳实践的建议。
2.3 云平台服务器迁移最佳实践建议
第一条是一键导入迁移的建议。因为SMC针对云平台服务器迁移做了一些白屏化自动化的一键导入的方式,也可以通过一键迁移的功能将支持的云平台服务器一键导入并迁移;
第二条是跨地域迁移的建议。设想一个场景是要从其他云地区A迁移到阿里云地区B,主要有两个方案:方案1:从其他云地区A迁移到阿里云地区A区域生成镜像,先进行同地区迁移,以保证它能获得一个比较稳定的网络,再用阿里云跨地域镜像复制功能,复制到阿里云地区B。方案2:建议开通高速通道方式,打通从其他云地区A到阿里云地区B的私网,使用SMC私网模式进行传输,同样达到更稳定的更高效的迁移。
第三条是批量迁移的建议。可以在云平台使用云助手等自动化运维工具,方便进行批量下发命令来做一些自动化批量迁移的操作,包括导入迁移源、使用OpenAPI编写自动化脚本批量创建迁移任务等,可并行运行。
2.4 云平台服务器迁移方案-SMC一键迁移
下图是云平台服务器迁移方案-SMC一键迁移的示意图。第一张图是通过一键导入的简单的页面效果,第二张图是可以支持从一台服务器一键迁移的一个功能,目前部分功能还在内测中。
可以看出从云平台迁移可以使用从线下迁移一样的操作,主要还是两个步骤,而从云平台迁移的体感整体比从线下迁移会更简单。得益于SMC的自动化处理能力,它屏蔽掉了各个云平台的差异点,真正可以实现从其他云平台一键迁移到阿里云。
上面两节讨论的都是服务器迁移上云的场景,那么服务器迁移上云之后又有哪些云上迁移场景呢?
3. 云服务器的高效迁移与升级
3.1 ECS服务器云上迁移场景-可用区实例规格变配
假设这样的场景:当前可用区已经买好了一个实例,且当前的实例规格已经不能满足日益增长的使用需要(当前实例规格CPU或内存小了想升级或者大了想降级),但当前可用区又没有可供变配的合适的规格,这样就行成了困局。
针对这个困局有一个思路:能不能把实例迁移到另外一个有合适库存实例规格的可用区?用这种思路来解决当前的需求问题。
下面另一个场景是云服务器可能遇到的比较大的问题。
3.2 ECS服务器云上迁移场景-操作系统EOL
操作系统EOL简单说就是因为很多官方操作系统版本太久远,一些版本在比较早的时间段就进入了官方停止维护服务的阶段,如下图列举了两个最主流的操作系统之一的CentOS的红色曲线,时间列表是在2021年12月的时候CentOS8的版本就已经EOL了,CentOS7也预计在2024年6月份也就是明年的六月份也会正式进入EOL。到了这个时间点之后,整体的CentOS的比率就直接从百分之十五跨越到了百分之九十九,几乎可以说整个CentOS版本都会进入到EOL。
而EOL所带来的比较大的问题,就是系统里面缺少官方的定时定期的软件更新及安全补丁更新,就会导致一系列严重的安全漏洞问题,这个问题在云上很多的EOL版本的操作系统已经显现出来了。针对这个严重的问题,有哪些解决思路呢?最直接的办法就是推荐用户在服务器系统内部做操作系统的迁移,实现OS版本的原地升级,比如CentOS7推荐可以往更新的、有官方支持维护服务的Ali OS操作系统版本去升级。
以上列举了两个云上迁移场景,那么有哪些具体的迁移方案呢?
3.3 ECS服务器云上迁移方案-SMC自动化迁移
整体的迁移流程:左边是上述场景的ECS服务器,通过SMC自动化迁移可以选择创建不同类型的迁移任务,可以选择跨可用区迁移、操作系统迁移,最后迁移到最右面目标的ECS服务器内部,可以实现从可用区A迁移到可用区B,同时把6代的旧规格改成7代的新规格,EOL的旧系统也可以迁移到新版本的系统版本,比如从CentOS7/8迁移到Alibaba Cloud Linux或者龙蜥操作系统,Windows也可以从2008升级到2012或者更高版本。
针对云上ECS迁移,以下是一些最佳实践的建议。
3.4 ECS服务器迁移最佳实践建议
第一点是做好规划,跨可用区和操作系统迁移,都需要ECS实例停机一段时间,会影响源系统业务。建议在这之前做好规划,做好测试评估,选择合适的时间点进行迁移。
第二点也是比较重要的一点:做好备份。首先SMC迁移本身自带备份回滚方案,操作系统迁移前会自动做全盘备份,跨可用区迁移失败会自动回滚,然而对于重要数据,还是强烈建议做好备份。
3.5 总结-企业迁移上云的路径对比
企业迁移上云常规化路径有六步:迁移评估、迁移规划、迁移演练、迁移实施、迁移验证、迁移跟踪。这是业界比较专业和规范的流程。特点是更专业全面,适合大中型高要求迁移业务场景,比如业务RTO秒级甚至不中断迁移。缺点是周期往往长达数月之久,成本巨大,且重度依赖第三方专业迁移咨询与实施团队。
在现在CloudOps的趋势下,企业核心迁移路径是可以做简化的:迁移演练、迁移实施、迁移验证。特点是门槛更低、性价比更高,更适合DevOps趋势下的广大企业应用业务搬迁上云,配合完备的自助式迁移产品方案可实现自动化迁移上云,同时降本增效显著。
3.6 总结-ECS多场景自动化迁移能力表
ECS多场景自动化迁移能力表,主要也是SMC自动迁移能力。SMC目前主要支持公有云和专有云,主要功能入口是SMC控制台的统一迁移中心,包含了两大迁移能力:
第一是迁移上云能力,包括服务器迁移、VMware无代理迁移、桌面迁移、云平台迁移和导入镜像,基本涵盖了所有迁移上云的场景方案,具体也包括了一些核心的迁移功能,例如Guest OS诊断自动修复适配、迁移演练、迁移验证和迁移过程中的几大功能特性,比如一次性全量迁移、自动增量迁移,常用的迁移能力比如断点续传、加密传输、压缩传输,还有导入镜像也提供了一些自动化的工具,比如镜像检测、镜像修复。
第二是云上迁移能力,主要分为两个功能,一是跨可用区迁移,可用的功能点包括支持可用区变更、实例规格变配、保留公网IP、自动回滚;另外一个是操作系统迁移能力,目前已支持CentOS 7/8到Alibaba Coud Linux 2/3) 龙蜥操作系统7/8、商业RedHat 7/8版本的迁移,同时也支持Alibaba Coud Linux 和Windows自身版本的升级,其中windows支持2018到2012,后续也会有更多的操作系统版本的推出。
可以说只要掌握了SMC自动迁移能力和最佳实践,就基本上覆盖了所有ECS迁移场景需求。利用SMC自动迁移能力,无论是助力您自己企业的上云,还是帮助您的客户迁移上云,都是非常合适的。