KR20130142965A - 스마트 액티브-액티브 고가용성 das 시스템 - Google Patents

스마트 액티브-액티브 고가용성 das 시스템 Download PDF

Info

Publication number
KR20130142965A
KR20130142965A KR1020130070609A KR20130070609A KR20130142965A KR 20130142965 A KR20130142965 A KR 20130142965A KR 1020130070609 A KR1020130070609 A KR 1020130070609A KR 20130070609 A KR20130070609 A KR 20130070609A KR 20130142965 A KR20130142965 A KR 20130142965A
Authority
KR
South Korea
Prior art keywords
server
cache memory
data
hot
host
Prior art date
Application number
KR1020130070609A
Other languages
English (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 엘에스아이 코포레이션
Publication of KR20130142965A publication Critical patent/KR20130142965A/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
    • 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/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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/2089Redundant storage control functionality
    • 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/2097Error 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 maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

고가용성 DAS 시스템은, 액티브-패시브 또는 듀얼-액티브 시스템의 실행 간단성을 보유하면서, DAS 클러스터 내에서 거의 액티브-액티브 성능을 제공하도록 솔리드 스테이트 캐시를 이용한다. 클러스터 내 각 노드는 액티브-액티브 모드 내 핫 I/O를 저장하는 솔리드 스테이트 캐시를 포함할 수 있으며, 이는 "핫 구역(hot region)"으로의 액세스가 쿨 다운된 경우 또는 캐시 미스인 경우에만 데이터가 하위의 듀얼-액티브 또는 액티브/패시브 DAS RAID 시스템으로부터 읽히거나 시스템에 쓰여지도록 허용한다. 핫 I/O 데이터는 핫 리드 데이터가 영구적으로 저장되는 드라이브의 소유권에 상관없이 동적으로 축적되는 핫 리드 데이터를 포함한다. 또한 잠재적인 더티 라이트 데이터 충돌을 피하고 서버 고장의 경우에는 고가용성을 제공하기 위해 솔리드 스테이트 캐시 메모리를 통해 미러링되는 핫 라이트 데이터를 포함한다.

Description

스마트 액티브-액티브 고가용성 DAS 시스템{SMART ACTIVE-ACTIVE HIGH AVAILABILITY DAS SYSTEMS}
본 발명은 컴퓨터 네트워크를 위한 고가용성의 클러스터 시스템에 관한 것으로, 특히 듀얼-액티브 또는 액티브/패시브 DAS RAID 시스템에서 액티브-액티브 성능을 제공하기 위해 솔리드 스테이트 캐시를 사용하는 고가용성 DAS 시스템에 관한 것이다.
RAID(Redundant array of independent disks) 시스템은 디스크 고장을 대비하여 보호를 제공하기 위해 개발되어 왔다. 하지만, 정의(definition)대로 데이터 스토리지 시스템이 서버 내부에 내장되기 때문에, 직접 연결 스토리지(Direct Attached Storage: DAS) RAID 컨트롤러는 서버 고장에 대하여 무방비 상태이다. 만약 서버가 멈춘다면, RAID 컨트롤러는 멈추고, 서버 및 RAID 컨트롤러가 다시 온라인 될 때까지 저장된 데이터를 일시적으로 이용할 수 없다. 이 문제를 해결하기 위해, 중요한 데이터를 가진 기업 고객들은 종종 두 개 이상의 서버 노드를 포함한 고가용성 DAS 클러스터를 이용하는데, 각 서버 노드는 인클로저(an enclosure) 내 동일한 디스크 세트에 차례로 접속되는 RAID 컨트롤러를 가진 내장형 DAS 시스템을 구비한다. 디스크들은 개별적으로 전원공급을 받고 서버가 멈추더라도 다른 서버의 RAID 시스템이 중단 없는 모드(a non-disruptive mode)에서 IO를 제공하도록 디스크를 선택한다.
이러한 멀티-서버 DAS 클러스터는 하나 이상의 서버가 동일한 드라이브상에 저장된 데이터에 동시에 액세스를 시도하는 경우 발생하는 멀티-이니세이터(multi-initiator) 문제를 초래하는 것으로 알려져 왔다. 이 문제에 대한 종래 해결책은 각 드라이브가 단 하나의 서버에 의해 "소유된" 듀얼-액티브(dual-active) 구성을 포함하는 것으로, 이는 자기 소유의 드라이브로의 액세스에 대한 독점적인 제어를 제공했다. 이러한 접근이 멀티-이니시에이터 충돌을 피할 수는 있으나, 서버들 사이에서 다량의 데이터(IO) 전송(shipping)을 야기할 수 있다. 대안으로, 드라이브는 하나의 서버만이 그 시간에 활성화되고 제 2 서버는 제 1 서버가 실패할 때에만 활성화되는 액티브-패시브 구성으로 구성될 수 있다. 두 접근 모두는, 소유되지 않은 디스크로 전송된 IO가 다른 서버로 전송될 필요가 있기 때문에, 상위 계층이 두 개 서버 모두로 IO를 송신하는 경우에 문제를 갖는다.
그러므로, 개선된 고가용성 DAS 시스템에 대한 계속적인 필요가 존재한다. 특히, 종래 액티브-패시브 및 듀얼-액티브 DAS 클러스터의 결점을 극복하는 개선된 DAS 클러스터가 필요하다.
본 발명은 DAS 클러스터에서 스마트 액티브-액티브 능력을 제공하기 위해 솔리트 스테이트 캐시(a solid state cache)를 사용하는 고가용성 DAS 시스템을 제공한다. 클러스터 내 각 노드는 액티브-액티브 모드에서 "핫 I/O(hot I/O)"(디스크의 가장 자주 액세스되는 위치)를 저장하는(캐시하는) 솔리드 스테이트 캐시(a solid state cache)를 포함할 수 있으며, 이는, 캐시 미스(a cache miss), 즉 찾으려는 데이터가 SSD 캐시 내에 있지 않고 하위의(underlying) 하드 드라이브로부터 이동되어야하는 경우, 데이터가 하위의 듀얼-액티브 또는 액티브-패시브 DAS RAID 시스템으로부터 읽히거나(be read) 시스템에 쓰여지도록(be written) 허용한다. 핫 I/O 데이터는 핫 리드 데이터(hot read data)가 영구적으로 저장되는 직접 연결 드라이브(direct attached drives)의 소유권에 상관없이 동적으로 축적되는 핫 리드 데이터를 포함한다. 또한 핫 I/O 데이터는, 서버 고장의 경우에 살아남은 서버로부터 더티 데이터(dirty data)가 제공될 수 있도록 하기 위해, 그리고 또한 잠재적인 더티 라이트 데이터 충돌을 피하기 위해, 솔리드 스테이트 캐시 메모리를 통해 두 서버 상에 미러링되는(mirrored) 핫 라이트 데이터(hot write data)를 포함한다. 본 발명은 듀얼-액티브 또는 액티브-패시브 RAID 시스템 내 DAS 클러스터상에서 실행될 수 있으나 반드시 그래야 하는 것은 아니다.
더 구체적으로, "핫 리드" 데이터는, 하위의 VD의 소유권에 상관없이 그리고 리드 IO의 출처(origin)에 전적으로 의존하여 각 노드 상의 솔리드 스테이트 캐시 메모리 내에 저장된다. 예를 들어, 서버 A가 VD를 소유하지만 대부분의 IO는 서버 B에 온다고 가정하자. 이 경우, 리드 캐시는 서버 A가 아닌 서버 B에 축적할 것이다. 캐시 적중(cache hit)을 위해, 이 캐시된 리드 데이터는 서버 A로 IO를 전송할 필요 없이 서버 B 캐시로부터 직접 제공될 것이다. 시스템은, 핫 리드 데이터가 영구적으로 저장되는 물리적인 연결 드라이브의 소유권에 상관없이 사용 패턴에 기초하여 핫 리드 데이터가 동적으로 빌드업하도록 허용한다. 이는 어느 노드가 핫 리드 데이터가 영구적으로 저장되는 드라이브를 소유하는지에 상관없이 핫 리드 데이터에 대한 복수의 전송 트랜잭션(multiple shipping transactions)을 제거한다.
핫 라이트 데이터(hot write data)와 관련하여, 각 노드상의 솔리드 스테이트 메모리는 임의의 더티 라이트 데이터(dirty write data)의 미러 복사(mirror copy)를 포함한다. 이는 어느 서버가 데이터가 영구적으로 저장되는 물리적인 드라이브를 소유하고 있는지에 상관없이 각 노드가 자기 소유의 솔리드 스테이트 캐시에 라이트 데이터를 저장하도록 허용하면서, 더티 라이트 데이터가 퍼머넌트 스토리지(permanent storage)에 쓰여질 때까지 서버를 통해 더티 라이트 데이터의 완전성(integrity)을 유지한다. 솔리드 스테이트 캐시 기술이 핫 리드 데이터 또는 핫 라이트 데이터에만 적용될 수 있었으나, 가장 큰 장점은 본 발명에 따른 핫 리드 및 핫 라이트 데이터의 액티브-액티브 캐싱(active-active caching)으로부터 얻어진다.
본 발명은 단일의 서버가 각각의 전용 연결 데이터 드라이브 세트를 구비한 복수의 I/O 컨트롤러를 포함하는 DAS 시스템 내에서 또한 실시될 수 있다. 이 시스템은 자신의 전용 데이터 드라이브 세트로의 액세스를 차례로 중재하는 각각의 I/O 컨트롤러 전용의 개별 캐시 메모리를 포함한다. 캐시 메모리는 본 발명의 스마트 액티브-액티브 메모리 시스템을 실행하도록 구성되는데, 여기서 핫 리드 데이터는 소유권에 상관없이 각 캐시 내에 동적으로 축적되고 더티 라이트 데이터는 캐시 메모리를 통해 미러링된다. 단일 서버, 멀티 컨트롤러 DAS 시스템은, 단일 서버 상에서 실행되는 복수의 컨트롤러가 상이한 서버 상에서 실행되는 복수의 컨트롤러를 대체한다는 것을 제외하고는, 멀티 서버 DAS 시스템과 유사하다. 그 외에 이 DAS 시스템은 유사한 방식으로 작동한다. 이러한 방식으로, 본 발명은 임의의 특정 서버 상에서 실행되는 I/O 컨트롤러의 수에 상관없이 전용 드라이브를 가진 임의의 I/O 컨트롤러 세트 중에서 실시될 수 있다.
전술한 일반적인 설명 및 후술하는 상세한 설명 모두는 단지 예시로 설명을 위한 것이며 청구된 바와 같이 본 발명에 관하여 반드시 제한적일 필요가 없다는 것이 이해되어야 한다. 명세서의 일부를 구성하고 명세서에 포함되는 첨부된 도면들은 본 발명의 실시예들을 예증하며 일반적인 설명과 함께 본 발명의 원리를 설명하는 역할을 한다.
첨부된 도면을 참고로 하여 본 발명에 관한 많은 이점이 더 잘 이해될 수 있다.
도 1은 액티브-액티브 솔리드 스테이트 캐시를 가진 DAS 클러스터에 관한 기능적인 블록도이다.
도 2는 액티브-액티브 솔리드 스테이트 캐시 시스템을 사용하는 DAS 클러스터 내 소유된 노드상에 저장된 데이터에 대한 리드 요청(read request)에 관한 데이터 흐름도이다.
도 3은 액티브-액티브 솔리드 스테이트 캐시 시스템을 사용하는 DAS 클러스터 내 피어 노드상에 저장된 데이터에 대한 리드 요청에 관한 데이터 흐름도이다.
도 4는 액티브-액티브 솔리드 스테이트 캐시 시스템을 사용하는 DAS 클러스터 내 소유된 노드상에 저장된 데이터에 대한 라이트 요청(write request)에 관한 데이터 흐름도이다.
도 5는 액티브-액티브 솔리드 스테이트 캐시 시스템을 사용하는 DAS 클러스터 내 피어 노드상에 저장된 데이터에 대한 라이트 요청에 관한 데이터 흐름도이다.
도 6은 액티브-액티브 캐시 메모리 시스템을 작동시키기 위한 로직 흐름도이다.
도 7은 액티브-액티브 솔리드 스테이트 캐시를 가진 DAS 클러스터를 형성하는 복수의 I/O 컨트롤러를 가진 서버에 관한 기능적인 블록도이다.
본 발명은 클러스터의 각 노드 내 위치된 액티브-액티브 솔리드 스테이트 캐시 메모리(solid state cache memory: SSD)를 가진 패시브-액티브 또는 듀얼-액티브 DAS 클러스터 내에서 구현될 수 있다. 두 개의 서버를 가진 DAS 클러스터가 도면에 도시되고 서술적 편의성을 위해 아래에서 설명되지만, 본 발명이 임의의 수의 노드를 가진 DAS 시스템으로 확대될 수 있음을 유념해야 한다. 또한, 일반적으로 "호스트(host)"는 I/O 요청을 수신하는 서버를 지칭하고, "소유자(owner)"는 일반적으로 I/O가 물리적으로 저장된 물리적인 드라이브를 소유한 서버를 지칭하며, "피어(peer)"는 일반적으로 클러스터 내 임의의 다른 서버를 지칭한다. DAS 노드는 일반적으로 특정 I/O 트랜잭션(transaction)을 위한 호스트, 소유자 또는 피어 노드로서 지칭되지만, 이러한 지칭은 상대적이며 대상 노드(subject node)가 I/O 요청을 수신하는지에 따라 또는 요청된 I/O가 영구적으로 위치한 물리적 드라이브를 소유하는지에 따라 임의의 노드가 특정 I/O 트랜잭션을 위한 호스트, 소유자 또는 피어 노드가 될 수 있다. 또한 도시된 실시예들은 DAS 시스템을 중재하는 예시의 애플리케이션으로서 RAID(redundant array of independent disks) 시스템을 포함한다는 것이 이해될 뿐만 아니라, 본 발명이 DAS 클러스터의 복수의 서버에 의해 제어되는 디스크 메모리를 사용하는 임의 종류의 시스템 또는 애플리케이션에 적용될 수 있다는 것 또한 이해될 것이다.
이러한 종류의 멀티 서버 고가용성 DAS 데이터 스토리지 시스템에서, 직접 연결 드라이브는 일반적으로 (종종 "CPUs", "서버", "이니시에이터(initiators)" 또는 "노드"로 언급되는) 두 개 컨트롤러 모두에 의해 액세스될 수 있는 (때때로 "저스트 베이직 올드 드라이브(just basic old drives: JBODS)"로 언급되는) 광학 스토리지 드라이브이다. 하지만, 두 컨트롤러가 동일한 스토리지 디바이스로 동시에 I/O를 송신하거나, 스핀 업(spin up)하거나, 환경을 설정하려고 시도한다면 멀티-이니시에이터 문제로서 알려진 액세스 충돌이 발생할 수 있다. 예를 들어, 한 이니시에이터가 타임아웃 후에 리셋, 태스크 관리를 시작할 수 있으며, 다른 이니시에이터는 이에 대해 모른다. 그런 다음 다른 노드는 "리셋 스톰(reset storm)"으로 이어지는 또 다른 리셋을 개시할 수 있다. 또한, 효과적인 스토리지 관리는, 리빌드(rebuild), 리컨스트럭션(reconstruction), 일관성 유지(make consistent) 등과 같은 다양한 백그라운드 작업을 위해 컨트롤러 사이에서 대역폭 협상(bandwidth negotiation)이 조정되도록 요청한다.
이러한 문제들은 서버들 사이의 조정 및 통신에 의해 해결될 가능성이 있는 반면, 통신 오버헤드는 곧 매우 무거워지고 코드는 지나치게 복잡해진다. 그 결과, DAS 클러스터는 멀티-이니시에이터 충돌이 발생하는 것을 방지하기 위해 일반적으로 액티브-패시브 또는 듀얼-액티브 구성을 선택해 왔다. 액티브-패시브 구성에서, 두 이니시에이터 모두는 모든 드라이브에 접속되지만, 제 1 이니시에이터만이 액티브 모드에 있고, 제 2 이니시에이터는 여전히 패시브 모드이다. 제 1 이니시에이터가 어떤 이유로 오프라인일 경우에만 제 2 이니시에이터는 액티브 모드가 된다. 그 결과, 한 번에 단지 하나의 이니시에이터만이 액티브-패시브 구성에서 액티브 모드이다. 이러한 접근은 멀티-이니시에이터 문제가 발생하는 것을 방지하는 반면, 아무 때나 컨트롤러를 비액티브인 서버 중 하나로 남겨둔다.
대안으로, 듀얼-액티브 구성에서, 두 이니시에이터는 동시에 액티브 상태이다. 멀티-이니시에이터 문제를 피하기 위해, 각 드라이브는 잠재적 이니시에이터 노드(예를 들어, 서버) 중 하나에 의해서만 독점적으로 제어된다("소유된다"로서도 언급됨). 이 경우에 있어서, 비소유 노드상에 랜드하는(lands) I/O는 소유 노드로 전송되어야 한다. 이러한 접근 또한 멀티-이니시에이터 문제를 제거하는데 효과적이지만, 노드들 사이의 I/O 요청의 전송이 시스템 성능을 저하시키고 두 컨트롤러에 의해 소유된 드라이브 공간을 시스템적으로 사용하는 구성에서는 심각해질 수 있다. 예를 들어, 각각의 물리적 드라이브 상에 복수의 가상 드라이브가 있고 특정 물리적 드라이브 상의 가상 드라이브들이 서로 다른 노드에 할당되었을 때, 서버 오버헤드 데이터 전송(sever overhead data shipping)이 발생할 수 있다. 또 다른 예로서, 노드들 사이에 데이터를 의도적으로 분산시키기 위해 오퍼레이팅 시스템 내 상위 층(upper layer)이 액티브-액티브 모드에서 의도적으로 I/O를 송신하도록 구성된 경우, 요청을 전송(shipping requests)하는 것이 심해질 수 있다. 일부 RAID 컨트롤러는, 예를 들어, RAID 데이터 보안 프로토콜의 일부로서 액티브-액티브 구성 내 저장된 데이터를 의도적으로 분산하도록 구성될 수 있다. 드라이브로의 게스트 액세스를 허용하는 것도 전송을 증가시킬 수 있는데 이는 게스트 오퍼레이팅 시스템이 호스트의 노드 시스템을 고려하여 작동되도록 구성되지 않을 수 있기 때문이다.
본 발명은 각 서버 내에 로컬 SSD 캐시 가속 장치가 있는 임의의 DAS 클러스터에 적용될 수 있다. 예를 들어, 이 SSD는 하나의 서버에만 보이는 로컬 디스크이거나, 컨트롤러상의 온보드(onboard) SSD 일 수 있다. 핫 I/O(즉, 동일한 로컬 블록 어드레스(local block address: LBA) 범위에서 자주 발생하는 I/O)는 소유권에 상관없이 I/O 패턴에 기초하여 소유자 및 피어 모두 내의 로컬 SSD에 캐시된다.
캐싱에 대하여 소유권이 고려되지 않기 때문에, 핫 리드 데이터는 소유권에 상관없이, I/O 패턴에만 기초하여 로컬 캐시 상에 동적으로 빌드업한다. 캐시 적중(cache hit)(SSD 캐시는 전반적으로 크기면에서 매우 크기 때문에, 대다수의 I/O)을 위해, 데이터는 다시금 소유권에 상관없이 오로지 로컬 컨트롤러로부터 제공될 것이다. 모든 느린 로테이팅 디스크 바운드 I/O(rotating disk bound I/O)는 또한 I/O 전송 메커니즘을 따를 것이다. 지역 제한(region locks)은 소유자 측에서만 관리될 것이며, 피어 측 SSD 캐시로부터 완료될 수 있는 I/O에 대해서는 소유자로부터 제한을 획득한 후에 실시될 것이다.
모든 로테이팅 디스크는 여전히 단일의 소유자 컨트롤러를 구비한다. 따라서 핫 리드 데이터(hot read data)는 소유권에 상관없이 두 컨트롤러 내에서 관리되는 반면, 콜드 데이터(cold data)는 근원적인 멀티-서버 DAS 프로토콜에 따라 소유된 드라이브 내에 저장된다. 그러므로, 핫 리드 I/O는, 소유권에 의존하지 않고 I/O 패턴에 기초하여 동적으로 변하는 I/O를 수신하는 컨트롤러 내에 캐시된다. 피어 노드로부터 전송된 임의의 I/O에 대하여, 소유자 노드는 일반적으로 히트 로직(heat logic)을 구동하지 않을 것이나, SSD, DDR 내 서치, 지역 제한을 취하는 것(take region lock) 등과 같은 다른 작업을 수행할 수는 있을 것이다. 핫 라이트 데이터는 잠재적인 더티 라이트 데이터 충돌을 피하기 위해 서버를 통해 캐시 내에 미러링된다.
그러므로 본 발명은 SSD 캐시로부터 액세스 된 다수의 I/O에 대한 I/O 전송이 제거되기 때문에, 듀얼-액티브 DAS 시스템의 중요한 성능 개선을 가져온다. 노드의 SSD 내에 저장된 핫 리드 데이터에 대하여 노드 상에 수신된 리드 요청을 위해, 노드는 SAS 링크를 통한 어떠한 전송 없이 직접 메모리 액세스를 통해 데이터를 제공한다. 또 다른 노드(SSD 소유자 노드) 상의 SSD 내에 저장된 핫 리드 데이터에 대하여 호스트 노드 상에서 수신된 리드 요청을 위해, 피어 노드는 SSD 소유자 노드로부터 제한(locks)을 취하고 DMA 데이터는 소유자 SSD로부터 호스트(피어) 시스템 메모리로 수신된다. 그러므로, 핫 리드 데이터는 소유권에 상관없이 사용에 기초하여 동적으로 빌드업되고, SAS 링크를 통해 SSD로부터 많아봐야 한 번의 전달(transmission)로 제공된다. SSD 캐시 내에 저장된 임의의 핫 리드 데이터에 대하여 하위 드라이브(underlying drives)로부터의 어떠한 전송도 발생하지 않는다.
호스트 노드에 의해 소유된 핫 라이트 데이터에 대한 라이트 요청을 위해, 데이터는 피어 노드 상의 SSD 캐시 내의 핫 라이트 데이터를 미러링하도록 SAS 링크를 통해 단 한 번만 이동한다. 피어 노드 소유의 핫 라이트 데이터에 대한 라이트 요청을 위해, 피어 노드상의 SSD 캐시 내에 핫 라이트 데이터를 미러링하도록 SAS 링크를 통해 데이터가 한 번 이동한다. 그러므로 핫 라이트는 서버 상의 SSD 캐시를 통해 미러링되고 SAS 링크를 통한 한 번의 전달로 SSD로부터 제공된다. 다시 말해, SSD 캐시 내 저장된 어떤 핫 라이트 데이터에 대해서 하위 드라이브로부터의 전송이 발생하지 않는다. 일단 데이터가 쿨 다운(예를 들어, 데이터로의 액세스가 임계값 아래로 줄어듬)되면 더티 라이트 데이터는 결국 정확한 소유자 드라이브 상의 퍼머넌트 스토리지에 저장된다.
이제 도면을 참조하면, 도 1은 본 발명의 스마트 액티브-액티브 캐시 메모리 시스템을 실행하도록 구성된 DAS 클러스터(30)를 포함하는 멀티-서버 시스템(10)에 관한 기능적인 블록도이다.
설명을 위한 예시로서, DAS 클러스터(30)는 호스트 서버(12a) 및 피어 서버(12b)를 포함한다. 호스트 서버(12a)는 CPU 컴플렉스(14a) 및 시스템 메모리(15a), 전형적으로 DDR 또는 DDR3 또는 기타 적절한 SDRAM을 포함한다. 또한 호스트 서버(12a)는, RAID 컨트롤러(16a)에 의해 중재되는(mediated) 이러한 예시에서, DAS 고가용성 메모리 시스템을 포함한다. 또한, 호스트 서버(12a)는 캐시 메모리(18a)를 포함하는데, 이 예시에서 플래시 메모리와 같은 솔리드 스테이트 디바이스(solid state device: SSD)이다. 마찬가지로, 피어 서버(12b)는 CPU 컴플렉스(14b), 시스템 메모리(15b), RAID 컨트롤러(16b), 및 캐시 메모리(SSD)(18b)를 포함한다. 캐시 메모리(18a-b)가 특정 실시예 내에서 각각의 서버 상에 존재하는 솔리드 스테이트 디바이스(SSD)로서 도시되지 않더라도, 캐시는 전용의 연결 드라이브, 연결 드라이브의 전용의 일부, 또는 본 발명의 캐시 메모리 기능에 할당된 임의의 다른 적절한 컴퓨터 메모리를 통해 실행될 수 있다는 것을 유념해야 한다.
DAS 고가용성 메모리 시스템은 호스트 및 피어 서버(12a-b) 사이의 기능적인 접속에 의존하고, 데이터 드라이브의 제 1 세트(24a)는 호스트 서버(12a)와 관련되고 데이터 드라이브의 제 2 세트(24b)는 피어 서버(12b)와 관련된다. 두 개 서버(12a-b)는 서버 또는 드라이브 고장 모드에서의 백업 목적으로 두 개의 드라이브 세트(24a-b)에 접속되지만 멀티-이니시에이터 문제를 피하기 위해 동시 액세스는 정상 작동 동안 제한된다. 예를 들어, 드라이브(24a-b)는 호스트 서버(12a)가 데이터 드라이브의 제 1 세트(24a)를 "소유"하고 피어 서버(12b)가 데이터 드라이브의 제 2 세트(24b)를 "소유"하는 듀얼-액티브 구성에서 작동될 수 있다. 이러한 경우에서, 소유되지 않은 서버(non-owning server)에 속하는 I/O 요청은 자신의 "소유된" 드라이브를 통해 독점적인 제어를 관리하는 소유 서버(owning server)로 전송되어야 한다. 대안으로, 데이터 드라이브(24a-b)는 한 번에 하나의 데이터 드라이브 세트만이 액티브되는 액티브-패시브 구성에서 작동될 수 있다. 두 구성에서, DAS 클러스터(30)는 멀티-이니시에이터 문제를 피하기 위해 동시에 두 데이터 드라이브 세트(24a-b)로의 실제 액티브-액티브 액세스가 부족하다.
이러한 예시의 구성에서, RAID 컨트롤러(16a-b)는 본 발명의 스마트 액티브-액티브 캐시 메모리 시스템(32)을 실행하기 위해 캐시 메모리(18a-b) 및 하위의 (underlying) DAS 데이터 드라이브(24a-b)로의 액세스를 중재한다. (컨트롤러 또는 노드로서도 언급되는) 서버가 예증의 실시예와는 다른 구성을 가질 수 있고, RAID 컨트롤러가 아닌 DAS 컨트롤러가 캐시 메모리를 컨트롤할 수 있고, SSD가 아닌 캐시 메모리가 사용될 수 있으며, 클러스터 내 두 개 이상의 노드가 있을 수 있지만, 도 1에 도시된 기본 구성요소들은 충분하고 본 발명이 실시될 수 있는 환경의 적절한 작업 예시를 제공한다. 시스템(30)은 다양한 다른 컴포넌트를 포함할 수 있고, 게스트 컨트롤러가 DAS 시스템에 액세스하도록 허용될 수 있다는 것 또한 이해될 것이다. 편의를 위해 본 발명을 실행하는데 포함되는 최소의 컴포넌트 및 서버의 세트만이 도면에 도시된다.
액티브-액티브 캐시(32)는 DAS 클러스터(30)에 SSD(18a-b)로서 식별된 캐시 메모리 내 일시적으로 저장된 "핫 I/O"로의 스마트 액티브-액티브 액세스를 제공한다. 호스트 서버(12a) 상에 존재하는 SSD(18a)는 "핫I/O"을 위해 캐시 메모리를 제공하는데, 이는 "핫 리드(hot read)" 및 "핫 라이트(hot write)" I/O를 포함한다. 마찬가지로, 피어 서버(12b) 상에 존재하는 SSD(18b)는 "핫 리드" 및 "핫 라이트" I/O를 포함하는 "핫 I/O"를 위해 캐시 메모리를 제공한다. 핫 I/O 데이터는 동일한 로컬 블록 어드레스(local block address: LBA) 범위 내 자주 발생하는 리드 및 라이트 데이터(즉, 자주 액세스된 I/O 데이터)를 포함한다. 핫 I/O 데이터를 정의하는 액세스 빈도(frequency)는 SSD(18a-b)의 메모리 용량 및 기타 요인에 기초하여 디자인 파라미터로서 설정될 수 있다.
대부분의 I/O가 백그라운드 내 퍼머넌트 메모리에 허가된 더티 라이트(dirty write)를 가진 캐시로부터 발생하거나 적은 사용 동안 또는 휴지(idle) 기간 동안 발생하는 것을 허용하기 위해, 캐시 메모리는 예상되는 I/O 트래픽과 비교하여 충분히 커야한다. 핫 리드 데이터는 리드 데이터가 영구적으로 저장되는 드라이브의 소유자에 상관없이 사용 패턴에 기초하여 각 캐시 내에 동적으로 빌드업할 수 있다. 핫 리드 데이터는 캐시 스토리지 용량(capacity)을 관리할 필요에 따라 제거될 수 있는데, 예를 들어, 새로운 핫 리드 데이터를 위해 방을 만들어야 하는 필요에 따라 가장 멀리서 액세스된 리드 데이터가 시간 맞춰 제거된다.
핫 라이트 데이터는 퍼머넌트 메모리 내 동일한 날짜의 복사에 대한 사용자 변화를 포함할 수 있기 때문에 "더티 라이트" 데이터로서 지칭될 수 있다. 더티 라이트 데이터 내 잠재적 충돌을 피하기 위해 핫 라이트 데이터는 두 서버의 로컬 캐시 내에 미러링된다.
도 2는 액티브-액티브 솔리드 스테이트 캐시 시스템을 사용하는 DAS 클러스터 내 소유된 노드상에 저장된 데이터에 대한 리드 요청을 위한 데이터 흐름도(40)이다. SSD(18a-b) 각각은 데이터가 영구적으로 저장되는 드라이브 소유권에 상관없이 동적 사용 패턴(dynamic usage pattern)에 기초하여 핫 리드 데이터를 저장한다. 그 결과, SSD(18a)는 어떤 서버가 데이터가 영구적으로 저장되는 드라이브를 소유하는지에 상관없이 서버(12a)를 통해 요청된 핫 리드 데이터를 저장한다. 마찬가지로, SSD(18b)는 어떤 서버가 데이터가 영구적으로 저장되는 드라이브를 소유하는지에 상관없이 서버(12b)를 통해 요청된 핫 리드 데이터를 저장한다. 그 결과, 서버(12a)에 의해 수신된 핫 리드 I/O 요청은 캐시 메모리 SSD(18a) 또는 SSD(18b) 중 하나에 저장된 핫 리드 데이터에 속할 수 있다. 도 2는 서버(12a)가 자기 소유의 SSD(18a)에 속하는 핫 리드 I/O 요청을 수신하는 상황을 도시한다. 이 경우, 핫 리드 I/O 요청은 서버(12a) 상의 캐시케이드(CacheCade) (42a)를 경유하여 SSD(18a)로부터 시스템 메모리(15a)로 직접 제공된 DMA 요청으로서 처리된다. 마찬가지로, 도 2는 서버(12b)가 자기 소유의 SSD(18b)에 속하는 핫 리드 I/O 요청을 수신하는 상황을 도시하며, 여기서 핫 리드 I/O 요청은 서버(12b) 상의 캐시케이드(42b)를 경유하여 SSD(18b)로부터 시스템 메모리(15b)로 직접 제공된 DMA 요청으로서 처리된다.
도 3은 서버가 피어 SSD상에 저장된 데이터에 대한 핫 리드 I/O 요청을 수신하는 보충 상황에 대한 데이터 흐름도(50)이다. 예시에서, 서버(12a)는 피어 서버(12b) 상의 SSD(18b) 캐시 메모리 내 저장된 데이터에 대한 핫 리드 I/O 요청을 수신한다. 이 경우, 요청된 I/O는 SSD(18b)로부터 피어 캐시케이드(42b)로 직접 제공된 DMA 요청으로서 처리된다. 그런 다음 요청된 데이터는 SAS 링크(44)를 경유하여 호스트 캐시케이드(42a)로 전송되고 시스템 메모리(15a)에 전송된다. 그 결과, I/O 요청은 종래 DMA 요청처럼 호스트 서버에 나타나고, 요청된 핫 리드 I/O는 서버(18a-b) 중 하나에 의한 추가 오버헤드 데이터 전송 제어를 요구하지 않고 캐시케이드(42a-b) 모듈 사이에서 전송된다. 이는 종래 디스크 데이터 리드 및 CPU 중재된 데이터 전송 프로세스를 본 발명의 캐시 데이터 리드 및 RAID 중재된 SAS 링크 전송 액티브-액티브 데이터 액세스 절차로 대체한다.
도 4는 DAS 클러스터 내 소유된 노드 상에 저장된 데이터에 대한 라이트 요청을 위한 데이터 흐름도(60)이다. 도시된 예시에서, 호스트 서버(12a)는 호스트 서버 상에 영구적으로 저장된 데이터에 대한 라이트 요청을 수신한다. 라이트 데이터는 SSD(18a)의 핫 라이트 데이터 섹션에 쓰여 지고 SAS 링크(44)를 통해 피어 서버(12b)로 전달되며, 여기서 라이트 데이터는 SSD(18b)의 핫 라이트 데이터 섹션 내에 미러링된다. 이는 임의의 잠재적인 더티 라이트 데이터 충돌을 피하기 위해 임의의 더티 라이트 데이터가 두 캐시 메모리(18a-b) 내에 미러링되는 것을 보장한다.
도 5는 서버가 피어 서버 소유의 드라이브 상에 영구적으로 저장된 데이터에 대한 핫 라이트 I/O 요청을 수신하는 보충 상황에 대한 데이터 흐름도(70)이다. 도시된 예시에서, 서버(12a)는 피어 서버(12b)에 의해 소유된 드라이버 내에 영구적으로 저장된 데이터에 대한 핫 라이트 I/O 요청을 수신한다. 라이트 데이터는 초기에 호스트 SSC(18a)에 저장된다. 라이트 데이터는, 호스트 서버(12a) 상의 캐시케이드(42a)로부터 SAS 링크(44)를 경유하여 피어 서버(12b) 상의 캐시케이드(42b)에 전달된 것들이다. 그런 다음 핫 라이트 데이터는 임의의 잠재적인 더티 라이트 데이터 충돌을 피하기 위해 두 캐시 메모리(18a-b) 내에 핫 라이트 데이터를 미러링하도록 피어 SSD(18b)의 핫 라이트 데이터 섹션에 쓰여 진다.
도 6은 액티브-액티브 캐시 메모리 시스템을 작동시키기 위한 로직 흐름도(80)이다. 단계 82에서, 시스템은 호스트 서버 상에 수신된 핫 리드 I/O 요청이 호스트 서버의 솔리드 스테이트 캐시 메모리에 속하는지 결정한다. 호스트 서버 상에서 수신된 핫 리드 I/O 요청이 호스트 서버의 솔리드 스테이트 캐시 메모리에 속한다면, "예"를 따라 단계 82에서 단계 84로 이어지는데, 여기서 I/O 요청은 호스트 서버 상의 솔리드 스테이트 캐시 메모리로부터 직접 읽힌다. 이러한 상황은 도 2의 데이터 흐름도에 대응한다.
호스트 서버에 수신된 핫 리드 I/O 요청이 호스트 서버의 솔리드 스테이트 캐시 메모리에 속하지 않는다면, "아니오"를 따라 단계 82에서 단계 86으로 이동하며, 여기서 시스템은 호스트 서버에 수신된 핫 리드 I/O 요청이 피어 서버의 솔리드 스테이트 캐시 메모리에 속한 것인지를 결정한다. 호스트 서버에 수신된 핫 리드 I/O 요청이 피어 서버의 솔리드 스테이트 캐시 메모리에 속한다면, "예"를 따라 단계 86에서 단계 88로 이어지며, 여기서 I/O 요청은 피어 서버 상의 솔리드 스테이트 캐시 메모리로부터 직접 읽힌다. 단계 88 다음에 핫 리드 데이터가 SAS 링크를 경유하여 호스트 서버의 솔리드 스테이트 캐시 메모리로 이동되는 단계 90이 이어지는데, 여기서 호스트 서버는 직접 메모리 액세스를 통해 호스트 솔리드 스테이트 캐시로부터 데이터를 액세스한다. 이러한 상황은 도 3의 데이터 흐름도에 대응한다.
호스트 서버에서 수신된 핫 리드 I/O 요청이 피어 서버의 솔리드 스테이트 캐시 메모리에 속하지 않는다면, "아니오"를 따라 단계 86으로부터 단계 92로 이어지고, 여기서 시스템은 호스트 서버에 의해 수신된 핫 라이트 I/O 요청이 호스트 서버에 의해 소유된 퍼머넌트 메모리에 속하는지 결정한다. 호스트 서버 상에서 수신된 핫 라이트 I/O 요청이 호스트 서버 소유의 퍼머넌트 메모리에 속한다면, "예"를 따라 단계 92에서 단계 94로 이어지고, 라이트 데이터는 호스트 서버 상의 솔리드 스테이트 캐시 메모리에 쓰여진다. 단계 94 다음에 단계 96이 이어지고, 여기서 핫 라이트 데이터는 다른 서버에 저장된 더티 라이트 데이터 내 잠재적인 충돌을 방지하도록 서버를 통해 라이트 데이터를 미러링하기 위해 SAS 링크를 경유하여 피어 서버의 솔리드 스테이트 캐시 메모리로 전달된다. 이러한 상황은 도 4의 데이터 흐름도에 대응한다.
호스트 서버에 수신된 핫 라이트 I/O 요청이 호스트 서버 소유의 퍼머넌트 메모리에 속하지 않았다면, "아니오"를 따라 단계 92에서 단계 98로 이어지고, 여기서 시스템은 호스트 서버에 수신된 핫 라이트 I/O 요청이 피어 서버 소유의 퍼머넌트 메모리에 속하는지를 결정한다. 호스트 서버에 수신된 핫 라이트 I/O 요청이 피어 서버 소유의 퍼머넌트 메모리에 속한다면, "예"를 따라 단계 98에서 단계 102로 이어지고, 여기서 라이트 데이터는 호스트 서버의 캐시 메모리 내에 저장된다. 단계 102 다음에 단계 104가 이어지고, 여기서 핫 라이트 데이터는 SAS 링크를 경유하여 피어 서버의 솔리드 스테이트 캐시 메모리로 전달된다. 단계 104 다음에 단계 106이 이어지고, 여기서 다른 서버 상에 저장된 더티 라이트 데이터 내 잠재적 충돌을 방지하도록 서버를 통해 라이트 데이터를 미러링하기 위해 핫 라이트 데이터는 피어 서버의 캐시 메모리 내에 저장된다. 이러한 상황은 도 5의 데이터 흐름도에 대응한다.
도 7은 단일 서버가 본 발명의 스마트 액티브-액티브 캐시 메모리 시스템을 실행하도록 구성된 복수의 I/O 컨트롤러를 포함하는 대안의 DAS 시스템(71)에 관한 기능적인 블록도이다.
도 7의 DAS 시스템(71)은, 단일 서버에서 실행되는 복수의 컨트롤러가 상이한 서버들에서 실행되는 복수의 컨트롤러를 대신하는 것을 제외하고는 도 1의 DAS 시스템(30)과 유사하다. 그 외, 도 7의 DAS는 도 1의 DAS와 유사한 방식으로 작동한다. 이 시스템은 데이터 드라이브의 전용 세트로의 액세스를 차례로 중재하는 각 I/O 컨트롤러 전용의 개별 캐시 메모리를 포함한다는 것을 유념해야 한다. 캐시 메모리는 본 발명의 스마트 액티브-액티브 캐시 메모리 시스템을 실행하도록 구성되며, 여기서 핫 리드 데이터는 소유권에 상관없이 각 캐시 내에 동적으로 축적되고 더티 라이트 데이터는 캐시 메모리를 통해 미러링된다. 단일 서버, 복수의 컨트롤러 DAS 시스템은, 단일 서버에서 실행되는 복수의 컨트롤러가 상이한 서버들에서 실행되는 복수의 컨트롤러를 대신하는 것을 제외하고는, 복수 서버 DAS 시스템과 유사하다. 그 외에 DAS 시스템은 유사한 방식으로 작동한다. 이러한 방식으로, 본 발명은, 임의의 특정 서버에서 실행되는 다수의 I/O 컨트롤러에 상관없이 전용 드라이브를 가진 I/O 컨트롤러의 임의의 세트 사이에서 실시될 수 있다.
더 구체적으로, DAS 고가용성 메모리(71)는 CPU 컴플렉스(13) 및 일반적으로 DDR 또는 DDR3 또는 기타 적합한 SDRAM인 시스템 메모리(17)을 구비한 서버(11)를 포함한다. 이 예시에서의 DAS 고가용성 시스템(71)은 다수의 RAID 컨트롤러(19a-n)에 의해 중재된다. 호스트 서버(11)는 다수의 캐시 메모리(21a), 예를 들어 플래시 메모리와 같은 솔리드 스테이트 디바이스(SSD)를 포함하는 액티브-액티브 캐시 메모리 시스템(72)을 포함한다. 캐시(21a)는 I/O 컨트롤러(19a) 전용이고, 캐시(21b)는 I/O 컨트롤러(19b) 전용인 것과 같이 각 캐시 메모리는 관련 I/O 컨트롤러의 전용이다. 또한, I/O 컨트롤러(19a)는 드라이브(25a-n)을 소유하고, I/O 컨트롤러(19b)는 드라이브(27a-n)를 소유하는 것과 같이 각 I/O 컨트롤러는 전용 데이터 드라이브의 관련 세트를 "소유"한다.
DAS 시스템(71)은 서버(11) 및 데이터 드라이브 세트(25a-n, 27a-n) 등 사이의 기능적인 접속에 의존한다. 서버는 서버 또는 드라이브 고장 모드에서의 백업을 위해 모든 드라이브 세트에 접속되지만, 멀티-이니시에이터 문제를 피하기 위해 정상 작동 동안에 컨트롤러에 의해 동시 액세스가 제한되고 중재된다. 예를 들어, 컨트롤러(19a)에 의해 소유된 드라이브(25a-n)는 컨트롤러(19a)를 통해서만 액세스 될 수 있고, 컨트롤러(19b) 소유의 드라이브(27a-n)는 컨트롤러(19b)를 통해서만 액세스될 수 있다. 각각의 드라이브 세트는 원하는 대로 듀얼-액티브 또는 액티브--패시브 구성으로 작동될 수 있다. 예를 들어, 컨트롤러(19a) 소유의 드라이브(25a-n)는 액티브-패시브 모드에서 작동될 수 있고, 컨트롤러(19b) 소유의 드라이브(27a-n)는 액티브-패시브 모드에서 작동될 수 있다. 보다 일반적으로, 드라이브 제어 모드의 임의의 조합은 임의의 I/O 컨트롤러에서 원하는 대로 사용될 수 있다.
액티브-액티브 캐시 메모리 시스템을 실행하기 위해, 캐시 메모리(21a)는 드라이브(25a-n)를 소유한 I/O 컨트롤러(19a)에 전용이고, 캐시 메모리(21b)는 드라이브(27a-n)를 소유한 I/O 컨트롤러(19b)에 전용이다. 일단 각 드라이브 세트가 전용의 I/O 컨트롤러 및 캐시 메모리를 갖는다면, 캐시 메모리 시스템은 도 1에 도시된 DAS 시스템(30)에 관하여 이미 설명된 동일한 방식으로 작동되며, 여기서 DAS(71)(도 7)의 단일 서버 내 I/O 컨트롤러(19a-b)는 듀얼-서버 DAS시스템(30)(도 1) 내 I/O 컨트롤러(16a-b)를 대신한다. 또한 SAS를 통한 데이터 전송은 단일 서버, 복수 컨트롤러 구성을 위해 삭제된다. 각각의 DAS 시스템(30 및 71)은 원하는 대로 많은 수의 "n" I/O 컨트롤러를 포함하도록 확장될 수 있다. 또한, 각 컨트롤러가 자기 소유의 전용 드라이브 세트 및 캐시 메모리를 갖는다면, 복수 컨트롤러 서버는 단일 컨트롤러 서버와 결합될 수 있다. 즉, 본 발명은 임의의 특정 서버에서 실행되는 I/O 컨트롤러의 개수에 상관없이 전용 드라이브를 갖는 임의의 I/O 컨트롤러 세트 사이에서 실시될 수 있다.
본 발명은 현재 존재하는 시스템을 조정하거나 재구성하는 것으로 구성될 수 있다(하지만 이러한 구성이 요구되는 것은 아님). 대안적으로, 본 발명을 구현하는 것에 원래 장치가 제공될 수 있다.
본 명세서에서 설명된 모든 방법은 방법 실시예에 관한 하나 이상의 단계의 결과를 저장 매체 내에 저장하는 것을 포함할 수 있다. 그 결과는 명세서에서 설명된 임의의 결과들을 포함할 수 있고 기술 분야에서 공지된 임의의 방식으로 저장될 수도 있다. 저장 매체는 본 명세서에서 설명된 임의의 저장 매체 또는 기술 분야에서 공지된 임의의 다른 적합한 저장 매체를 포함할 수 있다. 결과가 저장된 후에, 그 결과는 저장 매체 내에서 액세스될 수 있고 본 명세서에서 설명된 임의의 방법 또는 시스템 실시예에 의해 사용될 수 있으며, 사용자에게 디스플레이하기 위해 포맷되거나, 또 다른 소프트웨어 모듈, 방법, 또는 시스템 등에 의해 사용될 수 있다. 더욱이, 결과는 "영구적으로", "반영구적으로", 일시적으로 또는 일정 기간 동안 저장될 수 있다. 예를 들어, 저장 매체는 RAM(random access memory)일 수 있고, 그 결과는 저장 매체 내에 무기한으로 반드시 지속되지 않을 수 있다.
또한 전술된 방법에 관한 각 실시예들은 본 명세서에서 설명된 임의의 다른 방법(들)의 임의의 다른 단계(들)를 포함할 수 있다는 것을 유념해야 한다. 추가적으로, 전술된 방법에 관한 각 실시예들은 본 명세서에서 설명된 임의의 시스템에 의해 수행될 수 있다.
당업자들은 본 명세서에서 설명된 프로세스 및/또는 시스템 및/또는 다른 기술이 영향을 받을 수 있는 다양한 비히클(vehicle)(예를 들어, 하드웨어, 소프트웨어, 및/또는 펌웨어)이 있다는 것과 바람직한 비히클은 프로세스 및/또는 시스템 및/또는 다른 기술들이 배치되는 문맥에 따라 달라질 것이라는 것을 이해할 것이다. 예를 들어, 실행자가 속도 및 정확도가 중요하다고 결정한다면, 실행자는 주로 하드웨어 및/또는 펌웨어 비히클을 선택할 수 있고, 대신에 유동성이 중요하다면, 실행자는 주로 소프트웨어 실행을 선택할 것이며, 또는, 다른 대안으로, 실행자가 하드웨어, 소프트웨어, 및/또는 펌웨어의 조합을 선택할 수 있다. 이런 이유로, 본 명세서에 설명된 프로세스 및/또는 디바이스 및/또는 다른 기술들이 영향을 받을 수 있는 여러 가능한 비히클이 있으나, 이용되어야 하는 임의의 비히클은 비히클이 배치될 문맥 및 실행자의 구체적인 고려사항(예를 들어, 속도, 적응성, 또는 예측가능성)에 따라 좌우되는 선택이라는 점에서 비히클 중 어떤 것도 본질적으로 다른 것보다 우위에 않으며, 비히클 중 어떤 것은 달라질 수 있다. 당업자는 실행의 광학적 측면이 일반적으로 광학-지향적(optically-oriented) 하드웨어, 소프트웨어, 및/또는 펌웨어를 구현할 것이라는 것을 인식할 것이다.
당업자는, 본 명세서에 개시된 방법으로 디바이스 및/또는 프로세스를 설명하는 것은 기술 내에서 공통이라는 것을 인식할 것이며 따라서 그러한 설명된 디바이스 및/또는 프로세스들을 데이터 프로세싱 시스템으로 통합하기 위해 공학적 실행(engineering practices)을 사용할 것이다. 즉, 본 명세서에서 설명된 디바이스 및/또는 프로세스의 적어도 일부는 상당한 실험을 통해 데이터 프로세싱 시스템으로 통합될 수 있다. 당업자들은 전형적인 데이터 프로세싱 시스템은 일반적으로 하나 이상의 시스템 유닛 하우징, 비디오 디스플레이 디바이스, 휘발성 및 비휘발성 메모리와 같은 메모리, 마이크로프로세서 및 디지털 신호 프로세서와 같은 프로세서, 오퍼레이팅 시스템, 드라이버, 그래픽 유저 인터페이스, 및 애플리케이션 프로그램과 같은 컴퓨터 엔티티(computational entities), 터치 패드 또는 스크린과 같은 하나 이상의 상호작용 디바이스, 및/또는 피드백 루프 및 제어 모터(예를 들어, 센싱 포지션 및/또는 속도를 위한 피드백, 컴포넌트 및/또는 양을 조정하고/조정하거나 이동시키는 제어 모터)를 포함하는 제어 시스템을 포함한다. 전형적인 데이터 프로세싱 시스템은 일반적으로 데이터 컴퓨팅/통신에서 발견되는 것들 및/또는 네트워크 컴퓨팅/통신 시스템과 같은 임의의 적절한 상용화 컴포넌트를 사용하여 실행될 수 있다.
본 명세서에서 설명된 요지는 때때로 상이한 다른 컴포넌트 내에 포함되거나, 상이한 다른 컴포넌트와 접속된 다른 컴포넌트를 예증한다. 그러한 묘사된 아키택쳐는 단지 예시이며, 사실 많은 다른 아키텍처가 실행될 수 있어 동일한 기능을 달성한다는 것이 이해되어야 한다. 개념적 의미에서, 동일한 기능을 달성하는 임의의 컴포넌트 배열은 효과적으로 "연관되어(associated)" 요구되는 기능이 달성된다. 이러한 이유로, 특정 기능을 달성하도록 조합된 본 명세서 내 임의의 두 컴포넌트는 서로와 "연관된" 것으로서 보여질 수 있으며 따라서 아키텍처나 중간 컴포넌트에 상관없이 요구된 기능이 달성된다. 마찬가지로, 또한 매우 연관있는 임의의 두 컴포넌트는 요구된 기능을 달성하기 위해 서로에 "접속된(connected)" 또는 "결합된(coupled)" 것으로서 보여질 수 있으며, 매우 연관될 수 있는 임의의 두 컴포넌트는 또한 요구된 기능을 달성하기 위해 서로에 "결합될 수 있는(couplable)" 것으로서 보여질 수 있다. 결합될 수 있는 구체적인 예시는 물리적으로 정합가능한(mateable) 및/또는 물리적으로 상호작용하는 컴포넌트, 및/또는 무선으로 상호작용 가능한 및/또는 무선으로 상호작용하는 컴포넌트, 및/또는 논리적으로 상호작용하는 및/또는 논리적으로 상호작용가능한 컴포넌트를 포함하나 이에 한정되지는 않는다.
본 명세서에서 설명된 요지에 관한 본 발명의 특정 양태들이 도시되고 설명되었으나, 본 명세서 내 교수(teachings)에 기초하여 본 명세서에서 설명된 요지 및 본 발명의 더 넓은 양태를 벗어나지 않으면서 변경 및 수정이 실시될 수 있고, 그러므로 첨부된 특허청구범위는 본 명세서에서 설명된 요지의 실제 사상 및 범주 내에 있는 것으로서 모든 그러한 변경 및 수정을 포괄한다는 것은 당업자에게 명백할 것이다.
또한, 본 발명은 첨부된 특허청구범위에 의해 한정된다는 것이 이해되어야 한다.
본 발명에 관한 특정 실시예들이 예증되었으나, 본 발명에 관한 다양한 수정 및 실시예들이 앞서 말한 개시의 사상 및 범주를 벗어나지 않고 당업자에 의해 실시될 수 있음은 명백하다. 따라서, 본 발명의 범주는 본 명세서에 첨부된 특허청구범위에 의해서만 한정되어야 한다.
본 개시 및 본 개시의 수반되는 많은 장점들은 앞서 말한 설명에 의해 이해될 것이라 생각되며, 다양한 변경은 개시된 요지를 벗어나지 않고 또는 본 개시의 모든 물리적인 이점을 희생하지 않으면서 컴포넌트의 형식, 구성, 및 배열 내에서 실시될 수 있다는 것이 명백할 것이다. 설명된 형식은 단지 예시이며, 다음의 특허청구범위가 그러한 변경을 포괄하고 포함하도록 하고자 한다.

Claims (26)

  1. 호스트 서버(a host server), 피어 서버(a peer sever), 및 고가용성 직접 연결 스토리지 시스템(a high availability direct attached storage system)을 포함하는 멀티 서버 컴퓨터 시스템으로서,
    상기 호스트 서버에 의해 소유된 직접 연결 데이터 드라이브(directly attached data drives)의 제 1 세트,
    상기 피어 서버에 의해 소유된 직접 연결 데이터 드라이브의 제 2 세트,
    상기 호스트 서버에 연결되거나 상기 호스트 서버 상에 존재하는 호스트 캐시 메모리 및 상기 피어 서버에 연결되거나 상기 피어 서버 상에 존재하는 피어 캐시 메모리를 포함하는 캐시 메모리 시스템을 포함하되,
    상기 캐시 메모리 시스템은, 핫 I/O 데이터와 관련된 상기 직접 연결 데이터 드라이브의 제 1 세트 및 제 2 세트 사이에서의 멀티 이니시에이터(multi-initiator) 충돌을 피하면서 상기 캐시 메모리 시스템 내 저장된 상기 핫 I/O 데이터로의 액티브-액티브 액세스(active-active access)를 제공하고,
    상기 호스트 캐시 메모리는, 핫 리드 데이터(hot read data)가 영구적으로 저장되는 상기 연결 데이터 드라이브의 소유권에 상관없이 동적 시스템 사용(dynamic system usage)으로부터 야기된 상기 핫 리드 데이터를 저장하도록 구성되고,
    상기 피어 캐시 메모리는, 핫 리드 데이터가 영구적으로 저장되는 상기 연결 데이터 드라이브의 소유권에 상관없이 동적 시스템 사용으로부터 야기된 상기 핫 리드 데이터를 저장하도록 구성되고,
    상기 호스트 캐시 메모리 및 상기 피어 캐시 메모리는, 상기 호스트 캐시 메모리 및 상기 피어 캐시 메모리 내 저장된 더티 라이트 데이터(dirty write data) 내에서 데이터 충돌이 발생하는 것을 방지하기 위해 그리고 서버 또는 컨트롤러 고장(failure)의 경우에 언커미트된(uncommitted) 데이터 가용성을 제공하기 위해 상기 호스트 캐시 메모리 및 상기 피어 캐시 메모리를 통해 미러링된(mirrored) 핫 라이트 데이터(hot write data)를 저장하도록 더 구성되는
    멀티 서버 컴퓨터 시스템.
  2. 제 1 항에 있어서,
    상기 직접 연결 데이터 드라이브의 제 1 세트 및 제 2 세트는 듀얼-액티브 구성(a dual-active configuration)을 포함하는
    멀티 서버 컴퓨터 시스템.
  3. 제 1 항에 있어서,
    상기 직접 연결 데이터 드라이브의 제 1 세트 및 제 2 세트는 액티브-패시브 구성(an active-passive configuration)을 포함하는
    멀티 서버 컴퓨터 시스템.
  4. 제 1 항에 있어서,
    복수의 서버는 액티브-패시브 및 듀얼-액티브 모드의 조합으로 동작하는
    멀티 서버 컴퓨터 시스템.
  5. 제 1 항에 있어서,
    상기 호스트 서버 상에 존재하는 제 1 RAID 컨트롤러 및 상기 피어 서버 상에 존재하는 제 2 RAID 컨트롤러를 더 포함하는 멀티 서버 컴퓨터 시스템으로서, 상기 RAID 컨트롤러는 상기 고가용성 직접 연결 스토리지 시스템으로의 서버 액세스를 중재(mediate)하는
    멀티 서버 컴퓨터 시스템.
  6. 제 1 항에 있어서,
    상기 호스트 서버 상에 존재하는 상기 캐시 메모리 내에 저장된 핫 리드 I/O 데이터에 속하는 상기 호스트 서버에 의해 수신된 핫 I/O 리드 요청은 상기 호스트 서버 상에 존재하는 상기 캐시 메모리로의 직접 메모리 액세스를 통해 상기 호스트 서버의 시스템 메모리에 제공되는
    멀티 서버 컴퓨터 시스템.
  7. 제 1 항에 있어서,
    상기 피어 서버 상에 존재하는 상기 캐시 메모리 내에 저장된 핫 리드 I/O 데이터에 속하는 상기 호스트 서버에 의해 수신된 핫 I/O 리드 요청은 상기 피어 서버 상에 존재하는 상기 캐시 메모리로의 직접 메모리 액세스를 통해 상기 호스트 서버의 시스템 메모리에 제공되는
    멀티 서버 컴퓨터 시스템.
  8. 제 1 항에 있어서,
    상기 호스트 서버에 의해 소유된 상기 직접 액세스 데이터 드라이브 상에 속하는 상기 호스트 서버에 의해 수신된 핫 I/O 라이트 요청은 상기 호스트 서버 상에 존재하는 상기 캐시 메모리 내에 저장되고 상기 호스트 솔리드 스테이트 캐시 메모리 및 상기 피어 솔리드 스테이트 캐시 메모리 내에 저장된 더티 라이트 데이터 내에서의 잠재적 데이터 충돌을 피하기 위해 상기 피어 서버 상에 존재하는 상기 캐시 메모리 내에 미러링되는
    멀티 서버 컴퓨터 시스템.
  9. 제 8 항에 있어서,
    상기 호스트 서버에 의해 소유된 상기 직접 액세스 데이터 드라이브 상에 속하는 상기 호스트 서버에 의해 수신된 상기 핫 I/O 라이트의 캐싱(caching)은 상기 호스트 서버 및 상기 피어 서버 사이의 SAS 링크를 통한 상기 핫 라이트 데이터의 단일 전송(a single transport)을 포함하는
    멀티 서버 컴퓨터 시스템.
  10. 제 1 항에 있어서,
    상기 피어 서버에 의해 소유된 상기 직접 액세스 데이터 드라이브 상에 속하는 상기 호스트 서버에 의해 수신된 핫 I/O 라이트 요청은 상기 호스트 서버 상에 존재하는 상기 캐시 메모리 내에 저장되고 상기 호스트 솔리드 스테이트 캐시 메모리 및 상기 피어 솔리드 스테이트 캐시 메모리 내에 저장된 더티 라이트 데이터 내의 잠재적 데이터 충돌을 피하기 위해 상기 피어 서버 상에 존재하는 상기 캐시 메모리 내에 미러링되는
    멀티 서버 컴퓨터 시스템.
  11. 제 10 항에 있어서,
    상기 피어 서버에 의해 소유된 상기 직접 액세스 데이터 드라이브 상에 속하는 상기 호스트 서버에 의해 수신된 상기 핫 I/O 라이트 데이터의 캐싱은 상기 호스트 서버 및 상기 피어 서버 사이의 SAS 링크를 통한 단일의 상기 핫 라이트 데이터를 포함하는
    멀티 서버 컴퓨터 시스템.
  12. 제 1 항에 있어서,
    상기 호스트 캐시 메모리는 상기 호스트 서버 상에 존재하는 솔리드 스테이트 캐시 메모리를 포함하는
    멀티 서버 컴퓨터 시스템.
  13. 제 12 항에 있어서,
    상기 피어 캐시 메모리는 상기 피어 서버 상에 존재하는 솔리드 스테이트 캐시 메모리를 포함하는
    멀티 서버 컴퓨터 시스템.
  14. 호스트 서버, 피어 서버, 및 고가용성 직접 연결 스토리지 시스템을 포함하는 멀티 서버 컴퓨터 시스템을 제공하는 방법으로서,
    상기 호스트 서버에 의해 소유된 직접 연결 데이터 드라이브의 제 1 세트를 제공하는 단계,
    상기 피어 서버에 의해 소유된 직접 연결 데이터 드라이브의 제 2 세트를 제공하는 단계,
    상기 호스트 서버 상에 존재하는 호스트 캐시 메모리 및 상기 피어 서버 상에 존재하는 피어 캐시 메모리를 포함하는 캐시 메모리 시스템을 제공하는 단계를 포함하되,
    상기 캐시 메모리 시스템은 핫 I/O 데이터와 관련된 상기 직접 연결 데이터 드라이브의 제 1 세트 및 제 2 세트 사이의 멀티-이니시에이터 충돌을 피하면서 상기 캐시 메모리 시스템 내에 저장된 상기 핫 I/O 데이터로의 액티브-액티브 액세스를 제공하고,
    상기 호스트 캐시 메모리는 핫 리드 데이터가 영구적으로 저장되는 상기 연결 데이터 드라이브의 소유권에 상관없이 동적 시스템 사용으로부터 야기되는 상기 핫 리드 데이터를 저장하도록 구성되고,
    상기 피어 캐시 메모리는 핫 리드 데이터가 영구적으로 저장되는 상기 연결 데이터 드라이브의 소유권에 상관없이 동적 시스템 사용으로부터 야기되는 상기 핫 리드 데이터를 저장하도록 구성되고,
    상기 호스트 솔리드 스테이트 캐시 메모리 및 상기 피어 솔리드 스테이트 캐시 메모리는, 데이터 충돌이 상기 호스트 솔리드 스테이트 캐시 메모리 및 상기 피어 솔리드 스테이트 캐시 메모리에 저장된 더티 라이트 데이터 내에 발생하는 것을 방지하기 위해 상기 호스트 솔리드 스테이트 캐시 메모리 및 상기 피어 솔리드 스테이트 캐시 메모리를 통해 미러링된 핫 라이트 데이터를 저장하도록 더 구성된
    멀티 서버 컴퓨터 시스템 제공 방법.
  15. 제 14 항에 있어서,
    듀얼-액티브 구성 내에서 상기 직접 연결 데이터 드라이브의 제 1 세트 및 제 2 세트를 구성하는 단계를 더 포함하는
    멀티 서버 컴퓨터 시스템 제공 방법
  16. 제 14 항에 있어서,
    액티브-패시브 구성 내에서 상기 직접 연결 데이터 드라이브의 제 1 세트 및 제 2 세트를 구성하는 단계를 더 포함하는
    멀티 서버 컴퓨터 시스템 제공 방법.
  17. 제 14 항에 있어서,
    상기 호스트 서버 상에 존재하는 제 1 RAID 컨트롤러 및 상기 피어 서버 상에 존재하는 제 2 RAID 컨트롤러를 제공하는 단계를 더 포함하는 멀티 서버 컴퓨터 시스템 제공 방법으로서, 상기 RAID 컨트롤러는 상기 고가용성 직접 연결 스토리지 시스템으로의 서버 액세스를 중재하는
    멀티 서버 컴퓨터 시스템 제공 방법.
  18. 제 14 항에 있어서,
    상기 호스트 서버 상에 존재하는 상기 캐시 메모리 내에 저장된 핫 리드 I/O 데이터상에 속하는 상기 호스트 서버 상의 핫 I/O 리드 요청을 수신하는 단계 및 상기 호스트 서버 상에 존재하는 캐시 메모리로의 직접 메모리 액세스를 통해 상기 요청된 데이터를 상기 호스트 서버의 시스템 메모리에 제공하는 단계를 더 포함하는
    멀티 서버 컴퓨터 시스템 제공 방법.
  19. 제 14 항에 있어서,
    상기 피어 서버 상에 존재하는 상기 캐시 메모리 내에 저장된 핫 리드 I/O 데이터상에 속하는 상기 호스트 서버 상의 핫 I/O 리드 요청을 수신하는 단계 및 상기 피어 서버 상에 존재하는 상기 캐시 메모리로의 직접 메모리 액세스를 통해 상기 요청된 데이터를 상기 호스트 서버의 시스템 메모리에 제공하는 단계를 더 포함하는
    멀티 서버 컴퓨터 시스템 제공 방법.
  20. 제 14 항에 있어서,
    상기 호스트 서버에 의해 소유된 상기 직접 액세스 데이터 드라이브에 속하는 상기 호스트 서버 상의 핫 I/O 라이트 요청을 수신하는 단계, 상기 호스트 서버 상에 존재하는 상기 캐시 메모리 내에 상기 핫 라이트 데이터를 저장하는 단계, 및 상기 호스트 솔리드 스테이트 캐시 메모리 및 상기 피어 솔리드 스테이트 캐시 메모리 내에 저장된 더티 라이트 데이터 내 잠재적 데이터 충돌을 피하기 위해 상기 피어 서버 상에 존재하는 상기 캐시 메모리 내에 상기 핫 라이트 데이터를 미러링하는 단계를 더 포함하는
    멀티 서버 컴퓨터 시스템 제공 방법.
  21. 제 20 항에 있어서,
    상기 호스트 서버에 의해 소유된 상기 직접 액세스 데이터 드라이브에 속하는 상기 호스트 서버에 의해 수신된 상기 핫 I/O 라이트의 캐싱은 상기 호스트 서버 및 상기 피어 서버 사이의 SAS 링크를 통한 상기 핫 라이트 데이터의 단일 전송을 포함하는
    멀티 서버 컴퓨터 시스템 제공 방법.
  22. 제 14 항에 있어서,
    상기 피어 서버에 의해 소유된 상기 직접 액세스 데이터 드라이브에 속하는 상기 호스트 서버 상의 핫 I/O 라이트 요청을 수신하는 단계, 상기 피어 서버 상에 존재하는 상기 캐시 메모리 내에 상기 핫 리드 데이터를 저장하는 단계, 상기 호스트 솔리드 스테이트 캐시 메모리 및 상기 피어 솔리드 스테이트 캐시 메모리 내에 저장된 더티 라이트 데이터 내 잠재적 데이터 충돌을 피하기 위해 상기 호스트 서버 상에 존재하는 상기 캐시 메모리 내에 상기 핫 라이트 데이터를 미러링하는 단계를 더 포함하는
    멀티 서버 컴퓨터 시스템 제공 방법.
  23. 제 22 항에 있어서,
    상기 피어 서버에 의해 소유된 상기 직접 액세스 데이터 드라이브에 속하는 상기 호스트 서버에 의해 수신된 상기 핫 I/O 라이트 데이터의 캐싱은 상기 호스트 서버 및 상기 피어 서버 사이의 SAS 링크를 통한 상기 핫 라이트 데이터의 단일 전송을 포함하는
    멀티 서버 컴퓨터 시스템 제공 방법.
  24. 제 14 항에 있어서,
    상기 호스트 캐시 메모리는 상기 호스트 서버 상에 존재하는 솔리드 스테이트 캐시 메모리를 포함하는
    멀티 서버 컴퓨터 시스템 제공 방법.
  25. 제 14 항에 있어서,
    상기 피어 캐시 메모리는 상기 피어 서버 상에 존재하는 솔리드 스테이트 캐시 메모리를 포함하는
    멀티 서버 컴퓨터 시스템 제공 방법.
  26. 서버, 상기 서버 상에서 작동하는 제 1 및 제 2 I/O 컨트롤러, 고가용성 직접 연결 스토리지 시스템을 포함하는 멀티 컨트롤러 컴퓨터 시스템으로서,
    상기 제 1 I/O 컨트롤러에 의해 소유된 직접 연결 데이터 드라이브의 제 1 세트,
    상기 제 2 I/O 컨트롤러에 의해 소유된 직접 연결 데이터 드라이브의 제 2 세트,
    상기 제 1 I/O 컨트롤러 전용의 제 1 캐시 메모리 및 상기 제 2 I/O 컨트롤러 전용의 제 2 캐시 메모리를 포함하면서 상기 서버 상에 존재하는 캐시 메모리 시스템을 포함하되,
    상기 캐시 메모리 시스템은 핫 I/O 데이터와 관련된 상기 직접 연결 데이터 드라이브의 제 1 세트 및 제 2 세트 사이에서의 멀티-이니시에이터 충돌을 피하면서 상기 제 1 및 제 2 캐시 메모리 내에 저장된 상기 핫 I/O 데이터로의 액티브-액티브 액세스를 제공하고,
    상기 제 1 캐시 메모리는, 핫 리드 데이터가 영구적으로 저장되는 상기 연결 데이터 드라이브의 소유권에 상관없이 동적 시스템 사용으로부터 야기되는 상기 핫 리드 데이터를 저장하도록 구성되고,
    상기 제 2 캐시 메모리는, 핫 리드 데이터가 영구적으로 저장되는 상기 연결 데이터 드라이브의 소유권에 상관없이 동적 시스템 사용으로부터 야기되는 상기 핫 리드 데이터를 저장하도록 구성되고,
    상기 호스트 캐시 메모리 및 상기 피어 캐시 메모리는, 상기 제 1 캐시 메모리 및 상기 제 2 캐시 메모리 내에 저장된 더티 라이트 데이터 내에 데이터 충돌이 발생하는 것을 방지하기 위해 그리고 서버 또는 컨트롤러 고장의 경우에 언커미트된 데이터 가용성을 제공하기 위해 상기 제 1 캐시 메모리 및 상기 제 2 캐시 메모리를 통해 미러링된 핫 라이트 데이터를 저장하도록 더 구성되는
    멀티 컨트롤러 컴퓨터 시스템.
KR1020130070609A 2012-06-19 2013-06-19 스마트 액티브-액티브 고가용성 das 시스템 KR20130142965A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/526,881 US9015525B2 (en) 2012-06-19 2012-06-19 Smart active-active high availability DAS systems
US13/526,881 2012-06-19

Publications (1)

Publication Number Publication Date
KR20130142965A true KR20130142965A (ko) 2013-12-30

Family

ID=48625745

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130070609A KR20130142965A (ko) 2012-06-19 2013-06-19 스마트 액티브-액티브 고가용성 das 시스템

Country Status (6)

Country Link
US (1) US9015525B2 (ko)
EP (1) EP2698703B1 (ko)
JP (1) JP2014002743A (ko)
KR (1) KR20130142965A (ko)
CN (1) CN103514108B (ko)
TW (1) TW201411348A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9368195B2 (en) 2014-11-17 2016-06-14 SK Hynix Inc. Memory system for processing data from memory device, and method of operating the same
KR102084650B1 (ko) 2019-12-23 2020-03-04 (주)백산에스엔케이 작업장의 hse 관리를 위한 라우터 기능을 구비한 스마트 das

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014084836A1 (en) * 2012-11-29 2014-06-05 Hewlett-Packard Development Company, L.P. Fault tolerance in a multi-core circuit
US9037799B2 (en) * 2013-02-11 2015-05-19 Avago Technologies General Ip (Singapore) Pte Ltd Rebuild of redundant secondary storage cache
JP6146087B2 (ja) * 2013-03-28 2017-06-14 富士通株式会社 ストレージ制御プログラム,ストレージ制御方法,ストレージシステム及びその階層制御装置
GB201315435D0 (en) * 2013-08-30 2013-10-16 Ibm Cache management in a computerized system
US9785499B2 (en) * 2014-02-12 2017-10-10 Seagate Technology Llc Hot-read data aggregation and code selection
EP3113028B1 (en) * 2014-04-30 2018-10-31 Huawei Technologies Co., Ltd. Method, device, and system for interaction between hard disk drives
TW201614412A (en) * 2014-10-02 2016-04-16 Wistron Corp Server system and controlling method thereof
US9891849B2 (en) 2016-04-14 2018-02-13 International Business Machines Corporation Accelerated recovery in data replication environments
US10437730B2 (en) * 2016-08-22 2019-10-08 International Business Machines Corporation Read cache synchronization in data replication environments
CN106407409A (zh) * 2016-09-22 2017-02-15 Tcl集团股份有限公司 基于das架构存储服务器的虚拟文件系统及其文件管理方法
US10359953B2 (en) * 2016-12-16 2019-07-23 Western Digital Technologies, Inc. Method and apparatus for offloading data processing to hybrid storage devices
CN106681665B (zh) * 2016-12-29 2020-04-24 北京奇虎科技有限公司 缓存数据的持久化存储方法及装置
US10691368B2 (en) * 2017-03-31 2020-06-23 Samsung Electronics Co., Ltd. System and method for providing data replication in NVMe-oF ethernet SSD
CN107301021B (zh) * 2017-06-22 2021-03-09 苏州浪潮智能科技有限公司 一种利用ssd缓存对lun进行加速的方法和装置
US10795913B2 (en) 2018-10-11 2020-10-06 Capital One Services, Llc Synching and reading arrangements for multi-regional active/active databases
US10606497B1 (en) 2018-10-24 2020-03-31 International Business Machines Corporation Systems and methods for managing replication path direction in storage networks
US11144252B2 (en) * 2020-01-09 2021-10-12 EMC IP Holding Company LLC Optimizing write IO bandwidth and latency in an active-active clustered system based on a single storage node having ownership of a storage object
US20230112764A1 (en) * 2020-02-28 2023-04-13 Nebulon, Inc. Cloud defined storage

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6412045B1 (en) * 1995-05-23 2002-06-25 Lsi Logic Corporation Method for transferring data from a host computer to a storage media using selectable caching strategies
US6567889B1 (en) * 1997-12-19 2003-05-20 Lsi Logic Corporation Apparatus and method to provide virtual solid state disk in cache memory in a storage controller
US6321298B1 (en) * 1999-01-25 2001-11-20 International Business Machines Corporation Full cache coherency across multiple raid controllers
US6681339B2 (en) * 2001-01-16 2004-01-20 International Business Machines Corporation System and method for efficient failover/failback techniques for fault-tolerant data storage system
US7752173B1 (en) * 2005-12-16 2010-07-06 Network Appliance, Inc. Method and apparatus for improving data processing system performance by reducing wasted disk writes
US7444541B2 (en) * 2006-06-30 2008-10-28 Seagate Technology Llc Failover and failback of write cache data in dual active controllers
US7395390B2 (en) * 2006-07-12 2008-07-01 Inventec Corporation System for backing up cache memory in a double backup server structure
US10572188B2 (en) 2008-01-12 2020-02-25 Hewlett Packard Enterprise Development Lp Server-embedded distributed storage system
US7921328B1 (en) * 2008-04-18 2011-04-05 Network Appliance, Inc. Checkpoint consolidation for multiple data streams
JP5187017B2 (ja) * 2008-06-18 2013-04-24 富士通株式会社 分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法
US8627015B2 (en) * 2009-07-31 2014-01-07 Emc Corporation Data processing system using cache-aware multipath distribution of storage commands among caching storage controllers
US8458239B2 (en) 2009-12-16 2013-06-04 International Business Machines Corporation Directory traversal in a scalable multi-node file system cache for a remote cluster file system
CN102122235B (zh) * 2011-01-24 2012-07-25 武汉固捷联讯科技有限公司 一种raid4系统及其数据读写方法
US9037799B2 (en) * 2013-02-11 2015-05-19 Avago Technologies General Ip (Singapore) Pte Ltd Rebuild of redundant secondary storage cache

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9368195B2 (en) 2014-11-17 2016-06-14 SK Hynix Inc. Memory system for processing data from memory device, and method of operating the same
KR102084650B1 (ko) 2019-12-23 2020-03-04 (주)백산에스엔케이 작업장의 hse 관리를 위한 라우터 기능을 구비한 스마트 das

Also Published As

Publication number Publication date
CN103514108A (zh) 2014-01-15
EP2698703A1 (en) 2014-02-19
US9015525B2 (en) 2015-04-21
CN103514108B (zh) 2018-03-27
EP2698703B1 (en) 2019-12-11
TW201411348A (zh) 2014-03-16
US20130339786A1 (en) 2013-12-19
JP2014002743A (ja) 2014-01-09

Similar Documents

Publication Publication Date Title
KR20130142965A (ko) 스마트 액티브-액티브 고가용성 das 시스템
US9836404B2 (en) Write mirroring to storage class memory devices
JP5951582B2 (ja) 外部キャッシュデバイスでのハイパーバイザのi/oステージング
US8839030B2 (en) Methods and structure for resuming background tasks in a clustered storage environment
US9367245B2 (en) Data access request monitoring to reduce system resource use for background operations
US8639876B2 (en) Extent allocation in thinly provisioned storage environment
JP4641545B2 (ja) マルチプロセッサの操作を管理する方法、システム、およびコンピュータ・プログラム
WO2011114384A1 (en) Storage system and method for changing configuration of cache memory for storage system
US20150127975A1 (en) Distributed virtual array data storage system and method
JP2013156977A (ja) 冗長キャッシュデータのエラスティックキャッシュ
WO2012047551A1 (en) Distributed cache coherency protocol
KR20120050891A (ko) 스토리지 시스템에서 요청에 대한 응답과 연관된 지연의 감소
JP2010049502A (ja) ストレージサブシステム、及びこれを有するストレージシステム
US11074113B1 (en) Method and apparatus for performing atomic operations on local cache slots of a shared global memory
US10565108B2 (en) Write-back cache for storage controller using persistent system memory
WO2011101178A1 (en) Integrating a flash cache into large storage systems
US20170220249A1 (en) Systems and Methods to Maintain Consistent High Availability and Performance in Storage Area Networks
CN111857540A (zh) 数据存取方法、装置和计算机程序产品
WO2016018383A1 (en) Live migration of data
US20170220476A1 (en) Systems and Methods for Data Caching in Storage Array Systems
US9921913B2 (en) Flushing host cache data before rebuilding degraded redundant virtual disk
US9645926B2 (en) Storage system and method for managing file cache and block cache based on access type
US11221967B2 (en) Split mode addressing a persistent memory
US9244868B2 (en) Leased lock in active-active high availability DAS systems
US8799573B2 (en) Storage system and its logical unit management method

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid