CN107450852A - 一种存储空间处理方法、装置和设备 - Google Patents

一种存储空间处理方法、装置和设备 Download PDF

Info

Publication number
CN107450852A
CN107450852A CN201710642619.6A CN201710642619A CN107450852A CN 107450852 A CN107450852 A CN 107450852A CN 201710642619 A CN201710642619 A CN 201710642619A CN 107450852 A CN107450852 A CN 107450852A
Authority
CN
China
Prior art keywords
lun
block
raid
solid state
raid stripe
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
CN201710642619.6A
Other languages
English (en)
Other versions
CN107450852B (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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710642619.6A priority Critical patent/CN107450852B/zh
Publication of CN107450852A publication Critical patent/CN107450852A/zh
Application granted granted Critical
Publication of CN107450852B publication Critical patent/CN107450852B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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

Abstract

本申请实施例提供了一种存储空间处理方法、装置及设备,在确定固态硬盘的每个LUN包含的多个物理块及其存储位置后,将利用各LUN中物理块的存储位置,对不同LUN包括的多个物理块进行分组,从而得到对应的多个RAID条带,之后,在确定各RAID条带中的校验块时,本申请将控制各RAID条带中的校验块位于所述固态硬盘不同的通道channel和不同LUN中,从而避免了出现一个channel和一个LUN上设置过多校验块,而影响固态硬盘的读写性能。可见,本申请通过灵活设置各RAID条带中的校验块,保证了固态硬盘的读写性能。

Description

一种存储空间处理方法、装置和设备
技术领域
本申请主要涉及负载均衡应用领域,更具体地说是涉及一种存储空间处理方法、装置及设备。
背景技术
固态硬盘(Solid State Drives,简称SSD)是用固态电子存储芯片阵列而制成的硬盘,通常由控制单元和存储单元组成,因其更便携、更抗震、低功耗以及数据存储速度快等优势,被广泛应用到军事、车载、工业、医疗以及航空等领域。
其中,对于固态硬盘的存储空间,通常可以通过自定义设置固定硬盘的每个数据传输通道包含的LUN(Logical Unit Number,逻辑单元号)数量,以及每个LUN所映射的存储空间的大小即包含的物理块的数量,以满足该固态硬盘在不同应用场景下的数据存储需求。
在实际应用中,为了保证固态硬盘数据读写操作的准确性,通常会对其包含的各物理块进行信息记录,由于物理块数量众多,现有技术往往采用多个物理块按照一定规则组成虚拟块的方式,实现对物理块的分配以及使用,减少单独对每个物理块进行信息记录而占用的存储空间,同时也方便了RAID(Redundant Arrays of Independent Disks,独立硬盘阵列)管理。
然而,现有的这种存储空间处理方案往往会因组成的虚拟块的校验物理块的灵活性低,而导致固态硬盘的各数据传输通道及其包含的各LUN的数据读写负载不均衡,从而降低了固态硬盘数据读写效率以及性能。
发明内容
有鉴于此,本发明提供了一种存储空间处理方法、装置及设备,实现了固态硬盘中各通道channel和各LUN上读负载的均衡,保证了固态硬盘的读取性能。
为了实现上述发明目的,本申请提供了以下技术方案:
一种存储空间处理方法,所述方法包括:
确定固态硬盘的每个逻辑单元号LUN包括的多个物理块,以及所述多个物理块在对应的LUN中的存储位置;
利用所述多个物理块在对应的LUN中的存储位置,对不同LUN包括的多个物理块进行分组,得到多个独立硬盘阵列RAID条带;
确定得到的各RAID条带中的校验块,以使各RAID条带中的校验块位于所述固态硬盘不同的通道channel和不同LUN中。
优选的,所述确定得到的各RAID条带中的校验块,以使各RAID条带中的校验块位于所述固态硬盘不同的通道channel和不同LUN中,包括:
利用同一RAID条带中的多个数据块,计算得到所述RAID条带的校验块,所述多个数据块和所述校验块构成所述RAID条带的物理块;
在所述固态硬盘的多个channel和多个LUN上,间隔设置多个RAID条带的校验块。
优选的,利用所述多个物理块在对应的LUN中的存储位置,对不同LUN包括的多个物理块进行分组,得到多个独立硬盘阵列RAID条带,包括:
利用不同LUN中位于同一存储位置的物理块,生成对应的多个独立硬盘阵列RAID条带。
优选的,确定所述多个物理块在对应的LUN中的存储位置,包括:
针对同一个LUN包括的多个物理块,配置唯一对应的标识,所述标识表征物理块在LUN中的存储位置;
所述利用不同LUN中位于同一存储位置的物理块,生成对应的多个独立硬盘阵列RAID条带,包括:
将不同LUN中具有同一标识的物理块组织成对应的独立硬盘阵列RAID条带。
优选的,所述方法还包括:
获得RAID条带的预设格式要求,所述预设格式要求表明所述RAID条带包含的数据块的数量;
所述利用所述多个物理块在对应的LUN中的存储位置,对不同LUN包括的多个物理块进行分组,得到多个独立硬盘阵列RAID条带,包括:
利用所述多个物理块在对应的LUN中的存储位置,按照所述预设格式要求,对不同LUN包括的多个物理块进行分组,得到多个独立硬盘阵列RAID条带。
一种存储空间处理装置,所述装置包括:
第一确定模块,用于确定固态硬盘的每个逻辑单元号LUN包括的多个物理块,以及所述多个物理块在对应的LUN中的存储位置;
分组模块,用于利用所述多个物理块在对应的LUN中的存储位置,对不同LUN包括的多个物理块进行分组,得到多个独立硬盘阵列RAID条带;
第二确定模块,用于确定得到的各RAID条带中的校验块,并使各RAID条带中的校验块位于所述固态硬盘不同的通道channel和不同LUN中。
优选的,所述第二确定模块包括:
计算单元,用于利用同一RAID条带中的多个数据块,计算得到所述RAID条带的校验块,所述多个数据块和所述校验块构成所述RAID条带的物理块;
设置单元,用于在所述固态硬盘的多个channel和多个LUN上,间隔设置多个RAID条带的校验块。
优选的,所述分组模块具体用于利用不同LUN中位于同一存储位置的物理块,生成对应的多个独立硬盘阵列RAID条带。
优选的,所述装置还包括:
获得模块,用于获得RAID条带的预设格式要求,所述预设格式要求表明所述RAID条带包含的数据块的数量;
所述分组模块具体用于利用所述多个物理块在对应的LUN中的存储位置,按照所述预设格式要求,对不同LUN包括的多个物理块进行分组,得到多个独立硬盘阵列RAID条带。
一种存储空间处理设备,所述设备包括:
通信接口;
存储器,用于存储实现如上所述的存储空间处理方法的程序;
处理器,用于加载并执行所述存储器存储的程序,包括:
确定固态硬盘的每个逻辑单元号LUN包括的多个物理块,以及所述多个物理块在对应的LUN中的存储位置;
利用所述多个物理块在对应的LUN中的存储位置,对不同LUN包括的多个物理块进行分组,得到多个独立硬盘阵列RAID条带;
确定得到的各RAID条带中的校验块,并使各RAID条带中的校验块位于所述固态硬盘不同的通道channel和不同LUN中。
由此可见,与现有技术相比,本申请提供了一种存储空间处理方法、装置及设备,在确定固态硬盘的每个LUN包含的多个物理块及其存储位置后,将利用各LUN中物理块的存储位置,对不同LUN包括的多个物理块进行分组,从而得到对应的多个RAID条带,之后,在确定各RAID条带中的校验块时,本申请将控制各RAID条带中的校验块位于所述固态硬盘不同的通道channel和不同LUN中,从而避免了出现一个channel和一个LUN上设置过多校验块,而影响固态硬盘的读写性能。可见,本申请通过灵活设置各RAID条带中的校验块,保证了固态硬盘的读写性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种固态硬盘结构图;
图2为本申请实施例提供的存储空间处理方法流程图;
图3本申请实施例提供的另一种存储空间处理方法流程图;
图4为本申请实施例提供的一种存储空间处理装置的结构框图;
图5为本申请实施例提供的另一种存储空间处理装置的结构框图;
图6为本申请实施例提供的又一种存储空间处理装置的结构框图;
图7为本申请实施例提供的存储空间处理设备的硬件结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
固态硬盘的数据读写操作通常要经过数据传输通道channel,发送到具体的某一个或多个LUN(Logical Unit Number,逻辑单元号),实现对固态硬盘中的FLASH芯片或其他存储单元中存储的数据的读写操作。其中,LUN可以表示将固态硬盘的存储单元划分成多个小磁盘空间,可以记为LUN1、LUN2、LUN3等等。
其中,固态硬盘通常包括多个channel,每个channel可以挂载了不同目标target,而一个target又可以包含多个LUN,用来执行读写擦任务,且每个LUN同时只能执行一种操作或任务。
另外,对于上述LUN所映射的存储空间的大小,即包含的物理块可以是Block(数据块中最小存储和处理单元,包含块本身的头信息数据或PL/SQL代码),为了方便RAID(Redundant Array of Independent Disks,独立硬盘阵列)管理,可以采用如下表1的方式构成虚拟块(Virtual Block),但并不局限于此,表1仅是虚拟块组成的一种示例。
其中,RAID是一种把多块独立的硬盘按不同的方式组合起来,形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。组成硬盘阵列的不同方式可以称为RAID级别,在实际应用中,其能够提供自动数据备份,数据备份的功能是在用户数据发生损坏后,利用备份信息使损坏数据得以恢复,从而保障用户数据的安全性;而且,其通过将数据分成多个数据块Block,并行写入/读出,大大提高固态硬盘访问速度的效果。
表1
由上述表1所示的内容可知,本申请实施例可以采用7个数据Block+1个校验块(parity Block)构成一个虚拟块,其中,构成一个虚拟块中的Block是指LUN0~LUN7上的所有Block,即构成Virtual Block0中的Block0是指LUN0~LUN7上的所有Block0,构成Virtual Block1中的Block1是指LUN0~LUN7上的所有Block1。
在本申请实施例中,对于RAID管理中RAID的大小,可以根据实际需要确定,如15+1,31+1等等物理块+校验块组织形式,本申请对RAID的大小及其组织形式不做限定。
结合上述描述,参照图1,固态硬盘可以由控制器和多个FLASH芯片组成,各FLASH芯片可以挂接到不同的数据传输通道,如图1中的channel1、channel2、……、channeln上,每个FLASH芯片内可以由多个LUN组成,每个LUN可以包括多个Block。
基于上述固态硬盘的存储单元即FLAH芯片的结构,本申请实施例提出了一种存储控制方法,在根据RAID生成虚拟块时,通过将不同虚拟块上的校验块配置到不同的LUN和不同channel上,以达到平衡固态硬盘中的各个LUN和各个channel的读负载的目的。
为了使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图2,为本申请实施例提供的一种存储空间处理方法的流程图,该方法可以应用于固定硬盘的存储单元,如固态硬盘的FLASH芯片,但并不局限与此,本申请实施例仅以此为例进行说明,本实施例提供的方法可以包括以下步骤:
步骤S201,确定固态硬盘的每个LUN包含的多个物理块及其存储位置;
其中,固态硬盘的物理块可以是如上图1中的Block,其是数据库中的最下存储和处理单元,本申请实施例对固态硬盘包含的物理块的数量不做限定。
结合上述分析,固态硬盘是由多个LUN构成,每个LUN都会包括多个物理块,本申请实施例对固态硬盘包含的多个物理块的分组,即确定各物理块与各LUN的对应关系的方法不作限定。
可选的,本申请实施例可以为每个LUN包含的多个物理块设置标识,来表示各物理块的存储位置,具体可以是表1所示的编号,如Block0、Block1、Block2、……、Blockn,也就是说,一个LUN中的多个物理块可以按照其编号依次存放。需要说明的是,本申请对各LUN中不同物理块的标识不作限定,可以是数字编号,也可以是字母或数字与字母组合等方式构成的唯一标识,用来区分同一LUN中的不同物理块,即表示各物理块的存储位置。
而对于不同LUN中物理块的存储位置可以采用相同的标识进行区分,也就是说,不同LUN之间的物理块存在相同的标识,如每个LUN中的物理块都可以采用上述数字编号的方式进行区分,但并不局限与此。
由此可见,本申请步骤S201确定的各物理块的存储位置可以通过设置的标识确定,以实现同一个LUN包含的多个物理块的区分,该标识可以是数字编码、字母、或者数字与字母组合等。当然,对于不同物理块的存储位置也可以采用其他方式进行表示,并不局限于本申请实施例描述的设置标识的方式。
步骤S202,按照物理块的存储位置,对不同LUN包含的多个物理块进行分组,得到多个独立硬盘阵列RAID条带;
本申请实施例中,可以将不同LUN中同一存储位置上的物理块组织成一个RAID条带,即一个虚拟块,具体可以是将具有同一标识的物理块组织成一个RAID条带。
例如,固态硬盘中共有32个LUN,其中LUN0~LUN15这16个LUN中的物理块的分组,可以是这16个LUN中的所有Block0组成一个RAID条带,所有Block1组成一个RAID条带、所有Block2组成一个RAID条带,以此类推,将相同位置上的物理块组织成虚拟块。同理,对于LUN16~LUN31这16个LUN包含的物理块的分组,也可以按照上述方式实现,本申请实施例在此不再详述。
可选的,在本申请实施例中,在对各LUN包含的多个物理块进行分组之前,可以预先设定RAID的组织形式,即确定每个虚拟块包含的物理块的数量,如采用15+1(即15个数据块+1个校验块)的组织形式,此时需要16个LUN中相同位置的物理块组成一个RAID条带;若采用31+1(即31个数据块+1个校验块)的组织形式,则需要32个LUN中相同位置的物理块组织成一个RAID条带,本申请对生成虚拟块过程中,对多个LUN的分组规则不作限定。
步骤S203,确定得到的各RAID条带中的校验块,以使各RAID条带中的校验块位于固态硬盘不同的数据传输通道和不同LUN中。
在本申请实施例中,对于构成RAID条带中的物理块,其中一个用来存放奇偶校验位Parity,其他用来存放数据,本申请实施例可以将用来存放数据的物理块称为数据块,而用来存放Parity的物理块称为校验块。在实际应用中,用户读取的数据存放在数据块中,因此,对固态硬盘的读写操作仅是针对该数据块的读写操作。
其中,奇偶校验位Parity是在数据存储和传输中,字节中额外增加的一个比特位,用来检验操作,其往往是从两个或更多的原始数据中产生的一个冗余数据,该冗余数据可以从一个原始数据中进行重建,但是,奇偶校验数据并不是对原始数据的完全复制,在实际应用中,往往被用在RAID的2、3、4、5级别中。
基于此,在本申请实施例中,可以对任意一个RAID条带中的各个数据块进行异或计算,得到该RAID条带的校验块,也就是说,每一个RAID条带中的校验块是由该虚拟块中的其他数据块异或运算而成。此处的异或运算即为数学领域的异或运算,即异或的两个数据相同为假,不同为真。
所以,本申请实施例可以在校验块中存放为了防止用户数据丢失而存储的内容,而不是用户数据,这样,若该RAID条带中的某个数据块出现了错误,可以根据其他数据块以及该校验块,来恢复出错的数据块的内容。可见,在固态硬盘的正常读流程中,通常是对数据块进行读取操作,并不会读取相应的校验块,只有在某个数据块读出错的情况下,才会从相应的校验块中读取数据,来恢复该数据块读错误的数据。
基于上述分析,本申请实施例可以在得到的不同RAID条带中,将其包含的校验块设置在不同的channel和LUN中,从而使各个channel和LUN的读负载趋于一致。
举例说明,结合上图1所示的固态硬盘的结构,在实际应用中,固态硬盘的读取操作通常是经过channel、target(其包括多个LUN),将读取指令发送至具体的LUN上,由于读取操作通常不会落在各虚拟块中的校验块上,若所有的校验块都设置在同一个LUN上,那么,该LUN一般情况下将不会有读取操作,同样若所有的校验块全部落在同一个数据传输通道channel上,明显,这个channel负载较轻,而其他channel负载就会较重,导致固态硬盘的各channel读负载不均衡,将会影响固态硬盘的性能。
针对上述问题,本申请实施例在确定各虚拟块中的校验块时,可以将各虚拟块中的校验块设置在不同channel和不同LUN,从而避免出现上述一个channel和一个LUN上设置过多校验块,而影响固态硬盘的读性能。
参照图3,为本申请实施例提供的另一种存储空间处理方法的流程图,该方法可以包括:
步骤S301,确定固态硬盘的每个逻辑单元号LUN包括的多个物理块,以及所述多个物理块在对应的LUN中的编号;
步骤S302,获得独立硬盘阵列RAID条带的预设格式要求;
其中,该预设格式要求可以包括对独立硬盘阵列RAID条带的大小的要求,即每个独立硬盘阵列RAID条带包含的物理块的数量,还可以包括多个物理块的排布要求等等,本申请对该预设格式要求的内容不作限定。
步骤S303,按照该预设格式要求,将固态硬盘中不同LUN中具有相同编号的物理块构成一个RAID条带;
步骤S304,利用同一RAID条带种的多个数据块,计算得到该RAID条带的奇偶校验信息;
本申请实施例中,RAID条带的奇偶校验信息可以包括parity,其是通过对应RAID条带中的多个数据块中用户数据的异或运算得到的,本申请对该计算过程不做详述。
步骤S305,在固态硬盘的的多个channel和多个LUN上,间隔设置包含对应奇偶校验信息的多个RAID条带的校验块。
在实际应用中,得到奇偶校验信息后,可以将其单独存放在一个物理块,即为校验块,当某一个数据块读写操作出错时,可以利用校验块中的校验信息以及其他数据块中存储的用户数据,使得出错的数据库中的损坏数据得到恢复,从而保障了用户数据的安全性。
举例说明,假设固态硬盘包括8个channel,记为channel0~channel7,每一个channel挂载了2个target,即记为target0~target15,且每一个target又包括了2个LUN,记为LUN0~LUN31,每一个LUN可以包括3600个物理块Block,记为Block0~Block3599。
可见,该固态硬盘共包括32个LUN,若本申请实施例采用16个Block构成一个虚拟Block即RAID条带,则可以得到2*3600个RAID条带,即2*3600个Virtual Block,可以记为Virtual Block0~Virtual Block7199。若Virtual Block0(其包括16个物理块)的奇偶校验位parity位于LUN0,则Virtual Block1的奇偶校验位parity并不会设置在LUN0上,可以位于LUN1上,或者其他非LUN0的LUN上,进而Virtual Block2的奇偶校验位parity不会设置在LUN0和LUN1上,可以设置在另一个channel的LUN上,如设置LUN16上,如此类推,从而使各RAID条带中的校验块parity block分散开,避免了位于同一个LUN或同一个channel上,而降低固态硬盘的读性能。
综上所述,本申请实施例利用预设的RAID条带的格式要求,将固态硬盘的多个物理块构成多个RAID条带,为数据提供了RAID保护,并提高了读写并度,提升了读写性能。而且,本申请在确定各RAID条带的校验块时,是将各校验块间隔分配到不同的channel和不同LUN上,保证了固态硬盘的各channel和各LUN的读负载均衡,进而保证了固态硬盘的读写性能。
参照图4,为本申请实施例提供的一种存储空间处理装置的结构图,该装置可以包括:
第一确定模块41,用于确定固态硬盘的每个逻辑单元号LUN包括的多个物理块,以及所述多个物理块在对应的LUN中的存储位置;
分组模块42,用于利用所述多个物理块在对应的LUN中的存储位置,对不同LUN包括的多个物理块进行分组,得到多个独立硬盘阵列RAID条带;
可选的,分组模块42具体可以用于利用不同LUN中位于同一存储位置的物理块,生成对应的多个独立硬盘阵列RAID条带。
作为本申请另一实施例,若第一确定模块41包括:
位置确定单元,用于针对同一个LUN包括的多个物理块,配置唯一对应的标识,所述标识表征物理块在LUN中的存储位置;
则分组模块42具体可以用于将不同LUN中具有同一标识的物理块组织成对应的独立硬盘阵列RAID条带。
可见,本申请对多个物理块的分组方式不作限定,具体实现方法可以参照上述方法实施例相应部分的描述,本实施例在此不再详述。
第二确定模块43,用于确定得到的各RAID条带中的校验块,并使各RAID条带中的校验块位于所述固态硬盘不同的通道channel和不同LUN中。
可选的,如图5所示,该第二确定模块43可以包括:
计算单元431,用于利用同一RAID条带中的多个数据块,计算得到所述RAID条带的校验块,所述多个数据块和所述校验块构成所述RAID条带的物理块;
设置单元432,用于在所述固态硬盘的多个channel和多个LUN上,间隔设置多个RAID条带的校验块。
作为本申请又一实施例,在上述各实施例的基础上,如图6所示,该装置还可以包括:
获得模块44,用于获得RAID条带的预设格式要求,所述预设格式要求表明所述RAID条带包含的数据块的数量;
相应地,分组模块42具体可以用于利用所述多个物理块在对应的LUN中的存储位置,按照所述预设格式要求,对不同LUN包括的多个物理块进行分组,得到多个独立硬盘阵列RAID条带。
综上,在本申请实施中,确定固态硬盘的每个LUN包含的多个物理块及其存储位置后,将利用各LUN中物理块的存储位置,对不同LUN包括的多个物理块进行分组,从而得到对应的多个RAID条带,之后,在确定各RAID条带中的校验块时,本申请将控制各RAID条带中的校验块位于所述固态硬盘不同的通道channel和不同LUN中,从而避免了出现一个channel和一个LUN上设置过多校验块,而影响固态硬盘的读写性能。可见,本申请通过灵活设置各RAID条带中的校验块,保证了固态硬盘的读写性能。
如图7所示,为本申请实施例提供的一种存储空间处理设备的硬件结构图,该设备可以是固态硬盘或者其他存储设备,本申请对该存储空间处理设备的产品类型不做限定,在本申请实施例中,该设备可以包括:
通信接口71;
存储器72,用于存储实现上述存储空间处理方法的程序。
在本申请实施例中,上述第一确定模块、分组模块、第二确定模块以及获得模块等可以作为程序模块存储在存储器中,并由处理器执行存储在该存储器中的上述程序模块实现相应的功能。
处理器73,用于加载并执行所述存储器存储的程序,包括:
确定固态硬盘的每个逻辑单元号LUN包括的多个物理块,以及所述多个物理块在对应的LUN中的存储位置;
利用所述多个物理块在对应的LUN中的存储位置,对不同LUN包括的多个物理块进行分组,得到多个独立硬盘阵列RAID条带;
确定得到的各RAID条带中的校验块,并使各RAID条带中的校验块位于所述固态硬盘不同的通道channel和不同LUN中。
可选的,处理器73可以是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
综上,本申请实施例在对生成的RAID条带即虚拟块的校验块时,通过控制各校验块分散设置在固态磁盘的不同channel和不同LUN上,保证了各channel和LUN上的读负载均衡,保证了固态硬盘的读取性能。
最后,需要说明的是,关于上述各实施例中,诸如第一、第二等之类的关系术语仅仅用来将一个操作、单元或模块与另一个操作、单元或模块区分开来,而不一定要求或者暗示这些单元、操作或模块之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者系统中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置和设备而言,由于其与实施例公开的方法对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种存储空间处理方法,其特征在于,所述方法包括:
确定固态硬盘的每个逻辑单元号LUN包括的多个物理块,以及所述多个物理块在对应的LUN中的存储位置;
利用所述多个物理块在对应的LUN中的存储位置,对不同LUN包括的多个物理块进行分组,得到多个独立硬盘阵列RAID条带;
确定得到的各RAID条带中的校验块,以使各RAID条带中的校验块位于所述固态硬盘不同的通道channel和不同LUN中。
2.根据权利要求1所述的方法,其特征在于,所述确定得到的各RAID条带中的校验块,以使各RAID条带中的校验块位于所述固态硬盘不同的通道channel和不同LUN中,包括:
利用同一RAID条带中的多个数据块,计算得到所述RAID条带的校验块,所述多个数据块和所述校验块构成所述RAID条带的物理块;
在所述固态硬盘的多个channel和多个LUN上,间隔设置多个RAID条带的校验块。
3.根据权利要求1所述的方法,其特征在于,利用所述多个物理块在对应的LUN中的存储位置,对不同LUN包括的多个物理块进行分组,得到多个独立硬盘阵列RAID条带,包括:
利用不同LUN中位于同一存储位置的物理块,生成对应的多个独立硬盘阵列RAID条带。
4.根据权利要求3所述的方法,其特征在于,确定所述多个物理块在对应的LUN中的存储位置,包括:
针对同一个LUN包括的多个物理块,配置唯一对应的标识,所述标识表征物理块在LUN中的存储位置;
所述利用不同LUN中位于同一存储位置的物理块,生成对应的多个独立硬盘阵列RAID条带,包括:
将不同LUN中具有同一标识的物理块组织成对应的独立硬盘阵列RAID条带。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获得RAID条带的预设格式要求,所述预设格式要求表明所述RAID条带包含的数据块的数量;
所述利用所述多个物理块在对应的LUN中的存储位置,对不同LUN包括的多个物理块进行分组,得到多个独立硬盘阵列RAID条带,包括:
利用所述多个物理块在对应的LUN中的存储位置,按照所述预设格式要求,对不同LUN包括的多个物理块进行分组,得到多个独立硬盘阵列RAID条带。
6.一种存储空间处理装置,其特征在于,所述装置包括:
第一确定模块,用于确定固态硬盘的每个逻辑单元号LUN包括的多个物理块,以及所述多个物理块在对应的LUN中的存储位置;
分组模块,用于利用所述多个物理块在对应的LUN中的存储位置,对不同LUN包括的多个物理块进行分组,得到多个独立硬盘阵列RAID条带;
第二确定模块,用于确定得到的各RAID条带中的校验块,并使各RAID条带中的校验块位于所述固态硬盘不同的通道channel和不同LUN中。
7.根据权利要求6所述的装置,其特征在于,所述第二确定模块包括:
计算单元,用于利用同一RAID条带中的多个数据块,计算得到所述RAID条带的校验块,所述多个数据块和所述校验块构成所述RAID条带的物理块;
设置单元,用于在所述固态硬盘的多个channel和多个LUN上,间隔设置多个RAID条带的校验块。
8.根据权利要求6所述的装置,其特征在于,所述分组模块具体用于利用不同LUN中位于同一存储位置的物理块,生成对应的多个独立硬盘阵列RAID条带。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
获得模块,用于获得RAID条带的预设格式要求,所述预设格式要求表明所述RAID条带包含的数据块的数量;
所述分组模块具体用于利用所述多个物理块在对应的LUN中的存储位置,按照所述预设格式要求,对不同LUN包括的多个物理块进行分组,得到多个独立硬盘阵列RAID条带。
10.一种存储空间处理设备,其特征在于,所述设备包括:
通信接口;
存储器,用于存储实现如权利要求1-5任意一项所述的存储空间处理方法的程序;
处理器,用于加载并执行所述存储器存储的程序,包括:
确定固态硬盘的每个逻辑单元号LUN包括的多个物理块,以及所述多个物理块在对应的LUN中的存储位置;
利用所述多个物理块在对应的LUN中的存储位置,对不同LUN包括的多个物理块进行分组,得到多个独立硬盘阵列RAID条带;
确定得到的各RAID条带中的校验块,并使各RAID条带中的校验块位于所述固态硬盘不同的通道channel和不同LUN中。
CN201710642619.6A 2017-07-31 2017-07-31 一种存储空间处理方法、装置和设备 Active CN107450852B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710642619.6A CN107450852B (zh) 2017-07-31 2017-07-31 一种存储空间处理方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710642619.6A CN107450852B (zh) 2017-07-31 2017-07-31 一种存储空间处理方法、装置和设备

Publications (2)

Publication Number Publication Date
CN107450852A true CN107450852A (zh) 2017-12-08
CN107450852B CN107450852B (zh) 2020-03-31

Family

ID=60489946

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710642619.6A Active CN107450852B (zh) 2017-07-31 2017-07-31 一种存储空间处理方法、装置和设备

Country Status (1)

Country Link
CN (1) CN107450852B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108519926A (zh) * 2018-03-31 2018-09-11 北京联想核芯科技有限公司 一种自适应的raid分组计算方法和装置
CN108984133A (zh) * 2018-08-27 2018-12-11 杭州阿姆科技有限公司 一种ssd中raid的实现方法
CN109358809A (zh) * 2018-09-28 2019-02-19 方信息科技(上海)有限公司 一种raid数据存储系统及方法
CN110096219A (zh) * 2018-01-31 2019-08-06 伊姆西Ip控股有限责任公司 从驱动器组生成的驱动器区段池的有效容量
CN111124296A (zh) * 2019-12-12 2020-05-08 北京浪潮数据技术有限公司 一种向固态硬盘写数据的方法、装置、设备及存储介质
CN111984184A (zh) * 2019-05-23 2020-11-24 浙江宇视科技有限公司 固态硬盘的数据管理方法、装置、存储介质及电子设备
CN114047886A (zh) * 2022-01-13 2022-02-15 苏州浪潮智能科技有限公司 一种nvme命令处理方法、系统、电子设备及存储介质
CN116048427A (zh) * 2023-03-31 2023-05-02 北京忆恒创源科技股份有限公司 一种管理ssd闪存资源的方法及存储设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101611376A (zh) * 2006-12-19 2009-12-23 英特尔公司 具有模式匹配的高性能raid-6系统体系结构
US20110213927A1 (en) * 2007-03-26 2011-09-01 Archion, Inc. Configurable and scalable storage system
CN102667738A (zh) * 2009-10-09 2012-09-12 提琴存储器公司 具有多个raid组分条的内存系统及其方法
CN103019622A (zh) * 2012-12-04 2013-04-03 华为技术有限公司 一种数据的存储控制方法、控制器、物理硬盘,及系统
US20130290608A1 (en) * 2012-04-30 2013-10-31 Dell Products, Lp System and Method to Keep Parity Consistent in an Array of Solid State Drives when Data Blocks are De-Allocated
CN104123100A (zh) * 2013-04-25 2014-10-29 国际商业机器公司 控制存储设备阵列中的数据存储
US20150193338A1 (en) * 2014-01-08 2015-07-09 Netapp, Inc. Flash optimized, log-structured layer of a file system
CN106919340A (zh) * 2015-12-28 2017-07-04 南宁富桂精密工业有限公司 提高raid读取性能的系统及方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101611376A (zh) * 2006-12-19 2009-12-23 英特尔公司 具有模式匹配的高性能raid-6系统体系结构
US20110213927A1 (en) * 2007-03-26 2011-09-01 Archion, Inc. Configurable and scalable storage system
CN102667738A (zh) * 2009-10-09 2012-09-12 提琴存储器公司 具有多个raid组分条的内存系统及其方法
US20130290608A1 (en) * 2012-04-30 2013-10-31 Dell Products, Lp System and Method to Keep Parity Consistent in an Array of Solid State Drives when Data Blocks are De-Allocated
CN103019622A (zh) * 2012-12-04 2013-04-03 华为技术有限公司 一种数据的存储控制方法、控制器、物理硬盘,及系统
CN104123100A (zh) * 2013-04-25 2014-10-29 国际商业机器公司 控制存储设备阵列中的数据存储
US20150193338A1 (en) * 2014-01-08 2015-07-09 Netapp, Inc. Flash optimized, log-structured layer of a file system
CN106919340A (zh) * 2015-12-28 2017-07-04 南宁富桂精密工业有限公司 提高raid读取性能的系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
AO MA等: ""RAIDShield: Characterizing, Monitoring, and Proactively Protecting Against Disk Failures"", 《 ACM TRANSACTIONS ON STORAGE (TOS) - SPECIAL ISSUE USENIX FAST 2015 TOS HOMEPAGE ARCHIVE》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096219A (zh) * 2018-01-31 2019-08-06 伊姆西Ip控股有限责任公司 从驱动器组生成的驱动器区段池的有效容量
CN110096219B (zh) * 2018-01-31 2022-08-02 伊姆西Ip控股有限责任公司 从驱动器组生成的驱动器区段池的有效容量
CN108519926A (zh) * 2018-03-31 2018-09-11 北京联想核芯科技有限公司 一种自适应的raid分组计算方法和装置
CN108519926B (zh) * 2018-03-31 2020-12-29 深圳忆联信息系统有限公司 一种自适应的raid分组计算方法和装置
CN108984133B (zh) * 2018-08-27 2022-01-28 杭州阿姆科技有限公司 一种ssd中raid的实现方法
CN108984133A (zh) * 2018-08-27 2018-12-11 杭州阿姆科技有限公司 一种ssd中raid的实现方法
CN109358809A (zh) * 2018-09-28 2019-02-19 方信息科技(上海)有限公司 一种raid数据存储系统及方法
CN109358809B (zh) * 2018-09-28 2020-07-24 方一信息科技(上海)有限公司 一种raid数据存储系统及方法
CN111984184A (zh) * 2019-05-23 2020-11-24 浙江宇视科技有限公司 固态硬盘的数据管理方法、装置、存储介质及电子设备
CN111984184B (zh) * 2019-05-23 2022-05-17 浙江宇视科技有限公司 固态硬盘的数据管理方法、装置、存储介质及电子设备
CN111124296A (zh) * 2019-12-12 2020-05-08 北京浪潮数据技术有限公司 一种向固态硬盘写数据的方法、装置、设备及存储介质
CN111124296B (zh) * 2019-12-12 2023-03-14 北京浪潮数据技术有限公司 一种向固态硬盘写数据的方法、装置、设备及存储介质
CN114047886A (zh) * 2022-01-13 2022-02-15 苏州浪潮智能科技有限公司 一种nvme命令处理方法、系统、电子设备及存储介质
CN116048427A (zh) * 2023-03-31 2023-05-02 北京忆恒创源科技股份有限公司 一种管理ssd闪存资源的方法及存储设备

Also Published As

Publication number Publication date
CN107450852B (zh) 2020-03-31

Similar Documents

Publication Publication Date Title
CN107450852A (zh) 一种存储空间处理方法、装置和设备
CN106933490A (zh) 控制对磁盘阵列进行读写操作的方法和装置
CN104246708B (zh) 针对nand闪存上数据的存储的架构
US9513814B1 (en) Balancing I/O load on data storage systems
US6393516B2 (en) System and method for storage media group parity protection
CN101587425B (zh) 一种增加独立磁盘冗余阵列冗余性的方法及装置
CN101504623B (zh) 独立磁盘冗余阵列构建方法及装置
CN107807794A (zh) 一种数据存储方法和装置
CN102165407B (zh) 与独立磁盘冗余阵列相关的操作
CN101620518B (zh) 一种磁盘冗余阵列raid的创建方法及装置
CN104765693A (zh) 一种用于存储数据的方法、装置和系统
CN102981927A (zh) 分布式独立冗余磁盘阵列存储方法及分布式集群存储系统
CN108632029A (zh) 密钥值固态驱动器
CN101546249A (zh) 磁盘阵列在线容量扩展方法
CN102024059A (zh) 一种文件系统内实现独立磁盘冗余阵列保护的方法及装置
CN103593260B (zh) 一种元数据的保护方法和装置
US20090172244A1 (en) Hierarchical secondary raid stripe mapping
CN104461926A (zh) 一种基于二维raid的固态硬盘数据保护方法
CN110413454A (zh) 基于存储阵列的数据重建方法、装置及存储介质
CN104461373B (zh) 一种raid数据处理方法及装置
US9158708B2 (en) Multi-level data protection for nonvolatile memory system
CN115543223A (zh) 灵活构成磁盘阵列卡的方法、介质、设备及磁盘阵列卡
CN107678690A (zh) 一种固态硬盘及其冗余独立磁盘阵列的实现方法
TWI607303B (zh) 具有虛擬區塊及磁碟陣列架構之資料儲存系統及其管理方法
US7971092B2 (en) Methods and devices for high performance consistency check

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