写点什么

EasyMR 基于国产化信创的适配实践技术详解

作者:袋鼠云数栈
  • 2024-05-22
    浙江
  • 本文字数:3357 字

    阅读完需:约 11 分钟

EasyMR 基于国产化信创的适配实践技术详解

国产化信创,即采用国产信息技术产品和服务,构建自主可控的信息技术体系。近年来,随着国家对网络安全和信息安全的重视程度不断提高,国产化信创已经成为国家战略的重要组成部分,并呈现出以下大趋势:


● 政策驱动,加速发展

国家出台了一系列政策法规,大力支持国产化信创产业发展。例如,《“十四五”数字经济发展规划》提出,到 2025 年,关键信息技术领域核心技术攻关取得突破性进展,关键软件、硬件产品和服务实现替代能力显著增强。《“十四五”国家信息化规划》提出,加快构建安全可控的数字基础设施,推进关键信息技术领域自主研发应用。


在政策的强力推动下,国产化信创产业发展势头迅猛,市场规模不断扩大。据统计,2023 年中国信创产业市场规模突破 1 万亿元,预计到 2025 年将达到 2 万亿元以上。


● 技术突破,生态构建

国产化信创产业的核心是技术攻关和生态构建。近年来,国产操作系统、数据库、中间件等基础软件产品取得了重大进展,性能和稳定性不断提升,与国外产品差距逐渐缩小。同时,国产信创生态体系也在逐步完善,应用软件、安全产品等配套产品和服务得到不断的丰富和创新。


● 应用拓展,场景多样

国产化信创的应用场景不断拓展,从党政机关、金融、电信等关键领域向教育、医疗、交通等更多行业延伸。例如,在教育领域,北京、上海等地已经开展了高校信创试点工作;在医疗领域,多家医院已经部署了国产化信创系统。


● 安全可控,自主可控

国产化信创的根本目标是实现信息技术的自主可控和安全可控。通过采用国产信息技术产品和服务,有效降低信息安全风险,提升国家信息安全水平。


总体而言,国产化信创是时代发展的必然趋势,具有广阔的市场前景,未来,随着技术的不断进步和应用场景的不断拓展,国产化信创将迎来更加快速发展的新阶段。

EasyMR 基于国产化信创适配的支持

EasyMR,作为袋鼠云基于云原生技术和 Hadoop、Hive、Spark、Flink、Hbase、Presto 等开源大数据组件构建的弹性计算引擎。提供安全可靠、低成本、弹性伸缩的大数据存储与计算服务,并实现 Hadoop 集群的一站式创建、管理、部署、运维与监控。


EasyMR 的核心组件采用国产化自研方式,已成功适配多种国产操作系统和处理器,包括:

· 银河麒麟 V10(Intel X86、鲲鹏 920、飞腾 2000)

· 银河麒麟 V4(Intel X86、飞腾 2000)

· 中标麒麟 V7.6(Intel X86)

· 统信 UOS V20(Intel X86、鲲鹏 920)

· 龙蜥 8.4(Intel X86)


在国产化信创数据库方面,EasyMR 已经适配了达梦 8 数据库,并且将数据库层的增删改查操作做了一层抽象接口。这种设计使得未来适配其他国产化信创数据库变得十分简便。


接下来将从技术实现的角度详细介绍 EasyMR 组件如何适配国产化操作系统和处理器。

关于 Docker Buildx

在 EasyMR 的私有化部署过程中,我们选择了 Docker作为部署媒介。Docker 是一种轻量级容器化平台,可以简化应用程序的部署、管理和扩展。与传统的虚拟机相比,Docker 具有更快的启动时间、更高的资源利用率、更强的可移植性、更容易部署和管理等优势。因此,将 EasyMR 的各个组件打包成 Docker 镜像进行私有化部署,可以显著提高运维部署的效率,降低问题出现的概率。


在适配国产化信创组件时,我们面临的主要问题是如何在 Docker 环境中构建适配这些组件的镜像。为了解决这个问题,我们引入了 Docker Buildx 工具。Docker Buildx 支持构建跨平台的 Docker 镜像,可以轻松适配不同的操作系统和处理器架构。


Docker Buildx 是一个强大的工具,它简化了在多种 CPU 架构上构建和发布 Docker 镜像的过程。本节将重点介绍如何基于 Linux 创建多架构 Docker 镜像,并展示打包镜像的方法以及如何在不同主机环境中配置 Docker Buildx。以 Ubuntu/Debian 的发行版本为例进行说明。


● Docker Buildx 如何编译多版本的服务

Docker Buildx 支持多架构构建,主要有两种方式:一是使用不同架构的原生 builder;二是通过 QEMU 处理器模拟器实现。本文将重点讨论 QEMU,因为这是一个纯粹的基于软件的解决方案,无需拥有运行在不同架构上的服务器即可运行。


