CN114327490A - 国产操作***适配Ceph的方法 - Google Patents

国产操作***适配Ceph的方法 Download PDF

Info

Publication number
CN114327490A
CN114327490A CN202210205329.6A CN202210205329A CN114327490A CN 114327490 A CN114327490 A CN 114327490A CN 202210205329 A CN202210205329 A CN 202210205329A CN 114327490 A CN114327490 A CN 114327490A
Authority
CN
China
Prior art keywords
ceph
loongarch
architecture
operating system
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210205329.6A
Other languages
English (en)
Other versions
CN114327490B (zh
Inventor
金旭
刘屹松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kirin Software Co Ltd
Original Assignee
Kirin Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kirin Software Co Ltd filed Critical Kirin Software Co Ltd
Priority to CN202210205329.6A priority Critical patent/CN114327490B/zh
Publication of CN114327490A publication Critical patent/CN114327490A/zh
Application granted granted Critical
Publication of CN114327490B publication Critical patent/CN114327490B/zh
Priority to PCT/CN2022/138101 priority patent/WO2023165206A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

本发明属于国产操作***适配Ceph技术领域,具体涉及一种国产操作***适配Ceph的方法。本发明的国产操作***基于LoongArch架构处理器平台,方法包括以下步骤:步骤S1:Ceph更改编译配置:在Ceph中增加LoongArch架构的分支并设置LoongArch架构的分支编译流程;在Ceph的编译配置中增加LoongArch架构的参数;步骤S2:Ceph添加LoongArch代码;步骤S3:平台自适应;步骤S4:Ceph与LoongArch架构处理器平台的国产操作***适配。

Description

国产操作***适配Ceph的方法
技术领域
本发明属于国产操作***适配Ceph技术领域,具体涉及一种国产操作***适配Ceph的方法。
背景技术
随着计算机技术的飞速发展和国产化替代热潮的兴起,越来越多的企业将自己的业务模型向国产处理器、国产操作***迁移。Ceph作为OpenStack的重要组件,也被广泛用于各大企业的云计算业务中,但Ceph原始代码中并无LoongArch分支,因此如何使Ceph与LoongArch架构处理器平台的国产操作***适配成为一个待解决的问题。
发明内容
有鉴于此,本发明为了解决现有技术存在的缺陷和不足,提供了一种国产操作***适配Ceph的方法,国产操作***基于LoongArch架构处理器平台,通过更改配置、添加LoongArch架构的分支,使Ceph与LoongArch架构适配,从而使Ceph在LoongArch架构的国产操作***上成功编译、安装、运行和部署。
本发明一种国产操作***适配Ceph的方法,所述国产操作***基于LoongArch架构处理器平台,包括以下步骤:
步骤S1:Ceph更改编译配置:
在Ceph中增加LoongArch架构的分支并设置LoongArch架构的分支编译流程;
在Ceph的编译配置中增加LoongArch架构的参数,使Ceph识别及编译LoongArch架构的分支;
步骤S2:Ceph添加LoongArch代码:
在Ceph的LoongArch架构的分支中添加LoongArch架构的文件及LoongArch代码,保障Ceph在LoongArch架构处理器平台上编译及运行;
步骤S3:平台自适应:
Ceph匹配并实施LoongArch架构的分支,通过LoongArch代码来识别LoongArch架构处理器平台的接口,使Ceph与LoongArch架构处理器平台兼容;
步骤S4:Ceph与LoongArch架构处理器平台的国产操作***适配。
进一步的,所述步骤S1中,参数包括编译参数、配置检查参数、配置信息参数、上下文构建参数。
进一步的,所述LoongArch代码为LoongArch架构的分支的代码,所述LoongArch代码包括宏定义、接口函数、汇编指令。
进一步的,在所述步骤S3中,Ceph识别LoongArch架构处理器平台的接口是通过LoongArch代码中的宏定义实现的。
进一步的,在所述步骤S3中,若匹配的架构为LoongArch,则匹配LoongArch代码及接口,若匹配的架构非LoongArch,则匹配其他架构代码及接口。
进一步的,所述步骤S4是在Ceph的部署工具Ceph-deploy中添加国产操作***标签,使Ceph部署在国产操作***上,完成Ceph与运行在 LoongArch架构处理器平台的国产操作***适配。
本发明国产操作***适配Ceph的方法,可以在LoongArch架构处理器平台的国产操作***上自动识别架构、匹配文件、完整通过编译、运行基础服务、部署Ceph集群。本方法既在Ceph原始代码基础上扩展了LoongArch架构的分支,又不影响Ceph的原始代码的任何结构,具备高度可扩展性。
本发明在Ceph中添加了LoongArch架构的分支,可以在编译过程中自动识别LoongArch架构,并匹配对应的代码保证接口的兼容性。
本发明在LoongArch架构处理器平台的国产操作***上运行Ceph服务,并搭建多节点集群环境。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明主要调用流程的关系图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
本发明的缩略语及关键术语定义。
Ceph:一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件***。
LoongArch:龙芯中科基于二十年的CPU研制和生态建设积累推出的龙芯指令***,包括基础架构部分和向量指令、虚拟化、二进制翻译等扩展部分,近2000条指令。
平台自适应:Ceph中除自身的配置、插件、管理工具外,还包含很多***功能模块,这些***功能模块中存在与架构有关的代码,Ceph会根据不同架构自适应选择对应的代码以保证正常编译、运行。
本发明提供国产操作***适配Ceph的方法,国产操作***基于LoongArch架构处理器平台,通过更改配置、添加LoongArch架构分支,使Ceph与LoongArch架构处理器平台的国产操作***适配。
如图1所示,本发明方法步骤如下:
步骤S1:Ceph更改编译配置:
在Ceph中增加LoongArch架构的分支并设置LoongArch架构的分支编译流程;
在Ceph的编译配置中增加LoongArch架构的参数,使Ceph识别及编译LoongArch架构的分支。
步骤S2:Ceph添加LoongArch代码:
在Ceph的LoongArch架构的分支中添加LoongArch架构的文件及LoongArch代码。通过步骤S2,可以编译出适用于LoongArch架构处理器平台的二进制文件,从而保障Ceph在LoongArch架构处理器平台上编译及运行。
步骤S3:平台自适应:
Ceph匹配并实施LoongArch架构的分支,通过LoongArch代码来识别LoongArch架构处理器平台的接口,使Ceph与LoongArch架构处理器平台兼容。
步骤S4:Ceph与LoongArch架构处理器平台的国产操作***适配。
其具体实施例:
步骤S1:Ceph更改编译配置,并构建LoongArch架构的分支;
在Ceph中增加LoongArch架构的分支并设置LoongArch架构的分支编译流程;在Ceph的编译配置中增加LoongArch架构的参数。
参数包括编译参数、配置检查参数、配置信息参数、上下文构建参数。
增加的LoongArch的参数举例:
增加LoongArch架构分支与参数:
elseif(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "LOONGARCH")
string(APPEND _boost_ARCHITECTURE_TAG "lp")
配置检查参数:obj loongarch64:loongarch64.cpp
配置信息参数:PRINT_MACRO(__loongarch__)
上下文构建参数:
else if [ configure.builds /boost/architecture//loongarch64 : $(properties) : loongarch64 ]
{
return <architecture>loongarch64 ;
}
步骤S2:Ceph添加LoongArch代码;
在Ceph的LoongArch架构的分支中增加LoongArch架构的文件以及添加LoongArch代码,保障Ceph在LoongArch架构处理器平台上编译及运行。
根据LoongArch架构的特性,在Ceph中添加的LoongArch代码为专属于LoongArch架构的分支的代码,包括一些宏定义、接口函数、汇编指令等。
增加LoongArch架构文件:
src/boost/boost/predef/architecture/loongarch64.h
专属于LoongArch架构的分支的代码举例:
宏定义:
/* LOONGARCH */
#if defined(__loongarch64)
#define DUK_F_LOONGARCH64
#else
#define DUK_F_LOONGARCH32
#endif
接口函数:
.file "ontop_loongarch64_lp64_elf_gas.S"
.text
.globlontop_fcontext
.align 3
.type ontop_fcontext,@function
ontop_fcontext:
# reserve space on stack
addi.d $sp, $sp, -160
汇编指令:
ld.d $t0, $zero, 0xfffffffffffffff0
步骤S3:平台自适应;
Ceph匹配并实施LoongArch架构的分支,并通过LoongArch代码中的宏定义来识别LoongArch架构处理器平台的接口,使Ceph与LoongArch架构处理器平台兼容。
步骤S3是为了连通Ceph的通用代码与架构代码,确保接口的兼容性,使接口可以被显示和调用。
需要指出的是,Ceph除LoongArch架构处理器平台以外,Ceph还支持X86、ARM、MIPS、PPC等诸多架构,对这些架构的接口分别予以不同实现方式,而这是通过架构的宏定义进行区分的,以此在实际部署中,根据实际识别的架构,自动匹配对应分支代码并实施,达到Ceph与平台兼容。
故,步骤S3是Ceph根据架构特性匹配对应架构代码及接口,并调用该接口,来完成编译工作。若匹配的架构为LoongArch,则匹配LoongArch代码及接口,若匹配的架构非LoongArch,则匹配其他架构代码及接口。通过步骤S1、步骤S2,可使步骤S3的Ceph匹配到LoongArch架构,从而完成Ceph与LoongArch架构处理器平台的兼容。本步骤无需手动指定任何参数,完全自动识别、匹配与实施。
步骤S4:Ceph与LoongArch架构处理器平台的国产操作***适配。
Ceph部署工具Ceph-deploy中,目前仅支持redhat、centos、suse等国际主流操作***,并未识别国产操作***,
步骤S4是在Ceph的部署工具Ceph-deploy中添加国产操作***标签,使Ceph识别国产操作***并部署在国产操作***上,进而使Ceph与运行在LoongArch架构处理器平台的国产操作***适配。
LoongArch架构处理器可以采用龙芯5000及以上系列LoongArch指令集CPU。国产操作***可以选用国产麒麟服务器操作***。当采用国产麒麟服务器操作***时,可以先执行步骤S1、步骤S2、步骤S3然后在Ceph-deploy新增国产麒麟服务器操作***标签,这样Ceph可以与LoongArch架构处理器平台的国产麒麟服务器操作***适配、部署,并编译运行。
本发明基于LoongArch架构处理器平台的国产操作***适配Ceph的方法,可在国产操作***上自动识别架构、匹配代码文件、完整通过编译、运行基础服务、部署Ceph集群。本方法既在Ceph原始代码的基础上扩展了LoongArch架构的分支,又不影响原始代码的任何结构,具备高度可扩展性。
上述说明示出并描述了本发明的实施例,但应当理解本发明并非局限于本文的形式,不应看作是对其他实施例的排除,在本文所述发明构想范围内,本领域人员所进行的改动和变化不脱离本发明的范围,则都应在本发明权利要求的范围内。

Claims (6)

1.一种国产操作***适配Ceph的方法,所述国产操作***基于LoongArch架构处理器平台,其特征在于,包括以下步骤:
步骤S1:Ceph更改编译配置:
在所述Ceph中增加LoongArch架构的分支并设置所述LoongArch架构的分支编译流程;
在所述Ceph的编译配置中增加所述LoongArch架构的参数,使所述Ceph识别及编译所述LoongArch架构的分支;
步骤S2:所述Ceph添加LoongArch代码:
在所述Ceph的所述LoongArch架构的分支中添加所述LoongArch架构的文件及LoongArch代码;
步骤S3:平台自适应:
所述Ceph匹配并实施所述LoongArch架构的分支,通过所述LoongArch代码来识别所述LoongArch架构处理器平台的接口,使所述Ceph与所述LoongArch架构处理器平台兼容;
步骤S4:所述Ceph与所述LoongArch架构处理器平台的所述国产操作***适配。
2.根据权利要求1所述的国产操作***适配Ceph的方法,其特征在于,所述步骤S1中,所述参数包括编译参数、配置检查参数、配置信息参数、上下文构建参数。
3.根据权利要求1所述的国产操作***适配Ceph的方法,其特征在于,所述LoongArch代码为所述LoongArch架构的分支的代码,所述LoongArch代码包括宏定义、接口函数、汇编指令。
4.根据权利要求3所述的国产操作***适配Ceph的方法,其特征在于,在所述步骤S3中,所述Ceph识别所述LoongArch架构处理器平台的接口是通过所述LoongArch代码中的所述宏定义实现的。
5.根据权利要求4所述的国产操作***适配Ceph的方法,其特征在于,在所述步骤S3中,若匹配的架构为LoongArch,则匹配所述LoongArch代码及接口,若匹配的架构非LoongArch,则匹配其他架构代码及接口。
6.根据权利要求1所述的国产操作***适配Ceph的方法,其特征在于,所述步骤S4是在所述Ceph的部署工具Ceph-deploy中添加国产操作***标签,使所述Ceph识别并部署在所述国产操作***上,完成所述Ceph与运行在所述LoongArch架构处理器平台的所述国产操作***适配。
CN202210205329.6A 2022-03-04 2022-03-04 国产操作***适配Ceph的方法 Active CN114327490B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210205329.6A CN114327490B (zh) 2022-03-04 2022-03-04 国产操作***适配Ceph的方法
PCT/CN2022/138101 WO2023165206A1 (zh) 2022-03-04 2022-12-09 国产操作***适配Ceph的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210205329.6A CN114327490B (zh) 2022-03-04 2022-03-04 国产操作***适配Ceph的方法

Publications (2)

Publication Number Publication Date
CN114327490A true CN114327490A (zh) 2022-04-12
CN114327490B CN114327490B (zh) 2022-07-08

Family

ID=81030985

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210205329.6A Active CN114327490B (zh) 2022-03-04 2022-03-04 国产操作***适配Ceph的方法

Country Status (2)

Country Link
CN (1) CN114327490B (zh)
WO (1) WO2023165206A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023165206A1 (zh) * 2022-03-04 2023-09-07 麒麟软件有限公司 国产操作***适配Ceph的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107454140A (zh) * 2017-06-27 2017-12-08 北京溢思得瑞智能科技研究院有限公司 一种基于大数据平台的Ceph集群自动化部署方法及***
CN112068780A (zh) * 2020-09-10 2020-12-11 国家卫星气象中心(国家空间天气监测预警中心) 一种基于异构存储的数据统一管理***

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273176B (zh) * 2016-04-08 2020-05-12 上海思立微电子科技有限公司 一种适配硬件架构的编译方法及装置
CN107329764A (zh) * 2017-07-03 2017-11-07 苏州大学 一种多任务gcplc***及利用该***实现应用开发的方法
CN109871213A (zh) * 2018-12-25 2019-06-11 武汉烽火信息集成技术有限公司 基于国产平台的OpenStack容器化***及方法
US10908892B2 (en) * 2019-03-12 2021-02-02 International Business Machines Corporation Generating and deploying object code files compiled on build machines
CN110704070B (zh) * 2019-09-30 2021-04-13 北京航空航天大学 一种分区实时操作***下dds通信中间件的构建方法
CN111913740A (zh) * 2020-05-07 2020-11-10 电子科技大学 一种基于fpga的risc-v处理器上的实时操作***移植方法
CN113703772A (zh) * 2021-08-23 2021-11-26 北京计算机技术及应用研究所 基于ice的异构平台高效智能计算应用架构及其构建方法
CN114327490B (zh) * 2022-03-04 2022-07-08 麒麟软件有限公司 国产操作***适配Ceph的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107454140A (zh) * 2017-06-27 2017-12-08 北京溢思得瑞智能科技研究院有限公司 一种基于大数据平台的Ceph集群自动化部署方法及***
CN112068780A (zh) * 2020-09-10 2020-12-11 国家卫星气象中心(国家空间天气监测预警中心) 一种基于异构存储的数据统一管理***

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
FANGJIAQI_HZ: "《https://blog.csdn.net/qq_40348394/article/details/121626085》", 30 November 2021, pages: 1 - 7 *
花体龙: "《https://blog.csdn.net/qq_33364461/article/details/114941058》", 17 March 2021, pages: 1 - 4 *
龙芯中科: "《 https://baijiahao.***.com/s?id=1725338357050239533&wfr=spider&for=pc》", 21 February 2020, pages: 1 - 3 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023165206A1 (zh) * 2022-03-04 2023-09-07 麒麟软件有限公司 国产操作***适配Ceph的方法

Also Published As

Publication number Publication date
CN114327490B (zh) 2022-07-08
WO2023165206A1 (zh) 2023-09-07

Similar Documents

Publication Publication Date Title
CN111736954B (zh) 多智能合约虚拟机实现方法、多智能合约虚拟机及***
CN111897570B (zh) 一种基于Maven插件的多依赖项文件提取方法及装置
CN108876619B (zh) 基于区块链智能合约的处理方法、装置、设备和介质
CN109976760A (zh) 一种图形语言的交叉编译方法及交叉编译器
CN109918081A (zh) 一种编译方法及编译器
CN111324619B (zh) 微服务***中的对象更新方法、装置、设备和存储介质
CN114327490B (zh) 国产操作***适配Ceph的方法
US12032941B2 (en) Method and system for updating legacy software
CN102360305A (zh) 用于航天计算机的VxWorks操作***裁剪定制方法
CN107871050B (zh) 面向数据和面向对象的混合建模方法及存储介质
CN111984245A (zh) 一种区块链智能合约在线集成开发环境***及实现方法
CN111610974B (zh) 一种面向边缘计算的跨***平台编译方法
EP3866443A1 (en) Opc ua server, system operating using opc ua, and method of executing opc ua system
CN104133588A (zh) 一种基于脚本的继电保护装置图形开发方法
CN112068881A (zh) 一种基于数据链式的数据库升级方法
CN111966382A (zh) 机器学习模型的在线部署方法、装置及相关设备
CN117573095A (zh) 一种支持持续集成的交叉编译框架的搭建及编译方法
CN111522623B (zh) 组件化软件多进程运行***
CN108932134A (zh) 服务器bios远程更新方法
CN102707934A (zh) 一种以脚本形式表示增值业务流程的实现方法和***
CN115964036A (zh) 一种基于微服务架构的可视化服务编排***
CN111399847A (zh) 一种可跨硬件平台移植的业务***
CN115658140A (zh) 一种sdk的打包方法、装置、终端以及存储介质
US8898524B2 (en) Computer-readable medium storing wrapper program and integrated circuit apparatus
CN114637514A (zh) Sdk的编译方法、装置、终端及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant