KR100470914B1 - Method and apparatus for controlling a disk cache in a disk array system - Google Patents

Method and apparatus for controlling a disk cache in a disk array system Download PDF

Info

Publication number
KR100470914B1
KR100470914B1 KR10-2001-0086927A KR20010086927A KR100470914B1 KR 100470914 B1 KR100470914 B1 KR 100470914B1 KR 20010086927 A KR20010086927 A KR 20010086927A KR 100470914 B1 KR100470914 B1 KR 100470914B1
Authority
KR
South Korea
Prior art keywords
stripe
cache
tag
disk
hash
Prior art date
Application number
KR10-2001-0086927A
Other languages
Korean (ko)
Other versions
KR20030056653A (en
Inventor
이상민
Original Assignee
한국전자통신연구원
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 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR10-2001-0086927A priority Critical patent/KR100470914B1/en
Publication of KR20030056653A publication Critical patent/KR20030056653A/en
Application granted granted Critical
Publication of KR100470914B1 publication Critical patent/KR100470914B1/en

Links

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
    • G06F12/0871Allocation or management of cache space
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1009Cache, i.e. caches used in RAID system with parity

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)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 디스크어레이(disk array) 시스템에서의 디스크 캐쉬(cache) 관리 장치 및 관리 방법에 관한 것이다. 디스크 캐쉬 관리 구조는 크게 해시 테이블(hash table), 스트라이프 택(stripe tag), 캐쉬 택(cache tag)으로 구성된다. 해시 테이블은 해시 엔트리들의 배열 구조로 구성되며, 각 해시 엔트리는 스트라이프 택들을 이중 연결 리스트로 연결할 수 있는 이중 포인터로 구성된다. 스트라이프 택은 스트라이프 단위로 할당되며, 스트라이프 관련 정보와 해당 스트라이프에 속하는 데이터나 패리티가 캐쉬에 저장되는 경우 이를 관리하는 해당 캐쉬 택들을 연결하는 이중 포인터로 구성된다. 캐쉬 택은 데이터 관리에 필요한 정보와 데이터가 저장된 메모리 주소로 구성된다. 해시 함수는 특정 블록이 속하는 스트라이프의 번호를 입력으로 받아 해당하는 해시 엔트리의 번호를 산출한다. 해시 엔트리가 결정되면 이중 포인터를 이용하여 처음부터 순차적으로 연결된 스트라이프 택들의 스트라이프 번호와 특정 블록이 속하는 스트라이프 번호를 비교하여 해당 스트라이프 택을 결정한다. 이후, 해당 스트라이프 택의 캐쉬 택 리스트들에 연결된 스트라이프를 구성하는 캐쉬 택들의 블록 번호를 검색하고자 하는 블록 번호와 순차적으로 비교함으로써 해당 캐쉬 택을 결정한다. 결정된 캐쉬 택이 관리하는 캐쉬 라인을 구성하는 블록들의 상태값을 참조함으로써 특정 블록의 캐슁 여부가 결정된다. 즉, 본 발명은 디스크 복구 모드의 경우 요구된 블록을 제외한 스트라이프에 속하는 나머지 블록들에 대한 캐슁 여부를 결정하기 위하여 캐쉬를 검색할 때 일단 오류 데이터의 캐쉬 검색을 통해 스트라이프 택이 결정되기 때문에 나머지 블록들에 대한 검색은 해당 스트라이프 택에서 바로 결정될 수 있다. 따라서, 단일 택을 이용하는 구조에 비해 복구 모드에서의 캐쉬 검색 과정이 간편하다. 또한, 패리티를 관리하는 캐쉬 택을 별도로 관리하지 않고 동일한 스트라이프 택에서 관리하기 때문에 효율적으로 데이터를 복구할 수 있다. 그리고, 복구가 수행되는 동안 해당 스트라이프에 대한 일반적인 입출력 요구의 처리의 중단을 위한 스트라이프 단위의 락도 별도의 자료구조나 과정이 필요 없이 스트라이프 택을 결정하는 과정에서 직접 처리함으로써 보다 간편하게 해결될 수 있다.The present invention relates to a disk cache management apparatus and management method in a disk array system. The disk cache management structure is largely composed of a hash table, a stripe tag, and a cache tag. The hash table consists of an array of hash entries, and each hash entry consists of a double pointer that can link stripe tags into a double linked list. The stripe tack is allocated on a stripe basis, and is composed of a double pointer that connects stripe related information and corresponding cache tacks managing data or parity belonging to the stripe when it is stored in the cache. The cache tag consists of information necessary for data management and a memory address where data is stored. The hash function takes as input the number of stripes to which a particular block belongs and calculates the number of the corresponding hash entry. When the hash entry is determined, a corresponding stripe tag is determined by comparing the stripe numbers of stripe tags sequentially connected from the beginning with the double pointer using a double pointer. Then, the cache tag is determined by sequentially comparing the block numbers of the cache tags constituting the stripe connected to the cache tag lists of the stripe tag with the block number to be searched. Whether a particular block is cached is determined by referring to the state values of blocks constituting the cache line managed by the determined cache tag. That is, in the disk recovery mode, when the cache is searched to determine whether to cache the remaining blocks belonging to the stripe except for the required block, the stripe tag is determined through the cache search of the error data. These searches can be determined directly from the stripe tag. Therefore, the cache search process in the recovery mode is simpler than the structure using the single tag. In addition, since the cache tag that manages parity is managed by the same stripe tag instead of separately, data can be efficiently recovered. In addition, a lock in a stripe unit for interrupting processing of a general input / output request for a stripe during recovery may be easily solved by directly processing the stripe tag in a process of determining a stripe tag without a separate data structure or process. .

Description

디스크어레이 시스템에서의 디스크 캐쉬 관리 장치 및 관리 방법{METHOD AND APPARATUS FOR CONTROLLING A DISK CACHE IN A DISK ARRAY SYSTEM}Disk cache management device and management method in disk array system {METHOD AND APPARATUS FOR CONTROLLING A DISK CACHE IN A DISK ARRAY SYSTEM}

본 발명은 디스크어레이 시스템, 특히, RAID(Redundant Array of Inexpensive Disks) 레벨 5 시스템에서의 디스크 캐쉬 관리 기술에 관한 것으로, 보다 상세하게는, RAID 레벨 5 시스템에서 캐쉬 검색 및 시스템의 운영 특성을 고려한 이중 택을 이용하는 디스크 캐쉬 관리 장치 및 방법에 관한 것이다. The present invention relates to a disk cache management technology in a disk array system, in particular, Redundant Array of Inexpensive Disks (RAID) Level 5 systems, and more particularly, in consideration of cache retrieval and operating characteristics of a RAID level 5 system. Disc cache management apparatus and method using a tag.

일반적으로, 「RAID 레벨 5 시스템」은 여러 개의 물리적인 디스크들이 대용량의 하나의 디스크처럼 동작하도록 구성하고 관리하는 디스크어레이 시스템으로서, 데이터를 다중 디스크에 분산 저장하고, 패리티를 이용하여 데이터를 효율적으로 보호하는 시스템을 일컫는다.Generally, a RAID level 5 system is a disk array system that configures and manages multiple physical disks to behave like a single large disk. The RAID level 5 system distributes and stores data in multiple disks, and efficiently uses parity to store data. It refers to the system to protect.

이러한 RAID 레벨 5 시스템에서는 데이터들을 일정 크기로 구분하여 하나의 논리적 디스크를 구성하는 각각의 물리적 디스크들로 '라운드-로빈(round-robin)' 방식으로 데이터들을 분산 저장시키는데, 저장되는 데이터의 크기와 응용 환경에서의 입출력 요구가 처리하는 데이터 크기에 따라 시스템 성능에 영향을 미친다. 즉, 큰 용량의 데이터를 처리하는 입출력 요구는 동시에 여러 디스크들로부터 데이터 전송이 가능하기 때문에 하나의 디스크에서 처리할 때와 비교하여 응답 시간을 단축시킬 수 있으며, 작은 용량의 데이터를 처리하는 경우에는 각 디스크마다 독립적으로 입출력 요구를 처리할 수 있기 때문에 많은 요구들을 동시에 처리할 수 있다.In a RAID level 5 system, data is divided into a certain size and the data are distributed and stored in a 'round-robin' manner to each of the physical disks constituting one logical disk. I / O requests in an application environment affect system performance depending on the size of data being processed. In other words, I / O requests that process large amounts of data can be transferred from multiple disks at the same time, resulting in a shorter response time compared to processing on a single disk. Because each disk can handle I / O requests independently, it can handle many requests simultaneously.

이 RAID 레벨 5 시스템에서는 다중 디스크 사용으로 인한 디스크 고장 확률을 줄이기 위하여 일정 단위로 데이터들을 보호할 수 있도록 패리티를 제공하는 바, 디스크에 저장된 데이터가 갱신될 때마다 해당 패리티를 갱신해 주어야 하며, 패리티 갱신을 위해서는 여러 번의 디스크 접근이 요구되기 때문에 상당한 성능 저하 요인이 되고 있다.In this RAID level 5 system, parity is provided to protect data on a regular basis in order to reduce the possibility of disk failure due to the use of multiple disks. The parity must be updated whenever the data stored on the disk is updated. The update requires a lot of disk accesses, which causes significant performance degradation.

이러한 문제를 해결하기 위하여 대부분의 RAID 레벨 5 시스템에서는 데이터와 패리티를 저장하기 위한 디스크 캐쉬를 이용한다. 도 1은 이러한 디스크 캐쉬를 제공하는 RAID 레벨 5 시스템의 구성 블록도이다.To solve this problem, most RAID level 5 systems use a disk cache to store data and parity. 1 is a configuration block diagram of a RAID level 5 system providing such a disk cache.

도 2는 일반적인 RAID 레벨 5 시스템에서의 데이터 및 패리티 저장 방식을 설명하기 위한 도면이다. FIG. 2 is a diagram illustrating a data and parity storage method in a general RAID level 5 system.

도 2에 도시한 바와 같이, 통상의 RAID 레벨 5 시스템에서는 총 5개의 디스크가 사용되어 4개 데이터와 1개 패리티가 5개 디스크로 분산 저장되는데, 이렇게 분산되는 일정 크기의 데이터와 패리티를 스트라이프(stripe)이라 총칭한다. 스트라이프는 시스템을 구성하는 디스크가 고장나거나 디스크 용량 확장을 위하여 시스템에 새로운 디스크를 추가하는 경우 처리되는 단위이다.As shown in FIG. 2, in a typical RAID level 5 system, a total of five disks are used, and four data and one parity are distributed and stored on five disks. stripe). Striping is a unit that is processed when a disk constituting the system fails or a new disk is added to the system to increase disk capacity.

디스크 고장으로 인한 복구 모드(degraded mode)에서는 고장난 디스크에 저장되어 있는 데이터나 패리티가 요구되었을 때 해당 스트라이프에 속하는 나머지 데이터와 패리티를 판독하고, 이를 이용하여 고장난 디스크에 저장되어 있는 데이터를 복구하여 처리한다. 디스크 확장을 위한 확장 모드(expanded mode)에서는 추가된 디스크를 포함하여 새로운 스트라이프를 구성하고, 새롭게 구성된 스트라이프에 속하는 모든 데이터들을 디스크로부터 판독하여 새로운 패리티를 산출한 후 스트라이프를 전체 디스크로 분산 저장한다.In the degraded mode due to a disk failure, when data or parity stored in the failed disk is requested, the remaining data and parity belonging to the stripe are read, and the data stored in the failed disk is recovered and processed. do. In the expanded mode for expanding a disk, an new disk including an added disk is formed, all data belonging to the newly configured stripe is read from the disk, a new parity is calculated, and the stripe is distributed and stored as a whole disk.

도 3은 해시 테이블 및 캐쉬 헤더들이 연결된 통상의 디스크 캐쉬 관리 장치의 구성도이다.3 is a block diagram of a conventional disk cache management apparatus connected with a hash table and cache headers.

도 3에 도시한 바와 같이, 통상의 RAID 레벨 5 시스템에서 이용되는 디스크 캐쉬는 저장되어 있는 데이터를 캐쉬 라인 단위로 관리하며, 하나의 캐쉬 라인은 스트라이프 크기 또는 디스크마다 분산 저장되는 데이터 크기로 정의한다.As shown in FIG. 3, a disk cache used in a typical RAID level 5 system manages stored data in units of cache lines, and one cache line is defined as a stripe size or a data size distributed and stored for each disk. .

각 캐쉬 라인은 캐쉬 택(102)에 의해 관리된다. 해시 테이블(100)은 각 캐쉬 택(102)들을 연결할 수 있는 이중 포인터로 구성되며, 이중 연결 리스트로 캐쉬 택들(102)이 연결된다.Each cache line is managed by a cache tag 102. Hash table 100 is composed of a double pointer that can connect each cache tag 102, the cache tag 102 is connected to a double linked list.

이러한 구조에서 특정 블록의 저장 여부는 캐쉬 검색을 통해 결정되는데, 우선 해시 함수에 요구된 블록 주소를 입력함으로써 해시 테이블(100)에서 해당 헤더 포인터를 찾을 수 있는 배열 인덱스가 산출된다. 배열 인덱스로 해더 포인터가 결정되면 헤더 포인터에 연결된 캐쉬 택(102)들이 저장하고 있는 블록 주소와 요구된 블록 주소가 속하는 캐쉬 라인의 첫 번째 블록 주소를 비교함으로써 캐슁 여부를 결정한다.In this structure, whether to store a specific block is determined through a cache search. First, by inputting a block address required for a hash function, an array index for finding a corresponding header pointer in the hash table 100 is calculated. When the header pointer is determined by the array index, the cache tag 102 connected to the header pointer determines whether to cache by comparing the block address stored in the cache pointer with the first block address of the cache line to which the requested block address belongs.

이렇게 단일 택으로 관리되는 디스크 캐쉬 구조는 캐쉬 검색과 RAID 레벨 5 시스템에서의 데이터 관리 측면에서 다음과 같은 문제점들을 지니고 있다.This single cache managed disk cache structure has the following problems in terms of cache retrieval and data management in a RAID level 5 system.

우선, 캐쉬 검색 측면에서 보면, 해시 테이블의 크기와 캐쉬 라인 크기가 고정된다는 가정 하에 디스크 캐쉬의 크기가 커질수록 하나의 헤더 포인터에서 관리해야 하는 캐쉬 택들의 수도 증가하므로, 자주 참조되지 않는 캐쉬 택들의 경우 캐쉬 검색 시간이 길어질 수 있다. 그렇다고 캐쉬 택의 수를 고려하여 캐쉬 라인의 크기를 크게 한다면 캐쉬가 금방 차게 되고, 그로 인해 새롭게 캐쉬에 저장되는 데이터들을 위해 기존 데이터들을 캐쉬에서 쫓아내는 캐쉬 데이터 교체(cache data replacement)가 자주 발생하게 되어 오히려 캐쉬 성능이 저하될 수 있다.First, in terms of cache retrieval, assuming that the size of the hash table and the cache line size are fixed, as the size of the disk cache increases, the number of cache tags that must be managed by one header pointer increases, so that cache tags that are not frequently referenced In this case, the cache search time may be long. However, if you increase the size of the cache line in consideration of the number of cache tags, the cache will fill up quickly, and as a result, cache data replacement will frequently occur, which removes existing data from the cache for data that is newly stored in the cache. Rather, cache performance may be degraded.

데이터 관리 측면에서는, 대부분의 RAID 레벨 5 시스템은 온라인(on-line) 혹은 오프라인(off-line)으로 디스크가 고장났을 때 저장되어 있는 데이터를 복구하거나 새로운 디스크를 추가함으로써 디스크 용량을 확장시키는 기능을 제공하는데, 이러한 복구 모드(degraded and rebuild mode)나 확장 모드(expanded mode)는 스트라이프 단위로 데이터가 처리되므로, 캐쉬 라인의 크기가 스트라이프의 크기와 같다면 상관없지만 그보다 작은 경우에는 동일한 스트라이프에 속하는 캐쉬 택들이라도 서로 다른 헤더 포인터에 연결되기 때문에 캐슁 여부를 결정하기 위해서는 여러 헤더 포인터들을 검색해야 하는 문제가 발생할 수 있다. 또한, 데이터뿐 아니라 패리티를 캐슁하는 경우에는 패리티의 캐슁 여부를 결정하기 위한 별도의 캐쉬 검색 과정이 수반될 수밖에 없다는 문제가 있다.In terms of data management, most RAID level 5 systems offer the ability to expand disk capacity by adding new disks or restoring stored data when a disk fails on-line or off-line. This is because the data is processed on a stripe basis, so if the size of the cache line is the same as the stripe size, the cache belonging to the same stripe is smaller. Since the tags are also linked to different header pointers, you may have to search for multiple header pointers to determine whether to cache them. In addition, in the case of caching not only data but also parity, there is a problem that a separate cache search process must be accompanied to determine whether to cache parity.

본 발명은 상술한 종래 기술의 문제를 해결하기 위해 안출한 것으로, 데이터 및 패리티를 관리하는 캐쉬 택과 동일한 스트라이프에 속하는 캐쉬 택들만을 독립적으로 관리하는 별도의 스트라이프 택의 이중 택을 적용하여, 캐쉬 검색 시간을 일정하게 유지 또는 단축하고 디스크 복구나 확장을 효율적으로 처리하도록 한 디스크어레이 시스템에서의 디스크 캐쉬 관리 장치 및 관리 방법을 제공하는데 그 목적이 있다.The present invention has been made to solve the above-described problems of the prior art, by applying a double tag of a separate stripe tag to independently manage only the cache tag belonging to the same stripe and the cache tag for managing data and parity, It is an object of the present invention to provide a disk cache management apparatus and management method in a disk array system that maintains or shortens search time uniformly and efficiently handles disk recovery or expansion.

이러한 목적을 달성하기 위한 본 발명의 일 실시예에 따르면, 하나의 스트라이프에서 각 디스크로 분산 저장되는 디스크 블록의 수를 캐쉬 라인 크기로 정의하였을 때 캐쉬 라인 단위로 할당되는 캐쉬 택을 갖는 디스크어레이 시스템에서의 디스크 캐쉬 관리 장치에 있어서, 이중 포인터로 구성되는 고유 엔트리 배열을 갖는 해시 테이블과, 해시 테이블 내의 각 엔트리에 대응되게 연결되며, 캐쉬 택과 동일한 스트라이프에 속하는 캐쉬 택들을 스트라이프마다 독립적으로 관리하되, 캐쉬 택들을 해당 스트라이프를 위해 정의된 하나에 이중 연결 리스트로 연결하는 스트라이프 택을 구비하는 디스크어레이 시스템에서의 디스크 캐쉬 관리 장치를 제공한다.According to an embodiment of the present invention for achieving the above object, a disk array system having a cache tack is allocated in units of cache lines when the number of disk blocks distributed to each disk in one stripe is defined as a cache line size. In the disk cache management apparatus of the present invention, a hash table having a unique entry array composed of double pointers and cache entries belonging to the same stripe as the cache tag are managed independently for each stripe. In addition, the present invention provides a disk cache management apparatus in a disk array system having a stripe tack that connects the cache tacks to a one defined for the stripe in a dual linked list.