QEMU 的工作原理是通过模仿在服务器/处理器上设置好的来自外部 CPU 类型的所有指令。例如,在 x86 架构的机器上,QEMU 可以模拟 ARM 架构的 CPU 指令。使用 QEMU 模拟器,可以在服务器上运行不同架构的二进制文件。


幸运的是,Linux 同样也有对运行非原生二进制文件的内建支持——binfmt_misc。当 Linux 尝试执行一个二进制文件时,会检查 binfmt_misc 是否注册了该文件类型的 handler。如果已注册,这个 handler 将被调用执行该二进制文件。


在本案例中,我们将利用 binfmt_misc 模块,显式执行 QEMU 模拟的外部 CPU 架构的二进制文件。


● 使用 Docker Buildx 的软件需求

如果想使用 Docker Buildx 构建镜像,需要满足以下几个条件:

· Docker>=19.03: Docker 本身需要包含 Buildx 特性

· Experimental 模式要打开

· Linux 内核版本>=4.8: binfmt_misc 需要 Linux 内核支持 F 参数

· 挂载 binfmt_misc 文件系统

· 主机模式或者 Docker 镜像安装 QEMU 和 binfmt_misc 支持工具


如果使用的是 Docker Desktop(>=2.1.0 版本),比如在 Mac OSX 或者 Windows 上,那么就无需其他配置,因为它已经满足了上面所有的需求。以下是针对在 Linux x86 架构机器上,特别是以 Ubuntu 22.04 为例,安装和配置 Docker Buildx 运行环境的步骤。

Docker Buildx 安装步骤

01 安装 Docker

在 19.03 以后的 Docker 版本才支持 Buildx,所以部署的 Docker 版本至少得是这个版本,可以用下面的命令检查:

root@localhost:~# docker --versionDocker version 25.0.3, build 4debf41
复制代码

如果服务器上没有安装 Docker,那么可以试着用对应 Docker Linux 发行版安装。

sudo apt-get install -y docker-ce
复制代码


02 开启 Docker Experimental 特性

可以通过两种方式开启 Experimental 特性


· 通过设置环境变量

export DOCKER_CLI_EXPERIMENTAL=enabled
复制代码


· 通过在配置文件 $HOME/.docker/config.json 中打开特性开关

{  "experimental": "enabled"}
复制代码


配置完成之后,可以使用 Docker Version 查看是否开启成功。



之后可以检查一下 Docker Buildx 命令是否可用。



03 检查 Linux 内核版本

root@localhost:~# uname -r5.15.0-72-generic
复制代码


上面说过 Linux 内核版本至少需要大于等于 4.8。


04 检查 binfmt_misc 文件系统是否挂载

$ ls /proc/sys/fs/binfmt_misc/register status
复制代码


05 安装 QEMU

sudo apt-get install -y qemu-user-static
复制代码


执行完成之后就安装好了支持多种架构的 QEMU,可以通过下面的命令执行检查 aarch64。

ls -l /usr/bin/qemu-aarch64-staticqemu-aarch64-static --version
复制代码



sudo apt-get install -y binfmt-supportupdate-binfmts --version
复制代码


确保 update-binfmts 版本大于等于 2.1.7。

使用 Docker Buildx 构建镜像

● 创建 Buildx Builder

docker buildx create --name mybuilderdocker buildx use mybuilderdocker buildx inspect --bootstrapdocker buildx ls
复制代码


● 使用 Buildx 构建

docker buildx build --platform linux/arm64 -f Dockerfile.arm --tag=easymanager/matrix:6.1.2-rel-rel . --load
复制代码


上述命令用于将 Docker 镜像打包,以便其能够在 Linux/arm64 架构的服务器上运行。如果有其他类型的架构,可以修改 --platform 参数,比如 linux/amd64, linux/arm/v6, linux/arm/v7, linux/arm64/v8, linux/386, linux/ppc64le, linux/s390x 等等。

总结

国产化信创是国家战略的关键组成部分,对于确保国家网络安全和信息安全具有重要意义。近年来,随着国家对信创产业的持续重视,这一领域已经取得了显著进展,信创组件日益丰富。


EasyMR 致力于深耕国产化信创领域,专注于将 EasyMR 打造成最适合国产化信创组件的大数据弹性计算引擎,助力企业构建安全、稳定、高效的大数据解决方案。


通过不断优化和升级,EasyMR 未来会不断加快国产化信创的适配进程,更好地满足国产化信创产业的需求,为国家网络安全和信息安全贡献力量。


《行业指标体系白皮书》:https://www.dtstack.com/resources/1057?src=szsm


《数据治理行业实践白皮书》下载地址:https://www.dtstack.com/resources/1001?src=szsm


《数栈 V6.0 产品白皮书》下载地址:https://www.dtstack.com/resources/1004?src=szsm


想了解或咨询更多有关大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=szinfoq

发布于: 14 小时前阅读数: 6
用户头像

还未添加个人签名 2021-05-06 加入

还未添加个人简介

评论

发布
暂无评论
EasyMR 基于国产化信创的适配实践技术详解_大数据_袋鼠云数栈_InfoQ写作社区