文档

服务器迁移至容器镜像

更新时间:

由于容器具有成本低、高效部署、可移植性强、环境一致性等优势,您可以通过SMC将Linux源服务器迁移为容器镜像,然后使用容器镜像部署容器应用,从而实现低成本容器化应用迁移。

说明
  • 阿里云容器镜像服务ACR(Alibaba Cloud Container Registry)是面向容器镜像、Helm Chart等符合OCI标准的云原生制品安全托管及高效分发平台。ACR企业版支持全球同步加速、大规模和大镜像分发加速、多代码源构建加速等全链路加速能力,与容器服务ACK无缝集成,帮助企业降低交付复杂度,打造云原生应用一站式解决方案。更多信息,请参见什么是容器镜像服务ACR

  • 阿里云容器服务Kubernetes版ACK(Container Service for Kubernetes)是全球首批通过Kubernetes一致性认证的服务平台,提供高性能的容器应用管理服务,支持企业级Kubernetes容器化应用的生命周期管理,让您轻松高效地在云端运行Kubernetes容器化应用。更多信息,请参见产品简介

使用限制

仅x86架构Linux操作系统的服务器支持迁移为容器镜像。

迁移影响

在迁移之前,请先了解以下事项,具体如下表所示。

影响项

说明

迁移数据目录

迁移时,SMC能够获取迁移源的磁盘分区结构,在创建迁移任务时自动生成目标磁盘分区。在尽可能保持迁移源磁盘分区结构的同时,提高迁移的传输速率。

  • 当未启用块复制时,默认会迁移系统根目录下的所有目录(包括挂载在根目录下的其他分区目录),生成一个系统盘分区。如果您需要将其他分区目录迁移为一个独立的数据盘,例如:/disk1,必须在创建迁移任务时选中并配置数据盘。如果不需要迁移某些分区目录,具体操作,请参见如何过滤、排除不需要迁移的文件或目录?

  • 当启用块复制时,默认只会迁移系统盘根分区目录,例如://boot等分区。如果您需要迁移其他分区,必须在创建迁移任务时选中并配置数据盘。

中转实例

请勿干涉中转实例 。

每次迁移时,SMC会在您的阿里云目标账号下创建一台名为No_Delete_SMC_Transition_Instance的临时中转实例(默认实例规格范围请参见中转实例规格有哪些),用于辅助迁移。为避免迁移失败,迁移过程中请勿停止、启动、重启或者释放中转实例。迁移完成后,该中转实例会自动释放。

说明

如果选择迁移到目标实例,目标实例即为中转实例。

IP地址

迁移后IP地址会发生变化,如果业务涉及IP地址的配置,迁移后请自行修改。

系统底层硬件设备

迁移后,系统底层硬件设备会发生变化,可能会导致某些与硬件绑定的应用许可证(License)失效,请做好检查。

前提条件

  • 已完成服务器迁移前的准备工作。具体操作,请参见迁移前准备

  • 已开通容器镜像服务并创建镜像仓库。具体操作,请参见构建仓库与镜像

  • 已创建SMC中转实例所需的RAM角色。具体操作,请参见创建可信实体为阿里云服务的RAM角色

    关键参数说明如下。

    • 可信实体类型选择阿里云服务

    • 角色类型选择普通服务角色

    • 受信服务选择云服务器

  • 已创建满足容器镜像迁移的自定义策略并为RAM角色授权该策略。具体操作,请参见创建自定义权限策略为RAM角色授权

    自定义策略如下所示。

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "cr:GetAuthorizationToken",
                    "cr:PushRepository",
                    "cr:PullRepository",
                    "cr:CreateRepository"
                ],
                "Resource": "*"
            }
        ],
        "Version": "1"
    }

迁移操作

步骤一:导入迁移源

迁移源概指您的待迁移IDC服务器、虚拟机、其他云平台的云主机或其他类型的服务器。SMC支持多种导入迁移源方式,您可以根据实际需要选择对应的导入迁移源方式。更多信息,请参见如何选择导入迁移源方式?

命令行一键导入迁移源(推荐)

重要

源服务器需要具备公网访问能力

  1. 登录SMC控制台

  2. 在左侧导航栏,选择迁移上云 > 服务器迁移

  3. 服务器迁移页面,单击导入迁移源

  4. 根据界面提示配置参数并复制激活码命令,关于参数的说明,具体如下表所示。

    参数

    说明

    迁移源类型

    选择阿里云ECS云服务器

    导入方式

    选中命令行导入

    激活数额度

    请输入激活码可激活的迁移源数量。取值范围为1~1000 ,默认为10。

    有效期

    请输入激活码的有效期。取值范围为1~90天,默认为30天。

    激活码

    生成激活码后,复制命令。操作步骤如下:

    1. 单击生成激活码

    2. 单击Linux Shell页签。

    3. 单击复制,复制激活码命令。

  5. 登录源服务器,使用管理员权限粘贴并运行复制的命令,执行导入迁移源的操作。

    1. 登录Linux源服务器。

    2. 使用管理员权限粘贴并运行复制的命令,执行导入迁移源的操作。

      image.png

      执行命令后,出现类似Import Source Server [s-bp18x8751kgz2oyh****] Successfully!回显信息,表示导入迁移源成功。

  6. 在SMC控制台的服务器迁移页面的迁移实时状态列,查看迁移源的状态。

    • 如果迁移源为迁移源在线状态,表示导入迁移源成功。

    • 如果迁移源为其他状态,表示导入迁移源失败。请参见以下方案解决问题后,重新导入迁移源。

      • 请根据控制台出错提示或者通过查看SMC客户端目录下日志文件解决问题。SMC客户端默认安装目录如下:

        • Windows源服务器:默认安装目录为 C:\smc

        • Linux源服务器:默认安装目录为/smc

      • 常见问题及修复方案,请参见SMC FAQ故障排除

通过控制台自动导入迁移源

说明
  • 源服务器(即源ECS实例)需要具备公网访问能力

  • 源服务器需已安装云助手Agent(2017年12月01日之后使用公共镜像创建的ECS实例,默认预装了云助手Agent)。

  • 如果您使用RAM用户导入迁移源,则需要为RAM用户授权:

    • 需要授予RAM用户只读访问RAM权限AliyunRAMReadOnlyAccess。具体操作,请参见为RAM用户授权

    • 需要为RAM用户授予云助手管理权限AliyunECSAssistantFullAccess。具体操作,请参见访问控制RAM介绍

  1. 登录SMC控制台

  2. 在左侧导航栏,选择迁移上云 > 服务器迁移

  3. 服务器迁移页面,单击导入迁移源

  4. 根据界面提示配置参数并复制激活码命令,关于参数的说明,具体如下表所示。

    参数

    说明

    迁移源类型

    选择物理机/虚拟机/云服务器

    导入方式

    选中控制台导入

    迁移源名称

    输入迁移源名称。长度为2~128个英文或中文字符。必须以大小写字母或中文开头,不能以http://https://开头。可以包含数字、半角冒号(:)、下划线(_)或者中划线(-)。

    操作系统类型

    选择Linux

    IP地址

    请输入可通过公网访问的IPv4地址,例如:120.55.XX.XX。

    端口

    请输入迁移源端SSH服务端口号。取值范围:1~65535,默认为22。

    用户名

    请输入操作系统的用户名,默认为root

    密码

    请输入操作系统的用户名对应的密码。

  5. 配置参数后,单击导入

    导入迁移源大约需要3~10分钟,请您耐心等待。

  6. 在SMC控制台的服务器迁移页面的迁移实时状态列,查看迁移源的状态。

    • 如果迁移源为迁移源在线状态,表示导入迁移源成功。

    • 如果迁移源为其他状态,表示导入迁移源失败。请参见以下方案解决问题后,重新导入迁移源。

      • 请根据控制台出错提示或者通过查看SMC客户端目录下日志文件解决问题。SMC客户端默认安装目录如下:

        • Windows源服务器:默认安装目录为 C:\smc

        • Linux源服务器:默认安装目录为/smc

      • 常见问题及修复方案,请参见SMC FAQ故障排除

通过SMC客户端导入迁移源

关于SMC客户端的更多信息,请参见SMC客户端工具说明

  1. 登录SMC控制台

  2. 在左侧导航栏,选择迁移上云 > 服务器迁移

  3. 服务器迁移页面,单击导入迁移源

  4. 导入迁移源页面,配置相关参数,参数说明如下表所示。

    参数

    说明

    迁移源类型

    选择物理机/虚拟机/云服务器

    导入方式

    选中客户端导入

    导入说明

    导入说明后,请根据源服务器操作系统的架构(Arm和x86)和位数(32位和64位),下载对应的SMC客户端。

  5. 导入迁移源。

    重要

    迁移的过程中请勿关闭SMC客户端直至迁移完成。否则,迁移源将与SMC控制台失去联系,无法完成迁移。

    1. 使用支持文件传输的第三方远程连接工具将SMC客户端压缩包上传至Linux源服务器。例如:WinSCP。

    2. 远程连接Linux源服务器并解压SMC客户端压缩包。

      本示例中以解压Linux 64位通用版为例,如果您使用其他版本的SMC客户端,命令中的压缩包名称需要替换为实际下载的SMC客户端名称。

      tar xf go2aliyun_client_linux_x86_64.tar.gz
      说明

      Linux 64位ARM版支持的实例规格族为通用型实例规格族g6r和计算型实例规格族c6r。更多实例规格信息,请参见企业级ARM计算规格族群

    3. (可选)如果您不需要迁移部分文件或目录,可排除不迁移的文件或目录。具体操作,请参见如何过滤、排除不需要迁移的文件或目录?

      重要

      如果开启块复制功能迁移,则不支持排除不迁移的文件或目录。

    4. 获取激活码或者访问密钥(AccessKey)。

      • (推荐)获取激活码:在SMC控制台的导入说明中,单击生成激活码并复制激活码信息。

      • 获取访问密钥(AccessKey):阿里云账号的访问密钥AccessKey包括AccessKey ID和AccessKey Secret,如果您未创建,请先创建。具体操作,请参见创建AccessKey

    5. 在SMC客户端文件夹下,执行以下命令,运行SMC客户端。

      根据迁移源操作系统对root权限和sudo权限的支持情况,选择运行方式。

      使用root权限运行
      cd go2aliyun_client_linux_x86_64
      chmod +x go2aliyun_client
      ./go2aliyun_client
      使用sudo权限运行
      cd go2aliyun_client_linux_x86_64
      sudo chmod +x go2aliyun_client
      sudo ./go2aliyun_client
    6. 根据提示信息,输入激活码或者访问密钥(AccessKey)。本示例以输入激活码为例:adad

      输入激活码或者访问密钥后,可能会出现以下提示信息:

      • 若迁移源系统没有安装快照驱动,则SMC客户端会提示,具体如下图所示,您可根据需求选择是否安装快照驱动。

        • 如果在创建迁移任务时启用块复制,则输入yes,自动安装快照驱动。

        • 如果在创建迁移任务时不启用块复制,则输入no即可。

        重要

        如果安装快照驱动失败,请勿在创建迁移任务时启用块复制,否则会导致迁移失败。

        123

      • 多数主流迁移源系统已默认安装rsync。若没有安装,则SMC客户端会提示,请输入yes自动安装rsync,如下图所示。安装rsync

      • 若迁移源系统的SELinux处于开启状态,则SMC客户端会提示您关闭。请输入yes自动关闭SELinux,如下图所示。关闭SELinux

      当回显出现类似Import Source Server [s-bp11npxndknsycqj****] Successfully!的信息时,表示导入迁移源成功。

      说明

      如果导入迁移源失败,您可以根据回显信息,解决问题后,根据迁移源操作系统对root权限和sudo权限的支持情况,依次运行以下命令,退出后台程序并重新导入迁移源。常见问题及修复方案的更多信息,请参见SMC FAQ故障排除

      使用sudo权限
      sudo ./go2aliyun_client --abort
      sudo ./go2aliyun_client
      使用root权限
      ./go2aliyun_client --abort
      ./go2aliyun_client
  6. 在SMC控制台的服务器迁移页面的迁移实时状态列,查看迁移源的状态。

    • 如果迁移源为迁移源在线状态,表示导入迁移源成功。

    • 如果迁移源为其他状态,表示导入迁移源失败。请参见以下方案解决问题后,重新导入迁移源。

      • 请根据控制台出错提示或者通过查看SMC客户端目录下日志文件解决问题。SMC客户端默认安装目录如下:

        • Windows源服务器:默认安装目录为 C:\smc

        • Linux源服务器:默认安装目录为/smc

      • 常见问题及修复方案,请参见SMC FAQ故障排除

步骤二:创建迁移任务

  1. 在目标迁移源的操作列,单击创建迁移任务

  2. 创建迁移任务对话框中,配置相关参数后,单击创建

    1. 配置基本参数,参数说明具体如下表所示。

      参数

      说明

      示例

      任务名称

      迁移任务的名称。

      容器迁移

      任务描述

      输入迁移任务的描述。

      test

      目标类型(必填)

      选择容器镜像

      容器镜像

      目标地域(必填)

      目标地域指您的服务器要迁入阿里云的地域。关于地域的更多信息,请参见地域和可用区

      杭州

      容器镜像命名空间(必填)

      选择存放迁移生成的容器镜像仓库的命名空间。如未创建命名空间,具体操作,请参见管理命名空间与配额

      容器镜像仓库名称(必填)

      选择存放迁移生成的容器镜像的仓库名称。如未创建镜像仓库,具体操作,请参见构建仓库与镜像

      容器镜像版本

      输入存放迁移生成的容器镜像的版本信息。

      v1

      容器镜像RAM角色(必填)

      选择绑定中转实例的实例角色。如未创建RAM角色,请参见创建可信实体为阿里云服务的RAM角色

      执行方式

      选择迁移任务执行方式:

      • 立即执行:创建迁移任务后立即启动。默认选择立即执行

      • 预约执行:创建迁移任务后,在设置的时间自动启动迁移任务。

        说明

        预约执行时间最早可设置为当前时间后10分钟。

      • 只创建:仅创建迁移任务,后续需要在操作列单击开始任务,手动启动迁移任务。

      保持默认

  3. 配置磁盘参数,参数说明具体如下表所示。

    参数

    说明

    示例

    目标磁盘(GiB)

    设置目标云服务器的磁盘结构。根据业务需求配置相关参数:

    系统盘

    • 系统盘:目标阿里云云服务器系统盘的大小,单位为GiB。系统盘大小取值范围为20~2048。目标系统盘取值需要大于迁移源系统盘实际占用大小。例如,源系统盘大小为400 GiB,实际占用100 GiB,则目标系统盘取值需大于100 GiB。

      说明

      默认值为迁移源系统盘大小,如无缩小系统盘容量的需要,建议不要小于默认值。

    • 分区<N>:SMC能够根据迁移源的磁盘分区结果自动生成目标磁盘分区,单位为GiB。N的取值范围:0~14。变量<N>表示第几个分区。如果迁移源的系统盘是单分区结构,则只会生成分区0

    数据盘

    • 数据盘<N>:表示迁移后阿里云云服务器数据盘的大小,单位为GiB。 数据盘大小取值范围:20~32768。

      • 您可以设置数据盘前复选框的选中情况,自行选择是否迁移目标数据盘。

      • 变量<N>表示第几个数据盘。

      • 数据盘取值需要大于迁移源数据盘的实际占用大小。例如,源数据盘大小为500 GiB,实际占用100 GiB,则目标数据盘取值需大于100 GiB。

    • 分区<N>:SMC能够根据迁移源的磁盘分区结果自动生成目标磁盘分区,单位为GiB。 取值范围:0~14。变量<N>表示第几个分区。如果迁移源的数据盘是单分区结构,则只会生成分区0

    说明

    若您的迁移源没有数据盘,或数据盘未挂载,则不会出现数据盘配置项。更多信息,请参见为什么新建迁移任务页面没有出现数据盘配置项?

    块复制

    SMC会根据迁移源磁盘分区状态进行判断是否支持开启块复制。

    • 如果迁移源不支持分区开启块复制,则该开关无法打开。使用默认的文件级别迁移,分区大小可修改。

    • 如果迁移源支持分区开启块复制,则默认开启块复制,实现分区级别的磁盘迁移。使用块复制能有效提升迁移传输速度的稳定性,同时能够保证跟源分区结构一致,但分区大小无法修改。

    说明

    迁移源为Windows操作系统时,块复制功能默认为开启状态,无法关闭该功能。

    保持默认

  4. (可选)如果您需要设置网络模式、压缩率等参数,单击专家模式,配置高级参数,参数说明具体如下表所示。

    参数

    说明

    示例

    网络模式

    选择传输迁移数据到中转实例使用的网络,默认使用公网传输。中转实例会被创建在所选专有网络(VPC)、交换机(vSwitch)下,因此中转实例会被分配公网IP。

    公网传输(默认)

    迁移数据通过公网传输到中转实例。使用该模式,源服务器需能访问公网。根据实际需要,选择是否指定专有网络(VPC)和交换机(vSwitch)。

    • 指定VPC和vSwitch:迁移任务在您指定的VPC和vSwitch下创建中转实例。

    • 不指定VPC和vSwitch:迁移任务会在系统自动新建的VPC和vSwitch下创建中转实例。

    私网传输

    迁移数据通过VPC内网传输到中转实例。使用该模式,需要将源服务器与阿里云VPC打通,并且必须指定VPC和vSwitch。

    说明

    如果您能直接从自建机房(Integrated Data Center,IDC)、虚拟机环境或者云主机访问某一阿里云地域下的专有网络VPC,建议您使用该方式进行迁移。使用内网传输能获得比通过公网更快速更稳定的数据传输效果,提高迁移工作效率。您可以通过VPN网关、高速通道物理专线、智能接入网关将源服务器和云上VPC打通。更多信息,请参见连接本地IDC

    保持默认

    传输限速

    传输限速是限制实际网络传输速度,单位为Mbps。若设置压缩率大于0,实际网络传输速度(即压缩后数据的传输速度)小于迁移实时状态中显示的速度。

    保持默认

    压缩率

    迁移过程中,数据压缩传输的级别。请根据您的实际需要,设置压缩率。

    • 在带宽有限的环境下,使用高压缩率,可以提升数据的传输速度。

    • 在带宽很高的情况下,建议您不压缩传输数据,可减少对迁移源CPU资源的耗费。

    取值范围为0~10,默认值为7,0表示不压缩传输数据。

    保持默认

    Checksum验证

    默认关闭,开启后,可增强数据一致性校验,但是可能会降低传输速度。

    保持默认

    迁移任务标签

    为迁移任务绑定标签键值,便于查询与管理迁移任务。更多信息,请参见使用标签管理迁移源和迁移任务通过标签实现精细化权限管理

    说明

    同一个迁移任务最多可绑定20个标签。

    保持默认

    中转实例规格

    可根据实际需求选择中转实例规格。当目标类型选择云服务器镜像时,才会出现此参数。

    • 选择中转实例规格:系统会选择该实例规格创建中转实例。若该实例规格库存不足,则迁移任务创建失败。

    • 不选择中转实例规格:系统默认会按照顺序选择实例规格来创建中转实例。

    重要

    为避免迁移出错,请在迁移过程中请勿停止、启动、重启或者释放中转实例。

    保持默认

  5. 在弹出的对话框中,仔细阅读迁移提示后,单击我确认我已知悉

  6. 迁移任务页面,查看迁移实时状态。

    由于传输数据耗时受源端数据大小,网络带宽等因素影响,请耐心等待迁移任务完成。

    说明

    迁移任务状态为同步中时,速度剩余同步时间说明如下:

    • 速度:指每秒传输的迁移数据量(即压缩前数据的传输速度)。若在创建迁移任务时设置压缩率大于0,该显示速度将大于实际网络传输速度(即压缩后数据的传输速度)。

    • 剩余同步时间:根据当前速度计算的剩余同步时间,剩余同步时间=(总数据量-已传输数据量)/速度。

    image

    在迁移任务状态为同步中时,您也可以根据实际需求,对迁移任务执行以下操作:

    • 编辑迁移任务:在操作列单击编辑任务,修改传输限速、压缩率、Checksum验证参数。

    • 暂停迁移任务:在操作列单击暂停任务,暂停迁移任务。

验证迁移结果

  • 迁移实时状态已完成时,表示迁移成功。

    image

    迁移成功后会生成阿里云容器镜像,您可以通过容器镜像部署容器应用。具体操作如下:

    1. 创建ACK集群。具体操作,请参见创建集群

    2. 在迁移源的操作列,单击部署应用,系统跳转到创建应用页面。

    3. 创建应用。具体操作,请参见创建无状态工作负载Deployment

    4. 迁移服务器后,您需要对数据校验和验证,确保数据的完整性和正确性。具体操作,请参见迁移Linux服务器后怎么检查系统?

      说明

      如果源服务器已经绑定域名,迁移后公网IP地址会发生变化,请将域名解析到新的服务器公网IP地址。具体操作,请参见快速添加网站解析

  • 迁移实时状态出错时,表示迁移任务出错。此时,您需要排查问题后重试:

    1. 操作列,单击排查错误,根据错误码和错误信息提示修复问题。更多信息,请参见SMC FAQ故障排除

    2. 迁移任务页面,单击重试任务

      迁移任务会从上一次结束时的进度处继续迁移。

      重要

      如果中转实例已被释放,需要重新迁移。具体操作,请参见误释放了中转实例怎么办

清理资源

迁移时,SMC会在您的阿里云目标账号下创建一台名称为No_Delete_SMC_Transition_Instance的临时按量付费中转实例,用于辅助迁移。您需要根据迁移是否成功选择是否需要手动清理:

  • 迁移成功:中转实例会自动释放,您无需手动清理。

  • 迁移出错:中转实例会随迁移任务一直存在并产生费用。您可以选择以下方式释放中转实例,避免不必要的扣费:

    • 如果您已确认不再使用该迁移任务,在操作列选择image > 删除,通过删除迁移任务自动清理中转实例。

    • 手动释放中转实例。具体操作,请参见释放实例