本文主要介绍在专有云V3环境中,临时迁移ECS实例的方法。
方案总览
类别 | 内容 |
风险等级(方案执行的影响) | 低 |
操作方式 | 黑屏 |
操作复杂度 | 中 |
预估执行时长 | 单台ECS实例迁移预计10分钟,具体时间根据迁移实例数量而定 |
客户业务的影响 | 有 |
可监控性 | 不支持 |
有效性(重启、重拉、补丁、升级、扩容等配置是否丢失) | 固化 |
数据修订(变更是否涉及增删改操作) | 无 |
执行灰度策略 | 一个实例成功迁移至目标物理机,并且状态为running后,再进行下一个实例的迁移 |
首次发布时间 | N/A |
预计完成时间 | N/A |
说明:
- 实例冷迁移适用于专有云V3.0~V3.11环境,包含V3.0和V3.11环境。
- 实例热迁移适用于专有云V3.3~V3.11环境,包含V3.3和V3.11环境。
当ECS物理机异常时,可能存在热迁移失败的情况,如热迁移失败,需要使用冷迁移,冷迁移需要停止ECS实例,然后进行迁移。
ECS实例所在的宿主机宕机或异常,导致ECS实例长时间未主动迁移。
登录ECS实例所在的集群AG,查看该实例信息。
go2which [$Instance_ID]
说明:[$Instance_ID]为待迁移的实例ID。系统返回类似如下,获得地区、nc_id等信息。
go2cluster_resource系统返回类似如下,根据实际情况选择目标物理机的ID。
go2ncinfo [$NC_IP]
说明:[$NC_IP]为物理机的IP地址。
go2vmlist [$NC_IP]
在进行热迁移之前,您需要了解以下相关限制条件,对于专有云的热迁移功能,主要有以下限制:
go2hyapi
命令进行热迁移,嫦娥上的热迁移入口暂时不可用。说明:专有云V3.3版本之前创建的VM不具备热迁移能力,需要重启后生效。
注意:在执行热迁移前,请参见补充说明,了解热迁移命令的参数介绍。
go2which [$Instance_ID]
sudo virsh list |grep [$Instance_ID]系统显示类似如下。
go2hyapi live_migrate_vm vm_name=[$Instance_ID] no_check_load=true no_check_image=true no_check_package=true virt_pre_check=false no_check_slb=true no_check_mig_enable=true rate=100
注意:指定目标物理机进行热迁移时,如果目标物理机不满足热迁移条件,则可能会失败,迁移失败的实例会在原来的物理机上运行。命令行中vm_name=[$Instance_ID]
之后的即为可选参数,需要关注影响和作用 。
系统显示类似如下。sudo virsh query-migrate [$Dom_ID]
说明:[$Dom_ID]为本小节步骤2中获取的实例ID。系统显示类似如下,如果正在迁移,会返回一段JSON信息。
执行以下命令,修改热迁移状态。
go2hyapi manually_change_migration_status vm_name=[$Instance_ID] where=[$VM_NC_ID] region_id=[$Region_ID]
说明:系统显示类似如下。
- [$VM_NC_ID]为VM所属的nc_id。
- [$Region_ID]为区域ID,可参见本小节步骤1中的返回结果。
go2which [$Instance_ID]
go2hyapi stop_vm vm_name=[$Instance_ID]
go2hyapi recover_vm vm_name=[$Instance_ID] region_id=[$Region_ID]
说明:指定目标物理机进行冷迁移时,如果目标物理机不满足冷迁移条件,则可能会失败。
go2hyapi recover_vm vm_name=[$Instance_ID] region_id=[$Region_ID] dst_nc_id=[$DST_NC_ID]
说明:[$DST_NC_ID]为需要迁移的目标nc_id。
go2which [$Instance_ID]
go2ncinfo [$NC_IP]
无需回滚,操作前的情况已非正常状态,如需回滚,请参见实施步骤执行以下回滚操作:
go2hyapi recover_vm vm_name=[$Instance_ID] region_id=[$Region_ID] dst_nc_id=[$DST_NC_ID]
go2hyapi live_migrate_vm vm_name=[$Instance_ID] nc_id=[$NC_ID]
说明:dst_nc_id与nc_id为源nc_id。
热迁移的参考命令如下:
go2hyapi live_migrate_vm vm_name=[$Instance_ID] no_check_load=true no_check_image=true no_check_package=true virt_pre_check=false no_check_slb=true no_check_mig_enable=true rate=100
说明:命令行中
vm_name=[$Instance_ID]
之后的即为可选参数,需要关注影响和作用 。
命令中的可选参数说明如下:
参数名称 |
作用 |
影响 |
取值 |
nc_id |
指定迁移到某个目标NC |
可能会出现NC不支持,VM规格导致迁移失败的情况 |
目标NC的id |
no_check_image |
对不在支持列表的镜像也强制迁移 |
迁移不保证SLA |
默认为flase |
no_check_load |
不满足负载阈值的情况下强制迁移 |
业务中断时间不可控 |
默认为false |
no_check_package |
不检查虚拟化包 |
迁移不保证SLA |
默认为false |
virt_pre_check |
检查QEMU Kmod版本 |
迁移不保证SLA |
默认为true |
no_check_slb |
不检查SLB |
迁移不保证SLA |
默认为false |
no_check_mig_enable |
不检查热迁移环境是否可用 |
迁移不保证SLA |
默认为false |
no_check_cpu |
不检查CPU Model |
迁移不保证SLA |
默认为false |
rate |
迁移使用带宽 |
占用物理机带宽资源 |
|
在文档使用中是否遇到以下问题
更多建议
匿名提交