KR101351222B1 - 기록 큐잉 메커니즘을 이용한 다중 어레이 일관성 그룹 구현 방법 및 컴퓨터 판독 가능 매체 - Google Patents

기록 큐잉 메커니즘을 이용한 다중 어레이 일관성 그룹 구현 방법 및 컴퓨터 판독 가능 매체 Download PDF

Info

Publication number
KR101351222B1
KR101351222B1 KR1020117013941A KR20117013941A KR101351222B1 KR 101351222 B1 KR101351222 B1 KR 101351222B1 KR 1020117013941 A KR1020117013941 A KR 1020117013941A KR 20117013941 A KR20117013941 A KR 20117013941A KR 101351222 B1 KR101351222 B1 KR 101351222B1
Authority
KR
South Korea
Prior art keywords
write
storage array
slave
consistency group
output
Prior art date
Application number
KR1020117013941A
Other languages
English (en)
Other versions
KR20110097846A (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
Application filed by 엘에스아이 코포레이션 filed Critical 엘에스아이 코포레이션
Publication of KR20110097846A publication Critical patent/KR20110097846A/ko
Application granted granted Critical
Publication of KR101351222B1 publication Critical patent/KR101351222B1/ko

Links

Images

Classifications

    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1466Management of the backup or restore process to make the backup process non-disruptive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

다중 어레이 일관성 그룹을 구현하기 위한 방법은 일관성 그룹(consistency group, CG)의 논리 유닛(Logical Unit, LU) 멤버에게 기록 입/출력(Input/Output, I/O) 큐 간격을 적용하는 단계를 포함한다. 이 방법은 또한 각각의 기록 입/출력에 타임스탬프를 표시하는 한편, 상기 참가 저장 어레이가 마스터 저장 어레이로부터 스냅샷 요청을 수신할 때 상기 참가 저장 어레이로부터 상기 일관성 그룹의 상기 논리 유닛 멤버로의 입/출력을 중단하는 단계를 포함한다. 이 방법은 또한 스냅샷 요청 타임스탬프가 참가 저장 어레이의 기록 입/출력 큐 간격 내에 있는지 여부를 판정하는 단계를 포함한다.

Description

기록 큐잉 메커니즘을 이용한 다중 어레이 일관성 그룹 구현 방법 및 컴퓨터 판독 가능 매체{METHOD FOR IMPLEMENTING MULTI-ARRAY CONSISTENCY GROUPS USING A WRITE QUEUING MECHANISM}
본 발명은 일반적으로 저장 시스템 분야에 관한 것으로서, 특히 데이터베이스 백업을 위한 다중 어레이 일관성 그룹을 구현하기 위한 방법에 관한 것이다.
단일 애플리케이션은 복수의 논리 유닛(Logical Unit, LU)을 사용할 수 있다. 예를 들어, 데이터베이스 시스템은 하나의 논리 유닛에서는 로그 파일을, 다른 논리 유닛에서는 데이터 파일을 가질 수 있다. 데이터베이스는 데이터베이스 논리 유닛의 스냅샷을 갖는 백업 기법을 사용할 수 있으며 그 스냅샷을 테이프와 같은 적절한 저장 매체에 백업할 수도 있다. 그러한 백업 기법은 데이터베이스를 오프라인시키지 않으면서 수행될 수 있다. 즉, 데이터베이스는 입/출력(Input/Output, I/O) 기능을 중지시키지 않을 수 있다. 예를 들어, 데이터베이스 애플리케이션은 스냅샷이 얻어지는 동안에 계속해서 구동될 수 있으며, 여기에서 스냅샷은 데이터베이스 동작과 조정되지 않을 수 있다. 스냅샷 백업 기법은 백업의 수행 전에 데이터베이스 애플리케이션에 의해 사용된 모든 논리 유닛의 일관된 스냅샷을 필요로 할 수 있다. 이러한 일관성은 애플리케이션이 실제로 백업으로부터 정확하게 복구되는 것을 보장할 수 있다.
일관성 그룹(Consistency Group, CG)은 데이터베이스 시스템이 다른 저장 어레이 상에 위치된 논리 유닛을 구비할 때 사용될 수 있다. 일관성 그룹은 하나 이상의 논리 유닛으로 구성될 수 있으며, 일관성 그룹의 모든 멤버의 스냅샷을 단일의 원자 조작(single atomic operation)으로서 형성하기 위해 사용될 수 있다.
다중 어레이 일관성 그룹을 구현하기 위한 방법은 일관성 그룹(consistency group, CG)의 논리 유닛(Logical Unit, LU) 멤버에 기록 입/출력(Input/Output, I/O) 큐 간격을 적용하는 단계를 포함한다. 이 일관성 그룹의 논리 유닛 멤버가 존재하는 저장 어레이는 참가 저장 어레이이다. 이 방법은 또한 각각의 기록 입/출력에 타임스탬프를 표시하는 단계, 및 상기 참가 저장 어레이가 마스터 저장 어레이로부터 스냅샷 요청을 수신할 때, 상기 참가 저장 어레이로부터 상기 일관성 그룹의 논리 유닛 멤버로의 입/출력을 중지시키는 단계를 포함한다. 이 스냅샷 요청은 스냅샷 요청 타임스탬프를 가진다. 이 방법은 또한 스냅샷 요청 타임스탬프가 참가 저장 어레이의 상기 기록 입/출력 큐 간격 내에 있는지 여부를 판정하는 단계를 포함한다. 스냅샷 요청 타임스탬프가 참가 저장 어레이의 기록 입/출력 큐 간격 내에 있다고 판정되면, 참가 저장 어레이는 (a) 상기 스냅샷 요청 타임스탬프보다 오래된 각각의 기록 입/출력의 완료, (b) 상기 일관성 그룹의 상기 논리 유닛 멤버를 위한 로컬 스냅샷의 생성, 및 (c) 상기 일관성 그룹의 상기 논리 유닛 멤버에 대한 입/출력의 재개 중 적어도 하나를 수행한다.
다중 어레이 일관성 그룹을 구현하기 위한 방법은 일관성 그룹 저장 어레이의 제어기 상에서 일관성 그룹 스냅샷을 개시하는 단계를 포함한다. 이 제어기를 가진 상기 일관성 그룹 저장 어레이는 마스터로서 정의되며, 상기 일관성 그룹의 논리 유닛이 존재하는 저장 어레이가 참가 저장 어레이이다. 이 방법은 또한 이 개시된 일관성 그룹 스냅샷에 대해 타임스탬프를 기록하는 단계, 및 상기 마스터로부터 각각의 참가 저장 어레이의 각각의 제어기로 준비(PREPARE) 요청을 전송하는 단계를 포함한다. 준비(PREPARE) 요청을 수신할 각각의 참가 저장 어레이는 슬레이브로서 정의된다. 이 방법은 또한 이 슬레이브가 상기 준비(PREPARE) 요청을 수신할 때, 논리 유닛 멤버에 대한 입/출력을 중단하고 타임스탬프가 슬레이브의 기록 입/출력 큐 간격에 적합한지의 여부를 판정하는 단계, 이 타임스탬프가 상기 기록 입/출력 큐 간격에 적합할 때, 이 타임스탬프보다 오래된 상기 기록 입/출력 큐 간격 내의 각각의 기록 입/출력을 비우는 단계, 및 (a) 상기 논리 유닛 멤버의 스냅샷의 생성, (b) 입/출력의 재개, (c) 영구적 메모리에 준비된(PREPARED) 상태 로깅, 및 (d) 상기 마스터로 준비 확인(PREPARE-ACK) 메시지 전송 중 적어도 하나를 수행하는 단계를 포함한다.
방법을 수행하기 위한 컴퓨터 실행 가능 명령어를 구비한 컴퓨터 판독 가능 매체에 있어서, 상기 방법은 일관성 그룹의 논리 유닛 멤버에 기록 입/출력 큐 간격을 적용하는 단계를 포함한다. 이 일관성 그룹의 논리 유닛 멤버가 존재하는 저장 어레이는 참가 저장 어레이이다. 이 방법은 또한 각각의 기록 입/출력에 타임스탬프를 표시하는 단계, 및 상기 참가 저장 어레이가 마스터 저장 어레이로부터 스냅샷 요청을 수신할 때, 상기 참가 저장 어레이로부터 상기 일관성 그룹의 논리 유닛 멤버로의 입/출력을 중지시키는 단계를 포함한다. 이 스냅샷 요청은 스냅샷 요청 타임스탬프를 가진다. 이 방법은 또한 스냅샷 요청 타임스탬프가 참가 저장 어레이의 상기 기록 입/출력 큐 간격 내에 있는지 여부를 판정하는 단계를 포함한다. 스냅샷 요청 타임스탬프가 참가 저장 어레이의 기록 입/출력 큐 간격 내에 있다고 판정되면, 참가 저장 어레이는 (a) 상기 스냅샷 요청 타임스탬프보다 오래된 각각의 기록 입/출력의 완료, (b) 상기 일관성 그룹의 상기 논리 유닛 멤버를 위한 로컬 스냅샷의 생성, 및 (c) 상기 일관성 그룹의 상기 논리 유닛 멤버에 대한 입/출력의 재개 중 적어도 하나를 수행한다.
이상의 일반적 설명과 다음의 상세한 설명은 모두 단지 예시적이며 설명을 위한 것이어서, 반드시 본 발명을 제한하기 위한 것이 아니라는 점이 이해되어야만 한다. 명세서와 통합되며 명세서의 일부를 구성하는 첨부 도면은 본 발명의 주제를 도시한다. 이와 함께, 명세서와 도면은 본 발명의 원리를 설명하는 역할을 한다.
본 발명의 많은 장점들은 첨부 도면을 참조함으로써 당업자들에 의해 더욱더 잘 이해될 수 있을 것이다.
도 1a는 다중 어레이 저장 데이터베이스의 블록도를 도시한다.
도 1b는 저장 데이터베이스의 복수의 일관성 그룹 멤버에 걸친 복수의 기록 입/출력을 보여주는 블록도를 도시한다.
도 2a 및 도 2b는 다중 어레이 저장 데이터베이스 상에서의 스냅샷 요청의 구현을 보여주는 흐름도이다.
도 3은 기록 큐잉 메커니즘을 이용하여 다중 어레이 일관성 그룹을 구현하기 위한 방법을 도시하는 흐름도이다.
도 4는 기록 큐잉 메커니즘을 이용하여 다중 어레이 일관성 그룹을 구현하기 위한 방법의 다른 실시예를 도시하는 흐름도이다.
지금부터 개시된 주제가 상세히 참조될 것이며, 그 주제는 첨부 도면에 도시되어 있다.
이제 도 1a 및 도 1b를 참조하면, 다중 어레이 저장 데이터베이스의 블록도 및 저장 데이터베이스의 복수의 일관성 그룹 멤버에 걸친 복수의 기록 입/출력을 도시하는 블록도가 도시된다. 저장 데이터베이스(102)는 논리 유닛(Logical Unit, LU)이 다른 저장 어레이 상에 위치된 상태에서 다수의 저장 어레이(104)를 포함할 수 있다. 일관성 그룹(Consistency Group, CG)은 모든 일관성 그룹 멤버의 스냅샷을 단일의 원자 조작으로서 생성하는 것을 지원하기 위해서 복수의 저장 어레이에 걸쳐 하나 이상의 논리 유닛을 포함할 수 있다. 저장 어레이(104)에 있어서, 호스트 가시적 소형 컴퓨터 시스템 인터페이스(Small Computer System Interface, SCSI) 논리 유닛은 예를 들어 저장 가상화 매니저(Storage Virtualization Manager, SVM; 108)가 저장 어레이(104) 내에 설치될 때 가상 볼륨(106)에 매핑될 수 있다. 가상 볼륨(106)은 저장 어레이(104) 내에 있는 하나 이상의 저장 풀(110)의 용량으로부터 추론될 수 있다. 도 1b는 복수의 큐 기록 입/출력(W11, W12, W13, W21, W22, W23, W31, W32, W33)을 가진 세 개의 가상 볼륨(VV1, VV2, VV3)을 도시한다. 일관성 그룹은 VV1, VV2 및 VV3을 포함할 수 있으나, 어떤 개수의 가상 볼륨도 일관성 그룹 내에 포함될 수 있는 것으로 이해된다.
저장 어레이 제어기 캐시(112) 내의 기록 입/출력 큐잉 메커니즘이 그 동안 스냅샷이 복수의 저장 어레이(104)에 걸쳐 형성될 수 있는 타임 윈도우를 형성하기 위해 사용될 수 있다. 기록 입/출력 큐잉 메커니즘은 일관성 그룹의 멤버인 논리 유닛에 적용될 수 있다. 일관성 그룹의 논리 유닛 멤버를 포함하는 저장 어레이는 참가 저장 어레이(114)라고 지칭될 수 있다. 각각의 참가 저장 어레이(114)는 분산 클록 동기화 메커니즘(116)을 이용하는 것과 같은 방법으로 공통된 시간 관념을 가질 수 있다. 예를 들어, 분산 클록 동기화 메커니즘(116)은 네트워크 시간 프로토콜(Network Time Protocol, NTP)일 수 있다.
하나 이상의 기록 입/출력은 선입선출(FIFO) 순서로 논리 유닛에 대해 대기할 수 있다. 선입선출 순서는 이미 저장 어레이 제어기(118)의 캐시 메모리(112) 내에 있는 기록의 논리적 블록 주소(Logical Block Address, LBA)와 겹칠 수도 있는 논리적 블록 주소를 가지는 지의 여부에 관계없이 사용될 수 있다. 각각의 기록 입/출력은 참가 저장 어레이(114)에 의해 사용되는 분산 클록 동기화 메커니즘(116)으로부터의 타임스탬프로 표시될 수 있다. 일관성 그룹 내의 논리 유닛에 대한 기록 입/출력 큐는 현재 시간으로부터 큐 내의 가장 오래된 기록 입/출력의 타임스탬프까지의 시간 간격을 나타낼 수 있다. 저장 어레이 제어기(118)는 기록 입/출력 큐에 의해 표현되는 시간 간격이 참가 저장 어레이(114) 사이에서 전달되는 메시지에 대한 가장 긴 대기시간보다 크도록 큐 내에 충분한 기록 입/출력을 유지할 수 있다.
참가 저장 어레이(114)는 마스터 저장 어레이(114)로부터 스냅샷 요청을 수신할 때 일관성 그룹 멤버에 대한 입/출력을 중단할 수 있다. 마스터 저장 어레이(114)는 사용자와 호스트 중 적어도 하나로부터 스냅샷 요청을 받는 저장 어레이로 정의될 수 있다. 참가 저장 어레이(114)는 마스터 저장 어레이(114)로부터의 스냅샷 요청의 타임스탬프가 기록 입/출력 큐 간격 이내에 있는 지를 판단한다. 만일 스냅샷 요청 타임스탬프가 기록 큐 간격 이내에 있을 때, 참가 저장 어레이(114)는 일관성 그룹 스냅샷 요청 타임스탬프보다 오래된 기록을 완성하고, 일관성 그룹의 논리 유닛 멤버를 위해 로컬 스냅샷을 생성하며, 일관성 그룹의 논리 유닛 멤버에 대한 입/출력을 재개할 수 있다.
도 1b의 블록도에 있어서, 일관성 그룹 스냅샷은 기록(W11, W21 및 W31)을 포함할 수 있지만, 이후의 기록은 포함하지 않을 수 있다. 그러나, 다중 어레이 시스템에서의 지연으로 인해, 마지막 저장 어레이가 일관성 그룹의 마지막 논리 유닛 멤버를 중단할 때까지 기록(W22, W12, W32, 및 W23)은 이미 큐에 들어있다. 일관성 그룹 스냅샷이 성공적이기 위해서는, 참가 저장 어레이(114) 내의 큐는 참가 저장 어레이(114)가 일관성 그룹 스냅샷 요청을 받을 때에 기록(W22, W12, W32, 및 W23)이 여전히 각각의 참가 저장 어레이 큐 상에 있으며 그리고 일관성 그룹의 논리 유닛 멤버에 써지지 않도록 충분히 클 수 있다. 만일 W11, W21 및 W31 중 어느 것이 여전히 큐 내에 있다면, 각각은 현지의 스냅샷이 형성되기 전에 멤버 논리 유닛으로 비워질 수 있다.
일관성 그룹의 각 참가 저장 어레이(114)는 왕복 대기 시간을 결정하기 위해서 정규적인 것과 같은 방식으로 다른 참가 저장 어레이와 테스트 메시지를 교환할 수 있다. 왕복 대기 시간은 기록 입/출력 큐 간격의 최소 시간 간격을 결정하기 위해 사용될 수 있다. 그러나, 왕복 대기 시간을 사용해서 최소 시간 간격을 설정하는 것은 항상 실행가능하지 않을 것으로 생각된다. 예를 들어, 논리 유닛을 위한 큐의 사이즈는 일관성 그룹 내의 각 논리 유닛이 얼마나 많은 캐시 메모리를 위해서 사용이 허락될 수 있는 가에 대한 저장 어레이 범위의 문턱 값에 의해 제한될 수 있다. 따라서, 새로운 기록 입/출력을 받을 때에 캐시 메모리 문턱 값에 도달하거나/초과할 경우에는, 비록 큐에 의해 표현되는 시간 간격의 사이즈가 줄어들지라도 오래된 기록 입/출력은 선입선출 큐로부터 물리적인 드라이브로 비워질 수 있다.
기록 큐잉 메커니즘은 배터리-지원 캐시 메모리를 포함하는 저장 어레이를 위해 설치된다. 더욱이, 캐시 메모리는 여분 제공의 목적으로 저장 어레이 내의 다른 제어기로 미러링된다.
이제 도 2a 및 도 2b를 참조하면, 다중 어레이 저장 데이터베이스에 대한 스냅샷 요청의 구현을 도시하는 흐름도가 도시되어 있다. 일관성 그룹 스냅샷 형성의 조정은 2단계 커미트(two-phase commit, 2PC) 프로토콜을 사용할 수 있다. 제어기는 일관성 그룹 스냅샷이 참가 저장 어레이의 제어기 상에서 개시될 때 트랜잭션(200)의 마스터로서 정의될 수 있다. 스냅샷 요청을 구현하는 트랜잭션(200)은 도 2a와 도 2b의 흐름도에 따라 진행할 수 있다.
동작(202)에서, 트랜잭션(200)의 시작이 타임스탬핑된다. 예를 들어, 마스터는 분산 클록 동기화 메커니즘에 따라 트랜잭션(200)의 시작을 타임스탬핑할 수 있다. 동작(204)에서, 준비(PREPARE) 요청이 일관성 그룹 내의 모든 참가 저장 어레이 제어기에게 전달된다. 예를 들어, 마스터는 준비(PREPARE) 요청을 일관성 그룹 내의 모든 참가 저장 어레이 제어기로 전송할 수 있다. 준비(PREPARE) 요청을 수신하는 각각의 참가 저장 어레이는 슬레이브로서 정의될 수 있다. 동작(206)에서, 일관성 그룹의 논리 유닛 멤버에 대한 입/출력이 중단된다. 예를 들어, 슬레이브는 준비(PREPARE) 요청을 받았을 때 입/출력을 중단할 수 있다. 동작(208)에서, 적합 질의가 전송되며, 이 적합 질의는 마스터로부터의 일관성 그룹 타임스탬프가 슬레이브의 기록 입/출력 큐 간격에 적합한지 여부를 포함한다. 예를 들어, 적합 질의는 슬레이브의 제어기로 전송될 수 있다. 만일 동작(210)에서 동작(208)의 결과가 ‘아니오’라면(즉, 타임스탬프가 기록 입/출력 큐 간격에 적합하지 않다면), 취소(ABORT)가 로깅되며, 취소 확인(ABORT-ACK)이 전송된다. 예를 들어, 슬레이브는 영구적 메모리에 취소(ABORT)를 로깅할 수 있으며, 마스터에게 취소 확인(ABORT-ACK) 메시지를 전송할 수 있다. 그 때, 트랜잭션(200)은 위에서 설명한 바와 같이 동작(220)으로 진행할 수 있다. 만일 동작(212)에서 동작(208)의 결과가 ‘예’이면(즉, 타임스탬프가 기록 입/출력 큐 간격에 적합하면), 트랜잭션(200)의 타임스탬프보다 오래된 기록 입/출력은 비워진다. 예를 들어, 슬레이브는 트랜잭션(200)의 타임스탬프보다 오래된 큐 내의 어떤 기록 입/출력도 비울 수 있다. 동작(214)에서, 논리 유닛의 스냅샷이 형성된다. 예를 들어, 슬레이브는 논리 유닛의 스냅샷을 형성할 수 있다. 동작(216)에서, 논리 유닛에 대한 입/출력이 재개된다. 예를 들어, 슬레이브는 논리 유닛에 대한 입/출력을 재개할 수 있다. 동작(218)에서, 준비된(PREPARED) 상태가 로깅되며, 준비 확인(PREPARE-ACK) 메시지가 전송된다. 예를 들어, 슬레이브는 영구적 메모리에 준비된(PREPARED) 상태를 로깅할 수 있으며, 슬레이브는 마스터에 준비 확인(PREPARE-ACK) 메시지를 전송할 수 있다. 그 때 트랜잭션은 동작(220)으로 진행할 수 있다.
동작(220)에서, 수신 질의가 전송되며, 이 수신 질의는 마스터가 모든 슬레이브로부터 준비 확인(PREPARE-ACK) 메시지를 수신하였는 지의 여부를 포함한다. 예를 들어, 수신 질의는 마스터로 전송될 수 있다. 만일 동작(222)에서 동작(220)의 결과가 ‘아니오’라면, 롤백(ROLLBACK) 메시지가 발행된다. 예를 들어, 마스터는 모든 슬레이브에게 롤백(ROLLBACK) 메시지를 발행할 수 있다. 동작(224)에서, 롤백(ROLLBACK) 상태가 로깅되며, 어떠한 록도 해제된다. 예를 들어, 슬레이브가 롤백(ROLLBACK) 메시지를 수신할 때, 슬레이브는 영구적 메모리에 롤백(ROLLBACK) 상태를 로깅하며, 슬레이브는 전역 트랜잭션(200)을 위해 유지할 수 있는 록을 해제할 수 있다. 동작(226)에서, 동작(214)에서 얻은 스냅샷은 지워진다. 예를 들어, 슬레이브는 동작(214)에서 얻은 스냅샷을 지울 수 있다. 동작(228)에서, 롤백 확인(ROLLBACK-ACK) 메시지가 전송된다. 예를 들어, 슬레이브는 마스터에게 롤백 확인(ROLLBACK-ACK) 메시지를 전송할 수 있다. 그 때, 트랜잭션(200)은 종료(236)될 수 있으며, 그 결과는 아래에서 설명된다. 만일 동작(220)의 결과가 ‘예’라면(즉, 준비 확인(PREPARE-ACK) 메시지가 예를 들어 모든 슬레이브로부터 마스터에 의해 수신되었다면), 트랜잭션(200)은 동작(230)으로 진행할 수 있다.
동작(230)에서, 커미트(COMMIT) 요청이 발행된다. 예를 들어, 마스터는 모든 슬레이브에게 커미트(COMMIT) 요청을 발행할 수 있다. 동작(232)에서, 커미트(COMMIT) 상태가 로깅되며, 어떠한 록도 해제된다. 예를 들어, 슬레이브가 커미트(COMMIT) 요청을 수신할 때, 슬레이브는 영구적 메모리에 커미트(COMMIT) 상태를 로깅할 수 있으며, 슬레이브는 전역 트랜잭션(200)을 위해 유지하고 있었던 어떠한 록도 해제할 수 있다. 동작(234)에서, 커미트 확인(커미트 확인(COMMIT-ACK)) 메시지가 전송된다. 예를 들어, 슬레이브는 마스터에 커미트 확인(COMMIT-ACK) 메시지를 전송할 수 있다. 그 때, 트랜잭션(200)은 종료(236)할 수 있다. 따라서, 종료(236)에서의 트랜잭션(200)의 결과는 마스터가 슬레이브로부터 어떤 메시지를 받는 가의 여부에 의존할 수 있다. 만일 마스터가 모든 슬레이브로부터 커미트 확인(COMMIT-ACK) 메시지를 수신한다면, 전역 트랜잭션(200)이 성공하며, 일관성 그룹 내의 모든 논리 유닛의 영구적 스냅샷이 얻어진다. 만일 마스터가 모든 슬레이브로부터 롤백 확인(ROLLBACK-ACK) 메시지를 수신한다면, 전역 트랜잭션(200)은 영구적 스냅샷을 가져오지 못하며, 각 슬레이브는 정리를 수행한다(예를 들어, 록과 동작(214)에서 얻어진 스냅샷을 삭제한다).
2단계 커미트(2PC) 프로토콜은 추정 취소를 가진 2단계 커미트라 불리는 변형예일 수 있다. 이 경우에, 타이머는 준비(PREPARE) 요청이 전송될 때 시작된다. 예를 들어, 마스터는 일관성 그룹 내의 모든 참가 저장 어레이 제어기로 준비(PREPARE) 요청을 전송할 때 타이머를 시작할 수 있다(동작 204). 만일 타이머가 마스터가 모든 슬레이브로부터 응답을 수신하기 전에 종료된다면, 롤백(ROLLBACK) 메시지가 전송된다. 예를 들어, 만일 타이머가 모든 슬레이브로부터 응답을 받지 못하고 종료된다면, 마스터는 전역 트랜잭션(200)이 취소될 필요가 있다고 가정하며, 마스터는 모든 슬레이브에 롤백(ROLLBACK) 메시지를 전송할 수 있다. 따라서, 만일 타이머가 마스터가 모든 슬레이브로부터 응답을 받기 전에 종료된다면, 트랜잭션(200)은 마치 동작(220)에 대한 결과가 ‘아니오’인 것처럼 취급될 수 있다. 만일 준비 확인(PREPARE-ACK) 메시지가 시간이 종료된 후에 전송된다면, 롤백(ROLLBACK) 메시지가 재전송될 수 있다. 예를 들어, 만일 슬레이브가 롤백(ROLLBACK) 메시지가 전송된 후에 고장이 나며 다시 복구되는 경우에서와 같이 슬레이브가 타이머가 종료된 후 마스터에게 준비 확인(PREPARE-ACK) 메시지를 전송한다면, 마스터는 그 때 슬레이브가 정리할 수 있도록 슬레이브에게 롤백(ROLLBACK) 메시지를 재전송할 수 있다.
만일 마스터가 모든 슬레이브에게 준비(PREPARE) 메시지를 전송한 후 영구적 고장과 같은 고장을 일으킨다면, 각각의 슬레이브는 수동 롤백(ROLLBACK)을 필요로 할 수 있다. 본 발명의 일실시예에서, 수동 롤백(ROLLBACK)이 사용자에 의해 수행된다.
제어기 캐시 메모리가 제한되는 경우에, 다른 저장 장치가 큐에 있는 기록 입/출력을 올리기 위해서 사용될 수 있을 것으로 예상된다. 예를 들어, 고체 상태 드라이브(Solid State Drive, SSD)가 사용될 수 있다. 다른 저장 장치가 사용될 때, 기록 입/출력은 종래의 제어기 캐시 관리 메커니즘을 이용해서 캐시 메모리로부터 다른 저장 장치로 비워질 수 있다. 그 때, 기록 입/출력 큐는 다른 저장 장치 상에 유지된다.
본 발명은 방법의 흐름도 도시를 참조해서 이하에서 설명된다. 흐름도 도시의 각 블록 및/또는 흐름도 도시에서의 블록의 조합은 컴퓨터 프로그램 명령어에 의해 구현될 수 있다는 것이 이해될 것이다. 이러한 컴퓨터 프로그램 명령어는 기계를 형성하기 위해서 범용 컴퓨터나 특수 목적의 컴퓨터의 프로세서 또는 다른 프로그램 가능한 데이터 처리 장치에 제공될 수 있으며, 이 결과 컴퓨터의 프로세서 또는 다른 프로그램 가능한 데이터 처리 장치를 통해 실행되는 명령어는 흐름도에 특정된 기능/동작을 구현할 수 있는 수단을 형성한다. 이러한 컴퓨터 프로그램 명령어는 또한 컴퓨터 또는 다른 프로그램 가능한 데이터 처리 장치가 특정한 방식으로 기능하도록 하는 컴퓨터 판독 가능한 유형의 매체(따라서, 컴퓨터 프로그램 제품을 포함하는)에 저장될 수 있으며, 그 결과 컴퓨터 판독 가능한 유형의 매체에 저장된 명령어는 흐름도에 특정된 기능/동작을 구현하는 명령 수단을 포함하는 제품을 형성한다.
본 발명의 일실시예에서, 기록 입/출력 큐잉 메커니즘은 기존의 RAID(redundant array of independent disks) 엔진의 보완으로서 구현될 수 있으며, 이것은 복수의 저장 어레이를 포괄하는 일관성 그룹을 지원할 수 있다. 또한, 본 발명은 해당 기술분야에서 공지되었으며 저장 어레이가 지원하는 어떠한 로컬 스냅샷 메커니즘을 사용할 수 있다. 이 로컬 스냅샷 메커니즘은 적절하게 기능하기 위해 다중 저장 어레이 일관성 그룹 또는 기록 입/출력 큐를 인식하는 것이 필요하지 않을 수 있다. 추가적으로, 2단계 커미트 프로토콜의 사용은 일관성 그룹 스냅샷이 완성되지 않은 경우에 저장 어레이의 정리를 가능하게 한다.
도 3을 참조하면, 본 발명의 실시예에 따른 기록 큐잉 메커니즘을 이용해서 다중 어레이 일관성 그룹을 구현하는 방법(300)을 도시하는 흐름도가 도시되어 있다. 방법(300)은 기록 입/출력 큐 간격을 일관성 그룹 (CG; 302)의 논리 유닛 멤버에 적용할 수 있다. 일관성 그룹의 논리 유닛 멤버가 존재하는 저장 어레이는 참가 저장 어레이일 수 있다. 방법(300)은 각각의 기록 입/출력에 타임스탬프(304)를 표시할 수 있다. 방법(300)은 참가 저장 어레이가 마스터 저장 어레이(306)로부터 스냅샷 요청을 수신할 때 참가 저장 어레이로부터 일관성 그룹의 논리 유닛 멤버로의 입/출력을 중단할 수 있다. 스냅샷 요청은 스냅샷 요청 타임스탬프를 가질 수 있다. 방법(300)은 스냅샷 요청 타임스탬프가 참가 저장 어레이(308)의 기록 입/출력 큐 간격 내에 있는 지를 판단한다. 스냅샷 요청 타임스탬프가 참가 저장 어레이의 기록 입/출력 큐 간격 내에 있다고 판단되면, 참가 저장 어레이는 (a) 스냅샷 요청 타임스탬프보다 오래된 각각의 기록 입/출력의 완성, (b) 일관성 그룹의 논리 유닛 멤버를 위한 로컬 스냅샷의 생성, 또는 (c) 일관성 그룹의 논리 유닛 멤버에 대한 입/출력의 재개 중 적어도 하나를 수행할 수 있다.
방법(300)의 일관성 그룹의 논리 유닛 멤버에 기록 입/출력 큐 간격을 적용하는 것은 기록 입/출력을 선입선출 순서로 큐잉하는 것을 포함할 수 있다. 각각의 기록 입/출력에 방법(300)의 타임스탬프를 표시하는 것은 분산 클록 동기화 메커니즘에 따라 일관성 그룹의 각각의 참가 저장 어레이를 동기화하는 것을 포함할 수 있다. 이 분산 클록 동기화 메커니즘은 네트워크 시간 프로토콜(Network Time Protocol, NTP)일 수 있다. 방법(300)의 일관성 그룹의 논리 유닛 멤버에 기록 입/출력 큐 간격을 적용하는 것은 기록 입/출력 큐 간격을 현재 시간으로부터 큐 내에 있는 가장 오래된 기록 입/출력의 타임스탬프에 이르는 시간 간격으로 나타내는 것을 포함한다. 방법(300)은 또한 왕복 대기 시간을 결정하기 위해 일관성 그룹의 각각의 참가 저장 어레이 사이에서 테스트 메시지를 교환하는 것을 포함할 수 있다. 방법(300)은 또한 왕복 대기 시간을 이용해서 기록 입/출력 큐 간격의 최소 시간 간격을 결정하는 것을 포함할 수 있다.
이제 도 4를 참조하면, 기록 큐잉 메커니즘을 이용하여 다중 어레이 일관성 그룹을 구현하기 위한 방법(400)의 다른 실시예를 도시하는 흐름도가 도시된다. 방법(400)은 일관성 그룹 저장 어레이(402)의 제어기 상에서 일관성 그룹 스냅샷을 개시할 수 있다. 제어기를 가진 일관성 그룹 저장 어레이는 마스터로서 정의될 수 있으며, 일관성 그룹의 논리 유닛 멤버가 존재하는 저장 어레이는 참가 저장 어레이일 수 있다. 방법(400)은 개시된 일관성 그룹 스냅샷(404)를 위해 타임스탬프를 기록할 수 있다. 방법(400)은 준비(PREPARE) 요청을 마스터로부터 각각의 참가 저장 어레이(406)의 각각의 제어기로 전송할 수 있다. 준비(PREPARE) 요청을 수신하게 될 각각의 참가 저장 어레이는 슬레이브로서 정의될 수 있다. 방법(400)은 슬레이브가 준비(PREPARE) 요청(408)을 수신할 때 논리 유닛 멤버에 대한 입/출력을 중단할 수 있으며, 타임스탬프가 슬레이브의 기록 입/출력(I/O) 큐 간격 내에 적합한지의 여부를 판단할 수 있다. 방법(400)은 타임스탬프가 기록 입/출력 큐 간격(410)에 적합할 때 타임스탬프보다 오래된 기록 입/출력 큐 간격 내의 각각의 기록 입/출력을 비울 수 있다. 방법(400)은 (a) 논리 유닛 멤버의 스냅샷의 형성, (b) 입/출력의 재개, (c) 영구적 메모리에 준비된(PREPARED) 상태 로깅, 및 (d) 마스터(412)로 준비 확인(PREPARE-ACK) 메시지 전송 중 적어도 하나를 수행할 수 있다.
방법(400)은 또한 마스터가 각각의 슬레이브로부터 준비 확인(PREPARE-ACK) 메시지를 수신할 때 마스터로부터 각각의 슬레이브로 커미트(COMMIT) 요청을 발행하는 것을 포함한다. 각각의 슬레이브가 마스터로부터 커미트(COMMIT) 요청을 수신할 때, 각각의 슬레이브는 (a) 영구적 메모리에 새로운 상태 로깅, (b) 전역 트랜잭션을 위해 유지된 록의 해제, (c) 논리 유닛 멤버의 스냅샷의 삭제, 및 (d) 마스터로의 커미트 확인(COMMIT-ACK) 메시지 전송 중 적어도 하나를 수행할 수 있다. 방법(400)의 타임스탬프가 기록 입/출력 큐 간격에 적합하지 않을 때, 슬레이브는 영구적 메모리에 취소(ABORT) 메시지를 로깅할 수 있으며, 슬레이브는 마스터로 취소(ABORT) 메시지를 전송한다. 방법(400)은 또한 마스터가 적어도 하나의 슬레이브로부터 취소(ABORT) 메시지를 수신할 때 마스터로부터 각각의 슬레이브로 롤백(ROLLBACK) 메시지를 발행하는 것을 포함할 수 있다. 각각의 슬레이브가 마스터로부터 롤백(ROLLBACK) 메시지를 수신할 때, 각각의 슬레이브는 (a) 영구적 메모리에 새로운 상태 로깅, (b) 전역 트랜잭션을 위해 유지된 록의 해제, (c) 논리 유닛 멤버의 스냅샷의 해제, 및 (d) 마스터로의 롤백 확인(ROLLBACK-ACK) 메시지 전송 중 적어도 하나를 수행할 수 있다. 방법(400)은 또한 타이머를 개시하는 것을 포함하며, 이 타이머는 마스터로부터 방법(400)의 각각의 참가 저장 어레이의 각각의 제어기로 준비(PREPARE) 요청을 전송하는 단계에서 개시될 수 있다. 방법(400)은 또한 마스터가 각각의 슬레이브로부터 응답을 수신하기 전에 타이머가 종료될 때 각각의 슬레이브로 제1 롤백(ROLLBACK) 메시지를 전송하는 것을 포함할 수 있다. 방법(400)은 또한 제1 롤백(ROLLBACK) 메시지의 전송 후에 슬레이브가 준비 확인(PREPARE-ACK) 메시지를 보낼 때 슬레이브에 제2 롤백(ROLLBACK) 메시지를 전송하는 것을 포함할 수 있다.
본 발명에 있어서, 개시된 방법은 명령어 세트 또는 장치에 의해 판독될 수 있는 소프트웨어로 구현될 수 있다. 그러한 소프트웨어 패키지는 본 발명의 개시된 기능과 프로세스를 수행하도록 컴퓨터를 프로그램하기 위해 사용되는 저장된 컴퓨터 코드를 포함하는 컴퓨터 판독 가능한 저장 매체를 채용하는 컴퓨터 프로그램 제품일 수 있다. 컴퓨터 판독 가능 매체는 어떤 종류의 종래의 플로피 디스크, 광학 디스크, CD-ROM, 자기 디스크, 하드 디스크 드라이브, 자기-광학 디스크, ROM, RAM, EPROM, EEPROM, 자기 또는 광학 카드, 또는 전자적 명령어를 저장하기 위한 어떠한 다른 적절한 매체를 포함할 수 있지만, 이에 한정되지는 않는다.
또한, 방법의 단계의 특정 순서나 위계는 예시적 접근 방법의 예들이라는 점이 이해되어야 한다. 설계의 선호도에 기초해서, 방법의 단계의 특정 순서나 위계는 개시된 주제 내에 유지되면서 재정렬될 수 있다는 점이 이해되어야 한다. 첨부 방법은 예시적 순서의 다양한 단계의 요소들을 청구하지만, 반드시 제시된 특정 순서나 위계에 한정되는 것을 의미하는 것은 아니다.
본 발명과 그의 많은 부수적인 장점들은 전술한 설명에 의해 이해될 것으로 믿어지며, 다양한 변경이 개시된 주제를 벗어나지 않는 한편 그 모든 물질적인 장점을 희생시키지 않으면서 구성요소의 형태, 구성 및 배열에서 이루어질 수 있다는 것은 명백하다. 기술된 형태는 단지 설명을 위한 것이며, 다음의 청구항의 의도는 그러한 변경을 둘러싸며 포함하는 것이다.

Claims (20)

  1. 기록 큐잉 메커니즘을 이용하여 다중 어레이 일관성 그룹을 구현하는 방법으로서,
    일관성 그룹(consistency group, CG)의 논리 유닛(Logical Unit, LU) 멤버에 기록 입/출력(Input/Output, I/O) 큐 간격(interval)을 적용하는 단계 -상기 일관성 그룹의 상기 논리 유닛 멤버가 존재하는 저장 어레이는 참가(participating) 저장 어레이이고, 상기 적용하는 단계는 선입선출(FIFO) 순서로 기록 입/출력을 큐잉하는 단계를 포함함- 와,
    각각의 기록 입/출력에 타임스탬프를 표시하는 단계와,
    상기 참가 저장 어레이가 마스터 저장 어레이로부터 스냅샷(snapshot) 요청을 수신할 때 상기 참가 저장 어레이로부터 상기 일관성 그룹의 상기 논리 유닛 멤버로의 입/출력을 중단하는 단계 -상기 스냅샷 요청은 스냅샷 요청 타임스탬프를 가짐- 와,
    한 쌍의 테스트 메시지의 교환을 통해 상기 일관성 그룹의 적어도 두 개의 참가 저장 어레이 사이의 왕복 대기 시간(roundtrip latency)을 결정하는 단계와,
    상기 왕복 대기 시간을 이용해서 상기 기록 입/출력 큐 간격의 최소 시간 간격을 결정하는 단계와,
    적어도 상기 기록 입/출력 큐 간격의 상기 최소 시간 간격에 기초하여 상기 스냅샷 요청 타임스탬프가 상기 참가 저장 어레이의 상기 기록 입/출력 큐 간격 내에 있는지 여부를 판정하는 단계를 포함하되,
    상기 스냅샷 요청 타임스탬프가 상기 참가 저장 어레이의 상기 기록 입/출력 큐 간격 내에 있다고 판정되면, 상기 참가 저장 어레이는, (a) 상기 스냅샷 요청 타임스탬프보다 오래된 각각의 기록 입/출력의 완료, (b) 상기 일관성 그룹의 상기 논리 유닛 멤버를 위한 로컬 스냅샷의 생성, 또는 (c) 상기 일관성 그룹의 상기 논리 유닛 멤버에 대한 입/출력의 재개 중 적어도 하나를 수행하는
    방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 각각의 기록 입/출력에 타임스탬프를 표시하는 단계는 분산 클록 동기화 메커니즘에 따라 상기 일관성 그룹의 각각의 참가 저장 어레이를 동기화시키는 단계를 포함하는
    방법.
  4. 제 3 항에 있어서,
    상기 분산 클록 동기화 메커니즘은 네트워크 시간 프로토콜(NTP)인
    방법.
  5. 제 1 항에 있어서,
    상기 일관성 그룹의 논리 유닛 멤버에 기록 입/출력 큐 간격을 적용하는 단계는 상기 기록 입/출력 큐 간격을 현재 시간으로부터 상기 큐에 있는 가장 오래된 기록 입/출력의 타임스탬프에 이르는 시간 간격으로 표현하는 단계를 포함하는
    방법.
  6. 삭제
  7. 삭제
  8. 기록 큐잉 메커니즘을 이용하여 다중 어레이 일관성 그룹을 구현하는 방법으로서,
    일관성 그룹(CG) 저장 어레이의 제어기 상에서 일관성 그룹 스냅샷을 개시하는 단계 -상기 개시된 일관성 그룹 스냅샷과 연관된 상기 제어기를 가진 상기 일관성 그룹 저장 어레이는 마스터(master)로서 정의되며, 상기 일관성 그룹의 논리 유닛(LU)이 존재하는 저장 어레이는 참가 저장 어레이임- 와,
    상기 개시된 일관성 그룹 스냅샷에 대해 타임스탬프를 기록(recording)하는 단계와,
    상기 마스터로부터 각각의 참가 저장 어레이의 각각의 제어기로 준비(PREPARE) 요청을 전송하는 단계 -상기 준비(PREPARE) 요청을 수신할 각각의 참가 저장 어레이는 슬레이브(slave)로서 정의됨- 와,
    한 쌍의 테스트 메시지의 교환을 통해 적어도 두 개의 참가 저장 어레이 사이의 왕복 대기 시간(roundtrip latency)을 결정하는 단계와,
    특정 슬레이브가 상기 준비(PREPARE) 요청을 수신할 때, 상기 특정 슬레이브의 상기 논리 유닛 멤버에 대한 입/출력(I/O)을 중단하고 상기 타임스탬프가 상기 특정 슬레이브의 기록 입/출력 큐 간격에 적합한지의 여부를 판정하는 단계 -상기 기록 입/출력 큐 간격은 선입선출(FIFO) 순서로 큐잉된 기록 입/출력 트랜잭션을 나타냄- 와,
    상기 타임스탬프가 상기 기록 입/출력 큐 간격에 적합할 때, 상기 타임스탬프보다 오래된 상기 기록 입/출력 큐 간격 내의 각각의 기록 입/출력을 비우는(flushing) 단계 -상기 타임스탬프가 상기 기록 입/출력 큐 간격에 적합하지 않을 때, 상기 슬레이브는 상기 특정 스레이브의 영구적 메모리에 취소(ABORT) 메시지를 로깅하며, 상기 특정 슬레이브는 상기 마스터에 상기 취소(ABORT) 메시지를 전송함- 와,
    상기 특정 슬레이브에 의해, (a) 상기 논리 유닛 멤버의 상기 개시된 스냅샷의 생성, (b) 상기 중단된 입/출력의 재개, (c) 상기 특정 슬레이브의 상기 영구적(persistent) 메모리에 준비된(PREPARED) 상태의 로깅, 또는 (d) 준비 확인(PREPARE-ACK) 메시지의 상기 마스터로의 전송 중 적어도 하나를 수행하는 단계와,
    상기 마스터가 상기 특정 슬레이브로부터 상기 취소(ABORT) 메시지를 수신할 때, 상기 마스터로부터 각각의 슬레이브로 롤백(ROLLBACK) 메시지를 발행하는 단계를 포함하되,
    각각의 슬레이브가 상기 마스터로부터 상기 롤백(ROLLBACK) 메시지를 수신할 때, 각각의 슬레이브는, (a) 각각의 슬레이브의 영구적 메모리에 새로운 상태의 로깅, (b) 전역(global) 트랜잭션을 위해 유지된 록(lock)의 해제, (c) 대응하는 논리 유닛 멤버의 임의의 스냅샷의 삭제, 또는 (d) 상기 마스터로의 롤백 확인(ROLLBACK-ACK) 메시지의 전송 중 적어도 하나를 수행하는
    방법.
  9. 제 8 항에 있어서,
    상기 마스터가 각각의 슬레이브로부터 상기 준비 확인(PREPARE-ACK) 메시지를 수신할 때 상기 마스터로부터 각각의 슬레이브로 커미트(COMMIT) 요청을 발행하는 단계를 더 포함하는
    방법.
  10. 제 9 항에 있어서,
    각각의 슬레이브가 상기 마스터로부터 상기 커미트(COMMIT) 요청을 수신할 때, 각각의 슬레이브는, (a) 각각의 슬레이브의 영구적 메모리에 상기 새로운 상태의 로깅, (b) 상기 전역 트랜잭션을 위해 유지된 상기 록의 해제, (c) 상기 대응하는 논리 유닛 멤버의 상기 스냅샷의 삭제, 또는 (d) 상기 마스터로의 커미트 확인(COMMIT-ACK) 메시지의 전송 중 적어도 하나를 수행하는
    방법.
  11. 삭제
  12. 삭제
  13. 제 8 항에 있어서,
    타이머를 개시하는 단계를 더 포함하되,
    상기 타이머는 상기 마스터로부터 각각의 참가 저장 어레이의 각각의 제어기로 준비(PREPARE) 요청을 전송하는 단계에서 개시되는
    방법.
  14. 제 13 항에 있어서,
    상기 마스터가 각각의 슬레이브로부터 응답을 수신하기 전에 상기 타이머가 만료될 때 각각의 슬레이브로 제 1 롤백(ROLLBACK) 메시지를 전송하는 단계를 더 포함하는
    방법.
  15. 제 14 항에 있어서,
    상기 제 1 롤백(ROLLBACK) 메시지가 전송된 후에 슬레이브가 준비 확인(PREPARE-ACK) 메시지를 전송할 때 상기 슬레이브로 제 2 롤백(ROLLBACK) 메시지를 전송하는 단계를 더 포함하는
    방법.
  16. 기록 큐잉 메커니즘을 이용하여 다중 어레이 일관성 그룹을 구현하는 방법을 수행하기 위한 컴퓨터 실행 가능 명령어를 구비한 비일시적 컴퓨터 판독 가능 저장 매체에 있어서, 상기 방법은,
    일관성 그룹(consistency group, CG)의 논리 유닛(Logical Unit, LU) 멤버에 기록 입/출력(Input/Output, I/O) 큐 간격을 적용하는 단계 -상기 일관성 그룹의 상기 논리 유닛 멤버가 존재하는 저장 어레이는 참가 저장 어레이이고, 상기 적용하는 단계는 선입선출(FIFO) 순서로 기록 입/출력을 큐잉하는 단계를 포함함- 와,
    각각의 기록 입/출력에 타임스탬프를 표시하는 단계와,
    상기 참가 저장 어레이가 마스터 저장 어레이로부터 스냅샷 요청을 수신할 때 상기 참가 저장 어레이로부터 상기 일관성 그룹의 논리 유닛 멤버로의 입/출력을 중단하는 단계 -상기 스냅샷 요청은 스냅샷 요청 타임스탬프를 가짐- 와,
    한 쌍의 테스트 메시지의 교환을 통해 상기 일관성 그룹의 적어도 두 개의 참가 저장 어레이 사이의 왕복 대기 시간을 결정하는 단계와,
    상기 왕복 대기 시간을 이용해서 상기 기록 입/출력 큐 간격의 최소 시간 간격을 결정하는 단계와,
    적어도 상기 기록 입/출력 큐 간격의 상기 최소 시간 간격에 기초하여 상기 스냅샷 요청 타임스탬프가 상기 참가 저장 어레이의 상기 기록 입/출력 큐 간격 내에 있는지 여부를 판정하는 단계를 포함하되,
    상기 스냅샷 요청 타임스탬프가 상기 참가 저장 어레이의 상기 기록 입/출력 큐 간격 내에 있다고 판정되면, 상기 참가 저장 어레이는, (a) 상기 스냅샷 요청 타임스탬프보다 오래된 각각의 기록 입/출력의 완료, (b) 상기 일관성 그룹의 상기 논리 유닛 멤버를 위한 로컬 스냅샷의 생성, 또는 (c) 상기 일관성 그룹의 상기 논리 유닛 멤버에 대한 입/출력의 재개 중 적어도 하나를 수행하는
    비일시적 컴퓨터 판독 가능 저장 매체.
  17. 삭제
  18. 제 16 항에 있어서,
    상기 일관성 그룹의 논리 유닛 멤버에 기록 입/출력 큐 간격을 적용하는 단계는 상기 기록 입/출력 큐 간격을 현재 시간으로부터 상기 큐에 있는 가장 오래된 기록 입/출력의 타임스탬프에 이르는 시간 간격으로 표현하는 단계를 포함하는
    비일시적 컴퓨터 판독 가능 저장 매체.
  19. 삭제
  20. 삭제
KR1020117013941A 2008-12-18 2009-01-23 기록 큐잉 메커니즘을 이용한 다중 어레이 일관성 그룹 구현 방법 및 컴퓨터 판독 가능 매체 KR101351222B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US20302308P 2008-12-18 2008-12-18
US61/203,023 2008-12-18
PCT/US2009/000430 WO2010071661A1 (en) 2008-12-18 2009-01-23 Method for implementing multi-array consistency groups using a write queuing mechanism

Publications (2)

Publication Number Publication Date
KR20110097846A KR20110097846A (ko) 2011-08-31
KR101351222B1 true KR101351222B1 (ko) 2014-01-13

Family

ID=42269097

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117013941A KR101351222B1 (ko) 2008-12-18 2009-01-23 기록 큐잉 메커니즘을 이용한 다중 어레이 일관성 그룹 구현 방법 및 컴퓨터 판독 가능 매체

Country Status (7)

Country Link
US (1) US8566281B2 (ko)
EP (1) EP2359251B1 (ko)
JP (1) JP5452615B2 (ko)
KR (1) KR101351222B1 (ko)
CN (1) CN102239479B (ko)
TW (1) TWI400651B (ko)
WO (1) WO2010071661A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9507841B2 (en) * 2011-06-16 2016-11-29 Sap Se Consistent backup of a distributed database system
US20140201149A1 (en) * 2013-01-16 2014-07-17 Ca, Inc. Consistent bookmark
US9569310B2 (en) 2013-02-27 2017-02-14 Netapp, Inc. System and method for a scalable crash-consistent snapshot operation
US9280296B2 (en) * 2013-05-23 2016-03-08 Globalfoundries Inc. Recovery from failure of primary storage volumes by using mirrored data maintained with host timestamps
US9110601B2 (en) 2013-06-24 2015-08-18 Sap Se Backup lifecycle management
US9990161B2 (en) * 2014-12-17 2018-06-05 Vmware, Inc. Consistent replication of virtual computing instance data
US9912748B2 (en) * 2015-01-12 2018-03-06 Strato Scale Ltd. Synchronization of snapshots in a distributed storage system
CN106250322B (zh) * 2016-08-12 2019-11-19 华为技术有限公司 一种写数据的方法和装置
CN106648993B (zh) * 2016-12-30 2019-07-19 杭州宏杉科技股份有限公司 一致性组快照管理的方法及装置
US10423609B1 (en) 2017-03-29 2019-09-24 Amazon Technologies, Inc. Consistent snapshot points in a distributed storage service
CN109726151B (zh) * 2017-10-27 2022-11-08 伊姆西Ip控股有限责任公司 用于管理输入输出栈的方法、设备和介质
US11048590B1 (en) 2018-03-15 2021-06-29 Pure Storage, Inc. Data consistency during recovery in a cloud-based storage system
US10929376B2 (en) * 2018-03-22 2021-02-23 Microsoft Technology Licensing, Llc Performing transactions in distributed transactional memory systems
US11144408B2 (en) * 2019-10-24 2021-10-12 EMC Holding Company, LLC System and method for improving asynchronous replication performance in dual controller storage systems
US20240111418A1 (en) 2021-01-25 2024-04-04 Volumez Technologies Ltd. Consistency Group Distributed Snapshot Method And System

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266652B1 (en) * 2004-06-30 2007-09-04 Emc Corporation System and method for managing data consistency between different data volumes on one or more data storage systems in a data storage environment
US20080243952A1 (en) 2007-03-28 2008-10-02 Erez Webman Group Stamping Style Asynchronous Replication Utilizing A Loosely-Accurate Global Clock

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6243141B1 (en) * 1997-05-06 2001-06-05 Matsushita Electric Industrial Co., Ltd. Video signal processing device
US6708227B1 (en) * 2000-04-24 2004-03-16 Microsoft Corporation Method and system for providing common coordination and administration of multiple snapshot providers
JP4255699B2 (ja) * 2003-01-20 2009-04-15 株式会社日立製作所 記憶デバイス制御装置の制御方法、及び記憶デバイス制御装置
US7127577B2 (en) * 2003-01-21 2006-10-24 Equallogic Inc. Distributed snapshot process
US8037264B2 (en) * 2003-01-21 2011-10-11 Dell Products, L.P. Distributed snapshot process
TWI252977B (en) * 2004-11-22 2006-04-11 Inventec Corp Disk array data protection system and method thereof
US20070033356A1 (en) * 2005-08-03 2007-02-08 Boris Erlikhman System for Enabling Secure and Automatic Data Backup and Instant Recovery
US7765187B2 (en) * 2005-11-29 2010-07-27 Emc Corporation Replication of a consistency group of data storage objects from servers in a data network
US7577867B2 (en) * 2006-02-17 2009-08-18 Emc Corporation Cross tagging to data for consistent recovery
US7516352B2 (en) * 2006-03-21 2009-04-07 International Business Machines Corporation Isolating a drive from disk array for diagnostic operations
US8140785B2 (en) * 2006-06-29 2012-03-20 International Business Machines Corporation Updating metadata in a logical volume associated with a storage controller for data units indicated in a data structure
US7644204B2 (en) * 2006-10-31 2010-01-05 Hewlett-Packard Development Company, L.P. SCSI I/O coordinator
JP4951326B2 (ja) * 2006-12-12 2012-06-13 株式会社野村総合研究所 I/o要求の処理順序を最適化するためのコンピュータプログラム
US8255562B2 (en) * 2008-06-30 2012-08-28 International Business Machines Corporation Adaptive data throttling for storage controllers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266652B1 (en) * 2004-06-30 2007-09-04 Emc Corporation System and method for managing data consistency between different data volumes on one or more data storage systems in a data storage environment
US20080243952A1 (en) 2007-03-28 2008-10-02 Erez Webman Group Stamping Style Asynchronous Replication Utilizing A Loosely-Accurate Global Clock

Also Published As

Publication number Publication date
WO2010071661A1 (en) 2010-06-24
TWI400651B (zh) 2013-07-01
EP2359251A4 (en) 2013-02-20
KR20110097846A (ko) 2011-08-31
EP2359251A1 (en) 2011-08-24
TW201025128A (en) 2010-07-01
JP2012513061A (ja) 2012-06-07
JP5452615B2 (ja) 2014-03-26
CN102239479B (zh) 2014-06-04
US20110246423A1 (en) 2011-10-06
CN102239479A (zh) 2011-11-09
US8566281B2 (en) 2013-10-22
EP2359251B1 (en) 2014-03-12

Similar Documents

Publication Publication Date Title
KR101351222B1 (ko) 기록 큐잉 메커니즘을 이용한 다중 어레이 일관성 그룹 구현 방법 및 컴퓨터 판독 가능 매체
USRE47852E1 (en) Snapshot and replication of a multi-stream application on multiple hosts at near-sync frequency
US8407435B2 (en) Efficiently creating a snapshot of a large consistency group using multiple commands including a snapshot preparation command
US8954645B2 (en) Storage writes in a mirrored virtual machine system
US7908448B1 (en) Maintaining data consistency in mirrored cluster storage systems with write-back cache
EP2304569B1 (en) Performing a data write on a storage device
JP5147941B2 (ja) 異なるネットワークを介した1次ストレージから2次ストレージへの書き込みコピーを管理するための方法、システム、およびコンピュータ・プログラム
US9335931B2 (en) System and method for making snapshots of storage devices
KR101574451B1 (ko) 트랜잭션 메모리 시스템 내구성 부여
CN110737542B (zh) 冻结和解除冻结上游卷和下游卷的存储系统、方法和介质
US8001307B1 (en) Apparatus and a method to eliminate deadlock in a bi-directionally mirrored data storage system
EP2569921B1 (en) System and method for providing reliable storage
JP6313907B2 (ja) 計算の非決定性の下でのリカバリ及び耐障害
US9026849B2 (en) System and method for providing reliable storage
US20180173784A1 (en) Optimized cloning for backup to disk
TWI468930B (zh) 於儲存裝置執行資料寫入

Legal Events

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