본 발명의 목적을 달성하기 위한 다른 실시예에 따르면, 캐쉬 택들을 해당 스트라이프를 위해 정의된 하나의 스트라이프 택에 이중 연결 리스트로 연결시키는 스트라이프 택을 갖는 디스크어레이 시스템에서의 디스크 캐쉬 관리 방법에 있어서, 특정 블록에 대한 요구가 요청되면, 특정 블록의 번호를 캐쉬 라인 크기로 나눈 몫을 구하여 해당 블록이 속하는 스트라이프 번호를 결정하고, 결정되는 스트라이프 번호를 해시 함수에 적용하여 해시 엔트리 번호를 결정하는 제 1 단계와, 제 1 단계에서 산출된 해시 엔트리 번호를 이용하여 해시 테이블에 해당하는 해시 엔트리를 결정하는 제 2 단계와, 스트라이프 택 중 첫 번째 스트라이프 택부터 시작하여 동일한 스트라이프 번호를 갖고 있는 스트라이프 택을 검색하여 동일한 스트라이프 번호를 갖는 스트라이프 택이 검색되면, 현재 시스템의 동작 모드가 복구 또는 확장 모드인지 정상 모드인지를 판단하는 제 3 단계와, 제 3 단계의 판단 결과, 복구 모드나 확장 모드인 경우에는 현재 스트라이프가 락 상태인지를 판단하고, 현재 스트라이프가 락 상태라면 락이 풀릴 때까지 대기하며, 그렇지 않은 경우라면 특정 블록의 캐슁 여부를 결정하는 제 4 단계와, 제 3 단계의 판단 결과, 정상 모드로 판단되면, 캐쉬 택이 존재하는지를 판단하고, 캐쉬 택이 존재하면 해당 블록이 상기 캐쉬 택에 존재하는지를 판단하는 제 5 단계와, 제 5 단계의 판단 결과, 해당 블록이 캐쉬 택에 존재하지 않으면 다음 캐쉬 택을 검색한 후, 해당 택에 연결된 캐쉬 택들이 존재할 때까지 첫 번째 캐쉬 택부터 마지막 캐쉬 택까지 캐쉬 택이 관리하는 블록들 중 요구된 특정 블록이 포함되는지 여부를 검색하는 제 6 단계와, 제 5 단계의 검색 결과, 일치하는 캐쉬 택이 존재하는 경우에는 캐쉬 성공 모드로 진행하고, 마지막까지 일치하는 택을 찾을 수 없는 경우에는 캐쉬 실패 모드로 진행하는 제 7 단계를 포함하는 디스크어레이 시스템에서의 디스크 캐쉬 관리 방법을 제공한다.According to another embodiment for achieving the object of the present invention, a disk cache management method in a disk array system having a stripe tack linking the cache tacks to a single striped tack defined for the stripe in a dual link list, When a request for a specific block is requested, the first number of determining a stripe number to which the block belongs by obtaining a quotient of dividing the number of the specific block by the cache line size and applying a determined stripe number to the hash function determines the hash entry number. A second step of determining a hash entry corresponding to the hash table using the hash entry number calculated in the first step, and searching for a stripe tag having the same stripe number starting from the first stripe tag among the stripe tags. Swap with the same stripe number When the life tag is found, the third step of determining whether the operation mode of the current system is the recovery mode or the extension mode, and the third step determines whether the current stripe is locked if the recovery mode or the extension mode is used. And if the current stripe is locked, wait until the lock is released. If not, determine that the specific block is cached or not, and if it is determined that the normal mode is a normal mode, a cache tag exists. Determining whether the block exists in the cache tag, and if the block does not exist in the cache tag, searching for the next cache tag, and From the first cache tag to the last cache tag, the required specific block among the blocks managed by the cache tag is included until there are cache tags connected to the tag. In the sixth step of searching whether it is included or the result of the fifth step, if there is a matching cache tag, the process proceeds to the cache success mode. It provides a disk cache management method in a disk array system comprising a seventh step.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 상세하게 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail a preferred embodiment of the present invention.

설명에 앞서, 본 실시예에 따른 디스크어레이 시스템은 RAID 레벨 5 시스템이 적용될 수 있으며, 본 발명에 적용되는 캐쉬 택은 하나의 스트라이프에서 각 디스크로 분산 저장되는 디스크 블록의 수를 캐쉬 라인 크기로 정의하였을 때 캐쉬 라인 단위로 할당됨을 특징으로 한다. 또한, 스트라이프 택은 스트라이프를 구성하는 데이터 및 패리티를 관리하는 캐쉬 택들을 관리하고 RAID 시스템을 구성하는 스트라이프마다 하나씩 할당됨을 특징으로 한다.Prior to the description, the disk array system according to the present embodiment may be applied to a RAID level 5 system, and the cache tag applied to the present invention defines the number of disk blocks distributed and stored to each disk in one stripe as a cache line size. It is characterized in that the allocation to the cache line unit. In addition, the stripe tack is characterized in that it manages the cache tacks that manage the data and parity constituting the stripe, and is allocated to each stripe constituting the RAID system.

이러한 특징들을 갖는 본 발명의 핵심 기술 요지는, 디스크 캐쉬 관리 구조를 이중 택으로 구성하여 특정 블록의 캐슁 여부를 결정한다는 것으로서, 이러한 기술 사상으로부터 본 발명에서 목적으로 하는 바를 용이하게 달성할 수 있을 것이다.The core technical gist of the present invention having these characteristics is to configure the disk cache management structure by double tag to determine whether to cache a specific block, and from this technical concept, it is easy to achieve the purpose of the present invention. .

도 4a는 본 발명에 따라 해시 테이블과 스트라이프 택, 캐쉬 택들이 연결된 디스크 캐쉬 관리 장치의 구성도이다.4A is a block diagram illustrating a disk cache management apparatus in which a hash table, a stripe tag, and a cache tag are connected according to the present invention.

도 4a에 도시한 바와 같이, 해시 테이블(100)은 엔트리들로 구성되는 배열 구조(array)로서 각 엔트리의 배열 인덱스(array index)는 고유의 엔트리 번호로 이용된다.As shown in Fig. 4A, the hash table 100 is an array structure of entries, and an array index of each entry is used as a unique entry number.

각 해시 엔트리는 첫 번째와 마지막 스트라이프 택을 연결하는 이중 포인터로 구성되며, 각 해시 엔트리에 연결될 스트라이프 택(104)의 관리는 각 스트라이프 택(104)이 갖는 고유의 스트라이프 번호를 해싱한 값을 각 해시 엔트리 번호와 비교/결정함으로써 구현된다.Each hash entry consists of a double pointer that connects the first and last stripe tacks, and the management of the stripe tack 104 to be linked to each hash entry consists of hashing the unique stripe number of each stripe tack 104. Implemented by comparing / determining with hash entry number.

여기서, 전체 스트라이프 택의 수는 하나의 RAID 레벨 5 시스템을 구성하는 전체 스트라이프의 수와 동일하게 정의된다. 스트라이프 택은 해당 스트라이프를 구성하는 디스크의 수만큼의 캐쉬 택(102)들을 이중 연결 리스트 형태로 연결하여 관리한다.Here, the total number of stripe tacks is defined to be equal to the number of total stripes constituting one RAID level 5 system. The stripe tack manages the cache tack 102 as many as the number of disks constituting the stripe by connecting them in the form of a dual linked list.

도 4b는 도 4a의 하나의 스트라이프 택(104) 구조의 상세 도면이다.FIG. 4B is a detailed view of the structure of one stripe tack 104 of FIG. 4A.

도 4b에 도시한 스트라이프 택(104) 구조에서 '전방 포인터'는 리스트에서 다음 스트라이프 택을 연결하는데 이용되며, '후방 포인터'는 이전 스트라이프 택을 연결하는데 이용된다.In the stripe tack 104 structure shown in FIG. 4B, the 'front pointer' is used to connect the next stripe tack in the list, and the 'rear pointer' is used to connect the previous stripe tack.

'스트라이프 번호'는 RAID 시스템에서 할당된 스트라이프들마다 할당된 고유의 번호로서, 스트라이프 택을 결정하는데 이용된다.The 'stripe number' is a unique number assigned to each stripe allocated in a RAID system and used to determine a stripe tag.

'스트라이프 락 상태'는 해당 스트라이프 전체에 대한 락 여부를 나타내는 것으로, 이 스트라이프 락 상태에 따라 스트라이프에 속하는 데이터로의 접근 가능 여부가 결정된다.The 'stripe lock state' indicates whether or not the entire stripe is locked. The stripe lock state determines whether access to data belonging to the stripe is possible.

'캐쉬 택 수'는 현재 스트라이프에서 관리하는 전체 캐쉬 택의 수를 나타내며, 최대값이란 스트라이프에서 최대로 관리할 수 있는 캐쉬 택들의 수로서 스트라이프를 구성하는 디스크의 수를 나타낸다.'Cache tack count' represents the total number of cache tacks currently managed by the stripe, and the maximum value represents the maximum number of cache tacks that can be managed by the stripe.

'첫 번째 캐쉬 택 포인터'는 이중 연결 리스트의 첫 번째 캐쉬 택을 나타내며, 새롭게 스트라이프 택에 연결되는 캐쉬 택들이 연결되는 포인터이다.The first cache tag pointer indicates the first cache tag of the dual linked list, and is a pointer to newly connected cache tags linked to the stripe tag.

'마지막 캐쉬 택 포인터'는 리스트의 가장 끝에 연결된 캐쉬 택을 의미한다.'Last cache tag pointer' means the cache tag attached to the end of the list.

도 4c는 도 4a의 하나의 캐쉬 택(102) 구조의 상세 도면,4C is a detailed view of the structure of one cache tack 102 of FIG. 4A,

도 4c에 도시한 캐쉬 택(102) 구조에서 '전방 포인터'는 캐쉬 택 리스트의 다음에 연결되는 캐쉬 택을 가리키며, '후방 포인터'는 이전에 연결된 캐쉬 택을 의미한다.In the cache tag 102 structure shown in FIG. 4C, the 'forward pointer' refers to a cache tag connected to the next of the cache tag list, and the 'rear pointer' refers to a cache tag previously connected.

'스트라이프 택 포인터'는 해당 캐쉬 택을 관리하는 스트라이프 택을 의미한다.'Stripe tag pointer' means a stripe tag that manages the corresponding cache tag.

'LRU 리스트 전방 포인터'는 LRU 리스트 중에서 다음에 연결되는 캐쉬 택을 의미하며, 'LRU 리스트 후방 포인터'는 이전에 연결된 캐쉬 택을 의미한다. 이러한 LRU 리스트는 캐쉬 블록 교체가 요구될 때 최적의 캐쉬 블록을 선택하기 위한 방식 중 하나로서, 장시간 참조되지 않는 블록부터 우선적으로 교체시키는 캐쉬 블록들을 관리하는 원형 리스트(circular list)이다.The 'LRU list forward pointer' refers to a cache tag connected next to the LRU list, and the 'LRU list back pointer' refers to a cache tag previously connected. The LRU list is one of methods for selecting an optimal cache block when cache block replacement is required, and is a circular list that manages cache blocks that preferentially replace blocks that are not referenced for a long time.

'첫 번째 캐쉬 블록 주소'는 캐쉬 택이 관리하는 캐쉬 라인을 구성하는 블록들 중 첫 번째 블록의 주소에 해당한다.The first cache block address corresponds to the address of the first block among the blocks constituting the cache line managed by the cache tag.

'캐쉬 라인 상태'는 전체 캐쉬 라인의 상태로서 각 블록들의 상태에 의해 결정된다.'Cache Line State' is the state of the entire cache line, determined by the state of each block.

'캐쉬 블록 상태'는 캐쉬 라인을 구성하는 각 블록들의 상태를 나타내는 것으로 배열 구조로서 정의된다.'Cache block state' is defined as an array structure to indicate the state of each block constituting the cache line.

'캐쉬 데이터 포인터'는 실제 캐쉬 데이터가 저장된 메모리의 주소를 의미한다.'Cache data pointer' refers to the address of the memory where the actual cache data is stored.

이하, 상술한 구성과 함께, 본 발명의 바람직한 실시예에 따른 RAID 레벨 5 시스템에서의 디스크 캐쉬 관리 과정을 첨부한 도 5의 흐름도를 참조하여 상세하게 설명한다.Hereinafter, with the configuration described above, a disk cache management process in a RAID level 5 system according to a preferred embodiment of the present invention will be described in detail with reference to the flowchart of FIG. 5.

먼저, 특정 블록에 대한 요구가 요청되면, 해당 블록이 속하는 스트라이프 번호를 결정하고 단계(S502)로 진행한다. 이때, 스트라이프 번호는 블록 번호를 캐쉬 라인 크기로 나눈 몫과 같다.First, when a request for a specific block is requested, the stripe number to which the block belongs belongs is determined, and the flow proceeds to step S502. The stripe number is equal to the quotient of the block number divided by the cache line size.

단계(S502)에서는 단계(S500)에서 결정된 스트라이프 번호를 HASH 1 함수에 적용함으로써 해시 엔트리 번호를 결정한다. 이러한 HASH 1 함수는, 전체 스트라이프 택의 수가 전체 해시 엔트리 수보다 많은 경우에는 스트라이프 번호를 전체 해시 엔트리 수로 나누어 떨어지는 나머지 값을 해시 엔트리 번호로 결정하며, 그 반대의 경우에는 스트라이프 번호를 전체 스트라이프 택의 수로 나누어 떨어지는 나머지 값을 해시 엔트리 번호로 결정한다.In step S502, the hash entry number is determined by applying the stripe number determined in step S500 to the HASH 1 function. When the total number of stripe tacks is greater than the total number of hash entries, the HASH 1 function determines the remaining values of dividing the stripe number by the total number of hash entries as the hash entry number, and vice versa. The remaining value divided by the number is determined by the hash entry number.

단계(S504)에서는 산출된 해시 엔트리 번호를 이용하여 해시 테이블에 해당하는 해시 엔트리를 결정한다.In step S504, the hash entry corresponding to the hash table is determined using the calculated hash entry number.

일단 해시 엔트리가 결정되면 도 4b에 도시한 바와 같은 '전방 포인터'를 이용하여 첫 번째 스트라이프 택부터 시작하여 동일한 스트라이프 번호를 갖고 있는 스트라이프 택을 검색한다(S506)(S508).Once the hash entry is determined, the stripe tag having the same stripe number is searched starting from the first stripe tag using the 'front pointer' as shown in FIG. 4B (S506) (S508).

단계(S506)(S508)의 수행 후, 동일한 스트라이프 번호를 갖는 스트라이프 택이 검색되면, 단계(S510)로 진행하여 현재 시스템의 동작 모드가 복구 또는 확장 모드인지 정상 모드인지를 판단한다.If the stripe tack having the same stripe number is found after the step S506 and the step S508, the flow proceeds to step S510 to determine whether the operation mode of the current system is the recovery mode or the extension mode or the normal mode.

단계(S510)의 판단 결과, 복구 모드나 확장 모드인 경우에는 단계(S512)로 진행하여 스트라이프가 락 상태인지를 판단한다.As a result of the determination in step S510, in the recovery mode or the extension mode, the process proceeds to step S512 to determine whether the stripe is in the locked state.

즉, 정상적인 입출력 처리 모드에서는 스트라이프 전체에 대해 락을 할당하는 경우가 없으므로 일단 스트라이프 택이 결정되면 후술하는 단계에서와 같이, 연결된 캐쉬 택들을 검색하여 특정 블록의 캐슁 여부를 결정한다. 이에 반해, 복구 모드나 확장 모드에서는 데이터 복구나 스트라이프 재구성 동작으로 인해 해당 스트라이프의 락이 필요하기 때문에 일단 스트라이프 락 여부를 조사하는 것이다.That is, since the lock is not allocated to the entire stripe in the normal input / output processing mode, once the stripe tag is determined, as described below, the connected cache tags are searched to determine whether to cache a specific block. On the other hand, in the recovery mode or the extended mode, the stripe lock is checked once because the stripe lock is required due to data recovery or stripe reconstruction.

단계(S512)에서의 판단 결과, 만일 스트라이프가 락 상태라면 단계(S514)로 진행하여 락이 풀릴 때까지 대기하고, 그렇지 않은 경우라면 정상 모드에서와 같이 특정 블록의 캐슁 여부를 결정하는 단계로 진행한다.As a result of the determination in step S512, if the stripe is in the locked state, the process proceeds to step S514 and waits for the lock to be released. Otherwise, the process proceeds to determining whether to cache a specific block as in the normal mode. .

한편, 단계(S510)에서의 판단 결과, 정상 모드로 판단되면, 단계(S516)로 진행하여 캐쉬 택이 존재하는지를 판단하고, 캐쉬 택이 존재하면 단계(S520)로 진행하여 해당 블록이 캐쉬 택에 존재하는지를 판단한다.On the other hand, if the determination result in the step S510, if it is determined that the normal mode, go to step S516 to determine whether there is a cache tag, if there is a cache tag proceeds to step (S520) and the block to the cache tag Determine if it exists.

단계(S520)에서의 판단 결과, 해당 블록이 캐쉬 택에 존재하지 않으면 다음 캐쉬 택을 검색하고(S524), 해당 택에 연결된 캐쉬 택의 수가 0이라면(S526), 즉, 연결된 캐쉬 택들이 존재하지 않는 것으로 판단되면, 캐쉬 실패 단계(S528)로 진행한다.As a result of the determination in step S520, if the corresponding block does not exist in the cache tag, the next cache tag is searched (S524), and if the number of cache tags connected to the corresponding tag is 0 (S526), that is, there are no connected cache tags. If not, the process proceeds to the cache failure step (S528).

만일, 단계(S526)에서의 판단 결과, 해당 택에 연결된 캐쉬 택의 수가 0이 아니라면, 캐쉬 택의 '전방 포인터'를 이용하여 첫 번째 캐쉬 택부터 마지막까지 캐쉬 택이 관리하는 블록들 중 요구된 특정 블록이 포함되는지 여부를 검색한다(S516)(S520)(S526). 이것은 캐쉬 택이 저장하고 있는 각 블록들의 상태값으로 결정된다.If, as a result of the determination in step S526, if the number of cache tags connected to the corresponding tag is not 0, the required cache among the blocks managed by the cache tag from the first cache tag to the last using the 'front pointer' of the cache tag is requested. Search whether the specific block is included (S516) (S520) (S526). This is determined by the state value of each block stored in the cache tag.

일치하는 캐쉬 택이 존재한다면 특정 블록은 캐쉬에 저장되어 있는 것으로 판단되어 캐쉬 성공 단계(S522)로 진행하지만, 마지막까지 일치하는 택을 찾을 수 없다면 특정 블록은 캐쉬에 존재하지 않는 것으로 캐쉬 실패 단계(S528)로 진행한다.If there is a matching cache tag, it is determined that the specific block is stored in the cache and proceeds to the cache success step (S522). However, if a matching tag is not found until the end, the specific block does not exist in the cache. S528).

즉, 본 과정은 복구 또는 확장 모드의 경우 스트라이프 단위로 처리할 때 해당 스트라이프에 대해 처리되는 요청 신호가 없는 경우에는 스트라이프 락을 수행한 후 복구나 확장 모드를 수행하도록 구현하였다. 이러한 복구 또는 확장 모드에서는 스트라이프 택에 대한 락만으로도 해당 스트라이프에 속하는 모든 캐쉬 택들에 대해서도 잠재적으로 락으로 처리되기 때문에 별도의 캐쉬 택의 락이 불필요하다.That is, this process is implemented to perform a recovery or extension mode after performing a stripe lock when there is no request signal processed for the stripe when processing in stripe units in the recovery or extension mode. In such a recovery or extended mode, a lock on a stripe tack is potentially locked to all cache tags belonging to the stripe, so a separate cache tag is not needed.

삭제delete

본 발명에 의하면, 스트라이프 단위로 데이터를 관리하는 특성을 갖는 RAID 레벨 5시스템에서 디스크마다 분산 저장되는 크기로 캐쉬 데이터를 나누어 관리하는데 사용되는 캐쉬 택과 동일한 스트라이프에 속하는 캐쉬 택들을 스트라이프마다 독립적으로 관리하기 때문에, 디스크 캐쉬의 크기 변화에 따른 캐쉬 검색 시간 변화가 거의 없다는 효과가 있다. 또한, 본 발명은 디스크 복구 모드나 확장 모드에서도 스트라이프 택 결정만으로 데이터나 패리티의 캐슁 여부가 바로 결정되기 때문에 불필요한 캐쉬 검색이 필요 없으며, 스트라이프 락을 위한 별도의 자료 구조나 과정이 필요하지 않기 때문에 디스크 복구나 확장이 좀더 효율적으로 처리할 수 있는 효과가 있다.이상, 본 발명을 실시예에 근거하여 구체적으로 설명하였지만, 본 발명은 이러한 실시예에 한정되는 것이 아니라, 그 요지를 벗어나지 않는 범위내에서 여러 가지 변형이 가능한 것은 물론이다.According to the present invention, in a RAID level 5 system having a characteristic of managing data on a stripe basis, each cache tag belonging to the same stripe as the cache tag used to divide and manage cache data in a distributed size for each disk is managed independently for each stripe. Therefore, there is almost no change in cache search time due to the change in the size of the disk cache. In addition, the present invention does not require unnecessary cache retrieval because only the stripe tack is determined immediately in the disk recovery mode or the extended mode, thereby eliminating the need for unnecessary cache retrieval. There is an effect that the recovery or expansion can be more efficiently handled. [0075] Although the present invention has been described in detail based on the embodiments, the present invention is not limited to these embodiments, but the scope of the present invention is not limited to the above. Of course, many variations are possible.

도 1은 디스크 캐쉬를 제공하는 통상의 RAID 시스템의 구조도,1 is a structural diagram of a conventional RAID system providing a disk cache,

도 2는 RAID 레벨 5에서 데이터 및 패리티가 디스크에 저장되는 방식을 설명하기 위한 도면,2 is a view for explaining how data and parity are stored in a disk at RAID level 5;

도 3은 해시 테이블 및 캐쉬 헤더들이 연결된 통상의 디스크 캐쉬 관리 장치의 구성도,3 is a block diagram of a conventional disk cache management apparatus connected with a hash table and cache headers;

도 4a는 본 발명에 따라 해시 테이블과 스트라이프 택, 캐쉬 택들이 연결된 디스크 캐쉬 관리 장치의 구성도,4A is a block diagram of a disk cache management apparatus in which a hash table, a stripe tag, and a cache tag are connected according to the present invention;

