CN109213449B - 一种基于国产固件的raid驱动实现系统及设备 - Google Patents

一种基于国产固件的raid驱动实现系统及设备 Download PDF

Info

Publication number
CN109213449B
CN109213449B CN201811027052.2A CN201811027052A CN109213449B CN 109213449 B CN109213449 B CN 109213449B CN 201811027052 A CN201811027052 A CN 201811027052A CN 109213449 B CN109213449 B CN 109213449B
Authority
CN
China
Prior art keywords
raid
interface
linux
module
uefi
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.)
Active
Application number
CN201811027052.2A
Other languages
English (en)
Other versions
CN109213449A (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.)
Chaoyue Technology Co Ltd
Original Assignee
Chaoyue Technology 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 Chaoyue Technology Co Ltd filed Critical Chaoyue Technology Co Ltd
Priority to CN201811027052.2A priority Critical patent/CN109213449B/zh
Publication of CN109213449A publication Critical patent/CN109213449A/zh
Application granted granted Critical
Publication of CN109213449B publication Critical patent/CN109213449B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种基于国产固件的RAID驱动实现系统及设备,包括:Linux底层库、Linux SCSI中间层接口、RAID控制器驱动核心模块、ScsiPassThru接口封装模块、UEFI ScsiBus模块和UEFI ScsiDisk模块在国产固件下实现RAID控制器驱动,可以有效提升国产服务器的性能。国产固件下的RAID驱动基于符合UEFI规范的开源EDK‑II源码实现。解决了国产固件下缺少RAID控制器驱动的技术问题。提升系统信息化程度,使得信息化程度具有自主可控、安全可信、高效可用的技术效果。

Description

一种基于国产固件的RAID驱动实现系统及设备
技术领域
本发明涉及数据处理领域,尤其涉及一种基于国产固件的RAID驱动实现系统及设备。
背景技术
随着国家、国防信息化的高速发展,国家对自主可控、安全可信、高效可用专用安全计算平台的需求日趋明显。自主可控的安全计算平台通常基于国产处理器、国产固件设计,但目前国产固件下缺少RAID控制器驱动的实现方法。
发明内容
为了克服上述现有技术中的不足,本发明提供一种基于国产固件的RAID驱动实现系统,包括:Linux底层库、Linux SCSI中间层接口、RAID控制器驱动核心模块、ScsiPassThru接口封装模块、UEFI ScsiBus模块和UEFI ScsiDisk模块;
Linux底层库用于构建Linux SCSI中间层接口和RAID控制器驱动核心模块所需的Linux底层库函数;
Linux SCSI中间层接口用于实现Linux SCSI中间层的接口函数,供RAID控制器驱动核心模块调用;
RAID控制器驱动核心模块用于基于Linux内核中的RAID驱动实现,是RAID驱动的核心部分,通过调用Linux底层库和Linux SCSI中间层接口提供的接口函数直接操作RAID控制器的寄存器,完成RAID控制器的初始化与SCSI命令发送,并向上层提供queuecommand接口;
ScsiPassThru接口封装模块用于将RAID控制器驱动核心模块提供的queuecommand接口封装为UEFI下的ScsiPassThru接口;
UEFI ScsiBus模块和UEFI ScsiDisk模块分别是UEFI BIOS中的内置模块,负责根据ScsiPassThru接口实现SCSI扫描,RAID硬盘阵列数据读写功能。
优选地,Linux底层库还用于使Linux底层库函数通过对EDK-II中的底层库函数、Boot Servers和Protocols进行封装,构建Linux驱动程序运行所需的内存管理、字符串处理、IO读写、DMA传输、延时等底层库函数。
优选地,Linux SCSI中间层接口还用于基于Linux底层库函数和EDK-II提供的接口实现Linux SCSI中间层的接口函数,Linux SCSI中间层的接口函数的名称及接口形式与Linux内核中保持一致,以方便RAID驱动核心模块的直接调用。
优选地,RAID驱动核心模块还用于由内核驱动移植实现,为上层提供queuecommand接口,基于Linux内核驱动涉及中断、多线程同步操作,而BIOS为单核心、单线程、无外设中断的运行环境,将内核驱动由中断方式改为轮训方式,并将多核心、多线程的处理方式改为单核心、单线程的处理方式。
优选地,ScsiPassThru接口封装模块还用于根据UEFI规范,对queuecommand接口相关的数据结构进行封装,使其符合ScsiPassThruProtocol的接口形式。
优选地,UEFI ScsiBus模块和UEFI ScsiDisk模块是EDK-II源码中的内置模块,UEFI ScsiBus模块通过调用ScsiPassThruProtocol接口,完成SCSI扫描,在扫描到SCSI设备后,创建对应的ScsiDevice;UEFI ScsiDisk模块在ScsiDevice上安装BlockIoProtocol,实现对RAID硬盘阵列或SAS硬盘的数据读写。
优选地,SCSI设备包括:RAID硬盘阵列、SAS硬盘。
优选地,国产固件下的RAID驱动基于符合UEFI规范的开源EDK-II源码实现。
一种实现基于国产固件的RAID驱动实现系统的设备,包括:
存储器,用于存储计算机程序及实现基于国产固件的RAID驱动实现系统;
处理器,用于执行所述计算机程序及实现基于国产固件的RAID驱动实现系统,以实现基于国产固件的RAID驱动实现系统执行的步骤。
从以上技术方案可以看出,本发明具有以下优点:
本发明中把多个硬盘结合起来,成为一个硬盘阵列,增强数据集成度、容错功能、处理量和容量,是服务器平台的重要功能。在国产固件下实现RAID控制器驱动,可以有效提升国产服务器的性能。国产固件下的RAID驱动基于符合UEFI规范的开源EDK-II源码实现。解决了国产固件下缺少RAID控制器驱动的技术问题。提升系统信息化程度,使得信息化程度具有自主可控、安全可信、高效可用的技术效果。
附图说明
为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为基于国产固件的RAID驱动实现系统示意图。
具体实施方式
本发明提供一种基于国产固件的RAID驱动实现系统,如图1所示,包括:Linux底层库1、Linux SCSI中间层接口2、RAID控制器驱动核心模块3、ScsiPassThru接口封装模块4、UEFI ScsiBus模块5和UEFI ScsiDisk模块6;
Linux底层库1用于构建Linux SCSI中间层接口2和RAID控制器驱动核心模块3所需的Linux底层库1函数;
Linux SCSI中间层接口2用于实现Linux SCSI中间层的接口函数,供RAID控制器驱动核心模块3调用;
RAID控制器驱动核心模块3用于基于Linux内核中的RAID驱动实现,是RAID驱动的核心部分,通过调用Linux底层库1和Linux SCSI中间层接口2提供的接口函数直接操作RAID控制器的寄存器,完成RAID控制器的初始化与SCSI命令发送,并向上层提供queuecommand接口;
ScsiPassThru接口封装模块4用于将RAID控制器驱动核心模块3提供的queuecommand接口封装为UEFI下的ScsiPassThru接口;
UEFI ScsiBus模块5和UEFI ScsiDisk模块6分别是UEFI BIOS中的内置模块,负责根据ScsiPassThru接口实现SCSI扫描,RAID硬盘阵列数据读写功能。
RAID是独立磁盘冗余阵列(Redundant Array of Independent Disks),是一种由多块硬盘构成的冗余阵列。
在一些实施例中,所述设备中的一个或多个设备的部分或所有功能或处理由计算机程序实现或支持,计算机程序由计算机可读程序代码形成并且被包括在计算机可读介质中。短语“计算机可读程序代码”包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。短语“计算机可读介质”包括能够被计算机访问的任何类型的介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、硬盘驱动器、光盘(CD)、数字视频盘(DVD)、或任何其他类型的存储器。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将运用具体的实施例及附图,对本发明保护的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本专利中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利保护的范围。
国产固件下的RAID驱动基于符合UEFI规范的开源EDK-II源码实现。Linux底层库函数通过对EDK-II中的底层库函数、Boot Servers和Protocols进行封装,构建Linux驱动程序运行所需的内存管理、字符串处理、IO读写、DMA传输、延时等底层库函数;Linux SCSI中间层接口基于Linux底层库函数和EDK-II提供的接口实现部分Linux SCSI中间层的接口函数,这些接口函数的名称及接口形式与需与Linux内核中保持一致,以方便RAID驱动核心模块的直接调用;RAID驱动核心模块由内核驱动移植实现,为上层提供queuecommand接口,由于Linux内核驱动涉及中断、多线程同步等操作,而BIOS为单核心、单线程、无外设中断的运行环境,故需将内核驱动由中断方式改为轮训方式,并将多核心、多线程的处理方式改为单核心、单线程的处理方式;ScsiPassThru接口封装模块根据UEFI规范,对queuecommand接口相关的数据结构进行封装,使其符合ScsiPassThruProtocol的接口形式;UEFI ScsiBus模块和UEFI ScsiDisk模块是EDK-II源码中的内置模块,UEFI ScsiBus模块通过调用ScsiPassThruProtocol接口,完成SCSI扫描,在扫描到SCSI设备后,创建对应的ScsiDevice,而UEFI ScsiDisk模块则会在ScsiDevice上安装BlockIoProtocol,实现对RAID硬盘阵列或SAS硬盘的数据读写。国产固件下的RAID驱动基于符合UEFI规范的开源EDK-II源码实现。
可能以许多方式来实现本发明的方法以及装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法以及装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明还提供一种实现基于国产固件的RAID驱动实现系统的设备,包括:存储器,用于存储计算机程序及实现基于国产固件的RAID驱动实现系统;处理器,用于执行所述计算机程序及实现基于国产固件的RAID驱动实现系统,以实现基于国产固件的RAID驱动实现系统执行的步骤。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种基于国产固件的RAID驱动实现系统,其特征在于,包括:Linux底层库、LinuxSCSI中间层接口、RAID控制器驱动核心模块、ScsiPassThru接口封装模块、UEFI ScsiBus模块和UEFI ScsiDisk模块;
Linux底层库用于构建Linux SCSI中间层接口和RAID控制器驱动核心模块所需的Linux底层库函数;
Linux SCSI中间层接口用于实现Linux SCSI中间层的接口函数,供RAID控制器驱动核心模块调用;
RAID控制器驱动核心模块用于基于Linux内核中的RAID驱动实现,是RAID驱动的核心部分,通过调用Linux底层库和Linux SCSI中间层接口提供的接口函数直接操作RAID控制器的寄存器,完成RAID控制器的初始化与SCSI命令发送,并向上层提供queuecommand接口;
ScsiPassThru接口封装模块用于将RAID控制器驱动核心模块提供的queuecommand接口封装为UEFI下的ScsiPassThru接口;
UEFI ScsiBus模块和UEFI ScsiDisk模块分别是UEFI BIOS中的内置模块,负责根据ScsiPassThru接口实现SCSI扫描,RAID硬盘阵列数据读写功能。
2.根据权利要求1所述的基于国产固件的RAID驱动实现系统,其特征在于,
Linux底层库还用于使Linux底层库函数通过对EDK-II中的底层库函数、Boot Servers和Protocols进行封装,构建Linux驱动程序运行所需的内存管理、字符串处理、IO读写、DMA传输、延时底层库函数。
3.根据权利要求1所述的基于国产固件的RAID驱动实现系统,其特征在于,
Linux SCSI中间层接口还用于基于Linux底层库函数和EDK-II提供的接口实现LinuxSCSI中间层的接口函数,Linux SCSI中间层的接口函数的名称及接口形式与Linux内核中保持一致,以方便RAID驱动核心模块的直接调用。
4.根据权利要求1所述的基于国产固件的RAID驱动实现系统,其特征在于,
RAID驱动核心模块还用于由内核驱动移植实现,为上层提供queuecommand接口,基于Linux内核驱动涉及中断、多线程同步操作,而BIOS为单核心、单线程、无外设中断的运行环境,将内核驱动由中断方式改为轮训方式,并将多核心、多线程的处理方式改为单核心、单线程的处理方式。
5.根据权利要求1所述的基于国产固件的RAID驱动实现系统,其特征在于,
ScsiPassThru接口封装模块还用于根据UEFI规范,对queuecommand接口相关的数据结构进行封装,使其符合ScsiPassThruProtocol的接口形式。
6.根据权利要求1所述的基于国产固件的RAID驱动实现系统,其特征在于,
UEFI ScsiBus模块和UEFI ScsiDisk模块是EDK-II源码中的内置模块,UEFI ScsiBus模块通过调用ScsiPassThruProtocol接口,完成SCSI扫描,在扫描到SCSI设备后,创建对应的ScsiDevice;UEFI ScsiDisk模块在ScsiDevice上安装BlockIoProtocol,实现对RAID硬盘阵列或SAS硬盘的数据读写。
7.根据权利要求6所述的基于国产固件的RAID驱动实现系统,其特征在于,
SCSI设备包括:RAID硬盘阵列、SAS硬盘。
8.根据权利要求1所述的基于国产固件的RAID驱动实现系统,其特征在于,
国产固件下的RAID驱动基于符合UEFI规范的开源EDK-II源码实现。
9.一种实现基于国产固件的RAID驱动实现系统的设备,其特征在于,包括:
存储器,用于存储计算机程序及实现基于国产固件的RAID驱动实现系统;
处理器,用于执行所述计算机程序及实现基于国产固件的RAID驱动实现系统,以实现如权利要求1至8任意一项所述基于国产固件的RAID驱动实现系统执行的步骤。
CN201811027052.2A 2018-09-04 2018-09-04 一种基于国产固件的raid驱动实现系统及设备 Active CN109213449B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811027052.2A CN109213449B (zh) 2018-09-04 2018-09-04 一种基于国产固件的raid驱动实现系统及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811027052.2A CN109213449B (zh) 2018-09-04 2018-09-04 一种基于国产固件的raid驱动实现系统及设备

Publications (2)

Publication Number Publication Date
CN109213449A CN109213449A (zh) 2019-01-15
CN109213449B true CN109213449B (zh) 2021-07-06

Family

ID=64986169

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811027052.2A Active CN109213449B (zh) 2018-09-04 2018-09-04 一种基于国产固件的raid驱动实现系统及设备

Country Status (1)

Country Link
CN (1) CN109213449B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110007976A (zh) * 2019-04-03 2019-07-12 中电科技(北京)有限公司 基于国产处理器平台的Raid卡固件层初始化方法
CN111258661A (zh) * 2020-01-13 2020-06-09 山东超越数控电子股份有限公司 一种基于uefi scsi的raid卡驱动设计方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1694081A (zh) * 2005-05-31 2005-11-09 清华大学 San系统中虚拟化智能控制器的实现方法
CN103729147A (zh) * 2013-12-30 2014-04-16 华澜微电子有限公司 一种独立模块的冗余阵列
CN106909350A (zh) * 2015-12-22 2017-06-30 中电科技(北京)有限公司 一种适用于国产处理器平台的raid卡配置和驱动方法
CN106909349A (zh) * 2015-12-22 2017-06-30 中电科技(北京)有限公司 一种基于服务器的uefi固件实现方法
CN106959828A (zh) * 2017-03-31 2017-07-18 山东超越数控电子有限公司 一种基于国产平台的硬件raid系统及其实现方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180095679A1 (en) * 2016-09-30 2018-04-05 Piotr Wysocki Device driver to provide redundant array of independent disks functionality

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1694081A (zh) * 2005-05-31 2005-11-09 清华大学 San系统中虚拟化智能控制器的实现方法
CN103729147A (zh) * 2013-12-30 2014-04-16 华澜微电子有限公司 一种独立模块的冗余阵列
CN106909350A (zh) * 2015-12-22 2017-06-30 中电科技(北京)有限公司 一种适用于国产处理器平台的raid卡配置和驱动方法
CN106909349A (zh) * 2015-12-22 2017-06-30 中电科技(北京)有限公司 一种基于服务器的uefi固件实现方法
CN106959828A (zh) * 2017-03-31 2017-07-18 山东超越数控电子有限公司 一种基于国产平台的硬件raid系统及其实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SATA及ADMA控制器linux操作系统驱动的设计与实现;孙文波,尤晋元;《计算机应用与软件》;20061211;第23卷(第11期);全文 *

Also Published As

Publication number Publication date
CN109213449A (zh) 2019-01-15

Similar Documents

Publication Publication Date Title
US8972669B2 (en) Page buffering in a virtualized, memory sharing configuration
TWI533213B (zh) 儲存和恢復應用程式運行時間狀態
US8181176B2 (en) Uniform storage device access using partial virtual machine executing within a secure enclave session
US20080155331A1 (en) System and method for enabling seamless boot recovery
TWI505087B (zh) 系統重設
US20090119538A1 (en) Storage Handling for Fault Tolerance in Virtual Machines
JP2011528470A (ja) 仮想化されたサーバ・プラットフォーム上に起動可能な仮想ストレージ・アプライアンスをインストールするためのシステムおよび方法
WO2010030715A2 (en) Managing cache data and metadata
CN103493011A (zh) 与库操作系统的应用兼容性
US8812915B2 (en) Determining whether a right to use memory modules in a reliability mode has been acquired
US20140359267A1 (en) Method of controlling computer system and computer system
CN109213449B (zh) 一种基于国产固件的raid驱动实现系统及设备
EP2557497A1 (en) Method for improving booting of a computing device
US10185573B2 (en) Caching based operating system installation
US20170308386A1 (en) Disk sector based remote storage booting
US20130024602A1 (en) Universal Storage for Information Handling Systems
US9740544B2 (en) Live snapshotting of multiple virtual disks in networked systems
US11249792B1 (en) Peripheral device mounting based on file system compatibility
CN106874068B (zh) 主机装置的容器运行加速方法及系统
US20110202903A1 (en) Apparatus and method for debugging a shared library
JP7522775B2 (ja) 不揮発性記憶区画識別子
US11526358B2 (en) Deterministic execution replay for multicore systems
US20140298352A1 (en) Computer with plurality of processors sharing process queue, and process dispatch processing method
US20240054250A1 (en) Method and system for dynamically updating stack canary
US20090049204A1 (en) Virtualization aware hard drive

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 250101 no.2877 Kehang Road, Suncun Town, high tech Zone, Jinan City, Shandong Province

Applicant after: Chaoyue Technology Co.,Ltd.

Address before: 250101 no.2877 Kehang Road, Suncun Town, high tech Zone, Jinan City, Shandong Province

Applicant before: SHANDONG CHAOYUE DATA CONTROL ELECTRONICS Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A RAID driver implementation system and equipment based on domestic firmware

Effective date of registration: 20211104

Granted publication date: 20210706

Pledgee: China Merchants Bank Co.,Ltd. Jinan Branch

Pledgor: Chaoyue Technology Co.,Ltd.

Registration number: Y2021370000126

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20230413

Granted publication date: 20210706

Pledgee: China Merchants Bank Co.,Ltd. Jinan Branch

Pledgor: Chaoyue Technology Co.,Ltd.

Registration number: Y2021370000126