CN117055824B - 控制器、控制器的配置方法及系统、存储介质及电子设备 - Google Patents
控制器、控制器的配置方法及系统、存储介质及电子设备 Download PDFInfo
- Publication number
- CN117055824B CN117055824B CN202311321277.XA CN202311321277A CN117055824B CN 117055824 B CN117055824 B CN 117055824B CN 202311321277 A CN202311321277 A CN 202311321277A CN 117055824 B CN117055824 B CN 117055824B
- Authority
- CN
- China
- Prior art keywords
- raid
- controller
- pcie
- solid state
- binding
- 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
- 238000000034 method Methods 0.000 title claims abstract description 77
- 239000007787 solid Substances 0.000 claims abstract description 173
- 125000000524 functional group Chemical group 0.000 claims abstract description 26
- 230000006870 function Effects 0.000 claims description 213
- 238000012545 processing Methods 0.000 claims description 46
- 230000003863 physical function Effects 0.000 claims description 44
- 238000004590 computer program Methods 0.000 claims description 22
- 238000004891 communication Methods 0.000 claims description 9
- 238000009434 installation Methods 0.000 claims description 7
- 238000012795 verification Methods 0.000 claims description 4
- 238000012360 testing method Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000007726 management method Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100045541 Homo sapiens TBCD gene Proteins 0.000 description 1
- 101150093640 SSD1 gene Proteins 0.000 description 1
- 101100111629 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR2 gene Proteins 0.000 description 1
- 102100030290 Tubulin-specific chaperone D Human genes 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer 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/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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种控制器、控制器的配置方法及系统、存储介质及电子设备,该控制器包括:N个PCIe功能组和N个RAID子模块;每个RAID子模块,还用于在与RAID子模块存在第一绑定关系的目标PCIe功能组接收到IO操作请求的情况下,确定与目标PCIe功能组存在第二绑定关系的多个目标固态硬盘对应的磁盘冗余阵列的目标组合结果,并确定每一个目标固态硬盘待执行的IO操作。解决了传统RAID技术无法满足固态硬盘使用时的性能需求的问题。
Description
技术领域
本申请实施例涉及控制器领域,具体而言,涉及一种控制器、控制器的配置方法及系统、存储介质及电子设备。
背景技术
在存储领域中,随着技术的发展,传统HDD逐渐被更快、更可靠的SSD(Solid statedrive,固态硬盘)取代。虽然NVMe (Non-Volatile Memory express,非易失性内存主机控制器接口规范)SSD本身已经具备较高的可靠性,但在关键应用中仍然需要冗余机制来保护数据。NVMe SSD RAID技术可以实现数据镜像、校验等冗余策略,提供更高级别的数据保护,防止数据丢失。NVMe SSD RAID控制器可以支持多个NVMe SSD驱动器,提供更大的存储容量和扩展性。这对于数据密集型应用和大规模存储环境至关重要。
然而,由于传统RAID(Redundant Arrays of Independent Disks,磁盘冗余阵列)技术主要针对HDD设计,无法充分发挥NVMe SSD的性能潜力。PCIe GEN4接口的NVMe SSDIOPS性能可以达到1M IOPS/s,而PCIe GEN5接口NVMe SSD性能更是能达到3M IOPS/s。而传统的HDD RAID控制器通常只有几十K IOPS/s,传统的RAID技术应用在NVMe SDD上将成为严重的性能瓶颈。
针对相关技术中,传统RAID技术无法满足固态硬盘使用时的性能需求的问题并未得到有效解决。
发明内容
本申请实施例提供了一种控制器、控制器的配置方法及系统、存储介质及电子设备,以至少解决相关技术中传统RAID技术无法满足固态硬盘使用时的性能需求的问题。
根据本申请的一个实施例,提供了一种控制器,包括:N个PCIe 功能组和N个RAID子模块;其中,所述N个RAID子模块中的每个RAID子模块与所述N个PCIe 功能组中的一个PCIe 功能组在硬件存在一一对应的第一绑定关系;所述N个PCIe 功能组的每个PCIe 功能组与所述控制器存在连接关系的多个固态硬盘中的至少一个固态硬盘存在第二绑定关系,所述N为大于1的整数;所述每个RAID子模块,还用于在与所述RAID子模块存在所述第一绑定关系的目标PCIe功能组接收到IO操作请求的情况下,确定与所述目标PCIe功能组存在第二绑定关系的多个目标固态硬盘对应的磁盘冗余阵列的目标组合结果,并确定每一个目标固态硬盘待执行的IO操作。
在一个示例性实施例中,所述控制器还包括:PCIe EP端口,与所述N个PCIe 功能组并行连接,用于接收与控制器存在连接关系的目标主机发送的IO操作请求,其中,所述IO操作请求至少包括:输入/输出的命令、输入/输出的数据。
在一个示例性实施例中,所述控制器还包括:PCIe RC端口,与所述N个RAID子模块并行连接,用于通过所述N个RAID子模块对应的N个组合结果向所述多个固态硬盘传输相应的命令和数据。
在一个示例性实施例中,所述N个PCIe 功能组中每个PCIe 功能组均包含K个PCIe功能,其中,所述PCIe 功能基于PCIe规范中的定义确定,所述PCIe功能至少包括以下之一:物理功能、虚拟功能。
在一个示例性实施例中,所述RAID子模块包括RAID处理单元和IO控制单元;其中,所述RAID处理单元的输入端连接所述目标PCIe功能组的输出端,用于在存在IO操作请求的情况下,对多个目标固态硬盘进行磁盘冗余阵列的组合运算,得到多个运算结果,并从所述多个运算结果确定出目标组合结果;所述IO控制单元的输入端连接所述RAID处理单元的输出端,用于根据所述目标组合结果分解所述IO操作请求对应的请求信息,以确定每一个目标固态硬盘待执行的IO操作。
在一个示例性实施例中,所述IO控制单元包括M个IO通道,其中,所述M为大于1的整数,每一个IO通道对应一个固态硬盘,所述IO通道用于向所述固态硬盘发送IO操作对应的控制信息。
根据本申请的另一个实施例,提供了一种应用在所述控制器的配置方法,包括:在确定使用所述控制器对L个固态硬盘进行资源管理的情况下,根据安装关系确定所述L个固态硬盘与所述N个PCIe 功能组中的J个PCIe 功能组的目标第一绑定关系,其中,所述J小于等于N,所述L为大于2,且小于M*N的整数;根据所述目标第一绑定关系和所述第二绑定关系,确定所述L个固态硬盘与所述N个RAID子模块中的J个RAID子模块的第三绑定关系;根据所述第三绑定关系为所述L个固态硬盘中的每一个固态硬盘配置允许使用的控制器硬件资源。
在一个示例性实施例中,根据所述第三绑定关系为所述L个固态硬盘中的每一个固态硬盘配置允许使用的控制器硬件资源,包括:根据所述第三绑定关系确定所述L个固态硬盘对应的P个RAID组,其中,所述RAID组包括至少两个存在相同RAID子模块绑定关系的固态硬盘,所述P大于等于1,且小于等于L/2,所述P为整数;通过所述目标第一绑定关系、所述第二绑定关系、所述第三绑定关系确定所述P个RAID组与所述J个PCIe 功能组的第四绑定关系;基于所述第四绑定关系为所述L个固态硬盘中的每一个固态硬盘配置允许使用的控制器硬件资源。
在一个示例性实施例中,通过所述目标第一绑定关系、所述第二绑定关系、所述第三绑定关系确定所述P个RAID组与所述J个PCIe 功能组的第四绑定关系之后,所述方法还包括:根据使用需求在所述P个RAID组中分别创建存储卷,其中,所述存储卷继承所述P个RAID组与所述J个PCIe 功能组的第四绑定关系;根据所述创建结果和所述第四绑定关系完成所有存储卷与所述J个PCIe 功能组的绑定。
在一个示例性实施例中,根据所述创建结果和所述第四绑定关系完成所有存储卷与所述J个PCIe 功能组的绑定,包括:获取每一个RAID组对应的子创建结果,其中,所述子创建结果用于指示每一个RAID组中存在存储卷的基础信息;在确定已获取所有子创建结果组成的所述创建结果的情况下,基于所述第四绑定关系确定所有存储卷与所述J个PCIe 功能组的关联关系;通过所述关联关系完成所有存储卷与所述J个PCIe 功能组的绑定。
在一个示例性实施例中,根据所述创建结果和所述第四绑定关系完成所有存储卷与所述J个PCIe 功能组的绑定之后,所述方法还包括:确定所述所有存储卷允许绑定PCIe物理功能的功能数量;根据所述功能数量和所述第四绑定关系对所述所有存储卷分配对应的PCIe物理功能,得到所述所有存储卷与所述PCIe物理功能的第五绑定关系。
在一个示例性实施例中,根据所述功能数量和所述第四绑定关系对所述所有存储卷分配对应的PCIe物理功能,得到所述所有存储卷与所述PCIe物理功能的第五绑定关系之后,所述方法还包括:在确定所述控制器中存在第五绑定关系的情况下,允许与所述控制器连接的目标主机向RAID组中创建的存储卷发送IO操作请求。
在一个示例性实施例中,根据所述功能数量和所述第四绑定关系对所述所有存储卷分配对应的PCIe物理功能,得到所述所有存储卷与所述PCIe物理功能的第五绑定关系之后,所述方法还包括:根据所述第五绑定关系确定每一个RAID组允许使用所述控制器的硬件资源;确定所述硬件资源对应的配置信息;将所述配置信息与所述每一个RAID组进行关联。
在一个示例性实施例中,根据所述第五绑定关系确定每一个RAID组允许使用所述控制器的硬件资源,包括:使用所述第五绑定关系结合所述目标第一绑定关系、所述第二绑定关系、第五绑定关系、所述第四绑定关系确定所述每一个RAID组的绑定配置;根据所述绑定配置确定所述每一个RAID组允许调用的PCIe 功能组和RAID子模块的个数,基于所述个数确定每一个RAID组允许使用所述控制器的硬件资源。
在一个示例性实施例中,根据所述第三绑定关系为所述L个固态硬盘中的每一个固态硬盘配置允许使用的控制器硬件资源之后,所述方法还包括:在确定与所述控制器存在连接关系的目标主机下发IO操作请求的情况下,确定每一个固态硬盘中存在的存储卷的目标数量;在所述目标数量大于预设数量的情况下,使用所述目标数量的存储卷并发执行所述IO操作请求对应的IO操作。
在一个示例性实施例中,根据所述第三绑定关系为所述L个固态硬盘中的每一个固态硬盘配置允许使用的控制器硬件资源之前,所述方法还包括:根据所述第三绑定关系确定每一个固态硬盘对应的目标RAID子模块,并统计归属于同一目标RAID子模块的多个待使用组合的固态硬盘;通过所述目标RAID子模块对所述多个待使用组合的固态硬盘进行磁盘冗余阵列的运算,得到多个运算结果;从所述多个运算结果中确定最优的目标运算结果,并通过所述目标运算结果指示每一个固态硬盘配置。
在一个示例性实施例中,根据所述第三绑定关系为所述L个固态硬盘中的每一个固态硬盘配置允许使用的控制器硬件资源之后,所述方法还包括:汇总每一个固态硬盘对应允许使用的控制器硬件资源,生成所述L个固态硬盘对应的资源使用列表;将所述资源使用列表发送至目标主机进行保存。
在一个示例性实施例中,在确定使用所述控制器对L个固态硬盘进行资源管理的情况下,根据安装关系确定所述L个固态硬盘与所述N个PCIe 功能组中的J个PCIe 功能组的目标第一绑定关系之前,所述方法还包括:通过预设的测试信号对所述控制器与所述L个固态硬盘的通信通道进行验证;在通过验证的情况下,确定允许所述控制器对L个固态硬盘进行资源管理。
根据本申请的又一个实施例,提供了一种应用在所述控制器的配置系统,包括:控制器,以及固态硬盘,其中,所述控制器与所述固态硬盘安装在目标主机对应的主板上。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请,通过在控制器中设置N个PCIe 功能组和N个RAID子模块;其中,N个RAID子模块中的每个RAID子模块与N个PCIe 功能组中的一个PCIe 功能组在硬件存在一一对应的第一绑定关系;N个PCIe 功能组的每个PCIe 功能组与控制器存在连接关系的多个固态硬盘中的至少一个固态硬盘存在第二绑定关系,N为大于1的整数;每个RAID子模块,还用于在与RAID子模块存在第一绑定关系的目标PCIe功能组接收到IO操作请求的情况下,确定与目标PCIe功能组存在第二绑定关系的多个目标固态硬盘对应的磁盘冗余阵列的目标组合结果,并确定每一个目标固态硬盘待执行的IO操作。使得在每个PCIe 功能组和RAID子模块支持的IO处理能力一定的情况下。通过设置多个PCIe 功能组和RAID子模块,在硬件上实现并发处理,使RAID控制器整体实现更高的性能,因此,可以解决相关技术中,传统RAID技术无法满足固态硬盘使用时的性能需求的问题,进而达到提升整体RAID控制器的性能,又能降低单个RAID子模块的性能设计难度的效果。
附图说明
图1是根据本申请实施例的一种控制器的结构示意图;
图2是本申请实施例的一种读写指令的划分方法的计算机终端的硬件结构框图;
图3是根据本申请实施例的一种应用在所述控制器的配置方法的流程图;
图4是相关技术中传统的RAID控制器芯片的基本结构示意图;
图5是根据本申请实施例的一种NVMe SSD RAID控制器的内部结构示意图;
图6是根据本申请实施例的一种RAID控制器系统的组成示意图;
图7是根据本申请实施例的应用在所述控制器的配置系统的结构框图;
图8是根据本申请实施例的一种可选的电子设备的计算机系统的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
图1是根据本申请实施例的一种控制器的结构示意图,如图1所示,该控制器包括如下结构:
N个PCIe 功能组 1002和N个RAID子模块 1003,其中,N个RAID子模块1003中的每个RAID子模块与N个PCIe 功能组1002中的一个PCIe 功能组在硬件存在一一对应的第一绑定关系;N个PCIe 功能组1002的每个PCIe 功能组与控制器存在连接关系的多个固态硬盘中的至少一个固态硬盘存在第二绑定关系,N为大于1的整数;每个RAID子模块,还用于在与RAID子模块存在第一绑定关系的目标PCIe功能组接收到IO操作请求的情况下,确定与目标PCIe功能组存在第二绑定关系的多个目标固态硬盘对应的磁盘冗余阵列的目标组合结果,并确定每一个目标固态硬盘待执行的IO操作。
通过上述实施例,通过在控制器中设置N个PCIe 功能组和N个RAID子模块;其中,N个RAID子模块中的每个RAID子模块与N个PCIe 功能组中的一个PCIe 功能组在硬件存在一一对应的第一绑定关系;N个PCIe 功能组的每个PCIe 功能组与控制器存在连接关系的多个固态硬盘中的至少一个固态硬盘存在第二绑定关系,N为大于1的整数;每个RAID子模块,还用于在与RAID子模块存在第一绑定关系的目标PCIe功能组接收到IO操作请求的情况下,确定与目标PCIe功能组存在第二绑定关系的多个目标固态硬盘对应的磁盘冗余阵列的目标组合结果,并确定每一个目标固态硬盘待执行的IO操作。使得在每个PCIe 功能组和RAID子模块支持的IO处理能力一定的情况下。通过设置多个PCIe 功能组和RAID子模块,在硬件上实现并发处理,使RAID控制器整体实现更高的性能,因此,可以解决相关技术中,传统RAID技术无法满足固态硬盘使用时的性能需求的问题,进而达到提升整体RAID控制器的性能,又能降低单个RAID子模块的性能设计难度的效果。
作为一种示例,上述控制器在实际应用中可以是一种硬件资源可以灵活配置的NVMe SSD RAID控制器,该RAID控制器内部由多个功能相同PCIe Function组(相当于上述实施例中的PCIe功能组)和RAID子模块构成,每个RAID子模块可以管理一定数量的NVMeSSD盘(相当于上述实施例中的固态硬盘)。
在一个示例性实施例中,所述控制器还包括:PCIe EP端口,与所述N个PCIe 功能组并行连接,用于接收与控制器存在连接关系的目标主机发送的IO操作请求,其中,所述IO操作请求至少包括:输入/输出的命令、输入/输出的数据。
也就是说,通过控制器可以通过使用PCIe EP端口在与PCIe总线连接的情况下,可以目标主机进行通信,继而通过PCIe EP端口、PCIe总线实现目标主机与当前控制器之间的IO命令和IO数据的传输,以对控制器下挂载的多个固态硬盘进行应用。
综上,通过上述方式,在通过控制器管理多个固态硬盘的同时,保证对目标主机的IO操作请求的快速响应,并通过PCIe EP端口之间的一对多连接,保证不同PCIe 功能组可以同时获取IO操作请求,减少IO操作请求处理时的时延。
在一个示例性实施例中,所述控制器还包括:PCIe RC端口,与所述N个RAID子模块并行连接,用于通过所述N个RAID子模块对应的N个组合结果向所述多个固态硬盘传输相应的命令和数据。
可以理解的是,PCIe RC端口为控制的挂盘端口,控制器通过PCIe RC端口与多个固态硬盘进行挂载连接,此外,PCIe RC端口负责通过PCIe总线与固态硬盘之间传输IO命令和数据。所有的RAID子模块共享PCIe RC端口。
在一个示例性实施例中,所述N个PCIe 功能组中每个PCIe 功能组均包含K个PCIe功能,其中,所述PCIe 功能基于PCIe规范中的定义确定,所述PCIe功能至少包括以下之一:物理功能、虚拟功能。
可选的,PCIe 功能组中包含多个PCIe 功能,这些PCIe 功能可以是PCIe规范中定义的PF,也可以是VF。所有PCIe 功能组中的PCIe 功能共享PCIe EP端口。其中,PF(Physical Function,物理功能)指示一个PCIe设备可以呈现一个或多个物理功能。VF(Virtual Function,虚拟功能)用于指示一种PCIe设备虚拟化技术,可在物理功能的基础使用硬件虚拟化技术呈现出多个虚拟功能。
在一个示例性实施例中,所述RAID子模块包括RAID处理单元和IO控制单元;其中,所述RAID处理单元的输入端连接所述目标PCIe功能组的输出端,用于在存在IO操作请求的情况下,对多个目标固态硬盘进行磁盘冗余阵列的组合运算,得到多个运算结果,并从所述多个运算结果确定出目标组合结果;所述IO控制单元的输入端连接所述RAID处理单元的输出端,用于根据所述目标组合结果分解所述IO操作请求对应的请求信息,以确定每一个目标固态硬盘待执行的IO操作。
在一个示例性实施例中,所述IO控制单元包括M个IO通道,其中,所述M为大于1的整数,每一个IO通道对应一个固态硬盘,所述IO通道用于向所述固态硬盘发送IO操作对应的控制信息。
即在每个与NVMe SSD盘(相当于上述固态硬盘)绑定的RAID子模块中的IO控制器(相当于上述IO控制单元)中,分配一个IO通道用于处理该NVMe SSD盘的IO操作。
可选的,RAID子模块,用于负责完成RAID功能实现。在NVMe SSD RAID控制器内,可以同时存在多个RAID子模块,且每个RAID子模块与一个PCIe 功能组在硬件上绑定。需要说明的是,由PCIe 功能中的PF/VF接收到的IO请求只能在与之绑定的RAID子模块中处理。可以理解的是,每个RAID子模块是独立的硬件单元,从与当前RAID子模块绑定的PCIe 功能组中的PCIe 功能接收到的IO操作请求,只能由当前RAID子模块处理,即调用当前RAID子模块内部的RAID处理单元完成RAID计算,并调用当前RAID子模块内部的NVMe SSD IO控制器完成对NVMe SSD盘的IO操作。
综上,通过上述方式,在RAID控制器内部的每个PCIe Function组和RAID子模块支持的IO处理能力是一定的情况下。通过设置多个PCIe 功能组和RAID子模块,在硬件上可以实现并发处理,使RAID控制器整体实现更高的性能。且每个内部的RAID子模块可降低性能要求,并减少设计的复杂度。同时达到扩展更多下挂NVMe SSD盘的目的。
作为一种可选的实施方式,本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图2是本申请实施例的一种读写指令的划分方法的计算机终端的硬件结构框图。如图2所示,计算机终端可以包括一个或多个(图2中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的读写指令的划分方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
图3是根据本申请实施例的一种应用在所述控制器的配置方法的流程图,如图3所示,该流程包括如下步骤:
步骤S302,在确定使用所述控制器对L个固态硬盘进行资源管理的情况下,根据安装关系确定所述L个固态硬盘与所述N个PCIe 功能组中的J个PCIe 功能组的目标第一绑定关系,其中,所述J小于等于N,所述L为大于2,且小于M*N的整数;
步骤S304,根据所述目标第一绑定关系和所述第二绑定关系,确定所述L个固态硬盘与所述N个RAID子模块中的J个RAID子模块的第三绑定关系;
步骤S306,根据所述第三绑定关系为所述L个固态硬盘中的每一个固态硬盘配置允许使用的控制器硬件资源。
通过上述步骤,在确定使用控制器对L个固态硬盘进行资源管理的情况下,根据安装关系确定L个固态硬盘与N个PCIe 功能组中的J个PCIe 功能组的目标第一绑定关系,其中,J小于等于N,L为大于1小于16N的整数;根据目标第一绑定关系和第二绑定关系,确定L个固态硬盘与N个RAID子模块中的J个RAID子模块的第三绑定关系;根据第三绑定关系为L个固态硬盘中的每一个固态硬盘配置允许使用的控制器硬件资源。通过设置多个PCIe 功能组和RAID子模块,在硬件上实现并发处理,使RAID控制器整体实现更高的性能,因此,可以解决相关技术中,传统RAID技术无法满足固态硬盘使用时的性能需求的问题,进而达到提升整体RAID控制器的性能,又能降低单个RAID子模块的性能设计难度的效果。
可选的,假设L为18,J为4,则表明此时控制器需配置18个固态硬盘的使用资源,且这18个固态硬盘分别与控制器中的4个PCIe 功能组存在绑定关系,由于控制器中的PCIe功能组与RAID子模块为一一对应关系,即通过一组对应的PCIe 功能组与RAID子模块便可以实现对目标主机发送的IO操作请求的处理,此时是通过4个PCIe 功能组对同一个IO操作请求进行处理,因此,需根据4个PCIe 功能组对应的固态硬盘的数量配置相应的控制器硬件资源,使得目标主机在对这18个固态硬盘进行调用时,可以高效的使用。
通过上述实施例,在确定控制器内部硬件结构的基础上,通过控制器中的PCIe 功能组与固态硬盘的绑定联系,为不同的固态硬盘确定可以使用控制器的硬件资源,实现控制器对绑定固态硬盘的高效交互支持。
在一个示例性实施例中,根据所述第三绑定关系为所述L个固态硬盘中的每一个固态硬盘配置允许使用的控制器硬件资源,包括:根据所述第三绑定关系确定所述L个固态硬盘对应的P个RAID组,其中,所述RAID组包括至少两个存在相同RAID子模块绑定关系的固态硬盘,所述P大于等于1,且小于等于L/2,所述P为整数;通过所述目标第一绑定关系、所述第二绑定关系、所述第三绑定关系确定所述P个RAID组与所述J个PCIe 功能组的第四绑定关系;基于所述第四绑定关系为所述L个固态硬盘中的每一个固态硬盘配置允许使用的控制器硬件资源。
可以理解是,为了确定出控制器挂载的多个固态硬盘中可以使用同一个RAID子模块进行RAID功能和算法的实现,因此,在确定每一个固态硬盘对应的RAID子模块之后,可以将固态硬盘根据与RAID子模块的对应关系,分解为多个RAID组,即确定固态硬盘与RAID子模块之间的绑定关系之后,将属于同一RAID子模块处理的固态硬盘划分到同一个组中,形成RAID组,其中,一个固态硬盘可以与一个或者多个RAID子模块绑定。
通过上述实施方式,通过确定固态硬盘与一个或者多个RAID子模块绑定关系,继而在通过相应的固态硬盘执行IO操作时,还快速确定控制器中可以使用的RAID子模块以及PCIe 功能组等硬件对应的资源,从而保证对固态硬盘在数据处理时的性能支持,避免控制器影响固态硬盘的性能表现。
在一个示例性实施例中,通过所述目标第一绑定关系、所述第二绑定关系、所述第三绑定关系确定所述P个RAID组与所述J个PCIe 功能组的第四绑定关系之后,所述方法还包括:根据使用需求在所述P个RAID组中分别创建存储卷,其中,所述存储卷继承所述P个RAID组与所述J个PCIe 功能组的第四绑定关系;根据所述创建结果和所述第四绑定关系完成所有存储卷与所述J个PCIe 功能组的绑定。
例如,在实际使用中, NVMe SSD盘组成RAID组后,RAID组继承了NVMe SSD盘与RAID子模块的绑定关系,且由于在RAID组上创建的存储卷继承了RAID组与RAID子模块的绑定关系,并且RAID子模块与PCIe Function组绑定,因此,存储卷也将会与PCIe Function组绑定。
通过上述实施方式,利用绑定关系的对应转移,可以完成存储卷与PCIe 功能组的对应,进而完成存储卷可以使用的RAID组和PCIe 功能组的确定,为后续提供支持固态硬盘的控制器资源提供参考。
在一个示例性实施例中,根据所述创建结果和所述第四绑定关系完成所有存储卷与所述J个PCIe 功能组的绑定,包括:获取每一个RAID组对应的子创建结果,其中,所述子创建结果用于指示每一个RAID组中存在存储卷的基础信息;在确定已获取所有子创建结果组成的所述创建结果的情况下,基于所述第四绑定关系确定所有存储卷与所述J个PCIe 功能组的关联关系;通过所述关联关系完成所有存储卷与所述J个PCIe 功能组的绑定。
在一个示例性实施例中,根据所述创建结果和所述第四绑定关系完成所有存储卷与所述J个PCIe 功能组的绑定之后,所述方法还包括:确定所述所有存储卷允许绑定PCIe物理功能的功能数量;根据所述功能数量和所述第四绑定关系对所述所有存储卷分配对应的PCIe物理功能,得到所述所有存储卷与所述PCIe物理功能的第五绑定关系。
也就是说,由于PCIe 功能组可能同时支持多个PCIe 功能的实现,为确定约存储卷适合的PCIe 功能,因此,在确定存储卷与PCIe 功能组之后,还以进一步确定每一个PCIe功能组对应支持的PCIe 功能,并基于绑定关系为不同的存储卷配置最适合的PCIe物理功能。
综上,通过上述配置方式可以将存储卷与PCIe功能组中包含的一个PCIe 功能对应,提升存储卷的使用效果,便于目标主机的使用查找。
在一个示例性实施例中,根据所述功能数量和所述第四绑定关系对所述所有存储卷分配对应的PCIe物理功能,得到所述所有存储卷与所述PCIe物理功能的第五绑定关系之后,所述方法还包括:在确定所述控制器中存在第五绑定关系的情况下,允许与所述控制器连接的目标主机向RAID组中创建的存储卷发送IO操作请求。
也就是说,存储卷必须绑定到PCIe功能后,才能执行IO操作。且该存储卷在只能绑定在与之存在绑定关系PCIe功能组中的PCIe功能上。即只能通过绑定的PCIe 功能组中的PCIe 功能对该存储卷发出IO操作请求。
在一个示例性实施例中,根据所述功能数量和所述第四绑定关系对所述所有存储卷分配对应的PCIe物理功能,得到所述所有存储卷与所述PCIe物理功能的第五绑定关系之后,所述方法还包括:根据所述第五绑定关系确定每一个RAID组允许使用所述控制器的硬件资源;确定所述硬件资源对应的配置信息;将所述配置信息与所述每一个RAID组进行关联。
例如,如图5中的性能分配结果所示,RAID组1:只有1个存储卷,仅可以使用PCIeFunction组1和RAID子模块中1中的硬件资源,可以达到的最大性能为RAID控制器的四分之一。RAID组2:有4个存储卷可执行并发IO操作,可以使用4个PCIe Function组和RAID子模块中全部硬件资源,可以达到RAID控制器最大性能。RAID组3:有5个存储卷在两个RAID子模块中执行并发IO操作,可以使用4个PCIe Function组和4个RAID子模块中一半的硬件资源,可以达到RAID控制器最大性能的一半,但可以满足挂载较多数量NVMe SSD盘的目的。
在一个示例性实施例中,根据所述第五绑定关系确定每一个RAID组允许使用所述控制器的硬件资源,包括:使用所述第五绑定关系结合所述目标第一绑定关系、所述第二绑定关系、第五绑定关系、所述第四绑定关系确定所述每一个RAID组的绑定配置;根据所述绑定配置确定所述每一个RAID组允许调用的PCIe 功能组和RAID子模块的个数,基于所述个数确定每一个RAID组允许使用所述控制器的硬件资源。
在一个示例性实施例中,根据所述第三绑定关系为所述L个固态硬盘中的每一个固态硬盘配置允许使用的控制器硬件资源之后,所述方法还包括:在确定与所述控制器存在连接关系的目标主机下发IO操作请求的情况下,确定每一个固态硬盘中存在的存储卷的目标数量;在所述目标数量大于预设数量的情况下,使用所述目标数量的存储卷并发执行所述IO操作请求对应的IO操作。
简单来说,由于固态硬盘可以被划分到同一个RAID组,并在该RAID组可以建立多个存储卷,当在同一个RAID组建立多个存储卷时,则可以通过这些存储卷并发IO操作,从而保证可以达到RAID控制器最大性能。
在一个示例性实施例中,根据所述第三绑定关系为所述L个固态硬盘中的每一个固态硬盘配置允许使用的控制器硬件资源之前,所述方法还包括:根据所述第三绑定关系确定每一个固态硬盘对应的目标RAID子模块,并统计归属于同一目标RAID子模块的多个待使用组合的固态硬盘;通过所述目标RAID子模块对所述多个待使用组合的固态硬盘进行磁盘冗余阵列的运算,得到多个运算结果;从所述多个运算结果中确定最优的目标运算结果,并通过所述目标运算结果指示每一个固态硬盘配置。
在一个示例性实施例中,根据所述第三绑定关系为所述L个固态硬盘中的每一个固态硬盘配置允许使用的控制器硬件资源之后,所述方法还包括:汇总每一个固态硬盘对应允许使用的控制器硬件资源,生成所述L个固态硬盘对应的资源使用列表;将所述资源使用列表发送至目标主机进行保存。
在一个示例性实施例中,在确定使用所述控制器对L个固态硬盘进行资源管理的情况下,根据安装关系确定所述L个固态硬盘与所述N个PCIe 功能组中的J个PCIe 功能组的目标第一绑定关系之前,所述方法还包括:通过预设的测试信号对所述控制器与所述L个固态硬盘的通信通道进行验证;在通过验证的情况下,确定允许所述控制器对L个固态硬盘进行资源管理。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
为了更好的理解上述控制器的配置方法的过程,以下再结合可选实施例对上述控制器的配置方法的实现流程进行说明,但不用于限定本申请实施例的技术方案。
RAID(冗余磁盘阵列)是一种数据存储技术,旨在提供数据冗余、提升性能或两者兼而有之。它通过将数据分散存储在多个磁盘驱动器上,并使用不同的数据分布策略来实现这些目标。RAID技术最初于上世纪80年代末和90年代初开发,起初用于传统机械硬盘(HDD)上,通常是基于SAS/SATA接口的机械硬盘。为了实现RAID功能,通常的技术方案是采用专用RAID控制器芯片实现。
为了更好的理解本申请实施例中的技术方案,先对相关名词进行解释说明:
RAID: Redundant Array of Independent Disks,磁盘冗余阵列。将多个磁盘设备组合起来,成为一个或多个存储阵列组,目的为提升性能、增加冗余以保护数据。
PCIe:PCI Express,高速串行计算机扩展总线。
PF:Physical Function,物理功能。一个PCIe设备可以呈现一个或多个物理功能。
VF:Virtual Function,虚拟功能。一种PCIe设备虚拟化技术,可在物理功能的基础使用硬件虚拟化技术呈现出多个虚拟功能。
SSD:Solid state drive,固态硬盘,一种以闪存Flash为存储介质的硬盘。
NVMe:Non-Volatile Memory express,非易失性内存主机控制器接口规范,一种SSD硬盘接口规范。
在理解本申请的控制器的配置方法的过程之前,需要了解相关技术中的传统RAID控制器对应机械硬盘的管理方案,如图4所示,图4是相关技术中传统的RAID控制器芯片的基本结构示意图。
该RAID控制器种对主机有一个PCIe PF端口,通过PCIe EP端口连接到主机的PCIe总线,作用是接收主机的IO操作命令和传输IO数据。RAID处理单元负责完成各种RAID级别算法的处理。SAS/SATA IO控制器单元用于完成下挂的SAS/SATA HDD盘的IO处理操作。传统的RAID控制器中,RAID处理单元和IO控制器单元通常采用软件加硬件的实现方式,软件作为功能的主导,硬件负责完成特定的计算任务。这种形式有较大的灵活性,适合性能不高的机械硬盘构成的RAID系统。
需要说明的是,上述传统RAID技术主要针对HDD设计,无法充分发挥NVMe SSD的性能潜力。PCIe GEN4接口的NVMe SSD IOPS性能可以达到1M IOPS/s,而PCIe GEN5接口NVMeSSD性能更是能达到3M IOPS/s。而传统的HDD RAID控制器通常只有几十K IOPS/s,传统的RAID技术应用在NVMe SDD上将成为严重的性能瓶颈。
针对上述技术缺陷,本申请可选实施例中提出一种新型的NVMe SSD RAID控制器,可以释放在NVMe RAID应用中使控制器本身不成为性能瓶颈。
作为一种可选的实施方式,图5是根据本申请实施例的一种NVMe SSD RAID控制器的内部结构示意图。其中,NVMe SSD RAID控制器主要由以下几部分组成:
1、PCIe EP端口,用于通过PCIe总线连接主机,负责通过PCIe总线与主机传输IO命令和IO数据。
2、多个PCIe Function组,其中,每一个PCIe Function组中包含多个PCIeFunction,这些PCIe Function可以是PCIe规范中定义的PF,也可以是VF。所有PCIeFunction组中的PCIe Function共享PCIe EP端口。
3、多个RAID子模块,用于负责完成RAID功能实现。在NVMe SSD RAID控制器内,可以同时存在多个RAID子模块,且每个RAID子模块与一个PCIe Function组在硬件上绑定。需要说明的是,由PCIe Function组中的PF/VF接收到的IO请求只能在与之绑定的RAID子模块中处理。可以理解的是,每个RAID子模块是独立的硬件单元,从与当前RAID子模块绑定的PCIe Function组中的PCIe Function接收到的IO操作请求,只能由当前RAID子模块处理,即调用当前RAID子模块内部的RAID处理单元完成RAID计算,并调用当前RAID子模块内部的NVMe SSD IO控制器完成对NVMe SSD盘的IO操作。
可选的,上述每个RAID子模块内部又分为以下两个部分:
1)、RAID处理单元,用于负责RAID功能和算法的实现。
2)、NVMe SSD IO控制单元,用于负责控制RAID控制器下挂载的NVMe SSD完成IO功能。NVMe SSD IO控制单元内部有多个IO通道,每个IO通道可以管理操作一个NVMe SSD盘执行IO命令。
4、PCIe RC端口,包括多个挂载NVMe PCIe SSD的挂盘端口,用于负责通过PCIe与硬盘之间传输IO命令和数据。所有的RAID子模块共享PCIe RC端口。
需要说明的是,上述RAID控制器内部的每个PCIe Function组和RAID子模块支持的IO处理能力是一定的。因此,可以通过设置多个PCIe Function组和RAID子模块,在硬件上进行并发处理,使RAID控制器整体实现更高的性能。且每个内部的RAID子模块可降低性能要求,并减少设计的复杂度。同时达到扩展更多下挂NVMe SSD盘的目的。
作为一种可选的实施方式,本申请可选实施例还提供一种NVMe RAID控制器的配置方法,实现NVMe SSD盘的资源管理,实现硬件资源的合理调配,合理满足NVMe RAID应用中性能与可扩展性的需求。即在NVMe SSD RAID控制器对应的硬件内部采用了多通道PCIeFunction组和RAID子模块的基础上,为了能够发挥NVMe SSD RAID控制器的最佳性能,并保持挂载NVMe SSD盘的可扩展性。因此,为NVMe SSD RAID控制器设定了一下配置方法,具体包括:
1、NVMe SSD盘与RAID子模块存在绑定关系,一个NVMe SSD盘可以与一个或者多个RAID子模块绑定。
2、在每个与NVMe SSD盘绑定的RAID子模块中的NVMe SSD IO控制器中,分配一个IO通道用于处理该NVMe SSD盘的IO操作。
3、仅允许与RAID子模块绑定关系相同的NVMe SSD盘组成RAID组。
4、NVMe SSD盘组成RAID组后,RAID组继承了NVMe SSD盘与RAID子模块的绑定关系。
5、在RAID组上创建的存储卷继承了RAID组与RAID子模块的绑定关系,由于RAID子模块与PCIe Function组绑定,因此存储卷也与PCIe Function组绑定。
6、存储卷必须绑定到PCIe Function后,才能执行IO操作。且该存储卷在只能绑定在与之存在绑定关系PCIe Function组中的PCIe Function上。即只能通过绑定的PCIeFunction组中的PCIe Function对该存储卷发出IO操作请求。
7、通过多个存储卷并发执行IO发挥RAID控制器最大性能。
为了更加清楚的展示本申请中的技术方案,现通过一个具体的实施例来说明,但不对本申请的技术方案起到过多的限制作用。
图6是根据本申请实施例的一种RAID控制器系统的组成示意图。需要说明的是,在该NVMe SSD RAID控制器中,内部一共实现了4个PCIe Function组,每个PCIe Function组中包含两个PF;4个RAID子模块,每个RAID子模块中的NVMe SSD IO控制器中,实现了16个IO通道,即每个NVMe SSD IO控制器可以管理16个NVMe SSD盘。因此该RAID控制器最大可以管理64个NVMe SSD盘,可以提供4组硬件并发处理IO操作。
为了更清晰地描述本申请的整体流程和方法,通过以下实施例进行描述,可选的,在上述NVMe SSD RAID控制器下连接了NVMe SSD1到NVMe SSD18一共18个NVMe SSD盘。为了管理这些NVMe SSD盘的硬件资源,并最终组成RAID组,创建出存储卷供用户使用,并实现合理的性能和盘数量挂载需求,需要按照以下步骤进行配置
步骤一、确定NVMe SSD盘与PCIe Function组的绑定关系。NVMe SSD与PCIeFunction组之间的绑定关系可以通过多种方式进行呈现。
可选的,可以通过表格的形式呈现,如表1所示:
表1
其中,在表1中,对号的地方表示NVMe SSD盘和对应的PCIe Function组之间存在绑定关系。在本实施例中,NVMe SSD 1—2仅与PCIe Function组1绑定; NVMe SSD 3—6与4个PCIe Function组均有绑定关系; NVMe SSD 7—18与PCIe Function组3和4有绑定关系。需要说明的是,上述绑定关系仅仅是一种示例,并不对本申请实施例进行限定。
步骤二、根据NVMe SSD盘与PCIe Function组的绑定关系,确定NVMe SSD盘与RAID子模块的绑定关系,该绑定关系是一一对应的。因此,在本申请可选实施例中,NVMe SSD1—2仅与RAID子模块1绑定; NVMe SSD 3—6与4个RAID子模块均有绑定关系; NVMe SSD7—18与RAID子模块3和4有绑定关系。
步骤三、根据NVMe SSD盘与RAID子模块的绑定关系,为NVMe SSD盘在NVMe SSD IO控制器中分配IO通道。
在本申请可选实施例中:
RAID子模块1的NVMe SSD IO控制器占用了6个通道,分别分配给了 NVMe SSD 1—6。
RAID子模块2的NVMe SSD IO控制器占用了4个通道,分别分配给了 NVMe SSD 2—6。
RAID子模块3的NVMe SSD IO控制器占用了16个通道,分别分配给了 NVMe SSD3—18。
RAID子模块3 4的NVMe SSD IO控制器占用了16个通道,分别分配给了 NVMe SSD3—18。
步骤四、根据仅允许与RAID子模块绑定关系相同的NVMe SSD盘组成RAID组的条件,确定可以组成RAID的NVMe SSD盘。
可选的,在本申请可选实施例中,NVMe SSD1—2可以组成RAID组。NVMe SSD 3-6中任意2个以上的固态硬盘可以组成RAID组。 NVMe SSD 7—18中任意2个以上的固态硬盘可以组成RAID组。
在本申请可选实施例中,作为一种可选的实施例,上述固态硬盘可以组成三个RAID组。如下表2所示,具体的,RAID组1,由NVMe SSD1—2组成。RAID组2,由NVMe SSD3—6组成。RAID组3,由NVMe SSD7—18组成。
表2
/>
步骤五、确定RAID组与PCIe Function组绑定关系。RAID组继承了NVMe SSD盘与PCIe Function组绑定关系,因此在本申请可选实施例中:
RAID组1,PCIe Function组1绑定。
RAID组2,PCIe Function组1—4绑定。
RAID组3,PCIe Function组3—4绑定。
步骤六、在RAID组上创建存储卷,存储卷继承了RAID组与PCIe Function组的绑定关系。在本申请可选实施例中:
假如RAID组1上创建了存储卷1,则存储卷1与PCIe Function组1绑定。
假如RAID组2上创建了存储卷2—5,则存储卷2—5与PCIe Function组1—4绑定。
假如RAID组3上创建了存储卷6—10,则存储卷6—10与PCIe Function组1—4绑定。
步骤七、将存储卷与PCIe PF绑定。根据存储卷与RAID子模块的绑定关系,本申请可选实施例中的存储卷可以实现以下绑定关系:
可选的,存储卷1可以绑定到PF1或PF2;存储卷2—5中任意一存储卷可以绑定到PF1—PF5中任意一个PF;存储卷6—10中任意一个存储卷可以绑定到PF4和PF5中任意一个PF。
作为一种示例,在本申请可选实施例中所示的绑定关系如下,如上图6所示:
存储卷1绑定到PF1;
存储卷2绑定到PF2、存储卷3绑定到PF3、存储卷4绑定到PF4、存储卷5绑定到PF5;
存储卷6、7绑定到PF4,存储卷8、9、10绑定到PF5。
可选的,当完成了存储卷与PF的绑定后,目标主机即可可以对这些存储卷发出IO操作。
步骤八、性能分配结果。根据本申请可选实施例中的配置,RAID组可以利用的RAID控制器性能如下:
RAID组1:只有1个存储卷,仅可以使用PCIe Function组1和RAID子模块中1中的硬件资源,可以达到的最大性能为RAID控制器的四分之一。
RAID组2:有4个存储卷可执行并发IO操作,可以使用4个PCIe Function组和RAID子模块中全部硬件资源,可以达到RAID控制器最大性能。
RAID组3:有5个存储卷在两个RAID子模块中执行并发IO操作,可以使用4个PCIeFunction组和4个RAID子模块中一半的硬件资源,可以达到RAID控制器最大性能的一半,但可以满足挂载较多数量NVMe SSD盘的目的。
通过上述实施例,设计了一种硬件资源可以灵活配置的RAID控制器,通过在RAID控制器内部设置多个PCIe Function组和RAID子模块,既能提升整体RAID控制器的性能,又能降低单个RAID子模块的性能设计难度。其次是本申请实施例中的RAID控制器配置方法和步骤,可以实现RAID组性能,和RAID组盘数可扩展性的灵活配置,达到在NVMe SSD RAID使用场景下,既能兼顾高性能,又能兼顾盘数扩展性的双重目标。
在本实施例中还提供了一种控制器的配置系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图7是根据本申请实施例的应用在所述控制器的配置系统的结构框图,如图7所示,该配置系统包括:
控制器72,以及固态硬盘74,其中,所述控制器与所述固态硬盘安装在目标主机对应的主板上。
可选的,上述控制器72包括N个PCIe 功能组和N个RAID子模块;其中,所述N个RAID子模块中的每个RAID子模块与所述N个PCIe 功能组中的一个PCIe 功能组在硬件存在一一对应的第一绑定关系;所述N个PCIe 功能组的每个PCIe 功能组与所述控制器存在连接关系的多个固态硬盘中的至少一个固态硬盘存在第二绑定关系,所述N为大于1的整数;所述每个RAID子模块,还用于在与所述RAID子模块存在所述第一绑定关系的目标PCIe功能组接收到IO操作请求的情况下,确定与所述目标PCIe功能组存在第二绑定关系的多个目标固态硬盘对应的磁盘冗余阵列的目标组合结果,并确定每一个目标固态硬盘待执行的IO操作。
在一个示例性实施例中,所述控制器72还包括:PCIe EP端口,与所述N个PCIe 功能组并行连接,用于接收与控制器存在连接关系的目标主机发送的IO操作请求,其中,所述IO操作请求至少包括:输入/输出的命令、输入/输出的数据。
在一个示例性实施例中,所述控制器72还包括:PCIe RC端口,与所述N个RAID子模块并行连接,用于通过所述N个RAID子模块对应的N个组合结果向所述多个固态硬盘传输相应的命令和数据。
在一个示例性实施例中,所述N个PCIe 功能组中每个PCIe 功能组均包含K个PCIe功能,其中,所述PCIe 功能基于PCIe规范中的定义确定,所述PCIe功能至少包括以下之一:物理功能、虚拟功能。
在一个示例性实施例中,所述RAID子模块包括RAID处理单元和IO控制单元;其中,所述RAID处理单元的输入端连接所述目标PCIe功能组的输出端,用于在存在IO操作请求的情况下,对多个目标固态硬盘进行磁盘冗余阵列的组合运算,得到多个运算结果,并从所述多个运算结果确定出目标组合结果;所述IO控制单元的输入端连接所述RAID处理单元的输出端,用于根据所述目标组合结果分解所述IO操作请求对应的请求信息,以确定每一个目标固态硬盘待执行的IO操作。
在一个示例性实施例中,所述IO控制单元包括M个IO通道,其中,所述M为大于1的整数,每一个IO通道对应一个固态硬盘,所述IO通道用于向所述固态硬盘发送IO操作对应的控制信息。
在一个示例性实施例中,固态硬盘74至少存在两个。所述固态硬盘的数量可以根据目标主机上的主板接口数量进行扩展。
通过上述系统,通过在控制器中设置N个PCIe 功能组和N个RAID子模块;其中,N个RAID子模块中的每个RAID子模块与N个PCIe 功能组中的一个PCIe 功能组在硬件存在一一对应的第一绑定关系;N个PCIe 功能组的每个PCIe 功能组与控制器存在连接关系的多个固态硬盘中的至少一个固态硬盘存在第二绑定关系,N为大于1的整数;每个RAID子模块,还用于在与RAID子模块存在第一绑定关系的目标PCIe功能组接收到IO操作请求的情况下,确定与目标PCIe功能组存在第二绑定关系的多个目标固态硬盘对应的磁盘冗余阵列的目标组合结果,并确定每一个目标固态硬盘待执行的IO操作。使得在每个PCIe 功能组和RAID子模块支持的IO处理能力一定的情况下。通过设置多个PCIe 功能组和RAID子模块,在硬件上实现并发处理,使RAID控制器整体实现更高的性能,因此,可以解决相关技术中,传统RAID技术无法满足固态硬盘使用时的性能需求的问题,进而达到提升整体RAID控制器的性能,又能降低单个RAID子模块的性能设计难度的效果。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
图8示意性地示出了用于实现本申请实施例的电子设备的计算机系统结构框图。如图8所示,计算机系统800包括中央处理器801(Central Processing Unit,CPU),其可以根据存储在只读存储器802(Read-Only Memory,ROM)中的程序或者从存储部分808加载到随机访问存储器803(Random Access Memory,RAM)中的程序而执行各种适当的动作和处理。在随机访问存储器803中,还存储有系统操作所需的各种程序和数据。中央处理器801、在只读存储器802以及随机访问存储器803通过总线804彼此相连。输入/输出接口805(Input /Output接口,即I/O接口)也连接至总线804。
以下部件连接至输入/输出接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至输入/输出接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理器801执行时,执行本申请的系统中限定的各种功能。
需要说明的是,图8示出的电子设备的计算机系统800仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (21)
1.一种控制器,其特征在于,包括:
N个PCIe 功能组和N个RAID子模块;其中,所述N个RAID子模块中的每个RAID子模块与所述N个PCIe 功能组中的一个PCIe 功能组在硬件存在一一对应的第一绑定关系;所述N个PCIe 功能组的每个PCIe 功能组与所述控制器存在连接关系的多个固态硬盘中的至少一个固态硬盘存在第二绑定关系,所述N为大于1的整数;
所述每个RAID子模块,还用于在与所述RAID子模块存在所述第一绑定关系的目标PCIe功能组接收到IO操作请求的情况下,确定与所述目标PCIe功能组存在第二绑定关系的多个目标固态硬盘对应的磁盘冗余阵列的目标组合结果,并确定每一个目标固态硬盘待执行的IO操作。
2.根据权利要求1所述的控制器,其特征在于,所述控制器还包括:
PCIe EP端口,与所述N个PCIe 功能组并行连接,用于接收与控制器存在连接关系的目标主机发送的IO操作请求,其中,所述IO操作请求至少包括:输入/输出的命令、输入/输出的数据。
3.根据权利要求1所述的控制器,其特征在于,所述控制器还包括:
PCIe RC端口,与所述N个RAID子模块并行连接,用于通过所述N个RAID子模块对应的N个组合结果向所述多个固态硬盘传输相应的命令和数据。
4.根据权利要求1所述的控制器,其特征在于,
所述N个PCIe 功能组中每个PCIe 功能组均包含K个PCIe 功能,其中,所述PCIe 功能基于PCIe规范中的定义确定,所述PCIe功能至少包括以下之一:物理功能、虚拟功能。
5.根据权利要求1所述的控制器,其特征在于,
所述RAID子模块包括RAID处理单元和IO控制单元;
其中,所述RAID处理单元的输入端连接所述目标PCIe功能组的输出端,用于在存在IO操作请求的情况下,对多个目标固态硬盘进行磁盘冗余阵列的组合运算,得到多个运算结果,并从所述多个运算结果确定出目标组合结果;
所述IO控制单元的输入端连接所述RAID处理单元的输出端,用于根据所述目标组合结果分解所述IO操作请求对应的请求信息,以确定每一个目标固态硬盘待执行的IO操作。
6.根据权利要求5所述的控制器,其特征在于,
所述IO控制单元包括M个IO通道,其中,所述M为大于1的整数,每一个IO通道对应一个固态硬盘,所述IO通道用于向所述固态硬盘发送IO操作对应的控制信息。
7.一种应用在如权利要求1至6中任一项所述的控制器的配置方法,其特征在于,包括:
在确定使用所述控制器对L个固态硬盘进行资源管理的情况下,根据安装关系确定所述L个固态硬盘与所述N个PCIe 功能组中的J个PCIe 功能组的目标第一绑定关系,其中,所述J小于等于N,所述L为大于2,且小于M*N的整数;
根据所述目标第一绑定关系和所述第二绑定关系,确定所述L个固态硬盘与所述N个RAID子模块中的J个RAID子模块的第三绑定关系;
根据所述第三绑定关系为所述L个固态硬盘中的每一个固态硬盘配置允许使用的控制器硬件资源。
8.根据权利要求7所述的控制器的配置方法,其特征在于,根据所述第三绑定关系为所述L个固态硬盘中的每一个固态硬盘配置允许使用的控制器硬件资源之后,所述方法还包括:
在确定与所述控制器存在连接关系的目标主机下发IO操作请求的情况下,确定每一个固态硬盘中存在的存储卷的目标数量;
在所述目标数量大于预设数量的情况下,使用所述目标数量的存储卷并发执行所述IO操作请求对应的IO操作。
9.根据权利要求7所述的控制器的配置方法,根据所述第三绑定关系为所述L个固态硬盘中的每一个固态硬盘配置允许使用的控制器硬件资源,包括:
根据所述第三绑定关系确定所述L个固态硬盘对应的P个RAID组,其中,所述RAID组包括至少两个存在相同RAID子模块绑定关系的固态硬盘,所述P大于等于1,且小于等于L/2,所述P为整数;
通过所述目标第一绑定关系、所述第二绑定关系、所述第三绑定关系确定所述P个RAID组与所述J个PCIe 功能组的第四绑定关系;
基于所述第四绑定关系为所述L个固态硬盘中的每一个固态硬盘配置允许使用的控制器硬件资源。
10.根据权利要求9所述的控制器的配置方法,其特征在于,通过所述目标第一绑定关系、所述第二绑定关系、所述第三绑定关系确定所述P个RAID组与所述J个PCIe 功能组的第四绑定关系之后,所述方法还包括:
根据使用需求在所述P个RAID组中分别创建存储卷,其中,所述存储卷继承所述P个RAID组与所述J个PCIe 功能组的第四绑定关系;
根据创建结果和所述第四绑定关系完成所有存储卷与所述J个PCIe 功能组的绑定。
11.根据权利要求10所述的控制器的配置方法,其特征在于,根据所述创建结果和所述第四绑定关系完成所有存储卷与所述J个PCIe 功能组的绑定,包括:
获取每一个RAID组对应的子创建结果,其中,所述子创建结果用于指示每一个RAID组中存在存储卷的基础信息;
在确定已获取所有子创建结果组成的所述创建结果的情况下,基于所述第四绑定关系确定所有存储卷与所述J个PCIe 功能组的关联关系;
通过所述关联关系完成所有存储卷与所述J个PCIe 功能组的绑定。
12.根据权利要求10所述的控制器的配置方法,其特征在于,根据所述创建结果和所述第四绑定关系完成所有存储卷与所述J个PCIe 功能组的绑定之后,所述方法还包括:
确定所述所有存储卷允许绑定PCIe物理功能的功能数量;
根据所述功能数量和所述第四绑定关系对所述所有存储卷分配对应的PCIe物理功能,得到所述所有存储卷与所述PCIe物理功能的第五绑定关系。
13.根据权利要求12所述的控制器的配置方法,其特征在于,根据所述功能数量和所述第四绑定关系对所述所有存储卷分配对应的PCIe物理功能,得到所述所有存储卷与所述PCIe物理功能的第五绑定关系之后,所述方法还包括:
在确定所述控制器中存在第五绑定关系的情况下,允许与所述控制器连接的目标主机向RAID组中创建的存储卷发送IO操作请求。
14.根据权利要求12所述的控制器的配置方法,其特征在于,根据所述功能数量和所述第四绑定关系对所述所有存储卷分配对应的PCIe物理功能,得到所述所有存储卷与所述PCIe物理功能的第五绑定关系之后,所述方法还包括:
根据所述第五绑定关系确定每一个RAID组允许使用所述控制器的硬件资源;
确定所述硬件资源对应的配置信息;
将所述配置信息与所述每一个RAID组进行关联。
15.根据权利要求14所述的控制器的配置方法,其特征在于,根据所述第五绑定关系确定每一个RAID组允许使用所述控制器的硬件资源,包括:
使用所述第五绑定关系结合所述目标第一绑定关系、所述第二绑定关系、第五绑定关系、所述第四绑定关系确定所述每一个RAID组的绑定配置;
根据所述绑定配置确定所述每一个RAID组允许调用的PCIe 功能组和RAID子模块的个数,基于所述个数确定每一个RAID组允许使用所述控制器的硬件资源。
16.根据权利要求7所述的控制器的配置方法,其特征在于,根据所述第三绑定关系为所述L个固态硬盘中的每一个固态硬盘配置允许使用的控制器硬件资源之前,所述方法还包括:
根据所述第三绑定关系确定每一个固态硬盘对应的目标RAID子模块,并统计归属于同一目标RAID子模块的多个待使用组合的固态硬盘;
通过所述目标RAID子模块对所述多个待使用组合的固态硬盘进行磁盘冗余阵列的运算,得到多个运算结果;
从所述多个运算结果中确定最优的目标运算结果,并通过所述目标运算结果指示每一个固态硬盘配置。
17.根据权利要求16所述的控制器的配置方法,其特征在于,根据所述第三绑定关系为所述L个固态硬盘中的每一个固态硬盘配置允许使用的控制器硬件资源之后,所述方法还包括:
汇总每一个固态硬盘对应允许使用的控制器硬件资源,生成所述L个固态硬盘对应的资源使用列表;
将所述资源使用列表发送至目标主机进行保存。
18.根据权利要求7所述的控制器的配置方法,其特征在于,在确定使用所述控制器对L个固态硬盘进行资源管理的情况下,根据安装关系确定所述L个固态硬盘与所述N个PCIe功能组中的J个PCIe 功能组的目标第一绑定关系之前,所述方法还包括:
通过预设的测试信号对所述控制器与所述L个固态硬盘的通信通道进行验证;
在通过验证的情况下,确定允许所述控制器对L个固态硬盘进行资源管理。
19.一种应用在如权利要求1至6任一项中所述的控制器的配置系统,其特征在于,包括:
控制器,以及固态硬盘,其中,所述控制器与所述固态硬盘安装在目标主机对应的主板上。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求7至18任一项中所述的方法的步骤。
21.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求7至18任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311321277.XA CN117055824B (zh) | 2023-10-12 | 2023-10-12 | 控制器、控制器的配置方法及系统、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311321277.XA CN117055824B (zh) | 2023-10-12 | 2023-10-12 | 控制器、控制器的配置方法及系统、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117055824A CN117055824A (zh) | 2023-11-14 |
CN117055824B true CN117055824B (zh) | 2024-02-09 |
Family
ID=88661252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311321277.XA Active CN117055824B (zh) | 2023-10-12 | 2023-10-12 | 控制器、控制器的配置方法及系统、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117055824B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115729706A (zh) * | 2022-11-24 | 2023-03-03 | 广州超云科技有限公司 | Cpu性能优化系统及方法 |
CN115858221A (zh) * | 2022-12-16 | 2023-03-28 | 苏州浪潮智能科技有限公司 | 存储设备的管理方法、装置、存储介质及电子设备 |
CN116301596A (zh) * | 2023-02-10 | 2023-06-23 | 山东云海国创云计算装备产业创新中心有限公司 | 一种软件raid构建方法、装置、设备及存储介质 |
-
2023
- 2023-10-12 CN CN202311321277.XA patent/CN117055824B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115729706A (zh) * | 2022-11-24 | 2023-03-03 | 广州超云科技有限公司 | Cpu性能优化系统及方法 |
CN115858221A (zh) * | 2022-12-16 | 2023-03-28 | 苏州浪潮智能科技有限公司 | 存储设备的管理方法、装置、存储介质及电子设备 |
CN116301596A (zh) * | 2023-02-10 | 2023-06-23 | 山东云海国创云计算装备产业创新中心有限公司 | 一种软件raid构建方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117055824A (zh) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108776576B (zh) | 用于聚合的网上NVMe装置的聚合存储方法 | |
US8706962B2 (en) | Multi-tier storage system configuration adviser | |
US20220019361A1 (en) | Data-protection-aware capacity provisioning of shared external volume | |
US8463995B2 (en) | Storage control apparatus and storage system comprising multiple storage control apparatuses | |
CN110740157A (zh) | 存储系统及远程存取方法 | |
US8489845B2 (en) | Storage system comprising multiple storage control apparatus | |
CN104965677A (zh) | 存储系统 | |
CN111880727A (zh) | 一种用于硬盘端口号灵活分配的硬件架构及其实现方法 | |
JP2010271808A (ja) | ストレージ装置及びデータコピー方法 | |
US20170199694A1 (en) | Systems and methods for dynamic storage allocation among storage servers | |
US10592285B2 (en) | System and method for information handling system input/output resource management | |
US20120260037A1 (en) | Smart hybrid storage based on intelligent data access classification | |
US11099754B1 (en) | Storage array with dynamic cache memory configuration provisioning based on prediction of input-output operations | |
US20130275671A1 (en) | Creating encrypted storage volumes | |
JP2013502001A (ja) | 不揮発性メモリからのデータ読み出し用コントローラ | |
CN109189347A (zh) | 一种共享存储模块、服务器及系统 | |
US11029847B2 (en) | Method and system for shared direct access storage | |
CN117055824B (zh) | 控制器、控制器的配置方法及系统、存储介质及电子设备 | |
US9015410B2 (en) | Storage control apparatus unit and storage system comprising multiple storage control apparatus units | |
US20170123657A1 (en) | Systems and methods for back up in scale-out storage area network | |
US20150160871A1 (en) | Storage control device and method for controlling storage device | |
CN115729470A (zh) | 一种数据写入方法及相关设备 | |
US11237745B2 (en) | Computer system and volume arrangement method in computer system to reduce resource imbalance | |
US8990523B1 (en) | Storage apparatus and its data processing method | |
US20120324188A1 (en) | Virtual usb key for blade server |
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 |