CN110413199B - 用于管理存储系统的方法、设备和计算机可读存储介质 - Google Patents

用于管理存储系统的方法、设备和计算机可读存储介质 Download PDF

Info

Publication number
CN110413199B
CN110413199B CN201810398870.7A CN201810398870A CN110413199B CN 110413199 B CN110413199 B CN 110413199B CN 201810398870 A CN201810398870 A CN 201810398870A CN 110413199 B CN110413199 B CN 110413199B
Authority
CN
China
Prior art keywords
cache
bitmap
section
data
logical storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810398870.7A
Other languages
English (en)
Other versions
CN110413199A (zh
Inventor
李雄成
奉昌玉
刘友生
贾瑞勇
徐鑫磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201810398870.7A priority Critical patent/CN110413199B/zh
Priority to US16/225,808 priority patent/US10761993B2/en
Publication of CN110413199A publication Critical patent/CN110413199A/zh
Application granted granted Critical
Publication of CN110413199B publication Critical patent/CN110413199B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Abstract

本公开的实施例涉及用于管理存储系统的方法、设备和计算机程序产品。一种方法包括响应于接收到针对存储系统中的逻辑存储单元的第一区段的输入/输出(I/O)请求,获取关于该逻辑存储单元的第一位图,该逻辑存储单元被划分为包括第一区段的多个区段,并且第一位图中的一位指示是否针对多个区段中的相应区段启用了高速缓存功能。该方法还包括基于第一大小和第二大小来将第一位图转换为第二位图。该方法还包括基于第一位图,来确定高速缓存功能是否针对所述第一区段被启用。此外,该方法还包括响应于确定高速缓存功能针对第一区段被启用,至少利用存储系统中的高速缓存来处理I/O请求。本公开的实施例能够对存储系统中的高速缓存的使用实现更细粒度的控制。

Description

用于管理存储系统的方法、设备和计算机可读存储介质
技术领域
本公开的实施例总体涉及数据存储领域,具体涉及用于管理存储系统的方法、设备和计算机程序产品。
背景技术
在存储系统中,通常存在由大量的存储盘组成的存储资源池。物理逻辑存储单元可以在存储资源池上被创建。物理逻辑存储单元指代直接映射到物理存储空间的逻辑存储单元,其数量通常受到实际可用的物理存储空间的大小的限制。此外,可以基于物理逻辑存储单元来创建虚拟逻辑存储单元,以供上层应用使用。虚拟逻辑存储单元不受物理存储空间的大小的限制。系统管理员可以创建大量的虚拟逻辑存储单元,而仅当数据要被写入时才进行实际的空间分配。因此,虚拟逻辑存储单元容易实现不同的层级以存储各种不同的数据,从而满足不同的用户需求。
在存储系统中,通常还存在高速缓存部件,其通过将经常访问的数据透明地存储在相对于底层存储盘而言速度更快的存储介质(例如,闪存)中来提高数据访问的性能。然而,对高速缓存的启用和禁用通常是基于整个存储资源池进行的。也即,针对基于同一存储资源池的多个虚拟逻辑存储单元而言,无法针对一些较重要的虚拟逻辑存储单元启用高速缓存功能,而针对另一些较不重要的虚拟逻辑存储单元禁用高速缓存功能。
发明内容
本公开的实施例提供了用于管理存储系统的方法、设备和计算机程序产品。
在本公开的第一方面,提供了一种用于管理存储系统的方法。该方法包括响应于接收到针对存储系统中的逻辑存储单元的第一区段的输入/输出(I/O)请求,获取关于该逻辑存储单元的第一位图,该逻辑存储单元被划分为包括第一区段的多个区段,并且第一位图中的一位指示是否针对多个区段中的相应区段启用了高速缓存功能。该方法还包括基于第一大小和第二大小来将第一位图转换为第二位图。该方法还包括基于第一位图,来确定高速缓存功能是否针对所述第一区段被启用。此外,该方法还包括响应于确定高速缓存功能针对第一区段被启用,至少利用存储系统中的高速缓存来处理I/O请求。
在本公开的第二方面,提供了一种用于管理存储系统的设备。该设备包括至少一个处理单元和至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。该指令当由至少一个处理单元执行时使得设备执行动作,该动作包括:响应于接收到针对存储系统中的逻辑存储单元的第一区段的输入/输出(I/O)请求,获取关于该逻辑存储单元的第一位图,该逻辑存储单元被划分为包括第一区段的多个区段,并且第一位图中的一位指示是否针对多个区段中的相应区段启用了高速缓存功能;基于第一大小和第二大小来将第一位图转换为第二位图。该方法还包括基于第一位图,来确定高速缓存功能是否针对所述第一区段被启用;以及响应于确定高速缓存功能针对第一区段被启用,至少利用存储系统中的高速缓存来处理I/O请求。
在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括机器可执行指令。该机器可执行指令在由设备执行时使该设备执行根据本公开的第一方面所描述的方法的任意步骤。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了可以在其中实现本公开的某些实施例的示例存储系统的框图;
图2示出了根据本公开的实施例的在存储系统中创建的不同逻辑存储单元的示意图;
图3示出了根据本公开的实施例的用于管理存储系统的方法的流程图;
图4示出了根据本公开的实施例的用于利用高速缓存来处理I/O 请求的方法的流程图;
图5示出了根据本公开的实施例的用于将数据写入到高速缓存中的缓存页面的方法的流程图;
图6示出了根据本公开的实施例的在高速缓存处运行的后台过程的流程图;
图7示出了可以用来实施本公开内容的实施例的示例设备的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上所述,在存储系统中,通常存在由大量的存储盘组成的存储资源池。可以在存储资源池上创建不同的存储单元,诸如物理逻辑存储单元和虚拟逻辑存储单元等。
物理逻辑存储单元指代直接映射到物理存储空间的逻辑存储单元,其数量通常受到实际可用的物理存储空间的大小的限制。虚拟逻辑存储单元可以基于物理逻辑存储单元而被创建,以供上层应用使用。虚拟逻辑存储单元不受物理存储空间的大小的限制。系统管理员可以创建大量的虚拟逻辑存储单元,而仅当数据要被写入时才进行实际的空间分配。因此,虚拟逻辑存储单元容易实现不同的层级以存储各种不同的数据,从而满足不同的用户需求。
存储系统中的高速缓存通过将经常访问的数据透明地存储在相对于底层存储盘而言速度更快的存储介质(例如,闪存)中来提高数据访问的性能。然而,在传统方案中,对高速缓存的启用和禁用通常是基于整个存储资源池进行的。也即,针对基于同一存储资源池的多个虚拟逻辑存储单元而言,无法针对一些较重要的虚拟逻辑存储单元启用高速缓存功能,而针对另一些较不重要的虚拟逻辑存储单元禁用高速缓存功能。
此外,在高速缓存功能被启用的情况下,当一些虚拟逻辑存储单元被停用时,针对被停用的这些虚拟存储单元而缓存在高速缓存中的数据必须经历较长时间才能被释放(例如,必须等到相应的缓存页面的热度降低至预定阈值以下),因为高速缓存无法获知关于被停用的这些虚拟存储单元的信息。
本公开的示例实施例提出了一种用于管理存储系统的方案,旨在解决上述问题以及其他潜在问题中的一个或多个。该方案使得用户能够基于直接使用虚拟逻辑存储单元的应用来控制对高速缓存的使用,由此对高速缓存的使用实现更灵活且更细粒度的控制。当存储资源池中的一个物理逻辑存储单元被停用时,仅仅将基于该物理逻辑存储单元而创建的虚拟逻辑存储单元标记为不可用。此外,当一些虚拟逻辑存储单元被停用时,针对被停用的这些虚拟存储单元而缓存在高速缓存中的数据能够被更快地释放。
图1示出了本公开的实施例可以在其中被实现的示例存储系统 100的框图。如图1所示,存储系统100包括主机110、存储处理器 (SP)120以及存储盘130。应当理解,仅出于示例性的目的描述存储系统100的结构和功能,而不暗示对于本公开的范围的任何限制。如以下将进一步详细描述的,本公开的实施例还可以被应用到具有不同的结构和/或功能的存储系统中。
在一些实施例中,主机110可以例如是运行用户应用的任何物理计算机、虚拟机、服务器等等。主机110可以向SP 120发送输入/输出(I/O)请求,例如用于读取和写入数据等。存储资源池130可以由大量的存储盘组成,存储盘可以是任何目前已知或者将来开发的非易失性存储介质,例如磁盘、固态盘(SSD)或磁盘阵列等等。可以在存储资源池130上创建不同的存储单元,诸如物理逻辑存储单元和虚拟逻辑存储单元等。在下文中,“存储资源池”与“存储盘”可互换地使用。
在此所述的“物理逻辑存储单元”可以指代直接映射到物理存储空间的逻辑存储单元,其数量通常受到实际可用的物理存储空间的大小的限制。在此所述的“虚拟逻辑存储单元”可以基于物理逻辑存储单元而被创建,以供上层应用使用。虚拟逻辑存储单元不受物理存储空间的大小的限制。系统管理员可以创建大量的虚拟逻辑存储单元,而仅当数据要被写入时才进行实际的空间分配。因此,虚拟逻辑存储单元容易实现不同的层级以存储各种不同的数据,从而满足不同的用户需求。
图2示出了根据本公开的实施例的在示例存储系统100中创建的不同逻辑存储单元的示意图。图2示出了基于存储资源池130而创建的物理逻辑存储单元230,以及基于物理逻辑存储单元230而创建的虚拟逻辑存储单元210和220。如图2所示,物理逻辑存储单元230可以被划分成多个区段230-1、230-2……230-N(本文中统称为区段 230)。虚拟逻辑存储单元210和220可以基于这些区段中的一些区段而被创建。例如,虚拟逻辑存储单元210可以被分配有区段230-1、 230-3和230-5;而虚拟逻辑存储单元220可以被分配有区段230-2、230-4和230-N。
尽管在图2中仅示出一个物理逻辑存储单元230和两个虚拟逻辑存储单元210和220,然而应当理解这仅仅出于示例的目的而不旨在限制本公开的范围。在本公开的某些实施例中,可以基于存储资源池 130创建多个物理逻辑存储单元。可以基于所创建的多个物理逻辑存储单元来创建大量的虚拟逻辑存储单元。此外,同一逻辑存储单元可以基于不同的物理逻辑存储单元被创建。当存储资源池130中的一个物理逻辑存储单元被停用时,基于该物理逻辑存储单元而创建的虚拟逻辑存储单元可以被停用。
此外,虚拟逻辑存储单元的空间分配可以采用不同的方式来进行。在一些实施例中,例如,虚拟逻辑存储单元可以被分配有固定数量的区段。也即,在使用的过程中,该虚拟逻辑存储单元的大小不会改变。在另一些实施例中,虚拟逻辑存储单元可以以动态方式被创建,也即向其分配的区段的数量可以随着需求的改变而改变。应当理解,如图 2所示的虚拟存储单元210或220可以利用上述任一种方式来被创建,并且本公开的范围不受限制。
物理逻辑存储单元和虚拟逻辑存储单元的地址空间通常是不同的。例如,如图1所示的主机110向SP 120发送的I/O请求可以指示关于所要访问的虚拟逻辑存储单元的逻辑块地址(LBA)。SP 120在对该I/O请求进行处理时,需要将关于虚拟逻辑存储单元的地址转换成关于相应物理逻辑存储单元的逻辑块地址,从而实现对相应物理存储空间的访问。
如图1所示,SP 120大体上可以包括主机侧模块121、地址映射模块122和高速缓存123。应当理解,在一些实施例中,SP 120还可以包括除上述部件之外的其他部件,并且本公开的范围在此方面不受限制。
主机侧模块121可以从主机110接收I/O请求并将该I/O请求转发至地址映射模块122。主机侧模块121还可以根据I/O请求的处理结果向主机110返回I/O确认。地址映射模块122可以将I/O请求中指示的关于所要访问的虚拟逻辑存储单元的LBA转换成关于相应物理逻辑存储单元的LBA,并且将经过地址转换的I/O请求发送至高速缓存123。高速缓存123可以将频繁访问的数据临时缓存在相对于底层存储盘而言速度更快的存储介质(例如,闪存)中来提高数据访问的性能。例如,当I/O请求为读请求时,如果其所要读取的数据已经被缓存在高速缓存123中的页面中(也即,“缓存命中”),则高速缓存123可以直接返回该读请求所要读取的数据。当该I/O请求为写请求时,如果写请求所针对的存储单元中的数据已经被缓存在高速缓存 123的相应页面中(也即,“缓存命中”),则高速缓存123可以直接向该页面写入所请求写入的数据,并且在稍后的时间将该数据冲刷到相应的存储盘中。如果I/O请求所针对的存储单元中的数据尚未被缓存在高速缓存123中(也即,“缓存未命中”),则该I/O请求将被转发至相应存储盘以进行处理。当存储单元中的数据被频繁访问时,该数据可以被写入到高速缓存123的相应页面中,以供后续访问。
在一些实施例中,由高速缓存123提供的上述高速缓存功能可以基于逻辑存储单元中的区段而被启用或禁用。例如,可以利用关于物理逻辑存储单元的位图来指示物理逻辑存储单元中的每个区段是否启用了高速缓存功能。也即,每个物理逻辑存储单元可以具有一个相应位图,以指示该物理逻辑存储单元的所有区段中的每个区段是否启用了高速缓存功能。在本文中,这样的位图也被称为“第一位图”。在一些实施例中,第一位图例如可以被存储在基于存储资源池113中的一部分物理存储资源而创建的专门用于保存系统信息的专用逻辑存储单元中。
当第一位图中与某个区段相对应的位被设置为指示启用高速缓存功能时,该区段内的所有数据将被应用高速缓存策略。也即,当该区段内的数据被频繁访问时,数据将被缓存至高速缓存123中,以提高后续访问的性能。当第一位图中与某个区段相对应的位被设置为指示禁用高速缓存功能时,针对该区段的I/O请求将被直接转发至存储盘以进行处理。此外,如以下将进一步详细描述的,高速缓存123可以运行有后台服务,以扫描高速缓存123中的缓存页面。当高速缓存 123发现存在与被禁用高速缓存功能的区段相对应的缓存页面时,该页面将被立即冲刷至存储盘,并且与该页面相关联的元数据将从高速缓存123中被移除。
在一些实施例中,地址映射模块122可以维持虚拟逻辑存储单元和由物理逻辑存储单元提供的多个区段之间的映射关系。例如,地址映射模块122可以记录有关于虚拟逻辑存储单元的如下信息:该虚拟逻辑存储单元的标识符、该虚拟逻辑存储单元的起始LBA、该虚拟逻辑单元中的逻辑块的数量、该虚拟逻辑单元所包括的区段的数量、该虚拟逻辑单元所包括的区段中的每个区段所在的物理逻辑单元的标识符、以及该虚拟逻辑单元所包括的区段中的每个区段在其所在的物理逻辑单元中的区段编号等。
在一些实施例中,地址映射模块122可以响应于来自上层应用的请求向高速缓存123通知针对物理逻辑存储单元中的哪些区段启用高速缓存功能以及针对哪些区段禁用高速缓存功能。例如,地址映射模块122可以相应于虚拟逻辑存储单元的创建来向高速缓存123发送相应的命令,以针对该虚拟逻辑存储单元启用或禁用高速缓存功能。
在一些实施例中,地址映射模块122可以向高速缓存123发送针对一个区段启用高速缓存功能的命令(本文中也被称为“第一命令”)。例如,第一命令可以包括:与该区段相关联的虚拟逻辑存储单元的标识符、该区段所在的物理逻辑存储单元的标识符、该区段在物理逻辑存储单元中的区段标号、以及启用高速缓存功能的指示。响应于从地址映射模块122接收到第一命令,高速缓存123可以设置第一位图中与该区段相对应的位,以针对该区段启用高速缓存功能。
在一些实施例中,地址映射模块122可以向高速缓存123发送针对一个区段禁用高速缓存功能的命令(本文中也被称为“第二命令”)。例如,第二命令可以包括:与该区段相关联的虚拟逻辑存储单元的标识符、该区段所在的物理逻辑存储单元的标识符、该区段在物理逻辑存储单元中的区段标号、以及禁用高速缓存功能的指示。响应于从地址映射模块122接收到第二命令,高速缓存123可以设置第一位图中与该区段相对应的位,以针对该区段禁用高速缓存功能。
在一些实施例中,地址映射模块122可以向高速缓存123发送针对物理逻辑存储单元中的多个连续区段启用或禁用高速缓存功能的命令。例如,该命令可以包括:与多个连续区段相关联的虚拟逻辑存储单元的标识符、该多个连续区段所在的物理逻辑存储单元的标识符、该多个连续区段在物理逻辑存储单元中的起始区段的编号、该多个连续区段的数目、以及启用或禁用高速缓存功能的指示。响应于从地址映射模块122接收到该命令,高速缓存123可以设置第一位图中与该区段相对应的位,以针对该区段启用或禁用高速缓存功能。
附加地或者备选地,在一些实施例中,除了第一位图以外,每个物理逻辑存储单元可以具有一个相应位图,以指示与该物理逻辑存储单元的所有区段中的每个区段相对应的相应缓存页面是否有效。在本文中,这样的位图也被称为“第二位图”。与第一位图类似,第二位图例如可以被存储在基于存储资源池113中的一部分物理存储资源而创建的专门用于保存系统信息的专用逻辑存储单元中。例如,当第二位图中的一位被设置为“1”时,可以指示与该位相对应的区段在高速缓存123中的数据(也即,与该区段相对应的一个或多个缓存页面) 是无效的。当I/O请求命中基于第二位图而被标识为无效的缓存页面时,该I/O请求将被直接转发至物理逻辑存储单元,以直接从存储盘读取数据或者向存储盘写入数据。
在一些实施例中,当虚拟逻辑存储单元被停用时,地址映射模块 122可以向高速缓存123发送命令,以使得高速缓存123中与该虚拟逻辑存储单元相关联的缓存页面无效。例如,地址映射模块122可以向高速缓存123发送使得与一个区段相对应的一个或多个缓存页面无效的命令(在本文中,被称为“第三命令”)。例如,第三命令可以包括:与该区段相关联的虚拟逻辑存储单元的标识符、该区段所在的物理逻辑存储单元的标识符、该区段在物理逻辑存储单元中的区段标号、以及使得与该区段相对应的缓存页面无效的指示。响应于从地址映射模块122接收到第三命令,高速缓存123可以设置第二位图中与该区段相对应的位,以使得与该区段相对应的缓存页面无效。例如,当I/O 请求命中与该区段相对应的缓存页面时,该I/O请求将被直接转发至物理逻辑存储单元,以直接从存储盘读取数据或者向存储盘写入数据。以此方式,当一些虚拟逻辑存储单元被停用时,针对被停用的这些虚拟存储单元而缓存在高速缓存中的数据能够被更快地释放。
附加地或者备选地,在一些实施例中,除了第一位图和第二位图以外,每个物理逻辑存储单元还可以具有一个相应位图,以指示针对该物理逻辑存储单元的所有区段中的每个区段而缓存在高速缓存123 中的相应数据是脏数据还是干净数据。在本文中,这样的位图也被称为“第三位图”。与第一位图类似,第三位图例如可以被存储在基于存储资源池113中的一部分物理存储资源而创建的专门用于保存系统信息的专用逻辑存储单元中。在此所述的“脏数据”指代被缓存在高速缓存123中尚未被冲刷到存储盘中的数据。在此所述的“干净数据”指代被缓存在高速缓存123中的已经被冲刷到存储盘中的数据。
在一些实施例中,在将区段中的数据首次写入到高速缓存123中与该区段相对应的一个或多个缓存页面时,需要设置第三位图中与该区段相对应的位,以指示与该区段相关联的数据为脏数据。此外,如以下将进一步详细描述的,高速缓存123可以运行有后台服务,以扫描高速缓存123中的缓存页面。当扫描到缓存有脏数据的页面时,高速缓存123可以将该页面中的数据冲刷到存储盘。当与一个区段相对应的所有页面中的脏数据都被冲刷到存储盘后,高速缓存123可以设置第三位图中与该区段相对应的位,以指示与该区段相关联的数据为干净数据。
图3示出了根据本公开的实施例的用于管理存储系统的方法300 的流程图。例如,方法300可以由如图1所示的SP 120来执行。具体地,例如方法300可以在SP 120中的高速缓存123处被执行。以下结合图1来详细描述方法300中的各个动作。应当理解,方法300 还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在框310,高速缓存123响应于接收到针对存储系统中的逻辑存储单元(例如,物理逻辑存储单元)的第一区段的I/O请求,获取关于该逻辑存储单元的第一位图。在此假设该I/O请求所请求访问的是如图2所示的物理逻辑存储单元210中的区段230-3(本文中也称为“第一区段”)。在一些实施例中,第一位图例如可以被存储在基于存储资源池113中的一部分物理存储资源而创建的专门用于保存系统信息的专用逻辑存储单元中。高速缓存123可以从该专用逻辑存储单元中获取第一位图。在一些实施例中,第一位图可以包括分别与物理逻辑存储单元210中的多个区段230相对应的多个位,其中的每一位可以指示多个区段230中的相应区段是否启用了高速缓存功能。
在框320,高速缓存123可以基于第一位图来确定高速缓存功能是否针对区段230-3而被启用。当高速缓存123确定高速缓存功能针对区段230-3被禁用时,在框330,高速缓存123可以将该I/O请求转发至物理逻辑存储单元210,以直接从存储盘读取数据或者向存储盘写入数据。当高速缓存123确定高速缓存功能针对区段230-3被启用时,在框340,高速缓存123可以针对区段230-3应用高速缓存功能,以处理针对区段230-3的I/O请求。
图4示出了根据本公开的实施例的用于利用高速缓存来处理I/O 请求的方法400的流程图。例如,方法400可以作为方法300中的框340的一种示例实现。例如,方法400可以由如图1所示的SP 120来执行。具体地,例如方法400可以在SP 120中的高速缓存123处被执行。应当理解,方法400还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在框410,高速缓存123获取关于物理逻辑存储单元210的第二位图。在一些实施例中,第二位图例如可以被存储在基于存储资源池 113中的一部分物理存储资源而创建的专门用于保存系统信息的专用逻辑存储单元中。高速缓存123可以从该专用逻辑存储单元中获取第二位图。在一些实施例中,第二位图可以包括分别与物理逻辑存储单元210中的多个区段230相对应的多个位,其中的每一位可以指示高速缓存123中与多个区段230中的相应区段相对应的缓存页面是否有效。
在框420,高速缓存123可以基于第二位图来确定高速缓存123 中与区段230-3相对应的缓存页面是否有效。
当高速缓存123确定高速缓存123中与区段230-3相对应的缓存页面无效时,在框430,高速缓存123可以将该I/O请求转发至物理逻辑存储单元210,以直接从存储盘读取数据或者向存储盘写入数据。
当高速缓存123确定高速缓存123中与区段230-3相对应的缓存页面有效时,在框440,高速缓存123可以确定I/O请求所针对的区段的数据是否已经被缓存在高速缓存123的缓存页面中(也即,“缓存命中”)。如果缓存命中,则在框450,高速缓存123可以从与区段230-3相对应的缓存页面(在本文中也被称为“第一缓存页面”)中读取数据或者向该页面写入所要写入的数据。
如果缓存未命中,在框460,高速缓存123可以将该I/O请求转发至物理逻辑存储单元210,以从存储盘读取数据或向其写入数据。此外,在框470,高速缓存123可以递增与区段230-3相对应的缓存页面的引用计数。在一些实施例中,当高速缓存123中尚不存在与区段230-3相对应的缓存页面引用计数时,高速缓存123可以为区段 230-3分配空闲的缓存页面引用计数。例如,该引用计数可以指示与区段230-3相关联的数据被访问的频率。当高速缓存123中已经存在针对与区段230-3相对应的第一缓存页面的引用计数时,高速缓存123 可以递增针对第一缓存页面的引用计数。
在框480,高速缓存123可以确定针对第一缓存页面的引用计数是否超过预定阈值。当引用计数不超过预定阈值时,表明与区段230-3 相关联的数据未被频繁访问。因此,与第一缓存页面相关联的数据(例如,与针对区段230-3的I/O请求所要读取或写入的数据)可以不被缓存在第一缓存页面中。当该引用计数超过预定阈值时,表明与区段 230-3相关联的数据被频繁访问。因此,在框490,高速缓存123可以将与第一缓存页面相关联的数据(例如,与针对区段230-3的I/O 请求所要读取或写入的数据)写入到第一缓存页面中,以供后续访问和使用。
图5示出了根据本公开的实施例的用于将数据写入到高速缓存中的缓存页面的方法500的流程图。例如,方法500可以作为方法400 中的框490的一种示例实现。应当理解,方法500还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在框510,高速缓存123获取关于物理逻辑存储单元210的第三位图。在一些实施例中,第三位图例如可以被存储在基于存储资源池 113中的一部分物理存储资源而创建的专门用于保存系统信息的专用逻辑存储单元中。高速缓存123可以从该专用逻辑存储单元中获取第三位图。在一些实施例中,第三位图可以包括分别与物理逻辑存储单元210中的多个区段230相对应的多个位,其中的每一位可以指示针对多个区段230中的相应区段而缓存在高速缓存123中的相应数据是否为脏数据。
在框520,在向高速缓存123写入与区段230-3相关联的数据之前,高速缓存123可以设置第三位图,以指示与区段230-3相关联的数据为脏数据。
然后,在框530,高速缓存123可以将与区段230-3相关联的数据写入到与区段230-3相对应的第一缓存页面中。
如以上所描述的,高速缓存123可以具有在后台运行的过程,该过程可以扫描高速缓存123中的缓存页面。当高速缓存123发现存在与被禁用高速缓存功能的区段相对应的缓存页面时,该页面将被立即冲刷至存储盘,并且与该页面相关联的元数据将从高速缓存123中被移除。当扫描到缓存有脏数据的页面时,高速缓存123可以将该页面中的数据冲刷到存储盘。当与一个区段相对应的所有页面中的数据被冲刷到存储盘后,高速缓存123可以设置第二位图中与该区段相对应的位,以指示针对该区段而缓存在高速缓存123中的数据为干净数据。
图6示出了根据本公开的实施例的在高速缓存123处运行的过程 600的流程图。在一些实施例中,过程600可以在高速缓存123的后台循环地运行。也即,在过程600被允许地同时,例如高速缓存123 仍然能够接收和响应来自地址映射模块122的一个或多个命令(例如,针对区段启动或禁用高速缓存功能、或者无效缓存页面的命令等)。应当理解,过程600还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在框601,高速缓存123获取待扫描的一个区段。在一些实施例中,高速缓存123可以基于存储系统中的物理逻辑单元进行扫描,例如,逐个扫描每个物理逻辑单元中的每个区段。在另一些实施例中,高速缓存123可以高速缓存123可以基于存储系统中的虚拟逻辑存储单元进行扫描,例如,逐个扫描每个虚拟逻辑单元中的每个区段。在一些实施例中,除了物理逻辑单元和虚拟逻辑单元之外,存储系统中还可能存在基于物理逻辑单元中的区段而构建的其他存储对象。在此情况下,高速缓存123基于这样的存储对象来进行扫描。
在框602,高速缓存123基于该区段所在的物理逻辑存储单元的第一位图来确定针对该区段是否启用了高速缓存功能。如果高速缓存 123确定高速缓存功能针对该区段被禁用,则过程600进行至框601,以获取下一待处理的区段。
如果高速缓存123确定高速缓存功能针对该区段被启用,则在框 603,高速缓存123基于该物理逻辑存储单元的第二位图来确定与该区段相对应的缓存页面是否有效。如果高速缓存123确定高速缓存功能与该区段相对应的缓存页面无效,则过程600进行至框601,以获取下一待处理的区段。
如果高速缓存123确定高速缓存功能与该区段相对应的缓存页面有效,则在框604,高速缓存123基于该物理逻辑存储单元的第三位图来确定针对该区段而缓存在高速缓存123中的数据是否为脏数据。如果高速缓存123确定针对该区段被缓存的数据为干净数据,则过程 600进行至框601,以获取下一待处理的区段。
如果高速缓存123确定针对与该区段相关联的数据为脏数据,则在框605,高速缓存123获取与该区段相对应的一个或多个页面中待处理的一个页面。
在框606,高速缓存123确定该页面是否被标记为脏页面。如果高速缓存123确定该页面为脏页面,则在框607,高速缓存123将该页面冲刷至存储盘,并且在框608,将该页面标记为干净页面。在此所述的“脏页面”指代高速缓存123中尚未被冲刷到存储盘的缓存页面。在此所述的“干净页面”指代高速缓存123中已经被冲刷到存储盘中的缓存页面。
如果高速缓存123确定该页面为干净页面,则过程600进行至框 609,高速缓存123确定该页面是否是与该区段相对应的一个或多个页面中的最后一个页面。如果不是,则过程600进行至框605,以获取下一待处理的页面。
如果与该区段相关联的脏页面全部被冲刷至存储盘,则过程600 进行至框610,高速缓存123设置第三位图,以与该区段相关联的数据标记为干净数据。然后,过程600可以进行至框601,以获取下一待处理的区段。
基于以上描述能够看出,本公开的示例实施例所提出的用于管理存储系统的方案使得用户能够基于直接使用虚拟逻辑存储单元的应用来控制对高速缓存的使用,由此对高速缓存的使用实现更灵活且更细粒度的控制。当存储资源池中的一个物理逻辑存储单元被停用时,仅仅将基于该物理逻辑存储单元而创建的虚拟逻辑存储单元标记为不可用。此外,当一些虚拟逻辑存储单元被停用时,针对被停用的这些虚拟存储单元而缓存在高速缓存中的数据能够被更快地释放。
图7示出了可以用来实施本公开内容的实施例的示例设备700的示意性框图。例如,如图1所示的SP 120可以由设备700实施。如图所示,设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的计算机程序指令或者从存储单元708 加载到随机访问存储器(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM703中,还可存储设备700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704 彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/ 数据。
上文所描述的各个过程和处理,例如方法300、400、500和/或 600,可由处理单元701执行。例如,在一些实施例中,方法300、400、 500和/或600可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序被加载到RAM 703并由CPU 701执行时,可以执行上文描述的方法300、400、500和/或600的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器 (EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、 C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列 (FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (17)

1.一种用于管理存储系统的方法,包括:
响应于接收到针对存储系统中的逻辑存储单元的第一区段的输入/输出(I/O)请求,获取关于所述逻辑存储单元的第一位图,所述逻辑存储单元被划分为包括所述第一区段的多个区段,并且所述第一位图中的一位指示是否针对所述多个区段中的相应区段启用了高速缓存功能;
基于所述第一位图,来确定所述高速缓存功能是否针对所述第一区段被启用;以及
响应于确定所述高速缓存功能针对所述第一区段被启用,至少利用所述存储系统中的高速缓存来处理所述I/O请求;
其中所述高速缓存包括多个缓存页面,并且其中至少利用所述高速缓存来处理所述I/O请求包括:
获取关于所述逻辑存储单元的第二位图,所述第二位图中的一位指示与所述多个区段中的相应区段相对应的所述多个缓存页面中的相应缓存页面是否有效;
基于所述第二位图,来确定所述多个缓存页面中与所述第一区段相对应的第一缓存页面是否有效;以及
响应于确定所述第一缓存页面无效,将所述I/O请求转发至所述逻辑存储单元以进行处理。
2.根据权利要求1所述的方法,还包括:
响应于确定所述高速缓存功能针对所述第一区段被禁用,将所述I/O请求转发至所述逻辑存储单元以进行处理。
3.根据权利要求1所述的方法,其中至少利用所述高速缓存来处理所述I/O请求还包括:
响应于确定所述第一缓存页面有效,递增针对所述第一缓存页面的引用计数;以及
响应于所述引用计数超过预定阈值,将与所述I/O请求相关联的第一数据缓存在所述第一缓存页面中。
4.根据权利要求3所述的方法,其中将所述第一数据缓存在所述第一缓存页面中包括:
获取关于所述逻辑存储单元的第三位图,所述第三位图中的一位指示针对所述多个区段中的相应区段而缓存在所述高速缓存中的相应数据是否为脏数据;
设置所述第三位图,以指示与所述第一区段相关联的数据为脏数据;以及
将所述第一数据缓存在所述第一缓存页面中。
5.根据权利要求4所述的方法,还包括:
基于所述第三位图,来确定针对所述多个区段中的第二区段而缓存在所述高速缓存中的第二数据是否为脏数据;
响应于确定所述第二数据为脏数据,将所述第二数据冲刷到所述第二区段中;以及
设置所述第三位图,以指示与所述第二区段相关联的数据为干净数据。
6.根据权利要求1所述的方法,还包括:
响应于接收到针对所述多个区段中的第三区段启用所述高速缓存功能的第一命令,设置所述第一位图中与所述第三区段相对应的第一位,以针对所述第三区段启用所述高速缓存功能。
7.根据权利要求1所述的方法,还包括:
响应于接收到针对所述多个区段中的第四区段禁用所述高速缓存功能的第二命令,设置所述第一位图中与所述第四区段相对应的第二位,以针对所述第四区段禁用所述高速缓存功能。
8.根据权利要求1所述的方法,还包括:
响应于接收到使得与所述多个区段中的第五区段相对应的第二缓存页面无效的第三命令,设置所述第二位图中与所述第五区段相对应的第三位,以使得所述第二缓存页面无效。
9.一种用于管理存储系统的设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
响应于接收到针对存储系统中的逻辑存储单元的第一区段的输入/输出(I/O)请求,获取关于所述逻辑存储单元的第一位图,所述逻辑存储单元被划分为包括所述第一区段的多个区段,并且所述第一位图中的一位指示是否针对所述多个区段中的相应区段启用了高速缓存功能;
基于所述第一位图,来确定所述高速缓存功能是否针对所述第一区段被启用;以及
响应于确定所述高速缓存功能针对所述第一区段被启用,至少利用所述存储系统中的高速缓存来处理所述I/O请求;
其中所述高速缓存包括多个缓存页面,并且其中至少利用所述高速缓存来处理所述I/O请求包括:
获取关于所述逻辑存储单元的第二位图,所述第二位图中的一位指示与所述多个区段中的相应区段相对应的所述多个缓存页面中的相应缓存页面是否有效;
基于所述第二位图,来确定所述多个缓存页面中与所述第一区段相对应的第一缓存页面是否有效;以及
响应于确定所述第一缓存页面无效,将所述I/O请求转发至所述逻辑存储单元以进行处理。
10.根据权利要求9所述的设备,其中所述动作还包括:
响应于确定所述高速缓存功能针对所述第一区段被禁用,将所述I/O请求转发至所述逻辑存储单元以进行处理。
11.根据权利要求9所述的设备,其中至少利用所述高速缓存来处理所述I/O请求还包括:
响应于确定所述第一缓存页面有效,递增针对所述第一缓存页面的引用计数;以及
响应于所述引用计数超过预定阈值,将与所述I/O请求相关联的第一数据缓存在所述第一缓存页面中。
12.根据权利要求11所述的设备,其中将所述第一数据缓存在所述第一缓存页面中包括:
获取关于所述逻辑存储单元的第三位图,所述第三位图中的一位指示针对所述多个区段中的相应区段而缓存在所述高速缓存中的相应数据是否为脏数据;
设置所述第三位图,以指示与所述第一区段相关联的数据为脏数据;以及
将所述第一数据缓存在所述第一缓存页面中。
13.根据权利要求12所述的设备,其中所述动作还包括:
基于所述第三位图,来确定针对所述多个区段中的第二区段而缓存在所述高速缓存中的第二数据是否为脏数据;
响应于确定所述第二数据为脏数据,将所述第二数据冲刷到所述第二区段中;以及
设置所述第三位图,以指示与所述第二区段相关联的数据为干净数据。
14.根据权利要求9所述的设备,其中所述动作还包括:
响应于接收到针对所述多个区段中的第三区段启用所述高速缓存功能的第一命令,设置所述第一位图中与所述第三区段相对应的第一位,以针对所述第三区段启用所述高速缓存功能。
15.根据权利要求9所述的设备,其中所述动作还包括:
响应于接收到针对所述多个区段中的第四区段禁用所述高速缓存功能的第二命令,设置所述第一位图中与所述第四区段相对应的第二位,以针对所述第四区段禁用所述高速缓存功能。
16.根据权利要求9所述的设备,其中所述动作还包括:
响应于接收到使得与所述多个区段中的第五区段相对应的第二缓存页面无效的第三命令,设置所述第二位图中与所述第五区段相对应的第三位,以使得所述第二缓存页面无效。
17.一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序产品,所述计算机程序产品包括机器可执行指令,所述机器可执行指令在由设备执行时使所述设备执行根据权利要求1-8中的任一项所述的方法。
CN201810398870.7A 2018-04-28 2018-04-28 用于管理存储系统的方法、设备和计算机可读存储介质 Active CN110413199B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810398870.7A CN110413199B (zh) 2018-04-28 2018-04-28 用于管理存储系统的方法、设备和计算机可读存储介质
US16/225,808 US10761993B2 (en) 2018-04-28 2018-12-19 Method, device and computer program product for managing storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810398870.7A CN110413199B (zh) 2018-04-28 2018-04-28 用于管理存储系统的方法、设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110413199A CN110413199A (zh) 2019-11-05
CN110413199B true CN110413199B (zh) 2023-02-21

Family

ID=68292583

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810398870.7A Active CN110413199B (zh) 2018-04-28 2018-04-28 用于管理存储系统的方法、设备和计算机可读存储介质

Country Status (2)

Country Link
US (1) US10761993B2 (zh)
CN (1) CN110413199B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220261155A1 (en) * 2015-11-30 2022-08-18 Pure Storage, Inc. Utilizing Memories of Different Operational Speeds in a Vast Storage Network
KR20210004322A (ko) 2019-07-04 2021-01-13 에스케이하이닉스 주식회사 메모리 시스템에서 맵정보 및 리드카운트를 전송하는 장치 및 방법
KR20200123684A (ko) 2019-04-22 2020-10-30 에스케이하이닉스 주식회사 메모리 시스템에서 맵 정보를 전송하는 장치
US11416408B2 (en) * 2019-07-05 2022-08-16 SK Hynix Inc. Memory system, memory controller and method for operating memory system
US11422942B2 (en) 2019-04-02 2022-08-23 SK Hynix Inc. Memory system for utilizing a memory included in an external device
KR20200137181A (ko) 2019-05-29 2020-12-09 에스케이하이닉스 주식회사 메모리 시스템에서 맵정보를 전송하는 장치
KR20200139433A (ko) 2019-06-04 2020-12-14 에스케이하이닉스 주식회사 컨트롤러의 동작 방법 및 메모리 시스템
US11494399B2 (en) 2019-10-30 2022-11-08 EMC IP Holding Company LLC Method, device, and computer-readable storage medium for bitmap conversion
US11356369B1 (en) 2020-03-31 2022-06-07 Juniper Networks, Inc. Border gateway protocol update packing for a distributed routing information base
US11561823B1 (en) * 2020-05-12 2023-01-24 Juniper Networks, Inc. Lockless management of immutable objects by multi-threaded processes using multiple counters
US11372767B2 (en) 2020-10-29 2022-06-28 EMC IP Holding Company LLC Selectively processing storage commands at different granularities based on command types
CN114615142B (zh) * 2020-12-03 2023-06-09 烽火通信科技股份有限公司 一种业务处理的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104050094A (zh) * 2013-03-11 2014-09-17 Lsi公司 管理高速缓存存储区的系统、方法和计算机可读介质
US9229870B1 (en) * 2013-06-27 2016-01-05 Emc Corporation Managing cache systems of storage systems

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6834325B1 (en) * 1999-07-16 2004-12-21 Storage Technology Corporation System and method for providing client-directed staging to improve non-sequential access performance in a caching disk storage system
US7596791B2 (en) 2000-12-19 2009-09-29 Emc Corporation Methods and techniques for delivering rich Java applications over thin-wire connections with high performance and scalability
US8782344B2 (en) * 2012-01-12 2014-07-15 Fusion-Io, Inc. Systems and methods for managing cache admission
CN103795770B (zh) 2012-10-26 2017-07-04 伊姆西公司 在网络基础设施中提供高速缓存服务的方法和装置
US9773026B1 (en) * 2012-12-20 2017-09-26 EMC IP Holding Company LLC Calculation of system utilization
US9501410B2 (en) * 2013-03-15 2016-11-22 Veritas Technologies Llc Providing local cache coherency in a shared storage environment
US9329792B2 (en) * 2014-01-14 2016-05-03 International Business Machines Corporation Storage thin provisioning and space reclamation
US9489149B2 (en) * 2014-06-16 2016-11-08 Netapp, Inc. Methods and systems for using a write cache in a storage system
US9645932B1 (en) 2014-12-19 2017-05-09 EMC IP Holding Company LLC Persistent metadata cache
US9720596B1 (en) 2014-12-19 2017-08-01 EMC IP Holding Company LLC Coalescing writes for improved storage utilization
US9965201B1 (en) 2015-03-31 2018-05-08 EMC IP Holding Company LLC Coalescing file system free space to promote full-stripe writes
US10114829B1 (en) 2015-06-26 2018-10-30 EMC IP Holding Company LLC Managing data cache for file system realized within a file
US10635332B2 (en) 2017-10-30 2020-04-28 EMC IP Holding Company LLC Managing data storage arrays on behalf of host computers via specialized LUN-related queries

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104050094A (zh) * 2013-03-11 2014-09-17 Lsi公司 管理高速缓存存储区的系统、方法和计算机可读介质
US9229870B1 (en) * 2013-06-27 2016-01-05 Emc Corporation Managing cache systems of storage systems

Also Published As

Publication number Publication date
CN110413199A (zh) 2019-11-05
US20190332542A1 (en) 2019-10-31
US10761993B2 (en) 2020-09-01

Similar Documents

Publication Publication Date Title
CN110413199B (zh) 用于管理存储系统的方法、设备和计算机可读存储介质
US10802755B2 (en) Method and manager for managing storage system
US11593272B2 (en) Method, apparatus and computer program product for managing data access
US9177670B1 (en) Method and apparatus for flash cache management
CN108228647B (zh) 用于数据拷贝的方法和设备
US9280478B2 (en) Cache rebuilds based on tracking data for cache entries
US10013344B2 (en) Enhanced SSD caching
CN109213696B (zh) 用于缓存管理的方法和设备
US9971692B2 (en) Supporting concurrent operations at fine granularity in a caching framework
CN110737399B (zh) 用于管理存储系统的方法、设备和计算机程序产品
US9916249B2 (en) Space allocation in a multi-grained writeback cache
US9104553B2 (en) Extending cache for an external storage system into individual servers
US9612975B2 (en) Page cache device and method for efficient mapping
US10095595B2 (en) Instant recovery in a multi-grained caching framework
US10628311B2 (en) Reducing defragmentation in a multi-grained writeback cache
US20140244901A1 (en) Metadata management for a flash drive
US20150278090A1 (en) Cache Driver Management of Hot Data
US11593268B2 (en) Method, electronic device and computer program product for managing cache
US9239679B2 (en) System for efficient caching of swap I/O and/or similar I/O pattern(s)
US9817757B2 (en) Scalable metadata management in a multi-grained caching framework
CN108228088B (zh) 用于管理存储系统的方法和设备
CN110737397B (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN112764668A (zh) 扩展gpu存储器的方法、电子设备和计算机程序产品
US10671537B2 (en) Reducing translation latency within a memory management unit using external caching structures
CN113448877A (zh) 用于数据存储的方法、设备和计算机程序

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant