CN1290890A - 利用高速缓存器管理raid存储系统的方法和系统 - Google Patents

利用高速缓存器管理raid存储系统的方法和系统 Download PDF

Info

Publication number
CN1290890A
CN1290890A CN00129215A CN00129215A CN1290890A CN 1290890 A CN1290890 A CN 1290890A CN 00129215 A CN00129215 A CN 00129215A CN 00129215 A CN00129215 A CN 00129215A CN 1290890 A CN1290890 A CN 1290890A
Authority
CN
China
Prior art keywords
speed buffer
requested data
section
stored
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN00129215A
Other languages
English (en)
Other versions
CN1148658C (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1290890A publication Critical patent/CN1290890A/zh
Application granted granted Critical
Publication of CN1148658C publication Critical patent/CN1148658C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches

Abstract

一台计算机系统包括一台运行着应用程序的主计算机,这些应用程序从存储系统中请求数据对象。这个存储系统有一个存储设备,例如磁盘存储设备,和一个高速缓冲存储器。被主计算机频繁使用的数据对象被存储在高速缓冲存储器中。数据对象也被存储在逻辑上按照数据对象的段和段的组排列的存储设备上。高速缓冲存储器逻辑上被分成一个段高速缓冲器和一个组高速缓冲器。小粒度特征的数据,即段,被存储在这个段高速缓冲器中。

Description

利用高速缓存器管理RAID存储系统的方法和系统
本发明涉及具有直接存取存储设备例如磁盘存储器和高速缓存存储器的存储系统。具体地说,本发明是关于一种方法和一个系统的,该系统通过减少主计算机和信道对存储系统的数据存取的等待时间而提供了增强的性能。
一个普通的计算机系统包括一个主计算机和一个直接存取存储设备(DASD),例如一个或多个磁盘。在主计算机上运行的应用程序访问DASD上的寻址单元来读写数据。这种存取过程被称为磁盘输入/输出(I/O)操作。由于主计算机的运行速度比DASD的运行速度要高得多,因此,I/O磁盘操作导致正在运行的应用程序等待I/O操作被执行完成。其结果是抑制了主计算机的吞吐量。为了避免这种情况的发生,利用独立的高速缓存存储器来存储被应用程序最频繁使用的数据。
存储系统管理器被用来管理I/O磁盘操作和对高速缓冲存储器的存取。通常,数据被组织成数据对象,例如记录。当正在运行的应用程序要求存取一条记录时,存储系统管理器首先在高速缓冲存储器中查找这条记录。如果在高速缓冲存储器中查找到这条所要求的记录(即“命中”),那么可快速地存取这条记录而不必去执行耗费时间的磁盘I/O操作。如果在高速缓冲存储器中没有查找到这条所要求的记录(即“未命中”),那么存储系统管理器需要执行一个磁盘I/O操作以便从DASD中获得这条所要求的记录并将其写到高速缓冲存储器中。
通常,存储系统管理器使用一种最近最少使用(LRU)的技术管理高速缓冲存储器中的记录存储。LRU技术使用一个由多个控制块组成的链或队列。每一个控制块标识出(a)一条记录的地址,(b)一个用来标识该链中下一条相邻记录的地址的前向链指针,(c)一个用来标识该链中前一条记录的地址的后向指针。存储系统管理器维护用来标识LRU记录的第一定位指针,例如链的首端。存储系统管理器也维护用来标识最近最常使用(MRU)的记录的第二定位指针,例如链的尾端。
每当高速缓冲器被命中时,被命中记录的控制块被从队列中取出,然后作为MRU记录被排列在LRU链的尾端。每当高速缓冲器未被命中时,LRU控制块被从该链的首端取出。最近被请求的记录被从DASD中升级到高速缓冲存储器中的一个指定的地址。利用被升级的记录及指定的地址的标识符来修改从队列中被取出的控制块,并将其作为MRU控制块排列在LRU链的尾部。
在设计存储系统的高速缓冲存储器中,大部分的注意力都被集中于提高被请求的数据记录在高速缓冲存储器中会被找到的概率。例如,专利号为5,717,893的美国专利描述了一个被分成一个全局高速缓冲器和大量的本地高速缓冲器的高速缓冲存储器,每个本地高速缓冲器被分配来存储一种指定类型的数据记录。各种类型的数据记录被从本地高速缓冲器中或从磁盘存储系统中降级到全局高速缓冲器中。根据LRU算法,一条LRU数据记录被从全局高速缓冲器中降级到数据类型与这条被取出的LRU记录的数据类型相匹配的本地高速缓冲器中。当本地高速缓冲器存储满了时,LRU记录被降级到存储系统中。由于设计时采用了给较常使用的数据记录类型分配较多的高速缓冲器的分配方案,因此提高了高速缓冲器的命中率。而且也具有允许逻辑地和动态地调整分配大小的特征,以便能够针对较常使用的数据类型增加高速缓冲器的大小,同时针对不常使用的数据类型减小高速缓冲器的大小。
其它现有的技术方案通过消除高速缓冲器中的数据记录的重复来增加高速缓冲器的命中率。这类典型的方案在专利号为5,802,572和5,627,990的美国专利中被描述。
DASD系统通过利用在出现故障的情况下确保数据恢复的几何结构中所配置的多个小存储模块而已得到改进。
这些已被改进的系统通常被称为廉价(或独立)冗余阵列磁盘机(RAID)。在这样的一些几何结构中,一个数据对象被分成数据部分,而每一个数据部分被存储在这些磁盘中的不同的一个磁盘上。在一个已知为RAID4级的几何结构中,这些磁盘中的一个磁盘专门被用来存储这些数据部分的奇偶校验部分。该奇偶校验部分在出现故障时被用来重新生成数据部分。对于写操作,这个几何结构要求两个不同的写访问,一个写访问是对存储数据部分的磁盘的写访问,另一个是对存储奇偶校验部分的磁盘的写访问。
在另一个已知为RAID5级的几何结构中,这些磁盘被分割以在阵列中的现用磁盘组上分配数据信息和奇偶校验信息。每个被分割的部分通常被称为一个数据条。一个数据条的奇偶校验信息通常被存放在一个磁盘上,数据被存放在该数据条的其余的磁盘上。包含奇偶校验信息的磁盘随数据条的不同而各不相同。这就允许并行地管理多个数据条,从而使得大的数据块能够升级或降级。
上面所提到的增加高速缓冲器命中率的方案针对相当小的数据对象,例如页、表等。它们并不采用RAID系统的功能来处理大得多的数据对象,例如包含许多较小的页对象的数据条。
因此,需要一个具有已被提高高速缓冲命中概率的高速缓冲存储器。特别是需要一个采用RAID存储设备的数据条存取功能的高速缓冲存储器。
本发明使用一台运行着应用程序的主计算机,这些应用程序从存储系统中请求数据对象。这个存储系统有一个存储设备,例如磁盘存储设备,和一个高速缓冲存储器。被主计算机频繁使用的数据对象被存储在高速缓冲存储器中。数据对象也可被存储在逻辑上按数据的段和段的分组被排列的存储设备上。高速缓冲存储器逻辑上被分成第一高速缓冲器和第二高速缓冲器。
本发明的方法利用第一高速缓冲器存储具有小的粒度的段,利用第二高速缓冲器存储具有大的粒度的段的分组。当主计算机请求存取数据时,本发明的方法判断被请求的数据是否被存储在第一高速缓冲器。如果被请求的数据没有被存储在第一高速缓冲器中,那么本发明的方法判断被请求的数据是否被存储在第二高速缓冲器中。如果被请求的数据没有被存储在第二高速缓冲器中,那么被存储在存储设备中的一个段的分组被访问,在这些段的某一个段中包含了被请求的数据。接着,这个段的分组被存储在第二高速缓冲器中,而包含了被请求数据的第一段被存储在第一高速缓冲器中。然后,从第一高速缓冲器中存取被请求的数据。
如果本方法判断出被请求的数据被存储在第二高速缓冲器中而不是在第一高速缓冲器中,那么包含了被请求数据的段的一个副本被传送给第一高速缓冲器。
本方法利用不同的LRU方法管理来自第一高速缓冲器中的最近最少使用的段的降级以及来自第二高速缓冲器中的段的分组的降级,为没有被存储在第一高速缓冲器和第二高速缓冲器中的被请求的数据分配存储空间。
将高速缓冲存储器分成第一高速缓冲器和第二高速缓冲器以及在第一高速缓冲器中存储段和在第二高速缓冲器中存储组是本发明的一个重要特征。该特征利用了一个请求组中的一个数据对象的应用程序也会需要在同一个组中但不必是在同一个段中的其他数据对象的这种可能性。
本发明的高速缓冲存储器系统利用了一个包含上面所描述的有关本发明的方法的过程的多粒度高速缓冲器管理程序。
按照本发明,存储器媒质控制高速缓冲存储器执行上面所描述的本发明的方法的过程。
本发明的其他更多的目的、优点及特征将根据后附的图并参照下列的详细描述得到理解,其中相同的参考字符表示相同的结构构件,以及
图1是按照本发明的包括一个多粒度高速缓冲存储器的一个计算机系统的方框图;
图2是按照本发明的一个多粒度的程序的读过程的流程图;以及
图3~图5是按照本发明描绘一个多粒度的程序的写过程的流程图。
参照图1,图中给出了一个计算机系统10。计算机系统10包括一个主计算机12和一个存储系统14。存储系统14包括一个主适配器16、一个存储设备18和一个按照本发明的多粒度高速缓冲存储器30。多粒度高速缓冲存储器30与主适配器16一同被耦合在主计算机12和存储设备18之间的一条数据路径上。
主计算机12通常包含了一个或多个运行应用程序的处理器。这些处理器可以并行地运行一个单独的应用程序、或在不同时间运行不同的应用程序、或并发地运行应用程序、或按照由此任意组合的方式运行应用程序。这些应用程序使用构成逻辑数据结构的数据对象。一个逻辑数据结构通常可以是例如页或表等的一条记录。为了存储的目的,多个数据对象逻辑上被安排在一个段中,多个段逻辑上被安排在一个组中。
在一个RAID-5阵列的首选实施例中,一个组对应着一个数据条(即,有时在该领域也被称为一个阵列柱面),一个段对应着一个数据条的一个盘(即,有时在该领域也被称为一个阵列道)。然而,本发明认为对象的逻辑数据结构、段和组可以用一种灵活的方式被定义。同样,熟知本领域的那些人将会认为对应于这些逻辑数据结构的其他的物理布局是可行的。
主适配器16适当地可以是一个在存储系统14和主计算机12之间用来交换数据记录的具有发送和接收功能的传统设备。
存储设备18适当地可以是一个具有多个磁盘19的磁盘存储设备。最好地,存储设备18使用RAID存储方案中的磁盘19,以便多粒度高速缓冲存储器30能够利用RAID的功能并发地管理相当大(一个或多个粒面)的数据块。
根据本发明,高速缓冲存储器30包括一个多粒度管理器36。按照本发明的方法,管理器36逻辑上将高速缓冲存储器30分成第一高速缓冲器32和第二高速缓冲器34。管理器36对来自主计算机12的数据存取请求作出响应以产生一个较低粒度的数据结构,例如被存储在第一高速缓冲器32中的段。管理器36对来自主计算机12的数据存取请求作出响应以产生一个较高粒度的数据结构,例如被存储在第二高速缓冲器34中的组。第一高速缓冲器32和第二高速缓冲器34既可以被设计成高速缓冲存储器30的物理区域,也可以被设计成高速缓冲存储器30的逻辑区域。
逻辑上将高速缓冲存储30分成第一高速缓冲器32和第二高速缓冲器34、以及在第一高速缓冲器32中存储段和在第二高速缓冲器34中存储组是本发明的一个重要特征。它利用了一个请求组中数据对象的应用也需要在同一个组中但不必要在同一个段中的其它数据对象的可能性。预计高速缓冲器未命中率将会减少到原来的1/4。
管理器36包括一个段的LRU列表35和用传统的LRU方法来管理第一高速缓冲器32的段的LRU列表35的第一高速缓冲器管理器37。管理器36也包括一个组的LRU列表38和一个用传统的LRU方法来管理第二高速缓冲器32的组的LRU列表38的组管理器39。管理器36还包括一个读过程50、一个段的写过程60和一个组的写过程80。
参照图2,当主计算机12针对读操作请求一个数据存取操作时,读过程50便开始了。步骤51判断被请求的数据是否在段的LRU列表35中。如果被请求的数据是在段的LRU列表35中,那么步骤57将被请求的数据的一个副本从第一高速缓冲器32中传送到主计算机12。
如果被请求的数据不在段的LRU列表35中(第一高速缓冲器未命中),那么步骤52判断被请求的数据是否在组的LRU列表38中。如果被请求的数据是在组的LRU列表38中,那么步骤54将包含了被请求的数据的该段的一个副本从第二高速缓冲器34中升级到第一高速缓冲器32中。步骤54也与第一高速缓冲器管理器37一同来修改段的LRU列表35,以在该列表的MRU部分中包括该升级段的地址。然后,步骤57将被请求的数据的一个副本传送到主计算机12中。
如果被请求的数据不在组的LRU列表38中(第二高速缓冲器未被命中),步骤55将包含了被请求的数据的一个组的副本从磁盘存储设备18中升级到第二高速缓冲器34中。步骤55也与第二高速缓冲器管理器一同来修改组的LRU列表38,以在该列表的MRU部分中包括该升级组的地址。然后,步骤54按照上面所描述的将包含了被请求的数据的这个段从第二高速缓冲器34升级到第一高速缓冲器32中。然后,步骤57将被请求的记录的一个副本传送到主计算机12。
参照图3和图4,段的写过程60包括图3所示的一个同步过程61和图4所示的一个异步过程70。首先,参照图3,当主计算机12针对写操作请求一个数据存取操作时,同步过程61便开始了。步骤62判断被请求的数据是否已经存在于段的LRU列表35中。如果已经存在,那么步骤64将这个被写的数据传送到段的LRU高速缓冲器32中,以便修改这个已经存在的数据。步骤64也修改段的LRU列表35。步骤64也将这个段的一个段等待标志设置为0。
如果步骤62判断出这个被请求的数据不存在于段的LRU列表35中,那么步骤63在第一高速缓冲器32中分配一个地址。然后,除去被写的这个数据不对以前存在的版本进行修改外,步骤64按照上面所描述的步骤被执行。
参照图4,异步过程70通常是处于睡眠状态,当在第一高速缓冲器32中有一个被修改的段需要被降级到第二高速缓冲器34和/或磁盘存储设备18中时,由步骤71唤醒它。当步骤71判断出有降级任务需要被执行时,步骤72在段的LRU列表35中查找下一个被修改的段。步骤73判断这个段是否在组的LRU列表38中。如果不在,步骤74判断段的等待标志是否被设置为0。如果已被设置为0,那么步骤77将段的等待标志设置为1。此时,如果异步过程70已经完成了对它当前的工作的扫描任务,那么异步过程70要么进到段的LRU列表35中的下一个被修改的段,要么进入短时间的睡眠状态。这样提供了一个在存储到磁盘存储设备18中之前允许对段进行其它的修改的等待特征。
然后,步骤71再次唤醒异步过程70并重复执行步骤72~74。现在步骤74将判断出段的等待标志没有被设置为0。然后,步骤76将把被修改的段降级到磁盘存储设备18中。此时,如果异步过程70已经完成了它当前的工作的扫描任务,那么异步过程70要么进到段的LRU列表35中的下一个被修改的段,要么进入短时间的睡眠状态。
如果步骤73判断出被修改的段是在组的LRU列表38中,那么步骤75将被修改的段传送到第二高速缓冲器34中;以便修改已存在的组。步骤75也修改组的LRU列表38。步骤75也将这个组的组等待标志设置为0。然后,异步过程70进入其睡眠状态。
参照图5,组的写过程80也是一个异步过程,当有组的降级工作要被执行时,在步骤81唤醒它。当组的写过程80被步骤81唤醒时,步骤82在组的LRU列表38中查找下一个被修改的组。步骤83判断该组的等待标志是否被设置为0。如果为0,那么,步骤84将该组的等待标志设置为1。然后,组的写过程80进入短时间的睡眠状态。这样提供了一个在存储到磁盘存储设备18中之前允许对组进行其它的修改的等待特征。
然后,步骤81再次唤醒组的写过程80,并重复执行步骤82和83。现在步骤83将判断出组的等待标志没有被设置为0。此时,步骤85将把被修改的组降级到磁盘存储设备18中。然后,组的写过程80进入睡眠状态。
本发明已被参照着其首选格式进行了具体描述,很明显,在不背离后附的权利要求书中所定义的本发明的精神及范围的情况下,对它进行各种改变和修改是可能的。

Claims (21)

1.一种用来管理高速缓冲存储器的方法,该高速缓冲存储器逻辑上被分成第一高速缓冲器和第二高速缓冲器,所述高速缓冲存储器被放置在主计算机和存储设备之间的数据路径上,所述方法包括:
(a)响应于来自所述主计算机的存取数据的请求,判断所述被请求的数据是否被存储在所述第一高速缓冲器中,如果所述被请求的数据没有被存储在所述第一高速缓冲器中,那么判断所述被请求的数据是否被存储在所述第二高速缓冲器中;
(b)如果所述被请求的数据没有被存储在所述第二高速缓冲器中,那么存取被存储在所述存储设备中的段的一个组,在所述段的这个组中的第一段包含所述被请求的数据;
(c)在所述第二高速缓冲器中存储所述段的这个组,在所述第一高速缓冲器中存储包含了所述被请求的数据的所述第一段;以及
(d)如果步骤(a)判断出所述被请求的数据被存储在所述第一高速缓冲器中,或者当步骤(c)已经在所述第一高速缓冲器中存储了所述第一段时,那么从所述第一高速缓冲器中存取所述被请求的数据。
2.权利要求1的方法,还包括:
(e)如果步骤(a)判断出被请求的数据被存储在所述第二高速缓冲器中而不是被存储在所述第一高速缓冲器中,那么在所述第二高速缓冲器中存取包含了所述被请求的数据的第二段,并在所述第一高速缓冲器中存储所述第二段;以及
(f)当步骤(e)已经在所述第一高速缓冲器中存储了所述第二段时,从所述第一高速缓冲器中存取所述被请求的数据。
3.权利要求2的方法,还包括:
(g)如果步骤(a)判断出被请求的数据没有被存储在所述第一高速缓冲器中,那么按照一个最近最少使用的方法,把最近最少使用的段从所述第一高速缓冲器降级;以及
(h)如果步骤(a)判断出被请求的数据没有被存储在所述第二高速缓冲器中,那么按照一个最近最少使用的方法,把最近最少使用的所述段的这个组从所述第二高速缓冲器降级。
4.权利要求3的方法,还包括:
(i)维护被步骤(g)所使用的所述第一高速缓冲器的第一最近最少使用的列表;以及
(j)维护被步骤(h)所使用的所述第二高速缓冲器的第二最近最少使用的列表。
5.权利要求2的方法,还包括:
(g)如果所述存取请求是一个用来写所述被请求的数据的被修改的版本的请求,那么将所述被修改的版本传送到所述第一高速缓冲器中;以及
(h)通过所述第二高速缓冲器直接地或间接地从所述第一高速缓冲器中将所述被修改的版本的一个副本传送到所述存储设备中。
6.权利要求5的方法,其中如果所述被请求的数据不在所述第二高速缓冲器中,那么步骤(h)采用直接地方式传送,而如果所述被请求的数据是在所述第二高速缓冲器中,那么步骤(h)采用间接地方式传送。
7.权利要求6的方法,其中所述存储设备是一个RAID存储设备,以及其中所述每一个段是一个逻辑阵列道,和所述每一个组是一个逻辑阵列柱面。
8.一个位于主计算机和存储设备之间的数据路径上的多粒度高速缓冲存储器系统,所述多粒度高速缓冲存储器系统包括:
一个逻辑上被分为第一高速缓冲器和第二高速缓冲器的高速缓冲存储器;以及
一个用来处理来自所述主计算机的用于数据存取的请求的多粒度管理器,所述多粒度管理器执行一个过程,该过程包括:
(a)响应于来自所述主计算机的存取数据的请求,判断所述被请求的数据是否被存储在所述第一高速缓冲器中,如果所述被请求的数据没有被存储在所述第一高速缓冲器中,那么判断所述被请求的数据是否被存储在所述第二高速缓冲器中;
(b)如果所述被请求的数据没有被存储在所述第二高速缓冲器中,那么存取被存储在所述存储设备中的段的一个组,在所述段的这个组中的第一段包含所述被请求的数据;
(c)在所述第二高速缓冲器中存储所述段的这个组,在所述第一高速缓冲器中存储包含了所述被请求的数据的所述第一段;以及
(d)如果步骤(a)判断出所述被请求的数据被存储在所述第一高速缓冲器中,或者当步骤(c)已经在所述第一高速缓冲器中存储了所述第一段时,那么从所述第一高速缓冲器中存取所述被请求的数据。
9.权利要求8的多粒度存储器系统,其中所述过程还包括:
(e)如果步骤(a)判断出被请求的数据被存储在所述第二高速缓冲器中而不是被存储在所述第一高速缓冲器中,那么在所述第二高速缓冲器中存取包含了所述被请求的数据的第二段,并在所述第一高速缓冲器中存储所述第二段;以及
(f)当步骤(e)已经在所述第一高速缓冲器中存储了所述第二段时,从所述第一高速缓冲器中存取所述被请求的数据。
10.权利要求9的多粒度存储器系统,其中所述过程还包括:
(g)如果步骤(a)判断出被请求的数据没有被存储在所述第一高速缓冲器中,那么按照一个最近最少使用的方法,把最近最少使用的段从所述第一高速缓冲器降级;以及
(h)如果步骤(a)判断出被请求的数据没有被存储在所述第二高速缓冲器中,那么按照一个最近最少使用的方法,把最近最少使用的所述段的这个组从所述第二高速缓冲器降级。
11.权利要求10的多粒度存储器系统,其中所述过程还包括:
(i)维护被步骤(g)所使用的所述第一高速缓冲器的第一最近最少使用的列表;以及
(j)维护被步骤(h)所使用的所述第二高速缓冲器的第二最近最少使用的列表。
12.权利要求9的多粒度存储器系统,其中所述过程还包括:
(g)如果所述存取请求是一个用来写所述被请求的数据的被修改的版本的请求,那么将所述被修改的版本传送到所述第一高速缓冲器中;以及
(h)通过所述第二高速缓冲器直接地或间接地从所述第一高速缓冲器中将所述被修改的版本的一个副本传送到所述存储设备中。
13.权利要求12的多粒度存储器系统,其中如果所述被请求的数据不在所述第二高速缓冲器中,那么步骤(h)采用直接地方式传送,而如果所述被请求的数据是在所述第二高速缓冲器中,那么步骤(h)采用间接地方式传送。
14.权利要求13的多粒度存储器系统,其中所述存储设备是一个RAID存储设备,以及其中所述每一个段是一个逻辑阵列道,和所述每一个组是一个逻辑阵列柱面。
15.一个用来管理位于主计算机和存储设备之间的数据路径上的多粒度高速缓冲存储器系统的存储器媒质,所述高速缓冲存储器系统包括一个高速缓冲器管理器和一个逻辑上被分为第一高速缓冲器和第二高速缓冲器的高速缓冲存储器,所述存储器媒质包括:
利用一个过程来管理所述多粒度高速缓冲存储器系统的方法,该过程包括:
(a)响应于来自所述主计算机的存取数据的请求,判断所述被请求的数据是否被存储在所述第一高速缓冲器中,如果所述被请求的数据没有被存储在所述第一高速缓冲器中,那么判断所述被请求的数据是否被存储在所述第二高速缓冲器中;
(b)如果所述被请求的数据没有被存储在所述第二高速缓冲器中,那么存取被存储在所述存储设备中的段的一个组,在所述段的这个组中的第一段包含所述被请求的数据;
(c)在所述第二高速缓冲器中存储所述段的这个组,在所述第一高速缓冲器中存储包含了所述被请求的数据的所述第一段;以及
(d)如果步骤(a)判断出所述被请求的数据被存储在所述第一高速缓冲器中,或者当步骤(c)已经在所述第一高速缓冲器中存储了所述第一段时,那么从所述第一高速缓冲器中存取所述被请求的数据。
16.权利要求15的存储器媒质,其中所述过程还包括:
(e)如果步骤(a)判断出被请求的数据被存储在所述第二高速缓冲器中而不是被存储在所述第一高速缓冲器中,那么在所述第二高速缓冲器中存取包含了所述被请求的数据的第二段,并在所述第一高速缓冲器中存储所述第二段;以及
(f)当步骤(e)已经在所述第一高速缓冲器中存储了所述第二段时,从所述第一高速缓冲器中存取所述被请求的数据。
17.权利要求16的存储器媒质,其中所述过程还包括:
(g)如果步骤(a)判断出被请求的数据没有被存储在所述第一高速缓冲器中,那么按照一个最近最少使用的方法,把最近最少使用的段从所述第一高速缓冲器降级;以及
(h)如果步骤(a)判断出被请求的数据没有被存储在所述第二高速缓冲器中,那么按照一个最近最少使用的方法,把最近最少使用的所述段的这个组从所述第二高速缓冲器降级。
18.权利要求17的存储器媒质,其中所述过程还包括:
(i)维护被步骤(g)所使用的所述第一高速缓冲器的第一最近最少使用的列表;以及
(j)维护被步骤(h)所使用的所述第二高速缓冲器的第二最近最少使用的列表。
19.权利要求16的存储器媒质,其中所述过程还包括:
(g)如果所述存取请求是一个用来写所述被请求的数据的被修改的版本的请求,那么将所述被修改的版本传送到所述第一高速缓冲器中;以及
(h)通过所述第二高速缓冲器直接地或间接地从所述第一高速缓冲器中将所述被修改的版本的一个副本传送到所述存储设备中。
20.权利要求19的存储器媒质,其中如果所述被请求的数据不在所述第二高速缓冲器中,那么步骤(h)采用直接地方式传送,而如果所述被请求的数据是在所述第二高速缓冲器中,那么步骤(h)采用间接地方式传送。
21.权利要求20的存储器媒质,其中所述存储设备是一个RAID存储设备,以及其中所述每一个段是一个逻辑阵列磁道,和所述每一个组是一个逻辑阵列柱面。
CNB001292153A 1999-10-01 2000-09-28 利用高速缓存器管理raid存储系统的方法和系统 Expired - Lifetime CN1148658C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/410,499 US6341331B1 (en) 1999-10-01 1999-10-01 Method and system for managing a raid storage system with cache
US09/410,499 1999-10-01

Publications (2)

Publication Number Publication Date
CN1290890A true CN1290890A (zh) 2001-04-11
CN1148658C CN1148658C (zh) 2004-05-05

Family

ID=23624989

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB001292153A Expired - Lifetime CN1148658C (zh) 1999-10-01 2000-09-28 利用高速缓存器管理raid存储系统的方法和系统

Country Status (6)

Country Link
US (1) US6341331B1 (zh)
JP (1) JP3697149B2 (zh)
KR (1) KR100373313B1 (zh)
CN (1) CN1148658C (zh)
GB (1) GB2357172B (zh)
SG (1) SG87172A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100342351C (zh) * 2004-02-05 2007-10-10 株式会社日立制作所 存储子系统和存储子系统的控制方法
CN100380305C (zh) * 2003-06-27 2008-04-09 株式会社日立制作所 存储系统
CN100435117C (zh) * 2003-12-18 2008-11-19 伊姆西公司 传送数据的方法
CN102023809B (zh) * 2009-09-21 2012-10-17 成都市华为赛门铁克科技有限公司 存储系统、从存储系统读取数据的方法及写入数据的方法
CN103257932A (zh) * 2012-01-17 2013-08-21 国际商业机器公司 用于管理计算机可读高速缓存系统中的数据的方法和系统

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3705731B2 (ja) * 2000-06-05 2005-10-12 富士通株式会社 入出力制御装置
JP4219633B2 (ja) * 2002-07-25 2009-02-04 株式会社日立製作所 記憶装置システムのデステージ方法、ディスク制御装置、記憶装置システム、及びプログラム
US7219169B2 (en) * 2002-09-30 2007-05-15 Sun Microsystems, Inc. Composite DMA disk controller for efficient hardware-assisted data transfer operations
JP3933027B2 (ja) * 2002-10-17 2007-06-20 日本電気株式会社 ディスクアレイ装置におけるキャッシュメモリ分割管理方式
US6922754B2 (en) * 2002-12-09 2005-07-26 Infabric Technologies, Inc. Data-aware data flow manager
JP2004302751A (ja) * 2003-03-31 2004-10-28 Hitachi Ltd 計算機システムの性能管理方法、および、記憶装置の性能を管理する計算機システム
TW200504577A (en) * 2003-07-16 2005-02-01 Matsushita Electric Ind Co Ltd Management method for data storage in data recording medium, and information processing device using the same
US7613945B2 (en) * 2003-08-14 2009-11-03 Compellent Technologies Virtual disk drive system and method
JP4437650B2 (ja) * 2003-08-25 2010-03-24 株式会社日立製作所 ストレージシステム
WO2005041044A1 (en) * 2003-09-24 2005-05-06 Seagate Technology Llc Multi-level caching in data storage devices
JP4257783B2 (ja) 2003-10-23 2009-04-22 株式会社日立製作所 論理分割可能な記憶装置及び記憶装置システム
JP4412981B2 (ja) * 2003-11-26 2010-02-10 株式会社日立製作所 ストレージシステム及同システムにおけるデータキャッシング方法
JP2005267008A (ja) 2004-03-17 2005-09-29 Hitachi Ltd ストレージ管理方法およびストレージ管理システム
US20060031639A1 (en) * 2004-08-06 2006-02-09 International Business Machines Corporation Write unmodified data to controller read cache
US7536513B2 (en) * 2005-03-31 2009-05-19 International Business Machines Corporation Data processing system, cache system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state
JP4813843B2 (ja) * 2005-08-04 2011-11-09 株式会社日立製作所 ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法
KR100833178B1 (ko) 2005-08-26 2008-05-28 삼성전자주식회사 캐시 메모리에 저장되는 블록개수를 제어할 수 있는 캐시메모리 시스템 및 동작 방법
US7574556B2 (en) * 2006-03-20 2009-08-11 International Business Machines Corporation Wise ordering for writes—combining spatial and temporal locality in write caches
US7500050B2 (en) 2006-03-20 2009-03-03 International Business Machines Corporation Wise ordering for writes—combining spatial and temporal locality in write caches for multi-rank storage
KR100876841B1 (ko) * 2006-08-22 2009-01-07 엘지전자 주식회사 캐쉬 메모리 탑재형 컴퓨터 및 그 제어 방법
US7984313B2 (en) * 2008-04-17 2011-07-19 International Business Machines Corporation Method, apparatus and system for reducing power consumption involving data storage devices
US8291245B2 (en) * 2008-04-17 2012-10-16 International Business Machines Corporation Method, apparatus and system for reducing power consumption based on storage device data migration
US8769201B2 (en) * 2008-12-02 2014-07-01 Intel Corporation Technique for controlling computing resources
US8850114B2 (en) 2010-09-07 2014-09-30 Daniel L Rosenband Storage array controller for flash-based storage devices
US8688913B2 (en) 2011-11-01 2014-04-01 International Business Machines Corporation Management of partial data segments in dual cache systems
US9021201B2 (en) * 2012-01-17 2015-04-28 International Business Machines Corporation Demoting partial tracks from a first cache to a second cache
US8966178B2 (en) * 2012-01-17 2015-02-24 International Business Machines Corporation Populating a first stride of tracks from a first cache to write to a second stride in a second cache
US11556473B2 (en) * 2020-07-30 2023-01-17 EMC IP Holding Company LLC Cache memory management

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2037037B (en) 1978-12-11 1983-07-27 Honeywell Inf Systems Data-processing apparatus
US5210848A (en) 1989-02-22 1993-05-11 International Business Machines Corporation Multi-processor caches with large granularity exclusivity locking
EP0389151A3 (en) 1989-03-22 1992-06-03 International Business Machines Corporation System and method for partitioned cache memory management
US5155832A (en) * 1989-07-05 1992-10-13 Hewlett-Packard Company Method to increase performance in a multi-level cache system by the use of forced cache misses
US5155828A (en) * 1989-07-05 1992-10-13 Hewlett-Packard Company Computing system with a cache memory and an additional look-aside cache memory
US5293609A (en) * 1991-04-19 1994-03-08 International Business Machines Corporation Hit-density-based replacement for data cache with prefetching
JP2810593B2 (ja) * 1992-05-13 1998-10-15 三菱電機株式会社 記憶装置
US5434992A (en) * 1992-09-04 1995-07-18 International Business Machines Corporation Method and means for dynamically partitioning cache into a global and data type subcache hierarchy from a real time reference trace
US5572704A (en) 1993-12-15 1996-11-05 Silicon Graphics, Inc. System and method for controlling split-level caches in a multi-processor system including data loss and deadlock prevention schemes
US5636359A (en) 1994-06-20 1997-06-03 International Business Machines Corporation Performance enhancement system and method for a hierarchical data cache using a RAID parity scheme
JP3030229B2 (ja) 1994-06-20 2000-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション データを転送する方法及びデータ記憶システム
US5634109A (en) * 1994-06-20 1997-05-27 International Business Machines Corporation Method and system for enhanced data management efficiency in memory subsystems utilizing redundant arrays of disk memory devices and a nonvolatile cache
US5615352A (en) * 1994-10-05 1997-03-25 Hewlett-Packard Company Methods for adding storage disks to a hierarchic disk array while maintaining data availability
US5778426A (en) 1995-10-23 1998-07-07 Symbios, Inc. Methods and structure to maintain a two level cache in a RAID controller and thereby selecting a preferred posting method
US5802572A (en) 1996-03-15 1998-09-01 International Business Machines Corporation Write-back cache having sub-line size coherency granularity and method for maintaining coherency within a write-back cache
US5933840A (en) * 1997-05-19 1999-08-03 International Business Machines Corporation Garbage collection in log-structured information storage systems using age threshold selection of segments

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100380305C (zh) * 2003-06-27 2008-04-09 株式会社日立制作所 存储系统
CN100435117C (zh) * 2003-12-18 2008-11-19 伊姆西公司 传送数据的方法
CN100342351C (zh) * 2004-02-05 2007-10-10 株式会社日立制作所 存储子系统和存储子系统的控制方法
CN102023809B (zh) * 2009-09-21 2012-10-17 成都市华为赛门铁克科技有限公司 存储系统、从存储系统读取数据的方法及写入数据的方法
CN103257932A (zh) * 2012-01-17 2013-08-21 国际商业机器公司 用于管理计算机可读高速缓存系统中的数据的方法和系统
CN103257932B (zh) * 2012-01-17 2016-03-16 国际商业机器公司 用于管理计算机可读高速缓存系统中的数据的方法和系统

Also Published As

Publication number Publication date
JP2001142778A (ja) 2001-05-25
KR20010039936A (ko) 2001-05-15
SG87172A1 (en) 2002-03-19
GB2357172A (en) 2001-06-13
GB0023633D0 (en) 2000-11-08
GB2357172B (en) 2003-11-12
US6341331B1 (en) 2002-01-22
CN1148658C (zh) 2004-05-05
KR100373313B1 (ko) 2003-02-25
JP3697149B2 (ja) 2005-09-21

Similar Documents

Publication Publication Date Title
CN1148658C (zh) 利用高速缓存器管理raid存储系统的方法和系统
US6148368A (en) Method for accelerating disk array write operations using segmented cache memory and data logging
US5537588A (en) Partitioned log-structured file system and methods for operating the same
US5551003A (en) System for managing log structured array (LSA) of DASDS by managing segment space availability and reclaiming regions of segments using garbage collection procedure
US6941420B2 (en) Log-structure array
US6473830B2 (en) System and method for organizing data stored in a log structured array
US6360300B1 (en) System and method for storing compressed and uncompressed data on a hard disk drive
US10013361B2 (en) Method to increase performance of non-contiguously written sectors
US6785771B2 (en) Method, system, and program for destaging data in cache
US9323687B2 (en) Use of differing granularity heat maps for caching and migration
US9417808B2 (en) Promotion of partial data segments in flash cache
JPH06259197A (ja) アレイ型ディスクシステムの制御方式
JPH10105344A (ja) データ記録装置システム及びそのデータ書込方法
US9471252B2 (en) Use of flash cache to improve tiered migration performance
JPH11288387A (ja) ディスクキャッシュ装置
JPS6326417B2 (zh)
US11182307B2 (en) Demoting data elements from cache using ghost cache statistics
JP3409627B2 (ja) 記憶装置システム
Jin et al. Buffer system for optical storage system
JP2005122765A (ja) 計算機システムおよび二次記憶装置
CN1991774A (zh) 存储系统之间保护回写式高速缓存器的资料的系统及方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20040505