KR101124480B1 - 스토리지 어레이에서의 미러링된 캐시 볼륨을 이용한 드라이브 오버헤드 저감 시스템 - Google Patents

스토리지 어레이에서의 미러링된 캐시 볼륨을 이용한 드라이브 오버헤드 저감 시스템 Download PDF

Info

Publication number
KR101124480B1
KR101124480B1 KR1020100029143A KR20100029143A KR101124480B1 KR 101124480 B1 KR101124480 B1 KR 101124480B1 KR 1020100029143 A KR1020100029143 A KR 1020100029143A KR 20100029143 A KR20100029143 A KR 20100029143A KR 101124480 B1 KR101124480 B1 KR 101124480B1
Authority
KR
South Korea
Prior art keywords
write
cache region
read
requests
read cache
Prior art date
Application number
KR1020100029143A
Other languages
English (en)
Other versions
KR20100110271A (ko
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
Priority claimed from US12/417,096 external-priority patent/US8140762B2/en
Application filed by 엘에스아이 코포레이션 filed Critical 엘에스아이 코포레이션
Publication of KR20100110271A publication Critical patent/KR20100110271A/ko
Application granted granted Critical
Publication of KR101124480B1 publication Critical patent/KR101124480B1/ko

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2087Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/221Static RAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/285Redundant cache memory
    • G06F2212/286Mirrored cache memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명의 시스템은 호스트, 솔리드 스테이트 디바이스, 및 추상적 계층을 포함한다. 호스트는 복수의 입/출력(IO) 요구들을 발생시키도록 구성될 수 있다. 솔리드 스테이트 디바이스는 쓰기 캐시 영역 및 읽기 캐시 영역을 포함할 수 있다. 읽기 캐시 영역은 쓰기 캐시 영역의 미러일 수 있다. 추상적 계층은 (ⅰ)복수의 IO 요구들을 수신하고, (ⅱ)IO 요구들을 처리하고, (ⅲ)복수의 IO 요구들을 쓰기 캐시 영역 및 읽기 캐시 영역에 매핑하도록 구성될 수 있다.

Description

스토리지 어레이에서의 미러링된 캐시 볼륨을 이용한 드라이브 오버헤드 저감 시스템{SYSTEM TO REDUCE DRIVE OVERHEAD USING A MIRRORED CACHE VOLUME IN A STORAGE ARRAY}
본 발명은 스토리지 어레이들에 관한 것으로, 특히 스토리지 어레이에서의 미러링된 캐시 볼륨을 이용한 드라이브 오버헤드 저감 방법 및/또는 장치에 관한 것이다.
종래의 스토리지 어레이들(또는 컨트롤러들)은 컨트롤러 캐시의 이용을 제한한다. 라이트 스루 캐시 방법(write through cache policy)에서, 입/출력(IO) 쓰기 요구는 특정 하드디스크 드라이브(HDD)의 응답 시간에 의존하여야 한다. 대량의 IO 요구 SAN(storage array network) 환경에서, HDD 응답 시간은 더욱더 지연된다. IO 리드-어헤드 캐시 방법(read-ahead cache policy)에서, 원치않는 데이터가 패치되어 그 결과 HDD 응답 시간에 해당하는 지연을 갖는 다이렉트 리드-투-HDD(direct read-to-HDD)로 이어진다. 원치않는 데이터 패치에 소모되는 시간이 낭비된다.
캐시용 백업 배터리가 없는 경우에 DRAM들에 저장된 쓰기 캐시들 및 읽기 캐시들은 라이트 스루 캐시 방법(write through cache policy)으로 HDD에의 쓰기에 의존한다. 라이트 스루 캐시 방법으로 HDD에의 쓰기는 HDD의 지연시간에 추가된다. 원치않는 데이터의 프리-패치 결과들이 쓰기 데이터를 얻는 시간 지연에 추가되기 때문에 리드-어헤드 캐시 방법은 HDD의 지연시간 저감에 도움이 되지 않는다.
본 발명은 스토리지 어레이에서의 미러링된 캐시 볼륨을 이용한 드라이브 오버헤드 저감 방법 및/또는 장치를 제공하는 것을 목적으로 한다.
본 발명의 시스템은 호스트, 솔리드 스테이트 디바이스, 및 추상적 계층을 포함한다. 호스트는 복수의 입/출력(IO) 요구들을 발생시키도록 구성될 수 있다. 솔리드 스테이트 디바이스는 쓰기 캐시 영역 및 읽기 캐시 영역을 포함할 수 있다. 읽기 캐시 영역은 쓰기 캐시 영역의 미러일 수 있다. 추상적 계층은 (ⅰ)복수의 IO 요구들을 수신하고, (ⅱ)IO 요구들을 처리하고, (ⅲ)복수의 IO 요구들을 쓰기 캐시 영역 및 읽기 캐시 영역에 매핑하도록 구성될 수 있다.
본 발명의 목적들, 특징들, 및 장점들은 (ⅰ)하드디스크 오버헤드를 저감시키고, (ⅱ)스토리지 어레이에 미러링된 캐시 볼륨을 구현하고, (ⅲ)라이트 스루 모드(write through mode)가 전형적인 하드디스크 드라이브(HDD) 대신에 솔리드 스테이트 드라이브(SSD)에 쓸 수 있도록 하고, (ⅳ)LUN들의 생성동안 미러링된 캐시 볼륨을 갖는 LUN들을 생성하고, (ⅴ)LUN들이 생성된 후에 미러링된 캐시 볼륨들을 생성하고, (ⅵ)모든 데이터가 미러링되어 HDD 및 미러링된 LUN에 동기적으로 쓰여질 때까지 현재 데이터를 비동기적으로 미러링하고, (ⅶ)HDD 지연을 회피하기 위해 (HDD 대신에) 읽기 IO 요구들을 위한 미러링된 캐시 볼륨을 이용하고, (ⅷ)사용자 선택가능 미러드 캐시 볼륨을 제공하고, (ⅸ)미러링된 캐시 볼륨을 이용한 읽기 캐시가 SSD(또는 플래시 드라이브)가 되도록 하고, (ⅹ)DRAM들과 분리된 SSD에 쓰기 캐시 및 읽기 캐시를 가지고, (ⅹⅰ)쓰기 캐시용 백업 배터리가 없는 경우에 라이트 스루 캐시 방법(write through cache policy)으로 HDD에 쓰고, (ⅹⅱ)SSD 쓰기 캐시에 쓰여질 수 있고, (ⅹⅲ)읽기 캐시 영역의 미러링된 캐시 볼륨을 갖는 LUN들에 의해 읽기 IO 요구들이 보다 빨리 서비스되게 할 수 있고, (ⅹⅳ)잘못된 예측들로 인해 프리패치 읽기 캐시 모드와 그 결과 얻어지는 원치않는 데이터를 없애고, 및/또는 (ⅹⅴ)처리 시간 및 HDD 지연 시간을 줄일 수 있는 방법 및/또는 장치의 제공을 포함한다.
본 발명의 목적들, 특징들, 및 장점들은 다음의 상세한 설명, 첨부한 청구범위, 및 도면으로부터 명백할 것이다.
도 1은 본 발명의 일실시예의 블록도이다.
도 2는 본 발명의 일실시예의 상세 블록도이다.
도 3은 본 발명의 다른 실시예의 블록도이다.
도 1은 본 발명의 바람직한 실시예에 따른 시스템(100)의 블록도이다. 일반적으로 시스템(100)은 모듈(102), 모듈(104), 모듈(106), 모듈(108), 모듈(110), 모듈(112), 및 연결부(114)를 포함한다. 모듈(102)은 서버로 구현될 수 있다. 일예로, 모듈(102)은 호스트로 구현될 수 있다. 모듈(104)은 컨트롤러로 구현될 수 있다. 모듈(106)은 스토리지 어레이로 구현될 수 있다. 모듈(108)은 하드디스크 드라이브(HDD)로 구현될 수 있다. 일예로, HDD(108)는 복수의 물리적인 디스크들(예를 들면, P1,P2,P3)을 구현할 수 있다. 물리적인 디스크들의 개수는 특정 용도의 설계 기준을 충족시키기 위해 변할 수 있다. 일예로, HDD(108)는 스토리지 어레이(106)의 일부일 수 있다. 컨트롤러(104)는 모듈(110)을 포함할 수 있다. 모듈(110)은 입/출력(IO) 추상적 계층으로 구현될 수 있다. 모듈(106)은 모듈(112)을 포함할 수 있다. 모듈(112)은 솔리드 스테이트 디바이스로 구현될 수 있다. 연결부(114)는 네트워크 연결부, 예를 들어 파이버 채널 연결부 등의 네트워크 연결부일 수 있다. 시스템(100)은 스토리지 어레이(106)의 HDD(108) 액세스시의 지연시간으로 인한 오버헤드를 저감시킬 수 있다.
도 2는 시스템(100)의 상세 블록도이다. 일반적으로 모듈(112)은 쓰기 캐시 영역(116)과 읽기 캐시 영역(118)을 포함한다. 일예로, 쓰기 캐시 영역(116)과 읽기 캐시 영역(118)은 SSD(112)의 서로다른 위치에 배치(예를 들면, 매핑)될 수 있다. 쓰기 캐시 영역(116)은 일반적으로 복수의 LUN들(120a-120n)(예를 들면, LUN0, LUN1, LUN2 등)을 포함한다. 읽기 캐시 영역(118)은 일반적으로 LUN(122)(예를 들면, LUNO')을 포함한다. 일예로, LUN(122)은 LUN들(120a-120n)중 특정 하나(예를 들면, LUN(120a))의 미러링된 캐시 볼륨으로 구현될 수 있다. LUN들(120a-120n) 및 LUN(122)의 개수는 특정 용도의 설계 기준을 충족시키기 위해 (예를 들면, 2048개 또는 그 이상까지) 변할 수 있다(예를 들면, 증가 및/또는 감소될 수 있다). IO 요구들은 일반적으로 LUN들(120a-120n) 및 LUN(122)으로 전달되며, LUN들(120a-120n) 및 LUN(122)은 이러한 요구들을 스토리지 어레이(106)의 스토리지 디바이스들(예를 들면, 물리적인 디스크들 P1,P2, 또는 P3)로 옮긴다.
컨트롤러(104)(또는 펌웨어)는 IO 추상적 계층(110)으로 구성될 수 있다. 호스트(102)로부터 처리될 IO 요구는 IO 추상적 계층(110)으로 전달될 수 있다. IO 추상적 계층(110)은 솔리드 스테이트 디바이스(112)의 쓰기 캐시 영역(116) 및 읽기 캐시 영역(118)(예를 들면, LUN들(120a-120n) 및 LUN(122))으로 매핑시킬 수 있다. 쓰기 캐시 영역(116)은 SSD(112)에 매핑될 수 있다. 읽기 캐시 영역(118)은 SSD(112)의 다른 위치(또는 영역)에 매핑될 수 있다. 일예로, 읽기 캐시 영역(118)은 플래시 드라이브에 매핑될 수 있다. 읽기 캐시 영역(118)은 LUN들(120a-120n)중 특정 하나의 쓰기 캐시 영역(116)의 미러일 수 있다. 예를 들면, LUN(120a)(예를 들면, LUN0)에 대한 IO 쓰기 요구는 SSD(112)의 쓰기 캐시 영역(116)에 매핑될 수 있다. IO 쓰기 요구는 읽기 캐시 영역(118)에 동기적으로(또는 비동기적으로) 미러링될 수 있다.
IO 추상적 계층(110)은 IO 쓰기가 완료되면 신호(예를 들면, 양호 상태 신호)를 호스트(102)로 리턴시킬 수 있다. LUN(122)(예를 들면, LUNO')에 대한 IO 읽기 요구가 호스트(102)에서 IO 추상적 계층(110)으로 전달될 수 있다. IO 추상적 계층(110)은 LUN(122)에서 원하는 데이터를 검색하기 위해 미러링된 읽기 캐시 영역(118)을 읽을 수 있다. 원하는 데이터가 SSD(112)의 읽기 캐시 영역(118)에 저장되어 있으면 IO 추상적 계층(110)은 HDD(108)를 읽을 필요가 없다. 원하는 데이터가 SSD(112)의 읽기 캐시 영역(118)에 저장되어 있으면, HDD(108)의 읽기와 관련된 응답 시간의 지연을 회피할 수 있다. 일예로, IO 쓰기 요구들은 HDD(108)(예를 들면, 쓰기 캐시 영역(116))와 SSD(112)의 미러링된 읽기 캐시 영역(118)에 비동기적으로 쓰여질 수 있다.
IO 쓰기 요구는 호스트(또는 개시자)(102)에서 IO 추상적 계층(110)으로 전달될 수 있다. IO 추상적 계층(110)은 IO 요구를 SSD(112)(예를 들면, 쓰기 캐시 영역(116))에 쓸 수 있다. IO 추상적 계층(110)은 신호(예를 들면, "양호" 상태 신호)를 호스트(102)로 전달할 수 있다. 일예로, IO 추상적 계층(110)은 라이트 스루 캐시 방법(write through cache policy)으로 SSD(112)에 IO 요구를 쓰고 양호 상태 신호를 호스트(102)로 전달할 수 있다. IO 추상적 계층(110)은, 라이트 백 캐시 방법(write back cache policy)으로 IO 요구를 컨트롤러/어레이 DRAM에 쓰는 동안, 양호 상태 신호를 호스트(102)로 전달할 수 있다. IO 추상적 계층(110)은 SSD(112)의 쓰기 캐시 영역(116)(예를 들면, LUN(120a))에서 IO 읽기 요구를 처리하는 대신에 LUN(122)에서 IO 읽기 요구를 처리할 수 있다.
IO 읽기 요구는 호스트(102)로부터 전달될 수 있다. IO 읽기 요구는 IO 추상적 계층(110)으로 전달될 수 있다. IO 추상적 계층(110)은 이전 IO 요구들을 HDD(108)의 LUN들(120a-120n)(예를 들면, LUN0)에 비동기적으로 쓸 수 있다. IO 요구들은 읽기 캐시 영역(118)의 LUN(122)에 미러링될 수 있다. 일예로, LUN(122)은 LUN들(120a-120n)중 특정 하나(예를 들면, LUN0)의 미러링된 캐시 볼륨일 수 있다. LUN들(120a-120n) 및 LUN(122)은 IO 추상적 계층(110)에 의해 동기적으로(또는 비동기적으로) 쓰여질 수 있다. 읽기 캐시 영역(118)의 미러링된 LUN(122)이 LUN들(120a-120n)의 구성동안 생성될 수 있다. LUN들(120a-120n)의 구성동안 LUN(122)이 매핑될 수 있다. 일예로, 특정 설계 용도에 따라 사용자 선택을 기반으로 LUN(122)이 매핑될 수 있다.
LUN들(120a-120n)중 하나 이상(예를 들면, 120b-120n)은 미러링된 캐시 볼륨없이 구성될 수 있다. LUN들(120b-120n)은 (현재 LSI 스토리지 어레이들에서 제공되는) 리드 프리패치 캐시 방법(read pre-fetch cache policy)을 사용하도록 구성될 수 있다. IO 읽기 요구를 처리하기 위해, IO 추상적 계층(110)은 LUN(122)으로부터 미러링된 캐시 볼륨(예를 들면, 읽기 캐시 영역(118))을 읽을 수 있다. IO 읽기 요구 처리는 HDD(108)(예를 들면, 쓰기 캐시 영역(116))로부터의 IO 읽기 요구 처리보다 LUN(122)로부터의 IO 읽기 요구 처리가 빠를 수 있다. IO 읽기 요구는 호스트(102)로 리턴될 수 있다.
도 3은 시스템(100')의 블록도이다. 일반적으로 시스템(100')은 호스트(102), 컨트롤러(104), 모듈(106'), 및 HDD(108)를 포함한다. 컨트롤러(104)는 IO 추상적 계층(110)을 구현할 수 있다. 모듈(106')은 스토리지 어레이로 구현될 수 있다. 스토리지 어레이(106')는 일반적으로 모듈(112')과 모듈(130)을 포함한다. 모듈(112')은 솔리드 스테이트 디바이스(SSD)로 구현될 수 있다. SSD(112')는 일반적으로 쓰기 캐시 영역(116)을 포함한다. 쓰기 캐시 영역은 일반적으로 복수의 LUN들(120a-120n)을 포함한다. 모듈(130)은 플래시 드라이브로 구현될 수 있다. 플래시 드라이브(130)는 일반적으로 읽기 캐시 영역(118)을 포함한다. 읽기 캐시 영역은 LUN(122)을 포함할 수 있다. 일예로, 플래시 드라이브(130)는 복수의 LUN들(120a-120n)을 미러링하도록 구성된 복수의 LUN들을 포함할 수 있다.
제조비용은 솔리드 스테이트 드라이브(SSD)의 구현 또는 전체 미러링된 LUN을 저장하기 위한 플래시 드라이브의 구현과 관련될 수 있다. 소정의 LUN들을 위한 미러를 구현함으로써, 성능 대 비용 밸런스를 얻을 수 있다. 성능 개선은 일반적으로 SSD 구현의 추가 비용만큼 얻어진다.
본 발명이 특정 실시예를 참조하여 특별히 도시되고 설명되었지만, 본 발명의 범위를 일탈하지 않고 형태와 상세에 있어 다양한 변형물이 가능하다는 것을 이 기술분야의 당업자는 이해할 것이다.
본 발명은 계류중인 특허출원 제61/046,815호(2008.4.22), 제12/143,123호(2008.6.20), 제61/080,806호(2008.7.15), 제61/080,762호(2008.7.15), 제12/178,064호(2008.7.23), 제12/238,858호(2008.9.26), 제61/100,034호(2008.9.25), 제12/324,224호(2008.11.26), 제12/354,126호(2009.1.15), 및 제12/395,786호(2009.3.2)와 관련되어 있으며, 여기에 참조로서 포함되어 있다.

Claims (20)

  1. 입/출력(I/O) 쓰기 요구와 I/O 읽기 요구를 포함하는 복수의 입/출력(IO) 요구들을 발생시키도록 구성된 호스트;
    (ⅰ) 솔리드 스테이트 디바이스 및 (ⅱ)복수의 하드 디스크 드라이브들(HDD)을 포함하는 드라이브 어레이로서, 상기 솔리드 스테이트 디바이스는 (a)쓰기 캐시 영역 및 (b)읽기 캐시 영역을 포함하고, (A)상기 드라이브 어레이는 상기 입/출력 요구들에 따라 데이터를 저장 및/또는 검색하고, (B)상기 읽기 캐시 영역은 상기 쓰기 캐시 영역의 일부의 데이터 미러이고, (C)상기 읽기 캐시 영역과 상기 쓰기 캐시 영역 사이의 상기 데이터 미러는 상기 읽기 캐시 영역을 액세스할 때 지연 오버헤드를 회피하기 위해 상기 쓰기 캐시 영역에 상기 데이터가 쓰여진 후에 동기화되는 드라이브 어레이; 및
    (ⅰ)상기 복수의 IO 요구들을 수신하고, (ⅱ)상기 IO 요구들을 처리하고, (ⅲ)상기 복수의 IO 요구들을 상기 쓰기 캐시 영역 및 상기 읽기 캐시 영역에 매핑하도록 구성된 추상적 계층을 포함하는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 시스템.
  2. 제1항에 있어서,
    상기 IO 쓰기 요구가 상기 쓰기 캐시 영역 및 상기 읽기 캐시 영역에 동기적으로 쓰여지는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 시스템.
  3. 제1항에 있어서,
    상기 IO 읽기 요구가 상기 읽기 캐시 영역에서 처리되는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 시스템.
  4. 제1항에 있어서,
    상기 추상적 계층은 컨트롤러상에서 실행되는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 시스템.
  5. 제1항에 있어서,
    상기 솔리드 스테이트 디바이스는 스토리지 어레이상에 구현되는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 시스템.
  6. 제1항에 있어서,
    상기 읽기 캐시 영역은 상기 쓰기 캐시 영역과 다른 위치에 매핑되는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 시스템.
  7. 제1항에 있어서,
    상기 추상적 계층은 상기 IO 쓰기 요구가 완료되면 신호를 상기 호스트로 리턴시키는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 시스템.
  8. 제1항에 있어서,
    상기 쓰기 캐시 영역 및 상기 읽기 캐시 영역은 각각 LUN을 포함하는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 시스템.
  9. 제1항에 있어서,
    상기 IO 쓰기 요구가 상기 쓰기 캐시 영역 및 상기 읽기 캐시 영역에 비동기적으로 쓰여지는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 시스템.
  10. (A) 입/출력(I/O) 쓰기 요구와 I/O 읽기 요구를 포함하는 복수의 입/출력(IO) 요구들을 발생시키는 단계;
    (B) 상기 복수의 IO 요구들을 수신하는 단계;
    (C) 상기 복수의 IO 요구들을 처리하는 단계;
    (D) 상기 복수의 IO 요구들을 쓰기 캐시 영역 및 읽기 캐시 영역에 매핑하는 단계; 및
    (E) 상기 쓰기 캐시 영역의 후에 상기 읽기 캐시 영역을 미러링하는 단계를 포함하는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 방법.
  11. 제10항에 있어서,
    상기 단계(D)는 상기 IO 쓰기 요구를 상기 쓰기 캐시 영역 및 상기 읽기 캐시 영역에 동기적으로 쓰는 단계를 포함하는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 방법.
  12. 제10항에 있어서,
    상기 단계(C)는 상기 IO 읽기 요구를 상기 읽기 캐시 영역에서 처리하는 단계를 포함하는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 방법.
  13. 제10항에 있어서,
    상기 IO 쓰기 요구가 완료된 후에 신호를 호스트로 리턴시키는 단계를 더 포함하는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 방법.
  14. 제10항에 있어서,
    상기 읽기 캐시 영역 및 상기 쓰기 캐시 영역은 각각 LUN을 포함하는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 방법.
  15. 제10항에 있어서,
    상기 단계(D)는 상기 IO 쓰기 요구를 상기 쓰기 캐시 영역 및 상기 읽기 캐시 영역에 비동기적으로 쓰는 단계를 포함하는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 방법.
  16. 제10항에 있어서,
    상기 읽기 캐시 영역은 플래시 드라이브를 포함하는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 방법.
  17. 제10항에 있어서,
    상기 읽기 캐시 영역은 상기 쓰기 캐시 영역과 다른 위치에 매핑되는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 방법.
  18. 입/출력(I/O) 쓰기 요구와 I/O 읽기 요구를 포함하는 복수의 입/출력(IO) 요구들을 발생시키도록 구성된 호스트;
    쓰기 캐시 영역을 포함하는 솔리드 스테이트 디바이스;
    상기 쓰기 캐시 영역의 미러인 읽기 캐시 영역을 포함하는 플래시 드라이브; 및
    (ⅰ)상기 복수의 IO 요구들을 수신하고, (ⅱ)상기 IO 요구들을 처리하고, (ⅲ)상기 복수의 IO 요구들을 상기 쓰기 캐시 영역 및 상기 읽기 캐시 영역에 매핑하도록 구성된 추상적 계층을 포함하는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 시스템.
  19. 제18항에 있어서,
    상기 IO 쓰기 요구는 상기 쓰기 캐시 영역 및 상기 읽기 캐시 영역에 동기적으로 쓰여지는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 시스템.
  20. 제18항에 있어서,
    상기 IO 쓰기 요구는 상기 쓰기 캐시 영역 및 상기 읽기 캐시 영역에 비동기적으로 쓰여지는 것을 특징으로 하는 스토리지 어레이에서의 드라이브 오버헤드 저감 시스템.
KR1020100029143A 2009-04-02 2010-03-31 스토리지 어레이에서의 미러링된 캐시 볼륨을 이용한 드라이브 오버헤드 저감 시스템 KR101124480B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/417,096 US8140762B2 (en) 2008-04-22 2009-04-02 System to reduce drive overhead using a mirrored cache volume in a storage array
US12/417,096 2009-04-02

Publications (2)

Publication Number Publication Date
KR20100110271A KR20100110271A (ko) 2010-10-12
KR101124480B1 true KR101124480B1 (ko) 2012-03-16

Family

ID=45813138

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100029143A KR101124480B1 (ko) 2009-04-02 2010-03-31 스토리지 어레이에서의 미러링된 캐시 볼륨을 이용한 드라이브 오버헤드 저감 시스템

Country Status (5)

Country Link
EP (1) EP2237157B1 (ko)
JP (2) JP5415333B2 (ko)
KR (1) KR101124480B1 (ko)
CN (1) CN101859234B (ko)
TW (1) TWI371686B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8296782B2 (en) 2008-04-22 2012-10-23 Lsi Corporation System eliminating hardware duplication during application testing of an internal storage array across different operating systems
TWI472920B (zh) * 2011-09-01 2015-02-11 A system and method for improving the read and write speed of a hybrid storage unit
EP2761481A4 (en) 2011-09-30 2015-06-17 Intel Corp PRESENTATION OF DIRECT ACCESS STORAGE DEVICE IN LOGIC READER MODEL
JP6056211B2 (ja) * 2012-06-22 2017-01-11 富士通株式会社 情報管理装置、情報管理プログラム、及び情報管理方法
US9081686B2 (en) * 2012-11-19 2015-07-14 Vmware, Inc. Coordinated hypervisor staging of I/O data for storage devices on external cache devices
JP6036736B2 (ja) 2014-03-31 2016-11-30 日本電気株式会社 キャッシュ装置、ストレージ装置、キャッシュ制御方法、及びストレージ制御プログラム
CN106557264B (zh) * 2015-09-25 2019-11-08 伊姆西公司 针对固态硬盘的存储方法及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586291A (en) 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
US6446237B1 (en) 1998-08-04 2002-09-03 International Business Machines Corporation Updating and reading data and parity blocks in a shared disk system
US20040117438A1 (en) 2000-11-02 2004-06-17 John Considine Switching system
KR20060123573A (ko) * 2004-02-04 2006-12-01 샌디스크 코포레이션 듀얼 매체 저장 장치

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06505584A (ja) 1991-03-05 1994-06-23 ザイテル コーポレーション キャッシュメモリ
JP3699797B2 (ja) 1997-02-04 2005-09-28 沖電気工業株式会社 ディスクアレイ装置
US6081875A (en) * 1997-05-19 2000-06-27 Emc Corporation Apparatus and method for backup of a disk storage system
US6321298B1 (en) * 1999-01-25 2001-11-20 International Business Machines Corporation Full cache coherency across multiple raid controllers
WO2003075166A1 (fr) * 2002-03-06 2003-09-12 Fujitsu Limited Systeme de stockage et procede de transfert de donnees dans ledit systeme
US7330931B2 (en) * 2003-06-26 2008-02-12 Copan Systems, Inc. Method and system for accessing auxiliary data in power-efficient high-capacity scalable storage system
JP4338075B2 (ja) * 2003-07-22 2009-09-30 株式会社日立製作所 記憶装置システム
JP4625675B2 (ja) 2004-10-20 2011-02-02 株式会社日立製作所 ストレージ装置のリソース割り当て方法及びストレージ装置
JP4819369B2 (ja) * 2005-02-15 2011-11-24 株式会社日立製作所 ストレージシステム
JP5008845B2 (ja) * 2005-09-01 2012-08-22 株式会社日立製作所 ストレージシステムとストレージ装置及びその制御方法
JP4394670B2 (ja) * 2006-09-28 2010-01-06 株式会社日立製作所 ディスク制御装置及びストレージシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586291A (en) 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
US6446237B1 (en) 1998-08-04 2002-09-03 International Business Machines Corporation Updating and reading data and parity blocks in a shared disk system
US20040117438A1 (en) 2000-11-02 2004-06-17 John Considine Switching system
KR20060123573A (ko) * 2004-02-04 2006-12-01 샌디스크 코포레이션 듀얼 매체 저장 장치

Also Published As

Publication number Publication date
JP2013047965A (ja) 2013-03-07
CN101859234A (zh) 2010-10-13
TWI371686B (en) 2012-09-01
TW201037510A (en) 2010-10-16
CN101859234B (zh) 2013-09-11
EP2237157A1 (en) 2010-10-06
JP2010244532A (ja) 2010-10-28
JP5415333B2 (ja) 2014-02-12
EP2237157B1 (en) 2014-02-12
KR20100110271A (ko) 2010-10-12

Similar Documents

Publication Publication Date Title
US8140762B2 (en) System to reduce drive overhead using a mirrored cache volume in a storage array
KR101124480B1 (ko) 스토리지 어레이에서의 미러링된 캐시 볼륨을 이용한 드라이브 오버헤드 저감 시스템
US8775729B2 (en) Prefetching data tracks and parity data to use for destaging updated tracks
US8762650B2 (en) Prefetching tracks using multiple caches
US8745325B2 (en) Using an attribute of a write request to determine where to cache data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device
US8677062B2 (en) Caching data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device
US6978325B2 (en) Transferring data in virtual tape server, involves determining availability of small chain of data, if large chain is not available while transferring data to physical volumes in peak mode
US8935479B2 (en) Adaptive cache promotions in a two level caching system
US8825944B2 (en) Populating strides of tracks to demote from a first cache to a second cache
US20100100664A1 (en) Storage system
US8949536B2 (en) Prefetching source tracks for destaging updated tracks in a copy relationship
US6378038B1 (en) Method and system for caching data using raid level selection
US8825952B2 (en) Handling high priority requests in a sequential access storage device having a non-volatile storage cache
US20080147970A1 (en) Data storage system having a global cache memory distributed among non-volatile memories within system disk drives
US8996789B2 (en) Handling high priority requests in a sequential access storage device having a non-volatile storage cache
US11055001B2 (en) Localized data block destaging
JP3999446B2 (ja) ディスク装置及び同装置を複数備えた計算機システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee