基于倚天710 ARM CPU架构的倚天云服务器可以显著提升实例的计算、存储和网络性能。您可以将x86平台的应用迁移到倚天实例服务器上使用,获取更优性能的云服务体验。本文介绍迁移到倚天云服务器的迁移步骤、场景和使用流程。
迁移背景
什么是倚天云服务器
倚天云服务器是基于倚天实例(包含倚天710 ARM CPU架构的ECS实例)的云服务器。通过芯片快速路径加速手段,完成计算、存储、网络性能的数量级提升,可应用于云原生、视频编解码、高性能计算、基于CPU的机器学习和游戏服务等场景。
基于倚天710 ARM CPU架构的实例规格族包括g8y、c8y和r8y。您可以通过以下链接了解实例规格及计算、存储、网络等指标数据。
迁移必要性
倚天云服务器采用ARM架构(与x86架构不同)。若需将x86平台上的源代码程序部署到倚天云服务器上使用,必须经过重新编译,并建议进行针对性优化以提升性能。
迁移步骤
将基于x86平台的应用迁移到倚天服务器上,主要分为以下两步:
迁移前准备
您需要规划云服务器的操作系统、基础软件选型、硬件资源配置;需要检查代码是否存在x86架构相关的汇编指令、硬件特性依赖等;需要检查第三方库是否提供ARM版本;需要进行兼容性测试等。
软件编译迁移。
根据软件编程语言,安装编译器、软件版本等,之后重新编译。
说明EasyYitian是阿里云为支持倚天迁移专门打造的工具平台,包括软件兼容性扫描、环境兼容性分析、跨架构编译构建和预置镜像、性能对比调优,是集工具、预置镜像、迁移指南为一体的统一平台。通过对迁移过程的全链路支持,解决倚天迁移的难点和痛点,帮助您快速将业务和应用迁移到倚天云服务器。
迁移场景
软件编译迁移主要包含以下两种场景:
源码软件:指开发者开发的或者基于开源软件增强开发的软件。自研软件使用的编程语言主要包含以下两类:
编译型语言:以C++/Go为代表的编译型语言,这些语言会将源代码编译成架构相关的二进制文件,因此迁移后必须进行重新编译。更多信息,请参见Make/CMake构建文件和C/C++语言迁移。
解释型语言:以Java/Python为代表的解释型语言,这些语言源代码编译文件与架构无关,理论上可以跨架构运行。但是,如果解释型语言引入了本地库,比如Java应用通过JNI调用了C开发的动态链接库,那么此应用就与架构相关,必须重新编译。更多信息,请参见Java语言迁移和Python语言迁移。
开源软件:开源软件指开发者从开源社区下载未做源码修改的软件或者所使用操作系统生态中默认携带的软件。当前大部分开源软件在倚天ARM平台上已经提供较好的应用生态,您可以直接使用操作系统提供的开源生态软件来安装部署。更多信息,请参见开源软件迁移。
迁移流程
从x86平台迁移到倚天云服务器之前,需要准备环境资源,包括云服务器、操作系统、基础软件。将x86平台业务软件迁移到倚天云服务器,具体流程如下:
步骤一:创建倚天云服务器
具体步骤,请参见自定义购买实例。您需要注意以下参数。
参数 | 说明 |
实例规格 |
|
镜像 |
|
步骤二:软件迁移
软件迁移主要分为自研软件和开源软件,推荐使用的编译器、运行库、应用等版本如下表所示。请自行安装使用。
分类 | 软件 | 推荐版本 | 说明 |
编译器 | GCC | gcc 10.2.1 | 建议使用gcc 10以上版本,性能有大幅提升。 |
LLVM | LLVM 13/clang 13 |
| |
Glibc | glibc 2.32 | 无 | |
JDK | Dragonwell 11或OpenJDK 11 | 优先推荐Dragonwell,性能和支持更好。 | |
Golang | go 1.18+ | Go SDK正持续针对ARM架构进行优化,推荐您使用最新版本:
| |
Python | 3.8 | Python 2.7版本已于2020年1月1日停止维护(EOL),Python 3.6版本已于2022年12月23日停止维护(EOL),建议您使用Python 3.7及以上版本。 | |
PHP | 7.4+ | 对应社区支持 | |
容器 | K8s | K8s 1.22 Containerd 1.5.0+ | 对应社区支持 |
Web应用 | Nginx | 使用推荐的操作系统版本提供的自带版本 | 操作系统发行商维护支持 |
httpd | 使用推荐的操作系统版本提供的自带版本 | 操作系统发行商维护支持 | |
NodeJS | 使用推荐的操作系统版本提供的自带版本 | 操作系统发行商维护支持 | |
数据库 | MySQL | 使用推荐的操作系统版本提供的自带版本 | 操作系统发行商维护支持 |
Redis | 使用推荐的操作系统版本提供的自带版本 | 操作系统发行商维护支持 | |
大数据 | Hadoop | Hadoop 3.3.1 | 对应社区支持 |
Spark | Spark 3.2 | 对应社区支持 | |
Hive | Hive 3.1 | 对应社区支持 | |
ElasticSearch | ES 7.12 | 对应社区支持 | |
其他 | Gromacs | new version | 对应社区支持 |
BWA | new version | 对应社区支持 | |
Gatk | 4.3.0.0 | 对应社区支持 |
步骤三:迁移后编译
根据您的业务需求,请参考如下指导对软件进行编译构建。
源码迁移
介绍如何在倚天云服务上使用Nginx、MySQL、Redis、TensorFlow、PyTorch等开源软件的方法。
参考文档
查看CPU架构
执行uname -m
或arch
命令查看CPU架构,不同架构回显信息如下:
ARM架构显示:aarch64
x86架构显示:x86_64
查看CPU详细信息
执行lscpu
命令查看CPU详细信息,不同架构回显信息如下:
ARM架构显示:
x86架构显示:
查看OS信息
x86架构与ARM架构的OS信息不同。执行cat /proc/version
命令查看OS信息及编译器版本,不同架构回显信息如下:
x86架构显示:
ARM架构显示: