CN108733308A - 用于管理盘池的方法和设备 - Google Patents

用于管理盘池的方法和设备 Download PDF

Info

Publication number
CN108733308A
CN108733308A CN201710250027.XA CN201710250027A CN108733308A CN 108733308 A CN108733308 A CN 108733308A CN 201710250027 A CN201710250027 A CN 201710250027A CN 108733308 A CN108733308 A CN 108733308A
Authority
CN
China
Prior art keywords
disk
panel
temperature
requests
data
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
Application number
CN201710250027.XA
Other languages
English (en)
Other versions
CN108733308B (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 CN201710250027.XA priority Critical patent/CN108733308B/zh
Priority to US15/954,929 priority patent/US11003359B2/en
Publication of CN108733308A publication Critical patent/CN108733308A/zh
Application granted granted Critical
Publication of CN108733308B publication Critical patent/CN108733308B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • 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/061Improving I/O performance
    • 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
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本公开提供了一种用于管理盘池的方法,盘池具有多个盘,多个盘被划分为多个盘区,该方法包括:确定预定时间段内针对盘池中的盘区的输入/输出(I/O)请求的数目;基于I/O请求的数目确定盘区各自的热度;根据盘区的热度确定盘的热度;基于盘的热度确定盘区中数据的迁移。

Description

用于管理盘池的方法和设备
技术领域
本公开的实施例主要涉及存储管理,并且更具体地涉及管理盘池的方法和设备。
背景技术
磁盘阵列RAID(Redundant Arrays of Inexpensive Disk)是由多个独立的硬盘按不同的方式组合起来形成一个硬盘组。在用户看来,磁盘阵列RAID就像是一个硬盘,但是其可以提供比单个硬盘更高的存储能力,并且还可以提供数据备份。当盘区的数据被损坏时,利用数据备份还可以恢复损坏的数据,从而保护用户数据的安全性。磁盘阵列的不同组成方式被称为RAID级别(RAID Levels),如RAID0,RAID1,RAID5等。
在传统的磁盘阵列中,通常会产生用户请求的数据集中于盘阵列的某些盘的部分数据上。如果对该部分数据的处理请求过多,会产生热点问题。由于单个数据盘本身硬件参数的限制,其不能单独处理过多的数据处理请求。如果过多的数据处理请求集中于单个或几个盘上,磁盘本身的参数的限制会导致整个盘阵列的存取速度的降低。
随着磁盘阵列技术的发展,目前映射的磁盘阵列的应用逐渐增多。不同于具有可以单独控制的磁盘的传统的磁盘阵列,多个映射的磁盘阵列映射到一个盘池中,使得多个磁盘阵列共享一个盘池。这样大大提高了磁盘的利用效率。然而由于其并没有对产生的热点问题进行改进,映射的磁盘阵列中也存在由于热点问题导致的盘池存取速度下降的问题。
发明内容
本公开的实施例的目的在于提供一种管理存储系统的解决方案。
根据本公开的一个方面,提供了一种用于管理盘池的方法。该方法可以在管理盘池的设备中实施。该方法中的盘池具有多个盘,多个盘被划分为多个盘区。该方法包括确定预定时间段内针对盘池中的盘区的输入/输出(I/O)请求的数目;基于I/O请求的数目确定盘区各自的热度,一个盘区的热度指示该盘区在预定时间段内被访问的频繁程度;根据盘区的热度确定盘的热度,一个盘的热度指示该盘在该预定时间段内被访问的频繁程度;基于盘的热度确定盘区中数据的迁移。
在某些实施例中,基于盘的热度确定盘区中数据的迁移包括:响应于第一盘的热度超过第一阈值热度,确定盘池中的第二盘,第二盘的热度低于第二阈值热度;确定第一盘中的第一盘区,第一盘区的热度高于第三阈值热度;以及将第一盘区中的数据迁移到第二盘的盘区中。
在某些实施例中,基于盘的热度确定盘区中数据的迁移包括:响应于第三盘中的空闲盘区的数目低于阈值数目,确定第三盘中的第二盘区,第二盘区的热度低于第四阈值热度;多个盘中选择第四盘,使得第四盘满足以下至少一项:第四盘中的空闲盘区的数目超过阈值数目,或者第四盘的热度低于第五阈值热度;以及将第二盘区中的数据迁移到第四盘的盘区中。
某些实施例中,确定盘区各自的热度包括:针对盘区中的至少一个盘区,确定至少一个盘区在该预定时间段内的多个时间间隔内接收到的I/O请求的数目;基于多个时间间隔内的I/O请求的数目来确定至少一个盘区的热度。
某些实施例中,基于多个时间间隔内的I/O请求的数目来确定至少一个盘区的热度包括以下之一:基于多个时间间隔内的I/O请求的数目的平均值来确定至少一个盘区的热度;或者通过将加权移动平均函数应用于多个时间间隔内的I/O请求的数目,来确定该至少一个盘区的热度。
某些实施例中,第一阈值热度是基于盘在预定时间段内能够处理的I/O请求的数目确定的。
某些实施例中,盘池对应于多个映射的盘阵列,映射的盘阵列中的至少一个包括与盘池中的多个不同盘上的盘区相对应的盘区条带。
本公开的第二方向提供了一种用于存储系统的管理器,该存储系统包括具有多个盘的盘池,多个盘被划分为多个盘区,该管理器包括:处理器;存储器,存储有计算机程序指令,处理器运行存储器中的该计算机程序指令控制该存储器系统执行动作,该动作包括:确定预定时间段内针对盘池中的盘区的输入/输出(I/O)请求的数目;基于该I/O请求的数目确定盘区各自的热度,一个盘区的热度指示该盘区在预定时间段内被访问的频繁程度;根据盘区的热度确定盘的热度,一个盘的热度指示盘在该预定时间段内被访问的频繁程度;基于盘的热度确定盘区中数据的迁移。
本公开的第三方面提供种计算机程序产品,该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,该机器可执行指令在被执行时使机器执行本公开的第一方面中的方法的步骤。
应当理解,发明内容部分并非旨在标识本公开的实施例的关键或重要特征,亦非旨在用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
图1示出了根据本公开的实施例的用于在存储系统中管理盘池的示意图;
图2示出了根据本公开的一个实施例的管理盘池的流程图;
图3示出了根据本公开的另一个实施例的管理盘池的流程图;
图4示出了根据本公开的另一个实施例的管理盘池的流程图;
图5示出了根据本公开的一个实施例的装置的框图;以及
图6示出了一个可以用来实施本公开的实施例的设备的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
图1示出了根据本公开的实施例的用于在存储系统100中管理盘池的示意图。如图所示,存储系统100包括盘池110,管理盘池的管理器120,以及通过盘池管理器将数据映射到盘池110的盘阵列130。存储系统通过接口从外部设备接收数据并存储,以及将存储的数据返回给外部数据。为了简明起见,外部设备及与外部设备连接的部件均未示出。
在所示的存储系统中,盘池110为用于存储大容量数据的存储介质。在示例实施例中,盘池可以包括各种易失性和/或非易失性数据存储介质。存储介质的示例可以包括但不限于磁盘、光盘、硬盘、固态硬盘(SSD)、高速缓存。
在所示的存储系统中,管理器120为用于管理存储系统内数据存储的处理器。处理器可以包括但不限于中央处理单元(CPU)、控制器、微处理器、数字信号处理器(DSP)和多核处理器。
在所示的存储系统中,盘阵列130为将数据存储在多个硬盘的不同的盘区的虚拟的存储设备。虚拟的盘阵列130可以为不同级别的盘阵列,可以包括但不限于RAID0、RAID1、RAID0+1、RAID2、RAID3、RAID4、RAID5、RAID7、RAID10、RAID53。
图1中图示了盘池110具有多个盘。在示例中,盘池110中具有多个盘。盘池110中的盘被划分为多个盘区。更具体地,盘池110中的每个盘均被划分为数量相同的K个盘区,K为正整数,且盘区的大小相同。盘阵列130是用于存储数据的虚拟的盘阵列。映射到盘池110的虚拟的盘阵列可以包括多个盘阵列。在本示例中,为了描述的简便仅示出了映射到盘池110的一个虚拟盘阵列130。在其它示例中,映射到盘池110的盘阵列130可以为两个、三个或多个。在本示例中盘阵列130可以采用RAID5的存储模式。当采用这种模式存储数据时,其中一个盘区的数据出现问题时,可以通过其它盘区及奇偶校验盘区的数据得出该出现问题的盘区的数据,从而保证了数据的安全性。
盘阵列中的存储空间被划分为盘阵列盘区条带,盘阵列盘区条带对应于盘池内的多个盘区,下面将以每个条带对应5个盘区作为示例,在其它示例中,盘区条带对应的盘区的数目不限于5个,可以为任意的数量。
如图1所示,盘阵列130中具有多条条带,作为示例,盘阵列内设置有M个条带,条带130-1、130-2,…,130-M,M为大于零的正整数。作为其它示例,条带的数目可以为任意数量。在该示例中条带的大小相同,且每个条带均对应于五个盘区,所对应的盘区的大小与盘池中盘区的大小相同。每个条带中的每个盘区均映射于盘池中不同盘上的盘区,即条带中的数据实际存储于盘池中的多个不同盘的盘区上。
如图1所示,在预定时间段内,在接收到操作盘阵列130上的RAID盘区条带1、2和M的命令时,如I/O请求,盘区条带1的盘区映射于盘池110的盘1的盘区1-1、盘2的盘区2-1、及盘池中的其它不同的盘的盘区。RAID盘区条带2的盘区映射于盘池110的盘1的盘区1-2、盘n的盘区n-1及盘池中的其它不同的盘的盘区。RAID盘区条带M的盘区映射于盘池110的盘1的盘区1-K、盘n的盘区n-2及盘池中的其它不同的盘的盘区。因此,在该预定时间段内,盘池110中的盘1具有3个I/O请求,盘2具有1个I/O请求,盘n具有2个I/O请求。因此,在进行I/O操作时,三个盘I/O请求并不相同,且盘1的I/O请求数目相对较多。如果在进行大量的这种操作时,由于每个盘的I/O请求数目的不同,会产生热点问题。由于单个盘的参数的限制,会导整个盘池的数据处理速度受单个盘处理I/O请求速度的限制,从而导致整个盘池性能的降低。
为了至少部分地解决上述问题以及其他潜在问题,本公开的实施例提供了一种用于管理盘池的方案。下面将结合附图详细描述解决这种问题的方法。
在该方案中,存储系统内设置有如图1所示的存储数据的盘池110,盘池具有多个盘,每个盘均被划分为多个盘区,例如K个盘区。盘区用于存储数据。设置有管理盘池的管理器120,其管理盘区的映射以及盘池内数据的访问。
盘池的管理器管理各个盘区的各种参数,包括每个盘区的I/O请求的数目、映射的源地址、映射的目的地址等。对每个盘区的I/O请求的数目可以通过相应的计数器来实现,当对盘区进行I/O操作时,该计数器加1。该计数器可通过硬件、软件或固件来实现。
如图2所示,在框202处,设置预定时间段,统计盘池中各盘区的输入/输出(I/O)请求的数目。该预定时间段可以是本领域技术人员依据需要设置的时长。在一个示例中,设置预定时间段初始时间输入/输出(I/O)请求的数目0,如果对该盘区进行一次输入/输出(I/O)请求,则变为1,当在该预定时间段内再有输入/输出(I/O)请求时,则再增加1。通过获取的输入/输出(I/O)请求的数目值便能确定预定时间段内访问I/O的次数。
接下来,方法进行到框204。在框204处,基于盘区上的I/O请求的数目确定盘区各自的热度。为了确定盘区被访问的频繁程度,在本公开中使用盘区的热度指示盘区在预定时间段内被访问的频繁程度。在框202处统计得到了种盘区在预定时间段内的I/O请求的数目。基于统计的这些I/O请求的数目,可以通过各种方法来确定盘区的热度。基于I/O请求的数目确定盘区热度的方法将下面结合附图进行详细的描述。
在框206处,根据所述盘区的热度确定所述盘的热度。如在框204所描述的盘区的热度指示该盘区在所述预定时间段内被访问的频繁程度,在本公开中盘的热度指示该盘在所述预定时间段内被访问的频繁程度。由于在框204处已经确定了盘池中每个盘区的热度,因此通过盘区的热度获得每个盘的热度就相对比较容易了。在一个示例中,可以通过将盘内的每个盘区的热度相加来获得该盘的热度。在其它示例中,也可以基于盘区的热度通过其它任意方式获得。
在框208处,基于所述盘的热度确定所述盘区中数据的迁移。在框206中确定了盘的热度后,便可以依据计算的数据得到各个盘的热度,然后便能基于盘的性能参数确定哪些盘已经超过了其自身的限制条件,影响了盘池的I/O性能。为了能够避免了上述问题,通过将热度过高的盘中的盘区迁移到热度相对较低的盘中,这样就可以降低被频繁访问的盘的热度,从而可以将对盘的访问限制于其I/O操作的阈值内,保证整个盘池的性能会保持稳定并且达到最理想的效果。
在图3中图示了盘区中数据迁移的另一示例。框302-306中的内容与图2中框202-206中的内容相同,由于已在图2中对其进行了描述,在此处就不对其再进行详细的描述。在图3中主要描述框308-312。在框308-312中采用所述盘的热度确定所述盘区中数据的迁移。
在前面的内容中已经基于预定时间段内盘区I/O请求的数目确定了盘的热度,为了确定盘池中的盘是否正常运行且没有影响整个盘池的性能,需要判断盘池中各个盘的热度是否超过阈值热度H1,又称为第一阈值热度,在一个示例中,所述第一阈值热度是表示盘池中的盘能够在预定时间段内处理I/O请求的最大值,在另一示例中,第一阈值热度也可以是其它值,例如,第一阈值热度可以设置为表示盘池中的盘能够在预定时间段内处理I/O请求的最大值的80%。备选地或附加地,第一阈值热度可以是本领域技术人员依据需要设置的值。
通过将盘池内的每个盘的热度与第一阈值热度相比较,可以确定超过阈值热度的盘,又称为第一盘。因此,在框308处,响应于第一盘的热度超过第一阈值热度,确定所述盘池热度低于另一阈值热度H2(称“第二阈值热度”)的盘,该盘被称为第二盘。对于确定的超过第一阈值热度的第一盘,由于该盘经常被访问使得该盘本身已不能及时处理掉该盘的所有访问请求,因此,该盘会导致盘池整体性能的下降。由于盘池中具有大量的盘,因此可能会出现多个类似的盘,如有两个、三个或多个盘的热度大于其热度阈值。
在框310处,确定所述第一盘中的第一盘区。该第一盘区的热度为该盘中热度最高的盘区。在确定了热度超过阈值热度的第一盘后,为了降低第一盘的阈值热度,需要确定每一盘中需要迁移数据的盘区,通过将该盘区中的数据迁移动其它盘区,从而降低第一盘的热度。在确定第一盘中的需要迁移的盘区时,通过确定第一盘的第一盘区的热度是否高于阈值H3,又称为第三阈值热度。在确定了热度最高的盘之后,可以基于盘内各个盘区的热度确定第一盘区。在一个示例中,第一盘区是基于盘区的热度值是盘内热度是高的盘区来确定的。如果将该热度最高的盘区迁移出去,则可以明显降低该盘的热度,使盘能更快的符合其参数的限制。
在框312处,将所述第一盘区中的数据迁移到所述第二盘的盘区中。由于已经确定第一盘为热度最高的盘,第二盘为热度最低的盘,因此,将盘A中的热度最高的区盘区迁移到热度最低盘的盘N的盘区中是很容易实现的。在一个示例中,热度最低的盘中选择的盘区可以为空闲盘区,也可以为该盘内热度最低的盘区。因此,这样可以很好的调节盘池内各个盘的访问数目,从而提高盘池的工作效率。
在盘区迁移后,虽然已经避免了出现热点问题,但是为了进一步的提高盘池I/O的性能,平衡各个盘上的空闲盘区数量,本公开还对盘区迁移后的盘池进行再平衡处理,以使得各个盘的运行更平衡。下面结合图4介绍对盘池内的各个盘进行盘区再平衡的过程。
在进行再平衡处理时,首先要确定盘池中各个盘的空闲盘区的数目。空闲盘区数目的确定可以通过计数器来计数得到,也可以通过检索空闲盘区来确定。在框414处,响应于盘池中空闲盘区的数目低于阈值数目确定源盘,又称为第三盘。然后确定所述第三盘中盘区的热度低于另一阈值热度H4(又称为第四阈值热度)的盘区,又称第二盘区。在本实施例中,选出的第三盘可以是空闲盘区最少的盘,这表明其盘内具有较少的空闲盘区,且盘中的多数盘区是被访问的盘区,因此可选择该盘中的盘区作为迁移调整的源盘区。在选定好第三盘之后,然后选择该盘中盘区的热度低于第四阈值热度的第二盘区。
在框416处,在盘池中选择第四盘。第四盘的选择可以基于各种条件进行选择,在一个示例中,第四盘可以是盘中的空闲盘区的数目超过阈值数目的盘。此时,第四盘可以为空闲盘区最多的盘,这表明该盘的各盘区热度不均匀,且由于空闲盘区较多,可以很好的满足数据的迁移。在另一示例中,第四盘可以是盘的热度低于某一阈值的盘,该阈值可以由本领域技术人员依据需要设置,例如热度最低的盘,其表明该盘的使用效率比较低,选择该盘可以很好的提高该盘的使用效率,从而整体上改变盘池的整体效率。在另一示例中,则同时考虑盘中空闲盘区的数目和盘的热度。如本领域技术人员可先依据盘区中的空闲盘区的数目多于一预定值来选取多个盘,然后再确定所选出的盘的热度,最后将热度最低的盘作为第四盘。上面仅是示例,本发明并不将第四盘的选择限于上述示例,其可以为各种满足条件的盘。
在框418处,将所述第二盘区中的数据迁移到所述第四盘的盘区中。在确定好第二盘区以及第四盘后,选择第二盘区作为源盘区,第四盘中的空闲盘区作为目标盘区,将第二盘区中的数据迁移支第四盘区中的空闲盘区。从面使得盘阵列中的各盘实现再平衡。
在图2的框204中公开了基于I/O确定所述盘区各自的热度。在一个示例中,基于I/O请求的数目确定所述盘区各自的热度可以通过以下方式实现:针对所述盘区中的至少一个盘区,确定所述至少一个盘区在所述预定时间段内的多个时间间隔内接收到的I/O请求的数目;基于所述多个时间间隔内的I/O请求的数目来确定所述至少一个盘区的热度。在其它示例中,可以以其它合适的方法确定盘区各自的热度。
在一个示例中,设置预定时间段包括多个时间间隔,由管理器统计各个时间段内盘区的I/O请求的数目,如将连续时间段分为n个时间间隔,每个时间间隔内I/O请求的数目为a1,a2,a3…an,因此,该盘区的热度为H=(a1+a2+a3+…+an)/n。通过对预定时间段内的各个时间间隔内的I/O请求的数目求平均来获得该盘区的热度是很容易实现的。
基于各个时间间隔内的I/O请求的数目求平均来获得该盘区的热度操作简便,但是有时不能准确的反应当前各盘区的状况,为了更好的结合现有的盘区的实际情况,在另一示例中可以对不同时间段设置不同的加权值w,该盘区的热度H=a1*w1+a2*w2+…+an*wn。其权重系数是基于时间间隔距当前时间的远近确定的。因此,比如时间间隔为3,则可以设置最近的时间间隔系数为1/2,在其前面的两个时间间隔其系数均为1/4,则盘区的热度为H=a1*1/2+a2*1/4+an*1/4。
在另一确定盘区的热度的示例中,可以通过使用数学公式来确定。在一个示例中,通过将加权移动平均函数应用于所述多个时间间隔内的I/O请求的数目,来确定所述至少一个盘区的热度。该加权移动平均函数为:
T=T’*e-a*Δt+ΔH*(1-e-a*Δt)/(a*Δt) (1)
其中T表示当前时间间隔内该盘区的热度,T’表示上一时间间隔内该盘区的热度,a表示衰减系数,Δt表示时间间隔,ΔH表示当前采样时间和先前采样时间之间的盘区I/O请求数,即时间间隔内的盘区I/O请求数。
在图5中示出了根据本公开的实施例的用于管理存储系统中的盘池的管理装置500的框图。如图2所示的框202-208、图3所示的框302-314以及图4所示的框414-418的任一项可由装置500执行。管理装置500中设置有I/O请求数目确定模块502、盘区热度确定模块504、盘热度确定模块506、迁移模块508。该管理装置用于管理存储系统中的盘池,盘池具有多个盘,所述多个盘被划分为多个盘区。
I/O请求数目确定模块502被配置为确定预定时间段内针对所述盘池中的盘区的输入/输出(I/O)请求的数目;盘区热度确定模块504被配置为基于所述I/O请求的数目确定所述盘区各自的热度,一个盘区的所述热度指示该盘区在所述预定时间段内被访问的频繁程度;盘热度确定模块506被配置为根据所述盘区的热度确定所述盘的热度,一个盘的热度指示该盘在所述预定时间段内被访问的频繁程度;迁移模块508被配置为基于所述盘的热度确定所述盘区中数据的迁移。
根据本公开的实施例,迁移模块508包括:第一确定模块,被配置为在所述管理器来用来响应于第一盘的热度超过第一阈值热度时,确定所述盘池中的第二盘,所述第二盘的热度低于第二阈值热度;第二确定模块,被配置为确定所述第一盘中的第一盘区,所述第一盘区的热度高于第三阈值热度;以及第一迁移模块,被配置为将所述第一盘区中的数据迁移到所述第二盘的盘区中。
根据本公开的实施例,迁移装置508包括:第三确定模块,被配置为在所述管理器还用来响应于第三盘中的空闲盘区的数目低于阈值数目时,确定所述第三盘中的第二盘区,所述第二盘区的热度低于第四阈值热度;选择模块,被配置为从所述多个盘中选择第四盘,使得所述第四盘满足以下至少一项:所述第四盘中的空闲盘区的数目超过所述阈值数目,或者所述第四盘的热度低于第五阈值热度;以及第二迁移模块,被配置为将所述第二盘区中的数据迁移到所述第四盘的盘区中。
根据本公开的实施例,盘区热度确定装置504包括:第四确定模块被配置为针对所述盘区中的至少一个盘区,确定所述至少一个盘区在所述预定时间段内的多个时间间隔内接收到的I/O请求的数目;第五确定模块被配置为基于所述多个时间间隔内的I/O请求的数目来确定所述至少一个盘区的热度。
根据本公开的实施例,盘区热度确定装置504被配置为:其中基于所述多个时间间隔内的I/O请求的数目来确定所述至少一个盘区的热度包括以下之一:基于所述多个时间间隔内的I/O请求的数目的平均值来确定所述至少一个盘区的热度;或者利用加权移动平均函数来确定所述至少一个盘区的热度。
根据本公开的实施例,所述第一阈值热度是基于所述盘在所述预定时间段内能够处理的I/O请求的数目确定的。
根据本公开的实施例,所述盘池对应于多个映射的盘阵列,所述映射的盘阵列中的至少一个包括与所述盘池中的多个不同盘上的盘区相对应的盘区条带。
图6示出了一个可以用来实施本公开的实施例的设备600的示意性框图。例如,用于存储系统的管理器130可以在设备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,可由处理单元601执行。例如,在一些实施例中,方法200、300和/或400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序被加载到RAM 603并由CPU 601执行时,可以执行上文描述的方法200、300和/或400的一个或多个步骤。
综上所述,本公开的各个实施例提供了一种用于在存储系统中管理盘池的方法及管理器。该方法及管理器以更为有效的方式对盘区进行调整,平衡各个盘的热度。由此,可以大幅降低磁盘内的热点问题,在幅提升盘池的性能。
总体而言,本公开的各种实施例可以以硬件或专用电路、软件、逻辑或其任意组合实施。一些方面可以以硬件实施,而其它一些方面可以以固件或软件实施,该固件或软件可以由控制器、微处理器或其它计算设备执行。虽然本公开的各种方面被示出和描述为框图、流程图或使用其它一些绘图表示,但是可以理解本文描述的框、设备、系统、技术或方法可以以非限制性的方式以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其它计算设备或其一些组合实施。
此外,虽然操作以特定顺序描述,但是这不应被理解为要求这类操作以所示的顺序执行或是以顺序序列执行,或是要求所有所示的操作被执行以实现期望结果。在一些情形下,多任务或并行处理可以是有利的。类似地,虽然若干具体实现方式的细节在上面的讨论中被包含,但是这些不应被解释为对本公开的范围的任何限制,而是特征的描述仅是针对具体实施例。在分离的一些实施例中描述的某些特征也可以在单个实施例中组合地执行。相反对,在单个实施例中描述的各种特征也可以在多个实施例中分离地实施或是以任何合适的子组合的方式实施。
虽然本公开以具体结构特征和/或方法动作来描述,但是可以理解,在所附权利要求书中限定的技术方案的范围并不必然限于上述具体特征或动作。换言之,以上描述的仅仅是本公开的可选实施例。对于本领域的技术人员来说,本公开的实施例可以存在各种更改和变化。凡在本公开的精神和原则之内所作的任何修改、等效替换、改进等,均包含在本公开的保护范围之内。

Claims (15)

1.一种用于管理盘池的方法,所述盘池具有多个盘,所述多个盘被划分为多个盘区,包括:
确定预定时间段内针对所述盘池中的盘区的输入/输出(I/O)请求的数目;
基于所述I/O请求的数目确定所述盘区各自的热度,一个盘区的所述热度指示该盘区在所述预定时间段内被访问的频繁程度;
根据所述盘区的热度确定所述盘的热度,一个盘的热度指示该盘在所述预定时间段内被访问的频繁程度;
基于所述盘的热度确定所述盘区中数据的迁移。
2.根据权利要求1所述的方法,其中基于所述盘的热度确定所述盘区中数据的迁移包括:
响应于第一盘的热度超过第一阈值热度,确定所述盘池中的第二盘,所述第二盘的热度低于第二阈值热度;
确定所述第一盘中的第一盘区,所述第一盘区的热度高于第三阈值热度;以及
将所述第一盘区中的数据迁移到所述第二盘的盘区中。
3.根据权利要求1或2所述的方法,其中基于所述盘的热度确定所述盘区中数据的迁移包括:
响应于第三盘中的空闲盘区的数目低于阈值数目,确定所述第三盘中的第二盘区,所述第二盘区的热度低于第四阈值热度;
从所述多个盘中选择第四盘,使得所述第四盘满足以下至少一项:
所述第四盘中的空闲盘区的数目超过所述阈值数目,或者
所述第四盘的热度低于第五阈值热度;以及
将所述第二盘区中的数据迁移到所述第四盘的盘区中。
4.根据权利要求1或2所述的方法,其中确定所述盘区各自的热度包括:
针对所述盘区中的至少一个盘区,确定所述至少一个盘区在所述预定时间段内的多个时间间隔内接收到的I/O请求的数目;
基于所述多个时间间隔内的I/O请求的数目来确定所述至少一个盘区的热度。
5.根据权利要求4所述的方法,其中基于所述多个时间间隔内的I/O请求的数目来确定所述至少一个盘区的热度包括以下之一:
基于所述多个时间间隔内的I/O请求的数目的平均值来确定所述至少一个盘区的热度;或者
通过将加权移动平均函数应用于所述多个时间间隔内的I/O请求的数目,来确定所述至少一个盘区的热度。
6.根据权利要求2所述的方法,其中所述第一阈值热度是基于所述盘在所述预定时间段内能够处理的I/O请求的数目确定的。
7.根据权利要求1所述的方法,其中所述盘池对应于多个映射的盘阵列,所述映射的盘阵列中的至少一个包括与所述盘池中的多个不同盘上的盘区相对应的盘区条带。
8.一种用于存储系统的管理器,所述存储系统包括具有多个盘的盘池,所述多个盘被划分为多个盘区,所述管理器包括:
处理器;
存储器,存储有计算机程序指令,处理器运行存储器中的所述计算机程序指令控制该存储器系统执行动作,所述动作包括:
确定预定时间段内针对所述盘池中的盘区的输入/输出(I/O)请求的数目;
基于所述I/O请求的数目确定所述盘区各自的热度,一个盘区的所述热度指示该盘区在所述预定时间段内被访问的频繁程度;
根据所述盘区的热度确定所述盘的热度,一个盘的热度指示该盘在所述预定时间段内被访问的频繁程度;
基于所述盘的热度确定所述盘区中数据的迁移。
9.根据权利要求8所述的管理器,其中基于所述盘的热度确定所述盘区中数据的迁移包括:
响应于第一盘的热度超过第一阈值热度,确定所述盘池中的第二盘,所述第二盘的热度低于第二阈值热度;
确定所述第一盘中的第一盘区,所述第一盘区的热度高于第三阈值热度;以及
将所述第一盘区中的数据迁移到所述第二盘的盘区中。
10.根据权利要求8或9所述的管理器,其中基于所述盘的热度确定所述盘区中数据的迁移包括:
响应于第三盘中的空闲盘区的数目低于阈值数目,确定所述第三盘中的第二盘区,所述第二盘区的热度低于第四阈值热度;
从所述多个盘中选择第四盘,使得所述第四盘满足以下至少一项:
所述第四盘中的空闲盘区的数目超过所述阈值数目,或者
所述第四盘的热度低于第五阈值热度;以及
将所述第二盘区中的数据迁移到所述第四盘的盘区中。
11.根据权利要求8或9所述的管理器,其中确定所述盘区各自的热度包括:
针对所述盘区中的至少一个盘区,确定所述至少一个盘区在所述预定时间段内的多个时间间隔内接收到的I/O请求的数目;
基于所述多个时间间隔内的I/O请求的数目来确定所述至少一个盘区的热度。
12.根据权利要求11所述的管理器,其中基于所述多个时间间隔内的I/O请求的数目来确定所述至少一个盘区的热度包括以下之一:
基于所述多个时间间隔内的I/O请求的数目的平均值来确定所述至少一个盘区的热度;或者
利用加权移动平均函数来确定所述至少一个盘区的热度。
13.根据权利要求9所述的管理器,其中所述第一阈值热度是基于所述盘在所述预定时间段内能够处理的I/O请求的数目确定的。
14.根据权利要求8所述的管理器,其中所述盘池对应于多个映射的盘阵列,所述映射的盘阵列中的至少一个包括与所述盘池中的多个不同盘上的盘区相对应的盘区条带。
15.一种计算机程序产品,所述计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至7中任一项所述的方法的步骤。
CN201710250027.XA 2017-04-17 2017-04-17 用于管理盘池的方法和设备 Active CN108733308B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710250027.XA CN108733308B (zh) 2017-04-17 2017-04-17 用于管理盘池的方法和设备
US15/954,929 US11003359B2 (en) 2017-04-17 2018-04-17 Method and device for managing disk pool

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710250027.XA CN108733308B (zh) 2017-04-17 2017-04-17 用于管理盘池的方法和设备

Publications (2)

Publication Number Publication Date
CN108733308A true CN108733308A (zh) 2018-11-02
CN108733308B CN108733308B (zh) 2021-06-22

Family

ID=63790591

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710250027.XA Active CN108733308B (zh) 2017-04-17 2017-04-17 用于管理盘池的方法和设备

Country Status (2)

Country Link
US (1) US11003359B2 (zh)
CN (1) CN108733308B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111857553A (zh) * 2019-04-30 2020-10-30 伊姆西Ip控股有限责任公司 管理盘阵列的方法、装置和计算机程序产品
CN112748860A (zh) * 2019-10-30 2021-05-04 伊姆西Ip控股有限责任公司 用于存储管理的方法、电子设备和计算机程序产品
CN117991997A (zh) * 2024-04-07 2024-05-07 深圳市铨兴科技有限公司 一种磁盘存储负载均衡的方法和装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2016290090A1 (en) 2015-07-08 2018-02-22 Aortica Corporation Devices and methods for anatomic mapping for prosthetic implants
US10852951B1 (en) * 2017-10-18 2020-12-01 EMC IP Holding Company, LLC System and method for improving I/O performance by introducing extent pool level I/O credits and user I/O credits throttling on Mapped RAID
CN110737401B (zh) 2018-07-20 2023-10-20 伊姆西Ip控股有限责任公司 用于管理独立冗余磁盘阵列的方法、设备和计算机程序产品
CN112748852B (zh) * 2019-10-30 2024-05-24 伊姆西Ip控股有限责任公司 用于管理盘的方法、电子设备和计算机程序产品
CN114564144B (zh) * 2020-11-27 2024-04-19 伊姆西Ip控股有限责任公司 在存储系统中创建区块阵列的方法、设备和程序产品
CN117149098B (zh) * 2023-10-31 2024-02-06 苏州元脑智能科技有限公司 一种条带单元分配方法、装置、计算机设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026451A1 (en) * 2004-07-28 2006-02-02 Voigt Douglas L Managing a fault tolerant system
CN101751234A (zh) * 2010-01-21 2010-06-23 浪潮(北京)电子信息产业有限公司 一种磁盘阵列数据分布方法及系统
CN101788889A (zh) * 2010-03-03 2010-07-28 浪潮(北京)电子信息产业有限公司 一种存储虚拟化系统及方法
CN104937574A (zh) * 2013-01-22 2015-09-23 国际商业机器公司 不同粒度的分层缓存和迁移
CN105138416A (zh) * 2014-06-05 2015-12-09 中兴通讯股份有限公司 磁盘休眠处理方法及装置
US20150378613A1 (en) * 2013-05-17 2015-12-31 Hitachi, Ltd. Storage device
US20160004473A1 (en) * 2014-07-07 2016-01-07 International Business Machines Corporation Migration decision window selection based on hotspot characteristics

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6530035B1 (en) * 1998-10-23 2003-03-04 Oracle Corporation Method and system for managing storage systems containing redundancy data
JP4896593B2 (ja) * 2006-06-05 2012-03-14 株式会社日立製作所 性能監視方法、計算機及び計算機システム
EP2211263A3 (en) * 2009-01-23 2013-01-23 Infortrend Technology, Inc. Method for performing storage virtualization in a storage system architecture
CN104536909B (zh) * 2014-12-09 2018-01-23 华为技术有限公司 一种存储管理方法,存储管理装置及存储设备
US10168915B2 (en) * 2017-01-19 2019-01-01 International Business Machines Corporation Workload performance in a multi-tier storage environment
US10146624B1 (en) 2017-04-24 2018-12-04 EMC IP Holding Company LLC Disk extent rebalancing in mapped RAID storage arrays
US10146459B1 (en) 2017-04-28 2018-12-04 EMC IP Holding Company LLC Disk activity balancing in mapped raid storage arrays by data remapping
US10318169B2 (en) 2017-10-27 2019-06-11 EMC IP Holding Company LLC Load balancing of I/O by moving logical unit (LUN) slices between non-volatile storage represented by different rotation groups of RAID (Redundant Array of Independent Disks) extent entries in a RAID extent table of a mapped RAID data storage system
CN110058792B (zh) 2018-01-18 2022-08-30 伊姆西Ip控股有限责任公司 扩大存储空间的方法、设备以及计算机程序产品
CN110413216B (zh) 2018-04-28 2023-07-18 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026451A1 (en) * 2004-07-28 2006-02-02 Voigt Douglas L Managing a fault tolerant system
CN101751234A (zh) * 2010-01-21 2010-06-23 浪潮(北京)电子信息产业有限公司 一种磁盘阵列数据分布方法及系统
CN101788889A (zh) * 2010-03-03 2010-07-28 浪潮(北京)电子信息产业有限公司 一种存储虚拟化系统及方法
CN104937574A (zh) * 2013-01-22 2015-09-23 国际商业机器公司 不同粒度的分层缓存和迁移
US20150378613A1 (en) * 2013-05-17 2015-12-31 Hitachi, Ltd. Storage device
CN105138416A (zh) * 2014-06-05 2015-12-09 中兴通讯股份有限公司 磁盘休眠处理方法及装置
US20160004473A1 (en) * 2014-07-07 2016-01-07 International Business Machines Corporation Migration decision window selection based on hotspot characteristics

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111857553A (zh) * 2019-04-30 2020-10-30 伊姆西Ip控股有限责任公司 管理盘阵列的方法、装置和计算机程序产品
CN112748860A (zh) * 2019-10-30 2021-05-04 伊姆西Ip控股有限责任公司 用于存储管理的方法、电子设备和计算机程序产品
CN112748860B (zh) * 2019-10-30 2024-04-12 伊姆西Ip控股有限责任公司 用于存储管理的方法、电子设备和计算机程序产品
CN117991997A (zh) * 2024-04-07 2024-05-07 深圳市铨兴科技有限公司 一种磁盘存储负载均衡的方法和装置
CN117991997B (zh) * 2024-04-07 2024-06-11 深圳市铨兴科技有限公司 一种磁盘存储负载均衡的方法和装置

Also Published As

Publication number Publication date
US11003359B2 (en) 2021-05-11
US20180300066A1 (en) 2018-10-18
CN108733308B (zh) 2021-06-22

Similar Documents

Publication Publication Date Title
CN108733308A (zh) 用于管理盘池的方法和设备
US11086523B2 (en) Automatic tiering of storage using dynamic grouping
US8914598B2 (en) Distributed storage resource scheduler and load balancer
US8380928B1 (en) Applying data access activity measurements
US8935500B1 (en) Distributed storage resource scheduler and load balancer
US9971548B1 (en) Storage resource management employing performance analytics
US9405583B2 (en) Resource provisioning based on logical profiles and piecewise objective functions
US9606735B2 (en) Storage management apparatus, and performance adjusting method
US9569268B2 (en) Resource provisioning based on logical profiles and objective functions
US10860260B2 (en) Method, apparatus and computer program product for managing storage system
JP2008217216A (ja) 負荷分散方法及び計算機システム
EP2378410A2 (en) Method and apparatus to manage tier information
US9448740B2 (en) Storage apparatus and hierarchy control method
JP2014529774A (ja) 計算機システム及びその管理システム
JP6273966B2 (ja) ストレージ管理装置、性能調整方法及び性能調整プログラム
US20170212705A1 (en) Dynamic Weighting for Distributed Parity Device Layouts
CN110770691A (zh) 混合数据存储阵列
US11704034B2 (en) Load balancing in a storage system
CN103631537A (zh) 一种虚拟磁盘的管理方法及装置
CN109725835A (zh) 用于管理盘阵列的方法、设备和计算机程序产品
US11513849B2 (en) Weighted resource cost matrix scheduler
JP6255895B2 (ja) ストレージ制御装置、およびプログラム
US20130086317A1 (en) Passing hint of page allocation of thin provisioning with multiple virtual volumes fit to parallel data access
CN111007988A (zh) 一种raid内部磨损均衡方法、系统、终端及存储介质
CN105224261B (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