CN117311646B - 固态硬盘配置管理方法、装置、计算机设备及存储介质 - Google Patents
固态硬盘配置管理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN117311646B CN117311646B CN202311609342.9A CN202311609342A CN117311646B CN 117311646 B CN117311646 B CN 117311646B CN 202311609342 A CN202311609342 A CN 202311609342A CN 117311646 B CN117311646 B CN 117311646B
- Authority
- CN
- China
- Prior art keywords
- solid state
- disk array
- array card
- configuration management
- disk
- 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
Links
- 239000007787 solid Substances 0.000 title claims abstract description 204
- 238000007726 management method Methods 0.000 title claims description 209
- 238000000034 method Methods 0.000 claims abstract description 49
- 238000012795 verification Methods 0.000 claims abstract description 22
- 230000015654 memory Effects 0.000 claims description 58
- 238000013507 mapping Methods 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 15
- 238000004891 communication Methods 0.000 claims description 10
- 230000003993 interaction Effects 0.000 claims description 10
- 238000003491 array Methods 0.000 claims description 9
- 230000002452 interceptive effect Effects 0.000 claims description 8
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 230000006978 adaptation Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 29
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 239000000243 solution Substances 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000013523 data management Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及存储技术领域,公开了一种固态硬盘配置管理方法、装置、计算机设备及存储介质,其中方法包括:通过预先配置的配置管理模块接收命令参数,其中,配置管理模块被配置在磁盘阵列卡的固件层中,用于对磁盘阵列卡的配置参数进行管理,命令参数携带有对磁盘阵列卡的操作命令;通过配置管理模块对命令参数进行合法性校验;若校验结果为合法,则通过配置管理模块向磁盘阵列卡中操作命令对应的模块分发操作命令。通过在磁盘阵列卡中配置有配置管理模块来进行命令参数的接收和校验,并在校验通过的情况下,向其他模块分发操作命令,也即是有配置管理模块实现对磁盘阵列卡的统一配置管理,解决了磁盘阵列卡配置管理分散的问题。
Description
技术领域
本发明涉及存储技术领域,具体涉及固态硬盘配置管理方法、装置、计算机设备及存储介质。
背景技术
磁盘阵列(RAID)存储技术(即RAID卡)目前已经比较成熟。RAID卡是分布式存储系统的关键技术,RAID卡将软RAID存储技术中的一些算法、数据管理以及一些功能都交给硬件实现,以达到提高存储性能。RAID卡是将主机或服务器连接的多个磁盘按照不同的RAID级别组成一个或多个RAID阵列,用户在RAID卡上创建一个或多个指定容量大小的逻辑块设备供主机使用,因此RAID卡是将服务器连接的磁盘按照不同RAID级别组成一个或多个RAID阵列的功能板卡。RAID级别主要经历了RAID0、RAID1、RAID10、RAID5和RAID6,其中RAID6具有P校验块和Q校验块的双重冗余特性,可以恢复两块故障盘数据,因此RAID6级别在商用上使用最多。SoC基本上都是在单RAID卡中集成多个CPU核心,形成通常所说的4核、8核或更多的SoC模块。尤其在存储领域中,多个CPU核心构建成一个SoC模块并嵌入到一个RAID卡中,SoC模块RAID卡更是作为分布式存储的支撑架构。虽然目前业界使用多CPU核心构建的RAID卡,利用多核CPU在存储性能上有一定提升,而且RAID卡多以连接NVMe协议的固态硬盘为使用主力。
但是目前业界多个CPU核心构建的RAID卡NVMe管理配置上存在一些不足,主要体现在对NVMe固态硬盘的配置管理上,各个NVMe固态硬盘由多CPU核心进行管理,管理配置上较为分散。
发明内容
有鉴于此,本发明提供了一种固态硬盘配置管理方法、装置、计算机设备及存储介质,以解决现有技术中各个NVMe固态硬盘由多CPU核心进行管理,管理配置上较为分散的问题。
第一方面,本发明提供了一种固态硬盘配置管理方法,所述方法包括:通过预先配置的配置管理模块接收命令参数,其中,所述配置管理模块被配置在磁盘阵列卡的固件层中,用于对所述磁盘阵列卡的配置参数进行管理,所述命令参数携带有对所述磁盘阵列卡的操作命令;通过所述配置管理模块对所述命令参数进行合法性校验;若校验结果为合法,则通过所述配置管理模块向所述磁盘阵列卡中所述操作命令对应的模块分发所述操作命令。
一种可选实施方式中,在通过预先配置的配置管理模块接收命令参数之前,还包括:对所述配置管理模块进行初始化,以使得所述配置管理模块与所述磁盘阵列卡中其他模块建立连接,并为所述磁盘阵列卡的其他模块提供交互数据通路。
一种可选实施方式中,所述对所述配置管理模块进行初始化,包括:为所述配置管理模块分配存储空间,所述存储空间用于存储所述磁盘阵列卡中各模块共享给所述配置管理模块的数据;创建消息队列,所述消息队列用于承载所述配置管理模块与所述磁盘阵列中其他模块之间的交互消息;创建所述配置管理模块对应的线程,并启动所述线程。
一种可选实施方式中,若所述操作命令为删除目标固态硬盘,所述通过所述配置管理模块向所述磁盘阵列卡中所述操作命令对应的模块分发所述操作命令,包括:对所述操作命令进行解析,得到多个子命令,所述子命令包括:删除所述目标固态硬盘的描述符表和删除所述目标固态硬盘对应的中断向量表;分别向所述磁盘阵列卡的处理器和控制器分发所述子命令。
一种可选实施方式中,还包括:对所述磁盘阵列卡进行初始化配置,以使所述磁盘阵列卡完成与所述配置管理模块的适配。
一种可选实施方式中,所述对所述磁盘阵列卡进行初始化配置包括:将固态硬盘导入到所述磁盘阵列卡;对所述固态硬盘进行初始化。
一种可选实施方式中,所述将固态硬盘导入到所述磁盘阵列卡,包括:获取需要导入的固态硬盘的描述符表;基于所述描述符表生成所述磁盘阵列卡中的所述固态硬盘的数据结构;将固态硬盘的地址映射到所述磁盘阵列卡的处理器的内存中。
一种可选实施方式中,所述获取需要导入的固态硬盘的描述符表,包括:在所述固态硬盘插入到所述磁盘阵列卡的物理插槽时,调用所述磁盘阵列卡的驱动程序;所述驱动程序从所述固态硬盘的驱动上获取所述固态硬盘的描述符表。
一种可选实施方式中,所述将固态硬盘的地址映射到所述磁盘阵列卡的处理器的内存中包括:调用所述磁盘阵列卡的驱动程序;所述驱动程序执行基址寄存器映射。
一种可选实施方式中,所述对所述固态硬盘进行初始化,包括:申请管理队列的中断序列号,并将所述中断序列号插入到中断向量表中;获取I/O命令和Admin命令的最大支持队列深度;在内存中建立管理提交队列和管理完成队列。
一种可选实施方式中,在获取需要导入的固态硬盘的描述符表之前,还包括:确定出所述磁盘阵列卡包含的每个固态硬盘的唯一标识;基于每个固态硬盘的唯一标识分别建立每个固态硬盘对应的描述符表,其中,所述描述符表与所述固态硬盘一一对应。
第二方面,本发明提供了一种固态硬盘配置管理装置,所述装置包括:接收模块,用于以通过预先配置的配置管理模块接收命令参数,其中,所述配置管理模块被配置在磁盘阵列卡的固件层中,用于对所述磁盘阵列卡的配置参数进行管理,所述命令参数携带有对所述磁盘阵列卡的操作命令;校验模块,用于通过所述配置管理模块对所述命令参数进行合法性校验;分发模块,用于若校验结果为合法,则通过所述配置管理模块向所述磁盘阵列卡中所述操作命令对应的模块分发所述操作命令。
第三方面,本发明提供了一种磁盘阵列卡,所述磁盘阵列卡包括:固件层、处理器和固态硬盘组,其中,所述固件层配置有配置管理模块,用于对所述磁盘阵列卡的配置参数进行管理,具体用于执行以下步骤:接收命令参数,所述命令参数携带有对所述磁盘阵列卡的操作命令;对所述命令参数进行合法性校验;若校验结果为合法,则向所述磁盘阵列卡中所述操作命令对应的模块分发所述操作命令。
一种可选实施方式中,所述固件层还包括:磁盘阵列卡内核,用于提供地层逻辑功能;文件系统,用于提供用户访问所述磁盘阵列卡的文件。
一种可选实施方式中,所述固态硬盘组为多组,所述磁盘阵列卡还包括:多个处理器核心、SOC模块,其中,所述多个处理器核心分别与所述SOC模块建立通信,所述SOC模块与所述多组固态硬盘组分别建立通信。
一种可选实施方式中,所述每组固态硬盘组中包含多个固态硬盘阵列。
第四方面,本发明提供了一种存储系统,包括上述第三方面提供的磁盘阵列卡。
一种可选实施方式中,所述磁盘阵列卡为多个,所述存储系统还包括:主机系统,通过网络与所述磁盘阵列卡建立连接。
第五方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的固态硬盘配置管理方法。
第六方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的固态硬盘配置管理方法。
根据本发明实施例,通过在磁盘阵列卡中配置有配置管理模块来进行命令参数的接收和校验,并在校验通过的情况下,向其他模块分发操作命令,也即是有配置管理模块实现对磁盘阵列卡的统一配置管理,解决了磁盘阵列卡配置管理分散的问题。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例磁盘阵列卡及存储系统的结构框图;
图2是根据本发明实施例的固态硬盘配置管理方法的流程示意图;
图3是根据本发明实施例的配置管理模块初始化的流程示意图;
图4是根据本发明实施例的固态硬盘导入磁盘阵列卡的流程示意图;
图5是根据本发明实施例的固态硬盘初始化的流程示意图;
图6是根据本发明实施例的固态硬盘配置管理装置的结构示意图;
图7是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在介绍本发明实施例之前,先介绍本发明实施例中所涉及的专业术语:
SoC:(System on Chip),称为系统级芯片,也称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。多核SoC,也叫多微处理器核心,是将两个或更多的独立处理器封装在一起的方案,通常在一个集成电路(IC)中。
RAID阵列:即Redundant Array of Independent Disks的缩写,磁盘阵列是由很多块独立的磁盘组合成一个容量巨大的磁盘组,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。利用这项技术,将数据切割成许多区段,分别存放在各个磁盘上。
RAID卡:RAID卡将服务器连接的多个硬盘按照RAID级别组织成一个或多个RAID阵列,用户在RAID卡上创建一个或者多个指定容量的卷来供主机作为块设备使用,因此RAID卡是实现将服务器连接的硬盘按照RAID级别组织成RAID阵列功能的板卡。
P校验分块:条带中P校验分块,由数据分块异或运算得出。
Q校验分块:RAID6阵列中Q校验分块,和P校验分块配合运用,可以恢复RAID6阵列中的两个故障磁盘。
NVMe Admin:NVMe有两种命令:Admin命令和I/O命令。Admin命令用于主机管理控制SSD,I/O命令用于数据传输。
SQ:NVMe协议的Submission Queue队列。
CQ:NVMe协议的Completion Queue队列。
BAR:Base Address Register,基址寄存器。
本发明实施例提供了一种磁盘阵列卡以及包含该磁盘阵列卡的存储系统。具体地,存储系统包含本发明实施例提供的磁盘阵列卡,并且进一步的如图1所示,本发明实施例的RAID卡为多个。所述存储系统还包括:主机系统,通过网络与所述RAID卡建立连接。主机系统通过网络访问RAID卡以读取所需要的数据,或者向RAID卡中存储相应的数据。本发明实施例中,一个主机系统可以对应一个RAID卡,也可以对应多个RAID卡,具体可以根据主机系统的存储需求来确定。对于每个RAID卡,可以包括:固件层、处理器和固态硬盘组,其中,固件层配置有配置管理模块,用于对磁盘阵列卡的配置参数进行管理,具体用于执行以下步骤:接收命令参数,命令参数携带有对磁盘阵列卡的操作命令;对命令参数进行合法性校验;若校验结果为合法,则向磁盘阵列卡中操作命令对应的模块分发操作命令。
磁盘阵列通常是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。磁盘阵列在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。
存储系统的RAID功能一般需要独立的RAID卡来支持,用户将硬盘连接到RAID卡上,通过RAID卡来组成各种阵列。目前国内和国际的商用RAID卡一般是为了x86平台的服务器或者台式机来设计的。在x86平台上,RAID卡初始化时,首先会在bios阶段运行RAID卡内部的固件。但是,商用RAID卡中的固件是为了x86平台设计的,并且仅适用于x86平台。目前国产处理器平台如龙芯、申威、飞腾等都是非x86架构,RAID卡的固件无法在这些平台上运行,且目前国产处理器x86平台上只有操作系统层的RAID卡驱动,并没有固件层的RAID卡驱动。因此需要加载RAID卡计算平台专用驱动来解决这个问题。
配置管理模块被配置在磁盘阵列卡的固件层中,用于对磁盘阵列卡的配置参数进行管理,命令参数携带有对磁盘阵列卡的操作命令。在进行数据存储或者读取等操作过程中,用户请求的相关命令参数会统一汇总到配置管理模块,由该配置管理模块进行统一处理。如图1所示,本发明实施例的配置管理模块被配置在磁盘阵列卡的固件层中,该模块可以是由程序代码实现的逻辑处理模块。命令参数携带有对磁盘阵列卡进行操作的操作命令,例如,数据读取操作、数据存储操作、固态硬盘删除操作等,本发明实施例中的操作命令不限于某一中操作。
配置管理模块对接收到的命令参数进行合法性校验,以确定相应的操作命令是否合法;在校验结果为合法的情况下,配置管理模块将操作命令分发到对应的模块,由该对应的模块进行相应的处理。本发明实施例中,当校验结果为非法时,则可以返回用于表示非法操作的提示信息;当然,也可以不做后续处理和操作命令的分发,本发明实施例不做具体限定。
本发明实施例中,以删除磁盘阵列卡中某个固态硬盘的操作为例,具体地,若操作命令为删除目标固态硬盘,通过配置管理模块向磁盘阵列卡中操作命令对应的模块分发操作命令,包括:对操作命令进行解析,得到多个子命令,子命令包括:删除目标固态硬盘的描述符表和删除目标固态硬盘对应的中断向量表;分别向磁盘阵列卡的处理器和控制器分发子命令。
在分发操作命令时,需要对操作命令进行解析,对于“删除目标固态硬盘”的操作命令可以解析为删除目标固态硬盘的描述符表和删除目标固态硬盘对应的中断向量表等多个子命令,当然还可以包括其他子命令,然后再将这些子命令分发给处理器和控制器分别去执行,从而实现删除目标固态硬盘的目的。
本发明实施例中,命令参数可以是包含有多个操作命令,其中每个操作命令由磁盘阵列卡中的一个模块来执行,也可以是多个操作命令由一个模块来执行。配置管理模块则是将相应的操作命令分发给对应的模块去执行。本发明实施例中的操作命令对应的模块可以是磁盘阵列卡中除配置管理模块之外的其他模块,例如处理器、控制器等。由于不同的操作命令对应不同的模块来执行,因此,本发明实施例中操作命令与模块之间存在对应关系,而上述步骤中所提及的“模块”,并不特指某一个模块。
根据本发明实施例,通过在磁盘阵列卡中配置有配置管理模块来进行命令参数的接收和校验,并在校验通过的情况下,向其他模块分发操作命令,也即是有配置管理模块实现对磁盘阵列卡的统一配置管理,解决了磁盘阵列卡配置管理分散的问题。
在一种可选实施方式中,所述固件层还包括:磁盘阵列卡内核,用于提供地层逻辑功能;文件系统,用于提供用户访问所述磁盘阵列卡的文件。所述固态硬盘组为多组,所述磁盘阵列卡还包括:多个处理器核心、SOC模块,其中,所述多个处理器核心分别与所述SOC模块建立通信,所述SOC模块与所述多组固态硬盘组分别建立通信。所述每组固态硬盘组中包含多个固态硬盘阵列。如图1所示,本发明实施例,在磁盘阵列卡的数据存储主要在固态硬盘组的固态硬盘阵列中。
本实施例中通过图1所示的存储系统及磁盘阵列卡进行硬件环境的详细介绍。如图1所示,存储系统包括多个磁盘阵列卡连接的磁盘阵列,通过网络向各个主机系统提供相应的数据存储和读取任务。
磁盘阵列卡(RAID卡)包括固件层、处理器和固态硬盘组;还包括网络接口和硬件定时器模块等结构。
RAID卡中固件层包括RAID卡内核、驱动程序、文件系统、管理监控系统、新增的配置管理模块和定时器软件逻辑功能模块等等(其他部分在图1中没有说明),RAID卡内核提供底层逻辑功能,文件系统提供用户访问RAID卡中文件的支撑功能。RAID卡中固件层的驱动程序实现适配各个外设的代码逻辑功能。
多核SoC模块RAID卡中各个CPU核心和NVMe固态硬盘的拓扑图以及多个CPU核心之间通过SoC模块实现互联互通,其中CPU核心,即处理器执行一些程序指令,用于处理主机I/O请求。
图1中110指示的是整个多CPU核心与SoC模块(也即SOC芯片)的互联互通框图以及CPU核心与NVMe固态硬盘组的关系框图,图1中120指示的NVMe固态硬盘组1构成1号RAID阵列,NVMe固态硬盘组2构成2号RAID阵列,以此类推,NVMe固态硬盘组N构成N号RAID阵列。1号RAID阵列、2号RAID阵列......N号RAID阵列一起构成RAID组。针对目前业界多核SoC模块RAID卡缺乏专门的配置管理模块,本发明新增配置管理模块(图1中130指示的),通过该模块实现磁盘阵列卡的统一配置管理。RAID卡控制器(图1中未示出)负责RAID卡的大部分软件处理逻辑功能。
相比于现有技术中存在的多核SoC模块RAID卡缺乏对每个NVMe固态硬盘的统一管理的问题,本发明实施例提出优化RAID卡的配置管理流程,增加专门的配置管理模块,从而实现对NVMe固态硬盘更安全、更统一、更灵活的管理,最终实现提升RAID卡的存储性能。
需要说明的是,本发明实施例中,每个RAID卡的数据读写性能,直接影响着整个系统的运行速度,通过采用配置管理模块对每个RAID卡进行统一配置管理,实现单个RAID卡的安全高效运行,进而能够提高整个存储系统的运行效率,同时,配置管理模块的使用,也更加方便了在出现故障时的故障定位。
根据本发明实施例,提供了一种固态硬盘配置管理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种固态硬盘配置管理方法,可用于上述的磁盘阵列卡,图2是根据本发明实施例的固态硬盘配置管理方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,通过预先配置的配置管理模块接收命令参数。其中,配置管理模块被配置在磁盘阵列卡的固件层中,用于对磁盘阵列卡的配置参数进行管理,命令参数携带有对磁盘阵列卡的操作命令。
本发明实施例中,在进行数据存储或者读取等操作过程中,用户请求的相关命令参数会统一汇总到配置管理模块,由该配置管理模块进行统一处理。配置管理模块可以用于实现磁盘阵列卡中的消息的统一收发。再接收到命令参数之后,可以向磁盘阵列卡中其他模块分发相应的命令或者消息;当然在接收到其他模块的消息或者请求时,对外进行发送。
如图1所示,本发明实施例的配置管理模块被配置在磁盘阵列卡的固件层(图中未示出相关之间的连接关系)中,该模块可以是由程序代码实现的逻辑处理模块。
命令参数携带有对磁盘阵列卡进行操作的操作命令,例如,数据读取操作、数据存储操作、固态硬盘删除操作等,本发明实施例中的操作命令不限于某一中操作。
步骤S202,通过配置管理模块对命令参数进行合法性校验。
合法性校验可以是对命令参数中的发送命令的一方的身份校验,若身份校验合法,则进行后续处理;若不合法,则终止该命令参数的处理。另一方面,还可以是对命令参数本身进行校验,校验其是否合规,例如是否是可处理的。若命令参数合规,则做后续处理,若不合规,则终止该命令参数的处理。
本发明实施例中,对命令参数的校验,是为了防止磁盘阵列卡被非法访问,从而导致数据异常或者这个磁盘阵列卡故障的。
步骤S203,若校验结果为合法,则通过配置管理模块向磁盘阵列卡中操作命令对应的模块分发操作命令。
配置管理模块对接收到的命令参数进行合法性校验,以确定相应的操作命令是否合法;在校验结果为合法的情况下,配置管理模块将操作命令分发到对应的模块,由该对应的模块进行相应的处理。本发明实施例中,当校验结果为非法时,则可以返回用于表示非法操作的提示信息;当然,也可以不做后续处理和操作命令的分发,本发明实施例不做具体限定。
本发明实施例中,以删除磁盘阵列卡中某个固态硬盘的操作为例,具体地,若操作命令为删除目标固态硬盘,通过配置管理模块向磁盘阵列卡中操作命令对应的模块分发操作命令,包括:对操作命令进行解析,得到多个子命令,子命令包括:删除目标固态硬盘的描述符表和删除目标固态硬盘对应的中断向量表;分别向磁盘阵列卡的处理器和控制器分发子命令。
在分发操作命令时,需要对操作命令进行解析,对于“删除目标固态硬盘”的操作命令可以解析为删除目标固态硬盘的描述符表和删除目标固态硬盘对应的中断向量表等多个子命令,当然还可以包括其他子命令,然后再将这些子命令分发给处理器和控制器分别去执行,从而实现删除目标固态硬盘的目的。
本发明实施例中,命令参数可以是包含有多个操作命令,其中每个操作命令由磁盘阵列卡中的一个模块来执行,也可以是多个操作命令由一个模块来执行。配置管理模块则是将相应的操作命令分发给对应的模块去执行。本发明实施例中的操作命令对应的模块可以是磁盘阵列卡中除配置管理模块之外的其他模块,例如处理器、控制器等。由于不同的操作命令对应不同的模块来执行,因此,本发明实施例中操作命令与模块之间存在对应关系,而上述步骤中所提及的“模块”,并不特指某一个模块。
根据本发明实施例,通过在磁盘阵列卡中配置有配置管理模块来进行命令参数的接收和校验,并在校验通过的情况下,向其他模块分发操作命令,也即是有配置管理模块实现对磁盘阵列卡的统一配置管理,解决了磁盘阵列卡配置管理分散的问题。
本发明实施例中,配置管理模块还用于对多核SOC模块RAID卡的相关配置数据集中管理,并提供消息上报的管理机制和通路,从而进一步提高磁盘阵列卡的配置管理的统一性。
作为一种可选实施方式,本发明实施例中,在通过预先配置的配置管理模块接收命令参数之前,还包括:对配置管理模块进行初始化,以使得配置管理模块与磁盘阵列卡中其他模块建立连接,并为磁盘阵列卡的其他模块提供交互数据通路。
本发明实施例中,在磁盘阵列卡中配置有配置管理模块之后,需要对该配置管理模块进行初始化,从而达到与磁盘阵列卡中其他模块的适配,具体地,通过初始化之后,使得配置管理模块与磁盘阵列卡中其他模块建立连接,并为磁盘阵列卡的其他模块提供交互数据通路。
进一步可选地,本发明实施例中对配置管理模块进行初始化,如图3所示,具体可以包括:
步骤S301,为配置管理模块分配存储空间,存储空间用于存储磁盘阵列卡中各模块共享给配置管理模块的数据。
存储空间具体可以是上下文空间,分配配置管理模块上下文空间,该空间主要存放了多核SoC模块RAID卡各模块共享的数据,集中在配置管理模块统一管理。
步骤302,创建消息队列,消息队列用于承载配置管理模块与磁盘阵列中其他模块之间的交互消息。
该消息队列是为了保证有配置管理模块进行统一配置管理过程中,消息处理的有序性。该消息队列生产者可以为其他模块也可以是配置管理模块,消费者可以是配置管理模块也可以是其他模块。
步骤303,创建配置管理模块对应的线程,并启动线程。
通过创建线程来进行相应的配置管理模块与其他模块之间交互消息的处理,从而建立相应的交互通路。
本发明上述实施例中无论是分配存储空间、创建消息队列以及创建线程,均是为了达到配置管理模块与磁盘阵列卡中其他模块建立连接,并为磁盘阵列卡的其他模块提供交互数据通路的目的,从而为配置管理模块进行磁盘阵列卡的统一配置管理创建基础条件。
作为本发明实施例的另一种可选实施方式,本发明实施例的固态硬盘配置管理方法还包括:对磁盘阵列卡进行初始化配置,以使磁盘阵列卡完成与配置管理模块的适配。
具体地,对磁盘阵列卡进行初始化配置包括:将固态硬盘导入到磁盘阵列卡;对固态硬盘进行初始化。
由于配置有配置管理模块,对磁盘阵列卡的初始化配置,包括固态硬盘导入流程和固态硬盘的初始化流程,从而达到在配置有配置管理模块的情况下,磁盘阵列卡的初始化,实现磁盘阵列卡在配置管理模块的作用下统一配置管理。
进一步可选地,本发明实施例中将固态硬盘导入到磁盘阵列卡的步骤可以包括以下步骤,如图4所示:
步骤401,获取需要导入的固态硬盘的描述符表。
本发明实施例中的固态硬盘,也可以是指PCIe设备。具体地,获取需要导入的固态硬盘的描述符表可以包括:在固态硬盘插入到磁盘阵列卡的物理插槽时,调用磁盘阵列卡的驱动程序;驱动程序从固态硬盘的驱动上获取固态硬盘的描述符表。
固态硬盘插入多核SoC模块RAID卡连接的物理背板上的插槽上;插入插槽后,热插拔中断发生后调用RAID卡驱动程序;RAID卡驱动程序从固态硬盘的驱动上获取固态硬盘的描述符表。描述符表是指保存内存描述信息的数据结构。
步骤402,基于描述符表生成磁盘阵列卡中的固态硬盘的数据结构。将描述符表转换为多核SoC模块RAID卡内部PCIe数据模型。
步骤403,将固态硬盘的地址映射到磁盘阵列卡的处理器的内存中。
本发明实施例中,RAID卡的控制器申请一片用以存放管理各个固态硬盘的数据结构的内存空间,并初始化RAID卡内部PCIe数据结构,再进行内存地址映射。具体地,将固态硬盘的地址映射到磁盘阵列卡的处理器的内存中包括:调用磁盘阵列卡的驱动程序;驱动程序执行基址寄存器映射。用于将NVMe固态硬盘地址映射到RAID卡各个CPU核心对应的内存中。
作为一种可选实施方式,本发明实施例中,在获取需要导入的固态硬盘的描述符表之前,还包括:确定出所述磁盘阵列卡包含的每个固态硬盘的唯一标识;基于每个固态硬盘的唯一标识分别建立每个固态硬盘对应的描述符表,其中,所述描述符表与所述固态硬盘一一对应。
描述符表用于保存内存描述信息的数据结构。具体地,描述符表(DescriptorTable)是一种数据结构,用于管理内存或设备资源。在计算机科学和操作系统中,描述符表用于描述和引用系统中的各种资源,如内存段、设备驱动程序、文件等。描述符表通常由一系列描述符组成,每个描述符包含有关特定资源的元数据信息,例如起始地址、大小、访问权限等。通过使用描述符表,操作系统可以有效地跟踪和管理系统中的资源,并提供对资源的访问控制和安全保障。
在内存管理方面,描述符表通常与分段和分页技术结合使用。分段是一种将内存划分为多个逻辑段的方法,每个段由一个描述符表示。描述符包含段的起始地址和大小,以及段的访问权限和其他属性。通过使用描述符表,操作系统可以有效地管理内存段的分配和释放,并提供对段的访问控制和保护。
在设备驱动程序方面,描述符表用于管理设备和驱动程序之间的交互。每个设备驱动程序都有一个与之关联的描述符,该描述符包含设备的属性和访问方式。通过使用描述符表,操作系统可以管理和跟踪可用的设备,并提供对设备的访问控制和缓冲区管理等功能。总之,描述符表是一种用于管理和跟踪系统资源的数据结构,它提供了一种有效的方法来组织和管理内存段、设备驱动程序和其他资源,并提供对资源的访问控制和安全保障。
本发明实施例中,对每个固态硬盘配置相应的描述符表,保证每个固态硬盘的描述信息,进而在进行初始化时,以及数据读写过程中,方便配置管理模块进行统一配置管理。
作为一种可选实施方式,本发明实施例中,对固态硬盘进行初始化,包括:申请管理队列的中断序列号,并将中断序列号插入到中断向量表中;获取I/O命令和Admin命令的最大支持队列深度;在内存中建立管理提交队列和管理完成队列。
具体地,如图5所示,对固态硬盘进行初始化包括以下步骤:
步骤S501,NVMe固态硬盘插入RAID卡连接的背板插槽上;
步骤S502,热插拔中断发生后调用RAID卡驱动程序,驱动程序执行映射BAR寄存器(用于将NVMe固态硬盘地址映射到RAID卡各个CPU核心对应的内存中);
步骤S503,申请命令队列(即Admin Queue队列)中断序列号,并将该中断序列号插入到中断向量表中。注:Admin Queue中有一部分是RAID卡用户自定义的命令,例如获取打印日志命令和取消之前下发的I/O命令等等。
步骤S504,获取I/O命令和Admin命令的最大支持队列深度;
步骤S505,在内存中建立Admin SQ/CQ队列;
步骤S506,使能Admin Queue中断;
步骤S507,创建Block设备。
本发明实施例中,针对存储领域中遇到的多核SoC模块RAID卡NVM固态硬盘配置管理效率较低的痛点问题,提出优化RAID卡的配置管理流程,对Admin命令可以实现统一的处理逻辑;通过增加专门的配置管理模块、为每个固态硬盘分配PCIe设备描述符表,从而实现对NVMe固态硬盘更安全、更统一、更灵活的管理,最终实现提升RAID卡的存储性能。
在本实施例中还提供了一种固态硬盘配置管理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种固态硬盘配置管理装置,如图6所示,包括:
接收模块601,用于以通过预先配置的配置管理模块接收命令参数,其中,所述配置管理模块被配置在磁盘阵列卡的固件层中,用于对所述磁盘阵列卡的配置参数进行管理,所述命令参数携带有对所述磁盘阵列卡的操作命令。
本发明实施例中,在进行数据存储或者读取等操作过程中,用户请求的相关命令参数会统一汇总到配置管理模块,由该配置管理模块进行统一处理。配置管理模块可以用于实现磁盘阵列卡中的消息的统一收发。再接收到命令参数之后,可以向磁盘阵列卡中其他模块分发相应的命令或者消息;当然在接收到其他模块的消息或者请求时,对外进行发送。如图1所示,本发明实施例的配置管理模块被配置在磁盘阵列卡的固件层中,该模块可以是由程序代码实现的逻辑处理模块。
命令参数携带有对磁盘阵列卡进行操作的操作命令,例如,数据读取操作、数据存储操作、固态硬盘删除操作等,本发明实施例中的操作命令不限于某一中操作。
校验模块602,用于通过所述配置管理模块对所述命令参数进行合法性校验。
合法性校验可以是对命令参数中的发送命令的一方的身份校验,若身份校验合法,则进行后续处理;若不合法,则终止该命令参数的处理。另一方面,还可以是对命令参数本身进行校验,校验其是否合规,例如是否是可处理的。若命令参数合规,则做后续处理,若不合规,则终止该命令参数的处理。
本发明实施例中,对命令参数的校验,是为了防止磁盘阵列卡被非法访问,从而导致数据异常或者这个磁盘阵列卡故障的。
分发模块603,用于若校验结果为合法,则通过所述配置管理模块向所述磁盘阵列卡中所述操作命令对应的模块分发所述操作命令。
配置管理模块对接收到的命令参数进行合法性校验,以确定相应的操作命令是否合法;在校验结果为合法的情况下,配置管理模块将操作命令分发到对应的模块,由该对应的模块进行相应的处理。本发明实施例中,当校验结果为非法时,则可以返回用于表示非法操作的提示信息;当然,也可以不做后续处理和操作命令的分发,本发明实施例不做具体限定。
本发明实施例中,以删除磁盘阵列卡中某个固态硬盘的操作为例,具体地,若操作命令为删除目标固态硬盘,通过配置管理模块向磁盘阵列卡中操作命令对应的模块分发操作命令,包括:对操作命令进行解析,得到多个子命令,子命令包括:删除目标固态硬盘的描述符表和删除目标固态硬盘对应的中断向量表;分别向磁盘阵列卡的处理器和控制器分发子命令。
在分发操作命令时,需要对操作命令进行解析,对于“删除目标固态硬盘”的操作命令可以解析为删除目标固态硬盘的描述符表和删除目标固态硬盘对应的中断向量表等多个子命令,当然还可以包括其他子命令,然后再将这些子命令分发给处理器和控制器分别去执行,从而实现删除目标固态硬盘的目的。
本发明实施例中,命令参数可以是包含有多个操作命令,其中每个操作命令由磁盘阵列卡中的一个模块来执行,也可以是多个操作命令由一个模块来执行。配置管理模块则是将相应的操作命令分发给对应的模块去执行。本发明实施例中的操作命令对应的模块可以是磁盘阵列卡中除配置管理模块之外的其他模块,例如处理器、控制器等。由于不同的操作命令对应不同的模块来执行,因此,本发明实施例中操作命令与模块之间存在对应关系,而上述步骤中所提及的“模块”,并不特指某一个模块。
根据本发明实施例,通过在磁盘阵列卡中配置有配置管理模块来进行命令参数的接收和校验,并在校验通过的情况下,向其他模块分发操作命令,也即是有配置管理模块实现对磁盘阵列卡的统一配置管理,解决了磁盘阵列卡配置管理分散的问题。
本发明实施例中,配置管理模块还用于对多核SOC模块RAID卡的相关配置数据集中管理,并提供消息上报的管理机制和通路,从而进一步提高磁盘阵列卡的配置管理的统一性。
在一些可选的实施方式中,本发明实施例的固态硬盘配置管理装置,还包括:第一初始化模块,用于在通过预先配置的配置管理模块接收命令参数之前,对所述配置管理模块进行初始化,以使得所述配置管理模块与所述磁盘阵列卡中其他模块建立连接,并为所述磁盘阵列卡的其他模块提供交互数据通路。
本发明实施例中,在磁盘阵列卡中配置有配置管理模块之后,需要对该配置管理模块进行初始化,从而达到与磁盘阵列卡中其他模块的适配,具体地,通过初始化之后,使得配置管理模块与磁盘阵列卡中其他模块建立连接,并为磁盘阵列卡的其他模块提供交互数据通路。
进一步可选地,所述第一初始化模块包括:分配单元,用于为所述配置管理模块分配存储空间,所述存储空间用于存储所述磁盘阵列卡中各模块共享给所述配置管理模块的数据;第一创建单元,用于创建消息队列,所述消息队列用于承载所述配置管理模块与所述磁盘阵列中其他模块之间的交互消息;第二创建单元,用于创建所述配置管理模块对应的线程,并启动所述线程。
存储空间具体可以是上下文空间,分配配置管理模块上下文空间,该空间主要存放了多核SoC模块RAID卡各模块共享的数据,集中在配置管理模块统一管理。
该消息队列是为了保证有配置管理模块进行统一配置管理过程中,消息处理的有序性。该消息队列生产者可以为其他模块也可以是配置管理模块,消费者可以是配置管理模块也可以是其他模块。
通过创建线程来进行相应的配置管理模块与其他模块之间交互消息的处理,从而建立相应的交互通路。
本发明上述实施例中无论是分配存储空间、创建消息队列以及创建线程,均是为了达到配置管理模块与磁盘阵列卡中其他模块建立连接,并为磁盘阵列卡的其他模块提供交互数据通路的目的,从而为配置管理模块进行磁盘阵列卡的统一配置管理创建基础条件。
进一步可选地,若所述操作命令为删除目标固态硬盘,所述分发模块603,包括:解析单元,用于对所述操作命令进行解析,得到多个子命令,所述子命令包括:删除所述目标固态硬盘的描述符表和删除所述目标固态硬盘对应的中断向量表;分发单元,用于分别向所述磁盘阵列卡的处理器和控制器分发所述子命令。
进一步可选地,所述装置还包括:第二初始化模块,用于对所述磁盘阵列卡进行初始化配置,以使所述磁盘阵列卡完成与所述配置管理模块的适配。
所述第二初始化模块包括:导入单元,用于将固态硬盘导入到所述磁盘阵列卡;初始化单元,用于对所述固态硬盘进行初始化。
具体地,对磁盘阵列卡进行初始化配置包括:将固态硬盘导入到磁盘阵列卡;对固态硬盘进行初始化。
由于配置有配置管理模块,对磁盘阵列卡的初始化配置,包括固态硬盘导入流程和固态硬盘的初始化流程,从而达到在配置有配置管理模块的情况下,磁盘阵列卡的初始化,实现磁盘阵列卡在配置管理模块的作用下统一配置管理。
所述导入单元包括获取子单元,用于获取需要导入的固态硬盘的描述符表;生成子单元,用于基于所述描述符表生成所述磁盘阵列卡中的所述固态硬盘的数据结构;映射子单元将固态硬盘的地址映射到所述磁盘阵列卡的处理器的内存中。
本发明实施例中的固态硬盘,也可以是指PCIe设备。具体地,获取需要导入的固态硬盘的描述符表可以包括:在固态硬盘插入到磁盘阵列卡的物理插槽时,调用磁盘阵列卡的驱动程序;驱动程序从固态硬盘的驱动上获取固态硬盘的描述符表。
固态硬盘插入多核SoC模块RAID卡连接的物理背板上的插槽上;插入插槽后,热插拔中断发生后调用RAID卡驱动程序;RAID卡驱动程序从固态硬盘的驱动上获取固态硬盘的描述符表。描述符表是指保存内存描述信息的数据结构。
本发明实施例中,RAID卡的控制器申请一片用以存放管理各个固态硬盘的数据结构的内存空间,并初始化RAID卡内部PCIe数据结构,再进行内存地址映射。具体地,将固态硬盘的地址映射到磁盘阵列卡的处理器的内存中包括:调用磁盘阵列卡的驱动程序;驱动程序执行基址寄存器映射。用于将NVMe固态硬盘地址映射到RAID卡各个CPU核心对应的内存中。
作为一种可选实施方式,本发明实施例中,所述装置还包括:标识确定模块,用于确定出所述磁盘阵列卡包含的每个固态硬盘的唯一标识;建立模块,用于基于每个固态硬盘的唯一标识分别建立每个固态硬盘对应的描述符表,其中,所述描述符表与所述固态硬盘一一对应。
本发明实施例中,对每个固态硬盘配置相应的描述符表,保证每个固态硬盘的描述信息,进而在进行初始化时,以及数据读写过程中,方便配置管理模块进行统一配置管理。
所述获取子单元包括:调用子模块,用于在所述固态硬盘插入到所述磁盘阵列卡的物理插槽时,调用所述磁盘阵列卡的驱动程序;获取子模块,用于所述驱动程序从所述固态硬盘的驱动上获取所述固态硬盘的描述符表。
所述映射子单元包括:调用子模块,用于调用所述磁盘阵列卡的驱动程序;执行子模块,用于所述驱动程序执行基址寄存器映射。
所述初始化单元包括:申请子单元,用于申请管理队列的中断序列号,并将所述中断序列号插入到中断向量表中;深度获取子单元,用于获取I/O命令和Admin命令的最大支持队列深度;建立子单元,用于在内存中建立管理提交队列和管理完成队列。
具体地,如图5所示,对固态硬盘进行初始化包括以下步骤:
步骤S501,NVMe固态硬盘插入RAID卡连接的背板插槽上;
步骤S502,热插拔中断发生后调用RAID卡驱动程序,驱动程序执行映射BAR寄存器(用于将NVMe固态硬盘地址映射到RAID卡各个CPU核心对应的内存中);
步骤S503,申请命令队列(即Admin Queue队列)中断序列号,并将该中断序列号插入到中断向量表中。注:Admin Queue中有一部分是RAID卡用户自定义的命令,例如获取打印日志命令和取消之前下发的I/O命令等等。
步骤S504,获取I/O命令和Admin命令的最大支持队列深度;
步骤S505,在内存中建立Admin SQ/CQ队列;
步骤S506,使能Admin Queue中断;
步骤S507,创建Block设备。
本发明实施例中,针对存储领域中遇到的多核SoC模块RAID卡NVM固态硬盘配置管理效率较低的痛点问题,提出优化RAID卡的配置管理流程,对Admin命令可以实现统一的处理逻辑;通过增加专门的配置管理模块、为每个固态硬盘分配PCIe设备描述符表,从而实现对NVMe固态硬盘更安全、更统一、更灵活的管理,最终实现提升RAID卡的存储性能。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同。
本实施例中的固态硬盘配置管理装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图6所示的固态硬盘配置管理装置。
请参阅图7,图7是本发明可选实施例提供的一种计算机设备的结构示意图,如图7所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件模块。上述硬件模块可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (19)
1.一种固态硬盘配置管理方法,其特征在于,所述方法包括:
通过预先配置的配置管理模块接收命令参数,其中,所述配置管理模块被配置在磁盘阵列卡的固件层中,用于对所述磁盘阵列卡的配置参数进行管理,所述命令参数携带有对所述磁盘阵列卡的操作命令;
通过所述配置管理模块对所述命令参数进行合法性校验;
若校验结果为合法,则通过所述配置管理模块向所述磁盘阵列卡中所述操作命令对应的模块分发所述操作命令;
其中,在通过预先配置的配置管理模块接收命令参数之前,还包括:
对所述配置管理模块进行初始化,以使得所述配置管理模块与所述磁盘阵列卡中其他模块建立连接,并为所述磁盘阵列卡的其他模块提供交互数据通路。
2.根据权利要求1所述的固态硬盘配置管理方法,其特征在于,所述对所述配置管理模块进行初始化,包括:
为所述配置管理模块分配存储空间,所述存储空间用于存储所述磁盘阵列卡中各模块共享给所述配置管理模块的数据;
创建消息队列,所述消息队列用于承载所述配置管理模块与所述磁盘阵列中其他模块之间的交互消息;
创建所述配置管理模块对应的线程,并启动所述线程。
3.根据权利要求1所述的固态硬盘配置管理方法,其特征在于,若所述操作命令为删除目标固态硬盘,所述通过所述配置管理模块向所述磁盘阵列卡中所述操作命令对应的模块分发所述操作命令,包括:
对所述操作命令进行解析,得到多个子命令,所述子命令包括:删除所述目标固态硬盘的描述符表和删除所述目标固态硬盘对应的中断向量表;
分别向所述磁盘阵列卡的处理器和控制器分发所述子命令。
4.根据权利要求1所述的固态硬盘配置管理方法,其特征在于,还包括:
对所述磁盘阵列卡进行初始化配置,以使所述磁盘阵列卡完成与所述配置管理模块的适配。
5.根据权利要求4所述的固态硬盘配置管理方法,其特征在于,所述对所述磁盘阵列卡进行初始化配置包括:
将固态硬盘导入到所述磁盘阵列卡;
对所述固态硬盘进行初始化。
6.根据权利要求5所述的固态硬盘配置管理方法,其特征在于,所述将固态硬盘导入到所述磁盘阵列卡,包括:
获取需要导入的固态硬盘的描述符表;
基于所述描述符表生成所述磁盘阵列卡中的所述固态硬盘的数据结构;
将固态硬盘的地址映射到所述磁盘阵列卡的处理器的内存中。
7.根据权利要求6所述的固态硬盘配置管理方法,其特征在于,所述获取需要导入的固态硬盘的描述符表,包括:
在所述固态硬盘插入到所述磁盘阵列卡的物理插槽时,调用所述磁盘阵列卡的驱动程序;
所述驱动程序从所述固态硬盘的驱动上获取所述固态硬盘的描述符表。
8.根据权利要求6所述的固态硬盘配置管理方法,其特征在于,所述将固态硬盘的地址映射到所述磁盘阵列卡的处理器的内存中包括:
调用所述磁盘阵列卡的驱动程序;
所述驱动程序执行基址寄存器映射。
9.根据权利要求5所述的固态硬盘配置管理方法,其特征在于,所述对所述固态硬盘进行初始化,包括:
申请管理队列的中断序列号,并将所述中断序列号插入到中断向量表中;
获取I/O命令和Admin命令的最大支持队列深度;
在内存中建立管理提交队列和管理完成队列。
10.根据权利要求6所述的固态硬盘配置管理方法,其特征在于,在获取需要导入的固态硬盘的描述符表之前,还包括:
确定出所述磁盘阵列卡包含的每个固态硬盘的唯一标识;
基于每个固态硬盘的唯一标识分别建立每个固态硬盘对应的描述符表,其中,所述描述符表与所述固态硬盘一一对应。
11.一种固态硬盘配置管理装置,其特征在于,所述装置包括:
接收模块,用于以通过预先配置的配置管理模块接收命令参数,其中,所述配置管理模块被配置在磁盘阵列卡的固件层中,用于对所述磁盘阵列卡的配置参数进行管理,所述命令参数携带有对所述磁盘阵列卡的操作命令;
校验模块,用于通过所述配置管理模块对所述命令参数进行合法性校验;
分发模块,用于若校验结果为合法,则通过所述配置管理模块向所述磁盘阵列卡中所述操作命令对应的模块分发所述操作命令;
第一初始化模块,用于在通过预先配置的配置管理模块接收命令参数之前,对所述配置管理模块进行初始化,以使得所述配置管理模块与所述磁盘阵列卡中其他模块建立连接,并为所述磁盘阵列卡的其他模块提供交互数据通路。
12.一种磁盘阵列卡,其特征在于,所述磁盘阵列卡包括:固件层、处理器和固态硬盘组,其中,所述固件层配置有配置管理模块,用于对所述磁盘阵列卡的配置参数进行管理,具体用于执行以下步骤:
接收命令参数,所述命令参数携带有对所述磁盘阵列卡的操作命令;
对所述命令参数进行合法性校验;
若校验结果为合法,则向所述磁盘阵列卡中所述操作命令对应的模块分发所述操作命令。
13.根据权利要求12所述的磁盘阵列卡,其特征在于,所述固件层还包括:
磁盘阵列卡内核,用于提供地层逻辑功能;
文件系统,用于提供用户访问所述磁盘阵列卡的文件。
14.根据权利要求12所述的磁盘阵列卡,其特征在于,所述固态硬盘组为多组,所述磁盘阵列卡还包括:多个处理器核心、SOC模块,其中,所述多个处理器核心分别与所述SOC模块建立通信,所述SOC模块与多组固态硬盘组分别建立通信。
15.根据权利要求14所述的磁盘阵列卡,其特征在于,每组固态硬盘组中包含多个固态硬盘阵列。
16.一种存储系统,其特征在于,包括权利要求12所述的磁盘阵列卡。
17.根据权利要求16所述的存储系统,其特征在于,所述磁盘阵列卡为多个,所述存储系统还包括:主机系统,通过网络与所述磁盘阵列卡建立连接。
18.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至9中任一项所述的固态硬盘配置管理方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至9中任一项所述的固态硬盘配置管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311609342.9A CN117311646B (zh) | 2023-11-29 | 2023-11-29 | 固态硬盘配置管理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311609342.9A CN117311646B (zh) | 2023-11-29 | 2023-11-29 | 固态硬盘配置管理方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117311646A CN117311646A (zh) | 2023-12-29 |
CN117311646B true CN117311646B (zh) | 2024-02-23 |
Family
ID=89260763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311609342.9A Active CN117311646B (zh) | 2023-11-29 | 2023-11-29 | 固态硬盘配置管理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117311646B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118409718A (zh) * | 2024-07-03 | 2024-07-30 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据处理方法、计算机程序产品、设备及计算机介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019893A (zh) * | 2012-11-16 | 2013-04-03 | 华中科技大学 | 一种多盘容错的二维混合盘raid4系统架构及其读写方法 |
CN107015768A (zh) * | 2017-04-26 | 2017-08-04 | 郑州云海信息技术有限公司 | 一种raid卡操作工具及方法 |
CN108897496A (zh) * | 2018-06-29 | 2018-11-27 | 平安科技(深圳)有限公司 | 磁盘阵列配置管理方法、装置、计算机设备及存储介质 |
CN115951845A (zh) * | 2023-03-14 | 2023-04-11 | 苏州浪潮智能科技有限公司 | 一种磁盘管理方法、装置、设备及存储介质 |
CN116991328A (zh) * | 2023-09-25 | 2023-11-03 | 苏州元脑智能科技有限公司 | 磁盘阵列的卷格式化控制方法、装置、系统、设备及介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6934769B2 (en) * | 2002-07-29 | 2005-08-23 | Lsi Logic Corporation | Methods and structure for SCSI/IDE translation in a storage subsystem |
JP4383148B2 (ja) * | 2003-11-25 | 2009-12-16 | 株式会社日立製作所 | 処理オフロード機能モジュールを備えた磁気ディスクアレイ装置 |
-
2023
- 2023-11-29 CN CN202311609342.9A patent/CN117311646B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019893A (zh) * | 2012-11-16 | 2013-04-03 | 华中科技大学 | 一种多盘容错的二维混合盘raid4系统架构及其读写方法 |
CN107015768A (zh) * | 2017-04-26 | 2017-08-04 | 郑州云海信息技术有限公司 | 一种raid卡操作工具及方法 |
CN108897496A (zh) * | 2018-06-29 | 2018-11-27 | 平安科技(深圳)有限公司 | 磁盘阵列配置管理方法、装置、计算机设备及存储介质 |
CN115951845A (zh) * | 2023-03-14 | 2023-04-11 | 苏州浪潮智能科技有限公司 | 一种磁盘管理方法、装置、设备及存储介质 |
CN116991328A (zh) * | 2023-09-25 | 2023-11-03 | 苏州元脑智能科技有限公司 | 磁盘阵列的卷格式化控制方法、装置、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117311646A (zh) | 2023-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10334334B2 (en) | Storage sled and techniques for a data center | |
US20230145212A1 (en) | Switch Device for Interfacing Multiple Hosts to a Solid State Drive | |
EP3458931B1 (en) | Independent scaling of compute resources and storage resources in a storage system | |
CN111433732A (zh) | 在对等存储设备上具有托管服务的多设备存储系统 | |
US11157356B2 (en) | System and method for supporting data protection across FPGA SSDs | |
CN108008911A (zh) | 读写请求处理方法及装置 | |
CN103534688B (zh) | 数据恢复方法、存储设备和存储系统 | |
CN117311646B (zh) | 固态硬盘配置管理方法、装置、计算机设备及存储介质 | |
US11416166B2 (en) | Distributed function processing with estimate-based scheduler | |
US10365845B1 (en) | Mapped raid restripe for improved drive utilization | |
CN111880727A (zh) | 一种用于硬盘端口号灵活分配的硬件架构及其实现方法 | |
WO2023138460A1 (zh) | 分布式存储空间的管理方法、计算设备及存储介质 | |
US9830110B2 (en) | System and method to enable dynamic changes to virtual disk stripe element sizes on a storage controller | |
CN110134329A (zh) | 用于使用来自退役服务器的dimm来促进高容量共享存储器的方法和系统 | |
US10089015B1 (en) | Per-drive memory resident zeroing maps for drive zeroing in a data storage system | |
US8856441B2 (en) | Dynamic hard disk mapping method and server using the same | |
US10852954B1 (en) | Running an enterprise storage subsystem as a virtual machine | |
US6904497B1 (en) | Method and apparatus for extending storage functionality at the bios level | |
US11379128B2 (en) | Application-based storage device configuration settings | |
CN117591009A (zh) | 一种数据管理方法、存储装置及服务器 | |
CN115826874A (zh) | 一种虚拟raid卡的实现方法、装置及组件 | |
US9715460B1 (en) | Enabling a first virtual storage director running in a container maintained by a hypervisor to achieve direct memory access to memory of a second virtual storage director running in a different container | |
CN116089326A (zh) | 计算存储设备及其执行的方法以及操作存储系统的方法 | |
US20180300259A1 (en) | Local disks erasing mechanism for pooled physical resources | |
CN108614746A (zh) | 一种数据处理方法及其系统、服务器 |
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 |