CN111124271A - 用于针对磁盘系统执行资源重新分配的方法、装置和计算机程序产品 - Google Patents
用于针对磁盘系统执行资源重新分配的方法、装置和计算机程序产品 Download PDFInfo
- Publication number
- CN111124271A CN111124271A CN201811291316.5A CN201811291316A CN111124271A CN 111124271 A CN111124271 A CN 111124271A CN 201811291316 A CN201811291316 A CN 201811291316A CN 111124271 A CN111124271 A CN 111124271A
- Authority
- CN
- China
- Prior art keywords
- disk
- load level
- pair
- disks
- source
- 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/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
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- 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/0604—Improving or facilitating administration, e.g. storage 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
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)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开的实施方式提供了一种用于针对磁盘系统执行资源重新分配的方法、装置和计算机程序产品。在一种方法中,根据多个磁盘的磁盘区段被分配的情况和所述多个磁盘的磨损水平,确定表征所述磁盘区段在所述多个磁盘上的分布均匀性以及所述多个磁盘的磨损水平两者的增强相邻矩阵;以及基于所述增强相邻矩阵来对所述多个磁盘执行资源重新分配操作。通过本公开的实施方式,通过基于磨损水平的增强相邻矩阵,可以在执行资源重新分配时同时考虑磁盘区段的分布均匀性和磁盘磨损水平两者,因此可以避免因不同资源重新分配方法之间的标准不一致而引起的乒乓资源重分配问题,并且与现有存储系统具有良好的兼容性。
Description
技术领域
本公开的一些实施方式涉及数据存储领域,并且更具体地,涉及一种用于针对磁盘系统执行资源重新分配的方法、装置和计算机程序产品。
背景技术
可以基于一个或多个物理存储设备来构建存储系统,以便提供数据存储的能力。在存储系统中,每个物理存储设备被划分为相同大小的若干磁盘区段(disk extent)。当用户创建映射独立冗余磁盘阵列(RAID)时,将从所有磁盘中均匀地选择磁盘区段,以形成新创建的映射RAID的RAID区段(RAID extent)。一个映射RAID可以包括多个RAID区段。在形成RAID区段时,这种磁盘区段的均匀分配可以保证用户数据能够充分利用区段池中所有磁盘的并行输入/输出(I/O)处理的高性能。
除了性能方面的考虑之外,针对所有磁盘的磁盘区段的均匀分配盘也可以在重建时获得良好性能。由于RAID区段均匀地位于各个磁盘上,所以如果当其中一个磁盘故障时,其他完好磁盘中的所有或其大多数磁盘将参与对每个RAID区段的丢失数据的并行重建。因此,这将会使得其比传统RAID的重建速度要快得多。事实上,与映射RAID相关的大多数优点都是源自于磁盘区段均匀分布这一特性。
通常,可以使用相邻矩阵来表征磁盘区段的均匀分布性。相邻矩阵的元素表示各个磁盘中的磁盘区段同时包含在一个RAID区段中的次数。所以如果存储资源池中的所有磁盘的磁盘区段都是均匀分布的,则相邻矩阵中的各个元素的数值应该非常接近。因此,可以通过观察相邻矩阵各元素的数值之间差异来评估磁盘区段是否均匀分布。如果评估结果是磁盘区段未被均匀分布,即在相邻矩阵中各元素的数值之间的差异较大的情况,可以通过洗牌操作来重新分配磁盘区段,以改善磁盘区段的均匀分布性。洗牌操作能够通过重新分配相邻矩阵中与最高值对应的磁盘的磁盘区段来改善磁盘区段的分布均匀性,其目标是平衡磁盘消耗容量和磁盘区段的磁盘分配。
此外,在映射RAID中,还有另一种用于负荷和磨损水平平衡的磁盘重新分配操作,其目标是在区段池中的所有磁盘区段之间平衡用户I/O负荷和磨损水平。但是,在有些情况下,负荷和磨损水平平衡方法并不能较好地平衡所有磁盘的磁盘区段。可以假设只存在一个热磁盘的一个热磁盘区段的情况。无论在哪个磁盘上运行热磁盘区段,总是会出现一个新的热磁盘。现有的平衡方法无法解决这一问题。当前的处理是在这些情况下向细颗粒度负荷平衡模块发送平衡请求,以便按照分片粒度来平衡负荷。
细颗粒度负荷平衡技术是另一种基于驱动器I/O负荷和磁盘磨损水平来移动分片的负荷均衡方法。细颗粒度负荷平衡模块与用户逻辑单元驱动程序进行通信,获取池和层配置,收集分片的I/O统计信息。然后,根据收集的I/O统计信息和磁盘磨损水平计算如何对分片进行重定位。接下来,当用户逻辑单元驱动程序进行分片重定位时,细颗粒度负荷平衡模块向用户逻辑单元驱动程序发出切片重定位请求并且在执行用户逻辑单元重定位时查询状态。
然而,由于这些磁盘重新分配的负荷均衡操作基于不同的标准和规则来执行,所以在洗牌操作与负荷和磁盘磨损水平平衡操作之间可能存在磁盘区段的乒乓重分配情况。
发明内容
在本公开的一些实施方式中,提供了一种用于针对磁盘系统执行资源重新分配的技术方案。
在本公开的第一方面中,提供一种用于针对磁盘系统执行资源重新分配的方法。该方法可以在虚拟机服务器处执行。该方法根据多个磁盘的磁盘区段被分配的情况和所述多个磁盘的磨损水平,确定表征所述磁盘区段在所述多个磁盘上的分布均匀性以及所述多个磁盘的磨损水平两者的增强相邻矩阵;以及基于所述增强相邻矩阵来对所述多个磁盘执行资源重新分配操作。
在本公开的第二方面中,提供了一种用于针对磁盘系统执行资源重新分配的装置。该装置包括处理器;以及与所述处理器耦合的存储器,所述存储器具有存储于其中的指令。所述指令在被处理器执行时使所述装置:根据多个磁盘的磁盘区段被分配的情况和所述多个磁盘的磨损水平,确定表征所述磁盘区段在所述多个磁盘上的分布均匀性以及所述多个磁盘的磨损水平两者的增强相邻矩阵;以及基于所述增强相邻矩阵来对所述多个磁盘执行资源重新分配操作。
在本公开的第三方面中,提供了一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据本公开的第一方面的方法中的动作。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分并非意在识别本公开的关键特征或主要特征,也并非意在限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了本公开的一些实施方式可以在其中被实现的示例环境的示意图;
图2示出根据现有技术的磁盘区段的分配方法;
图3中示出了一个用于10个磁盘的区段池的相邻矩阵的示例;
图4A和图4B示出了磁盘区段均匀分布和不均匀分布的场景及其对应相邻矩阵;
图5A和图5B示出现有洗牌操作可能引起的负荷温度不平衡的示例。
图6示出了根据本公开的一些实施方式的一种用于针对磁盘系统执行资源重新分配的方法600的流程图;
图7示出了根据本公开的一些实施方式的负荷温度水平的示例区域划分。
图8示出了根据本公开的一些实施例的资源重新分配操作的示例性方法800;
图9示出了根据本公开的一些实施例的资源重新分配操作的示例性方法900;
图10A-图10E示出了根据本公开的一些实施方式的资源重新分配操作的示例性过程;
图11示出根据本公开的一些实施方式的在图10E的负荷平衡操作之后得到的相邻矩阵和负荷温度的图示;以及
图12示出了可以用来实施本公开的实施方式的示例设备1200的示意性框图。
具体实施方式
下面将参考附图中示出的若干示例实施方式来描述本公开的原理。虽然附图中显示了本公开的优选实施方式,但应当理解,描述这些实施方式仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施方式”和“一个实施方式”表示“至少一个示例实施方式”。术语“另一实施方式”表示“至少一个另外的实施方式”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
首先参考图1,图1示出了本公开的实施方式的技术方案可以在其中被实现的示例环境的示意图。存储系统100包括物理存储设备组120,用于提供数据存储能力。物理存储设备组120包括缓存存储器122和磁盘设备124。缓存存储器122用于数据缓存,磁盘设备124用于数据的持久性存储。通常,缓存存储器122的存取速度大于硬盘设备124的存取速度。存储系统100可以利用多种存储技术来提供数据存储能力。
在一些实施例中,缓存存储器122的示例包括高速缓存,随机存取存储器(RAM)、动态随机存取存储器(DRAM)等具有较高存取速度的存储器。磁盘设备124的示例可以包括磁盘冗余阵列(RAID)或其他磁盘设备。
为了管理对物理存储空间的数据存储,存储系统100还包括存储控制器110。通常存储系统100采用分层控制模型。如图1所示,在分层控制模型下,存储控制器110可以具有多层控制模块,包括主机控制模块112、缓存控制模块114以及物理盘控制模块116。这些控制模块实现层级控制功能。
为了便于理解存储系统100的分层控制模型,在使用RAID技术的示例中描述控制器110的工作机制。物理盘控制模块116将逻辑单元号(LUN)设备呈现给缓存控制模块114。物理盘控制模块116控制磁盘设备124的存储空间。缓存控制模块114控制缓存存储器122的缓存空间,以将缓存卷呈现给主机控制模块112。主机控制模块112管理逻辑存储池,并且将池LUN呈现给主机102。
在操作时,主机102上运行的应用可以向主机控制模块112发送用户写请求,以请求将数据写入存储系统100。响应于接收到的用户写请求,主机控制模块112可能会将生成对缓存控制模块114的多个写请求。例如,如果主机102的用户写请求要求将大量数据写入到由硬盘设备124创建的RAID LUN的多个离散区段上,那么针对每个区段,主机控制模块112都会向缓存控制模块114发送一个写请求。
缓存控制模块114和缓存存储器122在写回模式中进行操作。这意味着在接收到写请求后,缓存控制模块114首先将写请求要写入的数据缓存到缓存存储器122,然后再将(多个)写请求的数据释放到磁盘设备140。缓存控制模块114可以在完成数据缓存之后就向主机控制模块112发送该写请求的完成指示,从而实现对用户写请求的快速响应。物理盘控制模块116用于控制对硬盘设备124的实际写入。
应当理解,在上文中虽然被示出为不同的模块,但主机控制模块112、缓存控制模块114以及物理盘控制模块116可以由具有处理能力的单个或多个处理器、控制器、微处理器等或者包括这些器件的计算设备来实现。在一些示例中,缓存控制模块114还可以与缓存存储器122集成在一起,以获得同时具备缓存和控制能力的器件。虽然未被示出,在一些实施方式中,存储系统100还可以包括作为存储控制器100的镜像的另一存储控制器,以提供数据一致性、安全性和数据恢复能力。在一些示例中,存储系统100还可以使用多核存储机制来实现数据存储和管理。
下面出于说明的目的,将首先参考图2来介绍现有技术中的磁盘区段的分配方法。如图2所示,在该存储系统中,示例的磁盘0至磁盘5中每个均被划分为若干磁盘区段,磁盘区段放在区段池110中进行管理。通过从每个磁盘中均匀地选择磁盘区段来形成RAID区段,并由多个RAID区段来组成映射RAID 121至123。基于各个映射RAID,可以进一步形成可供高层用户使用的各个内部逻辑单元131。
出于并行I/O处理的高性能、数据重构的良好性能等因素的考虑,均匀分布是磁盘区段分配的首要原则之一。为了评估磁盘区段的分布均匀程度,可以采用相邻矩阵NM(Neighbor Matrix)来对其进行表征。相邻矩阵是n*n方形矩阵,其中n是区段池中的磁盘数目。矩阵NM中的每个元素可以表示为NM(i,j),该元素表示磁盘i与磁盘j相邻的次数。根据NM的定义,一个RAID区段中的所有磁盘区段所属的磁盘均是彼此相邻的磁盘。该相邻矩阵是对角线为0的对称矩阵。因为根据“相邻”的定义,在i≠j的情况下,NM(i,j)的值应该等于NM(j,i)的值,而在i=j的情况下,NM(i,j)总是零。
出于说明的目的,在图3中示出了一个具有10个磁盘的区段池的相邻矩阵的示例。由于涉及10个磁盘,所以该相邻矩阵是个10×10的方形矩阵,其中该矩阵中的每个值代表两个磁盘i,j的磁盘区段在相同RAID区段中的次数。如果RAID所使用的磁盘区段在区段池中的所有磁盘上均匀分布,则在该相邻矩阵中除对角线处的数值之外的其他数值应该基本接近。因此,可以通过观察相邻矩阵的数值之间存在的差值大小,来评估磁盘区段是否均匀分布。
图4A和图4B示出了磁盘区段均匀分布和不均匀分布的场景及其对应相邻矩阵。从图4A所示的场景可以看出,磁盘区段基本均匀分布在各个磁盘上;在对应的相邻矩阵中,各个磁盘彼此相邻的次数基本上是19和20。而与此相对,在图4B所示的场景中,在各个磁盘之间的磁盘区段的情况差异较大,其并非是均匀分布的;在对应的相邻矩阵中,有些磁盘彼此相邻的次数高达38,而有些磁盘彼此相邻的次数低至1,甚至为0。
如前所述,对于磁盘区段分布不均匀的情况,则可以通过洗牌操作来执行磁盘区段重新分配。该洗牌操作的功能是通过重新分配相邻矩阵中值较高的磁盘中的磁盘区段来平衡区段池的磁盘区段分布。下面出于说明的目的,将简要描述现有的洗牌操作的过程。
对于包含n个磁盘(d1,d2,…dn)的区段池,通常首先选择出对应的相邻矩阵中与具有最大值的元素NM(i,j)对应的磁盘i和j。如果是存在多个最大值,则可以随机选择一个。然后,在映射RAID区段内找到如下映射RAID区段(RE)集合,该RE集合中的每个元素re(RAID区段)既包括磁盘i的磁盘区段也包括磁盘j的磁盘区段。或者换句话说,在所述re中,在一个位置为磁盘i的磁盘区段,而另一位置有磁盘j的磁盘区段。然后,针对RE集合中的每个re,查找候选目标磁盘k,该候选目标磁盘k的NM(k,x)之和要小于NM(i,x)之和或NM(j,x)之和,其中x是re内处除i、j、k外的其他磁盘编号。这就意味着目标磁盘需要能够改善磁盘区段分布的均匀性。此外,针对每个re,将从源磁盘i或j至候选目标磁盘k的磁盘区段移动作为有效移动进行记录。如果搜索不到任何候选目标磁盘,则洗牌操作结束。如果存在候选目标磁盘,则从对应的有效磁盘区段移动中确定出能够引起的性能改善最大的有效磁盘区段。然后,可以根据最终确定的结果在将re中的磁盘区段从源磁盘移动到目标磁盘。
在映射RAID中,还可以执行用于负荷平衡的重新分配操作。例如可以执行基于负荷水平和磨损水平的磁盘重新分配操作,以在区段池中的所有磁盘之间平衡用户I/O负荷和磨损水平。为了量化磁盘区段和磁盘的I/O负荷和磨损水平,定义了负荷温度和磨损温度来表征I/O负荷水平和磨损水平。磁盘的负荷温度被定义为磁盘中的所有磁盘区段的负荷温度之和;磁盘的磨损温度被定义为磁盘中的所有磁盘区段的磨损温度之和。各个磁盘区段的负荷温度和磨损温度都可以基于下面的式1来计算,但是磁盘区段的磨损温度基于采样周期内磁盘区段的总I/O块计数来计算,而磨损温度是基于采样周期内磁盘区段的写I/O块计数来计算。用来计算负荷温度和磨损温度的示例公式1给出如下:
其中,
T指示当前计算的温度;
T′指示上次计算的温度(Δt时间前);
α指示衰变因子,其源自温度指数半衰期;
ΔH指示在两个采样时间之间的I/O活动;
Δt指示上次采样时间与当前采样时间的差值。
对于基于负荷水平的平衡,通常的操作是首先根据磁盘数量与所有磁盘的负荷温度和区段池中的各个磁盘的磁盘区段的数量,来确定磁盘平均负荷温度和平均磁盘区段计数。然后,对于每个磁盘i,如果该磁盘的负荷温度大于磁盘平均温度且其区段计数大于平均区段分配计数,则为该磁盘i选择磁盘区段集合DES,DES中磁盘区段的计数为该磁盘i的分配区段计数与平均区段分配计数之差,且其总负荷温度大致为该磁盘的负荷温度与磁盘平均温度之差。而如果该磁盘的负荷温度大于磁盘平均温度但分配区段计数小于平均区段分配计数,则为该磁盘选择另一磁盘区段集合DES,该DES中磁盘区段计数为该磁盘的分配区段计数与平均区段分配计数之差,但负荷温度具有最小值。将确定的DES移动到区段缓冲器BUF中。如果BUF不为空,则可以针对BUF中的候选DES,从负荷温度最高的磁盘区段开始执行磁盘区段移动,直到目标磁盘的分配区段计数与平均分布区段计数大致相同,或者目标磁盘的负荷温度等于或者高于磁盘平均负荷温度;如果目标磁盘的分配区段计数仍小于平均分布区段计数,则开始移动BUF中负荷温度最低的磁盘区段,直到目标磁盘的分配区段计数等于平均分布区段计数。另外,如果存在负荷水平超出预定负荷水平范围(例如+10%和-10%之间)的磁盘i和磁盘j,则可以选择磁盘i中的最热磁盘区段和磁盘j中的最冷磁盘区段(他们需要满足磁盘i中的最热磁盘区段的负荷温度高于磁盘j中的最冷磁盘区段的最冷负荷温度),对他们进行数据交换,直到两个磁盘的负荷水平位于预定负荷水平范围(例如+10%和-10%之间)内。
而对于磨损水平平衡,通常会基于磁盘的写入限额来计算各个磁盘当前的理想写入温度,如果存在分别在超出和低于预定磨损水平范围(例如+10%和-10%之间)内的磁盘i和磁盘j,则可以选择磁盘i中的最热磁盘区段和磁盘j中的最冷磁盘区段(他们需要满足磁盘i中的最热磁盘区段的负荷温度高于磁盘j中的最冷磁盘区段的最冷负荷温度),对他们进行数据交换,直到两个磁盘的负荷水平位于预定磨损水平范围(例如+10%和-10%之间)内。
上述基于负荷水平和磨损水平的负荷平衡操作和洗牌操作可以解决负荷、磨损水平、消耗容量和RAID区段分配的不平衡的问题。然而,潜在的问题是基于负荷和磨损水平的负荷平衡操作和洗牌操作各自以自己的标准和原则执行平衡过程。而这可能会在基于负荷和磨损水平的负荷平衡操作与洗牌操作之间引起磁盘区段的乒乓资源重分配。例如,如果洗牌操作将一个磁盘区段从源磁盘移动到目标磁盘,以减少磁盘之间的分布不均匀。但是由于源磁盘可能是冷磁盘而目标磁盘是热磁盘,因此磁盘区段的移动会加剧负荷不平衡。同时,当洗牌操作完成并触发基于负荷水平或磨损水平的负荷平衡操作时,通过洗牌操作移动的磁盘区段可能会被再次重新分配,而这可能会对洗牌操作的磁盘区段分布均匀性造成影响。
图5A和图5B示出了现有洗牌操作可能引起的负荷温度不平衡的示例。图5A示出在磁盘操作之前所有磁盘的相邻矩阵和负荷温度,其中磁盘区段分布不均匀而磁盘最高温度不到1100。而在洗牌操作之后,从图5B的相邻矩阵可以看出,磁盘分度的分布均匀性得到较好的改善,但是原始磁盘的最高磁盘温度却变得更高。因此,洗牌操作加重了磁盘的负荷温度不平衡。反之,当负荷平衡操作开始尝试平衡磁盘温度时,邻域矩阵将会变得不均匀。这时候就出现了乒乓操作。
在本公开的实施方式中,提出在执行资源重新分配时同时考虑多种影响因素,从而减少这种乒乓操作出现的可能性。可以通过基于磨损水平权重来调整相邻矩阵值,以生成基于磨损水平的增强相邻矩阵。这是基于如下事实,即磁盘与其他磁盘之间的重叠越多,磁盘利用率就越高,而磁盘利用率越高,磨损水平就越快。也就是说,减少具有高磨损水平的磁盘的重叠可以降低其利用率,并降低其磨损水平的增加速度。
为此,在本公开中公开的实施例中,根据多个磁盘的磁盘区段被分配的情况和所述多个磁盘的磨损水平,确定表征所述磁盘区段在所述多个磁盘上的分布均匀性以及所述多个磁盘的磨损水平两者的增强相邻矩阵,并且基于所述增强相邻矩阵来对所述多个磁盘执行资源重新分配操作。在进一步的实施方式中,在执行资源重新分配操作时还可以进一步考虑I/O负荷水平。
图6示出了根据本公开的一些实施方式的一种用于针对磁盘系统执行资源重新分配的方法600的流程图。如图6所示,在块610,根据多个磁盘的磁盘区段被分配的情况和所述多个磁盘的磨损水平,确定表征所述磁盘区段在所述多个磁盘上的分布均匀性以及所述多个磁盘的磨损水平两者的增强相邻矩阵。
在根据本公开的一个实施方案中,通过利用权重值调整原始相邻矩阵的各个元素,来确定所述增强相邻矩阵的相应元素。此处的原始相邻矩阵表征所述磁盘区段在所述多个磁盘上的分布均匀性。所述权重值可以基于所述多个磁盘的理想磨损水平、与所述原始相邻矩阵的各个元素对应的各个磁盘对的各自磨损水平而确定。
在根据本公开的一些实施方式中,所述权重值w被确定为:
(1+αi/D_WTideal)*(1+αj/D_WTideal)
因此,根据本公开的实施方式的增强相邻矩阵中的元素NM(i,j)可以为确定为:
NM(i,j)=NM’(i,j)*(1+αi/D_WTideal)*(1+αj/D_WTideal):
其中NM’(i,j)指示并未考虑磨损水平的原始相邻矩阵。
接着,在块620,可以基于所述增强相邻矩阵来对所述多个磁盘执行资源重新分配操作。基于增强相邻矩阵的资源重新分配操作可以按照现有技术中的基于原始相邻矩阵的资源重新分配操作以类似的方式执行。但是由于增强相邻矩阵考虑了磁盘区段分布的均匀性和磁盘磨损水平两者,所以可以更加有效地执行资源重新分配,减少乒乓操作的出现。
此外,在本公开的一些实施方式中,还可以进一步基于所述磁盘对的负荷水平,执行资源重新分配操作。在这种实施方式中,可以首先确定与所述增强相邻矩阵中的元素的最大值对应的磁盘对,然后,基于所述磁盘对的负荷水平,将所述磁盘对其中一个作为源磁盘执行资源重新分配。当存在与所述最大值对应的多个磁盘对的情况下,可以按照以下优先级来确定所述磁盘对:
■包含负荷水平位于所述热磁盘区域的磁盘的磁盘对;
■包含负荷水平位于所述冷磁盘区域的磁盘的磁盘对;以及
■包含负荷水平最高的磁盘的磁盘对。
也就是说,如果存在多个候选磁盘对,此时包括热磁盘的磁盘对将会被优先选择;如果不包括任何热磁盘,则包括有冷磁盘的磁盘对将会被优先选择;而在所有磁盘对不包含热磁盘也不包含冷磁盘的情况下,包含负荷水平最高的磁盘的磁盘对会被选择。
在下文中,出于说明的目的,将首先描述将在下文中用到的一些参数:
d={d1,d2,…,dn}:区段池中的磁盘集合,n是磁盘计数
D_Ti:磁盘i的负荷温度
D_WTi:磁盘i的磨损温度
DE_Tim:磁盘i中的磁盘区段m的负荷温度
DE_WTim:磁盘i中磁盘区段m的磨损温度
D_Ci:磁盘i的磁盘区段数
D_Cavg=磁盘池中的磁盘区段数/磁盘数:所有磁盘的每磁盘平均磁盘区段计数
D_WQi=磁盘i的容量*剩余PE周期/剩余小时:磁盘i的写入限额
NM(i,j)=NM’(i,j)*(1+αi/D_WTideal)*(1+αj/D_WTideal):
其中NM’(i,j)指示并未考虑磨损水平的原始相邻矩阵,其中
其中
i和j分别指示与所述原始相邻矩阵的各个元素对应的各个磁盘对的磁盘编号;
D_WTideal指示所述多个磁盘的理想磨损水平;
D_WTn指示磁盘n的理想磨损水平(n=i,j);以及
f(x)是单调增函数,且f(0)=0。
此外,在根据本公开的一些实施方式中,还可以将磁盘的负荷水平划分为几个区域。图7示出了根据本公开的一些实施方式的负荷温度水平的示例区域划分。如图7所示,温度T指示所有盘的平均温度或者理想温度,即可以是D_Tavg。β指示温度容限因子,0<β<1,通常β可以取值为10%。在T-β与T+β之间的区域成为预定容限区域710。在预定容限区域内,在温度T以上被称为温磁盘区域712,在温度T以下的被称为冷磁盘区域714。负荷水平落在温磁盘区域712内的磁盘可以称作温磁盘。如果磁盘i、j都是温磁盘且磁盘i的温度大于磁盘i,则称磁盘i比磁盘j更温。负荷水平落在凉磁盘区域714内的磁盘可以称作凉磁盘。如果磁盘i、j都是凉磁盘且磁盘i的温度大于磁盘i,则称磁盘i比磁盘j更凉。
负荷水平在所述预定容限区域710以上的是热磁盘区域720。负荷水平落在热磁盘区域720内的磁盘可以称作热磁盘。如果磁盘i、j都是热磁盘且磁盘i的温度大于磁盘i,则磁盘i比磁盘j更热。在所述预定容限区域以下的是冷磁盘区域730。负荷水平落在冷磁盘区域内的磁盘可以称作冷磁盘。如果磁盘i、j都是冷磁盘且磁盘i的温度大于磁盘j,则称磁盘i比磁盘j更冷。
在根据本公开的一些实施方式中,可以与所述增强相邻矩阵中的元素的最大值对应的磁盘对中的两个磁盘的负荷水平处于所述热磁盘区域、所述冷磁盘区域、所述温磁盘区域和所述冷磁盘区域中哪个或哪些区域来执行所述资源重新分配。
图8示出了根据本公开的一些实施方式的资源重新分配操作的一个示例性方法800。该方法800可以在所述磁盘对中至少一个磁盘的负荷水平位于所述热磁盘区域的情况下执行。如图8所示,首先,在块810,将所述磁盘对中负荷水平较高的磁盘确定为源磁盘。也就是说,如果磁盘对中仅仅一个磁盘的负荷水平落在热磁盘区域,则落在热磁盘区域的磁盘被选作目标磁盘;而在磁盘对中的两个磁盘的负荷水平均在热磁盘区域中时,其中负荷水平高的磁盘被选择为源磁盘。在块820,将所述磁盘对之外的其他磁盘中负荷水平最低的磁盘作为目标磁盘。接着在块830,从所述源磁盘的磁盘区段中确定源磁盘区段,所述源磁盘区段与所述磁盘对中负荷水平较低的磁盘相邻但与所述目标磁盘不相邻,且是满足该标准的所有磁盘区段中负荷水平最高的磁盘区段。然后,在块840,针对确定的所述源磁盘区段和所述目标磁盘执行资源重新分配。
图9示出了根据本公开的一些实施例的资源重新分配操作的示例性方法900。该方法900可以在所述磁盘对中至少一个磁盘的负荷水平位于所述冷磁盘区域的情况下执行。如图9所示,在块910,将所述磁盘对中负荷水平较低的磁盘作为源磁盘。在块920,将所述磁盘对之外的其他磁盘中负荷水平最高的磁盘作为目标磁盘。接着,在块930从所述源磁盘中的磁盘区段中选择一个作为源磁盘区段。所述源磁盘区段应当与所述磁盘对中负荷水平较高的磁盘相邻但与所述目标磁盘不相邻,且是满足该标准的所有磁盘区段中负荷水平最低的磁盘区段。接下来,在块940,进一步从所述目标磁盘的磁盘区段中确定一个作为目标磁盘区段。所述目标磁盘区段与所述磁盘对中的磁盘均不相邻,且是满足该标准的磁盘区段中负荷水平最高的磁盘区段。接着,就可以针对确定的所述源磁盘区段和所述目标磁盘区段执行资源重新分配。
在所述磁盘对中至少一个磁盘的负荷水平位于所述温磁盘区域的情况下,也以按照图8所示的流程进行处理;而在所述磁盘对中至少一个磁盘的负荷水平位于所述凉磁盘区域的情况下,则可以按照图9所示的流程进行处理。
针对上面的各种情况,可能会出现磁盘对中存在位于不同温度区域的磁盘的情况。在这种情况下,可能面临选择按照图8和图9中的那个过程来执行的问题,这可以例如遵循预定的优先级。来进行选择。这样的优先级可以包括:所述磁盘对中负荷水平位于热磁盘区域且负荷水平最高的磁盘或负荷水平位于冷磁盘区域且负荷水平最低的磁盘;所述磁盘对中负荷水平位于所述温磁盘区域且负荷水平最高的磁盘;所述磁盘对中负荷水平位于所述凉磁盘区域且负荷水平最低的磁盘。也就是说,只要磁盘对中包括热磁盘或冷磁盘,则将负荷水平最高的热磁盘或者负荷水平最低的冷磁盘选择为源磁盘,然后按照图8或者图9示出的过程中的后续步骤进行处理。而在磁盘对中既不包括热磁盘也不包括冷磁盘但包括温磁盘的情况下,则将负荷水平最高的温磁盘作为源磁盘,按照图8示出的过程的后续步骤进行处理。而在磁盘对中仅包括凉磁盘的情况下,则选择负荷水平最低的凉磁盘作为源磁盘,按照图9示出的过程的后续步骤进行处理。
出于说明的目的,接下来将具体描述根据本公开的用于资源重新分配的一个具体实现。
磁盘对选择
首先,针对确定的增强相邻矩阵NM,从其所有元素中选择磁盘i和磁盘j,其中NM(i,j)具有相邻矩阵中的各个元素的最大值。如果存在多个与最大值对应的磁盘对,即NM(ix,jx)(ix∈D,jx∈D),则选择包括有热磁盘的磁盘对i,j。如果多个磁盘对都包括热磁盘,则选择包含负荷水平最高的热磁盘的磁盘对。如果没有热磁盘,那么选择包括冷磁盘的磁盘对i,j。而在多个磁盘对都包括冷磁盘,则选择包含负荷水平最低的冷磁盘的磁盘对。另外,如果也没有冷磁盘,则选择具有最高负荷温度的磁盘对i,j。然后在随后的步骤中,根据磁盘对的不同情况进行处理。
情况1:磁盘对中包括热磁盘
如果磁盘i和磁盘j中至少一个是热磁盘,那么选择磁盘对中较热的磁盘作为洗牌操作源磁盘,假设磁盘i是较热磁盘。然后,选择最冷的磁盘k作为(k∈D但k不是i和j)作为洗牌目标盘。根据磁盘i和磁盘k,找出RAID区段集合(RE),其中RE中的每个RAID区段(re)覆盖磁盘i、j但不覆盖盘k,即RE中的每个re包含磁盘i和磁盘j但不包含磁盘k。接着,根据磁盘i和RE,选择具有最高负荷温度源磁盘区段de_s,并且de_s∈RE。
如果de_s的负荷温度低于DE_Tavg,那么返回到该情况1中重新选择洗牌目标盘k的步骤,并开始下轮操作以选择下一个最冷的磁盘k’,其中k’∈D但k’不是i和j。如果成功选出洗牌目标磁盘k以及源磁盘区段de_s,则将磁盘区段de_s移动到磁盘k,并更新相邻矩阵以及磁盘i和磁盘k的和温度值。
可以重复从选择最冷磁盘作为洗牌目标磁盘的操作至移动磁盘区段ds_s的操作,直至磁盘i不是热磁盘或NM(i,j)不是相邻矩阵中的最大值。此时,就可以返回到最开始的磁盘对选择操作,重新下轮操作。
情况2:磁盘对中包括冷磁盘
如果磁盘i和磁盘j都不是热磁盘,但是磁盘i和磁盘j中至少一个是冷磁盘,那么选择磁盘对中较冷的磁盘作为洗牌操作源磁盘,假设磁盘i是较冷磁盘。选择最热的磁盘k作为(k∈D但k不是i和j)作为洗牌目标盘。根据磁盘i和磁盘k,找出RAID区段集合(RE),其中属于RE的每个RAID区段re覆盖磁盘i、j但不覆盖盘k,即RE中的每个re包含磁盘i和磁盘j但是不包含磁盘k。接着,根据磁盘i和RE,选择具有最低负荷温度源磁盘区段de_s,并且de_s∈RE。如果de_s的负荷温度高于DE_Tavg,则返回该情况2中重新选择目标洗牌磁盘的步骤,开始下轮操作,从而选择下一个最热的磁盘k’,其中k’∈D但k’不是i和j。
如果成功选出洗牌目标磁盘k和源磁盘区段de_s,则从目标磁盘k中选择目标磁盘区段de_d,其中该目标磁盘区段de_d所在的RAID区段中不包括磁盘i和磁盘j的磁盘区段,且该磁盘区段de_d是满足该条件的所有磁盘区段中具有最高负荷水平的磁盘区段。
如果目标磁盘区段de_d的负荷温度低于DE_Tavg or de_s的负荷温度,则返回情况2中重新选择目标洗牌磁盘的步骤,以开始下轮操作,从而选择下一个最热的磁盘k’,其中k’∈D但k’不是i和j。如果成功选出洗牌目标磁盘k,源磁盘区段de_s和目标磁盘区段de_d,则在源磁盘区段de_s和目标磁盘区段de_d进行数据交换。然后更新相邻矩阵以及磁盘i和磁盘k的和温度值。
可以重复从选择最热磁盘作为洗牌目标磁盘的步骤至前述交换数据的操作,直至磁盘i不是冷磁盘或NM(i,j)不是相邻矩阵中的最大数。接着,过程可以返回到最开始的磁盘对选择操作,重新下轮操作。
情况3:磁盘对中包括温磁盘
如果磁盘i和磁盘j中就既不是热磁盘也不是冷磁盘,而是至少一个是温磁盘,则选择磁盘对中负荷温度最高的磁盘作为洗牌操作源磁盘,假设磁盘i是较热磁盘。然后,选择最冷的磁盘k作为(k∈D但k不是i和j)作为洗牌目标盘。根据磁盘i和磁盘k,找出RAID区段集合(RE),其中RE中的每个RAID区段覆盖磁盘i、j但不覆盖盘k。接着,根据磁盘i和RE,选择具有最高负荷温度的源磁盘区段de_s,并且de_s∈RE,且满足D_Ti–DE_Ts>预定容限区域的下限值,以避免经过资源重配置后源磁盘温度降低变为冷磁盘。
如果de_s的负荷温度低于DE_Tavg,那么返回情况3中重新选择目标洗牌磁盘的步骤,开始下轮操作,以选择下一个最冷的磁盘k’,其中k’∈D但k’不是i和j。如果成功选出洗牌目标磁盘k和源磁盘区段de_s,则将磁盘区段de_s移动到磁盘k,并更新相邻矩阵以及磁盘i和磁盘k的温度值。
可以重复从选择最冷磁盘作为洗牌目标磁盘的操作至移动磁盘区段ds_s的操作,直至磁盘i不是温磁盘或NM(i,j)不是相邻矩阵中的最大值。此时,就可以返回到最开始的磁盘对选择操作,重新下轮操作。
情况4:磁盘对中包括凉磁盘
如果磁盘i和磁盘j中两者是凉磁盘,那么选择磁盘对中较凉的磁盘作为洗牌操作源磁盘,假设磁盘i是较凉磁盘。选择最热的磁盘k作为(k∈D但k不是i和j)作为洗牌目标盘。根据磁盘i和磁盘k,找出RAID区段集合RE,其中属于RE的每个RAID区段re覆盖磁盘i、j但不覆盖盘k。接着,根据磁盘i和RE,选择具有最低负荷温度源磁盘区段de_s,并且de_s∈RE。如果de_s的负荷温度高于DE_Tavg,则返回情况4中重新选择目标洗牌磁盘的步骤,开始下轮操作,从而选择下一个最热的磁盘k’,其中k’∈D但k’不是i和j。
如果成功选出洗牌目标磁盘k和源磁盘区段de_s,则从目标磁盘k中选择目标磁盘区段de_d,其中该目标磁盘区段de_d所在的RAID区段中不包括磁盘i和磁盘j的磁盘区段,且该磁盘区段de_d是满足该条件的所有磁盘区段中具有最高负荷水平的磁盘区段。
如果目标磁盘区段de_d的负荷温度低于DE_Tavg or de_s的负荷温度,则返回情况4中重新选择目标洗牌磁盘的步骤,以开始下轮操作,从而选择下一个最热的磁盘k’,其中k’∈D但k’不是i和j。如果成功选出洗牌目标磁盘k、源磁盘区段de_s和目标磁盘区段de_d,则在源磁盘区段de_s和目标磁盘区段de_d进行数据交换。然后更新相邻矩阵以及磁盘i和磁盘k的和温度值。
可以重复从选择最热磁盘作为洗牌目标磁盘的步骤至前述交换数据的操作,直至磁盘i不是凉磁盘或NM(i,j)不是相邻矩阵中的最大数。接着,就可以返回到最开始的磁盘对选择操作,重新下轮操作。
如果经过若干次操作之后,依然存在热磁盘或者冷磁盘,则可以向细颗粒度负荷平衡模块发出用于在分片粒度来平衡热磁盘和冷磁盘的平衡请求。
图10A至图10E示出了根据本公开的实施方式的针对10个磁盘的区段池的资源重新分配方法的示例的洗牌过程。此外还示出了每个中间过程对应的原始NM矩阵、增强NM矩阵、磁盘区段分布情况,以及负荷温度。
如图10A所示,首先将与增强相邻矩阵中具有最大值10的NM(5,7)对应的磁盘5和磁盘7作为磁盘对,并选择磁盘5作为洗牌源磁盘。尽管增强NM矩阵中NM(7,9)也具有最大值,但是磁盘对5和7包含是具有最高负荷温度的热磁盘的磁盘对。接着根据前述情况1,选择最冷磁盘10作为洗牌目标盘。然后,选择磁盘5的最热磁盘区段5作为洗牌源磁盘区段,该源磁盘区段与磁盘7相邻,但与磁盘10不相邻。然后将磁盘5的磁盘区段5移动到磁盘10,并更新相邻矩阵和磁盘温度。图10B示出了这次操资源重新分配操作后的结果。继续按照前述情况1针对磁盘5进行操作,直到可以得到图10C所示的内部状态。
在图10C所示的状态下,可以发现NM(7,9)是最大值。但是磁盘7和磁盘9都是温磁盘。因此,根据前述情况3,选择暖磁盘7作为洗牌源磁盘,选择最冷的磁盘2作为洗牌目标磁盘,并选择磁盘区段5作为洗牌源磁盘区段。然后将磁盘7的磁盘区段5移动到磁盘2,并更新相邻矩阵和磁盘温度。图10D显示了该重新资源分配操作后的结果。
继续针对磁盘执行资源重新分配的最后结果在图10E示出。图11示出了对应的增强相邻矩阵和磁盘温度的示意图。从图中可以看出磁盘区段的分布均匀性和磁盘温度分布都可以得到相对较好的结果。
在本公开的实施方式中,在执行资源重分配操作考虑在上述各种操作的解空间的交集中的磁盘区段移动。因此,尽管需要收到交集的约束,但是这种方法能够保证洗牌操作或负荷平衡操作的均能得到提升,而不会被恶化。
因此,与每个单独执行洗牌操作和负荷平衡操作相比,根据解空间内的交集内的方案进行资源重新分配可能具有较少的可用磁盘区段移动。在现有洗牌操作中,即便计算出的磁盘区段移动会使热磁盘变得更热,在当前的实现中也会直接执行移动而不考虑磁盘负荷。但是本公开的实施方式中,这样的磁盘区段并不会被移动。也就是说,当本公开的资源重新分配方法完成后,仍然可能存在可以重新分配以进一步改善磁盘区段分布均匀性的一个或多个磁盘区段。而这些可重定位的磁盘区段正是引起在原始洗牌操作和负荷平衡操作之间进行乒乓移动的原因。因此,从这一点来看,本发明的实施方式的资源重新分配操作的结果实际上是在磁盘区段分布和负荷平衡之间的良好折衷。因此,本公开的实施方式的资源重新分配操作也可以成为是负荷平衡洗牌操作。
对于这些可重定位的磁盘区段可以借助于细颗粒度负荷平衡技术模块来处理。也就是说,可以利用细颗粒度负荷平衡技术在上述操作完成后重新分配不平衡磁盘的分片。因此,该方法以增强相邻矩阵作为主要参照,总是先使相邻矩阵均匀化,而且剩余的不平衡问题可以留给细颗粒度负荷平衡模块来处理。由于现在技术中,负荷平衡后剩余不平衡问也是要交给细颗粒度负荷平衡模块解决,所以这不会给细颗粒度负荷平衡的工作带来额外的负担。
因此,根据本公开的实施方式的资源重新分配操作可以是避免在原始洗牌和负荷平衡操作之间进行磁盘区段乒乓重分配。而通过使用公开的实施方式的资源重新分配操作,磁盘区段重新分配后台操作可以从以前的3个减少到甚至只有一个。而后台操作越少意味着运算成本越低。此外,在当前的存储系统中,可以很容易地实施本公开的实施方式的资源重新分配操作,只需更新相应的算法即可。因此其具有较好的兼容性。
此外,图12还示出了可以用来实施本公开的一些实施方式的示例设备1200的示意性框图。设备1200可以用于实现图1的存储控制器110的一个或多个控制模块。
如图所示,设备1200包括中央处理单元(CPU)1201,其可以根据存储在只读存储器(ROM)1202中的计算机程序指令或者从存储单元1208加载到随机访问存储器(RAM)1203中的计算机程序指令,来执行各种适当的动作和处理。在RAM 1203中,还可存储单元1200操作所需的各种程序和数据。CPU 1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
设备1200中的多个部件连接至I/O接口1205,包括:输入单元1206,例如键盘、鼠标等;输出单元1207,例如各种类型的显示器、扬声器等;存储单元1208,例如磁盘、光盘等;以及通信单元1209,例如网卡、调制解调器、无线通信收发机等。通信单元1209允许设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元1201执行上文所描述的各个方法和处理,例如方法500、方法600、方法700、图10中的过程、图11中的过程中的任一个。例如,在一些实施方式中,方法500、方法600、方法700、图10中的过程、图11中的过程中的任一个可被实现为计算机软件程序或计算机程序产品,其被有形地包含于机器可读介质,例如存储单元1208。在一些实施方式中,计算机程序的部分或者全部可以经由ROM 1202和/或通信单元1209而被载入和/或安装到设备1200上。当计算机程序加载到RAM 1203并由CPU 1201执行时,可以执行上文描述的方法500、方法600、方法700、图10中的过程、图11中的过程中的任一个的一个或多个步骤。备选地,在其他实施方式中,CPU 1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法500、方法600、方法700、图10中的过程、图11中的过程中的任一个。
本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的一些实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的可选实施方式,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。
Claims (23)
1.一种用于针对磁盘系统执行资源重新分配的方法,包括:
根据多个磁盘的磁盘区段被分配的情况和所述多个磁盘的磨损水平,确定表征所述磁盘区段在所述多个磁盘上的分布均匀性以及所述多个磁盘的磨损水平两者的增强相邻矩阵;以及
基于所述增强相邻矩阵来对所述多个磁盘执行资源重新分配操作。
2.根据权利要求1所述的方法,其中所述确定所述增强相邻矩阵包括:
通过利用权重值调整原始相邻矩阵的各个元素,来确定所述增强相邻矩阵的相应元素,
其中所述原始相邻矩阵表征所述磁盘区段在所述多个磁盘上的分布均匀性,以及
其中所述权重值基于所述多个磁盘的理想磨损水平、与所述原始相邻矩阵的各个元素对应的各个磁盘对的各自磨损水平而确定。
4.根据权利要求1-3其中任一项所述的方法,其中所述基于所述增强相邻矩阵来对所述多个磁盘执行资源重新分配操作包括:
确定与所述增强相邻矩阵中的元素的最大值对应的磁盘对;以及
基于所述磁盘对的负荷水平,将所述磁盘对其中一个作为源磁盘执行资源重新分配。
5.根据权利要求4所述的方法,其中负荷水平被划分预定容限区域、在所述预定容限区域以上的热磁盘区域以及在所述预定容限区域以下的冷磁盘区域,其中所述预定容限区域进一步被划分为在预定负荷水平以上的温磁盘区域和在所述预定负荷水平以下的凉磁盘区域,以及
其中根据所述磁盘对中的两个磁盘的负荷水平处于所述热磁盘区域、所述冷磁盘区域、所述温磁盘区域和所述凉磁盘区域中哪个或哪些区域来执行所述资源重新分配。
6.根据权利要求5所述的方法,其中所述确定与所述增强相邻矩阵中的元素的最大值对应的磁盘对包括:
存在与所述最大值对应的多个磁盘对的情况下,按照以下优先级来确定所述磁盘对:
包含负荷水平位于所述热磁盘区域的磁盘的磁盘对;
包含负荷水平位于所述冷磁盘区域的磁盘的磁盘对;以及
包含负荷水平最高的磁盘的磁盘对。
7.根据权利要求5所述的方法,其中基于所述磁盘对的负荷水平,针对所述磁盘对其中一个执行资源重新分配包括:
响应于确定所述磁盘对中至少一个磁盘的负荷水平位于所述热磁盘区域,
将所述磁盘对中负荷水平较高的磁盘确定为源磁盘,
将所述磁盘对之外的其他磁盘中负荷水平最低的磁盘作为目标磁盘,
确定所述源磁盘中的源磁盘区段,所述源磁盘区段是与所述磁盘对中负荷水平较低的磁盘相邻但与所述目标磁盘不相邻的磁盘区段中负荷水平最高的磁盘区段;以及
针对所述源磁盘区段和所述目标磁盘执行资源重新分配。
8.根据权利要求5所述的方法,其中基于所述磁盘对的负荷水平,针对所述磁盘对其中一个执行资源重新分配包括:
响应于确定所述磁盘对中至少一个磁盘的负荷水平位于所述冷磁盘区域,
将所述磁盘对中负荷水平较低的磁盘作为源磁盘,
将所述磁盘对之外的其他磁盘中负荷水平最高的磁盘作为目标磁盘,
确定所述源磁盘中的源磁盘区段,其中所述源磁盘区段是与所述磁盘对中负荷水平较高的磁盘相邻但与所述目标磁盘不相邻的磁盘区段中负荷水平最低的磁盘区段;
确定所述目标磁盘中的目标磁盘区段,其中所述目标磁盘区段是与所述磁盘对中的磁盘均不相邻的磁盘区段中负荷水平最高的磁盘区段;以及
针对所述源磁盘区段和所述目标磁盘区段执行资源重新分配。
9.根据权利要求4所述的方法,其中基于所述磁盘对的负荷水平,针对所述磁盘对其中一个执行资源重新分配包括:
响应于确定所述磁盘对中至少一个磁盘的负荷水平位于所述温磁盘区域,
将所述磁盘对中负荷水平较高的磁盘确定为源磁盘,
将所述磁盘对之外的其他磁盘中负荷水平最低的磁盘作为目标磁盘,
确定所述源磁盘中的源磁盘区段,所述源磁盘区段是与所述磁盘对中负荷水平较低的磁盘相邻但与所述目标磁盘不相邻的磁盘区段中负荷水平最高的磁盘区段;以及
针对所述源磁盘区段和所述目标磁盘执行资源重新分配。
10.根据权利要求4所述的方法,其中基于所述磁盘对的负荷水平,针对所述磁盘对其中一个执行资源重新分配包括:
响应于确定所述磁盘对中至少一个磁盘的负荷水平位于所述凉磁盘区域,
将所述磁盘对中负荷水平较低的磁盘作为源磁盘,
将所述磁盘对之外的其他磁盘中负荷水平最高的磁盘作为目标磁盘,
确定所述源磁盘中的源磁盘区段,其中所述源磁盘区段是与所述磁盘对中负荷水平较高的磁盘相邻但与所述目标磁盘不相邻的磁盘区段中负荷水平最低的磁盘区段;
确定所述目标磁盘中的目标磁盘区段,其中所述目标磁盘区段是与所述磁盘对中的磁盘均不相邻的磁盘区段中负荷水平最高的磁盘区段;以及
针对所述源磁盘区段和所述目标磁盘区段执行资源重新分配。
11.根据权利要求5至10其中任一项所述的方法,其中按照以下优先级来确定所述源磁盘:
所述磁盘对中负荷水平位于热磁盘区域且负荷水平最高的磁盘,或所述磁盘对中负荷水平位于冷磁盘区域且负荷水平最低的磁盘;
所述磁盘对中负荷水平位于所述温磁盘区域且负荷水平最高的磁盘;以及
所述磁盘对中负荷水平位于所述凉磁盘区域且负荷水平最低的磁盘。
12.一种用于针对磁盘系统执行资源重新分配的装置,包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述装置:
根据多个磁盘的磁盘区段被分配的情况和所述多个磁盘的磨损水平,确定表征所述磁盘区段在所述多个磁盘上的分布均匀性以及所述多个磁盘的磨损水平两者的增强相邻矩阵;以及
基于所述增强相邻矩阵来对所述多个磁盘执行资源重新分配操作。
13.根据权利要求12所述的装置,其中所述确定所述增强相邻矩阵包括:
通过利用权重值调整原始相邻矩阵的各个元素,来确定所述增强相邻矩阵的相应元素,
其中所述原始相邻矩阵表征所述磁盘区段在所述多个磁盘上的分布均匀性,以及
其中所述权重值基于所述多个磁盘的理想磨损水平、与所述原始相邻矩阵的各个元素对应的各个磁盘对的各自磨损水平而确定。
15.根据权利要求12-14其中任一项所述的装置,其中所述基于所述增强相邻矩阵来对所述多个磁盘执行资源重新分配操作包括:
确定与所述增强相邻矩阵中的元素的最大值对应的磁盘对;以及
基于所述磁盘对的负荷水平,将所述磁盘对其中一个作为源磁盘执行资源重新分配。
16.根据权利要求15所述的装置,其中负荷水平被划分预定容限区域、在所述预定容限区域以上的热磁盘区域以及在所述预定容限区域以下的冷磁盘区域,其中所述预定容限区域进一步被划分为在预定负荷水平以上的温磁盘区域和在所述预定负荷水平以下的凉磁盘区域;以及
其中根据所述磁盘对中的两个磁盘的负荷水平处于所述热磁盘区域、所述冷磁盘区域、所述温磁盘区域和所述凉磁盘区域中哪个或哪些区域来执行所述资源重新分配。
17.根据权利要求15所述的装置,其中所述确定与所述增强相邻矩阵中的元素的最大值对应的磁盘对包括:
存在与所述最大值对应的多个磁盘对的情况下,按照以下优先级来确定所述磁盘对:
包含负荷水平位于所述热磁盘区域的磁盘的磁盘对;
包含负荷水平位于所述冷磁盘区域的磁盘的磁盘对;以及
包含负荷水平最高的磁盘的磁盘对。
18.根据权利要求16所述的装置,其中基于所述磁盘对的负荷水平,针对所述磁盘对其中一个执行资源重新分配包括:
响应于确定所述磁盘对中至少一个磁盘的负荷水平位于所述热磁盘区域,
将所述磁盘对中负荷水平较高的磁盘确定为源磁盘,
将所述磁盘对之外的其他磁盘中负荷水平最低的磁盘作为目标磁盘,
确定所述源磁盘中的源磁盘区段,所述源磁盘区段是与所述磁盘对中负荷水平较低的磁盘相邻但与所述目标磁盘不相邻的磁盘区段中负荷水平最高的磁盘区段;以及
针对所述源磁盘区段和所述目标磁盘执行资源重新分配。
19.根据权利要求16所述的装置,其中基于所述磁盘对的负荷水平,针对所述磁盘对其中一个执行资源重新分配包括:
响应于确定所述磁盘对中至少一个磁盘的负荷水平位于所述冷磁盘区域,
将所述磁盘对中负荷水平较低的磁盘作为源磁盘,
将所述磁盘对之外的其他磁盘中负荷水平最高的磁盘作为目标磁盘,
确定所述源磁盘中的源磁盘区段,其中所述源磁盘区段是与所述磁盘对中负荷水平较高的磁盘相邻但与所述目标磁盘不相邻的磁盘区段中负荷水平最低的磁盘区段;
确定所述目标磁盘中的目标磁盘区段,其中所述目标磁盘区段是与所述磁盘对中的磁盘均不相邻的磁盘区段中负荷水平最高的磁盘区段;以及
针对所述源磁盘区段和所述目标磁盘区段执行资源重新分配。
20.根据权利要求16所述的装置,其中基于所述磁盘对的负荷水平,针对所述磁盘对其中一个执行资源重新分配包括:
响应于确定所述磁盘对中至少一个磁盘的负荷水平位于所述温磁盘区域,
将所述磁盘对中负荷水平较高的磁盘确定为源磁盘,
将所述磁盘对之外的其他磁盘中负荷水平最低的磁盘作为目标磁盘,
确定所述源磁盘中的源磁盘区段,所述源磁盘区段是与所述磁盘对中负荷水平较低的磁盘相邻但与所述目标磁盘不相邻的磁盘区段中负荷水平最高的磁盘区段;以及
针对所述源磁盘区段和所述目标磁盘执行资源重新分配。
21.根据权利要求16所述的装置,其中基于所述磁盘对的负荷水平,针对所述磁盘对其中一个执行资源重新分配包括:
响应于确定所述磁盘对中至少一个磁盘的负荷水平位于所述凉磁盘区域,
将所述磁盘对中负荷水平较低的磁盘作为源磁盘,
将所述磁盘对之外的其他磁盘中负荷水平最高的磁盘作为目标磁盘,
确定所述源磁盘中的源磁盘区段,其中所述源磁盘区段是与所述磁盘对中负荷水平较高的磁盘相邻但与所述目标磁盘不相邻的磁盘区段中负荷水平最低的磁盘区段;
确定所述目标磁盘中的目标磁盘区段,其中所述目标磁盘区段是与所述磁盘对中的磁盘均不相邻的磁盘区段中负荷水平最高的磁盘区段;以及
针对所述源磁盘区段和所述目标磁盘区段执行资源重新分配。
22.根据权利要求16至21其中任一项所述的装置,其中按照以下优先级来确定所述源磁盘:
所述磁盘对中负荷水平位于热磁盘区域且负荷水平最高的磁盘,或所述磁盘对中负荷水平位于冷磁盘区域且负荷水平最低的磁盘;
所述磁盘对中负荷水平位于所述温磁盘区域且负荷水平最高的磁盘;以及
所述磁盘对中负荷水平位于所述凉磁盘区域且负荷水平最低的磁盘。
23.一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1-11中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811291316.5A CN111124271B (zh) | 2018-10-31 | 2018-10-31 | 用于针对磁盘系统执行资源重新分配的方法、装置和介质 |
US16/575,475 US11320996B2 (en) | 2018-10-31 | 2019-09-19 | Methods, apparatuses and computer program products for reallocating resource in a disk system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811291316.5A CN111124271B (zh) | 2018-10-31 | 2018-10-31 | 用于针对磁盘系统执行资源重新分配的方法、装置和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124271A true CN111124271A (zh) | 2020-05-08 |
CN111124271B CN111124271B (zh) | 2023-09-08 |
Family
ID=70326254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811291316.5A Active CN111124271B (zh) | 2018-10-31 | 2018-10-31 | 用于针对磁盘系统执行资源重新分配的方法、装置和介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11320996B2 (zh) |
CN (1) | CN111124271B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112748852B (zh) * | 2019-10-30 | 2024-05-24 | 伊姆西Ip控股有限责任公司 | 用于管理盘的方法、电子设备和计算机程序产品 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130179631A1 (en) * | 2010-11-02 | 2013-07-11 | Darren J. Cepulis | Solid-state disk (ssd) management |
CN105843781A (zh) * | 2015-02-02 | 2016-08-10 | 国际商业机器公司 | 执行大型稀疏矩阵运算中用于缓存效率的矩阵排序的方法和系统 |
US20160239420A1 (en) * | 2015-02-16 | 2016-08-18 | Dell Products L.P. | System and method for managing a cache pool |
US9535779B1 (en) * | 2014-07-25 | 2017-01-03 | Emc Corporation | Method and system for predicting redundant array of independent disks (RAID) vulnerability |
CN107861829A (zh) * | 2017-11-06 | 2018-03-30 | 郑州云海信息技术有限公司 | 一种磁盘故障检测的方法、系统、装置及存储介质 |
CN108228085A (zh) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9135160B1 (en) * | 2011-03-28 | 2015-09-15 | Rambus Inc. | Devices, systems, and methods for wear leveling memory |
US10642505B1 (en) * | 2013-01-28 | 2020-05-05 | Radian Memory Systems, Inc. | Techniques for data migration based on per-data metrics and memory degradation |
US9703664B1 (en) | 2015-06-24 | 2017-07-11 | EMC IP Holding Company LLC | Self adaptive workload classification and forecasting in multi-tiered storage system using ARIMA time series modeling |
CN106933492B (zh) * | 2015-12-30 | 2020-05-22 | 伊姆西Ip控股有限责任公司 | 有助于固态硬盘的磨损平衡的方法和装置 |
US9940033B1 (en) | 2015-12-30 | 2018-04-10 | EMC IP Holding Company LLC | Method, system and computer readable medium for controlling performance of storage pools |
US20170212705A1 (en) * | 2016-01-26 | 2017-07-27 | Netapp, Inc. | Dynamic Weighting for Distributed Parity Device Layouts |
US10809931B1 (en) | 2016-06-24 | 2020-10-20 | EMC IP Holding Company LLC | Techniques for use with physical media types having varying allowable write quotas |
US10254970B1 (en) | 2016-06-30 | 2019-04-09 | EMC IP Holding Company LLC | System, method and computer readable medium for obtaining consistent read performance for a plurality of flash drives or raid groups using workload and capacity limits |
US10521302B1 (en) | 2017-08-04 | 2019-12-31 | EMC IP Holding Company LLC | Managing mapped raid extents in data storage systems |
CN115061624A (zh) * | 2018-01-18 | 2022-09-16 | 伊姆西Ip控股有限责任公司 | 分配存储的方法、电子设备、存储系统和计算机程序产品 |
CN110058789B (zh) * | 2018-01-18 | 2022-06-03 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、存储系统以及计算机程序产品 |
-
2018
- 2018-10-31 CN CN201811291316.5A patent/CN111124271B/zh active Active
-
2019
- 2019-09-19 US US16/575,475 patent/US11320996B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130179631A1 (en) * | 2010-11-02 | 2013-07-11 | Darren J. Cepulis | Solid-state disk (ssd) management |
US9535779B1 (en) * | 2014-07-25 | 2017-01-03 | Emc Corporation | Method and system for predicting redundant array of independent disks (RAID) vulnerability |
CN105843781A (zh) * | 2015-02-02 | 2016-08-10 | 国际商业机器公司 | 执行大型稀疏矩阵运算中用于缓存效率的矩阵排序的方法和系统 |
US20160239420A1 (en) * | 2015-02-16 | 2016-08-18 | Dell Products L.P. | System and method for managing a cache pool |
CN108228085A (zh) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和设备 |
CN107861829A (zh) * | 2017-11-06 | 2018-03-30 | 郑州云海信息技术有限公司 | 一种磁盘故障检测的方法、系统、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20200133535A1 (en) | 2020-04-30 |
US11320996B2 (en) | 2022-05-03 |
CN111124271B (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3433737B1 (en) | Memory sharing for working data using rdma | |
Strunk | Hybrid Aggregates: Combining SSDs and HDDs in a single storage pool | |
Tai et al. | Improving flash resource utilization at minimal management cost in virtualized flash-based storage systems | |
US9811465B2 (en) | Computer system and cache control method | |
US10956069B2 (en) | Positional indexing for a tiered data storage system | |
CN107430529B (zh) | 大型内存数据库的负载均衡的装置 | |
EP3089039B1 (en) | Cache management method and device | |
CN107077300A (zh) | 用于平衡分段清除与i/o工作负载的速率匹配技术 | |
TW201732603A (zh) | 剖析快取替代 | |
US9823875B2 (en) | Transparent hybrid data storage | |
JP2000187617A (ja) | ディスクアレイ装置におけるキャッシュメモリ管理方法 | |
CN106534308A (zh) | 一种分布式存储系统中解决数据块访问热点的方法及装置 | |
JP2007249468A (ja) | Cpu割当方法、cpu割当プログラム、cpu割当装置、および、データベース管理システム | |
KR20190063378A (ko) | 이종 가상화 클라우드 캐시 환경에서의 동적 캐시분할 관리자 | |
Scolari et al. | A software cache partitioning system for hash-based caches | |
US11928061B2 (en) | Cache management method and apparatus | |
CN111124271B (zh) | 用于针对磁盘系统执行资源重新分配的方法、装置和介质 | |
Maruf et al. | Memtrade: A disaggregated-memory marketplace for public clouds | |
CN109725835A (zh) | 用于管理盘阵列的方法、设备和计算机程序产品 | |
Zhou et al. | Hierarchical consistent hashing for heterogeneous object-based storage | |
CN101859282B (zh) | 基于双重跟踪的虚拟化平台的磁盘页面换入的方法 | |
Fujishima et al. | Hadoop I/O Performance Improvement by File Layout Optimization | |
Panwar et al. | A case for protecting huge pages from the kernel | |
Lee et al. | WALTZ: Leveraging zone append to tighten the tail latency of LSM tree on ZNS SSD | |
JP2014010604A (ja) | ストレージ装置とプログラムと方法 |
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 |