什么是克隆?
如果您熟悉虚拟化,大概率听说过克隆这个功能。克隆,就是根据源虚拟机,复制生成另外一台(或多台)一模一样的虚拟机。
对于阿里云的ECS用户来说,克隆也是一个常见的场景。比如,当您在某个可用区遇到库存不足的场景的时候,可以选择把您的ECS批量克隆到另外一个可用区。再比如,您已经有了杭州区域的ECS,现在需要做异地的灾备,可以把杭州的ECS克隆到北京。
在阿里云OOS运维编排发布之前,克隆一台ECS是需要在控制台手工进行多个操作步骤,分别是:登录控制台并选中ECS,创建镜像,复制镜像(可选),从镜像创建实例,详见官方帮助文档同一账号下如何克隆ECS实例。由于没有原子的API能力,如果需要自动化的批量克隆,就是一个相当复杂的开发任务了。
一键批量轻松跨区域克隆
现在,借助OOS运维编排的能力,您可以在控制台进行一键克隆了。如果您想了解什么是运维编排,请参考之前的文章 阿里云重磅发布云上自动化利器——运维编排OOS
我们以把两台ECS从上海克隆到美国(硅谷)举例。
首先,请登录OOS的控制台。如果您之前从未开通过OOS服务,请点击“立即开通”按钮,即可一键开通。OOS运维编排是安全免费的服务,请放心开通。
OOS是支持跨区域进行运维操作的,我们可以随意选择一个区域,考虑到效率,我们选择在上海区域进行操作,找到“ACS-ECS-CloneInstancesAcrossRegion”这个公共模板。
点击“创建执行”的按钮,选择“客户了解风险,无需确认”的按钮,点击下一步设置参数。
设置参数页,需要输入如下参数:
- InstanceIds:批量输入ECS的实例ID,这里我们输入两台的ID。
- RegionId:这里指的是已有的源ECS所在的区域的ID,这里是cn-shanghai
- targetRegionId: 这里是us-west-1
- targetInstanceType: 您可以输入不同的实例类型进行升级,但是建议和克隆前保持一致
- targetSecurityGroupId: 目标可用区的安全组ID
- targetVSwitchId: 目标可用区的交换机ID
- targetZoneId: 目的可用区的ID,这里我们使用us-west-1a,如果您不知道该用哪个可用区,可以查看DescribeZones官方帮助文档 ,里面有个调试功能,选择可用区,可以直接列出可用区列表。
接下来,进入OOS控制台的执行管理页,查看执行,可以看到图形化的执行过程。
由于是跨区域克隆,可能会耗费几分钟时间。执行成功之后,在任务的结果输出您可以看到新克隆的ECS的ID。您也可以在目标区域的ECS控制台看到新生成的ECS。
如果执行失败,您可以在执行日志里面看到失败的细节原因,常见的原因包括输入的VSwitchId并不在指定的可用区,或者指定可用区暂时不支持售卖输入的实例类型。
进阶:同区域克隆,一个OpenAPI调用完成批量克隆
另外还有一个公共模板,叫做“ACS-ECS-CloneInstancesAcrossAZ”,可以实现同一个区域内的实例,从一个可用区到另一个可用区的复制,您只需要输入InstanceIds,regionId,targetZoneId等信息,点击执行即可。由于省略了跨区域镜像复制的过程,在同一个区域内克隆ECS会更快一些。
如果您想在同一个可用区内克隆ECS,怎么办呢?很简单的,您仍然可以使用“ACS-ECS-CloneInstancesAcrossAZ”这个模板,只不过输入的targetZoneId和当前ECS所在的ZoneId一样就可以了。
如果您觉得公共模板不够好用,有自己的定制化需求怎么办呢?您可以把公共模板“克隆”一份,保存成自己的自定义模板,然后随意编辑,比如,您可以固化一部分参数到您的模板里,这样您下次执行的时候,就不需要输入这么多复杂的参数了。举例来说,您可以从Parameters里面删除“regionId”这一参数,然后把“RegionId: '{{ regionId }}'”这一行,替换为”RegionId: 'cn-shanghai'”。
更进一步,如果您不喜欢逐个instanceid的输入,可以自定义模板,改成通过指定ecs的tag,把包含有指定tag的ecs全部批量克隆。甚至,您可以把账号下在某个region的ecs,全部克隆到另一个region。您可以参考我们的开源模板库 https://github.com/aliyun/oos-templates 。
如果您想要和自己的运维系统做集成怎么办呢?也比较简单,您可以通过openapi或者sdk触发执行公共模板和自定义模板。API文档:https://help.aliyun.com/document_detail/120771.html
SDK:https://help.aliyun.com/document_detail/120786.html
帮助和支持
如果您有进一步的需求或者寻求技术支持,可以加入钉钉群“运维编排OOS支持群”,群号23330931。我们会有值班人员在线支持。
OOS管理控制台的链接: https://home.console.aliyun.com/redirect.htm?productId=ecs&path=automation/region/
OOS帮助文档的链接
OOS客户支持钉钉群:23330931
阿里云重磅发布云上自动化利器——运维编排OOS
玩转运维编排服务的权限:Assume Role+Pass Role
运维编排场景系列-----给ECS实例自动打TAG
运维编排场景系列----从实例中拷贝文件到OSS
运维编排场景系列----给实例加到SLS机器组