一次性迁移较多数量的服务器时,使用单台全量迁移的方式较耗时。如果服务器数量为十台以上,建议您制作脚本进行批量迁移。

背景信息

说明 迁云工具已升级为服务器迁移中心SMC(Server Migration Center),现有迁云工具不再提供版本更新和技术支持。为了更好的迁云体验,建议您使用SMC。SMC支持全量迁移、增量迁移、批量迁移、VPC内网迁移等多种功能,详情请参见SMC产品文档

对于大批量的服务器系统,一般都会配备自动化运维工具来统一管理,例如较常用的Ansible。使用Ansible可以方便地完成一些需要重复操作的工作,例如,向100台服务器拷贝同一个文件,或者同时在100台服务器上安装Apache服务并启动。

自动化运维工具可以批量下发并执行脚本。迁云工具是一个客户端工具程序,无需安装或复杂配置即可使用。

操作步骤

  1. 准备自动化批量运维工具。
  2. 使用命令行调用迁云工具。
    迁云工具提供一系列的命令行参数,适用于命令行调用的场景。例如:
    • --noenterkey:禁用交互
    • --nocheckversion:禁用提示版本更新
    • --progressfile:设置进度日志文件
  3. 编写批量迁移任务脚本。
    根据实际迁移任务的需要来编写自动化批量迁移任务脚本,脚本中主要包括以下几项:
    1. 批量下发迁云工具到待迁移服务器
    2. 批量配置迁云工具,如目标镜像名等信息
    3. 批量执行迁云工具,同时获取迁移任务结果
    示例脚本如下:
    #首先向所有服务器发送迁云工具程序
    
    ansible -f 6 -i host.file all -m copy -a
    "src=go2aliyun_client1.2.9.1_linux_x86_64.zip dest=/temp"
    
    #然后解压缩程序
    
    ansible -f 6 -i host.file all -m shell -a "cd /temp &&
    unzip \
    
    go2aliyun_client1.2.9.1_linux_x86_64.zip"
    
    #再执行修改配置文件脚本
    
    ansible -f 6 -i host.file all -m shell -a "cd
    /temp/go2aliyun_client1.2.9.1_linux_x86_64 && ./config.sh"
    
    sleep 120
    
    # 配置文件脚本./config.sh工作是配置目标镜像名,主要根据子网IP来配置。(其他配置如AK,区域、磁盘信息等都是一致已配置好的)
    
    #!/bin/bash
    
    image_name=`ip a | grep inet | grep eth0 | grep brd | awk '{print
    $2}' | awk -F '/' '{print $1}'| awk -F '.' '{print
    "move_"$1"_"$2"_"$3"_"$4}'`
    
    sed -i "s/IMAGE_NANE/${image_ame}/" user_config.json
    
     
    
    #最后执行迁移脚,同时运行并发量是6个
    
    ansible -f 6 -i host.file all -m shell -a "cd
    /temp/go2aliyun_client1.2.9.1_linux_x86_64 && chmod +x go2aliyun_client
    &&./go2aliyun_client --nocheckversion --noenterkey"
    
    #获取迁云结果,从client_data中获取生成的镜像Id以及完成状态
    
    #判断client_data里的status自带,如果是Finished则表示迁云完成,同时image_id字段就是最终生成的镜像Id。