도 4b는 도 4a의 하나의 스트라이프 택 구조의 상세 도면,4B is a detailed view of one stripe tack structure of FIG. 4A;

도 4c는 도 4a의 하나의 캐쉬 택 구조의 상세 도면,4C is a detailed view of one cache tack structure of FIG. 4A;

도 5는 본 발명의 바람직한 실시예에 따른 디스크어레이 시스템, 특히, RAID 레벨 5 시스템에서의 디스크 캐쉬 관리 과정을 도시한 흐름도.5 is a flowchart illustrating a disk cache management process in a disk array system, in particular, a RAID level 5 system, in accordance with a preferred embodiment of the present invention.

<도면의 주요부분에 대한 부호의 설명><Description of the code | symbol about the principal part of drawing>

100 : 해시 테이블100: hash table

102 : 캐쉬 택102: Cash Tag

104 : 스트라이프 택104: stripe tag

Claims (9)

삭제delete 하나의 스트라이프(stripe)에서 각 디스크로 분산 저장되는 디스크 블록의 수를 캐쉬(cache) 라인 크기로 정의하였을 때 캐쉬 라인 단위로 할당되는 캐쉬 택(tag)을 갖는 디스크어레이(disk array) 시스템에서의 디스크 캐쉬 관리 장치에 있어서,In the disk array system having a cache tag allocated in cache lines when the number of disk blocks distributed to each disk in one stripe is defined as a cache line size. In the disk cache management apparatus, 이중 포인터로 구성되는 고유 엔트리 배열을 갖는 해시(hash) 테이블과,A hash table with a unique array of entries consisting of double pointers, 상기 해시 테이블 내의 각 엔트리에 대응되게 연결되며, 상기 캐쉬 택과 동일한 스트라이프에 속하는 캐쉬 택들을 스트라이프마다 독립적으로 관리하되, 상기 캐쉬 택들을 해당 스트라이프를 위해 정의된 하나에 이중 연결 리스트로 연결하는 스트라이프 택A stripe tag that is connected to each entry in the hash table and manages cache tags belonging to the same stripe as the cache tag independently for each stripe, and connects the cache tags to one defined for the stripe in a double linked list. 을 구비하는 디스크어레이 시스템에서의 디스크 캐쉬 관리 장치.Disk cache management apparatus in the disk array system having a. 제 2 항에 있어서,The method of claim 2, 상기 스트라이프 택은,The stripe tack is, 상기 이중 연결 리스트에서 다음 스트라이프 택을 연결하는 전방 포인트 영역과,A forward point region connecting the next stripe tack in the double linked list, 이전 스트라이프 택을 연결하는 후방 포인트 영역과,A rear point area connecting the previous stripe tack, 상기 스트라이프 택을 결정하는 스트라이프 번호 영역과,A stripe number area for determining the stripe tag; 해당 스트라이프 전체에 대한 락 여부를 나타내는 스트라이프 락 상태 영역과,A stripe lock state area indicating whether or not the entire stripe has been locked; 현재 스트라이프에서 관리하는 전체 캐쉬 택의 수를 나타내는 캐쉬 택 수 영역과,A cache tag number area indicating the total number of cache tags managed by the current stripe; 상기 이중 연결 리스트의 첫 번째 캐쉬 택을 나타내는 첫 번째 캐쉬 택 포인터 영역과,A first cache tag pointer area indicating a first cache tag of the dual linked list, 상기 이중 연결 리스트의 가장 끝에 연결된 캐쉬 택을 나타내는 마지막 캐쉬 택 포인터 영역Last cache tag pointer area indicating a cache tag connected at the end of the dual linked list. 을 포함하는 것을 특징으로 하는 디스크어레이 시스템에서의 디스크 캐쉬 관리 장치.Disk cache management apparatus in the disk array system comprising a. 제 2 항에 있어서,The method of claim 2, 상기 디스크어레이 시스템은 RAID(Redundant Array of Inexpensive Disks) 레벨 5 시스템인 것을 특징으로 하는 디스크어레이 시스템에서의 디스크 캐쉬 관리 장치.The disk array system is a disk cache management apparatus in a disk array system, characterized in that the RAID (Redundant Array of Inexpensive Disks) level 5 system. 삭제delete 캐쉬 택들을 해당 스트라이프를 위해 정의된 하나의 스트라이프 택에 이중 연결 리스트로 연결시키는 스트라이프 택을 갖는 디스크어레이 시스템에서의 디스크 캐쉬 관리 방법에 있어서,A disk cache management method in a disk array system having a stripe tag that connects cache tags to a single striped tag defined for the stripe in a dual linked list, 특정 블록에 대한 요구가 요청되면, 특정 블록의 번호를 캐쉬 라인 크기로 나눈 몫을 구하여 해당 블록이 속하는 스트라이프 번호를 결정하고, 결정되는 스트라이프 번호를 해시 함수에 적용하여 해시 엔트리 번호를 결정하는 제 1 단계와,When a request for a specific block is requested, the first number of determining a stripe number to which the block belongs by obtaining a quotient of dividing the number of the specific block by the cache line size and applying a determined stripe number to the hash function determines the hash entry number. Steps, 상기 제 1 단계에서 산출된 해시 엔트리 번호를 이용하여 해시 테이블에 해당하는 해시 엔트리를 결정하는 제 2 단계와,A second step of determining a hash entry corresponding to a hash table by using the hash entry number calculated in the first step; 상기 스트라이프 택 중 첫 번째 스트라이프 택부터 시작하여 동일한 스트라이프 번호를 갖고 있는 스트라이프 택을 검색하여 동일한 스트라이프 번호를 갖는 스트라이프 택이 검색되면, 현재 시스템의 동작 모드가 복구 또는 확장 모드인지 정상 모드인지를 판단하는 제 3 단계와,When a stripe tag having the same stripe number is searched starting from the first stripe tag among the stripe tags and a stripe tag having the same stripe number is searched, it is determined whether the operation mode of the current system is a recovery or extended mode or a normal mode. With the third step, 상기 제 3 단계의 판단 결과, 복구 모드나 확장 모드인 경우에는 현재 스트라이프가 락 상태인지를 판단하고, 현재 스트라이프가 락 상태라면 락이 풀릴 때까지 대기하며, 그렇지 않은 경우라면 특정 블록의 캐슁 여부를 결정하는 제 4 단계와,As a result of the determination of the third step, in the recovery mode or the extended mode, it is determined whether the current stripe is locked, and if the current stripe is locked, it waits until the lock is released; otherwise, it is determined whether to cache a specific block. With the fourth step, 상기 제 3 단계의 판단 결과, 정상 모드로 판단되면, 상기 캐쉬 택이 존재하는지를 판단하고, 상기 캐쉬 택이 존재하면 해당 블록이 상기 캐쉬 택에 존재하는지를 판단하는 제 5 단계와,A fifth step of judging whether the cache tag exists if the normal mode is determined as the determination result of the third step; and determining whether the corresponding block exists in the cache tag if the cache tag exists; 상기 제 5 단계의 판단 결과, 해당 블록이 상기 캐쉬 택에 존재하지 않으면 다음 캐쉬 택을 검색한 후, 해당 택에 연결된 캐쉬 택들이 존재할 때까지 첫 번째 캐쉬 택부터 마지막 캐쉬 택까지 캐쉬 택이 관리하는 블록들 중 요구된 특정 블록이 포함되는지 여부를 검색하는 제 6 단계와,As a result of the determination of the fifth step, if the corresponding block does not exist in the cache tag, the next cache tag is searched and managed by the cache tag from the first cache tag to the last cache tag until there are cache tags connected to the corresponding tag. A sixth step of retrieving whether the requested specific block is included among the blocks; 상기 제 5 단계의 검색 결과, 일치하는 캐쉬 택이 존재하는 경우에는 캐쉬 성공 모드로 진행하고, 마지막까지 일치하는 택을 찾을 수 없는 경우에는 캐쉬 실패 모드로 진행하는 제 7 단계As a result of the search of the fifth step, if there is a matching cache tag, the process proceeds to the cache success mode; 를 포함하는 디스크어레이 시스템에서의 디스크 캐쉬 관리 방법.Disk cache management method in the disk array system comprising a. 제 6 항에 있어서,The method of claim 6, 상기 해시 함수는, 전체 스트라이프 택의 수가 전체 해시 엔트리 수보다 많은 경우에는 상기 스트라이프 번호를 전체 해시 엔트리 수로 나누어 떨어지는 나머지 값을 해시 엔트리 번호로 결정하며, 상기 전체 스트라이프 택의 수가 상기 전체 해시 엔트리 수보다 적은 경우에는 상기 스트라이프 번호를 전체 스트라이프 택의 수로 나누어 떨어지는 나머지 값을 해시 엔트리 번호로 결정하는 것을 특징으로 하는 디스크어레이 시스템에서의 디스크 캐쉬 관리 방법.If the total number of stripe tacks is greater than the total number of hash entries, the hash function determines a remaining value of dividing the stripe number by the total number of hash entries as a hash entry number, and the total number of stripe tacks is greater than the total number of hash entries. And if less, the remaining value obtained by dividing the stripe number by the total number of stripe tacks is determined as the hash entry number. 제 6 항에 있어서,The method of claim 6, 상기 스트라이프 택 또는 상기 캐쉬 택의 검색은 상기 스트라이프 택 또는 상기 캐쉬 택 내의 전방 포인터 영역을 이용하여 수행되는 것을 특징으로 하는 디스크어레이 시스템에서의 디스크 캐쉬 관리 방법.The search of the stripe tack or the cache tack is performed using the front pointer area in the stripe tack or the cache tack. 제 6 항 내지 제 8 항 중 어느 한 항에 있어서,The method according to any one of claims 6 to 8, 상기 디스크어레이 시스템은 RAID 레벨 5 시스템인 것을 특징으로 하는 디스크어레이 시스템에서의 디스크 캐쉬 관리 방법.And the disk array system is a RAID level 5 system.
KR10-2001-0086927A 2001-12-28 2001-12-28 Method and apparatus for controlling a disk cache in a disk array system KR100470914B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0086927A KR100470914B1 (en) 2001-12-28 2001-12-28 Method and apparatus for controlling a disk cache in a disk array system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0086927A KR100470914B1 (en) 2001-12-28 2001-12-28 Method and apparatus for controlling a disk cache in a disk array system

