CN109725835B - 用于管理盘阵列的方法、设备和计算机程序产品 - Google Patents

用于管理盘阵列的方法、设备和计算机程序产品 Download PDF

Info

Publication number
CN109725835B
CN109725835B CN201711029821.8A CN201711029821A CN109725835B CN 109725835 B CN109725835 B CN 109725835B CN 201711029821 A CN201711029821 A CN 201711029821A CN 109725835 B CN109725835 B CN 109725835B
Authority
CN
China
Prior art keywords
disk
extent
blocks
written
cumulatively
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
CN201711029821.8A
Other languages
English (en)
Other versions
CN109725835A (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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201711029821.8A priority Critical patent/CN109725835B/zh
Priority to US16/169,369 priority patent/US10740020B2/en
Publication of CN109725835A publication Critical patent/CN109725835A/zh
Application granted granted Critical
Publication of CN109725835B publication Critical patent/CN109725835B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

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)
  • Quality & Reliability (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Optical Recording Or Reproduction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的实施例涉及一种用于管理盘阵列的方法、设备和计算机程序产品。该方法包括确定针对盘阵列中的多个盘的各自的磨损程度,该多个盘中的每个盘包括多个盘区,每个盘区包括多个块。该方法还包括确定在一个预定时间段内多个盘各自累积写入的块的数目。该方法进一步包括基于磨损程度和累积写入的块的数目在多个盘之间迁移数据。

Description

用于管理盘阵列的方法、设备和计算机程序产品
技术领域
本公开的实施例主要涉及存储管理,并且更具体地涉及管理盘阵列的方法、设备和计算机程序产品。
背景技术
独立磁盘阵列RAID(Redundant Arrays of Independent Disk)是由多个独立的硬盘按不同的方式组合起来形成一个硬盘组。在用户看来,磁盘阵列RAID就像是一个盘,但是其可以提供比单个盘更高的存储能力,并且还可以提供数据备份。当盘区的数据被损坏时,利用数据备份还可以恢复损坏的数据,从而保护用户数据的安全性。磁盘阵列的不同组成方式被称为RAID级别(RAID Levels),如RAID0,RAID1,RAID5等。
随着磁盘阵列技术的发展,目前映射的磁盘阵列的应用逐渐增多。不同于具有可以单独控制磁盘的传统的磁盘阵列,多个映射的磁盘阵列可以被映射到一个盘阵列中,使得多个映射的磁盘阵列共享一个盘阵列。这样大大提高了盘的利用效率。然而,在使用盘阵列存储数据时,存储的数据有时会过度集中于一些盘。这使得这些盘容易出现故障,而更换这些故障盘又会导致盘阵列可靠性和性能的降低。
发明内容
本公开的实施列提供一种用于管理盘阵列的方法、设备和计算机程序产品。
根据本公开的第一方面,提供一种用于管理盘阵列的方法。该方法包括确定针对盘阵列中的多个盘的各自的磨损程度,多个盘中的每个盘包括多个盘区,每个盘区包括多个块。该方法还包括确定在一个预定时间段内多个盘各自累积写入的块的数目。该方法进一步包括基于磨损程度和累积写入的块的数目在多个盘之间迁移数据。
在某些实施例中,其中迁移数据包括响应于第一盘的磨损程度高于第二盘的磨损程度,比较第一盘中被累积写入的块的第一数目与第二盘中被累积写入的块的第二数目;以及响应于第一数目大于第二数目,将第一盘中的至少部分数据迁移到第二盘。
在某些实施例中,其中将第一盘中的至少部分数据迁移到所述第二盘包括确定第一盘的多个盘区中的每个盘区中被累积写入的块的数目,基于每个盘区中被累积写入的块的数目,确定第一盘的多个盘区各自的写入热度;从第一盘的多个盘区中选择写入热度较高的至少一个盘区;以及将第一盘的至少一个盘区中的数据迁移到第二盘的至少一个空闲盘区中。
在某些实施例中,其中第一盘中的至少一个盘区包括写入热度最高的盘区。
在某些实施例中,该方法还包括响应于所述第一累计数目大于所述第二累计数目,将第二盘中的至少部分数据迁移到所述第一盘。
在某些实施例中,其中将第二盘中的至少部分数据迁移到第一盘包括确定第二盘的多个盘区中的每个盘区中被累积写入的块的数目,基于每个盘区中被累积写入的块的数目,确定第二盘的多个盘区各自的写入热度;从第二盘的多个盘区中选择写入热度较低的至少一个盘区;以及将第二盘中的至少一个盘区中的数据迁移到第一盘中的至少一个空闲盘区。
在某些实施例中,其中第二盘中的所述至少一个盘区包括写入热度最低的非空闲盘区。
在某些实施例中,其中响应于第一盘的磨损程度高于第二盘的磨损程度达到一个阈值量,比较第一数目与第二数目。
在某些实施例中,其中一个盘的磨损程度基于该盘的累积擦除次数和最大擦除次数来确定。
根据本公开的第二方面,提供了一种用于盘阵列的电子设备。该电子设备包括:处理器;存储器,存储有计算机程序指令,处理器运行存储器中的所述计算机程序指令控制所述电子设备执行动作,该动作包括:确定针对盘阵列中的多个盘的各自的磨损程度,多个盘中的每个盘包括多个盘区,每个盘区包括多个块;确定在一个预定时间段内所述多个盘各自累积写入的块的数目;以及基于磨损程度和所述累积写入的块的数目在多个盘之间迁移数据。
在某些实施例中,其中所述迁移数据包括响应于第一盘的磨损程度高于第二盘的磨损程度,比较第一盘中被累积写入的块的第一数目与第二盘中被累积写入的块的第二数目;以及响应于第一数目大于第二数目,将第一盘中的至少部分数据迁移到第二盘。
在某些实施例中,其中将第一盘中的至少部分数据迁移到第二盘包括确定所述第一盘的多个盘区中的每个盘区中被累积写入的块的数目,基于每个盘区中被累积写入的块的数目,确定第一盘的多个盘区各自的写入热度;从第一盘的多个盘区中选择写入热度较高的至少一个盘区;以及将第一盘的至少一个盘区中的数据迁移到第二盘的至少一个空闲盘区中。
在某些实施例中,其中第一盘中的至少一个盘区包括写入热度最高的盘区。
在某些实施例中,所述动作还包括响应于所述第一累计数目大于所述第二累计数目,将第二盘中的至少部分数据迁移到所述第一盘。
在某些实施例中,其中将第二盘中的至少部分数据迁移到第一盘包括:确定第二盘的多个盘区中的每个盘区中被累积写入的块的数目,基于每个盘区中被累积写入的块的数目,确定第二盘的多个盘区各自的写入热度;从第二盘的多个盘区中选择写入热度较低的至少一个盘区;以及将第二盘中的至少一个盘区中的数据迁移到第一盘中的至少一个空闲盘区。
在某些实施例中,其中第二盘中的至少一个盘区包括写入热度最低的非空闲盘区。
在某些实施例中,其中响应于第一盘的磨损程度高于第二盘的磨损程度达到一个阈值量,比较第一数目与第二数目。
在某些实施例中,其中一个盘的磨损程度基于该盘的累积擦除次数和最大擦除次数来确定。
根据本公开的第三方面提供了一种计算机程序产品。该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行本公开的第一方面中的方法的步骤。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1图示了根据本公开的实施例的盘阵列100的架构图;
图2图示了根据本公开的实施例的管理盘阵列的方法200的流程图;
图3图示了根据本公开的实施例的确定数据的迁移的方法300的流程图;
图4图示了根据本公开的实施例的迁移第一盘的至少一个盘区的方法400的流程图;
图5图示了根据本公开的实施例的迁移第二盘的至少一个盘区的方法500的流程图;以及
图6示出了适于用来实施本公开内容的实施例的示例设备600的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
现有技术中在使用盘阵列进行存取数据时,为了避免数据在一个盘中过分集中于在某个盘块进行写入操作,因而设置了磨损平衡算法。然而,通过对盘阵列的研究发现在盘阵列的使用中,盘之间也具有数据处理过于集中于某个盘的问题,但是现有技术中只是给了在单个盘内进行磨损平衡处理的方法,并没有对盘阵列中盘之间进行磨损均衡处理的方法。如果盘阵列中的某些盘由于被经常使用,导致其被过快磨损的话,一旦该些盘出现故障,则会触发重建,这时处理的成本非常高,并且系统的可靠性和可用性也会被严重影响。
为了避免上述问题,本公开的实施例将提供用于管理盘之间磨损平衡的方法,通过从盘获取的擦除次数和在盘内写入的数据块的数目来管理盘阵列的盘之间的磨损平衡,以提高盘阵列中盘的使用寿命,从而整体提高盘阵列的使用效率。
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
图1示出了根据本公开的实施例的存储系统100的示意图。如图所示,存储系统100包括映射的独立冗余磁盘阵列(RAID)组110、管理器120和盘阵列130。存储系统100通过接口从外部设备接收数据并存储,以及将存储的数据返回给外部数据。为了简明起见,外部设备及与外部设备连接的部件均未示出。注意,管理器120可以借助于软件、硬件、固件或者其任意组合来实现。
在所示的存储系统中,盘阵列130为用于存储大量数据的存储介质。盘阵列130包括可以包括各种易失性和/或非易失性数据存储介质。存储介质的示例可以包括但不限于磁盘、光盘、硬盘、固态硬盘(SSD)、高速缓存。备选的或附加的,盘阵列130内的存储介质是相同类型的存储介质。在一个示例中,盘阵列内的盘均为固态硬盘SSD。
图1中图示的盘阵列130具有多个盘130-0、130-1、130-2…130-N,N为正整数。盘阵列130也被称为盘池。盘阵列130中的盘被划分为多个盘区。在一个示例中,盘阵列130中的每个盘均被划分为数量相同的K个盘区,K为正整数,且盘区的大小相同。位于盘内的盘区也被划分为多个块。在一个示例中,每个盘内的块大小是相同的。
在所示的存储系统中,管理器120包括用于管理存储系统内数据存储的处理器。处理器可以包括但不限于中央处理单元(CPU)、控制器、微处理器、数字信号处理器(DSP)和多核处理器。
在所示的存储系统中,映射的独立冗余磁盘阵列(RAID)组110为将数据存储在多个硬盘的不同的盘区的虚拟的存储设备。映射的独立冗余磁盘阵列组120可以为不同级别的盘阵列,可以包括但不限于RAID 0、RAID 1、RAID0+1、RAID 2、RAID 3、RAID 4、RAID 5、RAID 7、RAID 10、RAID 53,等等。
当存储系统100从外部设备接收到数据时会基于映射关系将存储在RAID组内的数据写入在盘阵列的物理盘的盘区上。在一个实施例中,写入的数据以块作为最小存储单位。因此,在确定写入盘区内的数据量时,可统计盘区内的累积写入的块的数量。在一个示例中,可以通过累积写入的块的数量表示盘区的热度。在一个实施例中,每个盘区被写入的块的数量或盘区的热度可由管理器获得,以用于管理每个盘的盘区。
管理器120除了可以获得上述盘区内被写入块的数量外,还可以从盘阵列的盘上获取关于盘的信息。例如,可以从盘获得盘的擦除次数和盘的最大擦除次数。附加的或备选的,管理器120可以从盘获得各种用户需要的信息。
在上面图1中图示了本公开实施例的系统结构图。为了更详细的说明本公开的管理盘阵列以实现盘之间磨损平衡的方法,下面将结合图2-5中的方法进一步进行详细的描述。
图2图示了根据本公开的实施例的管理盘阵列的方法200的示意图。盘阵列130中包括多个盘130-0、130-1、130-2…130-N,其中N为正整数,多个盘中的每个盘包括多个盘区,如盘130-0中包括的盘区DE(0,0)、DE(0,1)…DE(0,K-1),其中K为正整数,其中每个盘区又被划分为多个块。为了确定盘阵列中盘的使用情况,可以获取盘在预定时间长度内的使用情况。在一个示例中,该预定时间长度为4小时。在另一实施例中,该预定时间长度可以基于用户的需求设置为任何合适的值。
在方法200被执行时,首先在预定时间段内对盘阵列中的各个盘内的盘区的使用情况进行统计。在一个实施例中,在预定时间段内对各个盘区的使用情况进行统计可以包括统计每个盘的盘区在预定时间段内被写入的块的数目。附加的或备选的,在预定时间段内各个盘上被写入的块的数目可以基于该盘内各个盘区在预定时间段内被写入的块的数目之和来确定。
存储系统100运行预定时间长度之后,在202处,从盘中获取针对盘阵列中的多个盘的各自的磨损程度。该磨损程度表示各个盘的使用情况。在一个实施例中,可以通过从盘获得该盘的累积擦除次数以及盘的最大擦除次数来确定盘的磨损程度。例如,通过将盘的累积擦除次数与该盘的最大擦除次数的比值来表示该盘的磨损程度。比值越高,表明该盘已被使用太久,其使用寿命较短。而相反,比值越低,表时该盘被较少使用,其使用寿命较长。
在确定每个盘的磨损程度时,在204处,还可以确定在该预定时间段内多个盘各自累积写入的块的数目以确定在该预定时间段内盘的使用情况。通过确定在该预定时间段内各个盘各自累积写入的块的数目可以确定出每个盘被使用的情况,如果盘被写入的块的数目较多,表明该盘相对于其它盘被更频繁的使用,且其中的盘区也是被过多的使用。而如果盘在该预定时间段内被写入的块的数目较少,则表明该盘在数据处理过程中并不被经常使用。
通过上述信息可以确定盘之间的这种不均衡使用。在206处,基于上面获取每个盘的磨损程度和累积写入的块的数目在多个盘之间迁移数据。由于盘的磨损程度表明了盘已经被使用的程度,预定时间段内盘被累积写入的块数又表明了盘在预定时间段内被使用的程度,在本公开的方案中通过上述两个数据来确定盘之间数据的迁移,可以很好的调整盘之间的写入均衡。
在一个示例中,通过结合磨损程度和盘中累积写入的块数来确定将磨损程度较高的盘中某些数据迁移到磨损程度较低的盘以降低磨损程度较高的盘的使用。附加地或备选地,也可以确定将磨损程度较低的盘中的某些数据迁移到磨损程度较高的盘,以进一步均衡盘的使用。
上面图2图示了迁移数据的概述方法,下面在图3中将进一步详细的描述如何基于磨损程度和每个盘累积被写入的块数来确定数据的迁移。
在302处,方法300开始执行。存储系统100运行预定时间后,可以根据图2中所示的方法获得盘阵列中各个盘的磨损程度和该预定时间段内被写入的块的数目。
在获得了盘的磨损程度之后,其于盘的磨损程度在盘阵列中先选出两个盘,在后面的描述中将这两个盘分别称为第一盘和第二盘。在一个实施例中,第一盘和第二盘是基于盘磨损程度从盘阵列中选出的,将磨损程度最高的盘作为第一盘,将磨损程度最低的盘作为第二盘。备选的或附加的,盘阵列内盘的类型相同,则擦除次数最大或最小的盘也是磨损程度最大和最小的盘。附加的或备选的,如果阵列中的各盘的磨损程度相同,则将不同的两个盘分别作为第一盘和第二盘。
例如在图1中所示的相同类型的SSD盘130-0、130-1、130-2…130-N,其擦除次数分别为100、5、10、10…10。经过比较,如果盘130-0的擦除次数100为最大,盘130-1的擦除次数5为最小,由于盘的类型相同,因此,可以将盘130-0和130-1分别作为第一盘和第二盘。
备选的或附加的,可以通过对各个盘的擦除次数或磨损程度进行排序,来获得擦除次数或磨损程度最高的盘和擦除次数或磨损程度最低的盘。在一个备选实施例中,第一盘和第二盘可以依据需要由用户设置的各种方式或方法选出。
在304处,首先确定第一盘的磨损程度是否高于第二盘的中的磨损程度。如第一盘的磨损程度高于第二盘的中的磨损程度,则转到306处。如果第一盘的磨损程度是不高于第二盘的中的磨损程度,则返回继续运行。
在一个备选实施例中,在确定第一盘的磨损程度是否高于第二盘的中的磨损程度时,可以设置一个预定的阈值,并且设置第一盘的磨损程度高于第二盘的中的磨损程度达到该设定的阈值才转到306处,如果达不到该预定阈值,则返回继续运行。在一个实施例中,该预定阈值可以为1%。在另一备选实施例中,该预定阈值可以基于用户的需求设置为任意其它任何合适的数值。
当转到在306处时,确定第一盘中被累积写入的块的数目是否大于在第二盘中被累积写入的块的数目。这用于判定磨损程度较高的盘在预定时间段内是否是使用较多的盘。
如果第一盘在该预定时间段内被累积写入的块的数目小于第二盘中被累积写入的块的数目,表明第二盘相对于第一盘是写入数据较多的盘,也是使用热度较高的盘,因此,不需要在第一盘和第二盘之间进行数据的迁移操作,此时在312处把第二盘从盘比较列表中移除,然后将从盘列表中选出的新的第二盘,回到304处继续进行比较。在一个实施例中,盘列表中存储用于进行比较的各个盘的信息。
如果第一盘中被累积写入的块的数目大于第二盘中被累积写入的块的数目,则表明磨损程度较高的盘在预定时间段内还是写入数据较多的盘。因此,转到框308处,将第一盘的至少部分数据迁移到所述第二盘。
在一个实施例中,只将第一盘中写入热度最高的或写入块数最多的盘区迁移到第二盘的空闲盘区。在另一个实施中可以基于用户的需要设置需要迁移的盘区。
备选的或附加的,在将第一盘中的至少部分数据迁移到第二盘之后,在框310处,还将第二盘中的至少部分数据迁移到第一盘。
在308和310处的操作将在下面结合图4和图5中的方法400和500分别进行详细的描述。
上述通过磨损程度和每个盘累积写入的块数来确定数据的迁移方法,实现了快速准确的迁移高磨损程度高写入热度的盘上的数据,避免了对低磨损程度但高写入热度的盘进行数据的迁移。
在上述图3中的308中描述了将第一盘的至少部分数据迁移到第二盘的步骤,下面将结合附图4详细描述该步骤。
为了实现第一盘内的至少部分数据的迁移,需要在第一盘内确定需要迁移哪些盘区内的数据。由于迁移写入热度较高的盘区可以降低盘内被写入的数据。在一个实施例中,盘区内写入块数的数量与盘区的热度相对应。在一个实施例中,盘区的热度可以由写入块的数量表示。因此,迁移热度较高的盘区也即迁移写入块数较多的盘区,从而可以降低整个盘的写入块的数量。
在402处确定在第一盘的多个盘区中的每个盘区中被累积写入的块的数目。控制器120可以在预定时间段内统计各个盘区的被写入的块的数目。
在404处,确定第一盘内的多个盘区各自的写入热度。在一个备选实施例中,该写入热度由被写入块的数量表示。因此,通过该写入热度或可被写入块的数量来确定该盘区的使用程度。
在406处,从第一盘的多个盘区中选择写入热度较高的至少一个盘区。在一个实施例中,写入热度较高的至少一个盘区是指写入热度最高的盘区。在另一个实施例中,可以使用各种合适的方法确定写入较高或最高的盘区。
在408处,将第一盘的至少一个盘区中的数据迁移到第二盘的至少一个空闲盘区中。在一个实施使中,将第一盘中写入热度最高的盘区的数据迁移到第二盘的一个空闲盘区。在另一个实施例中,可以基于用户的需要将至少一个写入热度较高的盘区中的任何一个或任意数量的盘区迁移到第二盘的空闲盘区。
通过上述方法实现了将第一盘内的热度较高的盘区内的数据迁移到第二盘的空闲区,使得减少了磨损程度较高盘中写入的数据,增加了磨损较低的盘中写入的数据,从而能够合理的调整磨损程度不同的盘之间被写入的数据量,提高了整个盘阵列内各个盘的使用寿命。
上面图4描述了图3中的308将第一盘的部分数据迁移到第二盘的过程。下面将结合图5详细描述图3中的310将第二盘中的至少部分数据迁移到第一盘的过程。
在将第一盘的部分数据迁移到第二盘时,也可以将第二盘中写入数据较少的盘区迁移到第一盘区中以进一步调整盘之间写入数据的均衡程度。
在502处,确定第二盘的多个盘区中的每个盘区中被累积写入的块的数目。如在第一盘中确定各个盘区中被累积写入的块的数目一样,通过控制器120获得第二盘中各个盘区被累积写入的块数。
在504处,基于每个盘区中被累积写入的块的数目,确定第二盘的多个盘区各自的写入热度。在一个实施例中,盘区的写入热度对应于盘区中被累计写入的块的数目。在一个备选实施例中,盘区的写入热度用盘区中被累计写入的块的数目表示。
在506处,从第二盘的多个盘区中选择写入热度较低的至少一个盘区。在一个实施例中,写入热度较低的至少一个盘区是指写入热度最低的盘区。备选的或附加的,第二盘中的至少一个盘区包括写入热度最低的非空闲盘区。在另一个实施例中,可以使用各种合适的方法确定写入较低或最低的盘区。
在508处,将第二盘中的至少一个盘区中的数据迁移到所述第一盘中的至少一个空闲盘区。在一个实施使中,将第二盘中写入热度最低的盘区的数据迁移到第一盘的一个空闲盘区。在另一个实施例中,可以基于用户的需要将第二盘中至少一个写入热度较低的盘区中的任何一个或任意数量的盘区迁移到第一盘的空闲盘区。
通过上述方法,将磨损程度较低的盘的写入热度较低的盘区的数据迁入到磨损程度较高的盘的空闲盘区,从而可以进一步保证磨损程度较低的盘和磨损程度较高的盘之间的均衡,避免在以后的写入过程中出现不写入磨损程度较高的盘的情况。
图6示出了一个可以用来实施本公开的实施例的设备600的示意性框图。例如,用于存储系统的管理器120可以在设备600中实现。如图所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法200、300、400和/或500,可由处理单元601执行。例如,在一些实施例中,方法200、300、400和/或500可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序被加载到RAM 603并由CPU 601执行时,可以执行上文描述的方法200、300、400和/或500的一个或多个步骤。例如,在某些实施例中,管理器120可以由计算机程序实现。此时,该计算机程序可以被载入RAM 603并且由CPU 601执行。
通过上文对若干示例实施例的描述,将会理解,本公开的各个实施例提供了一种用于在存储系统中管理盘池的方法及管理器。该方法及管理器以更为有效的方式对盘区进行调整,平衡各个盘的热度。由此,可以大幅降低磁盘内的热点问题,在幅提升盘池的性能。
总体而言,本公开的各种实施例可以以硬件或专用电路、软件、逻辑或其任意组合实施。一些方面可以以硬件实施,而其它一些方面可以以固件或软件实施,该固件或软件可以由控制器、微处理器或其它计算设备执行。虽然本公开的各种方面被示出和描述为框图、流程图或使用其它一些绘图表示,但是可以理解本文描述的框、设备、系统、技术或方法可以以非限制性的方式以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其它计算设备或其一些组合实施。
此外,虽然操作以特定顺序描述,但是这不应被理解为要求这类操作以所示的顺序执行或是以顺序序列执行,或是要求所有所示的操作被执行以实现期望结果。在一些情形下,多任务或并行处理可以是有利的。类似地,虽然若干具体实现方式的细节在上面的讨论中被包含,但是这些不应被解释为对本公开的范围的任何限制,而是特征的描述仅是针对具体实施例。在分离的一些实施例中描述的某些特征也可以在单个实施例中组合地执行。相反对,在单个实施例中描述的各种特征也可以在多个实施例中分离地实施或是以任何合适的子组合的方式实施。
虽然本公开以具体结构特征和/或方法动作来描述,但是可以理解,在所附权利要求书中限定的技术方案的范围并不必然限于上述具体特征或动作。换言之,以上描述的仅仅是本公开的可选实施例。对于本领域的技术人员来说,本公开的实施例可以存在各种更改和变化。凡在本公开的精神和原则之内所作的任何修改、等效替换、改进等,均包含在本公开的保护范围之内。

Claims (20)

1.一种用于管理盘阵列的方法,包括:
确定针对所述盘阵列中的多个盘的各自的磨损程度,所述多个盘中的每个盘包括多个盘区,每个盘区包括多个块;
确定在一个预定时间段内所述多个盘各自累积写入的块的数目;以及
基于所述磨损程度和所述累积写入的块的数目在所述多个盘之间迁移数据;
其中所述迁移数据包括:
响应于第一盘的磨损程度高于第二盘的磨损程度,比较所述第一盘中被累积写入的块的第一数目与所述第二盘中被累积写入的块的第二数目; 以及
响应于所述第一数目大于所述第二数目,将所述第一盘中的至少部分数据迁移到所述第二盘。
2.根据权利要求1所述的方法,其中将所述第一盘中的至少部分数据迁移到所述第二盘包括:
确定所述第一盘的多个盘区中的每个盘区中被累积写入的块的数目,
基于每个盘区中被累积写入的块的数目,确定所述第一盘的多个盘区各自的写入热度;
从所述第一盘的多个盘区中选择写入热度较高的至少一个盘区;以及
将所述第一盘的所述至少一个盘区中的数据迁移到所述第二盘的至少一个空闲盘区中。
3.根据权利要求2所述的方法,其中所述第一盘中的所述至少一个盘区包括写入热度最高的盘区。
4.根据权利要求1所述的方法,还包括:
响应于所述第一数目大于所述第二数目,将第二盘中的至少部分数据迁移到所述第一盘。
5.根据权利要求4所述的方法,其中将第二盘中的至少部分数据迁移到所述第一盘包括:
确定所述第二盘的多个盘区中的每个盘区中被累积写入的块的数目,
基于每个盘区中被累积写入的块的数目,确定所述第二盘的多个盘区各自的写入热度;
从所述第二盘的多个盘区中选择写入热度较低的至少一个盘区;以及
将所述第二盘中的所述至少一个盘区中的数据迁移到所述第一盘中的至少一个空闲盘区。
6.根据权利要求5所述的方法,其中所述第二盘中的所述至少一个盘区包括写入热度最低的非空闲盘区。
7.根据权利要求1所述的方法,其中响应于第一盘的磨损程度高于第二盘的磨损程度达到一个阈值量,比较所述第一数目与所述第二数目。
8.根据权利要求1所述的方法,其中一个盘的所述磨损程度基于该盘的累积擦除次数和最大擦除次数来确定。
9.根据权利要求1所述的方法,其中所述第一盘和所述第二盘是相同类型的固态硬盘。
10.一种电子设备,包括:
处理器;
存储器,存储有计算机程序指令,处理器运行存储器中的所述计算机程序指令控制所述电子设备执行动作,所述动作包括:
确定针对盘阵列中的多个盘的各自的磨损程度,所述多个盘中的每个盘包括多个盘区,每个盘区包括多个块;
确定在一个预定时间段内所述多个盘各自累积写入的块的数目;以及
基于所述磨损程度和所述累积写入的块的数目在所述多个盘之间迁移数据;
其中所述迁移数据包括:
响应于第一盘的磨损程度高于第二盘的磨损程度,比较所述第一盘中被累积写入的块的第一数目与所述第二盘中被累积写入的块的第二数目; 以及
响应于所述第一数目大于所述第二数目,将所述第一盘中的至少部分数据迁移到所述第二盘。
11.根据权利要求10所述的电子设备,其中将所述第一盘中的至少部分数据迁移到所述第二盘包括:
确定所述第一盘的多个盘区中的每个盘区中被累积写入的块的数目,
基于每个盘区中被累积写入的块的数目,确定所述第一盘的多个盘区各自的写入热度;
从所述第一盘的多个盘区中选择写入热度较高的至少一个盘区;以及
将所述第一盘的所述至少一个盘区中的数据迁移到所述第二盘的至少一个空闲盘区中。
12.根据权利要求11所述的电子设备,其中所述第一盘中的所述至少一个盘区包括写入热度最高的盘区。
13.根据权利要求10所述的电子设备,所述动作还包括:
响应于所述第一数目大于所述第二数目,将第二盘中的至少部分数据迁移到所述第一盘。
14.根据权利要求13所述的电子设备,其中将第二盘中的至少部分数据迁移到所述第一盘包括:
确定所述第二盘的多个盘区中的每个盘区中被累积写入的块的数目,
基于每个盘区中被累积写入的块的数目,确定所述第二盘的多个盘区各自的写入热度;
从所述第二盘的多个盘区中选择写入热度较低的至少一个盘区;以及
将所述第二盘中的所述至少一个盘区中的数据迁移到所述第一盘中的至少一个空闲盘区。
15.根据权利要求14所述的电子设备,其中所述第二盘中的所述至少一个盘区包括写入热度最低的非空闲盘区。
16.根据权利要求10所述的电子设备,其中响应于第一盘的磨损程度高于第二盘的磨损程度达到一个阈值量,比较所述第一数目与所述第二数目。
17.根据权利要求10所述的电子设备,其中一个盘的所述磨损程度基于该盘的累积擦除次数和最大擦除次数来确定。
18.根据权利要求10所述的电子设备,其中所述第一盘和所述第二盘是相同类型的固态硬盘。
19.一种用于管理盘阵列的计算机程序产品,所述计算机程序产品包括:
非暂态计算机可读介质,编码有计算机可执行程序代码,所述代码被配置为启动以下动作的执行:
确定针对所述盘阵列中的多个盘的各自的磨损程度,所述多个盘中的每个盘包括多个盘区,并且每个盘区包括多个块;
确定在一个预定时间段内所述多个盘各自累积写入的块的数目;以及
基于所述磨损程度和所述累积写入的块的数目在所述多个盘之间迁移数据;
其中所述迁移数据包括:
响应于第一盘的磨损程度高于第二盘的磨损程度,比较所述第一盘中被累积写入的块的第一数目与所述第二盘中被累积写入的块的第二数目; 以及
响应于所述第一数目大于所述第二数目,将所述第一盘中的至少部分数据迁移到所述第二盘。
20.根据权利要求19所述的计算机程序产品,其中所述第一盘和所述第二盘是相同类型的固态硬盘。
CN201711029821.8A 2017-10-27 2017-10-27 用于管理盘阵列的方法、设备和计算机程序产品 Active CN109725835B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201711029821.8A CN109725835B (zh) 2017-10-27 2017-10-27 用于管理盘阵列的方法、设备和计算机程序产品
US16/169,369 US10740020B2 (en) 2017-10-27 2018-10-24 Method, device and computer program product for managing disk array

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711029821.8A CN109725835B (zh) 2017-10-27 2017-10-27 用于管理盘阵列的方法、设备和计算机程序产品

Publications (2)

Publication Number Publication Date
CN109725835A CN109725835A (zh) 2019-05-07
CN109725835B true CN109725835B (zh) 2022-04-29

Family

ID=66242927

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711029821.8A Active CN109725835B (zh) 2017-10-27 2017-10-27 用于管理盘阵列的方法、设备和计算机程序产品

Country Status (2)

Country Link
US (1) US10740020B2 (zh)
CN (1) CN109725835B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737401B (zh) 2018-07-20 2023-10-20 伊姆西Ip控股有限责任公司 用于管理独立冗余磁盘阵列的方法、设备和计算机程序产品
CN112748853B (zh) * 2019-10-30 2024-04-16 伊姆西Ip控股有限责任公司 用于管理盘的方法、设备和计算机可读介质
CN111324304A (zh) * 2020-02-14 2020-06-23 西安奥卡云数据科技有限公司 一种基于ssd硬盘寿命预测的数据保护方法及装置
CN114564144B (zh) * 2020-11-27 2024-04-19 伊姆西Ip控股有限责任公司 在存储系统中创建区块阵列的方法、设备和程序产品

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081576A (zh) * 2011-03-01 2011-06-01 华中科技大学 一种闪存的磨损平衡方法
CN104407815A (zh) * 2014-11-25 2015-03-11 浪潮电子信息产业股份有限公司 一种raid5磁盘阵列中坏扇区处理的方法和装置
CN104850500A (zh) * 2014-02-14 2015-08-19 腾讯科技(深圳)有限公司 用于数据存储的数据处理方法和装置
CN105138416A (zh) * 2014-06-05 2015-12-09 中兴通讯股份有限公司 磁盘休眠处理方法及装置
CN105183386A (zh) * 2015-09-14 2015-12-23 联想(北京)有限公司 一种信息处理方法及电子设备
CN105373350A (zh) * 2015-11-23 2016-03-02 联想(北京)有限公司 一种数据管理方法及装置
CN106933490A (zh) * 2015-12-29 2017-07-07 伊姆西公司 控制对磁盘阵列进行读写操作的方法和装置
CN109643274A (zh) * 2016-08-24 2019-04-16 华为技术有限公司 多个数据温度区的交叉点存储器的磨损均衡方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8850161B2 (en) * 2010-10-13 2014-09-30 Riverbed Technology, Inc. Method of improving performance of a data storage device
US8478939B2 (en) * 2011-07-07 2013-07-02 Lsi Corporation Relative heat index based hot data determination for block based storage tiering
EP2791774A1 (en) * 2012-02-08 2014-10-22 Hitachi, Ltd. Storage apparatus with a plurality of nonvolatile semiconductor storage units and control method thereof to place hot data in storage units with higher residual life and cold data in storage units with lower residual life
AU2013397052B2 (en) * 2013-06-29 2016-09-29 Huawei Technologies Co., Ltd. Storage array management method and device, and controller
US9946465B1 (en) 2014-12-31 2018-04-17 EMC IP Holding Company LLC Adaptive learning techniques for determining expected service levels
US9823875B2 (en) * 2015-08-31 2017-11-21 LinkedIn Coporation Transparent hybrid data storage
US9959054B1 (en) 2015-12-30 2018-05-01 EMC IP Holding Company LLC Log cleaning and tiering in a log-based data storage system
US10481820B1 (en) 2015-12-30 2019-11-19 EMC IP Holding Company LLC Managing data in storage systems
US9684463B1 (en) * 2016-01-14 2017-06-20 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Predictive block allocation in a flash device
US20180150256A1 (en) * 2016-11-29 2018-05-31 Intel Corporation Technologies for data deduplication in disaggregated architectures
CN108089994B (zh) * 2018-01-04 2021-06-01 威盛电子股份有限公司 存储装置以及数据保存方法
US10481823B2 (en) * 2018-02-21 2019-11-19 International Business Machines Corporation Data storage system performing data relocation based on temporal proximity of accesses

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081576A (zh) * 2011-03-01 2011-06-01 华中科技大学 一种闪存的磨损平衡方法
CN104850500A (zh) * 2014-02-14 2015-08-19 腾讯科技(深圳)有限公司 用于数据存储的数据处理方法和装置
CN105138416A (zh) * 2014-06-05 2015-12-09 中兴通讯股份有限公司 磁盘休眠处理方法及装置
CN104407815A (zh) * 2014-11-25 2015-03-11 浪潮电子信息产业股份有限公司 一种raid5磁盘阵列中坏扇区处理的方法和装置
CN105183386A (zh) * 2015-09-14 2015-12-23 联想(北京)有限公司 一种信息处理方法及电子设备
CN105373350A (zh) * 2015-11-23 2016-03-02 联想(北京)有限公司 一种数据管理方法及装置
CN106933490A (zh) * 2015-12-29 2017-07-07 伊姆西公司 控制对磁盘阵列进行读写操作的方法和装置
CN109643274A (zh) * 2016-08-24 2019-04-16 华为技术有限公司 多个数据温度区的交叉点存储器的磨损均衡方法

Also Published As

Publication number Publication date
US10740020B2 (en) 2020-08-11
US20190129647A1 (en) 2019-05-02
CN109725835A (zh) 2019-05-07

Similar Documents

Publication Publication Date Title
US10915442B2 (en) Managing block arrangement of super blocks
US10095429B2 (en) Method, apparatus, and controller for managing storage array
US10387243B2 (en) Managing data arrangement in a super block
KR102275094B1 (ko) 저장된 데이터를 플래시 메모리에 기초한 저장 매체에 기입하기 위한 방법 및 디바이스
US9405478B2 (en) Storage apparatus provided with a plurality of nonvolatile semiconductor storage media and storage control method
CN109725835B (zh) 用于管理盘阵列的方法、设备和计算机程序产品
CN108733308B (zh) 用于管理盘池的方法和设备
US20160342344A1 (en) Variable Bit Encoding Per NAND Flash Cell to Extend Life of Flash-Based Storage Devices and Preserve Over-Provisioning
EP3336706A1 (en) Method and storage device for processing stripes in storage device
CN106933492B (zh) 有助于固态硬盘的磨损平衡的方法和装置
WO2016117026A1 (ja) ストレージシステム
HUE035390T2 (en) Data migration process, data migration device and storage device
CN111104055B (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN109725838B (zh) 用于管理多个盘的方法、装置以及计算机可读介质
CN113924546A (zh) 非易失性存储器中的磨损感知块模式转换
US20150199152A1 (en) Method of managing redundant array of independent disks (raid) groups in a solid state disk array
US20170277444A1 (en) Dynamic bandwidth reporting for solid-state drives
KR20200092252A (ko) 최적의 ssd 내구성을 위한 블록 마모 레벨링의 균형화
US11275680B2 (en) Profile and queue-based wear leveling of memory devices
WO2019038859A1 (ja) 不揮発メモリデバイスを有するストレージシステム
US20190339898A1 (en) Method, system and computer program product for managing data storage in data storage systems
US20210357135A1 (en) Proactive allocation of non-volatile data storage to storage objects in a data storage system to anticipate storage object access trends

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