CN104951245A - 用于动态存储分层的方法和装置 - Google Patents
用于动态存储分层的方法和装置 Download PDFInfo
- Publication number
- CN104951245A CN104951245A CN201410136587.9A CN201410136587A CN104951245A CN 104951245 A CN104951245 A CN 104951245A CN 201410136587 A CN201410136587 A CN 201410136587A CN 104951245 A CN104951245 A CN 104951245A
- Authority
- CN
- China
- Prior art keywords
- layer
- density
- data
- density threshold
- described 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
Links
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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- 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/0653—Monitoring storage devices or 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/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/068—Hybrid storage device
-
- 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/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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/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
Abstract
本发明的实施例提供了一种用于动态存储分层的方法和装置。所述方法包括:根据数据的温度来计算该数据的密度,并且使温度越高的数据的密度越小;获取各层的密度阈值,其中上层的密度阈值小于下层的密度阈值;将该数据的密度与各层的密度阈值相比较,来确定该数据应当被移动至哪个层;以及将该数据移动至所确定的层。利用本发明的各个实施例,可以提供一种具有更高的灵活性和可扩展性的动态存储分层方案。
Description
技术领域
本发明的实施例一般性地涉及数据存储领域,并且更特别地涉及基于浮力因子的动态存储分层方法和装置。
背景技术
用于虚拟池的完全自动存储分层(FAST VP)技术自动地优化存储池,并且确保活动数据被固态硬盘(SSD)所服务,而冷数据被移动至更低成本的磁盘层。
在当前的自动分层策略引擎中,所采用的算法具有如下的特点:因为更新温度结果仅需要当前的IO活动性和最近的温度,所以该算法的计算成本低。该算法向较新的IO活动性历史给予较高的权重(平滑因子),并且向较旧的IO活动性历史给予较低的权重。平滑因子能够容易地被调节,以改进对数据温度的预测准确度。该算法有效地减少了数据的IO活动性采样数据的抖动。该算法还支持可变的采样间隔,而不具有温度计算结构的偏斜。
但是,现有的自动存储分层技术仍然存在一些缺点。特别是,现有的自动存储分层技术的灵活性和可扩展性不足。具体地说,在进行磁盘的扩展,诸如将更多的闪存盘添加至存储池中的情况下,闪存层可以包含更多的热数据,但是在现有的解决方案中,由于分层模型是固定的,导致闪存层并不能相应地存放更多的热数据。此外,如果需要添加更多的层,在现有的解决方案中,需要改变代码来适应新的分层结构。
发明内容
鉴于现有技术中存在的问题,本发明的各个实施例提供了一种基于浮力因子的动态存储分层方法和装置。本发明的实施例利用了浮力的原理,分别计算数据的密度以及各层的密度,数据的位置取决于数据的密度与各层的密度阈值之间的相对关系,密度较小的数据相应地移动至密度阈值较小的层。在计算各层的密度阈值中,本发明的实施例考虑了各层的存储容量以及剩余存储容量。因此,在各层的存储设备的容量或者剩余容量发生变化时,各层的密度阈值将随之改变,从而动态地调整了存储池的分层结构,提高了灵活性以及可扩展性。
本发明的实施例提供了一种用于动态存储分层的方法,包括:根据数据的温度来计算该数据的密度,并且使温度越高的数据的密度越小;获取各层的密度阈值,其中上层的密度阈值小于下层的密度阈值;将该数据的密度与各层的密度阈值相比较,来确定该数据应当被移动至哪个层;以及将该数据移动至所确定的层。
根据本发明的一个实施例,该方法进一步包括:检测所确定的层是否具有足够的存储容量用于移动该数据,以将该数据移动至所确定的层。
根据本发明的一个实施例,该方法进一步包括:如果所确定的层不具有足够的存储容量,则根据所确定的层的剩余存储容量来更新各层的密度阈值;将该数据的密度与更新后的各层的密度阈值相比较,来重新确定该数据应当被移动至哪个层;以及将该数据移动至该重新确定的层。
根据本发明的一个实施例,其中从存储器中读取各层的密度阈值。
根据本发明的一个实施例,其中根据各层的物理存储设备的类型、各层的存储容量和剩余存储容量来计算各层的密度,然后根据所计算的各层的密度来计算各层的密度阈值,并且将各层的密度阈值存储在该存储器中。
根据本发明的一个实施例,该方法进一步包括:当该物理存储设备发生变化时,根据该物理存储设备的新的类型、各层的存储容量和该剩余存储容量,来重新计算各层的密度,然后根据更新后的各层的密度来重新计算各层的密度阈值,并且将各层的密度阈值存储在该存储器中。
根据本发明的一个实施例,其中将该数据的密度与各层的密度阈值相比较,来确定该数据应当被移动至哪个层进一步包括:如果该数据的密度小于某个层的密度阈值并且大于该层的上一层的密度阈值,则确定该数据应当被存储至该层。
根据本发明的一个实施例,其中按照下式来计算该数据的密度:其中ρdata是该数据的密度,T是该数据的温度,β是根据经验所导出的调节因子。
根据本发明的一个实施例,其中按照下式来计算该数据温度:其中T表示当前所计算的数据的温度;Δt是先前采样时间与当前采样时间之间的持续时间;T′是在Δt时间之前的先前所计算的数据温度;α是衰减因子,其从温度指数半衰期导出;ΔH是在先前采样时间与当前采样时间之间的数据I/O活动性;e是自然常数。
根据本发明的一个实施例,其中按照下式来计算各层的密度:ρi=(β′Tyi+α′Ci)·ΔC′i,其中ρi是第i层的密度;Tyi是代表第i层的物理存储类型的值,其根据应用环境针对不同的物理存储类型设定为不同的取值;β′是存储类型调节因子,其根据经验所导出;Ci是第i层的存储容量;α′是容量调整因子,其根据经验所导出;以及ΔC′i是第i层的剩余容量因子,其随着第i层的剩余容量而变化。
根据本发明的一个实施例,其中ΔC′i按照以下方式来确定:当ΔCi≥θ时,ΔC′i=1;当ΔCi<θ时,其中ΔCi是第i层的剩余存储容量,θ是由用户所设置的ΔCi的阈值。
根据本发明的一个实施例,其中按照下式来计算各层的密度阈值:σi=ρi-1+ρi,其中σi是第i层的密度阈值,并且ρ0=0,σ0=0。
根据本发明的一个实施例,其中将该数据的密度与各层的密度阈值相比较来确定该数据应当被移动至哪个层进一步包括:如果σi-1<ρdata<σi,则确定该数据应当被移动至第i层。
根据本发明的一个实施例,其中该动态存储分层分为三层。
根据本发明的一个实施例,该方法进一步包括:设置一个定时,在该定时到期后,将多个数据逐个地移动至对应的层。
本发明的实施例还提供了一种用于动态存储分层的装置,包括:第一计算单元,被配置为根据数据的温度来计算该数据的密度,并且使温度越高的数据的密度越小;获取单元,被配置为获取各层的密度阈值,其中上层的密度阈值小于下层的密度阈值;确定单元,被配置为将该数据的密度与各层的密度阈值相比较,来确定该数据应当被移动至哪个层;以及移动单元,被配置为将该数据移动至所确定的层。
利用本发明的各个实施例,可以提供一种具有更高的灵活性和可扩展性的动态存储分层方案。特别是在扩展磁盘的情形中,诸如向存储池添加新的闪存盘时,相比现有技术中固定的层结构,在本发明的实施例所提供的分层结构中,被扩展的闪存层的层密度会相应地改变,从而更多的热数据能够自动地被移动至闪存层。此外,如果需要添加更多的层,本发明的实施例所提供的分层结构的代码不需要进行任何改变。
附图说明
通过参考附图阅读下文的详细描述,本发明实施例的上述以及其他目的、特征和优点将变得容易理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施例,其中:
图1示出了根据本发明的实施例的用于动态存储分层的方法的流程图;
图2示出了根据本发明的实施例的分层结构图;
图3示出了根据本发明的另一个实施例的用于动态存储分层的方法的流程图;
图4示出了根据本发明的又一个实施例的用于动态存储分层的方法的流程图;
图5示出了根据本发明的实施例的用于当存储设备改变时更新层密度阈值的方法的流程图;以及
图6示出了根据本发明的实施例的用于动态存储分层的装置的框图。
具体实施方式
下文将参考附图中所示出的若干示例性实施例来描述本发明的原理和精神。应当理解,描述这些实施例仅仅是为了使本领域的技术人员能够更好地理解并实现本发明,而并非以任何方式限制本发明的范围。
图1示出了根据本发明的实施例的用于动态存储分层的方法100的流程图。本领域的技术人员应当理解,方法100中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。方法100还可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
在步骤101中,根据数据的数据温度来计算该数据的密度,并且使数据温度越高的数据的密度越小。
在本发明的实施例中,数据温度指的是与数据活动性的频繁程度、被访问的次数、或者停留时间相关联的参数。温度高的数据,即热数据,指的是活动频繁、被访问的次数多、或者停留时间短的数据;而温度低的数据,即冷数据,指的是活动不频繁、被访问的次数少、或者停留时间长的数据。
现有技术中提出了一些计算数据温度的方法。此外,在现有技术中,根据计算得出的数据温度,数据相应地被移动至各个数据层中,热数据移动至较高的层,而冷数据移动至较低的层。
为了利用浮力因子来改进现有技术中的自动分层存储技术,本发明的实施例创新性地对数据引入了“密度”的概念,而相应地对每个层也引入了“密度阈值”的概念。如此,数据就类似具有“浮力”一样,依据其密度与各个层的密度阈值之间的关系,自动地被移动至相应的层中。
根据本发明的一个实施例,数据的密度可以根据数据的温度来计算,并且使温度越高的数据具有越小的密度。如此,越热的数据密度越小,从而可以被移动至更上方的层中;而越冷的数据密度越大,从而可以被移动至更下方的层中。
根据本发明的另一个实施例,数据密度可以与数据温度成反比,即其中ρdata是数据密度,T是数据温度,β是根据经验所导出的调节因子。
根据本发明的又一个实施例,数据温度使用如下的公式来计算:其中T表示当前所计算的数据的温度;Δt是先前采样时间与当前采样时间之间的持续时间;T′是在Δt时间之前的先前所计算的数据温度;α是衰减因子,其从温度指数半衰期导出;ΔH是在先前采样时间与当前采样时间之间的数据的I/O活动性;e是自然常数。
应当理解,不偏离本发明的精神和范围,本领域的技术人员可以根据各种方法来计算数据的温度,也可以根据具体的应用环境设计出相应的根据数据温度来计算数据密度的公式。本发明的范围在这些方面不受限制。
在步骤102中,获取各层的密度阈值,其中上层的密度阈值小于下层的密度阈值。
根据本发明的实施例,为了将浮力因子应用至自动分层的存储技术,除了对数据引用“密度”的概念之外,还需要对各个存储层也相应地引用“密度阈值”的概念,并且建立各个存储层上下依次排列的体系结构。具体地说,为了实现密度越小的数据被储存至越上方的层,应当使上层的密度阈值小于下层的密度阈值。如此,可以依据数据的密度与各层的密度阈值之间的关系,来将数据移动至所对应的层。
根据本发明的一个实施例,可以从存储器中读取各层的密度阈值,该存储器中存放有先前所计算得到的各层的密度阈值。
根据本发明的一个实施例,可以根据各层的密度来计算各层的密度阈值并且将各层的密度阈值存储在存储器中,以便在将数据移动至相应的层中的过程中获取各层的密度阈值来与数据的密度进行比较,最终确定数据应当被移动至哪个层。
根据本发明的一个实施例,存储池的分层结构分为三层,如图2所示。在图2中,最上方的层是层1,往下依次是层2和层3,层1与层2之间的分界σi是层1的密度阈值,层2与层3之间的分界σ2是层2的密度阈值。根据一个优选的实施例,可以将层1的下限阈值σ0设定为零。根据另一个优选的实施例,由于层3是最底层,为了避免出现数据无处可放的问题,还可以将层3的阈值设定为正无穷。备选地,也可以将作为最底层的层3的密度阈值设置为σ3=ρ1+ρ2+ρ3,同时相应地规定数据的密度的最大取值为ρ1+ρ2+ρ3。应当理解,以上的这种取值仅是示例性的,本领域的技术人员可以根据具体的应用环境将它们设定为其他取值,并且相应地对数据的密度取值进行限制。还应当理解,将分层结构设置为三层也仅是一种示例,本发明可以适用任意层数的分层结构。
根据本发明的一个实施例,可以按照下式来计算各层的密度阈值:σi=ρi-1+ρi,其中σi是第i层的密度阈值;ρi是第i层的层密度,其计算方法将在下文进行详细描述;并且设定ρ0=0,σ0=0。还是参考图2,根据这种计算方法,第一层的密度阈值是σ1=ρ1,第二层的密度阈值是σ2=ρ1+ρ2。注意,在图2的示例中,存储池被分为三层,也就是说,第三层是最底层,因此在图2的示例中,σ3=∞。但是,应当理解,如果还存在第四层或者更高的层,则第三层的密度阈值设置为σ3=ρ1+ρ2+ρ3,第四层的密度阈值设置为σ4=ρ1+ρ2+ρ3+ρ4,等等。当然,也可以按照备选的方式将最底层的密度阈值不设置为正无穷,而相应地将数据的密度的最大取值规定为最底层的密度阈值。
应当理解,不偏离本发明的精神和范围,本领域的技术人员可以根据各种方法来根据各层的密度来计算密度阈值,也可以根据具体的应用环境设计出调整计算各层的密度的具体公式。本发明的范围在这些方面不受限制。
根据本发明的一个实施例,可以不带限制地根据各层的物理存储设备的类型Tyi、各层的存储容量Ci和剩余存储容量ΔCi等参数来计算各层的密度ρi。在数据存储中,通常使用存取速度较快的存储器来存储热数据,而使用存取速度较慢的存储器来存储冷数据。因此,可以在计算各层的密度时考虑物理设备存储的类型。此外,在数据存储中,通常大数据不会被经常访问而具有较低的温度,而大数据应当使用大容量的存储层进行存储。因此,可以在计算各层的密度时考虑各层的存储容量Ci。如下文将会详细描述地,根据这种计算各层的密度ρi的方法,当某个层的容量发生变化时,诸如增加新的存储设备或者减少原有的存储设备时,相应的存储层的密度可以随之发生变化,从而根据本发明的实施例的自动分层结构可以具有更大的灵活性和可扩展性。进一步地,在计算各层的密度ρi时,还考虑了该层的剩余容量ΔCi。从而各层的密度ρi还可以随着剩余容量ΔCi的变化而改变,进一步增加了根据本发明的实施例的自动分层结构的灵活性。
根据本发明的另一个实施例,可以按照下式来计算各层的密度:ρi=(β′Tyi+α′Ci).ΔC′i,其中ρi是第i层的密度;Tyi是代表第i层的物理存储类型的值,其根据应用环境针对不同的物理存储类型设定为不同的取值;β′是存储类型调节因子,其根据经验所导出;Ci是第i层的存储容量;α′是容量调整因子,其根据经验所导出;以及ΔC′i是第i层的剩余容量因子,其随着第i层的剩余容量而变化。
根据本发明的另一个实施例,ΔC′i可以按照以下的方式来确定:当ΔCi≥θ时,ΔC′i=1;当ΔCi<θ时,其中ΔCi是第i层的剩余存储容量;θ是由用户所设置的ΔCi的阈值,用户可以根据自己的实际应用环境和要求来设置阈值θ的值,如果某层的剩余容量小于阈值θ时,就开始按比例减小该层的密度。
应当理解,不偏离本发明的精神和范围,本领域的技术人员可以根据各种方法来计算各层的密度,诸如根据更多或者更少的参数来计算各层的密度,也可以根据具体的应用环境设计出根据各个参数来计算各层的密度的具体公式。另外,不偏离本发明的精神和范围,本领域的技术人员还可以根据层剩余容量设计出与本发明所描述的实施例中所描述的层剩余容量因子不同的层剩余容量因子。本发明的范围在这些方面不受限制。
在步骤103中,将数据的密度与各层的密度阈值相比较,来确定数据应当被移动至哪个层。
根据本发明的一个实施例,如果数据密度小于某个层的密度阈值并且大于该层的上一层的密度阈值,则确定数据应当被存储至该层。也就是说,如果σi-1<ρdata<σi,则确定数据应当被移动至第i层,同时假设σ0=0。
根据本发明的另一个实施例,也可以通过数据的密度与各层的密度阈值之间的比例关系来确定数据应当被移动至哪个层。
应当理解,不偏离本发明的精神和范围,本领域的技术人员还能够设计出其他的方式,来通过将数据的密度与各层的密度阈值相比较来确定数据应当被移动至哪个层。本发明的范围在这个方面不受限制。
在步骤104中,将数据移动至所确定的层。将数据移动至相应存储层的方法为本领域的技术人员所熟知,此处不再描述其具体的操作方法和技术细节。
图3示出了根据本发明的另一个实施例的用于动态存储分层的方法300的流程图。本领域的技术人员应当理解,方法300中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。方法300还可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
图3中的步骤301-303与图1中的步骤101-103相同,此处不再赘述。下文仅描述方法300与方法100的不同之处。由于在步骤302中,所获取的密度阈值可能是在先前的某个时候根据各层当时的剩余容量等参数所计算出的各层的密度阈值,因此在移动当前数据时可能会出现所确定的层的剩余容量不足以存放当前数据的情况。
基于这种考虑,根据本发明的一个实施例,方法300在将数据移动至所确定的层之前设置了一个检测步骤,即步骤304。在步骤304中,检测确定的层是否具有足够的存储容量用于移动数据,以将数据移动至确定的层。
如果在步骤304中,检测出所确定的层具有足够的存储容量,则方法300前进至步骤305。在步骤305中,将该数据移动至所确定的层。
如果在步骤304中,检测出确定的层不具有足够的存储容量,则方法300前进至步骤306。在步骤306中,根据该层新的剩余存储容量来更新各层的密度阈值。
根据本发明的一个实施例,可以根据该层的物理存储设备的类型、该层的存储容量和新的剩余存储容量等参数来计算该层的新层密度。然后,可以根据各层的层密度来计算各层的密度阈值。
在更新了各层的密度阈值之后,方法300又回到步骤302。在步骤302中,获取各层的新密度阈值。
接着,方法300前进至步骤303。在步骤303中,将该数据的密度与更新后的各层的密度阈值相比较,来重新确定该数据应当被移动至哪个层。
然后,方法300再次来到步骤304。由于已经更新了各层的阈值,此时在步骤304中必然检测出该重新确定的层具有足够的存储容量来存储该数据。
最后,方法300前进至步骤305。在步骤305中,将该数据移动至该重新确定的层。
图4示出了根据本发明的另一个实施例的用于动态存储分层的方法400的流程图。本领域的技术人员应当理解,方法400中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。方法400还可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
方法400用于一次性批量地处理多个数据的移动和重扫描,方法400与方法100和方法300相比的优点在于,用户可以选择系统不太繁忙的时段来将多个数据移动至对应的层中,从而避免由于移动数据所占用的资源而影响系统的其他操作。
根据本发明的一个实施例,可以在用户所设置的一个定时到期之后执行方法400,将多个数据逐个地移动至对应的层。根据本发明的一个优选实施例,在执行方法400之前,从存储器中取出所有需要移动的数据,并开始方法400。
方法400在开始之后前进至步骤401。在步骤401中,检测是否已经将所有需要移动的数据移动至所对应的层。
如果在步骤401中,检测出还没有将所有需要移动的数据移动至所对应的层,则方法400前进至步骤402之后再前进至后续的步骤。方法400中的步骤402-407与方法300中的步骤301-306相同,此处不再对步骤402-407进行详细的描述。
如果在步骤401中,检测出已经将所有需要移动的数据移动至所对应的层,则方法400结束。
图5示出了根据本发明的实施例的用于当存储设备改变时更新层密度阈值的方法的流程图。本领域的技术人员应当理解,方法500中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。方法500还可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
方法500用于当存储池中各层的存储设备在运行期间发生改变时,适应性地改变各层的密度阈值。通过方法500,本发明的实施例所提出的动态存储分层的方法和装置的灵活性和可扩展性得到了体现。各层的密度阈值可以随着设备的变化而动态地改变,从而能够存储更多热数据的层能够真正存放更多的热数据,并且当层结构改变时也不需要改变代码。
在步骤501中,根据该物理存储设备的新的类型以及各层的存储容量和剩余存储容量来重新计算各层的密度。
在步骤502中,根据更新后的各层的密度来重新计算各层的密度阈值,并且将更新后的各层的密度阈值存储在该存储器中。
图6示出了根据本发明的实施例的用于动态存储分层的装置600的框图。装置600可以用来执行根据本发明的各个实施例的方法100、300、400和500。
装置600包括第一计算单元601、获取单元602、确定单元603、以及移动单元604。第一计算单元601可以被配置为根据数据的温度来计算该数据的密度,并且使温度越高的数据的密度越小;获取单元602可以被配置为获取各层的密度阈值,其中上层的密度阈值小于下层的密度阈值;确定单元603可以被配置为将该数据的密度与各层的密度阈值相比较,来确定该数据应当被移动至哪个层;以及移动单元604可以被配置为将该数据移动至所确定的层。
根据本发明的一个实施例,装置600可以进一步包括:检测单元605。检测单元605被配置为:检测所确定的层是否具有足够的存储容量用于移动该数据,以将该数据移动至所确定的层。
根据本发明的一个实施例,装置600可以进一步包括:更新单元606。更新单元606被配置为:如果所确定的层不具有足够的存储容量,则根据所确定的层的剩余存储容量来更新各层的密度阈值。
根据本发明的一个实施例,确定单元603可以进一步被配置为:将该数据的密度与更新后的各层的密度阈值相比较,来重新确定该数据应当被移动至哪个层;以及
根据本发明的一个实施例,移动单元604可以进一步被配置为:将该数据移动至该重新确定的层。
根据本发明的一个实施例,获取单元602可以进一步被配置为:从存储器中读取各层的密度阈值。
根据本发明的一个实施例,装置600可以进一步包括:第二计算单元607。第二计算单元607可以被配置为:根据各层的物理存储设备的类型、各层的存储容量和剩余存储容量来计算各层的密度,然后根据计算的各层的密度来计算各层的密度阈值,并且将各层的密度阈值存储在该存储器中。
根据本发明的一个实施例,第二计算单元607可以进一步被配置为:当该物理存储设备发生变化时,根据该物理存储设备的新的类型、各层的存储容量和剩余存储容量,来重新计算各层的密度,然后根据更新后的各层的密度来重新计算各层的密度阈值,并且将各层的密度阈值存储在该存储器中。
根据本发明的一个实施例,确定装置603可以进一步被配置为:如果该数据的密度小于某个层的密度阈值并且大于该层的上一层的密度阈值,则确定该数据应当被存储至该层。
根据本发明的一个实施例,第一计算单元601可以按照下式来计算该数据密度:其中ρdata是该数据密度,T是该数据温度,β是根据经验所导出的调节因子。
根据本发明的一个实施例,第一计算单元601可以按照下式来计算该数据温度:其中T表示当前所计算的数据的温度;Δt是先前采样时间与当前采样时间之间的持续时间;T′是在Δt时间之前的先前所计算的数据温度;α是衰减因子,其从温度指数半衰期导出;ΔH是在先前采样时间与当前采样时间之间的数据I/O活动性;e是自然常数。
根据本发明的一个实施例,第二计算单元607可以按照下式来计算各层的密度:ρi=(β′Tyi+α′Ci).ΔC′i,其中ρi是第i层的密度;Tyi是代表第i层的物理存储类型的值,其根据应用环境针对不同的物理存储类型设定为不同的取值;β′是存储类型调节因子,其根据经验所导出;Ci是第i层的存储容量;α′是容量调整因子,其根据经验所导出;以及ΔC′i是第i层的剩余容量因子,其随着第i层的剩余容量而变化。
根据本发明的一个实施例,第二计算单元607可以按照以下方式来确定ΔC′i:当ΔCi≥θ时,ΔCi=1;当ΔCi<θ时,其中ΔCi是第i层的剩余存储容量,θ是由用户所设置的ΔCi的阈值。
根据本发明的一个实施例,第二计算单元607可以按照下式来计算各层的密度阈值:σi=ρi-1+ρi,其中σi是第i层的密度阈值,并且ρ0=0,σ0=0。
根据本发明的一个实施例,确定单元603可以进一步被配置为:如果σi-1<ρdata<σi,则确定该数据应当被移动至第i层。
根据本发明的一个实施例,装置600可以进一步包括:定时单元608。定时单元608被配置为设置一个定时,在该定时到期后,将多个数据逐个地移动至对应的层。
应当注意,本发明的实施例可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其装置可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
应当注意,尽管在上文详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤组合为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施例描述了本发明,但是应该理解,本发明不限于所公开的具体实施例。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等效布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
Claims (30)
1.一种用于动态存储分层的方法,包括:
根据数据的温度来计算所述数据的密度,并且使温度越高的数据的密度越小;
获取各层的密度阈值,其中上层的密度阈值小于下层的密度阈值;
将所述数据的密度与各层的密度阈值相比较,来确定所述数据应当被移动至哪个层;以及
将所述数据移动至所述确定的层。
2.根据权利要求1所述的方法,进一步包括:
检测所述确定的层是否具有足够的存储容量用于移动所述数据,以将所述数据移动至所述确定的层。
3.根据权利要求2所述的方法,进一步包括:
如果所述确定的层不具有足够的存储容量,则根据所述确定的层的剩余存储容量来更新各层的密度阈值;
将所述数据的密度与更新后的各层的密度阈值相比较,来重新确定所述数据应当被移动至哪个层;以及
将所述数据移动至所述重新确定的层。
4.根据权利要求1-3中的任一项所述的方法,其中从存储器中读取所述各层的密度阈值。
5.根据权利要求4所述的方法,其中根据各层的物理存储设备的类型、各层的存储容量和剩余存储容量来计算各层的密度,然后根据所述计算的各层的密度来计算所述各层的密度阈值,并且将所述各层的密度阈值存储在所述存储器中。
6.根据权利要求5所述的方法,进一步包括:
当所述物理存储设备发生变化时,根据所述物理存储设备的新的类型、所述各层的存储容量和所述剩余存储容量,来重新计算所述各层的密度,然后根据更新后的各层的密度来重新计算所述各层的密度阈值,并且将所述各层的密度阈值存储在所述存储器中。
7.根据权利要求1-3中的任一项所述的方法,其中将所述数据的密度与各层的密度阈值相比较,来确定所述数据应当被移动至哪个层进一步包括:
如果所述数据的密度小于某层的密度阈值并且大于所述层的上一层的密度阈值,则确定所述数据应当被存储至所述层。
8.根据权利要求1-3中的任一项所述的方法,其中按照下式来计算所述数据的密度:其中ρdata是所述数据的密度,T是所述数据的温度,β是根据经验所导出的调节因子。
9.根据权利要求8所述的方法,其中按照下式来计算所述数据温度:其中T表示当前所计算的数据的温度;Δt是先前采样时间与当前采样时间之间的持续时间;T′是在Δt时间之前的先前所计算的数据温度;α是衰减因子,其从温度指数半衰期导出;ΔH是在先前采样时间与当前采样时间之间的数据I/O活动性;e是自然常数。
10.根据权利要求5所述的方法,其中按照下式来计算各层的密度:ρi=(β′Tyi+α′Ci)·ΔC′i,其中ρi是第i层的密度;Tyi是代表第i层的物理存储类型的值,其根据应用环境针对不同的物理存储类型设定为不同的取值;β′是存储类型调节因子,其根据经验所导出;Ci是第i层的存储容量;α′是容量调整因子,其根据经验所导出;以及ΔC′i是第i层的剩余容量因子,其随着第i层的剩余容量而变化。
11.根据权利要求10所述的方法,其中ΔC′i按照以下方式来确定:当ΔCi≥θ时,ΔC′i=1;当ΔCi<θ时,其中ΔCi是第i层的剩余存储容量,θ是由用户所设置的ΔCi的阈值。
12.根据权利要求10所述的方法,其中按照下式来计算各层的密度阈值:σi=ρi-1+ρi,其中σi是第i层的密度阈值,并且ρ0=0,σ0=0。
13.根据权利要求12所述的方法,其中将所述数据的密度与各层的密度阈值相比较,来确定所述数据应当被移动至哪个层进一步包括:
如果σi-1<ρdata<σi,则确定所述数据应当被移动至第i层。
14.根据权利要求1-3中的任一项所述的方法,其中所述动态存储分层分为三层。
15.根据权利要求1-3中的任一项所述的方法,进一步包括:
设置一个定时,在所述定时到期后,将多个数据逐个地移动至对应的层。
16.一种用于动态存储分层的装置,包括:
第一计算单元,被配置为根据数据的温度来计算所述数据的密度,并且使温度越高的数据的密度越小;
获取单元,被配置为获取各层的密度阈值,其中上层的密度阈值小于下层的密度阈值;
确定单元,被配置为将所述数据的密度与各层的密度阈值相比较,来确定所述数据应当被移动至哪个层;以及
移动单元,被配置为将所述数据移动至所述确定的层。
17.根据权利要求16所述的装置,进一步包括:
检测单元,被配置为检测所述确定的层是否具有足够的存储容量用于移动所述数据,以将所述数据移动至所述确定的层。
18.根据权利要求17所述的装置,进一步包括:
更新单元,被配置为如果所述确定的层不具有足够的存储容量,则根据所述确定的层的剩余存储容量来更新各层的密度阈值;并且
所述确定单元进一步被配置为:将所述数据的密度与更新后的各层的密度阈值相比较,来重新确定所述数据应当被移动至哪个层;并且
所述移动单元进一步被配置为:将所述数据移动至所述重新确定的层。
19.根据权利要求16-18中的任一项所述的装置,其中所述获取单元进一步被配置为:从存储器中读取所述各层的密度阈值。
20.根据权利要求19所述的装置,进一步包括:
第二计算单元,被配置为根据各层的物理存储设备的类型、各层的存储容量和剩余存储容量来计算各层的密度,然后根据所述计算的各层的密度来计算所述各层的密度阈值,并且将所述各层的密度阈值存储在所述存储器中。
21.根据权利要求20所述的装置,其中所述第二计算单元进一步被配置为:当所述物理存储设备发生变化时,根据所述物理存储设备的新的类型、所述各层的存储容量和所述剩余存储容量,来重新计算所述各层的密度,然后根据更新后的各层的密度来重新计算所述各层的密度阈值,并且将所述各层的密度阈值存储在所述存储器中。
22.根据权利要求16-18中的任一项所述的装置,其中所述确定装置进一步被配置为:如果所述数据的密度小于某层的密度阈值并且大于所述层的上一层的密度阈值,则确定所述数据应当被存储至所述层。
23.根据权利要求16-18中的任一项所述的装置,其中所述第一计算单元进一步被配置为,按照下式来计算所述数据的密度:其中ρdata是所述数据的密度,T是所述数据温度,β是根据经验所导出的调节因子。
24.根据权利要求23所述的装置,其中所述第一计算单元进一步被配置为,按照下式来计算所述数据温度:其中T表示当前所计算的数据的温度;Δt是先前采样时间与当前采样时间之间的持续时间;T′是在Δt时间之前的先前所计算的数据温度;α是衰减因子,其从温度指数半衰期导出;ΔH是在先前采样时间与当前采样时间之间的数据I/O活动性;e是自然常数。
25.根据权利要求20所述的装置,其中所述第二计算单元被配置为,按照下式来计算各层的密度:ρi=(β′Tyi+α′Ci)·ΔC′i,其中ρi是第i层的密度;Tyi是代表第i层的物理存储类型的值,其根据应用环境针对不同的物理存储类型设定为不同的取值;β′是存储类型调节因子,其根据经验所导出;Ci是第i层的存储容量;α′是容量调整因子,其根据经验所导出;以及ΔC′i是第i层的剩余容量因子,其随着第i层的剩余容量而变化。
26.根据权利要求25所述的装置,其中所述第二计算单元进一步被配置为,按照以下方式来确定ΔC′i:当ΔCi≥θ时,ΔC′i=1;当ΔCi<θ时,其中ΔCi是第i层的剩余存储容量,θ是由用户所设置的ΔCi的阈值。
27.根据权利要求25所述的装置,其中所述第二计算单元进一步被配置为,按照下式来计算各层的密度阈值:σi=ρi-1+ρi,其中σi是第i层的密度阈值,并且ρ0=0,σ0=0。
28.根据权利要求27所述的装置,其中所述确定单元进一步被配置为:如果σi-1<ρdata<σi,则确定所述数据应当被移动至第i层。
29.根据权利要求16-18中的任一项所述的装置,其中所述动态存储分层分为三层。
30.根据权利要求16-18中的任一项所述的装置,进一步包括:
定时单元,被配置为设置一个定时,在所述定时到期后,将多个数据逐个地移动至对应的层。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410136587.9A CN104951245B (zh) | 2014-03-31 | 2014-03-31 | 用于动态存储分层的方法和装置 |
US14/672,889 US10120575B2 (en) | 2014-03-31 | 2015-03-30 | Dynamic storage tiering |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410136587.9A CN104951245B (zh) | 2014-03-31 | 2014-03-31 | 用于动态存储分层的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104951245A true CN104951245A (zh) | 2015-09-30 |
CN104951245B CN104951245B (zh) | 2019-05-31 |
Family
ID=54165927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410136587.9A Active CN104951245B (zh) | 2014-03-31 | 2014-03-31 | 用于动态存储分层的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10120575B2 (zh) |
CN (1) | CN104951245B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213420A (zh) * | 2017-06-29 | 2019-01-15 | 杭州海康威视数字技术股份有限公司 | 数据存储方法、装置及系统 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9459809B1 (en) * | 2014-06-30 | 2016-10-04 | Emc Corporation | Optimizing data location in data storage arrays |
US10127156B1 (en) * | 2016-09-29 | 2018-11-13 | EMC IP Holding Company LLC | Caching techniques |
CN110413545B (zh) * | 2018-04-28 | 2023-06-20 | 伊姆西Ip控股有限责任公司 | 存储管理方法、电子设备和计算机程序产品 |
CN110377228A (zh) * | 2019-06-19 | 2019-10-25 | 深圳壹账通智能科技有限公司 | 区块链节点的自动扩容方法、装置、运维终端及存储介质 |
CN112748853B (zh) | 2019-10-30 | 2024-04-16 | 伊姆西Ip控股有限责任公司 | 用于管理盘的方法、设备和计算机可读介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102713825A (zh) * | 2009-12-16 | 2012-10-03 | 赛门铁克公司 | 在虚拟环境中的存储可视化 |
US20120317355A1 (en) * | 2011-06-07 | 2012-12-13 | Hitachi, Ltd. | Storage apparatus and data management method |
-
2014
- 2014-03-31 CN CN201410136587.9A patent/CN104951245B/zh active Active
-
2015
- 2015-03-30 US US14/672,889 patent/US10120575B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102713825A (zh) * | 2009-12-16 | 2012-10-03 | 赛门铁克公司 | 在虚拟环境中的存储可视化 |
US20120317355A1 (en) * | 2011-06-07 | 2012-12-13 | Hitachi, Ltd. | Storage apparatus and data management method |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213420A (zh) * | 2017-06-29 | 2019-01-15 | 杭州海康威视数字技术股份有限公司 | 数据存储方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
US10120575B2 (en) | 2018-11-06 |
CN104951245B (zh) | 2019-05-31 |
US20150277773A1 (en) | 2015-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104951245A (zh) | 用于动态存储分层的方法和装置 | |
EP3588259B1 (en) | Garbage collection method for storage media, storage medium, and program product | |
KR102519663B1 (ko) | 스토리지 장치, 스토리지 장치를 포함하는 시스템 및 그것의 동작 방법 | |
US9588906B2 (en) | Removing cached data | |
US9983794B2 (en) | Memory device and host device | |
US20110202705A1 (en) | Method and apparatus to manage object based tier | |
CN108139902A (zh) | 用于提供混合模式来访问ssd驱动器的方法和装置 | |
CN106445398B (zh) | 一种基于新型存储器的嵌入式文件系统及其实现方法 | |
US20120117367A1 (en) | Electronic apparatus and booting method thereof | |
CN103140829A (zh) | 对高速缓存和/或插槽敏感的多处理器内核广度优先遍历 | |
US8903804B2 (en) | Data existence judging device and data existence judging method | |
KR102545067B1 (ko) | 로그 구조 파일 시스템의 메타 데이터 저장 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
CA2959647C (en) | Data migration tool with intermediate incremental copies | |
CN110187834B (zh) | 重删副本的数据处理方法、装置、电子设备 | |
CN116432778A (zh) | 一种数据处理的方法、装置、存储介质及电子设备 | |
CN107220248B (zh) | 一种用于存储数据的方法和装置 | |
WO2015199734A1 (en) | Buffer-based update of state data | |
US8694550B2 (en) | Merging file directories | |
US20090132623A1 (en) | Information processing device having data field and operation methods of the same | |
CN113467724A (zh) | 一种crc校验码存储方法、装置、设备及介质 | |
CN108959517B (zh) | 文件管理方法、装置及电子设备 | |
US20190227734A1 (en) | Tracking information related to free space of containers | |
US20190212945A1 (en) | Apparatus and method of managing multi solid state disk system | |
KR101834082B1 (ko) | 다중 ssd 시스템 관리 장치 및 방법 | |
JPS59139451A (ja) | 情報処理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200413 Address after: Massachusetts, USA Patentee after: EMC IP Holding Company LLC Address before: Massachusetts, USA Patentee before: EMC Corp. |