CN110297601B - 固态硬盘阵列构建方法、电子设备及存储介质 - Google Patents
固态硬盘阵列构建方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110297601B CN110297601B CN201910492195.9A CN201910492195A CN110297601B CN 110297601 B CN110297601 B CN 110297601B CN 201910492195 A CN201910492195 A CN 201910492195A CN 110297601 B CN110297601 B CN 110297601B
- Authority
- CN
- China
- Prior art keywords
- solid state
- data
- copy
- state disk
- 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.)
- Active
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种固态硬盘阵列构建方法、电子设备及存储介质,所述方法包括:通过两层映射架构构建存储池,底下一层映射通过基于正交拉丁方的静态数据布局使多个RAID卷资源共享,将盘池中的存储块组织成条带,其上一层通过映射表进行地址映射;划分存储池的部分存储区域以两副本形式存储数据作为吸收小写请求的缓存,在后台将副本数据转换成条带形式,副本缓存区域以配对条带的形式组织;对构成阵列的固态硬盘状态进行实时监测,标记因为内部后台活动而性能降级的固态硬盘;根据各固态硬盘的状态,对性能降级的固态硬盘上的读写请求进行重定向。本发明实施例能有效降低固态硬盘阵列的平均延迟和尾部延迟,提高系统性能及稳定性。
Description
技术领域
本发明实施例属于计算机存储技术领域,更具体地,涉及一种固态硬盘阵列构建方法、电子设备及存储介质。
背景技术
基于校验保护的独立冗余磁盘阵列(Redundant Array of Independent Disks,RAID)能够提高基于固态硬盘的存储系统的可靠性。但是,直接将RAID应用到固态硬盘构建存储系统,会存在性能问题。RAID校验更新机制增加写请求延迟,并且固态硬盘RAID会存在严重延迟波动。当固态硬盘内部在进行后台操作时,如写缓存回刷和垃圾回收等,上层应用的请求会被暂时阻塞而使得延迟剧烈抖动。此外,现实中应用的I/O负载普遍存在短时间内大量请求突发的现象,也会造成延迟波动。
目前针对固态硬盘RAID的工作大多关注于提高可靠性和降低平均延迟,少数降低尾部延迟的工作主要基于开放通道固态硬盘(Open-Channel Solid State Disk),通过控制其内部的垃圾回收等操作的时机,或对固态硬盘内部操作和上层应用请求进行协同调度等来提高延迟稳定性。但开放通道固态硬盘因其昂贵的价格以及复杂的管理机制等尚未得到广泛使用。数据中心大多还是采用商用固态硬盘。目前仍然没有一种方法能够同时降低基于商用固态硬盘构建的RAID阵列的平均延迟和尾部延迟。
因此,亟需一种能够提供稳定低延迟的固态硬盘阵列构建方法。
发明内容
为克服上述现有的固态硬盘的阵列存储延迟高和延迟波动大的问题或者至少部分地解决上述问题,本发明实施例提供一种固态硬盘阵列构建方法、电子设备及存储介质。
根据本发明实施例的第一方面,提供一种固态硬盘阵列构建方法,包括:
通过两层映射架构构建一个支持数据灵活放置的存储池;其中,两层映射架构的底下一层映射通过基于正交拉丁方的静态数据布局使多个RAID卷资源共享,将存储池中盘池的存储块组织成条带,提供数据容错机制;所述两层映射架构的上一层通过映射表进行地址映射,支持数据灵活放置。
通过划分存储池的部分存储区域以两副本形式存储数据作为吸收小写请求的缓存,以缩短写入过程的关键路径长度,包括避免数据预读、计算校验以及附带的其他软件开销,在后台将副本数据转换成条带形式以提高空间利用率,副本缓存区域以配对条带的形式组织,以避免进行数据转换时的数据迁移操作。
对构成阵列的固态硬盘状态进行实时监测,标记因为内部后台活动而性能降级的固态硬盘;
根据各所述固态硬盘的状态,对所述性能降级的固态硬盘上的读写请求进行重定向。
根据本发明实施例的第二个方面,还提供一种电子设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的固态硬盘阵列构建方法。
根据本发明实施例的第三个方面,还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的固态硬盘阵列构建方法。
本发明实施例提供一种固态硬盘阵列构建方法、电子设备及存储介质,该方法通过两层映射架构构建一个支持数据灵活放置的存储池。底下一层映射通过基于正交拉丁方的静态数据布局使多个RAID卷资源共享,将盘池中的存储块组织成条带,提供数据容错机制。其上一层通过映射表进行地址转换,支持数据灵活放置。通过划分部分存储区域以两副本形式存储数据作为吸收小写请求的缓存,在后台将副本数据转换成条带形式以提高空间利用率。副本缓存区域以配对条带的形式组织,以避免进行数据转换时的数据迁移操作。对构成阵列的固态硬盘状态进行实时监测,标记因为内部后台活动而性能降级的固态硬盘。根据各所述固态硬盘的状态,对所述性能降级的固态硬盘上的读写请求进行重定向,从而能够有效地降低固态硬盘阵列的尾部延迟,提高系统性能稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的固态硬盘阵列构建方法整体流程示意图;
图2为本发明实施例提供的固态硬盘阵列架构示意图;
图3为本发明实施例提供的固态硬盘阵列构建方法数据布局示意图;
图4为本发明实施例提供的固态硬盘阵列构建装置整体结构示意图;
图5为本发明实施例提供的电子设备整体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的一个实施例中提供一种固态硬盘阵列构建方法,图1为本发明实施例提供的固态硬盘阵列构建方法整体流程示意图,该方法包括:S101,通过两层映射架构构建一个支持数据灵活放置的存储池,两层映射架构的底下一层映射通过基于正交拉丁方的静态数据布局将盘池中的存储块组织成条带,提供数据容错机制,两层映射架构的上一层通过映射表进行地址映射,支持数据灵活放置。
S102,通过划分部分存储区域以两副本形式存储数据作为吸收小写请求的缓存,以缩短写入过程的关键路径长度,包括避免数据预读、计算校验以及附带的其他软件开销。在后台将副本数据转换成条带形式以提高空间利用率。副本缓存区域以配对条带的形式组织,以避免进行数据转换时的数据迁移操作。
S103,对构成阵列的固态硬盘状态进行实时监测,标记因为内部后台活动而性能降级的固态硬盘。
S104,根据各所述固态硬盘的状态,对所述性能降级的固态硬盘上的读写请求进行重定向。
本发明实施例中的两层映射架构如图2所示,底下是放置在存储服务器上的商用固态硬盘池组成的存储池。存储池中主要的存储部分以RAID条带的形式存放,称为RAID区域。存储池中剩下的部分为以多副本形式存放的数据,称为副本写缓存。少量的NVRAM(非易失性随机访问存储,Non-Volatile Random Access Memory)用于存放关键数据结构。检测模块检测因后台操作而性能降级的固态硬盘。定向模块根据降级固态硬盘检测模块提供的信息将请求派发到合适的固态硬盘。
本发明实例通过打破商用存储服务器上多个独立阵列之间的资源隔离,构造一个资源共享的存储池,使得各个逻辑卷能利用整个盘池的带宽,从而能更好应对短时间的大量请求突发;通过将小写请求以副本的形式写入来缩短写入过程的关键路径长度,提高写性能;设置有效的检测机制,能够及时发现因为后台操作而性能降级的固态硬盘,对其上的请求进行重定向,通过存储池提供的数据灵活放置机制使得写请求能够异地写入,并且通过副本数据为读请求提供额外的机会,从而能够有效地降低固态硬盘阵列的尾部延迟,提高系统性能稳定性。
在上述实施例的基础上,本实施例中基于正交拉丁方的静态数据布局使多个RAID卷资源共享,将所述存储池中盘池的存储块组织成条带的步骤具体包括:将整个空间被划分成粗粒度的单元,称为一个模板单元。模板单元是给用户分配空间的最小单元。给定盘池大小n和条带宽度k,一个模板单元包含n*(n-1)个条带的块,并保证这些条带中的块在盘池中每个盘上的分布是完全均衡的。这些条带中块在盘上的分布是通过k个n阶正交拉丁方来进行的。将k个正交拉丁方叠在一起,同一个位置上的k个数字就组成一个长度为k的数组,这个数组指示条带中的这k个块被分布到哪块盘上。除了正交拉丁方中第一行组成的条带分布不符合规则,该规则为同一个条带中的块必须放置在不同的盘池上,剩下的n*(n-1)个位置上的数字组成含n*(n-1)个条带的映射。图3给出了当n=5,k=3的一个例子。
在上述实施例的基础上,本实施例中采用两层地址映射的方式,基于正交拉丁方的布局将盘池中的块组织成条带,暴露给上层一个线性的虚拟地址空间。本实施例在其上增加一个映射层,通过一个映射表将用户逻辑空间映射到中间虚拟地址空间。
在上述实施例的基础上,本实施例中划分存储池的部分存储区域以两副本形式存储数据作为吸收小写请求的缓存的步骤具体包括:对到来的写请求根据请求大小进行区分,如果请求大小小于第一预设阈值,则以副本形式写入到缓存区域;否则以条带的形式写入RAID区域。当副本写缓存中的空闲空间不足时,将部分副本数据转换成条带加入RAID区域。通过将副本写缓存也用条带方式进行组织来避免数据转换时所需要的数据迁移操作。
在上述实施例的基础上,本实施例中将副本写缓存用条带方式进行组织的步骤具体包括:整个存储空间,包括副本写缓存都用条带的形式来组织。副本数据的两个副本被分别放在互相配对的两个条带中,互相配对的两个条带组成了一个条带对。条带对中的校验块被预留起来。副本写缓存是由一定量的条带对组成。当为副本写缓存分配空间时,会进行条带对的构建。条带对的构建是通过如下方式进行:
随机选出多个(大于两个)空闲条带,并从中选择两个条带,使得两个条带所涉及到的盘中相同盘号最少。每组条带对中的块互相配对组成块对,用于存放同一个数据块的两个副本。为了保证容错能力,一个块对中的两个块不能被放置到同一块盘上。条带中的块通过如下方式配对:先将代表条带中每个块所在盘号的这两个数组都划分成两个有序的子数组,其中第一个子数组包含两个条带中相同的盘号,第二个子数组包含两个条带中只出现一次的盘号。两个条带的第一个子数组进行配对,通过错开一个块进行配对;两个条带的第二个子数组中的块按照顺序依次配对。当写请求写到副本写缓存时,为其分配一个或多个块对用于存放数据。
当副本写缓存中的空闲空间不足时,将部分副本数据转换成条带。每次转换选取最近最不常访问的条带对,将其中一个条带的校验块填上,再将另一个条带的空间回收,整个过程数据块保持不动,无需数据迁移。
本实施例中对构成阵列的固态硬盘状态进行实时监测,标记因为内部后台活动而性能降级的固态硬盘的步骤具体包括:将时间轴划分成固定长度的时间片,定义两个阈值x和y,当一块固态硬盘有超过x个请求在超过y个时间片还没有完成,则该固态硬盘处于性能降级的状态。检测机制维护了一个长度为y的滑动窗口,记录最近y个时间片中每个时间片内下发的请求有多少没有完成;以及一个超时计数器用于记录超出y个时间片还没有完成的请求数量。新来的请求可能会使滑动窗口往前移动,被移动到滑动窗口外的时间片上的未完成请求数会被加到超时计数器中。当超时计数器的值超过预设阈值x,则将该SSD标记为处于性能降级状态。当SSD的未完成的请求都返回时,该超时计数器的值会减为0,此时将SSD标记为处于正常工作状态。
在上述实施例的基础上,本实施例中根据各固态硬盘的状态,对所述性能降级的固态硬盘上的读写请求进行重定向的步骤具体包括:对于任一写请求,为该写请求分配空闲块对;若所述块对所在的固态硬盘中任一块处于性能降级状态,则重新为该写请求分配新的空闲块对,直到超过预设的最大尝试次数;通过上级映射层将该块对所在的物理空间与该写请求的逻辑空间进行绑定。
在上述实施例的基础上,本实施例中根据各固态硬盘的状态,对所述性能降级的固态硬盘上的读写请求进行重定向的步骤具体包括:对于任一读请求,若该读请求的数据为副本形式,当该读请求的一个数据副本所在的固态硬盘处于性能降级状态且该读请求的另一个数据副本所在的固态硬盘处于正常工作状态,则将该读请求重定向到所述另一个数据副本;若该读请求的数据为RAID条带形式,当该读请求的数据所在的固态硬盘处于性能降级状态且该读请求数据所在的条带中除该读请求数据以外的其他块所在的固态硬盘均处于正常工作状态,则将所述其他块进行异或计算,获取该读请求的数据。
在本发明的另一个实施例中提供一种固态硬盘阵列构建装置,该装置用于实现前述各实施例中的方法。因此,在前述固态硬盘阵列构建方法的各实施例中的描述和定义,可以用于本发明实施例中各个执行模块的理解。图4为本发明实施例提供的固态硬盘阵列构建装置整体结构示意图,该装置包括映射模块401、转换模块402、监测模块403和定向模块404;其中:
映射模块401用于通过基于正交拉丁方将盘池空间包括副本写缓存组织成条带,使多个RAID卷资源共享,形成一个线性的虚拟地址空间;映射模块401通过一个映射表将用户逻辑地址映射到中间虚拟地址。
转换模块402将待写入的数据先以副本形式存放,以减少写入过程的关键路径长度,包括避免数据预读、计算校验以及附带的其他软件开销。在后台将数据副本转换成RAID形式,以提高空间利用率。
监测模块403用于对构成RAID的固态硬盘的状态进行实时监测,并标记因为进行后台操作而性能降级的固态硬盘;
定向模块404用于根据各所述固态硬盘的状态,对因为进行后台操作而性能降级的的各所述固态硬盘上的请求进行重定向。
本发明实例通过打破商用存储服务器上多个独立阵列之间的资源隔离,构造一个资源共享的存储池,使得各个逻辑卷能利用整个盘池的带宽,从而能更好应对短时间的大量请求突发;通过将小写请求以副本的形式写入来缩短写入过程的关键路径长度,提高写性能;设置有效的检测机制,能够及时发现因为后台操作而性能降级的固态硬盘,对其上的请求进行重定向,通过存储池提供的数据灵活放置机制使得写请求能够异地写入,并且通过副本数据为读请求提供额外的机会,从而能够有效地降低固态硬盘阵列的尾部延迟,提高系统性能稳定性。
在上述实施例的基础上,本实施例中映射模块具体用于:采用两层地址映射的方式,基于正交拉丁方的布局将盘池中的块组织成条带,暴露给上层一个线性的虚拟地址空间。将整个空间被划分成粗粒度的单元,称为一个模板单元。模板单元是给用户分配空间的最小单元。给定盘池大小n,和条带宽度k,一个模板单元包含n*(n-1)个条带的块,并保证这些条带中的块在盘池中每个盘上的分布是完全均衡的。这些条带中块在盘上的分布是通过k个n阶正交拉丁方来进行的。将k个正交拉丁方叠在一起,同一个位置上的k个数字就组成一个长度为k的数组,这个数组指示条带中的这k个块被分布到哪块盘上。除了正交拉丁方中第一行组成的条带分布不符合规则(同一个条带中的块必须放置在不同的盘上),剩下的n*(n-1)个位置上的数字组成含n*(n-1)个条带的映射。本实施例在基于正交拉丁方的布局上增加一个映射层,通过一个映射表将用户逻辑空间映射到中间虚拟地址空间。
副本数据的两个副本被分别放在互相配对的两个条带中,互相配对的两个条带组成了一个条带对。条带对中的校验块被预留起来。副本写缓存是由一定量的条带对组成。当为副本写缓存分配空间时,会进行条带对的构建。条带对的构建是通过如下方式进行:随机选出多个(大于两个)空闲条带,并从中选择两个条带,使得两个条带所涉及到的盘中相同盘号最少。每组条带对中的块互相配对组成块对,用于存放同一个数据块的两个副本。为了保证容错能力,一个块对中的两个块不能被放置到同一块盘上。条带中的块通过如下方式配对:先将代表条带中每个块所在盘号的这两个数组都划分成两个有序的子数组,其中第一个子数组包含两个条带中相同的盘号,第二个子数组包含两个条带中只出现一次的盘号。两个条带的第一个子数组进行配对,通过错开一个块进行配对;两个条带的第二个子数组中的块按照顺序依次配对。当写请求写到副本写缓存时,为其分配一个或多个块对用于存放数据。
在上述实施例的基础上,本实施例中还包括转换模块,具体用于:对到来的写请求根据请求大小进行区分,如果请求大小小于第一预设阈值,则以副本形式写入到缓存区域;否则以条带的形式写入RAID区域。当副本写缓存中的空闲空间不足时,将部分副本数据转换成条带加入RAID区域。
在上述实施例的基础上,本实施例中监测模块具体用于:将时间轴划分成固定长度的时间片,定义两个阈值x和y,当一块固态硬盘有超过x个请求在超过y个时间片还没有完成,则该固态硬盘处于性能降级的状态。检测机制维护了一个长度为y的滑动窗口,记录最近y个时间片中每个时间片内下发的请求有多少没有完成;以及一个超时计数器用于记录超出y个时间片还没有完成的请求数量。新来的请求可能会使滑动窗口往前移动,被移动到滑动窗口外的时间片上的未完成请求数会被加到超时计数器中。当超时计数器的值超过预设阈值x,则将该SSD标记为处于性能降级状态。当SSD的未完成的请求都返回时,该超时计数器的值会减为0,此时将SSD标记为处于正常工作状态。
在上述实施例的基础上,本实施例中定向模块具体用于:对于任一写请求,为该写请求分配空闲块对;若所述块对所在的固态硬盘中任一块处于性能降级状态,则重新为该写请求分配新的空闲块对,直到超过预设的最大尝试次数;通过上级映射层将该块对所在的物理空间与该写请求的逻辑空间进行绑定。
上述实施例的基础上,本实施例中定向模块具体用于:对于任一读请求,若该读请求的数据为副本形式,当该读请求的一个数据副本所在的固态硬盘处于性能降级状态且该读请求的另一个数据副本所在的固态硬盘处于正常工作状态,则将该读请求重定向到所述另一个数据副本;若该读请求的数据为RAID条带形式,当该读请求的数据所在的固态硬盘处于性能降级状态且该读请求数据所在的条带中除该读请求数据以外的其他块所在的固态硬盘均处于正常工作状态,则将所述其他块进行异或计算,获取该读请求的数据。
本实施例提供一种电子设备,图5为本发明实施例提供的电子设备整体结构示意图,该设备包括:至少一个处理器501、至少一个存储器502和总线503;其中,
处理器501和存储器502通过总线503完成相互间的通信;
存储器502存储有可被处理器501执行的程序指令,处理器调用程序指令能够执行上述各方法实施例所提供的方法,例如包括:通过两层映射架构构建存储池;其中,所述两层映射架构的底下一层映射通过基于正交拉丁方的静态数据布局使多个RAID卷资源共享,将盘池中的存储块组织成条带,所述两层映射架构的上一层通过映射表进行地址映射;划分所述存储池的部分存储区域以两副本形式存储数据作为吸收小写请求的缓存,在后台将副本数据转换成条带形式,副本缓存区域以配对条带的形式组织;对构成阵列的固态硬盘状态进行实时监测,标记因为内部后台活动而性能降级的固态硬盘;根据各所述固态硬盘的状态,对所述性能降级的固态硬盘上的读写请求进行重定向。
本实施例提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述各方法实施例所提供的方法,例如包括:通过两层映射架构构建存储池;其中,所述两层映射架构的底下一层映射通过基于正交拉丁方的静态数据布局使多个RAID卷资源共享,将盘池中的存储块组织成条带,所述两层映射架构的上一层通过映射表进行地址映射;划分所述存储池的部分存储区域以两副本形式存储数据作为吸收小写请求的缓存,在后台将副本数据转换成条带形式,副本缓存区域以配对条带的形式组织;对构成阵列的固态硬盘状态进行实时监测,标记因为内部后台活动而性能降级的固态硬盘;根据各所述固态硬盘的状态,对所述性能降级的固态硬盘上的读写请求进行重定向。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种固态硬盘阵列构建方法,其特征在于,包括:
通过两层映射架构构建存储池;其中,所述两层映射架构的底下一层映射通过基于正交拉丁方的静态数据布局使多个RAID卷资源共享,将所述存储池中盘池的存储块组织成条带,所述两层映射架构的上一层通过映射表进行地址映射;
划分所述存储池的部分存储区域以两副本形式存储数据作为吸收小写请求的缓存,在后台将副本数据转换成条带形式,副本缓存区域以配对条带的形式组织;
对构成阵列的固态硬盘状态进行实时监测,标记因为内部后台活动而性能降级的固态硬盘;
根据各所述固态硬盘的状态,对所述性能降级的固态硬盘上的读写请求进行重定向;
副本缓存区域以配对条带的形式组织的步骤包括:
将所述副本数据的两个副本分别放在互相配对的两个条带中,互相配对的两个所述条带组成了一个条带对;其中,所述条带对中的校验块被预留,所述副本缓存区域中的副本写缓存由多个条带对组成;
为所述副本数据分配空间时,先通过如下步骤构造条带对:
从空闲条带中随机挑选大于或等于3个条带,在随机挑选的所述条带中选择两个条带使得所述两个条带中的相同盘号的数目最少,将所述两个条带组成条带对;
所述条带中的块按照如下步骤相互匹配组成块对:
将所述两个条带分别划分成有序的两部分,其中第一部分是两个条带中相同的盘号,第二部分是两个条带中只出现一次的盘号,将第一部分的块错开进行匹配,将第二部分的块按顺序进行匹配,当副本数据请求空间时,为其分配以此构造出来的块对。
2.根据权利要求1所述的方法,其特征在于,通过基于正交拉丁方的静态数据布局使多个RAID卷资源共享,将所述存储池中盘池的存储块组织成条带的步骤具体包括:
将构成RAID卷资源的每块固态硬盘上的存储空间划分为多个块,将各所述固态硬盘上第一预设个数的块进行组合,获取单元模板;
其中,各所述单元模板包括n×(n-1)个条带,n为所述固态硬盘的块数;
每个所述条带中包括k个块,其中,k-1个为数据块,1个校验块,k为预设常数;
根据正交拉丁方对各所述条带中的块进行布局。
3.根据权利要求2所述的方法,其特征在于,根据正交拉丁方对各所述条带中的块进行布局的步骤具体包括:
根据公式Li(x,y)=(i*x+y)%n,计算k个n阶正交拉丁方;
其中,Li(x,y)表示第i个正交拉丁方第x行第y列上的值,所述值表示各所述固态硬盘的编号;
除去各所述正交拉丁方的第一行,对于各所述正交拉丁方中剩下的n-1行n列,将对应相同位置上的值组成一个k维数组,将所述k维数组作为各所述条带中块的分布。
4.根据权利要求1所述的方法,其特征在于,划分所述存储池的部分存储区域以两副本形式存储数据作为吸收小写请求的缓存,在后台将副本数据转换成条带形式的步骤具体包括:
对到来的写请求根据请求大小进行区分,如果所述写请求的大小小于第一预设阈值,则将所述副本数据以副本形式写入到缓存区域;否则将所述副本数据以条带的形式写入所述存储池中的RAID区域;
当所述副本缓存区域中的写缓存空闲空间不足时,将部分所述副本数据转换成条带加入所述存储池中的RAID区域;其中,所述RAID区域为所述存储池中以条带形式存放的区域。
5.根据权利要求1所述的方法,其特征在于,对构成阵列的固态硬盘的状态进行实时监测的步骤具体包括:
将时间划分成预设长度的多个时间片;
实时计算各所述固态硬盘最近的第二预设个数的各时间片内已下发但未完成请求的第一数量;
根据所述第一数量确定各所述固态硬盘超过所述第二预设个数时间片未完成请求的第二数量;
若各所述固态硬盘对应的第二数量大于第二预设阈值,则将各所述固态硬盘被标记为处于性能降级状态;
若各所述固态硬盘对应的第二数量减小为0,且各所述固态硬盘处于性能降级状态,则将各所述固态硬盘标记为正常工作状态。
6.根据权利要求5所述的方法,其特征在于,根据各所述固态硬盘的状态,对正在进行后台操作的各所述固态硬盘上的请求进行重定向的步骤具体包括:
对于任一写请求,为该写请求分配空闲块对;
若所述块对所在的固态硬盘中任意一块处于性能降级状态,则重新为该写请求分配新的空闲块对,直到超过预设的最大尝试次数;
通过所述上一层映射表将该块对所在的物理空间与该写请求的逻辑空间进行绑定。
7.根据权利要求6所述的方法,其特征在于,根据各所述固态硬盘的状态,对正在进行后台操作的各所述固态硬盘上的请求进行重定向的步骤具体包括:
对于任一读请求,若该读请求的数据以两副本形式存放,当该读请求的一个数据副本所在的固态硬盘处于性能降级状态且该读请求的另一个数据副本所在的固态硬盘处于正常工作状态,则将该读请求重定向到所述另一个数据副本;
若该读请求的数据为RAID条带形式,当该读请求的数据所在的固态硬盘处于性能降级状态且该读请求数据所在的条带中其他块所在的固态硬盘均处于正常工作状态,则将所述其他块进行异或计算,获取该读请求的数据。
8.一种电子设备,其特征在于,包括:
至少一个处理器、至少一个存储器和总线;其中,
所述处理器和存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7任一所述的方法。
9.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910492195.9A CN110297601B (zh) | 2019-06-06 | 2019-06-06 | 固态硬盘阵列构建方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910492195.9A CN110297601B (zh) | 2019-06-06 | 2019-06-06 | 固态硬盘阵列构建方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110297601A CN110297601A (zh) | 2019-10-01 |
CN110297601B true CN110297601B (zh) | 2020-06-23 |
Family
ID=68027672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910492195.9A Active CN110297601B (zh) | 2019-06-06 | 2019-06-06 | 固态硬盘阵列构建方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110297601B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112748862A (zh) * | 2019-10-31 | 2021-05-04 | 伊姆西Ip控股有限责任公司 | 用于管理盘的方法、电子设备和计算机程序产品 |
TWI754924B (zh) * | 2020-04-29 | 2022-02-11 | 威聯通科技股份有限公司 | 提高固態硬碟陣列工作壽命的方法及利用其之儲存設備 |
CN112764684A (zh) * | 2021-01-22 | 2021-05-07 | 苏州浪潮智能科技有限公司 | 一种存储系统的硬盘性能识别方法和系统 |
CN115543871B (zh) * | 2022-11-29 | 2023-03-10 | 苏州浪潮智能科技有限公司 | 数据存储方法及相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101526882A (zh) * | 2008-03-03 | 2009-09-09 | 中兴通讯股份有限公司 | 独立磁盘冗余阵列子系统中逻辑单元重建的方法及装置 |
CN104484130A (zh) * | 2014-12-04 | 2015-04-01 | 北京同有飞骥科技股份有限公司 | 一种横向扩展存储系统的构建方法 |
CN109002543A (zh) * | 2018-07-24 | 2018-12-14 | 北京京东尚科信息技术有限公司 | 一种文件存储的方法和装置 |
WO2019090756A1 (zh) * | 2017-11-13 | 2019-05-16 | 清华大学 | 资源全局共享的基于raid机制的数据存储系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958656B (zh) * | 2018-06-27 | 2021-01-08 | 北京计算机技术及应用研究所 | 基于raid5固态硬盘阵列的动态条带系统设计方法 |
CN109358809B (zh) * | 2018-09-28 | 2020-07-24 | 方一信息科技(上海)有限公司 | 一种raid数据存储系统及方法 |
CN109375876A (zh) * | 2018-10-17 | 2019-02-22 | 郑州云海信息技术有限公司 | 基于ssd的raid存储方法、装置、设备及介质 |
-
2019
- 2019-06-06 CN CN201910492195.9A patent/CN110297601B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101526882A (zh) * | 2008-03-03 | 2009-09-09 | 中兴通讯股份有限公司 | 独立磁盘冗余阵列子系统中逻辑单元重建的方法及装置 |
CN104484130A (zh) * | 2014-12-04 | 2015-04-01 | 北京同有飞骥科技股份有限公司 | 一种横向扩展存储系统的构建方法 |
WO2019090756A1 (zh) * | 2017-11-13 | 2019-05-16 | 清华大学 | 资源全局共享的基于raid机制的数据存储系统 |
CN109002543A (zh) * | 2018-07-24 | 2018-12-14 | 北京京东尚科信息技术有限公司 | 一种文件存储的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110297601A (zh) | 2019-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110297601B (zh) | 固态硬盘阵列构建方法、电子设备及存储介质 | |
JP5256149B2 (ja) | Hdd障害からの高速データ回復 | |
US7433999B2 (en) | Storage controller and method for storage control with non-contiguous stored parities | |
US10564865B2 (en) | Lockless parity management in a distributed data storage system | |
CN109213695B (zh) | 缓存管理方法、存储系统以及计算机程序产品 | |
CN107209714A (zh) | 分布式存储系统及分布式存储系统的控制方法 | |
US11061788B2 (en) | Storage management method, electronic device, and computer program product | |
EP3062209A1 (en) | Method and apparatus for improving disk array performance | |
US11520512B2 (en) | Method for storage management, electronic device and computer program product | |
US11449402B2 (en) | Handling of offline storage disk | |
US20200133810A1 (en) | Method for managing multiple disks, electronic device and computer program product | |
US20180307426A1 (en) | Storage apparatus and storage control method | |
CN110413454A (zh) | 基于存储阵列的数据重建方法、装置及存储介质 | |
US11379326B2 (en) | Data access method, apparatus and computer program product | |
CN113296702B (zh) | 一种磁盘阵列扩容方法、装置、设备及存储介质 | |
US11150991B2 (en) | Dynamically adjusting redundancy levels of storage stripes | |
CN111984184B (zh) | 固态硬盘的数据管理方法、装置、存储介质及电子设备 | |
CN115543187A (zh) | 一种数据处理方法及设备 | |
US20080104445A1 (en) | Raid array | |
KR20150127434A (ko) | 메모리제어장치 및 메모리제어장치의 동작 방법 | |
CN111007988A (zh) | 一种raid内部磨损均衡方法、系统、终端及存储介质 | |
KR102226184B1 (ko) | 디스크 배열을 위한 캐시베리어 명령 처리 방법 및 이를 위한 장치 | |
US11704284B2 (en) | Supporting storage using a multi-writer log-structured file system | |
US20210334236A1 (en) | Supporting distributed and local objects using a multi-writer log-structured file system | |
US11256428B2 (en) | Scaling raid-based storage by redistributing splits |
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 |