Publications (2)

Publication Number Publication Date
KR20030056653A KR20030056653A (en) 2003-07-04
KR100470914B1 true KR100470914B1 (en) 2005-03-08

Family

ID=32214833

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0086927A KR100470914B1 (en) 2001-12-28 2001-12-28 Method and apparatus for controlling a disk cache in a disk array system

Country Status (1)

Country Link
KR (1) KR100470914B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006171957A (en) * 2004-12-14 2006-06-29 Fujitsu Ltd Storage controller unit and storage control method
KR102197710B1 (en) * 2014-01-24 2020-12-31 한국전자통신연구원 Management method of traffic burst retransmission

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960025608A (en) * 1994-12-30 1996-07-20 구자홍 How to manage disk cache of I / O processor
US5778430A (en) * 1996-04-19 1998-07-07 Eccs, Inc. Method and apparatus for computer disk cache management
KR19980047273A (en) * 1996-12-14 1998-09-15 양승택 How to Manage Cache on RAID Level 5 Systems
KR20000005629A (en) * 1998-06-09 2000-01-25 가부시키가이샤 니프코 Cable way between two hinged members
EP1074916A2 (en) * 1999-08-04 2001-02-07 Lsi Logic Corporation Hardware mechanism for managing cache structures in a data storage system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960025608A (en) * 1994-12-30 1996-07-20 구자홍 How to manage disk cache of I / O processor
US5778430A (en) * 1996-04-19 1998-07-07 Eccs, Inc. Method and apparatus for computer disk cache management
KR19980047273A (en) * 1996-12-14 1998-09-15 양승택 How to Manage Cache on RAID Level 5 Systems
KR20000005629A (en) * 1998-06-09 2000-01-25 가부시키가이샤 니프코 Cable way between two hinged members
EP1074916A2 (en) * 1999-08-04 2001-02-07 Lsi Logic Corporation Hardware mechanism for managing cache structures in a data storage system

Also Published As

Publication number Publication date
KR20030056653A (en) 2003-07-04

Similar Documents

Publication Publication Date Title
US10019364B2 (en) Access-based eviction of blocks from solid state drive cache memory
US8880787B1 (en) Extent metadata update logging and checkpointing
US6675176B1 (en) File management system
US9031911B2 (en) Preserving past states of file system nodes
US9454533B2 (en) Reducing metadata in a write-anywhere storage system
CN103502926B (en) Extent-based storage architecture
US5895485A (en) Method and device using a redundant cache for preventing the loss of dirty data
US9569458B2 (en) Preserving a state using snapshots with selective tuple versioning
EP1074916B1 (en) Hardware mechanism for managing cache structures in a data storage system
US8051050B2 (en) Block-level data de-duplication using thinly provisioned data storage volumes
US9830266B1 (en) Techniques for data prefetching
US11580162B2 (en) Key value append
CN103635887B (en) Data caching method and storage system
CN101082853A (en) Flash memory storage system
JPH06180671A (en) Disk cache controller
US20090125691A1 (en) Apparatus for managing remote copying between storage systems
US7509473B2 (en) Segmented storage system mapping
CN114844846A (en) Multi-level cache distributed key value storage system based on programmable switch
US6782444B1 (en) Digital data storage subsystem including directory for efficiently providing formatting information for stored records
JP5712127B2 (en) Dynamic write balancing in data storage systems.
US20100057989A1 (en) Method of moving data in logical volume, storage system, and administrative computer
US7908434B2 (en) Raid apparatus, cache management method, and computer program product
US20100251267A1 (en) Caching of SCSI I/O referrals
KR100470914B1 (en) Method and apparatus for controlling a disk cache in a disk array system
US20070260835A1 (en) Storage controlling device of disk array device and redundancy restoring method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20090102

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee