CN112445425A - 多层级存储 - Google Patents
多层级存储 Download PDFInfo
- Publication number
- CN112445425A CN112445425A CN202010730049.8A CN202010730049A CN112445425A CN 112445425 A CN112445425 A CN 112445425A CN 202010730049 A CN202010730049 A CN 202010730049A CN 112445425 A CN112445425 A CN 112445425A
- Authority
- CN
- China
- Prior art keywords
- tier
- pool
- storage
- candidate
- mtss
- 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
- 238000000034 method Methods 0.000 claims abstract description 60
- 238000013507 mapping Methods 0.000 claims abstract description 8
- 239000008187 granular material Substances 0.000 claims description 28
- 239000002245 particle Substances 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 30
- 230000004044 response Effects 0.000 description 10
- 238000004883 computer application Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 238000010438 heat treatment Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000010076 replication Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000010354 integration Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000008188 pellet Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000001152 differential interference contrast microscopy Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/185—Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
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)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例涉及多层级存储。公开了用于多层级存储系统的实施例。技术包括标识被存储在多层级存储系统(MTSS)的第一存储池的第一层级中的候选区。由于第二层级上的空间限制,候选区被阻止升级。技术还包括标识第二存储池的第二层级。第二层级提供比第一层级提供的输入‑输出(I/O)访问更快的输入‑输出(I/O)访问。附加地,第二池包括用以存储候选区的可用空间。技术还包括将候选区拷贝到第二存储池的第二层级。技术还包括生成跨池映射。跨池映射从第一存储池的第一层级中的候选区的第一地址映射到第二存储池的第二层级中的拷贝的候选区的第二地址。
Description
技术领域
本公开涉及多层级(multi-tier)存储,并且更具体地,涉及多层级存储系统。
背景技术
存储系统是由计算机用来执行数据的读取和写入的系统。可以从不同类型的存储设备(例如硬盘驱动器、固态驱动器、闪存等)读取数据以及将数据写入其中。每种类型的存储设备在访问、时延和其他准则方面提供不同的优势和挑战。多层级存储系统(MTSS)可以包括多种类型的存储设备,这些存储设备基于访问速度被聚集为多个层级。为了提高效率,MTSS可以在具有相对更快访问存储设备的层级上存储相对频繁访问的数据。此外,MTSS可以在具有相对更慢访问存储设备的层级上存储相对不太频繁访问的数据。
发明内容
公开了用于多层级存储系统的技术的实施例。该技术包括标识被存储在多层级存储系统(MTSS)的第一存储池的第一层级中的候选区(candidate extent)。由于第二层级上的空间限制,候选区被阻止升级。该技术还包括标识第二存储池的第二层级。第二层级提供比第一层级提供的输入-输出(I/O)操作更快的输入-输出(I/O)操作。附加地,第二池包括用以存储候选区的可用空间。该技术还包括将候选区拷贝(copy)到第二存储池的第二层级。该技术还包括生成跨池(cross-pool)映射。该跨池映射从第一存储池的第一层级中的候选区的第一地址映射到第二存储池的第二层级中的所拷贝的候选区的第二地址。
本公开的其他方面涉及具有与上面关于计算机实现的方法所讨论的功能性相似的功能性的系统和计算机程序产品。本发明内容并非旨在图示本公开的每个方面、每种实现和/或每个实施例。
附图说明
本申请中所包括的附图被并入说明书中并形成说明书的一部分。附图图示了本公开的实施例,并且与说明书一起用于解释本公开的原理。附图仅是某些实施例的图示,而并不限制本公开。
图1是根据本公开的一些实施例的多层级存储系统(MTSS)的框图。
图2A是根据本公开的一些实施例的在拷贝之前的多层级存储的MTSS池的框图。
图2B是根据本公开的一些实施例的在拷贝之后的多层级存储的MTSS池的框图。
图3A是根据本公开的一些实施例的表示来自用于多层级存储的系统的读取(READ)操作的示例的框图。
图3B是根据本公开的一些实施例的表示在用于多层级存储的系统中具有复制(replication)的写入(WRITE)操作的示例的框图。
图3C是根据本公开的一些实施例的表示在用于多层级存储的系统中具有无效的写入操作的示例的框图。
图4是根据本公开的一些实施例的用于MTSS的示例方法的流程图。
图5是根据本公开的一些实施例的用于MTSS的示例方法的流程图。
图6是根据本公开的一些实施例的用于MTSS的示例方法的流程图。
图7是根据本公开的一些实施例的示例MTSS管理器的框图。
尽管本公开适于各种修改和备选形式,但是其细节已经通过示例在附图中示出并且将被详细描述。然而,应当理解,其意图不是将本公开限制于所描述的特定实施例。相反,其意图是涵盖落入本公开的精神和范围内的所有修改、等同形式和备选形式。
具体实施方式
一些存储控制系统提供多层级存储的机制,在这种机制中,基于诸如访问、使用频率、安全性和数据恢复要求等准则,将数据存储在多种类型的存储介质中。在安全性方面,敏感数据可能会与频繁访问的数据一起被存储在相对高速的固态驱动器(SSD)中。相比之下,不经常访问的数据(对于这些数据,较高的响应时间可能更能容忍)可能被存储在大容量驱动器上执行更慢的层级中。对于执行更快的存储设备(诸如SSD),每千兆字节存储的成本相对较高,而对于执行更慢的驱动器,成本则相对较低。
更具体地,例如,多层级存储系统(MTSS)计算针对数据的热值,该热值考虑了上述准则。因此,MTSS可以使用预定的阈值热值来确定将数据的任何特定部分存储在哪个层级中。数据部分在本文中称为区和区的粒(grain)。以这种方式使用热值,当达到关联层级的预定阈值时,MTSS可以将相对较高访问的数据存储到执行更快的层级。相比之下,当达到关联层级的预定阈值时,MTSS可以将热值更低的数据区,即相对更少的访问(例如访问包括读取或写入操作的情况),移至执行更慢的层级。
在MTSS中,可以有至少两个层级可用,其中第一层级可以提供相对较快的响应时间(以及相对较少的存储容量),而其他层级可以提供相对较慢的响应时间(以及相对较多的存储容量)。尽管具有更快响应时间的存储设备可以比具有更慢响应时间的存储设备更昂贵,但相对更快的存储设备的容量可以小于相对更慢的存储设备的容量。因此,MTSS将具有相对较高热值的数据(热数据)移至更快的层级,而将具有相对较低热值的数据(冷数据)移至更慢的层级。将数据移至更快的层级这个过程在本文中称为升级(promotion)。相反,将数据移至更慢的层级这个过程在本文中称为降级(demotion)。MTSS可以使用拷贝操作执行区升级过程和区降级过程,该拷贝操作在无需知道正在使用数据的应用的情况下被执行。以这种方式,可以维持用户透明度。用户透明度是指数据的位置和管理对正在使用数据的应用(用户)是透明的(不可见)。以这种方式,数据移动对用户也不可见。由于固态驱动器(SSD)比硬盘驱动器(HDD)快,因此MTSS可以通过将热数据(即具有高IO密度和低响应时间要求的数据)放在SSD上,基于数据使用情况,来跨层级提供数据的动态重定位。相反,MTSS可以将HDD用于以更低速率访问和/或顺序访问的冷数据或更冷的数据。
除了将数据存储在层级内之外,MTSS还可以将层级组织到池内。因此,可以跨在数据池中的多个层级升级和降级数据。考虑在存储系统中有两个池,即池1和池2。这些池中的每个池都可以包括两个层级,例如在其上启用了分层级特征的两种不同类型的磁盘。在这种情况下,计算机应用可以将池1主动用于读取/写入I/O操作。(这可能会发生在存储系统中,其中一个池中的卷被访问的次数要多于其他池中用作某种不同目的且可以不那么频繁被访问的卷)。由于池1的访问频率比池2的访问频率更高,因此池1中的区的热图包含更高(即更热)的热值。热图(heat map)可以将I/O操作的访问计数映射到存储池中的每个区。在这种情况下,池2的区的访问频率低于池1的区。换言之,池2中的热图可以具有比池1的热图相对更低的热值。因为池1的区的访问频率更高,包含更大的热值,所以更多数据区可以满足其在池1中升级的阈值热值。由于更快的层级存储空间成本更高,因此任何池的上层级中的存储容量可能有限。因此,在池1中,即使更慢的层级空间中潜在有更多数据区可以满足其升级的阈值热值,更快的层级空间也可以填充。然而,因为更快的层级已满,所以,由于更快的层级处的空间限制,而无法将此类升级候选升级到更快的层级。因此,可以延迟或拒绝将这些升级候选升级到更快的层级,从而为这些升级候选的I/O操作提供更慢的层级性能特性。然而,因为池2的访问频率更低,所以池2的更快的层级空间可能未得到充分利用。如此,MTSS无法利用池2中的更快层级,因为池2中可能有更少的区在I/O操作中经历了足够的热以满足移至更快层级的阈值。
然而,当前系统不支持跨池升级或降级。因此,不会在池之间升级存储区(即区不能直接从池1移至池2)。这样,即使升级候选是升级候选,它们也可能被留在池1的更慢层级中,并且池2的更快层级中有可用空间。如此,这种情况可以表示存储系统级别的不均衡,其中池1的区正在努力升级,而由于池2中I/O操作的频率更低,池2的更快层级具有可用的且未使用的空间。
因此,在本公开的实施例中,可以跨存储池升级被阻止在一个存储池中升级的候选区。更具体地说,当数据区符合升级条件时,即使它们自己的存储池中没有足够的可用空间,也可以将这些候选区升级到更快层级。确切地说,可以将此类候选区升级到具有可用空间的不同存储池的更快层级。
现在参照图1,其是根据本公开的一些实施例的多层级存储系统(MTSS)100的框图。MTSS 100包括网络102、多层级存储装置104、MTSS管理器106和主机108。网络102可以是一个或多个计算机通信网络,包括有线和/或无线局域网和/或广域网(WAN)。例如,WAN可以包括互联网。多层级存储装置104、MTSS管理器106和主机108可以通过网络102进行通信。
多层级存储装置104可以包括MTSS 100的实际数据存储设备,诸如SSD、HDD、闪速存储装置等。多层级存储装置104可以是块级存储系统,并且可以将数据存储设备组织到池110中。出于效率原因,当运行相对大量的计算机应用时,将存储设备组织到池110中可以是有用的。存储设备的池110可以包括多种类型,从相对较快的存储设备到相对较慢的存储设备。根据本公开的实施例,每个池110可以被组织成多个层级112-1至112-n。层级112在这里被单独地称为例如层级112-1,并且被统称为例如层级112。层级112-1可以表示相对最快的层级。相反,在具有n个层级112的存储池110中,层级112-n可以表示相对最慢的层级。
监测器114可以监测对多层级存储装置104中跨存储池110的区的I/O操作,以便为每个数据区生成热图118。主机108可以是将多层级存储装置104用于计算机应用的数据的计算机应用。以这种方式,MTSS管理器106可以标识升级候选区,该升级候选区可以在其自己的存储池110中被阻止升级。此外,MTSS管理器106可以在具有可用空间的不同存储池中标识更快层级,并将被阻止的候选区升级到不同存储池中的更快层级。MTSS管理器106包括监测器114、重定位器116、热图118和应用编程接口(API)120。
监测器114可以监测针对存储池110中的每个数据区执行的I/O操作。监测器114可以是热值监测守护进程,其针对存储池110上被执行的每个I/O操作更新区热值。该热值信息还用于确定跨池110的层级112的区升级和降级。
重定位器116可以基于访问热温度(在每个I/O操作上更新的访问计数器)来标识相对频繁访问(热)的数据区。因此,重定位器116将热数据区升级到SSD,以实现高吞吐量、低时延和/或每秒I/O操作(IOPS)节能特性。
更具体地说,监测器114可以生成跨存储池110存储在多层级存储装置104中的区的热图118。此外,重定位器116可以定期地评估每个存储池110的热图118,并标识进行升级和降级的候选区。因此,当候选区满足其升级或降级阈值时,重定位器116可以跨层级112移动候选区。这些定期评估和升级/降级技术在本文中称为升级周期(cycle)。
根据本公开的实施例,MTSS管理器106可以跨执行更快的层级112中的可用空间的存储池110检测I/O操作不均衡。此外,MTSS管理器106可以标识每个池110中的区升级候选,该区升级候选已经满足升级的热阈值但由于升级层级中的空间限制而仍在等待升级。
更具体地,重定位器116可以标识更慢层级中已经满足升级阈值但不能被升级的候选区。此外,重定位器116可以确定在另一存储池110中的更快层级112中是否有针对候选区的可用空间,并将候选区拷贝到该另一存储池110中的更快层级112。以这种方式,由于MTSS管理器106可能不会跨池移动区,因此可以保持区的原始副本完整。因此,MTSS管理器106将区拷贝到相邻池的执行更快的层级。附加地,MTSS管理器106可以维持从原始层级中的地址到新的更快层级中的地址的映射。此外,MTSS管理器106可以针对拷贝的区来更新热图118。例如,“热图示例1”示出了将区4和区5拷贝到对等池之前的热图118:
E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E4_copy | E5_Copy |
101 | 100 | 103 | 104 | 123 | 132 | 73 | 12 | NA | NA |
热图示例1
在本示例中,第一行表示区E1到E8,具有E4和E5副本的条目。第二行表示针对每个区的I/O操作的访问计数。如所示的,针对E4和E5的访问计数分别为104和123。E4和E5副本显示为NA,因为在复本产生之前没有任何访问。
相比之下,热图示例2示出了在拷贝区4和区5(E4、E5)之后更新的热图118:
E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E4_copy | E5_Copy |
101 | 100 | 103 | 23 | 30 | 132 | 73 | 12 | 134 | 122 |
热图示例2
在本示例中,E4和E5的热值分别为23和30,表明在拷贝区之后的升级周期期间很少访问E4和E5的原始副本。此外,E4和E5的副本的热值为134和122,表明执行了更多次访问以利用对等池中上层级的更快响应速度。
然而,通过对拷贝的区的任何写入操作,创建区的副本可能会很复杂。更具体地说,如果其中一个副本被写入操作覆盖,则另一个副本对于读取操作不再有效。尽管MTSS管理器106可以通过在另一个副本上重复写入操作来更新另一个副本,但是该附加写入可能是昂贵的I/O操作,因此可能会增加时延。因此,可以基于访问计数以及针对候选区执行的I/O操作的类型来对候选区进行分类。因此,可以基于操作是读取与写入的百分比来升级候选区(拷贝到其他存储池110)。例如,重定位器116可以基于它们的读/写工作负荷将候选区划分为READ_ONLY、READ_INTENSIVE、MIXED_WORKLOAD和WRITE_MAJOR。在当前升级周期中,READ_ONLY类别可以包括具有读取操作但不具有写入操作的候选区。在当前升级周期中,READ_INTENSIVE类别可以包括具有读取操作超过写入操作预定阈值的候选区。例如,READ_INTENSIVE类别可以包括读取操作表示I/O操作的80%或更多的候选区。MIXED_WORKLOAD类别可以包括读取操作表示I/O操作的50%至80%的候选区。WRITE_MAJOR类别可以包括写入操作表示I/O操作的多于50%的候选区。
因此,跨存储池110进行升级的候选区的优先级可以基于类别。例如,可以为READ_ONLY区指派比其余类别更高的优先级。以这种方式,可以避免为维持两个副本的数据完整性而进行的附加写入操作。然而,在一些实施例中,可以按照READ_MAJOR、MIXED_WORKLOAD和WRITE_MAJOR类别的降序优先级将其他类别中的候选区拷贝到其他存储池110。可以执行优先级调整以适应I/O处理密集型操作,诸如复制写入操作以在更快层级和更慢层级中维持有效副本。
API 120可以为主机108提供对多层级存储装置104的池110中的数据区的访问。换言之,当主机108对数据区执行读取或写入访问时,主机108可以调用API 120来标识数据区的位置。如果已经跨存储池110升级了数据区,则API 120可以标识数据区的适当位置。以这种方式,主机108可以在不知道数据区被存储在哪个存储池110或层级112上的情况下,从数据区读取或写入到数据区。
现在参照图2A,其是根据本公开的一些实施例的在拷贝之前的多层级存储装置的MTSS池202-1、202-2的框图。MTSS池202-1包括上层级存储装置204-1和下层级存储装置206-1。上层级存储装置204-1可以表示与下层级存储装置206-1相比具有相对更快的访问的层级。上层级存储装置204-1包括四个时隙208-1A至208-1D以存储升级的区。例如,时隙208-1A、208-1B分别存储区1和区2。类似地,下层级存储装置206-1包括四个时隙210-1A至210-1D以存储区。例如,时隙210-1A至210-1D分别存储区3至区6。在该示例中,区3至区6用星号“*”注释。星号表明这些区已达到升级到上层级存储装置204-1的热图阈值。此外,区4和区5还包括注释“R”。R注释表明这些区是READ_ONLY区。
附加地,MTSS池202-2包括上层级存储装置204-2和下层级存储装置206-2。上层级存储装置204-2包括四个时隙208-2A至208-2D以存储升级的区。例如,时隙208-2A、208-2B分别存储区7和区8。类似地,下层级存储装置206-2包括四个时隙210-2A至210-2D以存储区。例如,时隙210-2A至210-2D分别存储区9至区12。与低层级存储装置206-1相比,时隙210-2A至210-2D中的任何区都不符合升级条件。
尽管存在从下层级存储装置206-1升级的四个候选区,但是在上层级存储装置204-1中只有两个可用的时隙。这样,上层级存储装置204-1中没有足够的可用空间来将这四个候选区升级到上层级存储装置204-1。然而,在MTSS池202-2中,上层级存储装置204-2包括两个可用的用于升级的时隙208-2C、208-2D。
现在参照图2B,其是根据本公开的一些实施例的在拷贝之后的多层级存储装置的MTSS池202-1、202-2的框图。根据本公开的实施例,诸如MTSS管理器106等MTSS管理器可以分别将区3和区6升级到时隙208-1C、208-1D。因此,时隙208-1C、208-1D可以分别存储区3和区6。
此外,根据本公开的实施例,MTSS管理器106可以将READ_ONLY候选区(区4和区5)分别拷贝到时隙208-2C、208-2D。当使用主存储池外部的上层级存储装置来存储候选区时,MTSS管理器106可以将候选区的原始副本维持在主存储池中。例如,下层级存储装置206-1中的时隙210-1B、210-1C可以分别继续存储区4和区5。在拷贝到对等存储池之前,主存储池可以参考候选区的原始物理位置。
现在参照图3A,其是根据本公开的一些实施例的表示来自用于多层级存储的系统300的读取操作的示例的框图。系统300包括MTSS池302-1、MTSS池302-2、虚拟化层(layer)312和主机314。MTSS池302-1、302-2可以表示如关于图2B所描述的MTSS池202-1、202-2。与图2B相似,MTSS池302-1、302-2分别包括上层级存储装置304-1、304-2。同样与图2B相似,上层级存储装置304-1、304-2和下层级存储装置306-1、306-2包括时隙308-1A至308-1D、308-2A至308-2D和时隙310-1A至310-1D、310-2A到310-2D。然而,返回参照图3A,区1至区12分别表示为E1至E12。
附加地,主机314可以表示可以根据主机314的编码计算机指令执行各种技术的计算机应用。为了执行这些技术,主机314可以操纵和/或计算各种数据项。附加地,主机314可以从MTSS池302-1、302-2读取该数据以及将该数据存储在其中。然而,数据的访问对主机314是透明的,这意味着主机314不知道其数据在MTSS池302-1、302-2中具体被存储在何处。确切地说,主机314可以维持存储器引用的内部目录,并且将关联的存储器引用与从存储器引用读取或写入到存储器引用的请求一起传递给虚拟化层。存储器引用可以表示区、或区的粒。
虚拟化层312可以表示操作系统的一个或多个计算机应用。通过这些计算机应用,虚拟化层312可以将来自主机314的所请求的存储器引用的地址转换为MTSS池302-1、302-2中的实际物理地址。例如,虚拟化层312可以使用API,诸如关于图1描述的API 120,来确定MTSS池302-1、302-2中存储在来自主机314的请求中的存储器引用的特定粒和区。
因此,从主机314到虚拟化层312的向下箭头可以表示从主机314到虚拟化层312的从区4读取数据的请求。因此,虚拟化层312可以确定区4被拷贝到MTSS池302-2,从而提供对下层级存储装置306-1中的副本的更快访问。从虚拟化层312到区4(E4)的箭头表示从时隙308-2C读取E4数据的请求。此外,从E4到虚拟化层312的箭头可以表示对该请求的响应,即,E4数据。类似地,从虚拟化层312到主机314的箭头可以表示对来自主机314的具有E4数据的原始请求的响应。
如前所述,监测器114追踪多层级存储装置104中所有区的I/O操作以生成热图118。然而,如上所述,因为跨MTSS池302-1、302-2可以有区的两个副本,所以监测器114可以将来自上层级存储装置304-2的区的每次读取视为两次读取。因此,对于MTSS管理器106跨MTSS池302-1、302-2进行拷贝的区而言,在确定区是否已经再次满足下一个升级周期中的升级阈值之前,重定位器116可以将拷贝的区的热值除以冗余因子(例如,2)。如果主存储池的上层级(例如上层级存储装置304-1)中的空间变得可用,并且拷贝的区E4再次满足升级阈值,则可以将E4移至上层级存储装置304-1。相应地移动E4可以意味着从上层级存储装置304-2删除E4。附加地,移动E4可以意味着更新跨池映射以移除E4。以这种方式,新空间在上层级存储装置304-2中变得可用,该新空间可以用于MTSS池302-1中可能由于空间限制而被延迟升级的其他升级候选。
此外,即使MTSS管理器106可以将候选区分类为READ_ONLY,从而跨池拷贝候选区,主机314也可以稍后对该区进行写入。然而,因为存在区的两个副本,每个MTSS池302-1、302-2中有一个副本,所以覆盖一个副本中的数据可以使另一个副本中的数据无效。无效意味着该副本中的数据不再是最新的,即有效。因此,读取被无效的副本提供错误的数据。因此,在本公开的一些实施例中,当跨池拷贝区时,MTSS管理器106可以复制写入操作。备选地,MTSS管理器106可以覆盖主存储池(例如MTSS池302-1)中的副本,并且使用无效技术来防止对被无效的副本的未来读取。
现在参照图3B,其是根据本公开的一些实施例的表示在用于多层级存储的系统300中利用复制进行的写入操作的示例的框图。从主机314到虚拟化层312的箭头可以表示将值写入E4的特定粒的请求。因此,虚拟化层312可以发出对两次写入操作的请求。从虚拟化层312到时隙310-1B、308-2A中的E4的两个箭头可以表示这些写入请求。附加地,当写入操作完成时,虚拟化层312可以通知主机314。具体地,从虚拟化层312到主机314的箭头可以表示对写入操作成功完成的确认(ACK)。
将写入复制到两个MTSS池302-1、302-2中的区的副本使两个副本保持同步。以这种方式,MTSS管理器106可以保留拷贝的区的原子性一致性隔离性持久性(ACID)属性。该技术对于分类为READ_ONLY或READ_INTENSIVE的区可以是有用的,因为与在这种区中可能发生的读取操作次数相比,复制的写入的附加时延可以相对不频繁。因此,与下层级存储装置306-1相反,执行从上层级存储装置304-2读取的节省可以补偿复制的写入操作的附加时延,并且仍然提供I/O操作成本节省。然而,类似于在拷贝的区上执行的读取操作,复制的写入意味着在下一个升级周期中,热图中会记录两次写入,这在下一个升级周期中使拷贝的区具有不公平的优势。因此,类似于用于读取的技术,当MTSS管理器106在拷贝的区上复制写入时,当在下一升级周期中考虑拷贝的区的热值时,重定位器116可以将写入的次数除以2。
现在参照图3C,其是根据本公开的一些实施例的表示在用于多层级存储的系统300中具有无效的写入操作的示例的框图。根据本公开的实施例,当MTSS管理器106将E4拷贝到MTSS池302-2时,MTSS管理器106还可以生成粒图(grain map)316。粒图316可以是位图,其中每一位表示拷贝的区的一个粒。每一位可以指示关联的粒是否仍然是有效副本,这意味着自区副本以来,MTSS池302-1中的原始副本尚未被写入。因此,最初可以将粒图316设置为1,表示:是的,粒是有效的。在备选实施例中,粒图316可以是能够表示在拷贝的区中的每个粒的有效性的任何种类的数组,诸如单个字符文本值(例如“Y”或“N”)的数组。示例粒图状态1表示E4的粒图316在首次被拷贝到MTSS池302-2时的一种潜在表示:
粒1 | 粒2 | 粒3 | 粒4 | 粒5 | 粒6 | 粒7 | 粒8 |
Y | Y | Y | Y | Y | Y | Y | Y |
示例粒图状态1
因此,当主机314请求对该区的粒进行读取时,虚拟化层312可以使用粒图316在尝试该读取之前确定MTSS池302-2中的副本是否仍然有效。然而,当在拷贝的区上执行写入操作时,MTSS管理器106可以更新粒图316以表明被写入的粒不再有效。
例如,从主机314到虚拟化层312的箭头可以表示写入E4的粒3的请求。因此,从虚拟化层312到下层级存储装置306-1中的时隙310-1B中的E4的箭头可以表示对E4的粒3执行的写入操作。然而,由于E4的粒3已在MTSS池302-1中更新,因此池302-2中的副本不再有效。因此,从虚拟化层312到粒图316的箭头可以表示对粒图316的更新,该更新使粒3无效。示例粒图状态2表示该更新之后的粒图316:
粒1 | 粒2 | 粒3 | 粒4 | 粒5 | 粒6 | 粒7 | 粒8 |
Y | Y | N | Y | Y | Y | Y | Y |
示例粒图状态2
如所示的,粒3被无效。因此,从MTSS池302-1中的原始副本执行对粒3的未来读取。附加地,从虚拟化层312到主机的箭头表示对写入E4的粒3的原始请求的写入ACK响应。
该无效技术对于分类为MIXED_WORKLOAD的区可以是有用的,因为可以对区执行多次读取和写入操作。因此,复制技术可以导致时延大量增加。有利地,通过针对该无效技术仅对原始副本执行单次写入,不会由于MTSS池302-2中区副本的复制写入而增加时延。
图4是根据本公开的一些实施例的用于多层级存储系统的示例方法400的流程图。MTSS管理器106可以执行根据本公开的一些实施例的方法400。在框402,MTSS管理器106可以标识被阻止升级的候选区。使用热图118,MTSS管理器106可以标识每个存储池110中已经满足将被升级到更快层级的阈值的候选区。此外,MTSS管理器106可以确定更快层级中是否有足够的可用空间供候选区的主存储池升级候选区。因此,MTSS管理器106标识更快层级中由于缺少可用空间而被阻止升级的候选区。
在框404,MTSS管理器106可以标识被阻止的候选区的对等存储池中的可用升级层级。根据本公开的实施例,MTSS管理器106可以分析对等存储池中比被阻止的候选区的当前层级提供更快I/O操作的层级。以这种方式,MTSS管理器106可以标识用于拷贝被阻止的候选区的潜在目的地。
在框406,MTSS管理器106可以将候选区拷贝到所标识的对等池。因此,候选区的原始副本仍被存储在主存储池中。附加地,候选区的副本被存储在对等存储池的更快层级中。为了利用对等池中的更快层级,对该附加副本执行候选区的读取。
在框408,MTSS管理器106可以为拷贝的区生成跨池映射。跨池映射可以将原始候选区的物理地址映射到存储副本的对等池中的物理地址。当主机请求针对区的I/O操作时,该跨池映射是有用的。
图5是根据本公开的一些实施例的用于多层级存储系统的示例方法500的流程图。MTSS管理器106可以执行根据本公开的一些实施例的方法500。在框502,MTSS管理器106可以针对拷贝的区生成粒图,诸如粒图316。如前所述,MTSS管理器106可以使用不同技术来处理写入操作:复制的副本技术和无效技术。当最初被拷贝到对等池时,生成的粒图316可以指示拷贝的区的每个粒的有效状态。对于复制的副本方法,MTSS管理器106不生成粒图316。
在框504,MTSS管理器106可以接收针对拷贝的区的写入请求。主机314可以生成该写入请求。
在框506,MTSS管理器106可以对主存储池中的区的原始副本执行写入操作。无论针对写入是使用复制的副本技术还是无效技术,MTSS管理器106都可以执行框506。
在框508,MTSS管理器106可以在对等池中执行更新。对于复制的副本技术,MTSS管理器106可以在对等池中复制写入。备选地,对于无效技术,MTSS管理器106可以针对被写入主存储池中的每个粒更新粒图316。换言之,写入主存储池中的任何粒在对等池的粒图316中均被无效。因此,在主存储池中执行覆盖粒的未来读取。
图6是根据本公开的一些实施例的用于多层级存储系统的示例方法600的流程图。MTSS管理器106可以执行根据本公开的一些实施例的方法600。在框602,MTSS管理器106可以接收针对拷贝的区的读取请求。主机314可以提供该读取请求。
在框604,MTSS管理器106可以确定拷贝的区在对等存储池中的物理地址。MTSS管理器106可以使用跨池映射来确定该地址。
在框606,MTSS管理器106可以确定对等存储池中的(多个)粒是否有效。如果对等存储池中的(多个)粒是有效的,则控制流向框608。在框608,MTSS管理器106可以从对等存储池中的更快层级读取(多个)粒。
如果对等存储池中的(多个)粒不是有效的,则控制流向框610。在框610,MTSS管理器106可以从主存储池读取(多个)粒。
有利地,本公开的实施例可以在不添加新硬件的情况下实现,因此可以在当前存储系统中相对容易地实现。附加地,实施例可以包括用于层级限制和存储空间统计的池间信息查询的入站和出站API的实现。
现在参照图7,图示了根据本公开的一些实施例的示例MTSS管理器700的框图。在各种实施例中,MTSS管理器700类似于MTSS管理器106,并且可以执行图4-图6中描述的方法和/或图1-图3中讨论的功能性。在一些实施例中,MTSS管理器700向客户端机器提供用于前述方法和/或功能性的指令,使得客户端机器基于MTSS管理器700提供的指令来执行该方法或该方法的一部分。在一些实施例中,MTSS管理器700包括在并入到多个设备中的硬件上执行的软件。
MTSS管理器700包括存储器725、存储装置730、互连(例如,总线)720、一个或多个CPU 705(在本文中也称为处理器705)、I/O设备接口710、I/O设备712和网络接口715。
每个CPU 705获取并执行被存储在存储器725或存储装置730中的编程指令。互连720用于在CPU 705、I/O设备接口710、存储装置730、网络接口715和存储器725之间移动数据,诸如编程指令。可以使用一个或多个总线来实现互连720。在各种实施例中,CPU 705可以是单个CPU、多个CPU或具有多个处理核心的单个CPU。在一些实施例中,CPU 705可以是数字信号处理器(DSP)。在一些实施例中,CPU 705包括一个或多个3D集成电路(3DIC)(例如3D晶圆级封装(3DWLP)、基于3D中介层的集成、3D堆叠IC(3D-SIC)、单片3D IC、3D异构集成、3D系统级封装(3DSiP)和/或堆叠式封装(PoP)CPU配置)。通常包括存储器725以表示随机存取存储器(例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或闪存)。通常包括存储装置730以表示非易失性存储器,诸如硬盘驱动器、固态设备(SSD)、可移除存储器卡、光学存储装置和/或闪存设备。附加地,存储装置730可以包括经由I/O设备接口710连接到MTSS管理器700或经由网络接口715连接到网络750的存储区域网络(SAN)设备、云或其他设备。
在一些实施例中,存储器725存储指令760。然而,在各种实施例中,指令760被部分地存储在存储器725中并且部分地存储在存储装置730中,或者它们全部被存储在存储器725中或全部被存储在存储装置730中,或者经由网络接口715通过网络750访问它们。
指令760可以是处理器可执行的指令,用于执行图4-图6中描述的方法的任何部分、或所有、任何方法和/或图1-图3中讨论的任何功能性。
在各种实施例中,I/O设备712包括能够呈现信息并接收输入的接口。例如,I/O设备712可以向与MTSS管理器700交互的收听者呈现信息,并接收来自收听者的输入。
MTSS管理器700经由网络接口715被连接到网络750。网络750可以包括物理、无线、蜂窝或不同的网络。
在一些实施例中,MTSS管理器700可以是多用户大型计算机系统、单用户系统或服务器计算机或类似设备,其只有很小或没有直接用户界面而是从其他计算机系统(客户端)接收请求。此外,在一些实施例中,MTSS管理器700可以被实现为台式计算机、便携式计算机、膝上型计算机或笔记本计算机、平板计算机、口袋计算机、电话、智能电话、网络交换机或路由器或任何其他适当类型的电子设备。
注意,图7旨在描绘示例性MTSS管理器700的代表性主要组件。然而,在一些实施例中,各个组件可以具有比图7所示的更大或更小的复杂度,还可以存在与图7所示的那些组件不同的组件或除了图7中所示的组件之外的组件,并且这些组件的数量、类型和配置可以变化。
本公开可以是处于任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。该计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多种介质),该计算机可读程序指令用于使处理器执行本公开的各个方面。
计算机可读存储介质可以是有形设备,其可以保持和存储由指令执行设备使用的指令。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光学存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩光盘只读存储器(CD-ROM)、数字多功能磁盘(DVD)、记忆棒、软盘、机械编码设备(诸如打孔卡或凹槽中的凸起结构,上面记录了指令)以及上述的任何合适的组合。如本文所使用的,计算机可读存储介质不应被理解为是瞬态信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质(例如穿过光纤电缆的光脉冲)传播的电磁波或通过电线传输的电信号。
本文所述的计算机可读程序指令可以从计算机可读存储介质被下载到相应的计算/处理设备,或者经由网络(例如互联网、局域网、广域网和/或无线网络)被下载到外部计算机或外部存储设备。该网络可以包括铜传输电缆、光学传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以用于存储在相应的计算/处理设备内的计算机可读存储介质中。
用于执行本公开的操作的计算机可读程序指令可以是汇编程序指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、用于集成电路的配置数据、或以一种或多种编程语言(包括诸如Smalltalk、C++等面向对象的编程语言以及诸如“C”编程语言或类似编程语言等程序化编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行、部分地在用户的计算机上执行、作为独立的软件包执行、部分地在用户的计算机上执行且部分地在远程计算机上执行、或者完全在远程计算机或者服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络被连接至用户的计算机,包括局域网(LAN)或者广域网(WAN),或者可以与外部计算机进行该连接(例如,通过使用互联网服务提供方的互联网)。在一些实施例中,电子电路装置(包括:例如,可编程逻辑电路装置、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA))可以通过利用计算机可读程序指令的状态信息个性化电子电路装置来执行计算机可读程序指令,以便执行本公开的各个方面。
本文参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图描述了本公开的各个方面。要理解,这些流程图图示和/或框图中的各个框以及在这些流程图图示和/或框图中的框的组合可以由计算机可读程序指令来实现。
可以将这些计算机可读程序指令提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的部件。这些计算机可读程序指令也可以被存储在计算机可读存储介质中,计算机可读程序指令可以指导计算机、其他可编程数据处理装置和/或其他设备按照特定方式发挥功能,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括指令,该指令实现在流程图和/或框图的一个或多个框中指定的功能/动作的各个方面。
也可以将计算机可读程序指令加载到计算机、其他可编程数据处理装置或其他设备上,以使得能够在计算机、其他可编程装置或其他设备上执行一系列操作步骤来产生计算机实现的过程,从而使在计算机、其他可编程装置或其他设备上执行的指令实现在流程图和/或框图的一个或多个框中指定的功能/动作。
图中的流程图和框图图示了根据本公开的各种实施例的系统、方法和计算机程序产品的可能的实现的架构、功能性和操作。就这一点而言,流程图或框图中的每个框可以表示指令的模块、片段或部分,其包括用于实现指定的(多种)逻辑功能的一个或多个可执行指令。在一些备选实现中,框中指出的功能可以不按图中指出的顺序发生。例如,连续示出的两个框实际上可以作为一个步骤完成,可以按照在时间上部分或全部重叠的方式同时地、基本上同时地执行,或者框有时可以按相反的顺序执行,具体取决于所涉及的功能性。还要注意,框图和/或流程图图示的每个以及框图和/或流程图图示中的框的组合可以由特殊用途的基于硬件的专用系统来实现,这种系统执行指定的功能或动作或进行特殊用途的硬件和计算机指令的组合。
Claims (13)
1.一种用于多层级存储系统的计算机实现的方法,包括:
标识被存储在多层级存储系统(MTSS)的第一存储池的第一层级中的候选区,其中由于所述第一存储池的第二层级上的空间限制,所述候选区被阻止升级;
标识所述MTSS的第二存储池的第二层级,其中所述第二存储池的所述第二层级提供比所述第一存储池的所述第一层级提供的输入-输出(I/O)访问更快的输入-输出(I/O)访问,其中所述第二存储池包括用以存储所述候选区的可用空间;
将所述候选区拷贝到所述第二存储池的所述第二层级;以及
生成从所述第一存储池的所述第一层级中的所述候选区的第一地址到所述第二存储池的所述第二层级中的拷贝的所述候选区的第二地址的跨池映射。
2.根据权利要求1所述的方法,还包括:生成拷贝的所述候选区的粒图,其中所述粒图包括指示拷贝的所述候选区中的多个粒对于读取操作是否有效的表。
3.根据权利要求2所述的方法,还包括:
接收针对所述候选区的写入操作请求;
在所述第一存储池的所述第一层级中,执行针对所述候选区的所述写入操作;以及
更新所述粒图,以使由所述写入操作更新的所述候选区的粒无效。
4.根据权利要求1所述的方法,包括:
接收针对所述候选区的写入操作请求;
在所述第一存储池的所述第一层级中,执行针对所述候选区的所述写入操作;以及
在所述第二存储池的所述第二层级中,执行针对所述候选区的所述写入操作。
5.根据权利要求1所述的方法,包括:
接收针对所述候选区的读取操作请求;
确定所述候选区被拷贝到所述第二存储池的所述第二层级;以及
在所述第二存储池的所述第二层级中,执行针对所述候选区的所述读取操作。
6.根据权利要求1所述的方法,还包括:
在升级周期期间标识拷贝的所述候选区;以及
通过将所述候选区的读取访问计数除以冗余因子来修改所述候选区的热值。
7.根据权利要求1所述的方法,还包括:
在升级周期期间标识拷贝的所述候选区;以及
通过将所述候选区的热值的写入访问计数除以2来修改所述候选区的所述热值。
8.根据权利要求1所述的方法,还包括通过以下步骤为所述MTSS生成热图:
监测针对所述候选区被执行的读取操作次数;以及
监测针对所述候选区被执行的写入操作次数。
9.根据权利要求8所述的方法,其中标识所述候选区包括确定所述候选区是READ_ONLY区,其中针对所述候选区的所述读取操作次数大于零,并且针对所述候选区的所述写入操作次数等于零。
10.根据权利要求8所述的方法,其中标识所述候选区包括确定所述候选区是READ_INTENSIVE区,其中所述读取操作次数大于所述读取操作次数与所述写入操作次数之和的指定阈值百分比。
11.一种计算机程序产品,包括被存储在计算机可读存储介质上的程序指令,其中所述程序指令由处理器可执行以使所述处理器执行根据权利要求1至10中任一项所述的方法。
12.一种系统,包括:
计算机处理电路;以及
计算机可读存储介质,存储指令,所述指令在由所述计算机处理电路执行时被配置为使所述计算机处理电路执行根据权利要求1至10中任一项所述的方法。
13.一种系统,所述系统包括分别用于执行根据权利要求1至10中任一项所述的方法的步骤的模块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/554,892 US11010091B2 (en) | 2019-08-29 | 2019-08-29 | Multi-tier storage |
US16/554,892 | 2019-08-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112445425A true CN112445425A (zh) | 2021-03-05 |
CN112445425B CN112445425B (zh) | 2024-10-18 |
Family
ID=74681216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010730049.8A Active CN112445425B (zh) | 2019-08-29 | 2020-07-27 | 多层级存储 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11010091B2 (zh) |
CN (1) | CN112445425B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11079951B2 (en) * | 2019-09-16 | 2021-08-03 | International Business Machines Corporation | Multi-tier storage and mirrored volumes |
US11216201B2 (en) * | 2020-05-26 | 2022-01-04 | EMC IP Holding Company LLC | Caching and data promotion techniques |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101223498A (zh) * | 2005-07-15 | 2008-07-16 | 国际商业机器公司 | 用于管理数据存储的方法、系统和计算机程序产品以及虚拟化引擎 |
CN102150144A (zh) * | 2009-01-23 | 2011-08-10 | Lsi公司 | 使用写入配置快照的动态存储分层的方法和系统 |
US20110246740A1 (en) * | 2010-04-06 | 2011-10-06 | Hitachi, Ltd. | Management method and management apparatus |
CN102521152A (zh) * | 2011-11-29 | 2012-06-27 | 成都市华为赛门铁克科技有限公司 | 一种分级存储方法及系统 |
CN102713827A (zh) * | 2010-01-07 | 2012-10-03 | 国际商业机器公司 | 用于分层存储架构的区间迁移 |
US20120317358A1 (en) * | 2011-06-08 | 2012-12-13 | Hitachi, Ltd. | Computer system and method of managing storage system |
CN103052938A (zh) * | 2010-10-14 | 2013-04-17 | 株式会社日立制作所 | 数据迁移系统和数据迁移方法 |
CN104011717A (zh) * | 2011-12-15 | 2014-08-27 | 国际商业机器公司 | 对数据存储备份的数据选择 |
US20160179405A1 (en) * | 2014-12-19 | 2016-06-23 | International Business Machines Corporation | Data storage resource assignment |
US20180129443A1 (en) * | 2016-11-08 | 2018-05-10 | International Business Machines Corporation | Extent migration in multi-tier storage systems |
CN109710587A (zh) * | 2018-12-29 | 2019-05-03 | 优刻得科技股份有限公司 | 基于Ceph的数据分层方法、系统、设备和介质 |
CN110058808A (zh) * | 2018-01-17 | 2019-07-26 | 富士通株式会社 | 减少在存储分级层之间重排数据的数据迁移时间的装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080021776A1 (en) * | 2006-04-07 | 2008-01-24 | Lochtefeld Thomas J | Method of promoting the sport of inland surfing |
US8700841B2 (en) | 2010-04-19 | 2014-04-15 | International Business Machines Corporation | Sub-LUN input/output profiling for SSD devices |
US9275063B1 (en) * | 2011-09-30 | 2016-03-01 | Emc Corporation | Replication optimizated IO |
US10268526B1 (en) | 2012-12-28 | 2019-04-23 | EMC IP Holding Company LLC | Using response time objectives in a storage system |
US9135173B2 (en) * | 2013-01-22 | 2015-09-15 | International Business Machines Corporation | Thinly provisioned flash cache with shared storage pool |
US10866741B2 (en) | 2017-08-02 | 2020-12-15 | Toshiba Memory Corporation | Extending SSD longevity |
US10684958B1 (en) * | 2018-12-10 | 2020-06-16 | International Business Machines Corporation | Locating node of named data elements in coordination namespace |
-
2019
- 2019-08-29 US US16/554,892 patent/US11010091B2/en active Active
-
2020
- 2020-07-27 CN CN202010730049.8A patent/CN112445425B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101223498A (zh) * | 2005-07-15 | 2008-07-16 | 国际商业机器公司 | 用于管理数据存储的方法、系统和计算机程序产品以及虚拟化引擎 |
CN102150144A (zh) * | 2009-01-23 | 2011-08-10 | Lsi公司 | 使用写入配置快照的动态存储分层的方法和系统 |
CN102713827A (zh) * | 2010-01-07 | 2012-10-03 | 国际商业机器公司 | 用于分层存储架构的区间迁移 |
US20110246740A1 (en) * | 2010-04-06 | 2011-10-06 | Hitachi, Ltd. | Management method and management apparatus |
CN103052938A (zh) * | 2010-10-14 | 2013-04-17 | 株式会社日立制作所 | 数据迁移系统和数据迁移方法 |
US20120317358A1 (en) * | 2011-06-08 | 2012-12-13 | Hitachi, Ltd. | Computer system and method of managing storage system |
CN102521152A (zh) * | 2011-11-29 | 2012-06-27 | 成都市华为赛门铁克科技有限公司 | 一种分级存储方法及系统 |
CN104011717A (zh) * | 2011-12-15 | 2014-08-27 | 国际商业机器公司 | 对数据存储备份的数据选择 |
US20160179405A1 (en) * | 2014-12-19 | 2016-06-23 | International Business Machines Corporation | Data storage resource assignment |
US20180129443A1 (en) * | 2016-11-08 | 2018-05-10 | International Business Machines Corporation | Extent migration in multi-tier storage systems |
CN110058808A (zh) * | 2018-01-17 | 2019-07-26 | 富士通株式会社 | 减少在存储分级层之间重排数据的数据迁移时间的装置 |
CN109710587A (zh) * | 2018-12-29 | 2019-05-03 | 优刻得科技股份有限公司 | 基于Ceph的数据分层方法、系统、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
US20210064272A1 (en) | 2021-03-04 |
CN112445425B (zh) | 2024-10-18 |
US11010091B2 (en) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11334533B2 (en) | Dynamic storage tiering in a virtual environment | |
US10635323B2 (en) | Managing storage system | |
US10795586B2 (en) | System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash | |
US8966188B1 (en) | RAM utilization in a virtual environment | |
US11163452B2 (en) | Workload based device access | |
CN110825320B (zh) | 虚拟化固态存储介质的隔离区域 | |
US10282292B2 (en) | Cluster-based migration in a multi-level memory hierarchy | |
US11150962B2 (en) | Applying an allocation policy to capture memory calls using a memory allocation capture library | |
US20170031825A1 (en) | Direct Host-To-Host Transfer for Local Caches in Virtualized Systems | |
US20160197986A1 (en) | Host-side cache migration | |
JP2012527704A (ja) | 仮想マシンシステムにおけるショートカット入出力 | |
JP2012104097A (ja) | ストレージシステムにおける要求に対する応答に関連した待ち時間削減 | |
TW201941197A (zh) | 混合式記憶體系統 | |
EP3865992A2 (en) | Distributed block storage system, method, apparatus and medium | |
US20160246587A1 (en) | Storage control device | |
EP1934762A2 (en) | Apparatus and method for handling dma requests in a virtual memory environment | |
CN112445425B (zh) | 多层级存储 | |
CN111158602A (zh) | 数据分层存储方法、读取方法、存储主机及存储系统 | |
US11315028B2 (en) | Method and apparatus for increasing the accuracy of predicting future IO operations on a storage system | |
US11200210B2 (en) | Method of efficient backup of distributed file system files with transparent data access | |
US10235083B1 (en) | Systems and methods for efficiently moving data within a filesystem | |
US11132128B2 (en) | Systems and methods for data placement in container-based storage systems | |
CN114201109B (zh) | 计算系统、介质以及用于计算系统的方法 | |
US10346193B1 (en) | Efficient placement of virtual machines based on cache hit ratio | |
US12019894B2 (en) | Systems and methods for managing coresident data for containers |
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 |