CN103688248A - 一种存储阵列的管理方法、装置和控制器 - Google Patents
一种存储阵列的管理方法、装置和控制器 Download PDFInfo
- Publication number
- CN103688248A CN103688248A CN201380000793.0A CN201380000793A CN103688248A CN 103688248 A CN103688248 A CN 103688248A CN 201380000793 A CN201380000793 A CN 201380000793A CN 103688248 A CN103688248 A CN 103688248A
- Authority
- CN
- China
- Prior art keywords
- memory device
- subdivision
- subset
- wear intensity
- wear
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明实施例提供一种存储阵列的管理方法、装置和控制器,根据存储设备的磨损度,将存储阵列划分为第一存储设备子集和第二存储设备子集,并且所述第一存储设备子集中存储设备的最小磨损度大于等于所述第二存储设备子集中存储设备的最大磨损度,然后将所述第二存储设备子集中的数据迁移到所述第一存储设备子集中或者将待写入数据写入所述第一存储设备子集中,因此可以通过减少所述第一存储设备子集中存储设备的使用寿命,来相对增加第二存储设备子集中存储设备的使用寿命,从而可以拉开第一存储设备子集中存储设备的失效时间与第二存储设备子集中存储设备的失效时间的间隔,减少磨损均衡引起的多块存储设备同时失效的风险,提高数据的可靠性。
Description
技术领域
本发明实施例涉及存储技术领域,特别涉及一种存储阵列的管理方法、装置和控制器。
背景技术
Flash Memory(闪存存储器)是一种非易失性存储器,具有断电后数据不消失的特点,因此,被广泛的作为外部和内部存储器使用。比如近年来越来越多地用于计算机系统的固态硬盘(Solid State Device,SSD),就是基于闪存存储器实现的。固态硬盘,也可以称为固态驱动器(Solid StateDrive,SSD)。闪存存储器具有擦除次数有限的特点,每次对SSD的读写操作(也可以称为擦除操作),是对SSD一定程度上的磨损。
为了满足大数据存储的需求,通常需要把多个SSD组成SSD存储阵列。磨损均衡(Wear Leveling),是针对SSD存储阵列提出的一个概念,本质上就是在SSD存储阵列中,让所有SSD的磨损情况相似,避免某些SSD的擦除过于频繁。但是磨损均衡,可能出现多块SSD同时失效的情况,从而引起数据丢失。
发明内容
本发明实施例提出了一种存储阵列的管理方法、装置和控制器,减少磨损均衡引起的多块存储设备同时失效的风险。
第一方面,本发明实施例提出了一种存储阵列的管理方法,所述存储阵列由N个存储设备组成,所述存储阵列的管理方法包括:
控制器获取所述N个存储设备的磨损度;
根据所述N个存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集,所述第一存储设备子集中存储设备的最小磨损度大于等于所述第二存储设备子集中存储设备的最大磨损度;
将所述第二存储设备子集中的数据迁移到所述第一存储设备子集中;或者将待写入数据写入所述第一存储设备子集中。
结合第一方面,在第一种可能的实现方式中,根据所述N个存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集包括:
将所述N个存储设备按照磨损度从高到低进行排序,磨损度最高的存储设备编号为1,磨损度最低的存储设备编号为N;
计算第i号存储设备和第i+1号存储设备的磨损度差值,0<i<N;
如果所述磨损度差值小于等于第一磨损阈值,则将第1号到第i号存储设备作为所述第一存储设备子集,将第i+1号到第N号存储设备作为所述第二存储设备子集;
如果所述磨损度差值大于所述第一磨损阈值,则i=i+1,继续计算第i号存储设备和第i+1号存储设备的磨损度差值。
结合第一方面,在第二种可能的实现方式中,根据所述N个存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集包括:
根据所述N个存储设备的磨损度将所述N个存储设备划分为S个子部分,其中第j子部分中存储设备的最小磨损度大于等于第j+1子部分中存储设备的最大磨损度,0<j<S;
计算第1子部分到第j子部分存储设备的数量,其中0<j<S;
如果所述第1子部分到第j子部分存储设备的数量大于等于N/2,则把第1子部分到第j子部分的存储设备作为所述第一存储设备子集,把第j+1子部分到第S子部分的存储设备作为所述第二存储设备子集;
如果所述第1子部分到第j子部分存储设备的数量小于N/2,则j=j+1,继续计算第1子部分到第j子部分存储设备的数量。
结合第一方面,在第三种可能的实现方式中,根据所述N个存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集包括:
根据所述N个存储设备的磨损度将所述N个存储设备划分为S个子部分,其中第j子部分中存储设备的最小磨损度大于等于第j+1个子部分中存储设备的最大磨损度,0<j<S;
将所述N个存储设备划分为S个子部分包括:
将所述N个存储设备按照磨损度从高到低进行排序,磨损度最高的存储设备编号为1,磨损度最低的存储设备编号为N;
计算第i号存储设备和第i+1号存储设备的磨损度差值,0<i<N;
如果所述磨损度差值小于等于第二磨损阈值,则第i号存储设备属于一个子部分,第i+1号存储设备属于另一子部分,然后i=i+1,继续计算第i号存储设备和第i+1号存储设备的磨损度差值;
如果所述磨损度差值大于所述第二磨损阈值,则第i+1号存储设备属于第i号存储设备所在的子部分,然后i=i+1,继续计算第i号存储设备和第i+1号存储设备的磨损度差值。
结合第一方面,在第四种可能的实现方式中,根据所述N个存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集包括:
磨损度大于等于第三磨损阈值的存储设备组成所述第一存储设备子集,磨损度小于所述第三磨损阈值的存储设备组成所述第二存储设备子集。
结合第一方面或者第一方面的第一种至第四种任意一种可能的实现方式,在第五种可能的实现方式中,将所述第二存储设备子集中的数据迁移到所述第一存储设备子集中,包括:
统计所述第一存储设备子集中空闲的存储空间FreeSize;
从所述第二存储设备子集中的每个存储设备抽取FreeSize/(N-i)的数据,迁移到所述第一存储设备子集中,其中i表示所述第一存储设备子集中存储设备的数量。
结合第一方面或者第一方面的第二种至第一方面的第三种可能的实现方式,在第六种可能的实现方式中,所述第一存储设备子集中各子部分增加的数据相等或者从第1子部分开始递减;所述第二存储设备子集中各子部分减少的数据相等或者从第S子部分开始递减。
结合第一方面的第六种可能的实现方式,在第七种可能的实现方式中,当所述第二存储设备子集中各子部分减少的数据相等时,从所述第二存储设备子集中的每个存储设备抽取(FreeSize-FreeSizeA)/(N-X)的数据,迁移到所述第一存储设备子集中,其中FreeSize表示数据迁移前所述第一存储设备子集中空闲的存储空间,FreeSizeA表示数据迁移后所述第一存储设备子集中空闲的存储空间,X表示所述第一存储设备子集中存储设备的数量。
第二方面,提出了一种存储阵列的管理装置,所述存储阵列由N个存储设备组成,包括:
获取模块,用于获取所述N个存储设备的磨损度;
划分模块,用于根据所述N个存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集,所述第一存储设备子集中存储设备的最小磨损度大于等于所述第二存储设备子集中存储设备的最大磨损度;
处理模块,用于将所述第二存储设备子集中的数据迁移到所述第一存储设备子集中;或者将待写入数据写入所述第一存储设备子集中。
结合第二方面,在第一种可能的实现方式中,所述划分模块用于:
将所述N个存储设备按照磨损度从高到低进行排序,磨损度最高的存储设备编号为1,磨损度最低的存储设备编号为N;
计算第i号存储设备和第i+1号存储设备的磨损度差值,0<i<N;
如果所述磨损度差值小于等于第一磨损阈值,则将第1号到第i号存储设备作为所述第一存储设备子集,将第i+1号到第N号存储设备作为所述第二存储设备子集;
如果所述磨损度差值大于所述第一磨损阈值,则i=i+1,继续计算第i号存储设备和第i+1号存储设备的磨损度差值。
结合第二方面,在第二种可能的实现方式中,所述划分模块用于:
根据所述N个存储设备的磨损度将所述N个存储设备划分为S个子部分,其中第j子部分中存储设备的最小磨损度大于等于第j+1子部分中存储设备的最大磨损度,0<j<S;
计算第1子部分到第j子部分存储设备的数量,其中0<j<S;
如果所述第1子部分到第j子部分存储设备的数量大于等于N/2,则把第1子部分到第j子部分的存储设备作为所述第一存储设备子集,把第j+1子部分到第S子部分的存储设备作为所述第二存储设备子集;
如果所述第1子部分到第j子部分存储设备的数量小于N/2,则j=j+1,继续计算第1子部分到第j子部分存储设备的数量。
结合第二方面,在第三种可能的实现方式中,所述划分模块用于:
根据所述N个存储设备的磨损度将所述N个存储设备划分为S个子部分,其中第j子部分中存储设备的最小磨损度大于等于第j+1个子部分中存储设备的最大磨损度,0<j<S;
结合第二方面,在第四种可能的实现方式中,所述划分模块用于:
磨损度大于等于第三磨损阈值的存储设备组成所述第一存储设备子集,磨损度小于所述第三磨损阈值的存储设备组成所述第二存储设备子集。
结合第二方面或者第二方面的第一种至第四种任意一种可能的实现方式,在第五种可能的实现方式中,所述处理模块用于:
统计所述第一存储设备子集中空闲的存储空间FreeSize;
从所述第二存储设备子集中的每个存储设备抽取FreeSize/(N-i)的数据,迁移到所述第一存储设备子集中,其中i表示所述第一存储设备子集中存储设备的数量。
结合第二方面或者第二方面的第二种或者第三种可能的实现方式,在第六种可能的实现方式中,所述第一存储设备子集中各子部分增加的数据相等或者从第1子部分开始递减;所述第二存储设备子集中各子部分减少的数据相等或者从第S子部分开始递减。
结合第二方面的第六种可能的实现方式,在第七种可能的实现方式中,当所述第二存储设备子集中各子部分减少的数据相等时,从所述第二存储设备子集中的每个存储设备抽取(FreeSize-FreeSizeA)/(N-X)的数据,迁移到所述第一存储设备子集中,其中FreeSize表示数据迁移前所述第一存储设备子集中空闲的存储空间,FreeSizeA表示数据迁移后所述第一存储设备子集中空闲的存储空间,X表示所述第一存储设备子集中存储设备的数量。
结合第二方面或者第二方面的第二种至第七种任意一种可能的实现方式,在第八种可能的实现方式中,所述装置还包括比较模块,用于将所述第二存储设备子集中存储设备的磨损度与第四磨损阈值进行比较;
如果所述第二存储设备子集中至少一个存储设备的磨损度大于等于所述第四磨损阈值,则所述处理模块将所述第二存储设备子集中的数据迁移到所述第一存储设备子集中。
第三方面,提出了一种控制器,包括:
处理器、存储器、系统总线和通信接口,所述处理器、所述存储器和所述通信接口之间通过所述系统总线连接并完成相互间的通信;
所述通信接口,用于与存储设备通信;
所述存储器,用于存储计算机执行指令;
所述处理器,用于运行所述计算机执行指令,执行第一方面所述的一种存储阵列的管理方法。
第四方面,提出了一种计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令用于执行第一方面所述的一种存储阵列的管理方法。
本发明实施例,根据存储设备的磨损度,将存储阵列划分为第一存储设备子集和第二存储设备子集,并且所述第一存储设备子集中存储设备的最小磨损度大于等于所述第二存储设备子集中存储设备的最大磨损度,然后将所述第二存储设备子集中的数据迁移到所述第一存储设备子集中或者将待写入数据写入所述第一存储设备子集中,因此可以通过减少所述第一存储设备子集中存储设备的使用寿命,来相对增加第二存储设备子集中存储设备的使用寿命,从而可以拉开第一存储设备子集中存储设备的失效时间与第二存储设备子集中存储设备的失效时间的间隔,减少磨损均衡引起的多块存储设备同时失效的风险,提高数据的可靠性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对现有技术或实施例中所需要使用的图作简单地介绍,显而易见地,下面描述中的图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的图。
图1是根据本发明实施例提供的一种存储系统的组成图;
图2是根据本发明实施例提供的存储资源池化的示意图;
图3是根据本发明实施例提供的磨损均衡示意图;
图4是根据本发明实施例提供的一种方法流程图;
图5是根据本发明实施例提供的效果示意图;
图6是根据本发明实施例提供的又一种方法流程图;
图7是根据本发明实施例提供的又一种方法流程图;
图8是根据本发明实施例提供的再一种方法流程图;
图9是根据本发明实施例提供的一种应用场景示意图;
图10是根据本发明实施例提供的又一种应用场景示意图;
图11是根据本发明实施例提供的一存储阵列的管理装置的结构示意图;
图12是根据本发明实施例提供的一种控制器结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提出了一种存储阵列的管理方法、装置和控制器,能够减少磨损均衡引起的多块存储设备同时失效的风险。本发明实施例将对存储设备的读写操作,称为对存储设备的磨损。存储设备的失效,是指存储设备磨损殆尽,需要被替换。
本发明实施例的系统架构
本发明实施例提供的存储阵列的管理方法可以在存储系统上实现。图1为本发明实施例提供的存储阵列的管理方法的系统架构示意图,如图1所示,该存储系统包括控制器11和存储设备22。本实施例中,存储设备22以固态硬盘(Solid State Device,SSD)为例说明。固态硬盘,也可以称为固态驱动器(Solid State Drive,SSD),简称为硬盘。
图1仅是示例性说明,并不限定具体的组网方式,如:级联树形组网、环状组网都可以。只要控制器11和存储设备22之间能够相互通信。
控制器11可以包括当前技术已知的任何计算设备,如服务器、台式计算机等等。在控制器内部,安装有操作系统以及其他应用程序。控制器11可以对存储设备22进行管理,比如控制存储设备中的数据迁移;获知存储设备的磨损度等。由于闪存存储器具有擦除次数有限的特点,每次对存储设备的读写操作(也可以称为擦除操作),是对存储设备一定程度上的磨损。磨损度,也可以称为磨损程度,可以用来衡量存储设备的使用寿命。磨损度可以通过百分比表示。
存储设备22可以包括当前技术已知的存储设备,如SSD、或直接存取存储器(Direct Access Storage Device,DASD)等。图1中,以存储设备22为SSD为例说明。N个物理SSD组成存储阵列(storage array)。存储阵列的基本思想就是把多个相对便宜的硬盘组合起来,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。该存储阵列包含N个物理SSD,每块物理SSD均拥有唯一的编号,如图中物理SSD#1、物理SSD#2、物理SSD#3…物理SSD#N。而且,一个存储阵列中的物理SSD数量N不得少于某个下限,例如10个;一个存储阵列中的物理SSD数量N不得多于某个上限,例如30个。具体地,该存储阵列包含的N个物理SSD,可以是不同型号不同容量的SSD,或者是不同型号相同容量的SSD,或者相同型号不同容量的SSD、或者相同型号相同容量的SSD。
除非特别指明,本发明实施例所称SSD,均指物理SSD。
每个物理SSD可以被划分为细粒度的尺寸相同的数据块(Chunk,CK)221。Chunk也可以称为逻辑SSD。为了衡量各个物理SSD容量的大小,可以将各物理SSD所划分出来的逻辑SSD的数量,称作该物理SSD的权重。比如,某个存储阵列内所有的物理SSD,均以32MB划分为逻辑SSD,那么一个容量为200GB的物理SSD的权重为6400,一个容量为100GB的物理SSD的权重为3200。
而且,多个CK可以按照指定类型的独立硬盘冗余数组(RedundantArray of Independent Disks,RAID)组成逻辑空间,该逻辑空间就是一个数据块组(Chunk Group,CKG)。一个CKG所包含的各个CK必须属于不同SSD。独立硬盘冗余数组,又称廉价硬盘冗余数组(Redundant Array ofInexpensive Disks,RAID)。
以RAID5为例,要实现RAID5技术至少需要三颗硬盘,将数据和相对应的奇偶校验信息存储到组成RAID5的各个硬盘上,并且奇偶校验信息和相对应的数据分别存储于不同的硬盘上。当RAID5的一个硬盘数据发生损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
举例说明:25块物理SSD组成存储阵列(也可以称为disk group),每块物理SSD的容量均为100GB,逻辑SSD容量为32MB,则每个物理SSD的权重为3200。假设该存储阵列中的逻辑SSD组成了RAID5。具体的组成方法参照如下:
存储阵列的25块物理SSD,执行random_select(25,9),得到9块物理SSD,其中random_select(x,y)函数,y≤x,表示从x个对象中,随机选择y个对象;
对于该9块物理SSD中的每块SSD,分别执行random_select(F,1),F表示每块物理SSD尚未被选取组成RAID的逻辑SSD。random_select(F,1)表示从未被选取组成RAID的逻辑SSD中选出一个逻辑SSD。记录该9块物理SSD被选出的9个逻辑SSD,并将这9个逻辑SSD做成有一个校验数据的RAID5。同时更新RAID_NUM变量的数值,RAID_NUM为已经建立的RAID数目。组成的RAID,也可以称为组成的RAID组。
同时,需要为存储阵列预留一定的热备空间。热备空间是在该存储阵列中预留的用于数据恢复的存储空间。比如需要至少预留单盘失效后的数据重构的存储空间,那么就要判断预留的存储空间有没有可能进行单个硬盘失效后的数据重构。如果未被使用的存储空间多于单个硬盘的容量,则可以再建立新的RAID组。如果未被使用的存储空间少于单个硬盘的容量,则说明不可以再进行RAID组的建立,这一部分未被使用的存储空间需要用作热备空间。未被使用的存储空间,即尚未真正用于承载业务的存储空间,也可以称为空闲的存储空间或空闲空间。
对于上述步骤所建立起来的RAID_NUM的RAID组,进行条带化处理,每个条带或者条带单元就是一个独立的存储资源。每一个或者若干个相邻的条带作为一个存储资源,放入到同一个存储资源池中。然后从该存储资源池中随机选择若干的存储块,组成逻辑单元号(Logical Unit Number,LUN)的存储空间,并向控制器提供服务。具体地,可以如图2所示。
经过上述方法建立的存储阵列,可以做到将每个LUN的业务均匀分布到每个物理SSD上,从而让每个物理SSD的业务压力与其权重(容量)相匹配。如果SSD的容量不同,那么容量大的SSD,需要承担相对更多的业务;容量小的,需要承担相对较小的业务。业务负担与容量大小成正比。进而每块SSD的磨损度相差不大,可以称为磨损均衡。
如图3所示,编号相同的逻辑SSD组成了RAID,没有编号的逻辑SSD表示还未被使用。经过上述方法,可以做到将每个LUN的业务均匀分布到每个SSD上。并且每个物理SSD划分出来的逻辑SSD数量越多,均衡效果越好。
存储阵列的管理方法
下面介绍本发明实施例提供的存储阵列的管理方法,如图4所示,为本发明实施例提供的存储阵列的管理方法的流程图,以所述存储阵列由N个存储设备组成为例说明,包括:
S102:控制器获取所述N个存储设备的磨损度;
磨损度,也可以称为磨损程度,可以用来衡量存储设备的使用寿命。磨损度一般通过百分比表示。在本发明实施例中,磨损度以T来表示。
控制器可以以一定时间间隔主动发送请求命令,请求存储阵列中的存储设备把自己的磨损度告诉控制器,比如控制器向存储设备下发SMART命令,以请求存储设备的磨损度;也可以不基于控制器的请求,存储设备以一定的时间间隔,主动把自己的磨损度告诉控制器;或者也可以按照经验值和存储设备的使用时长,统计N个存储设备的磨损度。本发明实施例对此不作限定。
控制器周期性地获取N个存储设备的磨损度,具体地,比如以1周、或者2周为时间间隔,来获取N个存储设备的磨损度。
存储设备的磨损度,是按照实际承载过的业务量来衡量的。
通常情况下,存储阵列中的存储设备的数量N不得少于某个下限,例如10个;也不得多于某个上限,例如30个。
S104:根据所述N个存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集,第一存储设备子集中存储设备的最小磨损度大于等于第二存储设备子集中存储设备的最大磨损度;
当然可以在M个存储设备的磨损度大于等于预定磨损阈值时,启动将根据所述N个存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集的动作(简称为存储阵列的划分),其中1≤M≤N。
具体地,M可以取1,表示只要有一个存储设备的磨损度超过所述预定磨损阈值,就启动所述存储阵列的划分。
当然,M也可以取2或者取不大于N的任何值。而且M可以通过外部预留接口,动态地进行调整。比如可以M先取1,表示第一次发现存在某个存储设备的磨损度达到所述预定磨损阈值,就启动所述存储阵列的划分。后续把M设置为2,表示再发现两个存储设备的磨损度达到所述预定磨损阈值,才启动所述存储阵列的划分。
具体地,M可以根据N的多少以及第二存储设备子集中各存储设备之间磨损度的差值进行调整。如果第二存储设备子集中各存储设备之间磨损度的差值比较小,那么M可以适当地取小一些(比如,M取1),这样,启动存储阵列的划分就会比较频繁。如果第二存储设备子集中各存储设备之间磨损度的差值比较大,那么M可以适当地取大一些(比如,M取5),这样,启动存储阵列的划分就没有那么频繁。
所述预定磨损阈值可以根据经验值先设定,然后通过外部预留接口,动态进行调整。预定磨损阈值可以以百分比表示。如果所述存储阵列中所有存储设备的磨损度均小于预定磨损阈值,在此场景下,所有的存储设备根据权重值合理承担整个阵列的业务压力,不存在单盘性能瓶颈,则不用进行存储阵列的划分。
具体地,如何根据述N个存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集,可以参见图6、图7和图8的描述。
具体地,可能是第一存储设备子集和第二存储设备子集组成了整个的存储阵列;也可能是第一存储设备子集、第二存储设备子集和第三存储设备子集组成整个的存储阵列,其中第三存储设备子集中的数据不用进行调整,也就是说,不用进行数据的迁移,包括数据的移入或者移出。
优选地,本发明实施例可以只把需要进行数据迁移的存储设备组成的存储阵列,理解成所述N个存储设备组成的存储阵列。
S106:将所述第二存储设备子集中的数据迁移到所述第一存储设备子集中;或者将待写入数据写入所述第一存储设备子集中。
具体地,如何进行数据的迁移,可以参见图6、图7和图8的描述。
如果每次的写入操作,是访问的原有地址,那么可以将第二存储设备子集中的数据迁移到第一存储设备子集中;如果每次的写入操作,是访问的新地址,那么可以直接将待写入数据写入第一存储设备子集的空闲空间中,而不用将第二存储设备子集中的数据迁移到第一存储设备子集中。
相应地,可以把第一存储设备子集,称为目的存储设备子集或者第一子集;把第二存储设备子集,称为源存储设备子集或者第二子集。
经过一段时间,没有再新增存储设备的磨损度大于等于所述预定磨损阈值,第二存储设备子集的磨损度小于等于第一存储设备子集的磨损度,且第二存储设备子集中的业务均匀地分布在第二存储设备子集的存储设备上,第一存储设备子集中的业务均匀地分布在第一存储设备子集的存储设备上;或者经过一段时间,第二存储设备子集为空,所有的业务均匀地分布在第一存储设备子集的存储设备上。均匀分布,是指按权重分布。
通过上述方法,达到的效果图,如图5所示。当然图5仅是示例性说明。图5中深色区域表示磨损度,深色区域占比越大,则磨损度越高。
本发明实施例,根据存储设备的磨损度,将存储阵列划分为第一存储设备子集和第二存储设备子集,并且所述第一存储设备子集中存储设备的最小磨损度大于等于所述第二存储设备子集中存储设备的最大磨损度,然后将所述第二存储设备子集中的数据迁移到所述第一存储设备子集中,因此可以通过减少所述第一存储设备子集中存储设备的使用寿命,来相对增加第二存储设备子集中存储设备的使用寿命,从而可以拉开第一存储设备子集中存储设备的失效时间与第二存储设备子集中存储设备的失效时间的间隔,减少磨损均衡引起的多块存储设备同时失效的风险,提高数据的可靠性。
如果每次的写入操作,是访问的新地址,那么可以直接将待写入数据写入第一存储设备子集的空闲空间中,而不用将第二存储设备子集中的数据迁移到第一存储设备子集中。通过增加第一存储设备子集中存储设备的承载的业务,保持第二存储设备子集中存储设备的承载的业务,减少第一存储设备子集中存储设备的使用寿命,来相对增加第二存储设备子集中存储设备的使用寿命,从而可以拉开第一存储设备子集中存储设备的失效时间与第二存储设备子集中存储设备的失效时间的间隔,减少磨损均衡引起的多块存储设备同时失效的风险,提高数据的可靠性。
本实施例通过拉开第一存储设备子集中存储设备的失效时间与第二存储设备子集中存储设备的失效时间的间隔,减少磨损均衡引起的多块存储设备同时失效的风险,因此本实施例所述的方法也可以称为非磨损均衡的方法,或者反磨损均衡的方法。那么相应地,根据存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集的动作,本发明实施例中,也可以称为启动反均衡磨损的动作。
具体地,在执行S106之前,还可以进一步包括:
S105:进行第二存储设备子集中的存储设备的磨损度与第四磨损阈值的比较。即,判断第二存储设备子集中,所有存储设备的磨损度是否均小于第四磨损阈值。如果第二存储设备子集中,所有存储设备的磨损度均小于第四磨损阈值,则不再执行S106。也就是说,第二存储设备子集中存储设备的业务压力并不大,暂时不需要进行反磨损均衡的动作;或者经过本发明实施例所描述的管理方法数据迁移之后,第二存储设备子集中存储设备的业务压力并不大,暂时不需要进行反磨损均衡的动作。
如果第二存储设备子集中,至少一个存储设备的磨损度大于等于第四磨损阈值,则执行步骤106。
第四磨损阈值,可以与前面实施例所描述的预定磨损阈值相同或者不同。
本发明实施例通过对第二存储设备子集中的存储设备的磨损度与所述第四磨损阈值的比较,可以减少反磨损均衡调整的频率。
具体地,如何根据N个存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集,以及如何将第二存储设备子集中的数据迁移到第一存储设备子集以图6、图7和图8为例详细说明。当然并不限于图6、图7和图8所示的方法。
如图6所示,包括以下步骤:
S301:将所述N个存储设备按照磨损度从高到低进行排序,磨损度最高的存储设备编号为1,磨损度最低的存储设备编号为N;
具体地,可以在控制器设备的内存里面进行排序。
按照磨损度进行排序,可以从高到低进行排序,也可以从低到高进行排序,只要能够有助于正确地完成存储设备子集的划分即可。本发明实施例对此不作限定。
本发明实施例,以从高到低进行排序为例说明。
S302:计算第i号存储设备和第i+1号存储设备的磨损度差值△T,0<i<N;
先从第i=1号存储设备开始计算。
如果所述磨损度差值小于等于第一磨损阈值,则执行步骤303;
如果所述磨损度差值大于第一磨损阈值,则执行步骤304。
具体地,第一磨损阈值,可以根据存储设备的使用寿命,以及预期两个存储设备失效的时间间隔来确定。如何确定第一磨损阈值有多种方法,此处仅用于举例,本发明实施例对此不作限定。存储设备的失效,是指存储设备磨损殆尽,需要被替换。如果希望两个存储设备不要同时失效,期望两个存储设备失效的时间间隔为2-3周,以2.6周为例,那么第一磨损阈值可以为0.385%*2.6≈1%。0.385%是假设在实际业务中,经统计发现的存储设备平均每周的磨损度。当然0.385%仅是举例,实际使用中可以与此不同。如果期望两个存储设备失效的时间间隔为10天,以1.5周为例,那么第一磨损阈值可以为0.385%*1.5≈0.58%。具体的期望两个存储设备失效的时间间隔,可以综合考虑当地换一个存储设备的时间间隔来确定。
以表1举例说明如下,假设N=25,M=2,预定磨损阈值为70%,第一磨损阈值为1%。
控制器检测25个存储设备组成的存储阵列中,有2个存储设备的磨损度超过了70%,则从磨损度最高的存储设备开始,进行磨损度差值△T的计算。Ti表示排序后第i号存储设备的磨损度。先从排序后的1号存储设备与2号存储设备,进行磨损度差值计算,则△T1=T1-T2=80.01%-70.01%,则为10%。由于10%大于1%,因此执行步骤304。
其中表1中,第一列实际槽位号为存储设备在存储阵列中的实际的物理编号;
第二列i为按磨损度从高到低排序后各存储设备的逻辑编号;
第三列T为各存储设备的磨损度。
表1
S303:将第1到第i号存储设备作为所述第一存储设备子集,将第i+1到第N号存储设备作为所述第二存储设备子集。
S304:则i=i+1,然后继续计算第i号存储设备和第i+1号存储设备的磨损度差值,直到磨损度差值小于等于第一磨损阈值或者所述N个存储设备遍历完毕。
在表1所述的例子中,由于排序后的1号存储设备与2号存储设备的磨损度差值大于所述第一磨损阈值,则i+1等于2,开始计算第2号存储设备和第3号存储设备的磨损度差值。△T2=T2-T3=70.01%-65.20%,则为4.81%。由于4.81%大于1%,因此继续i加1为3进行计算。这时候开始计算第3号存储设备和第4号存储设备的磨损度差值。△T3=T3-T4=65.20%-65.17%,则为0.03%。由于0.03%小于1%,因此不用再继续计算第4号存储设备之后的磨损度差值,遍历终止。
这时候将第1到第i号存储设备作为所述第一存储设备子集,将第i+1到第N号存储设备作为所述第二存储设备子集。在表1所示的例子中,即将第1到第3号存储设备,作为所述第一存储设备子集subset1,将第4到第25号存储设备,作为所述第二存储设备子集subset2。
经过上述的步骤303或者304划分出来的第一存储设备子集和第二存储设备子集,第一个存储设备子集的特点是:所有的存储设备之间的磨损度差值均超过了第一磨损阈值。第二个存储设备子集的特点是:该第二个存储设备子集中磨损度最大的那个存储设备,与第一个存储设备子集中磨损度最小的存储设备之间的磨损度差值不超过第一磨损阈值。
比如表1所示的例子中,第一个存储设备子集subset1中所有的存储设备之间的磨损度差值均超过了1%。第二个存储设备子集subset2中磨损度最大的那个存储设备(排序后第4号存储设备),与第一个存储设备子集subset1中磨损度最小的存储设备之间(排序后第3号存储设备)的磨损度差值不超过1%。
一般情况下,同一个存储阵列内的所有存储设备的磨损度应该比较接近,比如说同一时间点磨损度差值不超过2%。上述表1示例出的磨损度差值比较大的情况,可能是个别槽位的存储设备因为某种原因被更换或者该存储阵列在使用过程中加入了新的存储设备导致的。
如果所述N个存储设备遍历完毕,仍没有找到第i号存储设备和第i+1号存储设备的磨损度差值小于等于第一磨损阈值,那么根据每个存储设备的权重,重新调整业务数据(简称为数据)的分布,做到按权重均衡分布。也就是说,第一存储设备子集中存储设备和第二存储设备子集中存储设备的磨损度拉开差距之后,就再次恢复到一个均衡的状态。然后过一段时间间隔(比如一周)后,再次从S102重新执行。
经过上述方法,假设第一存储设备子集中存储设备的数量为X,那么第二存储设备子集中存储设备的数量为N-X。下面对第二存储设备子集中的数据迁移到第一存储设备子集中的具体方法进行描述。当然并不限于下面实施例所描述的迁移方法。
S305:统计第一存储设备子集中空闲的存储空间,即统计出第一存储设备子集中总共还有多少的Chunk处于空闲状态(未被使用)。假如建立了RAID组的话,那么尚未用于建立RAID组的Chunk,即可以理解为处于空闲状态。假设统计出的结果用FreeSize表示。
S306:以存储设备为SSD为例说明,可以从第二存储设备子集中的每个物理SSD,平均地抽取FreeSize/(N-X)个逻辑SSD上的数据,迁移到第一存储设备子集的物理SSD中,从而让第一存储设备子集的每个物理SSD满负荷运转。满负荷运转,可以理解为存储设备的每个Chunk都占用,不再留热备空间。借此通过业务压力的差异,使得一段时间后第一存储设备子集的所有物理SSD的磨损度比第二存储设备子集的所有物理SSD的磨损度高。
当然也可以采用其他实施例介绍的数据迁移方法。
而且,如果希望第一存储设备子集中物理SSD的最低磨损度比第二存储设备子集的物理SSD的最高磨损度迅速的拉开差距,也可以是从第二存储设备子集中磨损度最高的物理SSD多抽取些数据到第一存储设备子集中物理SSD。
比如,在如表1所示的例子,第一存储设备子集中存储设备的数量为3个,第一存储设备子集中存储设备的数量为25-3=22个。可以平均抽取出FreeSize/22个逻辑SSD上的业务数据,迁移到第一存储设备子集的3个存储设备中。也可以为了迅速地拉开实际槽位号14和7之间SSD的磨损度的差距,把实际槽位号为7的业务数据,多抽取一些(比如说抽取多1-2个Chunk的业务数据),迁移到第一存储设备子集的3个存储设备中。
具体地,如果组成了RAID,那么将第二存储设备子集中的数据迁移到第一存储设备子集时,须满足迁移到的第一存储设备子集的SSD不同于所述RAID包含的第一存储设备子集的SSD。其目的是保证一个RAID所包含的各个Chunk分别属于不同的磁盘,从而防止一个磁盘发生故障或者掉电时两个CK的数据都丢失的情况。
因为业务压力被逐渐地迁移,因此整个系统的业务性能不会受到影响。
在执行步骤S306之后,还可以进一步包括:
S308:一定时间间隔后,如果计算发现第一存储设备子集中磨损度最低的物理SSD与第二存储设备子集中中磨损度最高的物理SSD之间,差异已经大于等于第一磨损阈值,则重新开始执行步骤S102。
如何根据N个存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集,以及如何将第二存储设备子集中的数据迁移到第一存储设备子集还可以以如图7所示的方法进行说明。
如图7所示,包括以下步骤:
S401:根据所述N个存储设备的磨损度将所述N个存储设备划分为S个子部分subsection,其中,第j子部分中存储设备的最小磨损度大于等于第j+1个子部分中存储设备的最大磨损度,0<j<S。
优选地,每个子部分中存储设备之间的磨损度差值均超过了第二磨损阈值。第二磨损阈值的确定,可以参照第一磨损阈值,并且可以与第一磨损阈值相同或者不同。并且第j+1子部分中磨损度最大的那个存储设备,与第j子部分中存储设备子集中磨损度最小的存储设备之间的磨损度差值不超过第二磨损阈值。
具体的划分S个子部分方法可以如下:
S4020:将所述N个存储设备按照磨损度从高到低进行排序,磨损度最高的存储设备编号为1,磨损度最低的存储设备编号为N;
S4021:计算第i号存储设备和第i+1号存储设备的磨损度差值△T,0<i<N;
先从第i=1号存储设备开始计算磨损度差值△T。
如果所述磨损度差值小于等于所述第二磨损阈值,则执行S4022;
如果所述磨损度差值大于第二磨损阈值,则执行S4023。
具体地,第二磨损阈值的确定方法,可以根据图6实施例的描述。
S4022:则第i号存储设备属于一个子部分,第i+1号存储设备属于另一子部分;然后i=i+1,继续执行步骤S4021。
S4023:则第i+1号存储设备属于第i号存储设备所在的子部分,然后i=i+1,继续执行步骤S4021。
经过上述方法,把所述存储阵列划分出来S个子部分。
以表2为例说明:假设N=25,M=2,预定磨损阈值为70%;第二磨损阈值与第一磨损阈值相同,为1%。
表2
先从排序后的第1号存储设备与第2号存储设备进行磨损度差值计算,则△T1=T1-T2=80.01%-70.01%,则为10%。由于10%大于1%,因此执行步骤4023。把2号存储设备和1号存储设备作为同一个子部分,此时第一子部分subsection1为{1,2}。则i+1等于2,开始计算第2号存储设备和第3号存储设备的磨损度差值。△T2=T2-T3=70.01%-65.20%,则为4.81%。由于4.81%大于1%,因此把第3号存储设备和第2号存储设备作为同一个子部分,此时第一子部分subsection1为{1,2,3}。这时候开始计算第3号存储设备和第4号存储设备的磨损度差值。△T3=T3-T4=65.20%-65.17%,则为0.03%。由于0.03%小于1%,因此,第4号存储设备要作为第二子部分。则i+1等于4,开始计算第4号存储设备和第5号存储设备的磨损度差值。△T4=T4-T5=65.17%-64.16%,则为1.01%。由于1.01%大于1%,因此把第5号存储设备和第4号存储设备作为同一个子部分,此时第二子部分subsection2为{4,5}。这时候开始计算第5号存储设备和第6号存储设备的磨损度差值。△T5=T5-T6=64.16%-64.00%,则为0.16%。由于0.16%小于1%,因此,第6号存储设备要作为第三子部分subsection3。这时候开始计算第6号存储设备和第7号存储设备的磨损度差值,直到所有的存储设备遍历完毕。
S402:计算第1子部分到第j子部分存储设备的数量,其中0<j<S;如果j=1,则直接计算第1子部分存储设备的数量。
如果第1子部分到第j子部分存储设备的数量大于等于N/2,则执行步骤S403;
如果第1子部分到第j子部分存储设备的数量小于N/2,则执行步骤S404;
S403:第1子部分到第j子部分的存储设备作为第一存储设备子集,把第j+1子部分到第S子部分的存储设备作为第二存储设备子集;
S404:则j=j+1,继续计算第1子部分到第j子部分存储设备的数量,直到第1子部分到第j子部分存储设备的数量大于等于N/2,则把第1子部分到第j子部分的存储设备作为第一存储设备子集,把第j+1子部分到第S子部分的存储设备作为第二存储设备子集。
第二存储设备子集中的数据迁移到第一存储设备子集中,满足第一存储设备子集中各子部分增加的数据相等或者从第1子部分开始递减;第二存储设备子集中各子部分减少的数据相等或者从第S子部分开始递减。具体方法的可以为:
S405:统计第一存储设备子集中空闲的存储空间,即统计出第一存储设备子集中总共还有多少的Chunk处于空闲状态(未被使用)。假如建立了RAID组的话,那么尚未用于建立RAID组的Chunk,即可以理解为处于空闲状态。假设统计出的结果用FreeSize表示。
假设第一存储设备子集中存储设备的数量为X,那么第二存储设备子集中存储设备的数量为N-X。那么第一存储设备子集中所有存储设备的平均空闲空间为FreeSize/X。
S406:第一子集中,包含j个子部分。假如第二子集共迁移FreeSize-FreeSizeA的数据到第一子集中,其中FreeSizeA表示数据迁移后第一子集空闲的存储空间;其中从第二子集的每个存储设备抽取(FreeSize-FreeSizeA)/(N-X)的数据,迁移到第一子集中。
第一子集中每个子部分数据迁移后空闲的存储空间为:
FreeSize/X*(u-1),其中1≤u≤j。
比如第一子集包含3个子部分,那么数据迁移后,
第1个子部分,每个存储设备的空闲空间调整为(FreeSize/X)×(1-1)=0;
第2个子部分,每个存储设备的空闲空间调整为(FreeSize/X)×(2-1)=FreeSize/X;
第3个子部分,每个存储设备的空闲空间调整为(FreeSize/X)×(3-1)=2*FreeSize/X。
第一子集中所有的子部分数据迁移后空闲的存储空间总共为FreeSizeA。
当然也可以采用其他实施例介绍的数据迁移方法。
如何根据N个存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集,以及如何将第二存储设备子集中的数据迁移到第一存储设备子集还可以以如图8所示的方法进行说明。
S501同S401,此处不再赘述。
相对应地,第二存储设备子集中的数据迁移到第一存储设备子集中的具体方法可以为:
S505:统计第一存储设备子集中空闲的存储空间,即统计出第一存储设备子集中总共还有多少的Chunk处于空闲状态(未被使用)。假如建立了RAID组的话,那么尚未用于建立RAID组的Chunk,即可以理解为处于空闲状态。假设统计出的结果用FreeSize表示。
假设第一存储设备子集中存储设备的数量为X,那么第二存储设备子集中存储设备的数量为N-X。
S506:第一子集中,包含j个子部分。假如第二子集共迁移FreeSize-FreeSizeA的数据到第一子集中,其中FreeSizeA表示数据迁移后第一子集空闲的存储空间;其中从第二子集的每个存储设备抽取(FreeSize-FreeSizeA)/(N-X)的业务数据,迁移到第一子集的存储设备中。
第二存储设备子集中的数据迁移到第一存储设备子集中,还可以采用不均衡的迁移方案,第一子集中各子部分增加的业务数据从第1子部分开始递减;第二子集中各子部分减少的业务数据从第S子部分开始递减。
以表2所示举例说明,在满足第二存储存储中迁出的业务数据与第一存储存储中迁入的业务数据相等的前提下,假如第1子部分和第2子部分的存储设备作为第一存储设备子集,则第1子部分增加的业务数据为100%(即所有的空闲空间占满),第2子部分增加的业务数据为90%(即所有的空闲空间只占用90%);假如第3子部分到第5子部分的存储设备作为第二存储设备子集,则第二存储设备子集中,则第5子部分减少的业务数据为30%(减少了所有的数据的30%),第4子部分减少的业务数据为20%(减少了所有的数据的20%),第3子部分减少的业务数据为10%(减少了所有的数据的10%)。
当然也可以采用其他实施例介绍的数据迁移方法。
如何根据N个存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集,当然并不限于图6、图7或图8所示的方法。比如可以设置第三磨损阈值,磨损度排序后,磨损度大于等于第三磨损阈值的存储设备组成所述第一存储设备子集,磨损度小于所述第三磨损阈值的存储设备组成所述第二存储设备子集。第三磨损阈值可以按照经验值预先设置,并且可以进行调整,可以与前面实施例描述的预定磨损阈值相同或者不同。
本发明实施例,根据存储设备的磨损度,将存储阵列划分为第一存储设备子集和第二存储设备子集,并且所述第一存储设备子集中存储设备的最小磨损度大于等于所述第二存储设备子集中存储设备的最大磨损度,然后将所述第二存储设备子集中的数据迁移到所述第一存储设备子集中或者将待写入数据写入所述第一存储设备子集中,因此可以通过减少所述第一存储设备子集中存储设备的使用寿命,来相对增加第二存储设备子集中存储设备的使用寿命,从而可以拉开第一存储设备子集中存储设备的失效时间与第二存储设备子集中存储设备的失效时间的间隔,减少磨损均衡引起的多块存储设备同时失效的风险,提高数据的可靠性。
以上介绍的都是动态调整的方法,当然也可以直接在为存储阵列中的每个存储设备分配权重时,如果每个存储设备的容量相同,则为每个存储设备赋予不同的权重,确保每个存储设备的权重值均不相同。或者
在为存储阵列中的每个存储设备分配权重时,确保每个存储设备的容量不同,但是赋予每个存储设备D相同的权重。从而让每个存储设备磨损度不均衡。
本发明在各种数据保护模型下(包括但不限于:无数据保护、镜像数据保护、校验数据保护等),均能够实现全局反磨损均衡的方法,以存储设备为SSD为例说明。
下面以校验数据保护为例说明,比如RAID5、RAID6。
当该SSD组内部的物理SSD都磨损到一定程度后,系统从物理SSD中选择某些个物理SSD来承担更多的业务,相应地,必然有另外的物理SSD所承担的业务量会减小,如图3和图9所示的RAID5系统,将物理SSD#8的4号逻辑SSD上的数据迁移到物理SSD#1上的逻辑SSD中。
经过上述步骤,物理SSD#1所承担的业务量加大,磨损速度也会加快,而物理SSD#8的业务量减小,磨损速度也会减慢。经过一段时间,所有的物理SSD的磨损度就会形成类似于图5一样的阶梯状,从而避免多块物理SSD同时失效,提高了系统的可靠性。
再以在镜像数据的模型下实现为例进行说明,比如RAID1、RAID10:
当该SSD组内部的物理SSD都磨损到一定程度后,系统从物理SSD中选择某些个物理SSD来承担更多的业务,相应地,必然有另外的物理SSD所承担的业务量会减小,如图10所示的RAID1系统,将物理SSD#7、#8的一些逻辑SSD上的数据迁移到物理SSD#1和物理SSD#2上的逻辑SSD。
经过上述步骤,物理SSD#1和物理SSD#2所承担的业务量加大,磨损速度也会加快,而物理SSD#7、#8的业务量减小(其中#8的业务量会变得比#7还要小),磨损速度也会减慢。经过一段时间,所有的物理SSD的磨损度就会形成类似于图5一样的阶梯状,从而避免多块物理SSD同时失效,提高了系统的可靠性。
上述流程描述了本发明实施例在各种场景下的应用,当然并不限于这些场景。
本发明实施例的装置
本发明实施例提供一种存储阵列的管理装置,所述存储阵列由N个存储设备组成,如图11,包括:
获取模块1101,用于获取所述N个存储设备的磨损度;
划分模块1102,用于根据所述N个存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集,所述第一存储设备子集中存储设备的最小磨损度大于等于所述第二存储设备子集中存储设备的最大磨损度;
处理模块1103,用于将所述第二存储设备子集中的数据迁移到所述第一存储设备子集中;或者将待写入数据写入所述第一存储设备子集中。
具体地,所述划分模块用于:
将所述N个存储设备按照磨损度从高到低进行排序,磨损度最高的存储设备编号为1,磨损度最低的存储设备编号为N;
计算第i号存储设备和第i+1号存储设备的磨损度差值,0<i<N;
如果所述磨损度差值小于等于第一磨损阈值,则将第1号到第i号存储设备作为所述第一存储设备子集,将第i+1号到第N号存储设备作为所述第二存储设备子集;
如果所述磨损度差值大于所述第一磨损阈值,则i=i+1,继续计算第i号存储设备和第i+1号存储设备的磨损度差值。
或者,所述划分模块用于:
根据所述N个存储设备的磨损度将所述N个存储设备划分为S个子部分,其中第j子部分中存储设备的最小磨损度大于等于第j+1子部分中存储设备的最大磨损度,0<j<S;
计算第1子部分到第j子部分存储设备的数量,其中0<j<S;
如果所述第1子部分到第j子部分存储设备的数量大于等于N/2,则把第1子部分到第j子部分的存储设备作为所述第一存储设备子集,把第j+1子部分到第S子部分的存储设备作为所述第二存储设备子集;
如果所述第1子部分到第j子部分存储设备的数量小于N/2,则j=j+1,继续计算第1子部分到第j子部分存储设备的数量。
或者,所述划分模块用于:
根据所述N个存储设备的磨损度将所述N个存储设备划分为S个子部分,其中第j子部分中存储设备的最小磨损度大于等于第j+1个子部分中存储设备的最大磨损度,0<j<S;
或者,所述划分模块用于:
磨损度大于等于第三磨损阈值的存储设备组成所述第一存储设备子集,磨损度小于所述第三磨损阈值的存储设备组成所述第二存储设备子集。
相对应地,所述处理模块用于:
统计所述第一存储设备子集中空闲的存储空间FreeSize;
从所述第二存储设备子集中的每个存储设备抽取FreeSize/(N-i)的数据,迁移到所述第一存储设备子集中,其中i表示所述第一存储设备子集中存储设备的数量。
优选地,所述第一存储设备子集中各子部分增加的数据相等或者从第1子部分开始递减;所述第二存储设备子集中各子部分减少的数据相等或者从第S子部分开始递减。
所述处理模块用于:当所述第二存储设备子集中各子部分减少的数据相等时,从所述第二存储设备子集中的每个存储设备抽取(FreeSize-FreeSizeA)/(N-X)的数据,迁移到所述第一存储设备子集中,其中FreeSize表示数据迁移前所述第一存储设备子集中空闲的存储空间,FreeSizeA表示数据迁移后所述第一存储设备子集中空闲的存储空间,X表示所述第一存储设备子集中存储设备的数量。
可选地,所述装置还包括比较模块1104,用于将所述第二存储设备子集中存储设备的磨损度与第四磨损阈值进行比较;
如果所述第二存储设备子集中至少一个存储设备的磨损度大于等于所述第四磨损阈值,则所述处理模块将所述第二存储设备子集中的数据迁移到所述第一存储设备子集中。
本发明实施例所提供的装置,可以设置于前面实施例所描述的控制器中,用于执行前面实施例所描述的存储阵列的管理方法,各个单元功能的详细描述可参见方法实施例中的描述,在此不再赘述。
如图12,为本发明实施例提供的控制器,包括:
处理器101、存储器102、系统总线(简称总结)105和通信接口103。处理器101、存储器102和通信接口103之间通过系统总线105连接并完成相互间的通信。
处理器101可能为单核或多核中央处理单元,或者为特定集成电路,或者为被配置成实施本发明实施例的一个或多个集成电路。
存储器102可以为高速RAM存储器,也可以为非易失性存储器(non-volatile memory),例如至少一个硬盘存储器。
通信接口103用于与存储设备通信。
存储器102用于存储计算机执行指令1021。具体的,计算机执行指令1021中可以包括程序代码。
当计算机运行时,处理器101运行计算机执行指令1021,可以执行图4-图10任意之一所述的方法流程。
本发明实施例还提供一种数据处理的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令用于执行图4-图10任意之一所述的方法流程。
本发明实施例,根据存储设备的磨损度,将存储阵列划分为第一存储设备子集和第二存储设备子集,并且所述第一存储设备子集中存储设备的最小磨损度大于等于所述第二存储设备子集中存储设备的最大磨损度,然后将所述第二存储设备子集中的数据迁移到所述第一存储设备子集中或者将待写入数据写入所述第一存储设备子集中,因此可以通过减少所述第一存储设备子集中存储设备的使用寿命,来相对增加第二存储设备子集中存储设备的使用寿命,从而可以拉开第一存储设备子集中存储设备的失效时间与第二存储设备子集中存储设备的失效时间的间隔,减少磨损均衡引起的多块存储设备同时失效的风险,提高数据的可靠性。
本领域普通技术人员将会理解,本发明的各个方面、或各个方面的可能实现方式可以被具体实施为系统、方法或者计算机程序产品。因此,本发明的各方面、或各个方面的可能实现方式可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件等等),或者组合软件和硬件方面的实施例的形式,在这里都统称为“电路”、“模块”或者“系统”。此外,本发明的各方面、或各个方面的可能实现方式可以采用计算机程序产品的形式,计算机程序产品是指存储在计算机可读介质中的计算机可读程序代码。
计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质包含但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或者装置,或者前述的任意适当组合,如随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者快闪存储器)、光纤、便携式只读存储器(CD-ROM)。
计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处理器能够执行在流程图中每个步骤、或各步骤的组合中规定的功能动作;生成实施在框图的每一块、或各块的组合中规定的功能动作的装置。
计算机可读程序代码可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为单独的软件包、部分在用户的计算机上并且部分在远程计算机上,或者完全在远程计算机或者服务器上执行。也应该注意,在某些替代实施方案中,在流程图中各步骤、或框图中各块所注明的功能可能不按图中注明的顺序发生。例如,依赖于所涉及的功能,接连示出的两个步骤、或两个块实际上可能被大致同时执行,或者这些块有时候可能被以相反顺序执行。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (22)
1.一种存储阵列的管理方法,所述存储阵列由N个存储设备组成,其特征在于,包括:
控制器获取所述N个存储设备的磨损度;
根据所述N个存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集,所述第一存储设备子集中存储设备的最小磨损度大于等于所述第二存储设备子集中存储设备的最大磨损度;
将所述第二存储设备子集中的数据迁移到所述第一存储设备子集中;或者将待写入数据写入所述第一存储设备子集中。
2.根据权利要求1所述的方法,其特征在于,根据所述N个存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集包括:
将所述N个存储设备按照磨损度从高到低进行排序,磨损度最高的存储设备编号为1,磨损度最低的存储设备编号为N;
计算第i号存储设备和第i+1号存储设备的磨损度差值,0<i<N;
如果所述磨损度差值小于等于第一磨损阈值,则将第1号到第i号存储设备作为所述第一存储设备子集,将第i+1号到第N号存储设备作为所述第二存储设备子集;
如果所述磨损度差值大于所述第一磨损阈值,则i=i+1,继续计算第i号存储设备和第i+1号存储设备的磨损度差值。
3.根据权利要求1所述的方法,其特征在于,根据所述N个存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集包括:
根据所述N个存储设备的磨损度将所述N个存储设备划分为S个子部分,其中第j子部分中存储设备的最小磨损度大于等于第j+1子部分中存储设备的最大磨损度,0<j<S;
计算第1子部分到第j子部分存储设备的数量,其中0<j<S;
如果所述第1子部分到第j子部分存储设备的数量大于等于N/2,则把第1子部分到第j子部分的存储设备作为所述第一存储设备子集,把第j+1子部分到第S子部分的存储设备作为所述第二存储设备子集;
如果所述第1子部分到第j子部分存储设备的数量小于N/2,则j=j+1,继续计算第1子部分到第j子部分存储设备的数量。
5.根据权利要求3或4所述的方法,其特征在于,将所述N个存储设备划分为S个子部分包括:
将所述N个存储设备按照磨损度从高到低进行排序,磨损度最高的存储设备编号为1,磨损度最低的存储设备编号为N;
计算第i号存储设备和第i+1号存储设备的磨损度差值,0<i<N;
如果所述磨损度差值小于等于第二磨损阈值,则第i号存储设备属于一个子部分,第i+1号存储设备属于另一子部分,然后i=i+1,继续计算第i号存储设备和第i+1号存储设备的磨损度差值;
如果所述磨损度差值大于所述第二磨损阈值,则第i+1号存储设备属于第i号存储设备所在的子部分,然后i=i+1,继续计算第i号存储设备和第i+1号存储设备的磨损度差值。
6.根据权利要求1所述的方法,其特征在于,根据所述N个存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集包括:
磨损度大于等于第三磨损阈值的存储设备组成所述第一存储设备子集,磨损度小于所述第三磨损阈值的存储设备组成所述第二存储设备子集。
7.根据权利要求1-6任一所述的方法,其特征在于,将所述第二存储设备子集中的数据迁移到所述第一存储设备子集中,包括:
统计所述第一存储设备子集中空闲的存储空间FreeSize;
从所述第二存储设备子集中的每个存储设备抽取FreeSize/(N-X)的数据,迁移到所述第一存储设备子集中,其中X表示所述第一存储设备子集中存储设备的数量。
8.根据权利要求3-5任一所述的方法,其特征在于,将所述第二存储设备子集中的数据迁移到所述第一存储设备子集中,包括:
所述第一存储设备子集中各子部分增加的数据相等或者从第1子部分开始递减;所述第二存储设备子集中各子部分减少的数据相等或者从第S子部分开始递减。
9.根据权利要求8所述的方法,其特征在于,当所述第二存储设备子集中各子部分减少的数据相等时,从所述第二存储设备子集中的每个存储设备抽取(FreeSize-FreeSizeA)/(N-X)的数据,迁移到所述第一存储设备子集中,其中FreeSize表示数据迁移前所述第一存储设备子集中空闲的存储空间,FreeSizeA表示数据迁移后所述第一存储设备子集中空闲的存储空间,X表示所述第一存储设备子集中存储设备的数量。
10.根据权利要求8或9所述的方法,其特征在于,所述第一存储设备子集中每个子部分数据迁移后空闲的存储空间为:
FreeSize/X*(u-1),其中1≤u≤j,j为所述第一存储设备子集中包含的子部分的数量,FreeSize表示数据迁移前所述第一存储设备子集中空闲的存储空间,X表示所述第一存储设备子集中存储设备的数量;
所述第一存储设备子集中所有的子部分数据迁移后空闲的存储空间总共为FreeSizeA。
11.根据权利要求1-10任一所述的方法,其特征在于,
将所述第二存储设备子集中的数据迁移到所述第一存储设备子集中之前,还包括:将所述第二存储设备子集中存储设备的磨损度与第四磨损阈值进行比较;
如果所述第二存储设备子集中至少一个存储设备的磨损度大于等于所述第四磨损阈值,则将所述第二存储设备子集中的数据迁移到所述第一存储设备子集中。
12.一种存储阵列的管理装置,所述存储阵列由N个存储设备组成,其特征在于,包括:
获取模块,用于获取所述N个存储设备的磨损度;
划分模块,用于根据所述N个存储设备的磨损度将所述存储阵列划分为第一存储设备子集和第二存储设备子集,所述第一存储设备子集中存储设备的最小磨损度大于等于所述第二存储设备子集中存储设备的最大磨损度;
处理模块,用于将所述第二存储设备子集中的数据迁移到所述第一存储设备子集中;或者将待写入数据写入所述第一存储设备子集中。
13.根据权利要求12所述的装置,其特征在于,所述划分模块用于:
将所述N个存储设备按照磨损度从高到低进行排序,磨损度最高的存储设备编号为1,磨损度最低的存储设备编号为N;
计算第i号存储设备和第i+1号存储设备的磨损度差值,0<i<N;
如果所述磨损度差值小于等于第一磨损阈值,则将第1号到第i号存储设备作为所述第一存储设备子集,将第i+1号到第N号存储设备作为所述第二存储设备子集;
如果所述磨损度差值大于所述第一磨损阈值,则i=i+1,继续计算第i号存储设备和第i+1号存储设备的磨损度差值。
14.根据权利要求12所述的装置,其特征在于,所述划分模块用于:
根据所述N个存储设备的磨损度将所述N个存储设备划分为S个子部分,其中第j子部分中存储设备的最小磨损度大于等于第j+1子部分中存储设备的最大磨损度,0<j<S;
计算第1子部分到第j子部分存储设备的数量,其中0<j<S;
如果所述第1子部分到第j子部分存储设备的数量大于等于N/2,则把第1子部分到第j子部分的存储设备作为所述第一存储设备子集,把第j+1子部分到第S子部分的存储设备作为所述第二存储设备子集;
如果所述第1子部分到第j子部分存储设备的数量小于N/2,则j=j+1,继续计算第1子部分到第j子部分存储设备的数量。
16.根据权利要求12所述的装置,其特征在于,所述划分模块用于:
磨损度大于等于第三磨损阈值的存储设备组成所述第一存储设备子集,磨损度小于所述第三磨损阈值的存储设备组成所述第二存储设备子集。
17.根据权利要求12-16任一所述的装置,其特征在于,所述处理模块用于:
统计所述第一存储设备子集中空闲的存储空间FreeSize;
从所述第二存储设备子集中的每个存储设备抽取FreeSize/(N-i)的数据,迁移到所述第一存储设备子集中,其中i表示所述第一存储设备子集中存储设备的数量。
18.根据权利要求14或15所述的装置,其特征在于,所述第一存储设备子集中各子部分增加的数据相等或者从第1子部分开始递减;所述第二存储设备子集中各子部分减少的数据相等或者从第S子部分开始递减。
19.根据权利要求18所述的装置,其特征在于,所述处理模块用于:
当所述第二存储设备子集中各子部分减少的数据相等时,从所述第二存储设备子集中的每个存储设备抽取(FreeSize-FreeSizeA)/(N-X)的数据,迁移到所述第一存储设备子集中,其中FreeSize表示数据迁移前所述第一存储设备子集中空闲的存储空间,FreeSizeA表示数据迁移后所述第一存储设备子集中空闲的存储空间,X表示所述第一存储设备子集中存储设备的数量。
20.根据权利要求12-19任一所述的装置,其特征在于,
所述装置还包括比较模块,用于将所述第二存储设备子集中存储设备的磨损度与第四磨损阈值进行比较;
如果所述第二存储设备子集中至少一个存储设备的磨损度大于等于所述第四磨损阈值,则所述处理模块将所述第二存储设备子集中的数据迁移到所述第一存储设备子集中。
21.一种控制器,其特征在于,包括:
处理器、存储器、系统总线和通信接口,所述处理器、所述存储器和所述通信接口之间通过所述系统总线连接并完成相互间的通信;
所述通信接口,用于与存储设备通信;
所述存储器,用于存储计算机执行指令;
所述处理器,用于运行所述计算机执行指令,执行如权利要求1-11所述的方法。
22.一种计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令用于执行如权利要求1-11任一所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/078504 WO2014205841A1 (zh) | 2013-06-29 | 2013-06-29 | 一种存储阵列的管理方法、装置和控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103688248A true CN103688248A (zh) | 2014-03-26 |
CN103688248B CN103688248B (zh) | 2015-09-30 |
Family
ID=50323328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380000793.0A Active CN103688248B (zh) | 2013-06-29 | 2013-06-29 | 一种存储阵列的管理方法、装置和控制器 |
Country Status (7)
Country | Link |
---|---|
US (4) | US9292220B2 (zh) |
EP (3) | EP3905052A1 (zh) |
JP (1) | JP5881900B2 (zh) |
CN (1) | CN103688248B (zh) |
AU (1) | AU2013397052B2 (zh) |
CA (1) | CA2896128C (zh) |
WO (1) | WO2014205841A1 (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105988727A (zh) * | 2015-02-25 | 2016-10-05 | 中兴通讯股份有限公司 | 一种基于raid的存储方法和存储装置 |
CN107122126A (zh) * | 2016-12-22 | 2017-09-01 | 华为技术有限公司 | 数据的迁移方法、装置和系统 |
CN107544747A (zh) * | 2016-06-29 | 2018-01-05 | 北京忆恒创源科技有限公司 | 磨损逆均衡方法与装置 |
CN108205423A (zh) * | 2016-12-20 | 2018-06-26 | 华为技术有限公司 | 一种物理硬盘磨损均衡方法、装置及系统 |
CN108958990A (zh) * | 2018-07-24 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种提高现场可更换单元信息可靠性的方法和装置 |
CN109426449A (zh) * | 2017-09-04 | 2019-03-05 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
TWI665550B (zh) * | 2018-04-27 | 2019-07-11 | 威聯通科技股份有限公司 | 磁碟陣列的資料分佈方法及其資料儲存系統與記錄媒體 |
CN110058963A (zh) * | 2018-01-18 | 2019-07-26 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
CN110245093A (zh) * | 2018-03-08 | 2019-09-17 | 东芝存储器株式会社 | 固态存储驱动器阵列中的工作负荷自适应超额配置 |
CN111078133A (zh) * | 2019-10-18 | 2020-04-28 | 苏州浪潮智能科技有限公司 | 一种管理全闪存储阵列的空间的方法、设备及介质 |
CN111104055A (zh) * | 2018-10-29 | 2020-05-05 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
CN114489504A (zh) * | 2022-01-21 | 2022-05-13 | 苏州浪潮智能科技有限公司 | 一种ssd数据管理方法及相关组件 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2672387B1 (en) * | 2012-06-04 | 2018-08-01 | Amplidata NV | A distributed object storage system |
CN105701028B (zh) * | 2014-11-28 | 2018-10-09 | 国际商业机器公司 | 分布式存储系统中的磁盘管理方法和设备 |
JP6476959B2 (ja) * | 2015-02-13 | 2019-03-06 | 富士通株式会社 | ストレージ制御装置、ストレージシステム、および制御プログラム |
US10296236B2 (en) * | 2015-07-01 | 2019-05-21 | Pure Storage, Inc. | Offloading device management responsibilities from a storage device in an array of storage devices |
US20170052911A1 (en) * | 2015-08-20 | 2017-02-23 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Memory module having a memory controller for controlling non-volatile memory |
US10802936B2 (en) | 2015-09-14 | 2020-10-13 | Hewlett Packard Enterprise Development Lp | Memory location remapping and wear-levelling |
US10511489B2 (en) * | 2015-09-30 | 2019-12-17 | Hitachi, Ltd. | Storage operational management service providing apparatus, storage operational management service providing method, and storage operational management system |
US10545681B2 (en) * | 2016-02-08 | 2020-01-28 | International Business Machines Corporation | Asymmetric storage data distribution |
CN109213428B (zh) * | 2017-06-30 | 2021-05-28 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和设备 |
CN109725835B (zh) * | 2017-10-27 | 2022-04-29 | 伊姆西Ip控股有限责任公司 | 用于管理盘阵列的方法、设备和计算机程序产品 |
US10915252B2 (en) * | 2019-05-14 | 2021-02-09 | Vmware, Inc. | System and method for managing a group of storage devices using their wear levels and a target wearing profile |
KR20210155593A (ko) * | 2020-06-16 | 2021-12-23 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458969A (zh) * | 2007-12-13 | 2009-06-17 | 三星电子株式会社 | 半导体存储器系统及其磨损平衡方法 |
CN102081576A (zh) * | 2011-03-01 | 2011-06-01 | 华中科技大学 | 一种闪存的磨损平衡方法 |
US20120173796A1 (en) * | 2010-12-31 | 2012-07-05 | Yang-Chih Shen | Method for performing block management, and associated memory device and controller thereof |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007180610A (ja) * | 2005-12-26 | 2007-07-12 | Konica Minolta Business Technologies Inc | 画像形成装置および画像形成装置における記憶装置の制御方法 |
JP4863749B2 (ja) * | 2006-03-29 | 2012-01-25 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム |
US8135907B2 (en) * | 2008-06-30 | 2012-03-13 | Oracle America, Inc. | Method and system for managing wear-level aware file systems |
JP5242264B2 (ja) * | 2008-07-07 | 2013-07-24 | 株式会社東芝 | データ制御装置、ストレージシステムおよびプログラム |
CN101640069B (zh) * | 2008-08-01 | 2013-12-18 | 群联电子股份有限公司 | 用于闪速存储器的平均磨损方法与平均磨损系统 |
US20120023144A1 (en) * | 2010-07-21 | 2012-01-26 | Seagate Technology Llc | Managing Wear in Flash Memory |
JP2012033047A (ja) * | 2010-07-30 | 2012-02-16 | Toshiba Corp | 情報処理装置、メモリ管理装置、メモリ管理方法、及びプログラム |
WO2012132408A1 (ja) * | 2011-03-31 | 2012-10-04 | パナソニック株式会社 | アレイ管理装置、アレイ管理方法、コンピュータプログラム、集積回路 |
JP5215434B2 (ja) * | 2011-05-18 | 2013-06-19 | 株式会社東芝 | 複数の不揮発性メモリを備えたストレージ装置、ストレージコントローラ及び論理ディスク生成方法 |
US9208070B2 (en) * | 2011-12-20 | 2015-12-08 | Sandisk Technologies Inc. | Wear leveling of multiple memory devices |
-
2013
- 2013-06-29 EP EP21155649.3A patent/EP3905052A1/en active Pending
- 2013-06-29 EP EP13806032.2A patent/EP2838025B1/en active Active
- 2013-06-29 WO PCT/CN2013/078504 patent/WO2014205841A1/zh active Application Filing
- 2013-06-29 EP EP17152320.2A patent/EP3264275B1/en active Active
- 2013-06-29 AU AU2013397052A patent/AU2013397052B2/en active Active
- 2013-06-29 JP JP2015523390A patent/JP5881900B2/ja active Active
- 2013-06-29 CA CA2896128A patent/CA2896128C/en active Active
- 2013-06-29 CN CN201380000793.0A patent/CN103688248B/zh active Active
- 2013-12-19 US US14/134,010 patent/US9292220B2/en active Active
-
2016
- 2016-02-25 US US15/053,328 patent/US9696938B2/en active Active
-
2017
- 2017-02-06 US US15/425,165 patent/US9747050B2/en active Active
- 2017-07-28 US US15/662,696 patent/US10095429B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458969A (zh) * | 2007-12-13 | 2009-06-17 | 三星电子株式会社 | 半导体存储器系统及其磨损平衡方法 |
US20120173796A1 (en) * | 2010-12-31 | 2012-07-05 | Yang-Chih Shen | Method for performing block management, and associated memory device and controller thereof |
CN102081576A (zh) * | 2011-03-01 | 2011-06-01 | 华中科技大学 | 一种闪存的磨损平衡方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105988727B (zh) * | 2015-02-25 | 2021-04-16 | 中兴通讯股份有限公司 | 一种基于raid的存储方法和存储装置 |
CN105988727A (zh) * | 2015-02-25 | 2016-10-05 | 中兴通讯股份有限公司 | 一种基于raid的存储方法和存储装置 |
CN107544747A (zh) * | 2016-06-29 | 2018-01-05 | 北京忆恒创源科技有限公司 | 磨损逆均衡方法与装置 |
CN107544747B (zh) * | 2016-06-29 | 2022-06-03 | 北京忆恒创源科技股份有限公司 | 磨损逆均衡方法与装置 |
CN108205423B (zh) * | 2016-12-20 | 2020-06-02 | 华为技术有限公司 | 一种物理硬盘磨损均衡方法、装置及系统 |
CN108205423A (zh) * | 2016-12-20 | 2018-06-26 | 华为技术有限公司 | 一种物理硬盘磨损均衡方法、装置及系统 |
CN107122126A (zh) * | 2016-12-22 | 2017-09-01 | 华为技术有限公司 | 数据的迁移方法、装置和系统 |
CN107122126B (zh) * | 2016-12-22 | 2020-09-08 | 华为技术有限公司 | 数据的迁移方法、装置和系统 |
CN109426449B (zh) * | 2017-09-04 | 2021-12-14 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN109426449A (zh) * | 2017-09-04 | 2019-03-05 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN110058963A (zh) * | 2018-01-18 | 2019-07-26 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
CN110245093B (zh) * | 2018-03-08 | 2023-07-25 | 东芝存储器株式会社 | 固态存储驱动器阵列中的工作负荷自适应超额配置 |
CN110245093A (zh) * | 2018-03-08 | 2019-09-17 | 东芝存储器株式会社 | 固态存储驱动器阵列中的工作负荷自适应超额配置 |
TWI665550B (zh) * | 2018-04-27 | 2019-07-11 | 威聯通科技股份有限公司 | 磁碟陣列的資料分佈方法及其資料儲存系統與記錄媒體 |
CN108958990A (zh) * | 2018-07-24 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种提高现场可更换单元信息可靠性的方法和装置 |
CN111104055A (zh) * | 2018-10-29 | 2020-05-05 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
CN111104055B (zh) * | 2018-10-29 | 2023-10-27 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
CN111078133A (zh) * | 2019-10-18 | 2020-04-28 | 苏州浪潮智能科技有限公司 | 一种管理全闪存储阵列的空间的方法、设备及介质 |
CN114489504A (zh) * | 2022-01-21 | 2022-05-13 | 苏州浪潮智能科技有限公司 | 一种ssd数据管理方法及相关组件 |
CN114489504B (zh) * | 2022-01-21 | 2023-08-08 | 苏州浪潮智能科技有限公司 | 一种ssd数据管理方法及相关组件 |
Also Published As
Publication number | Publication date |
---|---|
JP2015528174A (ja) | 2015-09-24 |
US20150006816A1 (en) | 2015-01-01 |
JP5881900B2 (ja) | 2016-03-09 |
CA2896128C (en) | 2018-04-03 |
US9696938B2 (en) | 2017-07-04 |
AU2013397052B2 (en) | 2016-09-29 |
US10095429B2 (en) | 2018-10-09 |
US20160170683A1 (en) | 2016-06-16 |
EP3264275A1 (en) | 2018-01-03 |
CA2896128A1 (en) | 2014-12-31 |
US9747050B2 (en) | 2017-08-29 |
EP3264275B1 (en) | 2021-04-07 |
WO2014205841A1 (zh) | 2014-12-31 |
US9292220B2 (en) | 2016-03-22 |
AU2013397052A1 (en) | 2015-07-02 |
EP2838025B1 (en) | 2017-04-19 |
EP2838025A4 (en) | 2015-02-18 |
EP2838025A1 (en) | 2015-02-18 |
US20170329544A1 (en) | 2017-11-16 |
US20170147242A1 (en) | 2017-05-25 |
CN103688248B (zh) | 2015-09-30 |
EP3905052A1 (en) | 2021-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103688248A (zh) | 一种存储阵列的管理方法、装置和控制器 | |
US9733844B2 (en) | Data migration method, data migration apparatus, and storage device | |
US11704239B2 (en) | Garbage collection method for storage medium, storage medium, and program product | |
US10387062B2 (en) | Storage system with cells changeable between two different level cell modes based on predicted lifetime | |
CN102622189B (zh) | 存储虚拟化的装置、数据存储方法及系统 | |
US8918609B2 (en) | Storage apparatus and data management method to determine whether to migrate data from a first storage device to a second storage device based on an access frequency of a particular logical area | |
US8924636B2 (en) | Management information generating method, logical block constructing method, and semiconductor memory device | |
CN103092766B (zh) | 一种用于nand flash的均衡损耗实现方法 | |
US10628088B2 (en) | Computer system | |
EP3617867A1 (en) | Fragment management method and fragment management apparatus | |
US10860260B2 (en) | Method, apparatus and computer program product for managing storage system | |
CN104731515B (zh) | 控制存储设备机群磨损均衡的方法及设备 | |
CN104050200A (zh) | 用于数据拷贝的方法和装置 | |
US10684785B2 (en) | Storage system | |
CN109725835A (zh) | 用于管理盘阵列的方法、设备和计算机程序产品 | |
CN116185304A (zh) | 一种硬盘异常下电优化方法、系统、设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |