EasyYitian迁移工具

更新时间:
复制 MD 格式

EasyYitian是阿里云为支持倚天迁移专门打造的工具平台,包括软件兼容性扫描、环境兼容性分析、跨架构编译构建和预置镜像、性能对比调优,是集工具、预置镜像、迁移指南为一体的统一平台。通过对迁移过程的全链路支持,解决倚天迁移的难点和痛点,帮助您快速将业务和应用迁移到倚天云服务器。

前提条件

安装EasyYitian迁移工具的服务器必须满足以下条件:

安装EasyYitian

  1. 登录需要安装EasyYitian迁移工具的Linux服务器。

  2. 下载EasyYitianDocker镜像。

    重要

    如果该服务器无法访问公网,您可以在其他服务器中下载后上传到该服务器。

    wget https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20231024/ohqx/easyyitian_1.0.0.tar
  3. 加载EasyYitianDocker镜像。

    sudo docker load -i easyyitian_1.0.0.tar

    当返回如下所示信息时,说明Docker镜像已加载。

    [ecs-user@test ~]$ sudo docker load -i easyyitian_1.0.0.tar
    1652fa8f3795: Loading layer [==================================================>]  222.6MB/222.6MB
    8d514f4d6278: Loading layer [==================================================>]  390.4MB/390.4MB
    f516b8432e65: Loading layer [==================================================>]  1.536kB/1.536kB
    73ae67fdbf8f: Loading layer [==================================================>]  2.56kB/2.56kB
    24a817cd24e0: Loading layer [==================================================>]  16.15MB/16.15MB
    c9b7b0c69de4: Loading layer [==================================================>]  212.8MB/212.8MB
    1cfb3610f214: Loading layer [==================================================>]  297.3MB/297.3MB
    2a9b359a60d8: Loading layer [==================================================>]  35.3MB/35.3MB
    86e44d82033e: Loading layer [==================================================>]  21.53MB/21.53MB
    f40a8316b7d1: Loading layer [==================================================>]  18.82MB/18.82MB
    a25679096dbf: Loading layer [==================================================>]  728.1kB/728.1kB
    3652aa10708d: Loading layer [==================================================>]  35.52MB/35.52MB
    791c07d33d50: Loading layer [==================================================>]  13.82kB/13.82kB
    31ae7eac9d06: Loading layer [==================================================>]  5.12kB/5.12kB
    Loaded image ID: sha256:18d3c49bec8a73022fa0ebbd298eb9eea335588adcf712725fb72db198025a07
  4. 查看Docker镜像ID。

    sudo docker images

    返回信息中IMAGE ID即为镜像ID。

    [ecs-user@test ~]$ sudo docker images
    REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
    <none>        <none>    18d3c49bec8a   5 days ago    1.23GB
  5. 启动easyyitian服务。

    sudo docker run -itd -p <port>:8000 -v </path/to/local/volume>:/app/workspace --name easyyitian <imageId>
    重要
    • <port>请替换为实际的端口号,例如8000,该端口必须在安全组中已放开。

    • </path/to/local/volume>请替换为您想要挂载的本地卷的路径,例如/home/user。

    • <imageId>请替换为步骤4中获取的IMAGE ID。

    当返回如下所示信息时,说明easyyitian服务已启动。

    [ecs-user@test ~]$ sudo docker run -itd -p 8000:8000 -v /home/esc-user:/app/workspace --name easyytitian 18d3c49bec8a
    578ac0122c0da956bda739c172c0981027a970                6d6a7e527b3c32ec

使用EasyYitian

登录EasyYitian迁移工具

  1. 在本地浏览器中输入http://{hostip}:{port}/,输入账号密码,单击登录

    说明
    • {hostip}为安装EasyYitian工具的服务器公网IP,{port}为步骤5中设置的端口号。

    • 初始账号为admin,初始密码为easyyitian。

    • 如果在云服务器ECS中安装EasyYitian迁移工具,请在安全组入方向规则中放行本地浏览器所在机器的IP。具体操作,请参见添加安全组规则

    • 安装EasyYitian工具的服务器需关闭防火墙:sudo systemctl stop firewalld.service

  2. 登录成功后,即可查看EasyYitian平台介绍及功能介绍。

代码兼容性扫描

代码兼容性扫描,支持C/C++、Assembly(汇编)、Java、Python、Node.js、Golang、Rust语言的兼容性扫描诊断,帮助您解决业务软件栈迁移到倚天云服务器的代码兼容性问题。

  1. 单击左侧导航栏的代码兼容性扫描

  2. 单击创建任务,在弹出的代码兼容性扫描对话框中,输入任务参数,然后单击创建

    参数

    说明

    任务名称

    输入代码扫描任务名称,只能包含大小写字母、数字、下划线(_)和短划线(-)。

    扫描方式

    当前仅支持上传源码包方式,源码包最大支持2 GB。

    目标指令集架构

    只支持设置为arm64。

    语言选择

    选择源码包语言。

    任务描述

    输入扫描任务描述。

  3. 单击该任务操作列的详情,进入扫描详情页。

  4. 在任务扫描详情页,单击触发扫描

    说明

    大文件扫描时间较长,您可以单击操作列查看执行记录查看扫描过程。

  5. 当该扫描任务的状态为image.png时,您可以单击操作列的查看,查看扫描结果。

    • 扫描结果区域展示了该源码包中存在的问题,并给出了具体建议,您可以根据具体建议修改源码以适配倚天云服务器。

      报告页面展示基本信息:扫描日期为 2023-10-25,目标指令集架构为 ARM64,源码包为 cloud-kernel-devel-4.19.zip。扫描文件数统计显示共扫描 49216 个文件、23814019 行代码(含 Assembly 文件 1338 个、C 文件 45444 个、CPP 文件 8 个、Makefile 文件 2426 个)。C/CPP 标签页的 Summary 共发现 37414 个问题,其中非零问题项为 AsmSourceIssue(35646 个)、BuildCommandIssue(231 个)、CPPStdCodes(20 个)和 DefineOtherArchIssue(15 个),可勾选对应检测项查看详情并根据建议修改源码。

    • 扫描结果区域下方,展示了代码中所有可能出现的问题路径及详细建议,您可以根据修改建议修改代码以适配倚天云服务器。

      例如,扫描工具检测到文件 ./workspace/codescan/1/src/cloud-kernel-devel-4.19/arch/alpha/include/asm/bitops.h:6 中存在预处理器错误 #error only <linux/bitops.h> can be included directly,代码片段如下。

      /* SPDX-License-Identifier: GPL-2.0 */
      #ifndef _ALPHA_BITOPS_H
      #define _ALPHA_BITOPS_H
      #ifndef _LINUX_BITOPS_H
      #error only &lt;linux/bitops.h&gt; can be included directly
      #endif
      #include &lt;asm/compiler.h&gt;
      #include &lt;asm/barrier.h&gt;
      /*
       * Copyright 1994, Linus Torvalds.
       */
      /*
       * These have to be done with inline assembly: that way the bit-setting
      // ...

      其中 #error only <linux/bitops.h> can be included directly 为扫描工具标记的问题行,同时受影响的相关文件包括 io.h:237、rwsem.h:11、spinlock_types.h:6、xchg.h:3、signal.c:122、sys_marvel.c:34、time.c:219、bitops.h:13。

使用EasyBuild构建适配倚天服务器的应用

EasyBuild是跨架构编译构建的容器镜像解决方案,方便您在x86环境下跨架构编译构建适用于倚天云服务器的业务及应用。该方案简单可靠易用,可以解决您在倚天迁移编译构建环境的问题。

您可以单击左侧导航栏的EasyBuild,查看EasyBuild的详细使用方法。