EasyMR 基於國產化信創的適配實踐技術詳解

袋鼠云数栈發表於2024-05-22

國產化信創,即採用國產資訊科技產品和服務,構建自主可控的資訊科技體系。近年來,隨著國家對網路安全和資訊保安的重視程度不斷提高,國產化信創已經成為國家戰略的重要組成部分,並呈現出以下大趨勢:

● 政策驅動,加速發展

國家出臺了一系列政策法規,大力支援國產化信創產業發展。例如,《“十四五”數字經濟發展規劃》提出,到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 --version
Docker 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 檢視是否開啟成功。

file

之後可以檢查一下 Docker Buildx 命令是否可用。

file

03 檢查 Linux 核心版本

root@localhost:~# uname -r
5.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-static
qemu-aarch64-static --version

file

sudo apt-get install -y binfmt-support
update-binfmts --version

確保 update-binfmts 版本大於等於2.1.7。

使用 Docker Buildx 構建映象

● 建立 Buildx Builder

docker buildx create --name mybuilder
docker buildx use mybuilder
docker buildx inspect --bootstrap
docker 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/1004?src=szsm

《資料治理行業實踐白皮書》下載地址:https://www.dtstack.com/resources/1001?src=szsm

想了解或諮詢更多有關大資料產品、行業解決方案、客戶案例的朋友,瀏覽袋鼠雲官網:https://www.dtstack.com/?src=szbky

相關文章