CN111984184A - 固态硬盘的数据管理方法、装置、存储介质及电子设备 - Google Patents
固态硬盘的数据管理方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN111984184A CN111984184A CN201910434621.3A CN201910434621A CN111984184A CN 111984184 A CN111984184 A CN 111984184A CN 201910434621 A CN201910434621 A CN 201910434621A CN 111984184 A CN111984184 A CN 111984184A
- Authority
- CN
- China
- Prior art keywords
- check
- data
- blocks
- group
- data blocks
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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
Abstract
本申请实施例公开了一种固态硬盘的数据管理方法、装置、存储介质及电子设备。该方案用以解决固态硬盘的数据读取拥堵的问题。本申请实施例所提供的技术方案,用于存在数据块的数据读取过程中存在拥堵的情况下,通过重定向其他数据块和校验块来读取整个校验组中的数据。本方案采用对校验组中的数据块和校验块隔离设置的技术手段,避免由于同一校验组中数据块相邻设置时,相邻数据块上的拥堵情况类似,重定向读取时依然无法提高数据读取速度的问题。通过执行本技术方案,可以实现快速并准确的对固态硬盘的数据进行读取的效果。
Description
技术领域
本申请实施例涉及数据存储技术领域,尤其涉及一种固态硬盘的数据管理方法、装置、存储介质及电子设备。
背景技术
随着社会经济的快速发展,科技水平的逐渐提高,为了能够更加有效的保护人们的人身、财产的安全不受到侵犯,监控系统已经遍布世界各地。
随着监控系统覆盖面的逐渐增加,监控数据的存储量也在日益增多。固态硬盘容量不断提升,价格逐步下降,基于固态硬盘的存储设备在监控系统中的应用发展迅速。在监控系统的业务应用中,存储数据的读取是基本功能。录像、图片的回放,各类监控业务数据的分析、计算和呈现,都依赖存储数据的读取,读取性能的高低直接关系到监控系统的性能规格。随着摄像头分辨率的不断提升,监控业务数据的海量化,读取性能越来越重要,成为监控系统的核心竞争力之一。
基于固态硬盘的存储系统,为确保数据存储的可靠性,同机械硬盘一样,采用阵列技术来提升存储系统的容错性。RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)是将多台硬盘通过控制器结合成虚拟单台大容量的磁盘使用,其特色是多台硬盘同时读取速度加快并且能够提供容错性,RAID按照实现原理的不同可以分为不同的级别,例如RAID0、RAID1、RAID5等。SSD(Solid State Disk,固态硬盘)由控制单元和固态电子存储芯片(通常为FLASH存储器)阵列组成,其抗震性佳,同时工作温度很宽。SSD相对硬盘的最显著优势就是速度,在I/O性能指标IOPs(即每秒IO动作次数)方面,SSD可以达到硬盘的50~1000倍,这就使得固态硬盘在数据读取方面会面临数据读取拥堵的问题。
发明内容
本申请实施例提供一种固态硬盘的数据管理方法、装置、存储介质及电子设备,可以实现快速并准确的对固态硬盘的数据进行存储和读取的效果。
第一方面,本申请实施例提供了一种固态硬盘的数据管理方法,以解决固态硬盘的数据读取拥堵的问题,该方法包括:
获取存储单元阵列中每个条带上面的存储单元个数,以及获取每个校验组中数据块和校验块的个数;其中,存储单元阵列是存储芯片按照第二方向对其排列构成的,每个存储芯片包括一列沿着第一方向排列的存储单元,每个条带包括按照存储单元阵列的第二方向排列的一行存储单元,其中所述第一方向和所述第二方向垂直;
根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块在存储单元阵列中的分布位置;其中,每个数据块分布在一个存储单元,每个校验块分布在一个存储单元,且每个校验组的数据块与数据块之间以及数据块与校验块之间第二方向上分隔至少一个存储单元;
按照固态硬盘的每个校验组中数据块与校验块的分布位置对数据进行存储和/或读取。
进一步的,根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块在存储单元阵列中的分布位置,包括:
根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块只分布在一个条带的条件下,各校验组的分布位置;其中,各校验组的分布位置为每个校验组的数据块与数据块之间以及数据块与校验块之间在同一个条带上且第二方向上分隔至少一个存储单元。
进一步的,根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块在存储单元阵列中的分布位置,包括:
根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块分布在至少两个条带的条件下,各校验组的分布位置;其中,各校验组的分布位置为每个校验组的数据块与数据块之间以及数据块与校验块之间在至少两个条带上且第二方向上分隔至少一个存储单元。
进一步的,在按照固态硬盘的每个校验组中数据块与校验块的分布位置对数据进行读取之前,所述方法还包括:
判断是否存在繁忙状态存储芯片;
若是,则确定要读取目标校验组的数据块是否分布在繁忙状态存储芯片上;
若是,则重定向到目标校验组分布在繁忙状态存储芯片以外的其他数据块以及校验块来读取数据,并根据其他数据块以及校验块的数据来确定要读取目标校验组的数据内容。
进一步的,判断是否存在繁忙状态存储芯片,包括:
确定存储单元阵列中各存储芯片的繁忙程度;
若存在存储芯片繁忙程度符合预设条件,则标记该存储芯片为繁忙状态存储芯片。
进一步的,确定存储单元阵列中各存储芯片的繁忙程度,包括:
根据存储单元阵列中各存储芯片的数据请求的调度需求,确定存储单元阵列中各存储芯片的繁忙程度。
进一步的,在按照固态硬盘的每个校验组中数据块与校验块的分布位置对数据进行读取之前,所述方法还包括:
确定要读取的目标校验组的数据块所处的存储芯片中最繁忙存储芯片;
重定向到目标校验组分布在最繁忙存储芯片以外的其他数据块以及校验块来读取数据,并根据其他数据块以及校验块的数据来确定要读取目标校验组的数据内容。
第二方面,本申请实施例提供了一种固态硬盘的数据管理装置,以解决固态硬盘的数据读取拥堵的问题,该装置包括:
信息获取模块,用于获取存储单元阵列中每个条带上面的存储单元个数,以及获取每个校验组中数据块和校验块的个数;其中,存储单元阵列是存储芯片按照第二方向对其排列构成的,每个存储芯片包括一列沿着第一方向排列的存储单元,每个条带包括按照存储单元阵列的第二方向排列的一行存储单元,其中所述第一方向和所述第二方向垂直;
分布位置确定模块,用于根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块在存储单元阵列中的分布位置;其中,每个数据块分布在一个存储单元,每个校验块分布在一个存储单元,且每个校验组的数据块与数据块之间以及数据块与校验块之间第二方向上分隔至少一个存储单元;
数据存储及读取模块,用于按照固态硬盘的每个校验组中数据块与校验块的分布位置对数据进行存储和/或读取。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的固态硬盘的数据管理方法。
第四方面,本申请实施例提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的固态硬盘的数据管理方法。
本申请实施例所提供的技术方案,获取存储单元阵列中每个条带上面的存储单元个数,以及获取每个校验组中数据块和校验块的个数;其中,存储单元阵列是存储芯片按照第二方向对其排列构成的,每个存储芯片包括一列沿着第一方向排列的存储单元,每个条带包括按照存储单元阵列的第二方向排列的一行存储单元,其中所述第一方向和所述第二方向垂直;根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块在存储单元阵列中的分布位置;其中,每个数据块分布在一个存储单元,每个校验块分布在一个存储单元,且每个校验组的数据块与数据块之间以及数据块与校验块之间第二方向上分隔至少一个存储单元;按照固态硬盘的每个校验组中数据块与校验块的分布位置对数据进行存储和/或读取。通过采用本申请所提供的技术方案,采用对每个校验组的数据块与数据块之间以及数据块与校验块之间相隔离设置的技术手段,避免由于同一校验组中数据块相邻设置时,相邻数据块上的拥堵情况类似,重定向读取时依然无法提高数据读取速度的问题。通过执行本技术方案,可以实现快速并准确的对固态硬盘的数据进行读取的效果。
附图说明
图1是一种校验组分布位置示意图;
图2是本申请实施例一提供的固态硬盘的数据管理方法的流程图;
图3是一种校验组分布位置示意图;
图4是一种校验组分布位置示意图;
图5是本申请实施例二提供的固态硬盘的数据管理装置的结构示意图;
图6是本申请实施例四提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
基于固态硬盘的存储系统,为确保数据存储的可靠性,同机械硬盘一样,采用阵列技术来提升存储系统的容错性。闪存阵列通常采取RAID1,RAID5,RAID6等成熟的阵列技术。
其中应用最为广泛的是RAID5。RAID5把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上,其中任意N-1块磁盘上都存储完整的数据,有相当于一块磁盘容量的空间用于存储奇偶校验信息。当RAID5的一个磁盘发生损坏,将损坏的磁盘替换后,阵列会自动利用剩下奇偶校验信息去重建此磁盘上的数据,不会影响数据的完整性,从而保证了数据安全。
和机械硬盘有所不同,闪存阵列内部的并行性导致其读性能(即读取数据的过程)受到I/O竞争的影响很大。闪存阵列通常由多个通道组成,其中每个通道由多个NAND闪存芯片连接而成。这些并行的器件可以为闪存阵列提供可并行性,但各类I/O请求存在竞争关系。例如链路竞争和存储竞争。链路竞争即不同的I/O请求同时竞争同一I/O总线来传输数据;存储竞争即不同的I/O请求短时间内访问同一存储芯片。由于I/O总线的传输速度比存储芯片的传输速度要快几十倍,所以最主要的竞争关系是存储竞争。这些竞争关系的存在,使闪存阵列的读取性能受到很大影响。
图1是一种校验组分布位置示意图。如图1所示,该结构为传统芯片级RAID5。闪存阵列中有Chip0到Chip8共9个芯片,闪存阵列的每一行存储单元化分为一个条带,如条带0,条带1,条带2,至条带n,每个条带有存储单元组成,每个条带横跨所有芯片。条带被细分为不同的校验组,如条带0被分为校验组1,校验组2和校验组3,每个校验组是最小的容错单元,具体分为两个数据块和一个校验块。发生故障时,读取本校验组相关数据可修复丢失数据,从而提高鲁棒性。图1为传统RAID5阵列中的数据布局。数据读取时同相邻芯片的负载基本相同。当出现读请求的I/O竞争时,通常通过重定向芯片来避免冲突。重定向芯片即如果发现一个芯片出现I/O竞争时,可以通过读取该芯片的数据块以外的数据块和校验块来实现数据的读取。例如当数据块d1所处的芯片Chip1出现I/O竞争时,可以通过读取d0和p0来实现对该校验组的数据的读取。但是,但由于目标校验组所在的相邻芯片的负载基本相同,因此重定向无法缓解I/O竞争的问题。从而,会导致影响数据的读取速度的问题。
实施例一
图2是本申请实施例一提供的固态硬盘的数据管理方法的流程图,本实施例可适于解决固态硬盘的数据读取拥堵的情况,该方法可以由本申请实施例所提供的固态硬盘的数据管理装置执行,该装置可以由软件和/或硬件的方式来实现,并可集成于智能终端等电子设备中。
如图2所示,所述固态硬盘的数据管理方法包括:
S210、获取存储单元阵列中每个条带上面的存储单元个数,以及获取每个校验组中数据块和校验块的个数;其中,存储单元阵列是存储芯片按照第二方向对其排列构成的,每个存储芯片包括一列沿着第一方向排列的存储单元,每个条带包括按照存储单元阵列的第二方向排列的一行存储单元,其中所述第一方向和所述第二方向垂直。
其中,每个条带上面存储单元的个数,取决于一个条带上面同时并行连接了多少个存储芯片。在本实施例中,存储单元阵列是存储芯片按照第二方向对其排列构成的。可以理解为每个存储芯片中的存储单元的数量是一定的,且每个存储芯片中存储单元是按照一个方向排列的,这样,可以通过将存储芯片并行放置,构成存储单元阵列。例如,每个存储芯片中的存储单元是纵向排列的,则可以将多个存储芯片水平对齐排列,这样就可以构成存储单元阵列。其中,条带可以是存储芯片对齐排列后,并行连接所有存储芯片的同一次序的存储单元构成的。结合上述示例,条带可以是一行存储单元构成的。
则可以获取每个条带所包含的存储单元个数,并且可以根据当前的固态硬盘的冗余存储单元的设置,获取每个校验组中,数据块和校验块的个数,其中数据块的个数可以是两个或者更多,校验块的个数为一个。这样可以在数据块中存在一个数据块不能够正常被读取数据时,可以通过校验块的数据,来反推该不能够正常读取的数据块内所存储的数据内容,从而可以实现容错的效果。
S220、根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块在存储单元阵列中的分布位置;其中,每个数据块分布在一个存储单元,每个校验块分布在一个存储单元,且每个校验组的数据块与数据块之间以及数据块与校验块之间第二方向上分隔至少一个存储单元。
其中,可以根据每个条带上面存储单元的个数,以及每个校验组的数据块和校验块所需要使用的存储单元的个数,来确定每个校验组中数据块和校验块在存储单元阵列中的分布位置。其中,每个数据块分布在一个存储单元,每个校验块分布在一个存储单元,在确定数据块和校验块分布位置的过程中,可以预先设定规则,该预先设定的规则可以是每个校验组的数据块与数据块之间以及数据块与校验块之间第一方向上分隔至少一个存储单元。这样设置的好处是可以确保每个校验组中,数据块与数据块之间,以及数据块与校验块之间,间隔至少一个存储单元,也就是每个数据块和校验块所分布的存储芯片之间,间隔至少一个存储芯片,可以达到离散设置的效果。这样在发生I/O竞争时,重定向芯片可以避免相邻芯片的繁忙程度接近造成的重定向无法提高数据读取速度的问题。
在本实施例中,可选的,根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块在存储单元阵列中的分布位置,包括:根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块只分布在一个条带的条件下,各校验组的分布位置;其中,各校验组的分布位置为每个校验组的数据块与数据块之间以及数据块与校验块之间在同一个条带上且第二方向上分隔至少一个存储单元。
图3是一种校验组分布位置示意图。如图3所示,每个校验组的数据块和校验块可以分布在同一个条带上。则为了实现上述规则,可以将存储单元d0和d3作为一个校验组的数据块,将p0作为该校验组的校验块。这样,d0,d3和p0之间都间隔两个存储芯片,其他校验组也采用类似的设置,同时可以将该条带上的规则运用到其他条带上,这样就会得到整个存储单元阵列达到每个校验组中数据块和校验块都是隔离设置的效果,可以在数据存储和读取过程中避免出现拥堵现象。
这种均匀分布的数据布局方式为同条带横向布局的方式之一,可以用下面的格式来简化代表,其中的1,2,3分别表示校验组1,2,3,校验组中的数据块和校验块均不相邻,且间隔均为2。
1 | 2 | 3 | 1 | 2 | 3 | 1 | 2 | 3 |
根据排列运算可知,在确保同一校验组中各数据块和校验块均不相邻的前提下,共有24种排列方式,如表1所示。上面的布局方式为其中的第15种方式。
表1同条带横向布局方式
在本实施例中,可选的,根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块在存储单元阵列中的分布位置,包括:根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块分布在至少两个条带的条件下,各校验组的分布位置;其中,各校验组的分布位置为每个校验组的数据块与数据块之间以及数据块与校验块之间在至少两个条带上且第二方向上分隔至少一个存储单元。
图4是一种校验组分布位置示意图。如图4所示,可以将条带0上面的d0,条带1上面的d3和条带2上面的p0设置为一个校验组的数据块和校验块。同理,将条带0上面的d1,条带1上面的d4和条带2上面的p1设置为一个校验组的数据块和校验块,将条带0上面的d2,条带1上面的d5和条带2上面的p2设置为一个校验组的数据块和校验块。这样,每个校验组的数据块和校验块可以分布在不同的条带上,也可以两个数据块分布在同一个条带上,校验块分布在其他条带上,也可以数据块中的一个与校验块分布在同一个条带上,另一个数据块分布在不同的条带上。这样设置不仅同一校验组中的数据块和校验块隔至少一个存储芯片,而且数据块和校验块不在同一个条带上,有利于提高校验组中的数据的存储和读取速度。
除了图4中的示例以外,还可以存在其他跨至少两个条带的校验组分布位置的方式。例如,可以将两个数据块设置在同一个条带上,将校验块设置在下一个条带上;还有将一个数据块和校验块设置在同一个条带上,将另外一个数据块设置在下一个条带上。在本实施例中,可以将校验组分布在跨更多个条带的存储单元上,但是为了存储数据的位置相对整齐,以及保证数据的读取是稳定的,可以将同一个校验组分布在两个或者三个条带上面。
S230、按照固态硬盘的每个校验组中数据块与校验块的分布位置对数据进行存储和/或读取。
其中,在确定每个校验组的分布位置之后,可以按照该分布位置进行数的存储和读取。
本申请实施例所提供的技术方案,获取存储单元阵列中每个条带上面的存储单元个数,以及获取每个校验组中数据块和校验块的个数;其中,存储单元阵列是存储芯片按照第二方向对其排列构成的,每个存储芯片包括一列沿着第一方向排列的存储单元,每个条带包括按照存储单元阵列的第二方向排列的一行存储单元,其中所述第一方向和所述第二方向垂直;根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块在存储单元阵列中的分布位置;其中,每个数据块分布在一个存储单元,每个校验块分布在一个存储单元,且每个校验组的数据块与数据块之间以及数据块与校验块之间第二方向上分隔至少一个存储单元;按照固态硬盘的每个校验组中数据块与校验块的分布位置对数据进行存储和/或读取。通过采用本申请所提供的技术方案,可以实现快速并准确的对固态硬盘的数据进行存储和读取的效果。
在上述各技术方案的基础上,优选的,在按照固态硬盘的每个校验组中数据块与校验块的分布位置对数据进行读取之前,所述方法还包括:判断是否存在繁忙状态存储芯片;若是,则确定要读取目标校验组的数据块是否分布在繁忙状态存储芯片上;若是,则重定向到目标校验组分布在繁忙状态存储芯片以外的其他数据块以及校验块来读取数据,并根据其他数据块以及校验块的数据来确定要读取目标校验组的数据内容。其中,在按照固态硬盘的每个校验组的分布位置对数据进行读取之前,可以对存储芯片的繁忙状态进行判断,若判断存在繁忙状态的存储芯片,则确定需要读取的目标校验组的数据块是否分布在该繁忙状态存储芯片上,若是,则需要重定向芯片来进行数据读取。本实施例这样设置的好处是可以提高数据读取速度。
其中,通常在RAID阵列中,当一块磁盘发生损坏时,系统无法直接读取目标数据块,通过读取目标数据校验组内其它数据块以及校验数据块,经运算重新获得目标数据。这种方式称为“退化读”,通常只在阵列出现退化时才会如此操作。
这里提出一种RAID5阵列的重定向读取方法,不仅在阵列退化时,在阵列正常但出现I/O竞争时也采取类似读取策略。当I/O竞争时,将对繁忙芯片的读请求重定向到同一校验组中相对空闲的其它数据块和校验数据块,通过运算获得目标数据。
在传统RAID5阵列中,由于目标校验组所在的相邻芯片的负载基本相同,因此重定向无法缓解I/O竞争的问题。而结合上面的闪存阵列数据布局方式,校验组不在相邻的芯片中,各个芯片处于不同级别的负载之下,可以从最繁忙的芯片重定向到相对空闲的芯片,从而缓解I/O竞争带来的读性能问题。
在上述各技术方案的基础上,优选的,判断是否存在繁忙状态存储芯片,包括:确定存储单元阵列中各存储芯片的繁忙程度;若存在存储芯片繁忙程度符合预设条件,则标记该存储芯片为繁忙状态存储芯片。其中,可以具体的以各存储芯片的繁忙程度与预设繁忙程度之间的关系,确定各存储芯片是否为繁忙状态存储芯片。这样设置的好处是可以统一标准,提高对繁忙状态芯片的确定的准确性。
在上述各技术方案的基础上,优选的,确定存储单元阵列中各存储芯片的繁忙程度,包括:根据存储单元阵列中各存储芯片的数据请求的调度需求,确定存储单元阵列中各存储芯片的繁忙程度。在本技术方案中,芯片的繁忙程度,通过数据请求的调度需求来计算。I/O读请求,包含3个元素:请求的逻辑块号,请求的块大小,请求的发送时间。在一段时间间隔内,根据起始的逻辑块号和待读取的块大小,算出哪些数据块处于最繁忙的请求,将这些最繁忙的数据块进行标记,按照重定向读取方法,重定向到同一校验组中相对空闲的其它数据块和校验数据块来获得目标数据,从而缓解了I/O请求的冲突。
在上述各技术方案的基础上,优选的,在按照固态硬盘的每个校验组中数据块与校验块的分布位置对数据进行读取之前,所述方法还包括:确定要读取的目标校验组的数据块所处的存储芯片中最繁忙存储芯片;重定向到目标校验组分布在最繁忙存储芯片以外的其他数据块以及校验块来读取数据,并根据其他数据块以及校验块的数据来确定要读取目标校验组的数据内容。本技术方案,采用的是根据当前各存储芯片的繁忙程度,确定需要读取的目标校验组的数据块所处的存储芯片中最繁忙的一个存储芯片。从而可以在数据读取过程中,对处在最繁忙的存储芯片的数据块进行重定向,从而提高数据读取速度。
实施例二
图5是本申请实施例二提供的固态硬盘的数据管理装置的结构示意图。如图5所示,所述固态硬盘的数据管理装置,包括:
信息获取模块510,用于获取存储单元阵列中每个条带上面的存储单元个数,以及获取每个校验组中数据块和校验块的个数;其中,存储单元阵列是存储芯片按照第二方向对其排列构成的,每个存储芯片包括一列沿着第一方向排列的存储单元,每个条带包括按照存储单元阵列的第二方向排列的一行存储单元,其中所述第一方向和所述第二方向垂直;
分布位置确定模块520,用于根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块在存储单元阵列中的分布位置;其中,每个数据块分布在一个存储单元,每个校验块分布在一个存储单元,且每个校验组的数据块与数据块之间以及数据块与校验块之间第二方向上分隔至少一个存储单元;
数据存储及读取模块530,用于按照固态硬盘的每个校验组中数据块与校验块的分布位置对数据进行存储和/或读取。
本申请实施例所提供的技术方案,获取存储单元阵列中每个条带上面的存储单元个数,以及获取每个校验组中数据块和校验块的个数;其中,存储单元阵列是存储芯片按照第二方向对其排列构成的,每个存储芯片包括一列沿着第一方向排列的存储单元,每个条带包括按照存储单元阵列的第二方向排列的一行存储单元,其中所述第一方向和所述第二方向垂直;根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块在存储单元阵列中的分布位置;其中,每个数据块分布在一个存储单元,每个校验块分布在一个存储单元,且每个校验组的数据块与数据块之间以及数据块与校验块之间第二方向上分隔至少一个存储单元;按照固态硬盘的每个校验组中数据块与校验块的分布位置对数据进行存储和/或读取。通过采用本申请所提供的技术方案,可以实现快速并准确的对固态硬盘的数据进行存储和读取的效果。
上述产品可执行本申请任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
实施例三
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种固态硬盘的数据管理方法,该方法包括:
获取存储单元阵列中每个条带上面的存储单元个数,以及获取每个校验组中数据块和校验块的个数;其中,存储单元阵列是存储芯片按照第二方向对其排列构成的,每个存储芯片包括一列沿着第一方向排列的存储单元,每个条带包括按照存储单元阵列的第二方向排列的一行存储单元,其中所述第一方向和所述第二方向垂直;
根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块在存储单元阵列中的分布位置;其中,每个数据块分布在一个存储单元,每个校验块分布在一个存储单元,且每个校验组的数据块与数据块之间以及数据块与校验块之间第二方向上分隔至少一个存储单元;
按照固态硬盘的每个校验组中数据块与校验块的分布位置对数据进行存储和/或读取。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的专注程度的监控操作,还可以执行本申请任意实施例所提供的固态硬盘的数据管理方法中的相关操作。
实施例四
本申请实施例提供了一种电子设备,该电子设备中可集成本申请实施例提供的固态硬盘的数据管理装置。图6是本申请实施例四提供的一种电子设备的结构示意图。如图6所示,本实施例提供了一种电子设备600,其包括:一个或多个处理器620;存储装置610,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器620执行,使得所述一个或多个处理器620实现本申请实施例所提供的固态硬盘的数据管理方法,该方法包括:
获取存储单元阵列中每个条带上面的存储单元个数,以及获取每个校验组中数据块和校验块的个数;其中,存储单元阵列是存储芯片按照第二方向对其排列构成的,每个存储芯片包括一列沿着第一方向排列的存储单元,每个条带包括按照存储单元阵列的第二方向排列的一行存储单元,其中所述第一方向和所述第二方向垂直;
根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块在存储单元阵列中的分布位置;其中,每个数据块分布在一个存储单元,每个校验块分布在一个存储单元,且每个校验组的数据块与数据块之间以及数据块与校验块之间第二方向上分隔至少一个存储单元;
按照固态硬盘的每个校验组中数据块与校验块的分布位置对数据进行存储和/或读取。
当然,本领域技术人员可以理解,处理器620还可以实现本申请任意实施例所提供的固态硬盘的数据管理方法的技术方案。
图6显示的电子设备600仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,该电子设备600包括处理器620、存储装置610、输入装置630和输出装置640;电子设备中处理器620的数量可以是一个或多个,图6中以一个处理器620为例;电子设备中的处理器620、存储装置610、输入装置630和输出装置640可以通过总线或其他方式连接,图6中以通过总线650连接为例。
存储装置610作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块单元,如本申请实施例中的固态硬盘的数据管理方法对应的程序指令。
存储装置610可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置610可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置610可进一步包括相对于处理器620远程设置的存储器,这些远程存储器可以通过网络连接。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置630可用于接收输入的数字、字符信息或语音信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置640可包括显示屏、扬声器等设备。
本申请实施例提供的电子设备,可以实现快速并准确的对固态硬盘的数据进行存储和读取的效果。
上述实施例中提供的固态硬盘的数据管理装置、存储介质及电子设备可执行本申请任意实施例所提供的固态硬盘的数据管理方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的固态硬盘的数据管理方法。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (10)
1.一种固态硬盘的数据管理方法,其特征在于,以解决固态硬盘的数据读取拥堵的问题,该方法包括:
获取存储单元阵列中每个条带上面的存储单元个数,以及获取每个校验组中数据块和校验块的个数;其中,存储单元阵列是存储芯片按照第二方向对其排列构成的,每个存储芯片包括一列沿着第一方向排列的存储单元,每个条带包括按照存储单元阵列的第二方向排列的一行存储单元,其中所述第一方向和所述第二方向垂直;
根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块在存储单元阵列中的分布位置;其中,每个数据块分布在一个存储单元,每个校验块分布在一个存储单元,且每个校验组的数据块与数据块之间以及数据块与校验块之间第二方向上分隔至少一个存储单元;
按照固态硬盘的每个校验组中数据块与校验块的分布位置对数据进行存储和/或读取。
2.根据权利要求1所述的方法,其特征在于,根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块在存储单元阵列中的分布位置,包括:
根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块只分布在一个条带的条件下各校验组的分布位置;其中,各校验组的分布位置为每个校验组的数据块与数据块之间以及数据块与校验块之间在同一个条带上且第二方向上分隔至少一个存储单元。
3.根据权利要求1所述的方法,其特征在于,根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块在存储单元阵列中的分布位置,包括:
根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块分布在至少两个条带的条件下各校验组的分布位置;其中,各校验组的分布位置为每个校验组的数据块与数据块之间以及数据块与校验块之间在至少两个条带上且第二方向上分隔至少一个存储单元。
4.根据权利要求1所述的方法,其特征在于,在按照固态硬盘的每个校验组中数据块与校验块的分布位置对数据进行读取之前,所述方法还包括:
判断是否存在繁忙状态存储芯片;
若是,则确定要读取目标校验组的数据块是否分布在繁忙状态存储芯片上;
若是,则重定向到目标校验组分布在繁忙状态存储芯片以外的其他数据块以及校验块来读取数据,并根据其他数据块以及校验块的数据来确定要读取目标校验组的数据内容。
5.根据权利要求4所述的方法,其特征在于,判断是否存在繁忙状态存储芯片,包括:
确定存储单元阵列中各存储芯片的繁忙程度;
若存在存储芯片繁忙程度符合预设条件,则标记该存储芯片为繁忙状态存储芯片。
6.根据权利要求5所述的方法,其特征在于,确定存储单元阵列中各存储芯片的繁忙程度,包括:
根据存储单元阵列中各存储芯片的数据请求的调度需求,确定存储单元阵列中各存储芯片的繁忙程度。
7.根据权利要求1所述的方法,其特征在于,在按照固态硬盘的每个校验组中数据块与校验块的分布位置对数据进行读取之前,所述方法还包括:
确定要读取的目标校验组的数据块所处的存储芯片中最繁忙存储芯片;
重定向到目标校验组分布在最繁忙存储芯片以外的其他数据块以及校验块来读取数据,并根据其他数据块以及校验块的数据来确定要读取目标校验组的数据内容。
8.一种固态硬盘的数据管理装置,其特征在于,以解决固态硬盘的数据读取拥堵的问题,该装置包括:
信息获取模块,用于获取存储单元阵列中每个条带上面的存储单元个数,以及获取每个校验组中数据块和校验块的个数;其中,存储单元阵列是存储芯片按照第二方向对其排列构成的,每个存储芯片包括一列沿着第一方向排列的存储单元,每个条带包括按照存储单元阵列的第二方向排列的一行存储单元,其中所述第一方向和所述第二方向垂直;
分布位置确定模块,用于根据每个条带上面的存储单元个数以及每个校验组中数据块和校验块的个数,确定每个校验组中数据块与校验块在存储单元阵列中的分布位置;其中,每个数据块分布在一个存储单元,每个校验块分布在一个存储单元,且每个校验组的数据块与数据块之间以及数据块与校验块之间第二方向上分隔至少一个存储单元;
数据存储及读取模块,用于按照固态硬盘的每个校验组中数据块与校验块的分布位置对数据进行存储和/或读取。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的固态硬盘的数据管理方法。
10.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的固态硬盘的数据管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910434621.3A CN111984184B (zh) | 2019-05-23 | 2019-05-23 | 固态硬盘的数据管理方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910434621.3A CN111984184B (zh) | 2019-05-23 | 2019-05-23 | 固态硬盘的数据管理方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111984184A true CN111984184A (zh) | 2020-11-24 |
CN111984184B CN111984184B (zh) | 2022-05-17 |
Family
ID=73436556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910434621.3A Active CN111984184B (zh) | 2019-05-23 | 2019-05-23 | 固态硬盘的数据管理方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111984184B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113238716A (zh) * | 2021-06-08 | 2021-08-10 | 北京金山云网络技术有限公司 | 数据访问请求的处理方法、装置和电子设备 |
WO2023284173A1 (zh) * | 2021-07-13 | 2023-01-19 | 苏州浪潮智能科技有限公司 | 固态硬盘的任务分配方法、系统、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5537567A (en) * | 1994-03-14 | 1996-07-16 | International Business Machines Corporation | Parity block configuration in an array of storage devices |
CN101345745A (zh) * | 2007-07-09 | 2009-01-14 | 华为技术有限公司 | 数据成帧方法及其设备 |
US20110154105A1 (en) * | 2009-12-22 | 2011-06-23 | David Woodhouse | Redundant File System |
CN107450852A (zh) * | 2017-07-31 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种存储空间处理方法、装置和设备 |
-
2019
- 2019-05-23 CN CN201910434621.3A patent/CN111984184B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5537567A (en) * | 1994-03-14 | 1996-07-16 | International Business Machines Corporation | Parity block configuration in an array of storage devices |
CN101345745A (zh) * | 2007-07-09 | 2009-01-14 | 华为技术有限公司 | 数据成帧方法及其设备 |
WO2009006818A1 (fr) * | 2007-07-09 | 2009-01-15 | Huawei Technologies Co., Ltd. | Procede et equipement de formation de trames de donnees |
US20110154105A1 (en) * | 2009-12-22 | 2011-06-23 | David Woodhouse | Redundant File System |
CN107450852A (zh) * | 2017-07-31 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种存储空间处理方法、装置和设备 |
Non-Patent Citations (1)
Title |
---|
SINGLESS233: "RAID技术全解图解", 《CSDN》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113238716A (zh) * | 2021-06-08 | 2021-08-10 | 北京金山云网络技术有限公司 | 数据访问请求的处理方法、装置和电子设备 |
WO2023284173A1 (zh) * | 2021-07-13 | 2023-01-19 | 苏州浪潮智能科技有限公司 | 固态硬盘的任务分配方法、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111984184B (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102687121B (zh) | 堆叠式存储器中的错误校正 | |
EP2180407B1 (en) | Fast data recovery from HDD failure | |
US9886204B2 (en) | Systems and methods for optimizing write accesses in a storage array | |
US9304713B2 (en) | Storage system and a method for allocating disk drives to redundancy array of independent disks | |
US20130173972A1 (en) | System and method for solid state disk flash plane failure detection | |
CN111984184B (zh) | 固态硬盘的数据管理方法、装置、存储介质及电子设备 | |
CN110297601B (zh) | 固态硬盘阵列构建方法、电子设备及存储介质 | |
CN102982182B (zh) | 一种数据存储规划方法及装置 | |
US11474919B2 (en) | Method for managing multiple disks, electronic device and computer program product | |
CN113535746B (zh) | 一种非关系型数据通过随机序列读写后控制一致性的方法 | |
CN101510145A (zh) | 一种存储系统管理方法和装置 | |
CN112527492A (zh) | 一种分布式存储系统中的数据存储方法及装置 | |
US11520512B2 (en) | Method for storage management, electronic device and computer program product | |
WO2021088615A1 (zh) | 一种校验数据计算方法及装置 | |
WO2021088423A1 (zh) | 一种用于raid io的内存管理方法、系统、终端及存储介质 | |
US11379326B2 (en) | Data access method, apparatus and computer program product | |
US11922019B2 (en) | Storage device read-disturb-based block read temperature utilization system | |
CN115657946A (zh) | Raid顺序写场景下的片外ddr带宽卸载方法、终端及存储介质 | |
CN110780821A (zh) | 分布式存储系统的优化方法、装置、服务器和存储介质 | |
CN113296702B (zh) | 一种磁盘阵列扩容方法、装置、设备及存储介质 | |
CN110096216B (zh) | 用于管理数据存储系统中的数据存储的方法、装置以及计算机程序产品 | |
CN106354428A (zh) | 一种多物理层分区计算机体系结构的存储共享系统 | |
EP2889751B1 (en) | Method and apparatus for determining redundant array of independent disks | |
CN106708445B (zh) | 链路选择方法及装置 | |
CN115757196B (zh) | 内存、访问内存方法及计算设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |