CN101504594B - 一种数据存储方法和装置 - Google Patents
一种数据存储方法和装置 Download PDFInfo
- Publication number
- CN101504594B CN101504594B CN200910079881XA CN200910079881A CN101504594B CN 101504594 B CN101504594 B CN 101504594B CN 200910079881X A CN200910079881X A CN 200910079881XA CN 200910079881 A CN200910079881 A CN 200910079881A CN 101504594 B CN101504594 B CN 101504594B
- Authority
- CN
- China
- Prior art keywords
- disk array
- write request
- data
- address information
- lun
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000013500 data storage Methods 0.000 title claims abstract description 21
- 238000003491 array Methods 0.000 claims abstract description 23
- 238000013507 mapping Methods 0.000 claims description 41
- 230000010354 integration Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 10
- 230000005012 migration Effects 0.000 claims description 9
- 238000013508 migration Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 8
- 238000012986 modification Methods 0.000 claims description 2
- 230000004048 modification Effects 0.000 claims description 2
- 238000012546 transfer Methods 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据存储方法和装置,其中,该方法包括:接收目的物理存储地址对应一磁盘阵列的写请求;根据所述磁盘阵列的状态以及***中其他磁盘阵列的状态,为所述写请求分配磁盘阵列;将所述写请求对应的写入数据存储到所述分配的磁盘阵列中。采用本发明,利用处于空闲状态的磁盘阵列对处于繁忙状态的磁盘阵列进行负载分担,缓解了处于繁忙状态的磁盘阵列的存储压力,提高了磁盘阵列的存储性能。
Description
技术领域
本发明涉及存储技术领域,特别涉及一种数据存储方法和装置。
背景技术
目前,尽管CPU的处理速度和磁盘的存储密度有了大幅度的增长,但是,磁盘的存取时间却改善甚微,据统计,磁盘的存取时间每10年仅减少了1/3,目前仍停留在毫秒级,与CPU的处理速度相差4至6个数量级。由于存储***的整体性能取决于***中性能最差的关键部件,因此,磁盘的存取就成为影响整个存储***性能的瓶颈。
随着网络技术的发展和计算机的普及应用,磁盘阵列,又称独立磁盘冗余阵列技术由于能减少磁盘存取时间而得到了广泛应用。该技术能够实现并行对多个磁盘进行读写操作。具体是:将普通磁盘组成磁盘阵列,如此,存储***中会存在多个磁盘阵列,针对每一个磁盘阵列,比如RAID_0,在主机发送写请求时,其中,该写请求中携带了要写入的数据,RAID控制器把写请求中携带的要写入的数据分解为多个数据块,然后直接并行存储到RAID_0中;当主机发送读请求时,其中,该读请求中携带了要读出的数据的地址信息,RAID控制器根据该地址信息并行读取分散在RAID_0中各个磁盘上的数据,把读取的数据重新组合,之后发送组合后的数据给主机。
可见,上述方案中由于采用并行读写操作,所以可提高磁盘的存储时间。但是,由于每一个磁盘阵列要处理的读写请求是有限的,当该磁盘阵列当前对应的读写请求的个数超过其应承受的能力时,就会减缓该磁盘阵列的存储操作,导致该磁盘阵列的存储时间大大增加,也影响了存储***的整体性能。
发明内容
本发明公开了一种数据存储方法和装置,以便于降低磁盘阵列的存储时间提高了存储***的整体性能。
一种数据存储方法,包括:
接收目的物理存储地址对应一磁盘阵列的写请求;
根据所述磁盘阵列的状态以及存储***中其他磁盘阵列的状态,为所述写请求分配磁盘阵列;其中,所述根据磁盘阵列的状态以及存储***中其他磁盘阵列的状态,为写请求分配磁盘阵列包括:判断所述目的物理存储地址对应的磁盘阵列的状态是否为繁忙,如果是,判断存储***中是否存在处于空闲状态的磁盘阵列,如果是,针对判断出的每一个处于空闲状态的磁盘阵列,确定该磁盘阵列的可用物理空间,获取所述写请求对应的数据大小范围,其中,该数据大小范围为写请求对应的写入数据的数据大小范围;根据获取的数据大小范围和确定出的处于空闲状态的磁盘阵列的可用物理空间,分配写请求给处于空闲状态的磁盘阵列;将所述写请求对应的写入数据存储到所述分配的磁盘阵列中;
其中,若所述写请求的个数为1,则根据获取的数据大小范围和确定出的处于空闲状态的磁盘阵列的可用物理空间,分配写请求给处于空闲状态的磁盘阵列包括:将所述写请求分配给处于空闲状态的磁盘阵列中可用物理空间容纳该写请求对应的数据大小范围的一个磁盘阵列;
若所述写请求的个数大于1,则根据获取的数据大小范围和确定出的处于空闲状态的磁盘阵列的可用物理空间,分配写请求给处于空闲状态的磁盘阵列包括:根据写请求对应的数据大小范围确定用于划分写请求的门限;将对应的数据大小范围大于等于所述门限的各个写请求分配给处于空闲状态的磁盘阵列中可用物理空间容纳写请求对应的数据大小范围的各个磁盘阵列。
一种数据存储装置,包括:接收单元、分配单元和存储单元;其中,
所述接收单元用于接收目的物理存储地址对应一磁盘阵列的写请求;
所述分配单元用于根据所述磁盘阵列的状态以及存储***中其他磁盘阵列的状态,为所述接收单元接收的写请求分配磁盘阵列;
附图说明
其中,所述分配单元包括:第一判断子单元,第二判断子单元和分配子单元;
所述第一判断子单元用于判断所述目的物理存储地址对应的磁盘阵列的状态是否为繁忙;
所述第二判断子单元,用于在接收到所述第一判断子单元的判断结果为是时,判断存储***中是否存在处于空闲状态的磁盘阵列;
所述确定单元,连接在所述第二判断子单元和所述分配子单元之间,用于接收到所述第二判断子单元的判断结果为是时,针对判断出的每一个处于空闲状态的磁盘阵列,确定该磁盘阵列的可用物理空间;
所述分配子单元,用于在接收到所述第二判断子单元的判断结果为是时,为所述写请求分配处于空闲状态的磁盘阵列用于获取所述写请求对应的数据大小范围,其中,该数据大小范围为写请求对应的写入数据的数据大小范围;根据获取的数据大小范围和确定出的处于空闲状态的磁盘阵列的可用物理空间,分配写请求给处于空闲状态的磁盘阵列;其中,所述分配子单元根据获取的数据大小范围和确定出的处于空闲状态的磁盘阵列的可用物理空间,分配写请求给处于空闲状态的磁盘阵列包括:在所述写请求的个数为1时,将所述写请求分配给处于空闲状态的磁盘阵列中可用物理空间容纳该写请求对应的数据大小范围的一个磁盘阵列;在所述写请求的个数大于1时,根据写请求对应的数据大小范围确定用于划分写请求的门限;将对应的数据大小范围大于等于所述门限的各个写请求分配给处于空闲状态的磁盘阵列中可用物理空间容纳写请求对应的数据大小范围的各个磁盘阵列;
所述存储单元用于将所述写请求对应的写入数据存储到所述分配单元分配的磁盘阵列中。
具体实施方式
由上可见,本发明提供的一种数据存储方法和装置,并非现有技术中接收到写请求后,直接将该写请求携带的数据块存储到磁盘阵列上;而是当接收到 目的物理存储地址对应其内部一磁盘阵列的写请求时,根据该磁盘阵列的状态以及***中其他磁盘阵列的状态,为所述写请求分配磁盘阵列;比如,若目的物理存储地址对应的磁盘阵列处于繁忙状态,当存储***中存在处于空闲状态的其他磁盘阵列时,将该处于繁忙状态的磁盘阵列要处理的一部分写请求分配给处于空闲状态的磁盘阵列处理,即利用处于空闲状态的磁盘阵列对处于繁忙状态的磁盘阵列进行负载分担;之后,将所述写请求对应的写入数据存储到所述分配的磁盘阵列中,这能大大降低了磁盘阵列存储的时间,不会出现现有技术中磁盘阵列当前对应的读写请求的个数超过其所能承受的能力所带来的诸多问题,提高了存储***的整体性能。
图1为本发明实施例提供的数据存储的基本流程图;
图2为本发明实施例提供的数据存储的详细流程图;
图3a为本发明实施例提供的LUN1资源与RAID_1映射关系示意图;
图3b为本发明实施例提供的LUN1分别与RAID_2和RAID_3的映射关系示意图;
图4为本发明实施例提供的读请求处理流程图;
图5为本发明实施例提供的数据存储装置结构图。
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
参见图1,图1为本发明实施例提供的数据存储的基本流程图,如图1所示,该流程可包括以下步骤:
步骤101,接收目的物理存储地址对应一磁盘阵列的写请求。
通常,写请求一般携带了逻辑单元号(LUN:logical unit number)资源地址信息,其中,LUN资源,也可称为SAN资源,其为逻辑资源。为了便 于进行后续的数据读写操作,会预先按照一定的映射规则将LUN资源映射到存储***中的磁盘阵列中,即预先建立了LUN资源与存储***中的磁盘阵列的映射关系。本发明实施例中的目的物理存储地址为写请求携带的LUN资源地址信息映射到存储***中磁盘阵列上的物理地址。
步骤102,根据磁盘阵列的状态以及***中其他磁盘阵列的状态,为写请求分配磁盘阵列。
这里,磁盘阵列的状态具体包括繁忙或者空闲。其中,判断磁盘阵列的状态是否为繁忙的方式有多种,比如,判断磁盘阵列在预设时间范围内I/O请求的个数是否大于预设值,如果是,确定该磁盘阵列当前繁忙;否则,确定磁盘阵列当前不繁忙;或者判断磁盘阵列在预设时间范围内I/O平均响应时间是否大于预设阈值Tm,如果是,确定该磁盘阵列当前繁忙;否则,确定磁盘阵列当前不繁忙。
判断磁盘阵列是否处于空闲状态的方式通常与上述判断磁盘阵列的状态是否繁忙的方式对应。比如,若上述判断磁盘阵列的状态是否繁忙的方式为判断磁盘阵列在预设时间范围内I/O平均响应时间是否大于预设阈值,则针对存储***中除上述处于繁忙状态的磁盘阵列之外的每一个磁盘阵列,判断其在预设时间范围内I/O平均响应时间是否小于预设阈值Tn,如果是,确定该磁盘阵列空闲。
步骤102中根据所述磁盘阵列的状态以及***中其他磁盘阵列的状态,为所述写请求分配磁盘阵列具体可指在目的物理存储地址对应的磁盘阵列繁忙,并且***中存在处于空闲状态的磁盘阵列的情况下,为写请求分配磁盘阵列。
步骤103,将写请求对应的写入数据存储到上述分配的磁盘阵列中。结束流程。
如此,实现了本发明实施例提供的数据存储操作。
需要说明的是,执行步骤101至步骤103操作的实体可以为存储***, 具体可以为存储控制器或其他能够实现控制数据存储的其他装置,本发明实施例并不具体限定。
为使本发明实施例更加清楚,下面结合具体实施例对上述方法进行详述。
参见图2,图2为本发明实施例提供的数据存储的详细流程图。如图2所示,该流程包括以下步骤:
步骤201,接收目的物理存储地址对应一磁盘阵列的写请求。
通常,写请求携带了LUN资源地址信息,其中,该LUN资源地址信息预先已与存储***中的磁盘阵列具有映射关系,本发明实施例中的目的物理存储地址为该LUN资源地址信息预先映射到磁盘阵列的物理地址。
为便于描述,将目的物理存储地址对应的磁盘阵列简称为RAID_1。
步骤202,判断RAID_1当前是否处于繁忙状态,如果是,则执行步骤203,否则,按照现有技术流程处理。
优选地,本步骤中判断该RAID_1当前是否处于繁忙状态可为:判断RAID_1在预设时间范围内I/O平均响应时间是否大于预设阈值Tm,如果是,确定该RAID_1当前繁忙;否则,确定RAID_1当前不繁忙。
通常,存储***会对自身内部的磁盘阵列进行轮询操作,如此,步骤202中,当在步骤201接收到对应RAID_1的写请求时,可通过轮询的方式轮询到RAID_1,之后,执行判断RAID_1当前是否处于繁忙状态的操作。步骤203,判断存储***中当前是否存在处于空闲状态的RAID,如果是,执行步骤204,否则,直接将写请求对应的数据存储到RAID_1中。
这里,判断存储***中当前是否存在处于空闲状态的RAID的方式可与步骤202中判断RAID_1当前是否处于繁忙状态的方式相对应。比如,若步骤202中判断RAID_1当前是否处于繁忙状态的方式为判断RAID_1在预设时间范围内I/O平均响应时间是否大于预设阈值,则步骤203可为:针对存储***中除RAID_1外的每一个RAID,判断该RAID在预设时间范围内I/O 平均响应时间是否小于预设阈值Tn,如果是,确定该RAID阵列空闲。这里,为便于描述,假如当前处于空闲状态的RAID为RAID_2和RAID_3。
需要说明的是,Tn与Tm有关,具体地,Td=Tm-Tn,其中,Td可据经验或者实际情况而设置,目的是为了保证后续RAID_2和RAID_3分担RAID_1要处理的部分写请求后,该RAID_2和RAID_3依然不会处于繁忙状态。
步骤204,针对确定出的每一个空闲阵列,确定该空闲RAID上的可用物理空间。
通常,在执行读写处理操作之前,会预先设置好各个磁盘阵列与LUN资源的映射关系,以便保证后续根据读或写请求中携带的LUN资源地址信息从对应的磁盘阵列中读取或写入数据。比如,如图3a所示,针对RAID_1,其对应的LUN资源为LUN1,该LUN1的大小为500GB,映射到RAID_1上的物理区间为100Gb~600GB,其中,LUN资源中100GB处的0KB~512KB(简称为:LUN-a)映射到RAID_1中200GB处的0KB~512KB;LUN资源中200GB处的0KB~1024KB(简称为:LUN-b)映射到RAID_1中300GB处的0KB~1024KB;LUN资源中的350GB处的0KB~2048KB(简称为:LUN-c)映射到RAID_1中450GB处的0KB~2048KB。其中,100GB处的0KB、100GB处的512KB为LUN资源地址信息,200GB处的0KB、200GB处的512KB为LUN资源地址信息映射到RAID_1的物理地址信息,其他类似,这里不再赘述。
优选地,为便于后续存储***扩容时及时使用物理资源,通常会在存储***中的RAID上预留一些未分配的物理空间,其中,未分配的物理空间是RAID上未与LUN资源建立映射关系的空间。这里,步骤204确定的可用物理空间具体是指在空闲RAID上未与LUN资源建立映射关系的空间。
步骤205,根据RAID_1要处理的所有写请求中携带的LUN资源地址信息获取各个写请求对应的数据大小范围。
比如,RAID_1要处理的一个写请求中携带的LUN资源地址信息为100GB处的0KB~512KB,则可获取该写请求对应的数据大小范围为 0KB~512KB。这里,上述数据大小范围为写请求对应的写入数据的数据大小范围。其中,该写请求对应的写入数据可携带在该写请求中。
步骤206,根据步骤205获取的写请求对应的数据大小范围确定划分写请求的门限。
这里,假如RAID_1要处理的所有写请求分别为写请求1、写请求2和写请求3,其中,写请求1中携带的LUN资源地址信息为100GB处的0KB~512KB;写请求2中携带的LUN资源地址信息为200GB处的0KB~1024KB;写请求3中携带的LUN资源地址信息为350GB处的0KB~2048KB;则优选地,本实施例中将以步骤205获取的比较大的数据大小范围确定划分写请求的门限,这里,为便于描述,将1024KB确定为划分写请求的门限。
步骤207,将对应的数据大小范围大于等于上述门限的所有写请求确定为第一写请求。
这里,为便于描述,将对应的数据大小范围大于等于上述门限的所有写请求的集合简称为第一写请求,其中,第一写请求包含的写请求的个数可以为一个以上,比如,若步骤206中确定的门限为1024KB,则本步骤207确定出的第一写请求包含的写请求的个数为2,分别为写请求2和写请求3。
需要说明的是,步骤207还可进一步包括:将对应的数据大小范围小于门限的所有写请求确定为第二写请求;其中,该确定的第二写请求的个数为一个以上。
步骤208,根据第一写请求中各个写请求对应的数据大小范围和步骤204确定出的处于空闲状态的磁盘阵列的可用物理空间,分配第一写请求中的各个写请求给处于空闲状态的各个磁盘阵列。
优选地,本实施例可根据处于空闲状态的磁盘阵列中的可用物理空间能够容纳写请求对应的数据大小范围为原则分配写请求。这里,若步骤207中的第一写请求包含写请求2和写请求3,处于空闲状态的磁盘阵列分别为RAID_2和RAID_3;其中,若RAID_2的可用物理空间能够容纳写请求2 对应的数据大小范围,RAID_3的可用物理空间能够容纳写请求3对应的数据大小范围,则可将写请求2分配给RAID_2,将写请求3分配给RAID_3。
当然,本实施例也可直接按照顺序依次将写请求2分配给RAID_2,将写请求3分配给RAID_3等其他分配方式。步骤208的描述只是一种举例,并非限定本发明。
若步骤207确定出第二写请求,则步骤208进一步可包括:第二写请求中的写请求由处于繁忙状态的磁盘阵列即RAID_1处理,具体如何处理,可按现有技术流程进行操作,这里不再赘述。
需要说明的是,步骤206至步骤208对应的操作是针对RAID_1要处理的所有写请求的个数大于1时执行的。优选地,RAID_1要处理的写请求的个数仅有1个时可直接将该写请求分配给处于空闲状态的磁盘阵列中可用物理空间容纳该写请求对应的数据大小范围的一个磁盘阵列。比如,若RAID_1要处理的写请求仅为写请求1,其对应的数据大小范围为0~512KB,而处于空闲状态的磁盘阵列分别为RAID_2和RAID_3,其可用物理空间分别大于写请求1对应的数据大小范围,则可将该写请求1分配给RAID_2或者RAID_3都可。因此,步骤206至步骤208的描述只是一种具体实施方式,并非限定本发明。这里,为便于描述,假如将写请求2分配给RAID_2,将写请求3分配给RAID_3。
步骤209,将写请求携带的LUN资源地址信息再次映射到处于空闲状态的磁盘阵列中,确定出再次映射到处于空闲状态的磁盘阵列中的地址信息。
这里,由于分配给处于空闲状态的磁盘阵列的写请求原本需要由上述处于繁忙状态的磁盘阵列处理(这里的处理主要是指存储),因此,上述写请求中携带的LUN资源地址信息预先已与处于繁忙状态的磁盘阵列建立好了映射关系,并未与处于空闲状态的磁盘阵列建立映射关系。比如,上述的写请求1至写请求3原本都是RAID_1的,如此,写请求1至写请求3中携带的LUN资源地址信息预先已与RAID_1中的磁盘空间建立好了映射关系, 并未与RAID_2和RAID_3建立映射关系,具体如图3a所示,写请求2中携带的LUN资源地址信息(LUN-b)映射到RAID_1中的物理地址信息为300GB处的0KB~1024KB(其中,该地址信息为写请求2的目的物理存储地址),写请求3中携带的LUN资源地址空间信息(LUN-c)映射到RAID_1中的物理地址信息为450GB处的0KB~2048KB(其中,该地址信息为写请求3的目的物理存储地址)。
本步骤209中,需要为写请求携带的LUN资源地址信息建立新的映射关系,即将写请求携带的LUN资源地址信息再次映射到处于空闲状态的磁盘阵列中,如此,可具体确定该LUN资源地址信息再次映射到处于空闲状态的磁盘阵列的地址信息,其中,该映射原则与预先建立映射关系时对应的映射原则对应。比如,如图3b所示,将写请求2携带的LUN资源地址信息再次映射到RAID_2上,确定出该LUN资源地址信息再次映射到RAID_2中的地址信息为RAID_2中50GB处的0KB~1024KB;按照针对写请求2的操作,也可确定写请求3中携带的LUN资源地址信息再次映射到RAID_3的地址信息为RAID_3中150GB处的0KB~2048KB。
需要说明的是,上述写请求携带的LUN资源地址信息再次映射到处于空闲状态的磁盘阵列的地址信息可为步骤204确定出的该磁盘阵列的可用物理空间或者该可用物理空间的一部分。
步骤210,在预先建立的LUN空间转移位图中修改写入数据对应的标识位的值。
这里,每一个LUN资源都有对应的LUN空间转移位图,其中,LUN空间转移位图用于记录写入数据要写入的RAID是否发生变化的信息,位图中的每一位包含用于表示写入数据要写入的RAID发生了变化的第一标识值;和表示写入数据要写入的RAID未发生变化的第二标识值;其中,第一标识值和第二标识值可分别为1和0,其中,写入数据都是以块为单位进行操作的。比如,若写请求2中携带的LUN资源地址信息(LUN-b)再次映射到RAID_2,如此,该写请求所对应的写入数据需要写入到RAID_2中,而不 是写入到预先与LUN-b已建立好映射关系的RAID_1中,则表示写入数据要写入的磁盘阵列发生了变化,因此需要在LUN空间转移位图中修改LUN-b处的写入数据对应的标识位的值,如果原来初始值为0,则修改该值为1。
若数据块大小为16KB,LUN资源大小为500GB,则该LUN资源可供分配的对应的数据块的个数可为: 如此,对应的LUN资源的LUN空间转移位图中需要32768000位用于记录32768000个数据块要写入的RAID是否发生变化的信息;其中,每位的初始值为“0”,一旦对应的写入数据要写入的RAID发生变化,便将该位的值修改为“1”。
需要说明的是,LUN空间转移位图可保存在LUN配置信息中,该配置信息一般存储在LUN首部划分的固定空间中,其通常包括:LUN唯一编号、以及LUN容量大小等。
步骤211,添加LUN空间重映射表项。
这里,添加LUN空间重映射表项的操作是由于写入数据要写入的磁盘阵列发生变化而执行的。优选地,本实施例中可先建立LUN空间重映射表,其中,该LUN空间重映射表可保存在LUN配置信息中,当接收到导致LUN资源地址信息发生再次映射的写请求时,将在LUN空间重映射表中添加一个独立表项,即为LUN空间重映射表项。其中,该LUN空间重映射表项与写请求携带的LUN资源地址信息对应,具体包含写请求携带的LUN资源地址信息、该LUN资源地址信息映射到处于繁忙状态的磁盘阵列的地址信息(即步骤201中的目的物理存储地址)和该LUN资源地址信息再次映射到处于空闲状态的磁盘阵列的地址信息。针对上述的写请求2和写请求3,则建立的LUN空间重映射表项如表1所示:
表1
需要说明的是,步骤210和步骤211为本发明实施例提供的根据写请求中携带的LUN资源地址信息更新LUN配置信息的具体操作,其中,步骤210和步骤211并未有具体的时间先后顺序。
优选地,本实施例中当步骤210中的修改操作和步骤211中的添加操作成功完成后,可执行下述步骤212;当然,该步骤210和步骤211也可在完成下述步骤212之后执行,本发明实施例并不具体限定。
步骤212,将写请求对应的写入数据存储到步骤209确定出的地址信息中。
需要说明的是,上述步骤210至步骤212为原子操作,当其中的一个步骤失败,其他步骤相应回到原位,比如,若步骤212存储数据失败,则步骤210和步骤211将回到原来状态,即将修改的值重新改回到原来的值,并删除该添加的LUN重映射表项。
可见,通过上述操作,能够实现处于空闲状态的磁盘阵列处理分担来自繁忙状态的磁盘阵列的写请求的流程。
需要说明的是,本发明实施例中之所以将第一写请求中的写请求(该写请求对应的数据大小范围比较大)分配给步骤203确定出的处于空闲状态的磁盘阵列,主要目的是尽可能地在空闲阵列上写入大块数据,减少后续的LUN空间重映射表项的数目,并避免造成LUN资源在阵列层面的映射过于分散。
步骤213,当上述处于繁忙状态的磁盘阵列RAID_1空闲时,和/或当存储***中的所有的磁盘阵列空闲时,判断发生再次映射的LUN资源地址信息对应的映射空间大小是否小于预设值,如果是,则执行步骤214,否则,执行步骤215。
比如,若RAID_1要处理的所有写请求分别为写请求1、写请求2和写请 求3,其中,写请求2中携带的LUN资源地址信息和写请求3中携带的LUN资源地址信息需要分别再次映射到RAID_2和RAID_3中,则本步骤需要计算写请求2中携带的LUN资源地址信息对应的映射空间和写请求3中携带的LUN资源地址信息对应的映射空间之和,如果该和小于预设值,则执行步骤214,否则,执行步骤215。
步骤214,从处于空闲状态的磁盘阵列中读取原由处于繁忙状态的磁盘阵列存储的数据,将该数据重新存储到处于繁忙状态的磁盘阵列中。
比如,若RAID_1要处理的所有写请求分别为写请求1、写请求2和写请求3,其中,写请求2中携带的LUN资源地址信息和写请求3中携带的LUN资源地址信息需要分别再次映射到RAID_2和RAID_3中,则本步骤从RAID_2和RAID_3中分别读取原由RAID_1要存储的写请求2和写请求3对应的数据,并将该读取的数据写入到RAID_1中,具体写入的操作为:从RAID_2读取写请求2对应的数据,将该读取的数据重新存储到RAID_1的物理空间中,其中,该物理空间为写请求2携带的LUN资源地址信息预先已映射到RAID_1的物理地址空间;从RAID_3读取写请求3对应的数据,将该读取的数据重新存储到RAID_1的物理空间中,其中,该物理空间为写请求3携带的LUN资源地址信息预先已映射到RAID_1的物理地址空间。
需要说明的是,上述在将读取的数据重新存储到处于繁忙状态的磁盘阵列中时,可进一步执行释放该数据在处于空闲状态的磁盘阵列的物理地址空间,其中,释放该数据块在处于空闲状态的磁盘阵列的物理地址空间具体是指取消该数据在处于空闲状态的磁盘阵列的物理地址空间与该数据所对应的LUN资源地址信息的映射关系。比如,若从RAID_3读取写请求3对应的数据存储到RAID_1中,则取消写请求3携带的LUN资源地址信息与RAID_3的映射关系。
上述步骤214实质上为本发明实施例提供的一种数据整合操作。
步骤215,释放处于繁忙状态的磁盘阵列中对应的物理空间。
这里,上述物理空间是原由处于繁忙状态的磁盘阵列处理的写请求所携带的LUN资源地址信息映射到该磁盘阵列上的物理地址空间。比如,若RAID_1 要存储的所有写请求分别为写请求1、写请求2和写请求3,其中,写请求2中携带的LUN资源地址信息和写请求3中携带的LUN资源地址信息需要分别再次映射到RAID_2和RAID_3中,则本步骤需要释放写请求2中携带的LUN资源地址信息预先已映射在RAID_1中的物理地址空间,以及释放写请求3中携带的LUN资源地址空间信息预先已映射在RAID_1中的物理地址空间。
其中,上述释放处于繁忙状态的磁盘阵列中对应的物理空间具体是取消已分配给处于空闲状态的磁盘阵列的写请求中携带的LUN资源地址信息与该处于繁忙状态的磁盘阵列中对应的物理地址空间的映射关系。比如,若本步骤需要释放写请求2中携带的LUN资源地址信息预先已映射在RAID_1中的物理地址空间,则取消写请求2中携带的LUN资源地址信息与RAID_1的映射关系。
需要说明的是,若后续又接收到携带了已发生再次映射的LUN资源地址信息的写请求,比如,若存储***后续接收到写请求4,其中,该写请求4中携带的LUN资源地址信息与写请求2所携带的LUN资源地址信息相同,根据上面的描述,可以知道该写请求4携带的LUN资源地址信息已再次映射到RAID_2中50GB处的0~1024KB,则本实施例可直接将当前接收的写请求4所对应的数据存储到RAID_2的50GB处的0~1024KB中。如此,可大大避免LUN资源发生多次映射。
本实施例中,若在执行上述操作后,若存储***又接收到读请求,则执行如图4所示的流程,具体包括以下步骤:
步骤401,在LUN空间转移位图中查找要读的数据对应的标识位的值。
步骤402,判断该标识位的值是否表示该要读的数据在所述确定出的目的物理存储地址对应的磁盘阵列之外的磁盘阵列上,如果是,执行步骤403,否则,按照现有技术流程处理。
这里,目的物理存储地址为该读请求中携带的LUN资源地址信息第一次映射到磁盘阵列的物理地址,而并非上述的再次映射到磁盘阵列的物理地址。比如,读请求需要读取LUN1资源中300GB处0KB~512KB的数据,则本步骤中,需要根据预先建立的映射关系确定该LUN1资源中300GB处0KB~512KB第一 次映射到磁盘阵列的物理地址。
步骤403,在该读请求携带的LUN资源地址信息对应的LUN空间重映射表项中获取该LUN资源地址信息再次映射的地址信息。
这里,若预先建立好了LUN空间重映射表,则在该LUN空间重映射表中查找出读请求携带的LUN资源地址信息对应的LUN空间重映射表项,之后,从该LUN空间重映射表项中获取该表项包含的该读请求携带的LUN资源地址信息再次映射到磁盘阵列的地址信息,比如,若读请求携带的LUN资源地址信息为300GB处0KB~512KB,则获取300GB处0KB~512KB再次映射的地址信息。
步骤404,在该获取的地址信息中读取要读的数据。
如此,实现了本发明实施例提供的读请求的操作流程。
上述是对本发明实施例提供的方法进行了描述,下面对本发明实施例提供的装置进行描述。
参见图5,图5为本发明实施例提供的数据存储置结构图。如图5所示,该装置包括:接收单元501、分配单元502和存储单元503。
其中,接收单元501用于接收目的物理存储地址对应一磁盘阵列的写请求;
分配单元502用于根据所述磁盘阵列的状态以及存储***中其他磁盘阵列的状态,为接收单元501接收的写请求分配磁盘阵列。
存储单元503用于将所述写请求对应的写入数据存储到分配单元502分配的磁盘阵列中。
优选地,写请求携带了LUN资源地址信息;其中,目的物理存储地址为所述写请求携带的LUN资源地址信息映射到存储***中磁盘阵列上的物理地址。
如图5所示,分配单元502可包括:第一判断子单元5021、第二判断子单元5022和分配子单元5023。
其中,第一判断子单元5021用于判断对应所述目的物理存储地址的磁盘阵列的状态是否为繁忙。
第二判断子单元5022用于在接收到第一判断子单元5021的判断结果为是 时,判断存储***中是否存在处于空闲状态的磁盘阵列。
分配子单元5023用于在接收到第二判断子单元5022的判断结果为是时,为所述写请求分配处于空闲状态的磁盘阵列。
优选地,如图5所示,该装置还包括:确定单元504。
其中,确定单元504用于连接在第二判断子单元5022和分配子单元5023之间,用于接收到第二判断子单元5022的判断结果为是时,针对判断出的每一个处于空闲状态的磁盘阵列,确定该磁盘阵列的可用物理空间。
分配子单元5023还用于获取所述写请求对应的数据大小范围,其中,该数据大小范围为写请求对应的写入数据的数据大小范围;在所述写请求的个数为1时,将所述写请求分配给处于空闲状态的磁盘阵列中可用物理空间容纳该写请求对应的数据大小范围的一个磁盘阵列;在所述写请求的个数大于1时,根据写请求对应的数据大小范围确定用于划分写请求的门限;将对应的数据大小范围大于等于所述门限的各个写请求分配给处于空闲状态的磁盘阵列中可用物理空间容纳写请求对应的数据大小范围的各个磁盘阵列。
优选地,存储单元503可包括:映射子单元5031、确定子单元5032和存储子单元5033。
其中,映射子单元5031用于将写请求携带的LUN资源地址信息再次映射到所述处于空闲状态的磁盘阵列中。
确定子单元5032用于在映射子单元5031完成映射后,确定再次映射到所述处于空闲状态的磁盘阵列中的地址信息,其中,该确定出的地址信息为所述处于空闲状态的磁盘阵列的可用物理空间中的子集。
存储子单元5033用于将所述写入数据存储到确定子单元5032确定出的地址信息中。
优选地,该装置还可包括:更新单元505。
其中,更新单元505用于在存储子单元5033执行存储操作之前或者之后,根据写请求所携带的LUN资源地址信息更新LUN配置信息。
优选地,更新单元505可包括:修改子单元5051和添加子单元5052。
其中,修改子单元5051用于在存储子单元5033执行存储操作之前或者之后,在预先建立的LUN空间转移位图中修改所述写入数据对应的标识位的值,该修改后的标识位的值用于表示所述写入数据存储至所述目的物理存储地址对应的磁盘阵列之外的磁盘阵列中。
添加子单元5052用于添加LUN空间重映射表项,其中,所述LUN空间重映射表项与写入数据对应的写请求所携带的LUN资源地址信息对应,具体包括:写请求携带的LUN资源地址信息、该LUN资源地址信息映射的目的物理存储地址、以及该LUN资源地址信息再次映射到为该写请求分配的处于空闲状态的磁盘阵列的地址信息。
优选地,该装置可包含:映射信息判断单元506和数据整合单元507。
其中,映射信息判断单元506用于在所述目的物理存储地址对应的磁盘阵列空闲时,和/或所述存储***中所有的磁盘阵列处于空闲时,判断发生再次映射的LUN资源地址信息对应的映射空间大小是否小于预设值,如果是,发送整合通知给数据整合单元507,否则,释放所述目的物理存储地址对应的磁盘阵列中的物理空间,其中,该物理空间是原由目的物理存储地址对应的磁盘阵列要处理的写请求所携带的LUN资源地址信息所映射到该磁盘阵列上的物理地址空间。
数据整合单元507用于接收整合通知,从所述目的物理存储地址对应的磁盘阵列之外的磁盘阵列中读取原由所述目的物理存储地址对应的磁盘阵列要存储的数据,并将该数据重新存储到所述目的物理存储地址对应的磁盘阵列中,释放该数据在所述目的物理存储地址对应的磁盘阵列之外的磁盘阵列上的物理地址空间。
可见,本发明实施例提供的数据存储方法和装置,并非现有技术中接收到写请求后,直接将该写请求携带的数据块存储到对应的磁盘阵列上;而是当某一个磁盘阵列处于繁忙状态时,判断存储***当前是否存在处于空闲状态的磁盘阵列,如果是,利用处于空闲状态的磁盘阵列对处于繁忙状态的磁盘阵列进行负载负担,如此,不会出现现有技术中磁盘阵列当前对应的读写请求的个数 超过其所能承受的能力所带来的诸多问题。由于本发明由处于空闲状态的磁盘阵列处理该处于繁忙状态的磁盘阵列的部分写请求,这样,该繁忙状态的磁盘阵列就有足够的能力对分配给自身的读写请求进行处理,提高了该磁盘阵列的读写性能,也缓解了处于繁忙状态的磁盘阵列的写入压力,进而提高了存储***的整体性能。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (17)
1.一种数据存储方法,其特征在于,该方法包括:
接收目的物理存储地址对应一磁盘阵列的写请求;
根据所述磁盘阵列的状态以及存储***中其他磁盘阵列的状态,为所述写请求分配磁盘阵列;其中,所述根据磁盘阵列的状态以及存储***中其他磁盘阵列的状态,为写请求分配磁盘阵列包括:判断所述目的物理存储地址对应的磁盘阵列的状态是否为繁忙,如果是,判断存储***中是否存在处于空闲状态的磁盘阵列,如果是,针对判断出的每一个处于空闲状态的磁盘阵列,确定该磁盘阵列的可用物理空间,获取所述写请求对应的数据大小范围,其中,该数据大小范围为写请求对应的写入数据的数据大小范围;根据获取的数据大小范围和确定出的处于空闲状态的磁盘阵列的可用物理空间,分配写请求给处于空闲状态的磁盘阵列;将所述写请求对应的写入数据存储到所述分配的磁盘阵列中;
其中,若所述写请求的个数为1,则根据获取的数据大小范围和确定出的处于空闲状态的磁盘阵列的可用物理空间,分配写请求给处于空闲状态的磁盘阵列包括:将所述写请求分配给处于空闲状态的磁盘阵列中可用物理空间容纳该写请求对应的数据大小范围的一个磁盘阵列;
若所述写请求的个数大于1,则根据获取的数据大小范围和确定出的处于空闲状态的磁盘阵列的可用物理空间,分配写请求给处于空闲状态的磁盘阵列包括:根据写请求对应的数据大小范围确定用于划分写请求的门限;将对应的数据大小范围大于等于所述门限的各个写请求分配给处于空闲状态的磁盘阵列中可用物理空间容纳写请求对应的数据大小范围的各个磁盘阵列。
2.根据权利要求1所述的方法,其特征在于,所述写请求携带了逻辑单元号LUN资源地址信息;
所述目的物理存储地址为所述写请求携带的LUN资源地址信息映射到存储***中磁盘阵列上的物理地址。
3.根据权利要求1所述的方法,其特征在于,所述判断目的物理存储地址对应的磁盘阵列的状态是否为繁忙包括:
判断所述目的物理存储地址对应的磁盘阵列在预设时间范围内的读写请求平均响应时间是否大于等于第一预设阈值,如果是,确定该磁盘阵列的状态为繁忙,否则,确定该磁盘阵列的状态为不繁忙;
所述判断***中是否存在处于空闲状态的磁盘阵列包括:
针对***中除所述处于繁忙状态的磁盘阵列外的每一个磁盘阵列,判断该磁盘阵列在所述预设时间范围内的读写请求平均响应时间是否小于第二预设阈值,如果是,确定该磁盘阵列处于空闲状态;否则,确定该磁盘阵列不处于空闲状态。
4.根据权利要求3所述的方法,其特征在于,所述第一预设阈值与所述第二预设阈值相差第三值,其中,所述第三值用于使处于空闲状态的磁盘阵列在处理分配的写请求时仍然不处于繁忙状态。
5.根据权利要求2所述的方法,其特征在于,所述将写请求对应的写入数据存储到分配的磁盘阵列中包括:
将写请求携带的LUN资源地址信息再次映射到为该写请求分配的处于空闲状态的磁盘阵列中,确定出再次映射到该处于空闲状态的磁盘阵列中的地址信息,其中,该确定出的地址信息为该处于空闲状态的磁盘阵列的可用物理空间中的子集;
将所述写入数据存储到所述确定出的地址信息中。
6.根据权利要求5所述的方法,其特征在于,在执行所述将写入数据存储到确定出的地址信息中的操作之前或者之后,进一步包括:
根据该写入数据对应的写请求所携带的LUN资源地址信息更新LUN配置信息。
7.根据权利要求6所述的方法,其特征在于,所述根据写入数据对应的写请求所携带的LUN资源地址信息更新LUN配置信息包括:
在预先建立的LUN空间转移位图中修改所述写入数据对应的标识位的值,该修改后的标识位的值用于表示所述写入数据存储至所述目的物理存储地址对应的磁盘阵列之外的磁盘阵列中;
添加LUN空间重映射表项,其中,所述LUN空间重映射表项与写入数据对应的写请求所携带的LUN资源地址信息对应。
8.根据权利要求7所述的方法,其特征在于,所述LUN空间重映射表项包括:写请求携带的LUN资源地址信息、该LUN资源地址信息映射的目的物理存储地址、以及该LUN资源地址信息再次映射到为该写请求分配的处于空闲状态的磁盘阵列的地址信息。
9.根据权利要求8所述的方法,其特征在于,当接收到读请求时,进一步包括:在LUN空间转移位图中查找要读的数据对应的标识位的值,若该标识位的值表示该要读的数据存储在目的物理存储地址对应的磁盘阵列之外的磁盘阵列上;则在该读请求携带的LUN资源地址信息对应的LUN空间重映射表项中获取该LUN资源地址信息再次映射的地址信息;在该获取的地址信息中读取所述要读的数据;
当接收到携带了发生再次映射的LUN资源地址信息的写请求时,进一步包括:在该写请求携带的LUN资源地址信息对应的LUN空间重映射表项中获取该LUN资源地址信息再次映射的地址信息;将该写请求对应的写入数据存储到该获取的地址信息中。
10.根据权利要求6至9任一所述的方法,其特征在于,该方法进一步包括:
判断发生再次映射的LUN资源地址信息对应的映射空间大小是否小于预设值,如果是,则进行数据整合,否则,释放目的物理存储地址对应的磁盘阵列中的物理空间,其中,该物理空间是原由所述目的物理存储地址对应的磁盘阵列处理的写请求所携带的LUN资源地址信息映射到该磁盘阵列上的物理地址空间。
11.根据权利要求10所述的方法,其特征在于,所述进行数据整合包括:
从所述目的物理存储地址对应的磁盘阵列之外的磁盘阵列中读取原由所述目的物理存储地址对应的磁盘阵列要存储的数据,并将该数据重新存储到所述目的物理存储地址对应的磁盘阵列中,释放该数据在所述目的物理存储地址对应的磁盘阵列之外的磁盘阵列上的物理地址空间。
12.根据权利要求10所述的方法,其特征在于,所述判断发生再次映射的LUN资源地址信息对应的映射空间大小是否小于预设值的操作是在所述目的物理存储地址对应的磁盘阵列空闲时,和/或所述存储***中所有的磁盘阵列处于空闲时执行的。
13.一种数据存储装置,其特征在于,该装置包括:接收单元、确定单元,分配单元和存储单元;其中,
所述接收单元用于接收目的物理存储地址对应一磁盘阵列的写请求;
所述分配单元用于根据所述磁盘阵列的状态以及存储***中其他磁盘阵列的状态,为所述接收单元接收的写请求分配磁盘阵列;
其中,所述分配单元包括:第一判断子单元,第二判断子单元和分配子单元;
所述第一判断子单元用于判断所述目的物理存储地址对应的磁盘阵列的状态是否为繁忙;
所述第二判断子单元,用于在接收到所述第一判断子单元的判断结果为是时,判断存储***中是否存在处于空闲状态的磁盘阵列;
所述确定单元,连接在所述第二判断子单元和所述分配子单元之间,用于接收到所述第二判断子单元的判断结果为是时,针对判断出的每一个处于空闲状态的磁盘阵列,确定该磁盘阵列的可用物理空间;
所述分配子单元,用于在接收到所述第二判断子单元的判断结果为是时,为所述写请求分配处于空闲状态的磁盘阵列用于获取所述写请求对应的数据大小范围,其中,该数据大小范围为写请求对应的写入数据的数据大小范围;根据获取的数据大小范围和确定出的处于空闲状态的磁盘阵列的可用物理空间,分配写请求给处于空闲状态的磁盘阵列;其中,所述分配子单元根据获取的数据大小范围和确定出的处于空闲状态的磁盘阵列的可用物理空间,分配写请求给处于空闲状态的磁盘阵列包括:在所述写请求的个数为1时,将所述写请求分配给处于空闲状态的磁盘阵列中可用物理空间容纳该写请求对应的数据大小范围的一个磁盘阵列;在所述写请求的个数大于1时,根据写请求对应的数据大小范围确定用于划分写请求的门限;将对应的数据大小范围大于等于所述门限的各个写请求分配给处于空闲状态的磁盘阵列中可用物理空间容纳写请求对应的数据大小范围的各个磁盘阵列;
所述存储单元用于将所述写请求对应的写入数据存储到所述分配单元分配的磁盘阵列中。
14.根据权利要求13所述的装置,其特征在于,所述写请求携带了LUN资源地址信息;其中,所述目的物理存储地址为所述写请求携带的LUN资源地址信息映射到存储***中磁盘阵列上的物理地址。
15.根据权利要求14所述的装置,其特征在于,所述存储单元包括:
映射子单元,用于将写请求携带的LUN资源地址信息再次映射到所述分配子单元分配的处于空闲状态的磁盘阵列中;
确定子单元,用于在所述映射子单元完成映射后,确定再次映射到所述处于空闲状态的磁盘阵列中的地址信息,其中,该确定出的地址信息为所述确定单元确定出的处于空闲状态的磁盘阵列的可用物理空间中的子集;
存储子单元,用于将所述写入数据存储到所述确定子单元确定出的地址信息中。
16.根据权利要求15所述的装置,其特征在于,该装置还包括:更新单元;其中,
所述更新单元用于在所述存储子单元执行存储操作之前或者之后,根据所述写请求所携带的LUN资源地址信息更新LUN配置信息;其中,所述更新单元包括:
修改子单元,用于在所述存储子单元执行存储操作之前或者之后,在预先建立的LUN空间转移位图中修改所述写入数据对应的标识位的值,该修改后的标识位的值用于表示所述写入数据存储至所述目的物理存储地址对应的磁盘阵列之外的磁盘阵列中;
添加子单元,用于添加LUN空间重映射表项,其中,所述LUN空间重映射表项与写入数据对应的写请求所携带的LUN资源地址信息对应,具体包括:写请求携带的LUN资源地址信息、该LUN资源地址信息映射的目的物理存储地址、以及该LUN资源地址信息再次映射到为该写请求分配的处于空闲状态的磁盘阵列的地址信息。
17.根据权利要求12至16任一所述的装置,其特征在于,该装置包含:映射信息判断单元和数据整合单元,其中,
所述映射信息判断单元用于在所述目的物理存储地址对应的磁盘阵列空闲时,和/或所述存储***中所有的磁盘阵列处于空闲时,判断发生再次映射的LUN资源地址信息对应的映射空间大小是否小于预设值,如果是,发送整合通知给所述数据整合单元,否则,释放所述目的物理存储地址对应的磁盘阵列中的物理空间,其中,该物理空间是原由所述目的物理存储地址对应的磁盘阵列处理的写请求所携带的LUN资源地址信息映射到该磁盘阵列上的物理地址空间;
所述数据整合单元用于接收整合通知,从所述目的物理存储地址对应的磁盘阵列之外的磁盘阵列中读取原由所述目的物理存储地址对应的磁盘阵列要存储的数据,并将该数据重新存储到所述目的物理存储地址对应的磁盘阵列中,释放该数据在所述目的物理存储地址对应的磁盘阵列之外的磁盘阵列上的物理地址空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910079881XA CN101504594B (zh) | 2009-03-13 | 2009-03-13 | 一种数据存储方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910079881XA CN101504594B (zh) | 2009-03-13 | 2009-03-13 | 一种数据存储方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101504594A CN101504594A (zh) | 2009-08-12 |
CN101504594B true CN101504594B (zh) | 2011-01-05 |
Family
ID=40976853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910079881XA Expired - Fee Related CN101504594B (zh) | 2009-03-13 | 2009-03-13 | 一种数据存储方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101504594B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103269359B (zh) * | 2013-04-28 | 2015-12-09 | 福州新锐同创电子科技有限公司 | 一种方便扩容的多路径高效存储方法 |
CN103530066B (zh) * | 2013-09-16 | 2016-05-18 | 华为技术有限公司 | 一种数据存储方法、装置及*** |
CN105279099A (zh) * | 2015-09-30 | 2016-01-27 | 成都华为技术有限公司 | 一种磁盘空间分配法及装置 |
CN108121600B (zh) * | 2016-11-30 | 2022-11-29 | 中兴通讯股份有限公司 | 磁盘阵列控制器、输入输出io数据处理方法及装置 |
CN111666043A (zh) * | 2017-11-03 | 2020-09-15 | 华为技术有限公司 | 一种数据存储方法及设备 |
CN108255430A (zh) * | 2018-01-10 | 2018-07-06 | 深圳市得微电子有限责任公司 | Ncq命令处理方法、存储设备及计算机可读存储介质 |
CN110413211B (zh) * | 2018-04-28 | 2023-07-07 | 伊姆西Ip控股有限责任公司 | 存储管理方法、电子设备以及计算机可读介质 |
CN108762675B (zh) * | 2018-05-24 | 2021-04-16 | 北京无线电测量研究所 | 数据存储方法及*** |
CN111176576A (zh) * | 2019-12-28 | 2020-05-19 | 北京浪潮数据技术有限公司 | 一种存储卷的元数据修改方法、装置、设备及存储介质 |
CN111352592B (zh) * | 2020-02-27 | 2021-04-20 | 腾讯科技(深圳)有限公司 | 磁盘读写控制方法、装置、设备及计算机可读存储介质 |
CN113360425A (zh) * | 2021-06-28 | 2021-09-07 | 深圳市高德信通信股份有限公司 | 一种分布式多级缓存*** |
CN114415979B (zh) * | 2022-03-29 | 2022-07-15 | 浙江大华技术股份有限公司 | 存储装置的处理方法、计算机设备及存储装置 |
CN115878052B (zh) * | 2023-03-08 | 2023-05-23 | 苏州浪潮智能科技有限公司 | Raid阵列巡检方法、巡检装置和电子设备 |
-
2009
- 2009-03-13 CN CN200910079881XA patent/CN101504594B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101504594A (zh) | 2009-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101504594B (zh) | 一种数据存储方法和装置 | |
US9792073B2 (en) | Method of LUN management in a solid state disk array | |
US8924659B2 (en) | Performance improvement in flash memory accesses | |
US20150095554A1 (en) | Storage processor managing solid state disk array | |
JP6459644B2 (ja) | ストレージ制御装置、制御システム及び制御プログラム | |
US10365845B1 (en) | Mapped raid restripe for improved drive utilization | |
US11409467B2 (en) | Memory system and method of controlling nonvolatile memory and for reducing a buffer size | |
US10235069B2 (en) | Load balancing by dynamically transferring memory range assignments | |
KR20100077156A (ko) | 씬 프로비저닝 이송 및 스크러빙 방법 | |
US8694563B1 (en) | Space recovery for thin-provisioned storage volumes | |
WO2013097618A1 (zh) | 存储虚拟化的装置、存储***及数据存储方法及*** | |
US8954658B1 (en) | Method of LUN management in a solid state disk array | |
US20080052478A1 (en) | Relocating a logical volume from a first storage location to a second storage location using a copy relationship | |
WO2011061801A1 (en) | Computer system and load equalization control method for the same | |
US20190243578A1 (en) | Memory buffer management for solid state drives | |
US20220391318A1 (en) | Storage device and operating method thereof | |
US20140344503A1 (en) | Methods and apparatus for atomic write processing | |
US10310758B2 (en) | Storage system and storage control method | |
US9547443B2 (en) | Method and apparatus to pin page based on server state | |
US9547450B2 (en) | Method and apparatus to change tiers | |
US8364890B2 (en) | RAID control apparatus and control method therefor | |
US8683161B2 (en) | Method and apparatus for increasing file copy performance on solid state mass storage devices | |
CN108334457B (zh) | 一种io处理方法及装置 | |
US11768628B2 (en) | Information processing apparatus | |
US20240143171A1 (en) | Systems, methods, and devices for using a reclaim unit based on a reference update in a storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CP03 | Change of name, title or address | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110105 Termination date: 20200313 |
|
CF01 | Termination of patent right due to non-payment of annual fee |