CN106547472B - 存储阵列管理方法及装置 - Google Patents

存储阵列管理方法及装置 Download PDF

Info

Publication number
CN106547472B
CN106547472B CN201510600780.8A CN201510600780A CN106547472B CN 106547472 B CN106547472 B CN 106547472B CN 201510600780 A CN201510600780 A CN 201510600780A CN 106547472 B CN106547472 B CN 106547472B
Authority
CN
China
Prior art keywords
memory module
performance test
test data
storage array
subregion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510600780.8A
Other languages
English (en)
Other versions
CN106547472A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910804375.6A priority Critical patent/CN110727399B/zh
Priority to CN201510600780.8A priority patent/CN106547472B/zh
Priority to PCT/CN2016/095291 priority patent/WO2017045500A1/zh
Publication of CN106547472A publication Critical patent/CN106547472A/zh
Application granted granted Critical
Publication of CN106547472B publication Critical patent/CN106547472B/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

Abstract

本发明实施例涉及一种存储阵列管理方法及装置。包括:获取存储阵列中的各存储模块的性能测试数据;所述存储阵列中至少包括一个存储模块;根据所述存储阵列中的各个存储模块的性能测试数据,确定各存储模块所属的分区类别,其中,不同类别的分区用于存储不同活跃度的数据。由此,可以更合理的使用存储阵列中的各个存储模块。

Description

存储阵列管理方法及装置
技术领域
本发明涉及数据信息存储技术领域,尤其涉及一种存储阵列管理方法及装置。
背景技术
虽然,随着存储技术的不断发展,存储成本也在不断下降,但是,读写速度快的存储模块的价格依然是相对昂贵的,为了能够更有效的利用这些价格昂贵的存储速度快的存储模块,存储阵列的技术也在逐渐的普及。
目前,常用的存储速度较快的两种Flash介质如下。
SLC(Single-Level Cell,单层单元):是单层单元,特点是成本高、容量小、速度快;
SLC闪存的优点是复写次数高达100000次,比MLC闪存高10倍。
MLC(Multi-Level Cell,多层单元):是多层单元,MLC的每个单元是2bit的,相对SLC来说整整多了一倍。容量大成本低,但是由于每个MLC存储单元中存放的资料较多,结构相对复杂,出错的几率会增加,必须进行错误修正,所以存储速度相对SLC慢很多。
基于大家公认的SLC和MLC特点和性能差异,现有技术一般默认将最热数据、可靠性要求最高的数据放置在SLC,MLC次之。图1示出了现有技术中一种包含SLC和MLC的存储阵列。如图1所示,数据需要被写入到存储阵列中时,首先将其存储在介质为SLC的硬盘1上,当数据活跃度逐渐降低时,它们被迁移到介质为MLC的硬盘2中,当数据的活跃度降到更低时,再将其放入到机械硬盘中。
但是,在实际应用中,由于厂家生产的SLC和MLC标准不一,很多低端的SLC性能和可靠性尚不如MLC,所以用于存储活跃度较高的存储分区的性能尚且没有用于存储活跃度较低的存储分区的性能好。
总而言之,现有技术中提供的存储阵列不能够更合理有效的利用各个存储模块,所以迫切需要本领域技术人员解决的技术问题就在于,如何更合理的使用存储阵列中的各个存储模块。
发明内容
本发明实施例提供了一种存储阵列管理方法及装置,可以根据各存储模块的性能测试参数,更合理的使用存储阵列中的各个存储模块。
第一方面,提供了一种存储阵列管理方法,包括:
获取存储阵列中的各存储模块的性能测试数据;所述存储阵列中至少包括一个存储模块;
根据所述存储阵列中的各个存储模块的性能测试数据,确定各存储模块所属的分区类别,其中,不同类别的分区用于存储不同活跃度的数据。
结合第一方面,在第一方面的第一种实现方式中,所述根据所述存储阵列中的各个存储模块的性能测试数据,确定各存储模块所属的分区类别,包括:
根据各存储模块的性能测试数据确定各存储模块的性能得分;
根据所述得分对各存储模块进行排序;
根据排序结果确定各存储模块所属的分区类别。
结合第一方面,在第一方面的第二种实现方式中,确定出各存储模块所属的分区类别后还包括:
将存储模块的标识信息添加到对应分区类别的模块标识列表中。
结合第一方面,在第一方面的第三种实现方式中,所述方法还包括:
预先对所述存储模块进行性能测试得到性能测试数据,将所述性能测试数据存储在存储模块特定位置处;
所述获取存储阵列中的存储模块的性能测试数据包括:
获取存储在所述存储模块特定位置处的性能测试数据。
结合第一方面的第三种实现方式中,在第一方面的第四种实现方式中,还包括:
判断所述特定位置处存储的性能测试数据信息的准确性;
如果不准确,则根据预置场景分别对各个所述存储模块进行性能测试,分别得到各个所述存储模块的性能测试数据。
结合第一方面的第四种实现方式中,在第一方面的第五种实现方式中,还包括:
根据所述测试得到的性能测试数据,更新所述存储模块上的特定位置处存储的性能测试数据。
结合第一方面,在第一方面的第六种实现方式中,所述获取存储阵列中的各存储模块的性能测试数据包括:
在设定的时间间隔和/或系统空闲时,根据预制场景,对个所述存储模块进行读写测试;所述预制场景包括,顺序读、写,随机读、写,或者读写混合;
根据测试结果分别确定各个所述存储模块的性能测试数据;所述性能测试数据包括,每秒进行读、写(I/O)操作的次数,读、写带宽,读、写延时中的至少一项。
结合第一方面或者第一方面的第一到六任意一种实现方式中,在第一方面的第七种实现方式中,所述存储阵列为全闪存阵列,所述存储模块的介质类型包括SLC介质以及MLC介质,所述不同类别的分区用于存储不同活跃度的数据包括:
判断属于各分区类别的存储模块的介质类型;
若由性能测试数据较优的存储模块构成的分区中包括MLC介质的存储模块,则将所述MLC介质的存储模块用于存储活跃度较高的数据;
若由性能测试数据较差的存储模块构成的分区中包括SLC介质的存储模块,则将所述SLC介质的存储模块用于存储活跃度较低的数据。
第二方面,提供了一种存储阵列管理装置,包括:
获取单元,用于获取存储阵列中的各存储模块的性能测试数据;所述存储阵列中至少包括一个存储模块;
分区单元,用于根据所述存储阵列中的各个存储模块的性能测试数据,确定各存储模块所属的分区类别,其中,不同类别的分区用于存储不同活跃度的数据。
结合第二方面,在第二方面的第一种实现方式中,所述分区单元包括:
得分确定子单元,用于根据各存储模块的性能测试数据确定各存储模块的性能得分;
排序子单元,用于根据所述得分对各存储模块进行排序;
分区子单元,用于根据排序结果确定各存储模块所属的分区类别。
结合第二方面,在第二方面的第二种实现方式中,还包括:
标识单元,用于将存储模块的标识信息添加到对应分区类别的模块标识列表中。
结合第二方面,在第二方面的第三种实现方式中,所述装置还包括:
测试单元,用于预先对所述存储模块进行性能测试得到性能测试数据,将所述性能测试数据存储在存储模块特定位置处;
所述获取单元,具体用于获取存储在所述存储模块特定位置处的性能测试数据。
结合第二方面的第三种实现方式中,在第二方面的第四种实现方式中,还包括:
判断单元,用于判断所述特定位置处存储的性能测试数据信息的准确性;
所述测试单元还用于,如果不准确,则根据预置场景分别对各个所述存储模块进行性能测试,分别得到各个所述存储模块的性能测试数据。
结合第二方面的第四种实现方式中,在第二方面的第五种实现方式中,还包括:
更新单元,用于根据所述测试得到的性能测试数据,更新所述存储模块上的特定位置处存储的性能测试数据。
结合第二方面,在第二方面的第六种实现方式中,所述获取单元包括:
读写测试子单元,用于在设定的时间间隔和/或系统空闲时,根据预制场景,对个所述存储模块进行读写测试;所述预制场景包括,顺序读、写,随机读、写,或者读写混合;
数据确定子单元,用于根据测试结果分别确定各个所述存储模块的性能测试数据;所述性能测试数据包括,每秒进行读、写(I/O)操作的次数,读、写带宽,读、写延时中的至少一项。
结合第二方面或者第一方面的第一到六任意一种实现方式中,在第二方面的第七种实现方式中,所述存储阵列为全闪存阵列,所述存储模块的介质类型包括SLC介质以及MLC介质,所述分区单元具体用于,
判断属于各分区类别的存储模块的介质类型;
若由性能测试数据较优的存储模块构成的分区中包括MLC介质的存储模块,则将所述MLC介质的存储模块用于存储活跃度较高的数据;
若由性能测试数据较差的存储模块构成的分区中包括SLC介质的存储模块,则将所述SLC介质的存储模块用于存储活跃度较低的数据。
本发明实施例提供的存储阵列管理方法和装置,通过本发明实施例,根据各个存储模块的性能来确定各个存储模块的分区类别,不同类别的分区用来存储不同活跃度的数据,可以将性能较优的分区用来存储活跃度较高的数据,相应的性能次之的分区用来存储活跃度较低的数据,对存储阵列的分区不仅局限于依据介质,降低以次充好的可能,更能够合理使用存储阵列中的各个存储模块。。
附图说明
图1为现有技术中一种包含SLC和MLC的存储阵列;
图2为本发明一个实施例提供的存储阵列管理方法的流程图;
图3为存储阵列结构示意图;
图4为本发明另一实施例提供的存储阵列管理方法的流程图;
图5为本发明一个实施例提供的存储阵列管理装置的示意图;
图6为本发明一个实施例提供的存储阵列装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
在本发明实施例中,考虑到在同一存储阵列中的各个存储模块标准可能不一,各个存储模块的实际读写速度可能与预期或者存储模块生产厂商提供的读写速度有较大的差异,或者经过一段时间的使用,SLC的读写速度衰减的更快,通过硬盘的使用的存储介质来对硬盘进行分类,可能导致了存储模块没能够被合理的利用,从而影响了存储阵列的存储速度。通过根据各个存储模块的性能信息,而不是仅仅根据存储模块的介质,来对存储阵列进行分区,更合理的使用了存储阵列中的各个模块。
图2为本发明一个实施例提供的存储阵列管理方法的流程图。如图2所示,所述方法具体包括:
S210、获取存储阵列中的各存储模块的性能测试数据。
需要说明的是,通常存储阵列与存储模块是由不同的制造商来生产的,甚至,同一存储阵列的不同存储模块也是来自不同的制造商或者同一制造商的不同产品。图3为存储阵列结构示意图,如图3所示,存储阵列生产厂商将各个存储模块组合在一起构成存储阵列,存储阵列一般是通过存储控制器来控制存储阵列中的各个模块,对各个存储模块进行读写操作。存储模块提供商可以将该存储模块的原始性能测试数据存储在特定位置处,例如,存储模块提供商可以在一块指定LBA(Logical Block Address,逻辑区块地址)开始的固定字节的存储模块用于存放存储模块的性能测试数据,还例如,存储模块提供商可以在BAR(Base Address Register,基地址寄存器)空间内映射一块寄存器内存作为性能测试数据的空间(该寄存器建议为可读写),其中,特定位置的具体实现形式还有多种,此处仅为举例,不做具体限定。也就是说,最初始的性能测试数据可以是由存储模块提供商通过测试得到的,并且存储在存储阵列生产商知道的特定位置处。在具体由存储控制器来确定存储阵列中的存储模块的性能测试数据时,可以直接读取存储模块特定位置处的参数数据即可。
其中,确定存储阵列中的存储模块的性能测试数据的实现方式还可以有多种,这里不再一一赘述。
还需要说明的是,存储模块的性能测试数据可以包括TBW(Total Band Width,总带宽),write IOPS(write Input/Output Operations Per Second,每秒进行写(I/O)操作的次数),write bandwidth(写带宽),write latency (写延时),read IOPS(read Input/Output Operations Per Second,每秒进行读(I/O)操作的次数),read bandwidth(读带宽),read latency(读延时)等等中的至少一项。还可以包括存储模块的构成介质。具体存储模块的性能测试数据的形式如表1所示。
表1
另外,本发明实施例在具体实施过程中,一个存储阵列一般包括一个或多个存储模块,各个存储模块的存储介质可能是不同的,本发明实施例并不做具体限定,例如,存储模块可以是存储介质为SLC的SSD(Solid State Drives,固态硬盘)(SLC闪存)、存储介质为MLC的SSD(MLC闪存)或者HDD(Hard Disk Drive,机械硬盘),等等。
S220、根据所述存储阵列中的各个存储模块的性能测试数据,确定各存储模块所属的分区类别。
在此说明,不同类别的分区用于存储不同活跃度的数据。具体的,分区的个数根据具体存储数据的需要而定,一般情况下,可以至少分成用于存储冷数据的冷数据存储分区,以及用于存储热数据的热数据存储分区,当然还可以包括一些用于存储冷热适中的数据的存储分区。所谓的冷数据、热数据也是根据数据的活跃度而定的,活跃度高的数据可以称为热数据,活跃度低的数据可以称之为冷数据。
需要说明的是,可以根据不同活跃度的数据在读写时对存储模块性能的要求,确定各个类别的分区的性能测试数据的阈值区间;根据各个类别的分区的性能测试数据的阈值区间来确定属于该类别的存储模块。
另外,还可以根据各个存储模块的性能测试数据确定各存储模块的性能得分;
根据所述得分对各存储模块进行排序;
根据排序结果确定各存储模块所属的分区类别。
其中,根据各个存储模块的性能测试数据确定各存储模块的性能得分有多种,例如,可以将需要计算的性能测试数据乘以各自的权重,然后再求和,得到一个综合评分,根据该综合评分对存储模块进行排序;还可以仅对需求较高性能测试数据进行评分。这里不再一一赘述。
其中,确定各存储模块所属的分区类别的实现方式还可以有多种,这里不再一一赘述。
在一个例子中,如图3所示,假设图3中各个存储模块中的性能测试数据如表2所示。
表2
名称 介质 write IOPS 写延时 read IOPS 读延时
存储模块1 SLC 500MB/Sec 510MB/Sec
存储模块2 SLC 250MB/Sec 310MB/Sec
存储模块3 MLC 350MB/Sec 400MB/Sec
存储模块4 MLC 110MB/Sec 210MB/Sec
假设,在本例子中规定,用于存储活跃度较高的数据的分区的性能区间为:writeIOPS,≥300MB/Sec;read IOPS,≥350MB/Sec。用于存储活跃度较低的数据的分区的性能区间为:write IOPS,100MB/Sec-300MB/Sec;read IOPS,150MB/Sec-350MB/Sec。
首先,确定各存储模块的性能测试数据,得到如表2中示出的参数数据;然后,根据本例子中的规定确定各存储模块所属的分区类别,可以得到:用于存储活跃度较高的数据的分区包括,存储模块1、存储模块3;用于存储活跃度较低的数据的分区包括,存储模块2、存储模块4。
另一假设,在本例子中规定,存储模块的性能得分=(write IOPS×60+read IOPS×40)÷100。
那么,存储模块1的性能得分为504;存储模块2的性能得分为274;存储模块3的性能得分为370;存储模块4的性能得分为150;根据性能得分对各个存储模块进行排序:存储模块1、存储模块3、存储模块2、存储模块4;如果需要存储的数据为两种,且各需要两个存储模块,那么,根据排序确定各个存储模块的分区类别,可以得到:用于存储活跃度较高的数据的分区包括,存储模块1、存储模块3;用于存储活跃度较低的数据的分区包括,存储模块2、存储模块4。
由此可见,在本例子中,用于存储活跃度较高的数据的存储模块既包括SLC介质的还包括MLC介质的。
总之,根据各个存储模块的性能来确定各个存储模块的分区类别,不同类别的分区用来存储不同活跃度的数据,可以将性能较优的分区用来存储活跃度较高的数据,相应的性能次之的分区用来存储活跃度较低的数据,对存储阵列的分区不仅局限于依据介质,降低以次充好的可能,更能够合理使用存储阵列中的各个存储模块。
在一个实施例中,在S220后还可以包括:将存储模块的标识信息添加到对应分区类别的模块标识列表中。
需要说明的是,存储模块的标识信息可以为LUN(Logical Unit Number,逻辑单元号)或者Namespace(名称空间)等等,能够起到区分各个存储模块或者用于寻址的标识信息。
在此说明,在需要对存储队列进行读写操作时,可以根据需要读取或者写入的信息的活跃度,根据该信息的活跃度查询模块标识列表,确定出该信息需要写入的存储模块,或者存储有该信息的存储模块。
通过将存储模块以及对应的分区类别进行列表化管理,使得存储控制器能够更便捷的对各个分区进行数据的读写。
在一个实施例中,S210、确定存储阵列中的各存储模块的性能参数可以包括:根据预置场景分别对各个所述存储模块进行性能测试,分别得到各个所述存储模块的性能参数。
需要说明的是,对于存储模块的未提供性能测试数据、或者提供的性能测试数据不准确的情况,可以通过进行性能测试来确定具体的性能测试数据,根据该性能测试数据直接执行S220。其中,具体的预制场景可以有多种,例如,可以根据应用场景,选择顺序读、写,随机读、写,或读写混合等场景,并根据业务可能下发数据块大小,进行4K,16K,32K或者大包,启动IO读写测试。
另外,还可以根据经过性能测试得到的性能测试数据确定特定位置写入的性能测试数据信息的准确性,如果不准确,则根据测试得到的性能测试数据,更新存储模块上的特定位置处存储的性能测试数据。再具体实施过程中,控制器读取特定位置处的性能测试数据,然后再执行步骤S220。在另一个实施例中,可以统计更新前各个存储模块上特定位置处存储的性能测试数据并储存,这样,可以根据统计出的各个存储模块的性能测试数据变化,来对对应的存储模块进行评价,进而确定该性能模块的性价比,以及耐久度等等。
通过进行性能测试,能够更准确的确定出存储模块的性能测试数据,还可以定期或不定期的对存储模块进行测试,更新存储在特定位置处的性能测试数据,进而能够动态、实时捕捉存储模块的性能。
在一个实施例中,在S210、获取存储阵列中的各存储模块的性能测试数据之前还可以包括:预先对所述存储模块进行性能测试得到性能测试数据,将所述性能测试数据存储在存储模块特定位置处;S210具体可以包括:获取存储在所述存储模块特定位置处的性能测试数据。
在此说明,可以将通过预先进行性能测试确定的性能测试数据存储在存储模块的特定位置处,当需要对各个存储模块进行分区时,通过获取特定位置处存储的性能参数,来执行S220。也就是说,在执行完性能测试后,并不一定立即执行S220,可以在有需要或者接收到指令后,再执行S220,该指令可以是存储阵列的运行指令。
需要说明的是,由于特定位置处存储的性能测试数据可能与存储模块的实际性能测试数据不同,所以在另一个实施例中,图4为本发明另一实施例提供的存储阵列管理方法的流程图。如图4所示,在前述步骤之前还可以包括:S211、判断所述特定位置写入的性能测试数据信息的准确性;
在此说明,S211中具体判断特定位置写入的性能测试数据信息的准确性的方式有多种。
可以针对存储模块的某一项性能测试数据进行抽样测试;还可以根据存储模块在执行读写操作时,是否达到预期效果,例如,对读写操作进行监控,确定读写是否速度过慢,或者延迟时间过长等等。这里不再一一赘述。
S212、如果不准确,则根据预置场景分别对各个所述存储模块进行性能测试,分别得到各个所述存储模块的性能测试数据。
在此说明,经过S212测试得到的性能测试数据,可以直接用来执行步骤S220。
另外,在S212后还可以包括:根据所述测试得到的性能测试数据,更新所述存储模块上的特定位置处存储的性能测试数据。
在此说明,经过S212测试得到的性能测试数据,可以用来更新存储模块特定位置处存储的性能测试数据,在具体实施过程中,存储控制器可以通过读取更新过的特定位置处存储的性能测试数据,根据该性能测试数据执行步骤S220。
在一个实施例中,S210具体可以包括:在设定的时间间隔和/或系统空闲时,根据预制场景,对个所述存储模块进行读写测试;所述预制场景包括,顺序读、写,随机读、写,或者读写混合;根据测试结果分别确定各个所述存储模块的性能测试数据。
在另一个实施例中,存储阵列可以为全闪存阵列,存储模块(闪存模块)的介质包括SLC介质以及MLC介质;具体的不同类别的分区用于存储不同活跃度的数据包括:判断属于各分区类别的存储模块的介质类型;若由性能测试数据较优的存储模块构成的分区中包括MLC介质的存储模块,则将所述MLC介质的存储模块用于存储活跃度较高的数据;若由性能测试数据较差的存储模块构成的分区中包括SLC介质的模块,则将所述SLC介质的模块用于存储活跃度较低的数据。
综上所述,通过本发明实施例,根据各个存储模块的性能来确定各个存储模块的分区类别,不同类别的分区用来存储不同活跃度的数据,可以将性能较优的分区用来存储活跃度较高的数据,相应的性能次之的分区用来存储活跃度较低的数据,对存储阵列的分区不仅局限于依据介质,降低以次充好的可能,更能够合理使用存储阵列中的各个存储模块。
本发明实施例在具体实施过程中,通过将存储模块以及对应的分区类别进行列表化管理,使得存储控制器能够更便捷的对各个分区进行数据的读写;通过进行性能测试,能够更准确的确定出存储模块的性能测试数据,还可以定期或不定期的对存储模块进行测试,更新存储在特定位置处的性能测试数据,进而能够动态、实时捕捉存储模块的性能。在具体需要从特定位置处的性能测试数据时,还可以首先判断该参数的准确性,确保确定各个模块分区类别所用的性能测试数据的准确定,以便更合理使用存储阵列中的各个存储模块。
图5为本发明一个实施例提供的存储阵列管理装置的示意图。如图5所示,该装置可以包括:
获取单元510,用于获取存储阵列中的各存储模块的性能测试数据;所述存储阵列中至少包括一个存储模块;
分区单元520,用于根据所述存储阵列中的各个存储模块的性能测试数据,确定各存储模块所属的分区类别,其中,不同类别的分区用于存储不同活跃度的数据。
具体的,分区单元520可以包括:
得分确定子单元,用于根据各存储模块的性能测试数据确定各存储模块的性能得分;
排序子单元,用于根据所述得分对各存储模块进行排序;
分区子单元,用于根据排序结果确定各存储模块所属的分区类别。
在另一种实现方式下,本发明实施例还可以包括:
标识单元,用于将存储模块的标识信息添加到对应分区类别的模块标识列表中。
本发明实施例在具体实施时还可以包括:
测试单元,用于预先对所述存储模块进行性能测试得到性能测试数据,将所述性能测试数据存储在存储模块特定位置处。
此时,获取单元510,具体用于获取存储在所述存储模块特定位置处的性能测试数据。
进一步的,本发明实施例还可以包括:
判断单元,用于判断所述特定位置处存储的性能测试数据信息的准确性;
此时,测试单元还用于,如果不准确,则根据预置场景分别对各个所述存储模块进行性能测试,分别得到各个所述存储模块的性能测试数据。
进一步的,本发明实施例还可以包括:
更新单元,用于根据所述测试得到的性能测试数据,更新所述存储模块上的特定位置处存储的性能测试数据。
在另一种实现方式下,本发明实施例中的,获取单元510可以包括:
读写测试子单元,用于在设定的时间间隔和/或系统空闲时,根据预制场景,对个所述存储模块进行读写测试;所述预制场景包括,顺序读、写,随机读、写,或者读写混合;
数据确定子单元,用于根据测试结果分别确定各个所述存储模块的性能测试数据;所述性能测试数据包括,每秒进行读、写(I/O)操作的次数,读、写带宽,读、写延时中的至少一项。
进一步的,存储阵列可以为全闪存阵列,存储模块的介质类型可以包括SLC介质以及MLC介质,分区单元520具体用于,
判断属于各分区类别的存储模块的介质类型;
若由性能测试数据较优的存储模块构成的分区中包括MLC介质的存储模块,则将所述MLC介质的存储模块用于存储活跃度较高的数据;
若由性能测试数据较差的存储模块构成的分区中包括SLC介质的模块,则将所述SLC介质的模块用于存储活跃度较低的数据。
图6为本发明一个实施例提供的存储阵列装置的示意图。如图6所示,该装置可以包括:存储控制器610、存储模块620。系统总线630用于处理器等设备对存储阵列进行操作的设备与存储控制器610之间的通讯。
存储模块可以是机械硬盘、SLC闪存或者MLC闪存等等。
启动时,存储控制器610加载存储模块驱动,对每块存储模块620以此处理,并执行如下命令:
获取存储阵列中的各存储模块620的性能测试数据;
根据所述存储阵列中的各个存储模块620的性能测试数据,确定各存储模块所属的分区类别,其中,不同类别的分区用于存储不同活跃度的数据。
具体的,可以执行:
根据各存储模块620的性能测试数据确定各存储模块620的性能得分;
根据所述得分对各存储模块620进行排序;
根据排序结果确定各存储模块620所属的分区类别。
在另一种实现方式下,本发明实施例还可以执行:
将存储模块620的标识信息添加到对应分区类别的模块标识列表中。
本发明实施例在具体实施时还可以执行:
预先对存储模块620进行性能测试得到性能测试数据,将所述性能测试数据存储在存储模块620特定位置处。
获取存储在存储模块620特定位置处的性能测试数据。
进一步的,本发明实施例还可以执行:
判断所述特定位置处存储620的性能测试数据信息的准确性;
如果不准确,则根据预置场景分别对各个存储模块620进行性能测试,分别得到各个存储模块620的性能测试数据。
进一步的,本发明实施例还可以执行:
根据所述测试得到的性能测试数据,更新存储模块620上的特定位置处存储的性能测试数据。
在另一种实现方式下,本发明实施例中的,可以执行:
在设定的时间间隔和/或系统空闲时,根据预制场景,对个存储模块620进行读写测试;所述预制场景包括,顺序读、写,随机读、写,或者读写混合;
根据测试结果分别确定各个存储模块620的性能测试数据;所述性能测试数据包括,每秒进行读、写(I/O)操作的次数,读、写带宽,读、写延时中的至少一项。
进一步的,存储阵列可以为全闪存阵列,存储模块620的介质类型可以包括SLC介质以及MLC介质,本发明实施例还可以执行,
判断属于各分区类别的存储模块620的介质类型;
若由性能测试数据较优的存储模块620构成的分区中包括MLC介质的存储模块,则将所述MLC介质的存储模块620用于存储活跃度较高的数据;
若由性能测试数据较差的存储模块构成的分区中包括SLC介质的存储模块,则将所述SLC介质的存储模块620用于存储活跃度较低的数据。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、存储阵列、可移动存储阵列、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种存储阵列管理方法,其特征在于,包括:
获取存储阵列中的各存储模块的性能测试数据;所述存储阵列中至少包括一个存储模块;
根据所述存储阵列中的各个存储模块的性能测试数据,确定各存储模块所属的分区类别,其中,不同类别的分区用于存储不同活跃度的数据;
所述存储阵列为全闪存阵列,所述存储模块的介质类型包括单层单元SLC介质以及多层单元MLC介质,则所述不同类别的分区用于存储不同活跃度的数据包括:
判断属于各分区类别的存储模块的介质类型;
若由性能测试数据较优的存储模块构成的分区中包括MLC介质的存储模块,则将所述MLC介质的存储模块用于存储活跃度较高的数据;
若由性能测试数据较差的存储模块构成的分区中包括SLC介质的存储模块,则将所述SLC介质的存储模块用于存储活跃度较低的数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述存储阵列中的各个存储模块的性能测试数据,确定各存储模块所属的分区类别,包括:
根据各存储模块的性能测试数据确定各存储模块的性能得分;
根据所述得分对各存储模块进行排序;
根据排序结果确定各存储模块所属的分区类别。
3.根据权利要求1所述的方法,其特征在于,确定出各存储模块所属的分区类别后还包括:
将存储模块的标识信息添加到对应分区类别的模块标识列表中。
4.根据权利要求1所述的存储阵列管理方法,其特征在于,所述方法还包括:
预先对所述存储模块进行性能测试得到性能测试数据,将所述性能测试数据存储在存储模块特定位置处;
所述获取存储阵列中的存储模块的性能测试数据包括:
获取存储在所述存储模块特定位置处的性能测试数据。
5.根据权利要求4所述的方法,其特征在于,还包括:
判断所述特定位置处存储的性能测试数据信息的准确性;
如果不准确,则根据预置场景分别对各个所述存储模块进行性能测试,分别得到各个所述存储模块的性能测试数据。
6.根据权利要求5所述的存储阵列管理方法,其特征在于,还包括:
根据所述测试得到的性能测试数据,更新所述存储模块上的特定位置处存储的性能测试数据。
7.根据权利要求1所述的存储阵列管理方法,其特征在于,所述获取存储阵列中的各存储模块的性能测试数据包括:
在设定的时间间隔和/或系统空闲时,根据预制场景,对个所述存储模块进行读写测试;所述预制场景包括,顺序读、写,随机读、写,或者读写混合;
根据测试结果分别确定各个所述存储模块的性能测试数据;所述性能测试数据包括,每秒进行读、写(I/O)操作的次数,读、写带宽,读、写延时中的至少一项。
8.一种存储阵列管理装置,其特征在于,包括:
获取单元,用于获取存储阵列中的各存储模块的性能测试数据;所述存储阵列中至少包括一个存储模块;
分区单元,用于根据所述存储阵列中的各个存储模块的性能测试数据,确定各存储模块所属的分区类别,其中,不同类别的分区用于存储不同活跃度的数据;
所述存储阵列为全闪存阵列,所述存储模块的介质类型包括单层单元SLC介质以及多层单元MLC介质;
所述分区单元,还具体用于判断属于各分区类别的存储模块的介质类型;若由性能测试数据较优的存储模块构成的分区中包括MLC介质的存储模块,则将所述MLC介质的存储模块用于存储活跃度较高的数据;若由性能测试数据较差的存储模块构成的分区中包括SLC介质的存储模块,则将所述SLC介质的存储模块用于存储活跃度较低的数据。
9.根据权利要求8所述的装置,其特征在于,所述分区单元包括:
得分确定子单元,用于根据各存储模块的性能测试数据确定各存储模块的性能得分;
排序子单元,用于根据所述得分对各存储模块进行排序;
分区子单元,用于根据排序结果确定各存储模块所属的分区类别。
10.根据权利要求8所述的装置,其特征在于,还包括:
标识单元,用于将存储模块的标识信息添加到对应分区类别的模块标识列表中。
11.根据权利要求8所述的存储阵列管理装置,其特征在于,所述装置还包括:
测试单元,用于预先对所述存储模块进行性能测试得到性能测试数据,将所述性能测试数据存储在存储模块特定位置处;
所述获取单元,具体用于获取存储在所述存储模块特定位置处的性能测试数据。
12.根据权利要求11所述的装置,其特征在于,还包括:
判断单元,用于判断所述特定位置处存储的性能测试数据信息的准确性;
所述测试单元还用于,如果不准确,则根据预置场景分别对各个所述存储模块进行性能测试,分别得到各个所述存储模块的性能测试数据。
13.根据权利要求12所述的存储阵列管理装置,其特征在于,还包括:
更新单元,用于根据所述测试得到的性能测试数据,更新所述存储模块上的特定位置处存储的性能测试数据。
14.根据权利要求8所述的存储阵列管理装置,其特征在于,所述获取单元包括:
读写测试子单元,用于在设定的时间间隔和/或系统空闲时,根据预制场景,对个所述存储模块进行读写测试;所述预制场景包括,顺序读、写,随机读、写,或者读写混合;
数据确定子单元,用于根据测试结果分别确定各个所述存储模块的性能测试数据;所述性能测试数据包括,每秒进行读、写(I/O)操作的次数,读、写带宽,读、写延时中的至少一项。
CN201510600780.8A 2015-09-18 2015-09-18 存储阵列管理方法及装置 Active CN106547472B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910804375.6A CN110727399B (zh) 2015-09-18 2015-09-18 存储阵列管理方法及装置
CN201510600780.8A CN106547472B (zh) 2015-09-18 2015-09-18 存储阵列管理方法及装置
PCT/CN2016/095291 WO2017045500A1 (zh) 2015-09-18 2016-08-15 存储阵列管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510600780.8A CN106547472B (zh) 2015-09-18 2015-09-18 存储阵列管理方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201910804375.6A Division CN110727399B (zh) 2015-09-18 2015-09-18 存储阵列管理方法及装置

Publications (2)

Publication Number Publication Date
CN106547472A CN106547472A (zh) 2017-03-29
CN106547472B true CN106547472B (zh) 2019-09-13

Family

ID=58288443

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910804375.6A Active CN110727399B (zh) 2015-09-18 2015-09-18 存储阵列管理方法及装置
CN201510600780.8A Active CN106547472B (zh) 2015-09-18 2015-09-18 存储阵列管理方法及装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201910804375.6A Active CN110727399B (zh) 2015-09-18 2015-09-18 存储阵列管理方法及装置

Country Status (2)

Country Link
CN (2) CN110727399B (zh)
WO (1) WO2017045500A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109634516A (zh) * 2017-10-09 2019-04-16 北京握奇智能科技有限公司 一种芯片存储器的读、写数据方法及系统
CN109634514B (zh) * 2017-10-09 2024-03-29 北京握奇智能科技有限公司 一种芯片存储器的读、写数据方法及系统
CN107678902A (zh) * 2017-10-31 2018-02-09 郑州云海信息技术有限公司 一种统一存储阵列的测试方法及其装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103250143A (zh) * 2012-12-28 2013-08-14 华为技术有限公司 数据存储方法和存储设备
CN103677653A (zh) * 2012-09-21 2014-03-26 联想(北京)有限公司 一种基于ssd的数据处理方法及电子设备
CN103942157A (zh) * 2013-01-22 2014-07-23 国际商业机器公司 用于计算存储环境中的数据处理的方法和系统
CN104331252A (zh) * 2014-10-10 2015-02-04 上海新储集成电路有限公司 异构nand固态硬盘结构及其数据读取管理方法
CN104536909A (zh) * 2014-12-09 2015-04-22 华为技术有限公司 一种存储管理方法,存储管理装置及存储设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356648B2 (en) * 2003-10-02 2008-04-08 International Business Machines Corporation Shared buffer having hardware controlled buffer regions
US8307180B2 (en) * 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
CN102117248A (zh) * 2011-03-09 2011-07-06 浪潮(北京)电子信息产业有限公司 一种缓存系统和在缓存系统中缓存数据的方法
KR20130081459A (ko) * 2012-01-09 2013-07-17 삼성전자주식회사 휴대단말기의 pre―load 어플리케이션 탑재를 위한 메모리 영역구분 장치
WO2015072925A1 (en) * 2013-11-14 2015-05-21 Agency For Science, Technology And Research Method for hot i/o selective placement and metadata replacement for non-volatile memory cache on hybrid drive or system
KR101525453B1 (ko) * 2014-04-09 2015-06-04 인하대학교 산학협력단 데이터 접근빈도를 이용한 raid 시스템의 데이터 복제 방법
CN104615953B (zh) * 2015-02-10 2018-01-09 复旦大学 一种配置数据流安全性高的可编程逻辑器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677653A (zh) * 2012-09-21 2014-03-26 联想(北京)有限公司 一种基于ssd的数据处理方法及电子设备
CN103250143A (zh) * 2012-12-28 2013-08-14 华为技术有限公司 数据存储方法和存储设备
CN103942157A (zh) * 2013-01-22 2014-07-23 国际商业机器公司 用于计算存储环境中的数据处理的方法和系统
CN104331252A (zh) * 2014-10-10 2015-02-04 上海新储集成电路有限公司 异构nand固态硬盘结构及其数据读取管理方法
CN104536909A (zh) * 2014-12-09 2015-04-22 华为技术有限公司 一种存储管理方法,存储管理装置及存储设备

Also Published As

Publication number Publication date
CN106547472A (zh) 2017-03-29
CN110727399B (zh) 2021-09-03
CN110727399A (zh) 2020-01-24
WO2017045500A1 (zh) 2017-03-23

Similar Documents

Publication Publication Date Title
CN111566610B (zh) 命令选择策略
CN104115134B (zh) 用于管理对复合数据存储设备进行访问的方法和系统
US9898402B2 (en) Unaligned data coalescing
KR101915830B1 (ko) 풀링된 파티션 레이아웃 및 표현 기법
US20230015404A1 (en) Memory system and data processing system including the same
US20080162792A1 (en) Caching device for nand flash translation layer
CN107220185A (zh) 基于闪存的数据存储方法、装置以及闪存芯片
US8892812B2 (en) Flash memory device and data writing method for a flash memory
CN106547472B (zh) 存储阵列管理方法及装置
CN101840364A (zh) 一种恢复数据的方法及存储装置
CN110221770A (zh) 在存储装置当中改进数据分布的方法
CN109952565A (zh) 内存访问技术
CN110377233A (zh) Ssd读性能优化方法、装置、计算机设备及存储介质
CN110765032A (zh) 基于系统管理总线接口对i2c存储器进行读写的方法
CN104598161B (zh) 数据读取、写入方法和装置及数据存储结构
CN104133640B (zh) 从休眠快速恢复
US10169160B2 (en) Database batch update method, data redo/undo log producing method and memory storage apparatus
CN105718328B (zh) 存储器坏区的数据备份方法及系统
CN106155910A (zh) 一种实现内存访问的方法、装置和系统
US8504764B2 (en) Method and apparatus to manage object-based tiers
CN110990207A (zh) 基于Whitley平台的BPS内存测试方法、系统、终端及存储介质
CN201397674Y (zh) 一种存储设备
US20110153674A1 (en) Data storage including storing of page identity and logical relationships between pages
CN108139993A (zh) 内存装置、内存控制器、数据缓存装置及计算机系统
CN110209357A (zh) 提高ssd大文件写性能的方法、装置、计算机设备及存储介质

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