EasyYitian是阿里云为支持倚天迁移专门打造的工具平台,包括软件兼容性扫描、环境兼容性分析、跨架构编译构建和预置镜像、性能对比调优,是集工具、预置镜像、迁移指南为一体的统一平台。通过对迁移过程的全链路支持,解决倚天迁移的难点和痛点,帮助您快速将业务和应用迁移到倚天云服务器。
前提条件
安装EasyYitian迁移工具的服务器必须满足以下条件:
为x86架构的Linux服务器。
已安装Docker。具体操作,请参见安装并使用Docker和Docker Compose。
安装EasyYitian
登录需要安装EasyYitian迁移工具的Linux服务器。
下载EasyYitian的Docker镜像。
重要如果该服务器无法访问公网,您可以在其他服务器中下载后上传到该服务器。
wget https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20231024/ohqx/easyyitian_1.0.0.tar加载EasyYitian的Docker镜像。
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查看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启动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迁移工具
在本地浏览器中输入
http://{hostip}:{port}/,输入账号和密码,单击登录。登录成功后,即可查看EasyYitian平台介绍及功能介绍。
代码兼容性扫描
代码兼容性扫描,支持C/C++、Assembly(汇编)、Java、Python、Node.js、Golang、Rust语言的兼容性扫描诊断,帮助您解决业务软件栈迁移到倚天云服务器的代码兼容性问题。
单击左侧导航栏的代码兼容性扫描。
单击创建任务,在弹出的代码兼容性扫描对话框中,输入任务参数,然后单击创建。
参数
说明
任务名称
输入代码扫描任务名称,只能包含大小写字母、数字、下划线(_)和短划线(-)。
扫描方式
当前仅支持上传源码包方式,源码包最大支持2 GB。
目标指令集架构
只支持设置为arm64。
语言选择
选择源码包语言。
任务描述
输入扫描任务描述。
单击该任务操作列的详情,进入扫描详情页。
在任务扫描详情页,单击触发扫描。
说明大文件扫描时间较长,您可以单击操作列的查看执行记录查看扫描过程。
当该扫描任务的状态为
时,您可以单击操作列的查看,查看扫描结果。扫描结果区域展示了该源码包中存在的问题,并给出了具体建议,您可以根据具体建议修改源码以适配倚天云服务器。
报告页面展示基本信息:扫描日期为 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 <linux/bitops.h> can be included directly #endif #include <asm/compiler.h> #include <asm/barrier.h> /* * 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的详细使用方法。