KR20140106588A - 공유 볼륨의 어플리케이션 일관된 스냅샷 기법 - Google Patents

공유 볼륨의 어플리케이션 일관된 스냅샷 기법 Download PDF

Info

Publication number
KR20140106588A
KR20140106588A KR1020147016893A KR20147016893A KR20140106588A KR 20140106588 A KR20140106588 A KR 20140106588A KR 1020147016893 A KR1020147016893 A KR 1020147016893A KR 20147016893 A KR20147016893 A KR 20147016893A KR 20140106588 A KR20140106588 A KR 20140106588A
Authority
KR
South Korea
Prior art keywords
node
cluster
writer
snapshot
command
Prior art date
Application number
KR1020147016893A
Other languages
English (en)
Other versions
KR102006513B1 (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 KR20140106588A publication Critical patent/KR20140106588A/ko
Application granted granted Critical
Publication of KR102006513B1 publication Critical patent/KR102006513B1/ko

Links

Images

Classifications

    • 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
    • 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
    • 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/1456Hardware arrangements for backup
    • 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/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • 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)
  • Retry When Errors Occur (AREA)

Abstract

본 발명은 클러스터의 다양한 노드에 걸쳐 어플리케이션 일관된 공유 볼륨의 스냅샷을 생성하는 방법, 시스템, 및 컴퓨터 프로그램 제품으로 확장한다. 본 발명은 볼륨의 스냅샷이 하나의 노드 상에서 개시되는 것을 가능하게 하고, 이것은 볼륨을 사용하는 클러스터에서의 모든 어플리케이션으로 하여금, 스냅샷이 생성되기 이전에, 그들의 데이터를 볼륨에 유지하게 한다. 따라서, 스냅샷은 볼륨을 사용하는 클러스터에서의 모든 어플리케이션에 대해 어플리케이션 일관적이다. 본 발명은 또한 다양한 노드 상의 어플리케이션이 그 생성된 스냅샷에 대한 포스트 스냅샷(post snapshot) 프로세싱을 수행하는 것을 가능하게 한다. 본 발명은, 기존 백업 시스템이 클러스터의 다수의 노드에 걸친 어플리케이션들에 의해 공유되는 볼륨의 어플리케이션 일관된 스냅샷을 생성하는 것을 가능하게 하기 위해, 클러스터를 알지 못하는 기존의 백업 시스템에서 사용될 수 있다.

Description

공유 볼륨의 어플리케이션 일관된 스냅샷 기법{APPLICATION CONSISTENT SNAPSHOTS OF A SHARED VOLUME}
1. 배경 및 관련 기술
컴퓨터 시스템 및 관련 기술은 사회의 많은 측면에 영향을 끼친다. 사실, 컴퓨터 시스템의 정보 처리 능력은 우리가 생활하고 일하는 방식을 바꾸어놓았다. 이제 컴퓨터 시스템은, 컴퓨터 시스템의 도래 이전에 손으로 행해졌던 많은 태스크(예를 들면, 워드 프로세싱, 스케줄링, 어카운팅 등)를 일반적으로 수행한다. 더 최근에는, 컴퓨터 시스템은 서로 그리고 다른 전자 디바이스에 연결되어 유선 및 무선 컴퓨터 네트워크 양자를 형성해왔는데, 이 네트워크를 통해 컴퓨터 시스템 및 다른 전자 디바이스는 전자 데이터를 전송할 수 있다. 따라서, 많은 컴퓨팅 태스크들의 수행은 다수의 상이한 컴퓨터 시스템 및/또는 다수의 상이한 컴퓨팅 환경에 걸쳐 분산된다.
분산 환경 내에서 어플리케이션을 호스팅하는 것이 점점 더 일반화되고 있다. 예를 들면, 어플리케이션은 노드의 클러스터 중 한 노드(예를 들면, 서버) 상에서 종종 호스팅된다. 클러스터에서, 상이한 어플리케이션은 상이한 노드 상에서 호스팅될 수 있지만 각각 하나 이상의 공통의 스토리지 볼륨에 대한 액세스를 가질 수도 있다. 다시 말하면, 하나의 스토리지는 클러스터의 다양한 노드에 걸쳐 퍼져있는 많은 상이한 어플리케이션에 의해 액세스될 수도 있다.
도 1은 이러한 타입의 환경을 묘사한다. 도시된 바와 같이, 클러스터(100)는 노드(101-103)를 포함한다. 이 예시적인 클러스터에서, 각각의 노드는 코디네이터, 백업 어플리케이션, 스토리지 공급자, 및 2개의 어플리케이션을 포함한다. 그러나, 한 노드는 임의의 수의 어플리케이션뿐만 아니라 다수의 스토리지 공급자를 포함할 수 있다. 이 예에서, 각각의 어플리케이션은 데이터를 저장하기 위해 스토리지(104) 상의 볼륨(104a)을 사용한다.
도 1에 묘사된 컴포넌트는 클러스터 환경뿐만 아니라 비클러스터(non-cluster) 환경에서 백업을 수행하기 위해 사용되어 왔던 종래 기술의 백업 시스템을 나타낸다. 마이크로소프트의 볼륨 쉐도우 카피 서비스(Volume Shadow Copy Service; VSS)는 이 타입의 백업 시스템에서 사용될 수 있는 코디네이터의 일 예이다. 이 백업 시스템에서, 코디네이터(110-130)는 볼륨(104a)과 같은 공유된 볼륨의 백업을 코디네이트하는 데 사용된다. 이 백업은 볼륨(104a)의 특정 시점 이미지( point-in-time image)(즉, 스냅샷)를 포함할 수 있다. 스냅샷의 생성이 노드(101) 상에서 발생하는 것으로 설명될 것이지만, 유사한 단계가 각 노드 상에서 수행되어 그 노드 상에서 볼륨(104a)의 스냅샷을 생성할 수 있다. 다시 말하면, 노드(101-103) 상의 각각의 코디네이터는 볼륨의 스냅샷을 생성하도록 유사하게 기능한다.
노드(101) 상에서 스냅샷을 생성하기 위해, 백업 어플리케이션(114)은 스냅샷을 생성하도록 코디네이터(110)에게 요청을 전송한다. 이 요청에서, 백업 어플리케이션(114)은 스냅샷을 생성하기 위해 사용되어야 하는 스토리지 공급자(이 예에서는, 스토리지 공급자(113))를 특정한다. 코디네이터(110)는 노드(101) 상의 각 어플리케이션의 라이터(writer)(라이터(111a 및 112a))와 통신하여 그들에게 스냅샷에 대한 준비를 하도록 명령한다. 이 통신은 프리즈 커맨드(freeze command)로서 칭해진다.
이러한 준비는 스냅샷이 생성될 때까지 어플리케이션에 의한 기록(writes)을 중지하는 것(즉, 프리징하는 것) 및 인메모리 캐시를 디스크로 플러싱하는 것을 포함한다. 이런 방식에서, 각각의 라이터는 스냅샷이 생성되기 이전에 모든 어플리케이션 데이터가 볼륨(104a)에 유지되는 것을 보장한다. 일단 각각의 라이터가 프리즈 커맨드로부터 복귀하면, 코디네이터(110)는, 예컨대 파일 시스템 메타데이터를 볼륨(104a)에 유지하고 볼륨(104a)으로의 기록을 중지하는 것에 의해, 볼륨(104a)에게 스냅샷을 준비하도록 명령한다. 이 통신은 플러시 및 홀드 커맨드로서 칭해진다.
일단 볼륨(104a)이 플러시 및 홀드 커맨드로부터 복귀하면, 코디네이터(110)는 스토리지 공급자(113)에게 볼륨(104a)의 스냅샷을 생성하도록 명령한다. 이것은 커밋(commit) 커맨드로서 칭해진다. 하나의 스토리지 공급자가 도시되지만, 노드는 스토리지(104)용 하드웨어 컨트롤러와 직접적으로 인터페이싱하는 하드웨어 스토리지 공급자, 또는 오퍼레이팅 시스템(예를 들면, 파일 시스템)과 인터페이싱하는 소프트웨어 스토리지 공급자와 같은 다수의 스토리지 공급자를 활용할 수도 있다. 본 발명의 목적을 위해, 스냅샷을 생성하기 위해 사용된 스토리지 공급자의 타입은 중요하지 않다.
스토리지 공급자(113)는 볼륨(104a)의 스냅샷을 생성한다. 이 스냅샷은 볼륨(104a)의 컨텐츠가 단일의 특정 시점(예를 들면, 각각의 라이터가 노드(101) 상의 각각의 어플리케이션의 데이터를 볼륨(104a)에 유지하고 볼륨(104a)이 자신의 캐시를 플러싱한 이후의 시점)에 존재할 때의 그 컨텐츠의 사본이다. 일단 이 스냅샷이 생성되고 스토리지 공급자(113)가 커밋 커맨드로부터 복귀하면, 코디네이터(110)는 볼륨(104a)에게 자신이 프로세싱을 다시 시작할 수 있다는 것을 통지하고(릴리스 커맨드로서 칭해짐), 그 다음 각각의 라이터에게 볼륨(104a)으로의 기록을 재시작할 수 있다는 것을 통지한다(쏘(thaw) 커맨드로서 칭해짐). 알 수 있는 바와 같이, 이 백업 프로세스는 어플리케이션이 스냅샷의 생성 동안 실행을 계속하도록 허용한다. 다만, 어플리케이션이 프리즈 및 쏘 커맨드의 수신 사이에서 볼륨(104a)에 기록하는 것만은 방지된다. 그러나, 어플리케이션은 이 시간 동안 볼륨(104a)을 계속 판독할 수 있다.
이 백업 프로세스는, 플러시 및 홀드 커맨드가 모든 파일 시스템 데이터로 하여금 스냅샷이 생성되기 이전에 유지되게 하기 때문에, 파일 시스템 일관성을 갖는 볼륨(104a)의 특정 시점 스냅샷을 생성한다. 특정 시점 스냅샷은, 스냅샷이 개시되었던 노드(이 예에서는 노드(101)이다) 상에서 작동하는 각각의 어플리케이션에 대해 어플리케이션 일관성을 또한 갖는데, 그 이유는 프리즈 커맨드가 각각의 어플리케이션으로 하여금 자신의 데이터를 볼륨(104a)에 유지하게 하기 때문이다.
그러나, 이 종래 기술의 백업 프로세스가 클러스터 환경에서 사용되는 경우, 볼륨(104a)의 특정 시점 스냅샷은 노드(102 또는 103) 상에서 동작하는 각각의 어플리케이션에 대해 어플리케이션 일관성을 갖지 않는다. 이것은 코디네이터(110)가 클러스터에서의 다른 노드(예를 들면, 노드(102 및 103))와 통신하지 않기 때문이다. 특히, 이 종래 기술의 백업 시스템은 하나의 노드 상의 코디네이터가 다른 노드 상의 코디네이터 또는 라이터와 통신하는 것을 허용하도록 구성되지 않는다. 따라서, 어플리케이션(121, 122, 131, 및 132)은 노드(101) 상에서의 스냅샷의 생성 이전에 볼륨(104a)에 유지되지 않았던 인메모리 캐시(또는 다른 유지되지 않은 데이터)를 포함할 것이고, 그러므로, 이 유지되지 않은 데이터는 스냅샷에 포함되지 않을 것이다.
이 때문에, 이 종래 기술의 백업 시스템에서, 클러스터에서의 각각의 어플리케이션에 대해 특정 시점 스냅샷을 생성하기 위해, 유저는 클러스터에서의 노드의 각각 상에서 스냅샷을 개시하도록 강제된다. 예를 들면, 유저는 코디네이터(120 및 130)와 통신하기 위해 노드(102 및 103)의 각각 상의 백업 어플리케이션(124 및 134)을 각각 사용하여, 위에서 설명된 동일한 프로세스에 후속하여 볼륨(104a)의 별개의 특정 시점 스냅샷을 생성할 것이다. 이것은 클러스터에서의 각각의 노드 상에서 별개의 스냅샷이 생성되는 것으로 귀결된다.
개요
본 발명은 다양한 노드에 걸쳐 어플리케이션에 일관된 공유 볼륨의 스냅샷을 생성하기 위한 방법, 시스템, 및 컴퓨터 프로그램 제품으로 확장한다. 본 발명은, 스냅샷이 생성되기 이전에, 볼륨을 사용하는 클러스터 내의 모든 어플리케이션으로 하여금, 그들의 데이터를 볼륨에 유지하게 하는 하나의 노드 상에서 볼륨의 스냅샷이 개시되는 것을 가능하게 한다. 따라서, 스냅샷은 클러스터에서 볼륨을 사용하는 모든 어플리케이션들에 대해 어플리케이션 일관적이다. 본 발명은 또한 다른 노드 상의 어플리케이션이 그 노드 상에서 생성된 스냅샷에 대한 포스트 스냅샷(post snapshot) 프로세싱을 수행하는 것을 가능하게 한다.
일 실시형태에서, 클러스터의 제 1의 노드 상의 백업 코디네이터에서 요청이 수신된다. 그 요청은 백업 어플리케이션으로부터 수신되고, 클러스터에서의 제 1의 노드와 적어도 하나의 다른 노드 상의 적어도 하나의 어플리케이션에 의해 사용되는 공유 볼륨의 스냅샷이 생성되어야 한다고 요청한다. 제 1 및 적어도 하나의 다른 노드 상의 적어도 하나의 어플리케이션의 각각은 라이터를 포함한다. 제 1 및 적어도 하나의 다른 노드의 각각은 클러스터 라이터를 또한 포함한다.
백업 코디네이터는 프리즈 커맨드를 제 1의 노드 상의 각각의 라이터와 클러스터 라이터에 전송한다. 프리즈 커맨드는 제 1의 노드 상의 각각의 라이터와 클러스터 라이터에게 어플리케이션 데이터를 공유 볼륨에 유지하도록 명령한다. 그 다음, 제 1의 노드 상의 클러스터 라이터는 프리즈 커맨드의 통지를 제 1의 노드 상의 클러스터 서비스로 전송한다. 제 1의 노드 상의 클러스터 서비스는 프리즈 커맨드의 통지를 적어도 하나의 다른 노드 각각 상의 클러스터 서비스로 전송한다. 통지는 적어도 하나의 다른 노드의 각각 상의 클러스터 서비스에게 적어도 하나의 다른 노드 각각 상에서 공유 볼륨의 백업 프로세스를 개시하도록 명령한다.
제 1의 노드 상의 클러스터 라이터는, 프리즈 커맨드로 복귀하기 전에 적어도 하나의 다른 노드 각각 상의 클러스터 서비스로부터의 통지를 대기한다. 이 통지는, 대응하는 노드 상의 각각의 라이터가 대응하는 어플리케이션 데이터를 공유 볼륨에 유지했음을 나타낸다. 적어도 하나의 다른 노드 각각 상의 클러스터 서비스로부터 통지를 수신하면, 제 1의 노드 상의 클러스터 라이터는 프리즈 커맨드로부터 복귀한다.
일단 제 1의 노드 상의 클러스터 라이터가 프리즈 커맨드로부터 복귀하면, 백업 코디네이터는 제 1의 노드 상의 스토리지 공급자에게 요청을 전송한다. 그 요청은 스토리지 공급자로 하여금 공유 볼륨의 스냅샷을 생성하게 한다. 스냅샷은, 공유 볼륨을 사용하는 적어도 하나의 다른 노드 상의 그리고 제 1의 노드 상의 각각의 어플리케이션에 대해 어플리케이션 일관성을 갖는다.
다른 실시형태에서, 제 1의 노드 상의 클러스터 서비스에서 통지가 수신된다. 그 통지는, 공유 볼륨의 백업 프로세스가 클러스터에서의 제 2의 노드 상에서 개시되었음을 나타낸다. 공유 볼륨은 제 1 및 제 2의 노드 각각 상의 적어도 하나의 어플리케이션에 의해 사용된다. 그 통지는 제 2의 노드 상의 클러스터 서비스로부터 수신되고, 제 2의 노드 상의 클러스터 라이터에 의해 프리즈 커맨드가 수신되었음을 나타낸다.
제 1의 노드 상의 클러스터 서비스는 제 1의 노드 상의 백업 코디네이터로 요청을 전송한다. 그 요청은 공유 볼륨의 스냅샷이 생성되어야 한다고 요청한다. 백업 코디네이터는 제 1의 노드 상의 적어도 하나의 어플리케이션의 라이터 및 클러스터 라이터로 프리즈 커맨드를 전송한다. 프리즈 커맨드는, 클러스터 라이터 및 적어도 하나의 라이터에게 어플리케이션 데이터를 공유 볼륨에 유지하도록 명령한다.
클러스터 라이터 및 적어도 하나의 라이터가 프리즈 커맨드로부터 복귀한 후, 백업 코디네이터는 제 1의 노드 상의 헬퍼 공급자에게 커밋 커맨드를 전송한다. 제 1의 노드 상의 헬퍼 공급자는 커밋 커맨드의 통지를 제 1의 노드 상의 클러스터 서비스로 전송한다. 헬퍼 공급자는 커밋 커맨드를 차단한다. 그 다음, 제 1의 노드 상의 클러스터 서비스는, 커밋 커맨드가 수신되었다는 통지를 제 2의 노드 상의 클러스터 라이터로 전송하고, 이로써, 제 1의 노드 상의 각각의 라이터가 대응하는 어플리케이션의 데이터를 공유 볼륨에 유지했음을 나타낸다.
이 개요는 하기 상세한 설명에서 더 설명되는 개념의 선택을 간소화된 형태로 소개하기 위해 제공된다. 이 개요는 청구 대상의 주요한 특징 또는 기본적인 특징을 식별하도록 의도된 것도 아니고, 청구 대상의 범위를 결정함에 있어서 보조로서 사용하도록 의도된 것도 아니다.
본 발명의 추가적 특징 및 이점은 후속하는 설명에서 설명될 것이며, 부분적으로는 그 설명으로부터 명백할 것이거나, 또는 본 발명의 실시에 의해 학습될 수도 있다. 본 발명의 특징 및 이점은 첨부된 특허청구범위에서 특정적으로 지적된 도구 및 조합의 수단에 의해 실현되거나 획득될 수도 있다. 본 발명의 이들 및 다른 특징은 하기의 설명과 첨부의 특허청구범위로부터 완전히 명확해질 것이거나, 또는 이하 설명되는 바와 같은 본 발명의 실시에 의해 학습될 수도 있다.
본 발명의 상기 언급된 그리고 다른 이점 및 특징이 획득될 수 있는 방식을 설명하기 위해, 위에서 간략히 설명된 본 발명의 보다 특정적인 설명은 첨부된 도면에서 예시된 본 발명의 구체적인 실시형태를 참조로 행해질 것이다. 이들 도면이 본 발명의 특징적 실시형태만을 묘사하고 따라서 본 발명의 범위를 제한하는 것으로 간주되지 않아야 한다는 점을 이해하면, 본 발명은 첨부된 도면들의 사용을 통해 추가적인 특이성 및 상세와 함께 기술되고 설명될 것이며, 첨부의 도면에서:
도 1은 종래 기술의 백업 시스템의 컴포넌트를 갖는 노드의 예시적인 클러스터를 예시한다;
도 2는 본 발명의 실시형태에 따른 백업 시스템의 컴포넌트를 갖는 노드의 예시적인 클러스터를 예시한다;
도 3은 백업 프로세스 동안 통신의 시퀀스를 나타내는 노드의 예시적인 클러스터를 예시한다;
도 4은 백업 프로세스 동안 통신의 다른 시퀀스를 나타내는 노드의 예시적인 클러스터를 예시한다;
도 5는 클러스터의 다수의 노드 상의 어플리케이션에 의해 사용되는 공유 볼륨의 스냅샷의 생성을 개시하기 위한 예시적인 방법의 흐름도를 예시한다; 그리고
도 6은 공유 볼륨의 스냅샷의 생성이 클러스터의 다른 노드 상에서 개시되었다는 통지에 응답하기 위한 예시적인 방법의 흐름도를 예시한다.
상세한 설명
본 발명은 다양한 노드에 걸쳐 어플리케이션에 일관된 공유 볼륨의 스냅샷을 생성하기 위한 방법, 시스템, 및 컴퓨터 프로그램 제품으로 확장한다. 본 발명은, 스냅샷이 생성되기 이전에, 볼륨을 사용하는 클러스터 내의 모든 어플리케이션으로 하여금, 그들의 데이터를 볼륨에 유지하게 하는 하나의 노드 상에서 볼륨의 스냅샷이 개시되는 것을 가능하게 한다. 따라서, 스냅샷은 클러스터에서 볼륨을 사용하는 모든 어플리케이션들에 대해 어플리케이션 일관적이다. 본 발명은 또한 다른 노드 상의 어플리케이션이 그 노드 상에서 생성된 스냅샷에 대한 포스트 스냅샷(post snapshot) 프로세싱을 수행하는 것을 가능하게 한다.
일 실시형태에서, 클러스터의 제 1의 노드 상의 백업 코디네이터에서 요청이 수신된다. 그 요청은 백업 어플리케이션으로부터 수신되고, 클러스터에서의 제 1의 노드와 적어도 하나의 다른 노드 상의 적어도 하나의 어플리케이션에 의해 사용되는 공유 볼륨의 스냅샷이 생성되어야 한다고 요청한다. 제 1 및 적어도 하나의 다른 노드 상의 적어도 하나의 어플리케이션의 각각은 라이터를 포함한다. 제 1 및 적어도 하나의 다른 노드의 각각은 클러스터 라이터를 또한 포함한다.
백업 코디네이터는 프리즈 커맨드를 제 1의 노드 상의 각각의 라이터와 클러스터 라이터에 전송한다. 프리즈 커맨드는 제 1의 노드 상의 각각의 라이터와 클러스터 라이터에게 어플리케이션 데이터를 공유 볼륨에 유지하도록 명령한다. 그 다음, 제 1의 노드 상의 클러스터 라이터는 프리즈 커맨드의 통지를 제 1의 노드 상의 클러스터 서비스로 전송한다. 제 1의 노드 상의 클러스터 서비스는 프리즈 커맨드의 통지를 적어도 하나의 다른 노드 각각 상의 클러스터 서비스로 전송한다. 통지는 적어도 하나의 다른 노드의 각각 상의 클러스터 서비스에게 적어도 하나의 다른 노드 각각 상에서 공유 볼륨의 백업 프로세스를 개시하도록 명령한다.
제 1의 노드 상의 클러스터 라이터는, 프리즈 커맨드로 복귀하기 전에 적어도 하나의 다른 노드 각각 상의 클러스터 서비스로부터의 통지를 대기한다. 이 통지는, 대응하는 노드 상의 각각의 라이터가 대응하는 어플리케이션 데이터를 공유 볼륨에 유지했음을 나타낸다. 적어도 하나의 다른 노드 각각 상의 클러스터 서비스로부터 통지를 수신하면, 제 1의 노드 상의 클러스터 라이터는 프리즈 커맨드로부터 복귀한다.
일단 제 1의 노드 상의 클러스터 라이터가 프리즈 커맨드로부터 복귀하면, 백업 코디네이터는 제 1의 노드 상의 스토리지 공급자에게 요청을 전송한다. 그 요청은 스토리지 공급자로 하여금 공유 볼륨의 스냅샷을 생성하게 한다. 스냅샷은, 공유 볼륨을 사용하는 적어도 하나의 다른 노드 상의 그리고 제 1의 노드 상의 각각의 어플리케이션에 대해 어플리케이션 일관성을 갖는다.
다른 실시형태에서, 제 1의 노드 상의 클러스터 서비스에서 통지가 수신된다. 그 통지는, 공유 볼륨의 백업 프로세스가 클러스터에서의 제 2의 노드 상에서 개시되었음을 나타낸다. 공유 볼륨은 제 1 및 제 2의 노드 각각 상의 적어도 하나의 어플리케이션에 의해 사용된다. 그 통지는 제 2의 노드 상의 클러스터 서비스로부터 수신되고, 제 2의 노드 상의 클러스터 라이터에 의해 프리즈 커맨드가 수신되었음을 나타낸다.
제 1의 노드 상의 클러스터 서비스는 제 1의 노드 상의 백업 코디네이터로 요청을 전송한다. 그 요청은 공유 볼륨의 스냅샷이 생성되어야 한다고 요청한다. 백업 코디네이터는 제 1의 노드 상의 적어도 하나의 어플리케이션의 라이터 및 클러스터 라이터로 프리즈 커맨드를 전송한다. 프리즈 커맨드는, 클러스터 라이터 및 적어도 하나의 라이터에게 어플리케이션 데이터를 공유 볼륨에 유지하도록 명령한다.
클러스터 라이터 및 적어도 하나의 라이터가 프리즈 커맨드로부터 복귀한 후, 백업 코디네이터는 제 1의 노드 상의 헬퍼 공급자에게 커밋 커맨드를 전송한다. 제 1의 노드 상의 헬퍼 공급자는 커밋 커맨드의 통지를 제 1의 노드 상의 클러스터 서비스로 전송한다. 헬퍼 공급자는 커밋 커맨드를 차단한다. 그 다음, 제 1의 노드 상의 클러스터 서비스는, 커밋 커맨드가 수신되었다는 통지를 제 2의 노드 상의 클러스터 라이터로 전송하고, 이로써, 제 1의 노드 상의 각각의 라이터가 대응하는 어플리케이션의 데이터를 공유 볼륨에 유지했음을 나타낸다.
본 발명의 실시형태는, 하기에 상세히 논의되는 바와 같이, 예를 들면, 하나 이상의 프로세서와 시스템 메모리와 같은 컴퓨터 하드웨어를 포함하는 특별한 목적의 또는 일반적인 목적의 컴퓨터를 포함하거나 활용할 수도 있다. 본 발명의 범위 내의 실시형태는, 컴퓨터 실행가능 명령 및/또는 데이터 구조를 이송하고 저장하기 위한, 물리적인 컴퓨터 판독가능 매체 및 다른 컴퓨터 판독가능 매체를 또한 포함한다. 이러한 컴퓨터 판독가능 매체는 일반적인 목적의 범용 컴퓨터 시스템 또는 특수 목적의 컴퓨터 시스템에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수 있다. 컴퓨터 실행가능 명령을 저장하는 컴퓨터 판독가능 매체는 컴퓨터 저장 매체(디바이스)이다. 컴퓨터 실행가능 명령을 이송하는 컴퓨터 판독가능 매체는 송신 매체이다. 따라서, 비제한적인 예로서, 본 발명의 실시형태는 적어도 2개의 별개의 상이한 종류의 컴퓨터 판독가능 매체: 컴퓨터 저장 매체(디바이스) 및 송신 매체를 포함할 수 있다.
컴퓨터 저장 매체(디바이스)는 RAM, ROM, EEPROM, CD-ROM, (예를 들면 RAM에 기초한) 솔리드 스테이트 드라이브(SSD), 플래시 메모리, 상변화 메모리(phase-change memory; "PCM"), 다른 타입의 메모리, 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 저장 디바이스, 또는 소망의 프로그램 코드 수단을 컴퓨터 실행가능 명령 또는 데이터 구조의 형태로 저장하는 데 사용될 수 있고 일반적인 목적의 또는 특수한 목적의 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함한다.
"네트워크"는 컴퓨터 시스템 및/또는 모듈 및/또는 다른 전자 디바이스 사이에서 전자 데이터의 전송을 가능하게 하는 하나 이상의 데이터 링크로서 정의된다. 네트워크 또는 다른 통신 접속(유선, 무선, 또는 유선 또는 무선의 조합 중 어느 하나)을 통해 컴퓨터로 정보가 전송되는 경우, 컴퓨터는 그 접속을 송신 매체로 적절히 간주한다. 송신 매체는, 소망의 프로그램 코드를 컴퓨터 실행가능 명령 또는 데이터 구조의 형태로 이송하는 데 사용될 수 있고 일반적인 목적의 또는 특수한 목적의 컴퓨터에 의해 액세스될 수 있는 데이터 링크 및/또는 네트워크를 포함할 수 있다. 위의 조합들도 컴퓨터 판독가능 매체들의 범위 내에 또한 포함되어야 한다.
또한, 다양한 컴퓨터 시스템 컴포넌트에 도달시, 컴퓨터 실행가능 명령 또는 데이터 구조 형태의 프로그램 코드 수단은 송신 매체에서 컴퓨터 저장 매체(디바이스)로 (또는 그 반대로) 자동적으로 전송될 수 있다. 예를 들면, 데이터 링크 또는 네트워크를 통해 수신된 컴퓨터 실행가능 명령 또는 데이터 구조는 네트워크 인터페이스 모듈(예를 들면, "NIC") 내의 RAM에 버퍼링될 수 있고, 그 다음 종국에는 컴퓨터 시스템에서 거의 불휘발성의 컴퓨터 저장 매체(디바이스) 및/또는 컴퓨터 시스템의 RAM에 전송될 수 있다. 따라서, 송신 매체를 또한 활용하는 (또는 영구적으로 활용하는) 컴퓨터 시스템에 컴퓨터 저장 매체(디바이스)가 포함될 수 있음을 이해해야만 한다.
컴퓨터 실행가능 명령은, 예를 들면, 프로세서에서의 실행시, 일반적인 목적의 컴퓨터, 특수한 목적의 컴퓨터, 또는 특수한 목적의 프로세싱 디바이스로 하여금, 소정의 기능 또는 기능들의 그룹을 수행하게 하는 데이터 및 명령을 포함한다. 컴퓨터 실행가능 명령은, 예를 들면, 2진수, 어셈블리 언어와 같은 중간 포맷의 명령, 또는 심지어는 소스 코드일 수도 있다.
비록 본 주제가 구조적 특징들 및/또는 방법론적 작용들에 특정한 언어로 설명되었으나, 첨부된 청구항들에서 정의된 주제가 위에서 설명된 특정 특징들 또는 작용들로 반드시 제한되는 것은 아님이 이해될 것이다. 오히려, 설명된 특징들 및 작용들은 청구항을 구현하는 예시적인 형태로서 개시된다.
퍼스널 컴퓨터, 데스크탑 컴퓨터, 랩탑 컴퓨터, 메시지 프로세서, 핸드헬드 디바이스, 멀티 프로세서 시스템, 마이크로프로세서 기반 또는 프로그램 가능 컨슈머 전자장치, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 이동 전화기, PDA, 태블릿, 라우터, 스위치 등을 포함하는 많은 타입의 컴퓨터 시스템 구성을 갖는 네트워크 컴퓨팅 환경에서 본 발명이 실시될 수도 있음을 당업자는 알 것이다. 본 발명은, 네트워크를 통해 (유선 데이터 링크, 무선 데이터 링크, 또는 유선 및 무선 데이터 링크 중 어느 하나에 의해) 연결된 로컬 및 원격 컴퓨터 시스템이 함께 태스크를 수행하는 분산 시스템 환경에서 또한 실시될 수도 있다. 분산 시스템 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 디바이스 양자에 위치될 수도 있다.
도 2는 도 1에 도시된 클러스터(100)와 동일한 노드를 포함하는 클러스터(200)를 예시한다. 클러스터(200)에서의 각 노드는, (노드(102 및 103)로부터의 백업을 개시하는 것이 소망되는 것과 같이 백업 어플리케이션과 스토리지 공급자는 이들 노드 상에 여전히 존재하지만) 명확성을 위해 백업 어플리케이션(124 및 134)과 스토리지 공급자(123 및 133)가 도시되지 않은 점을 제외하면 동일한 컴포넌트를 포함한다. 또한, 각 노드는 클러스터 서비스 및 클러스터 라이터를 포함하는 것으로 도시된다. 이들 클러스터 서비스와 클러스터 라이터는, 볼륨(104a)을 사용하는 클러스터(200)에서의 모든 어플리케이션들에 대해 어플리케이션 일관된 볼륨(104a)의 스냅샷이 생성되는 것을 가능하게 한다. 클러스터 서비스와 클러스터 라이터는 종래 기술의 백업 시스템이 클러스터 전체의 어플리케이션에 일관된 스냅샷을 생성하는 것을 가능하게 하기 위해 도 1에서 설명된 종래 기술의 백업 시스템 내에서 실행하도록 구성된다.
도 1을 참조로 설명된 바와 같이, 백업 어플리케이션(114)은 코디네이터(110)와 통신하는 것에 의해 볼륨(104a)의 스냅샷의 생성을 개시할 수 있다. 이 통신은 스냅샷을 생성하기 위해 스토리지 공급자(113)가 사용되어야 함을 특정하는 것을 포함한다. 백업 어플리케이션(114)으로부터의 요청에 응답하여, 코디네이터(110)는 프리즈 커맨드를 라이터(111a 및 112a)뿐만 아니라 (라이터(111a 및 112a)와 같이, 클러스터 라이터(201)가 라이터로서 코디네이터(110)에 등록되기 때문에) 클러스터 라이터(201)로도 전송한다.
라이터(111a 및 112a)는 도 1에 관해 위에서 설명된 바와 같이 프리즈 커맨드에 대응한다. 그러나, 프리즈 커맨드에 응답하여, 클러스터 라이터(201)는 노드(101) 상의 클러스터 서비스(204)와 통신하고 그 다음 클러스터의 다른 노드 상의 클러스터 서비스와 통신하게 된다. 따라서, 노드(101) 상에서의 프리즈 커맨드의 발생의 통지가 클러스터 서비스(204)에 의해 클러스터 서비스(205 및 206)로 브로드캐스팅된다.
클러스터 서비스(204)에게 프리즈 커맨드를 통지한 후, 클러스터 라이터(201)가 클러스터 서비스(205 및 206)의 각각으로부터의 응답을 수신할 때까지 클러스터 라이터(201)는 대기한다(즉, 프리즈 커맨드로부터 복귀하지 않는다). 프리즈 커맨드에 응답하는 것을 대기함으로써, 클러스터 라이터(201)는 코디네이터(110)가 백업 프로세스로 진행하는 것을 방지한다.
클러스터 서비스가 클러스터의 다른 노드 상에서의 프리즈 커맨드의 발생의 통지를 수신하면, 클러스터 서비스는 대응하는 노드 상의 스냅샷의 생성을 개시하도록 백업 어플리케이션처럼 작동한다. 예를 들면, 클러스터 서비스(205)가 클러스터 서비스(204)로부터 통지를 수신하면, 클러스터 서비스(205)는 노드(102) 상에서의 스냅샷의 생성을 개시하도록 코디네이터(120)와 통신할 것이다. 클러스터 서비스(205)는, 노드(102) 상에서 스냅샷을 생성하기 위해 헬퍼 공급자(223)가 사용되어야 한다는 것을 특정한다. 마찬가지로, 클러스터 서비스(206)가 클러스터 서비스(204)로부터 통지를 수신하면, 클러스터 서비스(206)는 노드(103) 상에서의 스냅샷의 생성을 개시하도록 코디네이터(130)와 통신할 것이다. 클러스터 서비스(206)는, 노드(103) 상에서 스냅샷을 생성하기 위해 헬퍼 공급자(233)가 사용되어야 한다는 것을 특정한다.
결과적으로, 코디네이터(120 및 130)는 노드 상의 각각의 라이터에 프리즈 커맨드를 전송함으로써 노드(102 및 103) 상에서의 스냅샷의 생성을 각각 시작한다. 예를 들면, 코디네이터(120)는 프리즈 커맨드를 라이터(121a 및 122a)뿐만 아니라 클러스터 라이터(202)로 전송하고, 한편 코디네이터(130)는 프리즈 커맨드를 라이터(131a 및 132a)뿐만 아니라 클러스터 라이터(2030로 전송한다. 도 1에 관해 설명된 바와 같이, 프리즈 커맨드는 각각의 라이터로 하여금, 예컨대 각 라이터의 인메모리 데이터를 유지시키는 것에 의해, 스냅샷의 생성을 준비하게 한다. 클러스터 라이터(202 및 203)는 프리즈 커맨드로부터 단순히 복귀한다.
노드(102 및 103) 상의 라이터가 프리즈 커맨드로부터 복귀한 후, 코디네이터(120 및 130)는 플러시 및 홀드 커맨드를 볼륨(104a)으로 전송한다. 이들 플러시 및 홀드 커맨드가 프로세싱되는 방법은 본 발명에 대한 본질이 아니다. 본 발명의 목적을 위해, (플러시 및 홀드 커맨드가 아래에서 설명된 바와 같이 코디네이터(110)에 의해 볼륨(104a)으로 전송될 것이기 때문에) 코디네이터(120 및 130)로부터의 플러시 및 홀드 커맨드가 궁극적으로 볼륨(104a)으로 경로지정되지 않아야 함이 이해되어야만 한다.
다음에, (스냅샷을 개시하기 위한 각각의 요청에서 헬퍼 공급자(223 및 233)가 특정되었기 때문에) 코디네이터(120 및 130)는 커밋 커맨드를 헬퍼 공급자(223 및 233)로 각각 전송한다. 헬퍼 공급자(223 및 233)는 차단에 의해 커밋 커맨드에 응답한다. 다시 말하면, 헬퍼 공급자(223 및 233)는, 최초, 코디네이터(120 및 130)에 응답하지 않는다. 추가적으로, 헬퍼 공급자(223 및 233)는 (스토리지 공급자가 커밋 커맨드를 전송하면 행해지는 것과 같이) 볼륨(104a)의 스냅샷을 생성하지 않는다.
대신, 헬퍼 공급자(223 및 233)는 클러스터 서비스(205 및 206)에게 각각 커밋 커맨드를 통지한다. 응답으로, 클러스터 서비스(205 및 206)의 각각은 클러스터 라이터(201)에게 통지한다. 이들 통지는 클러스터 라이터(201)에게, 노드(102 및 103)의 각각에서 프리즈 커맨드가 성공적으로 완료되었고 따라서 노드(102 및 103) 상의 어플리케이션이 그들의 데이터를 볼륨(104)에 성공적으로 유지하였음을 통지한다.
헬퍼 공급자(223 및 233)가 커밋 커맨드를 차단하기 때문에, 코디네이터(120 및 130)는 릴리스 또는 쏘 커맨드를 볼륨(104a) 또는 각각의 라이터로 전송하지 않을 것이고 따라서 스냅샷이 노드(101) 상에서 생성될 때까지 라이터가 볼륨(104a)을 수정하는 것을 방지한다.
클러스터 라이터(201)가 클러스터 라이터(202 및 203)로부터 통지를 수신하면, 클러스터 라이터(21)는 프리즈 커맨드로부터 복귀한다(즉, 프리즈 커맨드에 응답하여 클러스터 라이터(201)가 프로세싱을 완료했음을 코디네이터(110)에게 통지한다). 그 다음, 코디네이터(110)는 플러시 및 홀드 커맨드와 커밋 커맨드로 진행하고, 위에서 설명된 바와 같이, 스토리지 공급자(113)가 볼륨(104a)의 스냅샷을 생성하는 것으로 귀결된다. 이 스냅샷은, 스냅샷이 생성되기 이전에 각각의 어플리케이션이 자신의 데이터를 볼륨(104a)에 유지했기 때문에 볼륨(104a)을 사용하는 클러스터에서의 모든 어플리케이션에 대해 어플리케이션 일관적이다.
도 3은 다른 클러스터(300)를 묘사한다. 클러스터(300)는, 클러스터 전체의 어플리케이션에 일관된 스냅샷을 생성하기 위해 본 발명에 의해 활용되는 백업 프로세스를 더 잘 설명하기 위해 참조될 단순화된 클러스터(즉, 클러스터(200)에 도시된 컴포넌트의 서브셋)이다. 다음의 번호가 붙은 단계는 도 3의 번호가 붙은 화살표와 대응한다.
(1) 백업 어플리케이션(314)은, 코디네이터(310)가 스토리지 공급자(313)를 사용하여 볼륨(304a)의 스냅샷의 생성을 개시할 것을 요청한다.
(2) 코디네이터(310)는 프리즈 커맨드를 라이터(311a) 및 클러스터 라이터(351)로 전송한다. 라이터(311a)는 프리즈 커맨드를 프로세싱하고 어떤 시점에서 복귀한다.
(3) 클러스터 라이터(351)는 클러스터 서비스(361)에게 노드(301) 상의 프리즈 커맨드를 통지하고 차단된다.
(4) 클러스터 서비스(361)는 클러스터 서비스(362)에게 프리즈 커맨드를 통지한다.
(5) 백업 어플리케이션(362)은, 코디네이터(320)가 헬퍼 공급자(323)를 사용하여 볼륨(304a)의 스냅샷의 생성을 개시할 것을 요청한다.
(6) 코디네이터(320)는 프리즈 커맨드를 라이터(311a) 및 클러스터 라이터(352)로 전송한다. 라이터(321a)는 프리즈 커맨드를 프로세싱하고 어떤 시점에서 복귀한다. 클러스터 라이터(352)는 프리즈 커맨드로부터 단순히 복귀한다.
(7) 코디네이터(320)는 플러시 및 홀드 커맨드를 볼륨(304a)으로 전송한다. 플러시 및 홀드 커맨드는 볼륨(304a)으로 전송되지 않고 프로세싱된다.
(8) 코디네이터(320)는 커밋 커맨드를 헬퍼 공급자(323)로 전송한다.
(9) 헬퍼 공급자(323)는 커밋 커맨드의 통지를 클러스터 서비스(362)로 전송하고 차단된다.
(10) 클러스터 서비스(362)는 클러스터 라이터(351)에게 커밋 커맨드를 통지한다.
(11) 클러스터 라이터(351)는 프리즈 커맨드로부터 복귀한다.
(12) 코디네이터(310)는 플러시 및 홀드 커맨드를 볼륨(304a)으로 전송한다. 볼륨(304a)은 플러시 및 홀드 커맨드를 프로세싱하고 복귀한다.
(13) 코디네이터(310)는 커밋 커맨드를 스토리지 공급자(313)로 전송한다.
(14) 스토리지 공급자(313)는 볼륨(304a)의 스냅샷을 생성한다.
도 2로 다시 돌아가면, 볼륨(104a)의 스냅샷이 생성된 후, 백업 프로세스를 종료하기 위해 다양한 추가적인 단계가 수행된다. 스냅샷이 생성된 후, 스냅샷이 파이널라이징되기(예를 들면, 테이프에 기록되기) 이전에 생성된 스냅샷에 대한 몇몇 최소 프로세싱을 라이터가 수행하는 것을 허용하기 위해, 코디네이터(110)는 라이터의 적어도 일부(예를 들면, 하이퍼바이저 라이터 및 클러스터 라이터)로 포스트 스냅샷 커맨드를 전송한다. 일반적으로 이 최소 프로세싱은 어플리케이션 소유의 데이터에 대한 수정(예를 들면, 부분적으로 커밋된 트랜잭션을 롤링백)으로 제한된다.
클러스터 라이터(201)가 포스트 스냅샷 커맨드를 수신하면, 클러스터 라이터(201)는 클러스터 서비스(204)에게 통지하고, 그 다음 클러스터 서비스(204)는 포스트 스냅샷 커맨드의 통지를 클러스터 서비스(205 및 206)로 전송한다. 그 다음, 클러스터 라이터(201)는, 포스트 스냅샷 커맨드로부터 복귀하기 이전에 클러스터 서비스(205 및 206) 각각으로부터 응답이 수신되기까지 대기한다. 이 의미에서, 클러스터 라이터(201)는 프리즈 커맨드를 처리하는 것과 아주 많이 비슷한 방식으로 (즉, 차단에 의해) 포스트 스냅샷 커맨드를 처리한다.
포스트 스냅샷 커맨드를 다른 노드에게 통지하는 이유는 다른 노드 상의 라이터가 스냅샷에 대해 포스트 스냅샷 프로세싱을 수행하는 것을 허용하도록 하는 것이다. 실제 스냅샷이 노드(101) 상에 위치되기 때문에, 가상 스냅샷은 노드(102 및 103)의 각각 상에서 생성된다. 2010년 12월 17일자로 출원되고 발명의 명칭이 "BACKUP AND RESTORE OF DATA FROM ANY CLUSTER NODE"인 공동 소유의 미국 특허출원 제12/971,981호는, 포스트 스냅샷 프로세싱을 수행하기 위해 가상 스냅샷이 어떻게 사용되는지를 설명한다.
포스트 스냅샷 커맨드의 통지를 수신하면, 클러스터 서비스(205 및 206)는 헬퍼 공급자(223 및 233)에게 각각 통지한다. 이 시점까지, 헬퍼 공급자(223 및 233)는 커밋 커맨드를 차단하고 있다. 포스트 스냅샷 커맨드가 노드(101) 상에서 전송되었다는 통지는 헬퍼 공급자(223 및 233)에게 그들이 커밋 커맨드로부터 복귀할 수 있다는 것을 나타낸다.
헬퍼 공급자(223 및 233)가 커밋 커맨드로부터 복귀하면, 코디네이터(120 및 130) 각각은 포스트 스냅샷 커맨드를 각 노드 상의 라이터의 적어도 몇몇에게 전송한다. 이와 같이, 각각의 노드 상의 각각의 라이터에 대해, 생성된 스냅샷에 대한 추가적인 프로세싱을 수행할 기회가 주어진다. 프리즈 커맨드의 경우에서와 같이, 클러스터 라이터(202 및 203)는 또한 포스트 스냅샷 커맨드를 수신하고 단순히 복귀한다.
노드(102 및 103) 상의 각각의 라이터가 포스트 스냅샷 커맨드로부터 복귀하면, 코디네이터(120 및 130)는 (예를 들면, 릴리스 및 쏘 커맨드를 전송함으로써) 백업 프로세스를 종료할 수 있고, 그 다음 클러스터 서비스(205 및 206)에게 스냅샷이 완료되었음을 각각 통지한다. 클러스터 서비스(205 및 206)는 그들이 노드(102 및 103) 상에서 백업 어플리케이션으로서 동작하기 (즉, 그들이 백업 프로세스를 개시하기) 때문에 이 통지를 수신한다. 그 다음, 클러스터 서비스(205 및 206)는 클러스터 라이터(201)에게 노드(102 및 103) 상에서의 백업 프로세스의 완료를 통지한다.
클러스터 라이터(201)가 다른 노드의 각각 상에서의 백업 프로세스의 완료의 통지를 수신하면, 클러스터 라이터(201)는 포스트 스냅샷 커맨드로부터 복귀하여 (예를 들면, 릴리스 및 쏘 커맨드를 전송함으로써) 코디네이터(110)가 노드(101) 상에서 백업 프로세스를 종료하는 것을 허용한다. 그 다음, 코디네이터(110)는 스냅샷이 성공적으로 생성되었음을 백업 어플리케이션(114)에게 통지한다. 그 다음, 백업 어플리케이션(114)은 스냅샷에 대해 소망되는 것은 무엇이든 행할 수 있다(예를 들면, 스냅샷을 테이프에 복제한다).
도 3과 마찬가지로, 도 4는 클러스터(300)를 묘사하며 포스트 스냅샷 프로세싱을 수행하는 단계를 더 잘 설명하기 위해 참조될 것이다. 다음의 번호가 붙은 단계는 도 3의 단계 1-13이 수행된 이후 수행될 수 있다.
(1) 코디네이터(310)는 포스트 스냅샷 커맨드를 라이터(311a) 및 클러스터 라이터(351)로 전송한다. 라이터(311a)는 포스트 스냅샷 커맨드를 프로세싱하고 어떤 시점에서 복귀한다.
(2) 클러스터 라이터(351)는 클러스터 서비스(361)에게 포스트 스냅샷 커맨드를 통지하고 차단된다.
(3) 클러스터 서비스(361)는 클러스터 서비스(362)에게 포스트 스냅샷 커맨드를 통지한다.
(4) 클러스터 서비스(362)는 헬퍼 공급자(323)에게 포스트 스냅샷 커맨드가 노드(301) 상의 클러스터 라이터(351)에 의해 수신되었음을 통지한다.
(5) 헬퍼 공급자(323)는 커밋 커맨드로부터 복귀한다.
(6) 코디네이터(320)는 포스트 스냅샷 커맨드를 라이터(321a) 및 클러스터 라이터(352)로 전송한다. 라이터(321a)는 포스트 스냅샷 커맨드를 프로세싱하고 어떤 시점에서 복귀한다. 클러스터 라이터(352)는 단순히 복귀한다.
(7) 각각의 라이터가 포스트 스냅샷 커맨드로부터 복귀하면, 코디네이터(320)는 (노드(302)에 대한 백업을 요청했던) 클러스터 서비스(362)에게 스냅샷이 완료되었음을 통지한다.
(8) 클러스터 서비스(362)는 클러스터 라이터(351)에게 노드(302) 상의 백업 프로세스의 완료를 통지한다.
(9) 클러스터 라이터(351)는 포스트 스냅샷 커맨드로부터 복귀한다.
(10) 코디네이터(110)는 스냅샷이 성공적으로 생성되었음을 백업 어플리케이션(114)에게 통지한다.
프리즈 및 포스트 스냅샷 커맨드의 발생을 다른 노드 상의 클러스터 라이터로 전달하기 위해 한 노드 상의 클러스터 라이터를 사용하는 이 프로세스에 의해 알 수 있는 바와 같이, 이들 다른 노드 상의 라이터는 대응하는 어플리케이션의 데이터를 이들 다른 노드 상에 유지할 수 있다. 결과는, 하나의 노드 상에서 생성된 스냅샷이, 백업이 개시되었던 노드 상의 어플리케이션뿐만아니라, 클러스터의 임의의 노드 상의, 백업되고 있는 볼륨을 사용하는 모든 어플리케이션에 대해서도 어플리케이션 일관성을 갖는다는 것이다.
또한, 이 프로세스는, 백업 시스템의 기본 제어 플로우를 수정하지 않고도, 도 1에서 설명된 종래 기술의 백업 시스템이 이들 클러스터 전체의 어플리케이션에 일관된 스냅샷을 생성하도록 사용되는 것을 가능하게 한다. 다시 말하면, 각각의 노드 상의 코디네이터는 본 발명을 구현하기 위해 수정될 필요가 없다. 클러스터 라이터 및 헬퍼 공급자는, 코디네이터로부터의, 클러스터 전체의 어플리케이션에 일관된 스냅샷을 생성하기 위해 수행된 추가적인 단계를 불명확하게 한다(즉, 코디네이터에 대해, 클러스터 라이터는 라이터인 것으로 나타나고, 헬퍼 공급자는 스토리지 공급자인 것으로 나타난다).
도 5는 클러스터의 다수의 노드 상의 어플리케이션에 의해 사용된 공유 볼륨의 스냅샷의 생성을 예시하기 위한 예시적인 방법(500)의 흐름도를 예시한다. 방법(500)은 도 2의 클러스터(200)에 관해 설명될 것이다.
방법(500)은, 제 1의 노드의 백업 코디네이터에서, 백업 어플리케이션으로부터, 요청을 수신하는 액트(501)를 포함한다. 그 요청은, 제 1의 노드 상의 적어도 하나의 어플리케이션에 의해 그리고 클러스터에서의 적어도 하나의 다른 노드 상의 적어도 하나의 어플리케이션에 의해 사용되는 공유 볼륨의 스냅샷이 생성되어야 함을 요청한다. 제 1의 노드 상의 그리고 적어도 하나의 다른 노드 상의 적어도 하나의 어플리케이션의 각각은 라이터를 포함한다. 제 1의 노드 및 적어도 하나의 다른 노드의 각각은 클러스터 서비스 및 클러스터 라이터를 또한 포함한다. 예를 들면, 코디네이터(110)는, 볼륨(104a)의 스냅샷이 생성되어야 한다고 요청하는 백업 어플리케이션(114)으로부터의 요청을 수신할 수 있다.
방법(500)은, 백업 코디네이터에 의해, 제 1의 노드 상의 각각의 라이터 및 클러스터 라이터로 프리즈 커맨드를 전송하는 액트(502)를 포함한다. 프리즈 커맨드는 제 1의 노드 상의 각각의 라이터와 클러스터 라이터에게 어플리케이션 데이터를 공유 볼륨에 유지하도록 명령한다. 예를 들면, 코디네이터(110)는 라이터(111a 및 112a)뿐만 아니라 클러스터 라이터(201)로 프리즈 커맨드를 전송할 수 있다.
방법(500)은, 제 1의 노드 상의 클러스터 라이터에 의해, 제 1의 노드 상의 클러스터 서비스로 프리즈 커맨드의 통지를 전송하는 액트(503)를 포함한다. 예를 들면, 클러스터 라이터(201)는 클러스터 서비스(204)에게 프리즈 커맨드를 통지할 수 있다.
방법(500)은, 제 1의 노드 상의 클러스터 서비스에 의해, 적어도 하나의 다른 노드의 각각 상의 클러스터 서비스로 프리즈 커맨드의 통지를 전송하는 액트(504)를 포함한다. 통지는, 적어도 하나의 다른 노드의 각각 상의 클러스터 서비스에게 적어도 하나의 다른 노드 각각 상에서의 공유 볼륨의 백업 프로세스를 개시하도록 명령한다. 예를 들면, 클러스터 서비스(204)는 클러스터 서비스(205 및 206)로 통지를 전송할 수 있다.
방법(500)은, 제 1의 노드 상의 클러스터 라이터에 의해, 프리즈 커맨드로부터 복귀하기 이전에 적어도 하나의 다른 노드의 각각 상의 클러스터 서비스로부터의 통지를 대기하는 액트(505)를 포함한다. 이 통지는, 대응하는 노드 상의 각각의 라이터가 대응하는 어플리케이션 데이터를 공유 볼륨에 유지했음을 나타낸다. 예를 들면, 클러스터 라이터(201)는, 클러스터 서비스(205) 및 클러스터 서비스(206)가 클러스터 라이터(201)에게 라이터(121a 및 122a) 및 라이터(131a 및 132a)가 각각 그들의 대응하는 어플리케이션 데이터를 볼륨(104a)에 유지했다는 것을 통지한다.
방법(500)은, 적어도 하나의 다른 노드의 각각 상의 클러스터 서비스로부터 통지를 수신하면, 제 1의 노드 상의 클러스터 라이터에 의해, 프리즈 커맨드로부터 복귀하는 액트(506)를 포함한다. 예를 들면, 클러스터 서비스(205 및 206)로부터 통지를 수신하면, 클러스터 라이터(201)는 프리즈 커맨드로부터 복귀할 수 있다.
방법(500)은, 제 1의 노드 상의 클러스터 라이터가 프리즈 커맨드로부터 복귀하면, 백업 코디네이터에 의해, 요청을 스토리지 공급자로 전송하는 액트(507)를 포함한다. 그 요청은 스토리지 공급자로 하여금 공유 볼륨의 스냅샷을 생성하게 하고, 스냅샷은 공유 볼륨을 사용하는, 적어도 하나의 다른 노드 및 제 1의 노드 상의 각각의 어플리케이션에 대해 어플리케이션 일관성을 갖는다. 예를 들면, 코디네이터(110)는 스토리지 공급자(113)가 볼륨(104a)의 스냅샷을 생성해야 한다고 요청할 수 있다.
도 6은, 공유 볼륨의 스냅샷의 생성이 클러스터의 다른 노드 상에서 개시되었다는 통지에 응답하기 위한 예시적인 방법(600)의 흐름도를 예시한다. 방법(600)은 도 2의 클러스터(200)에 관해 설명될 것이다.
방법(600)은, 제 1의 노드 상의 클러스터 서비스에서, 공유 볼륨의 백업 프로세스가 클러스터의 제 2의 노드 상에서 개시되었다는 통지를 수신하는 액트(601)를 포함한다. 공유 볼륨은 제 1 및 제 2의 노드 각각 상의 적어도 하나의 어플리케이션에 의해 사용된다. 그 통지는 제 2의 노드 상의 클러스터 서비스로부터 수신되고, 제 2의 노드 상의 클러스터 라이터에 의해 프리즈 커맨드가 수신되었음을 나타낸다. 예를 들면, 클러스터 서비스(205)는, 코디네이터(110)로부터, 백업 프로세스의 프리즈 커맨드를 클러스터 라이터(201)가 수신했음을 나타내는 통지를 클러스터 서비스(204)로부터 수신할 수 있다.
방법(600)은, 제 1의 노드 상의 클러스터 서비스에 의해, 제 1의 노드 상의 백업 코디네이터로 요청을 전송하는 액트(602)를 포함한다. 그 요청은 공유 볼륨의 스냅샷이 생성되어야 한다고 요청한다. 예를 들면, 클러스터 서비스(205)는, 볼륨(104a)의 스냅샷이 노드(102) 상에서 생성되어야 한다고 요청하기 위한 요청을 코디네이터(120)로 전송할 수 있다.
방법(600)은, 백업 코디네이터에 의해, 제 1의 노드 상의 적어도 하나의 어플리케이션의 라이터 및 클러스터 라이터로 프리즈 커맨드를 전송하는 액트(603)를 포함한다. 프리즈 커맨드는, 클러스터 라이터 및 적어도 하나의 라이터에게 어플리케이션 데이터를 공유 볼륨에 유지하도록 명령한다. 예를 들면, 코디네이터(120)는 라이터(121a 및 122a)뿐만 아니라 클러스터 라이터(202)로 프리즈 커맨드를 전송할 수 있다.
방법(600)은, 클러스터 라이터 및 적어도 하나의 라이터가 프리즈 커맨드로부터 복귀한 후, 백업 코디네이터에 의해, 제 1의 노드 상의 헬퍼 공급자로 커밋 커맨드를 전송하는 액트(604)를 포함한다. 예를 들면, 코디네이터(120)는 커밋 커맨드를 헬퍼 공급자(223)로 전송할 수 있다.
방법(600)은, 제 1의 노드 상의 헬퍼 공급자에 의해, 제 1의 노드 상의 클러스터 서비스로 커밋 커맨드의 통지를 전송하는 액트(605)를 포함한다. 헬퍼 공급자는 커밋 커맨드를 차단한다. 예를 들면, 헬퍼 공급자(223)는 클러스터 서비스(205)에게 커밋 커맨드를 통지하고 그 다음 차단될 수 있다.
방법(600)은, 제 1의 노드 상의 클러스터 서비스에 의해, 커밋 커맨드가 수신되었다는 통지를 제 2의 노드 상의 클러스터 라이터로 전송하고, 이로써, 제 1의 노드 상의 각각의 라이터가 대응하는 어플리케이션의 데이터를 공유 볼륨에 유지하고 있음을 나타내는 액트(606)를 포함한다. 예를 들면, 클러스터 서비스(205)는, 라이터(121a 및 122a)가 그들의 어플리케이션 데이터를 볼륨(104a)에 유지했음을 나타내는 통지를 클러스터 라이터(21)로 전송할 수 있다.
본 발명은 본 발명의 취지 또는 본질적 특징으로부터 벗어나지 않으면서, 다른 특정한 형태로 구현될 수도 있다. 설명된 실시형태는 제한적인 것이 아니라 모든 관점에서 단지 예시로서 간주되어야 한다. 따라서, 본 발명의 범위는 앞서의 설명보다는 첨부된 특허청구범위에 의해 나타내어진다. 특허청구범위의 의미 및 등가적 범위 내에 있는 모든 변형예들은 특허청구범위 범위 내에 포괄되어야 한다.

Claims (15)

  1. 백업 어플리케이션, 백업 코디네이터, 적어도 하나의 어플리케이션, 스토리지 공급자, 클러스터 서비스, 및 클러스터 라이터를 포함하는, 클러스터의 제 1의 노드에서, 공유 볼륨을 사용하는 상기 클러스터의 하나 이상의 노드 상의 어플리케이션에 대해 어플리케이션 일관성을 갖는 상기 공유 볼륨의 스냅샷을 생성하는 방법으로서,
    백업 어플리케이션으로부터, 상기 제 1의 노드 상의 적어도 하나의 어플리케이션 및 상기 클러스터의 적어도 하나의 다른 노드 상의 적어도 하나의 어플리케이션에 의해 사용되는 공유 볼륨의 스냅샷이 생성되어야 한다고 요청하는 요청을 제 1의 노드 상의 백업 코디네이터에서 수신하는 단계 - 상기 제 1의 노드 및 상기 적어도 하나의 다른 노드 상의 상기 적어도 하나의 어플리케이션의 각각은 라이터를 포함하고, 상기 제 1의 노드 및 상기 적어도 하나의 다른 노드의 각각은 클러스터 라이터 및 클러스터 서비스를 또한 포함함 - 와,
    상기 백업 코디네이터에 의해, 상기 제 1의 노드 상의 각각의 라이터 및 상기 클러스터 라이터로 프리즈 커맨드(freeze command)를 전송하는 단계 - 상기 프리즈 커맨드는 상기 제 1의 노드 상의 각각의 라이터 및 상기 클러스터 라이터에게 어플리케이션 데이터를 상기 공유 볼륨에 유지하도록 명령함 - 와,
    상기 제 1의 노드 상의 상기 클러스터 라이터에 의해, 상기 프리즈 커맨드의 통지를 상기 제 1의 노드 상의 상기 클러스터 서비스로 전송하는 단계와,
    상기 제 1의 노드 상의 상기 클러스터 서비스에 의해, 상기 적어도 하나의 다른 노드의 각각 상의 상기 클러스터 서비스로 상기 프리즈 커맨드의 통지를 전송하는 단계 - 상기 통지는 상기 적어도 하나의 다른 노드의 각각 상의 상기 클러스터 서비스에게 상기 적어도 하나의 다른 노드의 각각 상에서 상기 공유 볼륨의 백업 프로세스를 개시하도록 명령함 - 와,
    상기 제 1의 노드 상의 상기 클러스터 라이터에 의해, 상기 프리즈 커맨드로부터 복귀하기 전에 상기 적어도 하나의 다른 노드의 각각 상의 상기 클러스터 서비스로부터의 통지를 대기하는 단계 - 상기 통지는 대응하는 노드 상의 각각의 라이터가 대응하는 어플리케이션 데이터를 상기 공유 볼륨에 유지했음을 나타냄 - 와,
    상기 적어도 하나의 다른 노드 각각 상의 상기 클러스터 서비스로부터 상기 통지를 수신하면, 상기 제 1의 노드 상의 상기 클러스터 라이터에 의해, 상기 프리즈 커맨드로부터 복귀하는 단계, 및
    상기 제 1의 노드 상의 상기 클러스터 라이터가 상기 프리즈 커맨드로부터 복귀하면, 상기 백업 코디네이터에 의해, 상기 스토리지 공급자로 하여금 상기 공유 볼륨의 스냅샷을 생성하게 하는 요청을 상기 스토리지 공급자로 전송하는 단계 - 상기 스냅샷은 상기 공유 볼륨을 사용하는 상기 적어도 하나의 다른 노드 및 상기 제 1의 노드 상의 각각의 어플리케이션에 대해 어플리케이션 일관성을 가짐 - 를 포함하는,
    공유 볼륨의 스냅샷을 생성하는 방법.
  2. 제 1 항에 있어서,
    상기 스토리지 공급자로 하여금 상기 공유 볼륨의 스냅샷을 생성하게 하는 상기 요청을 상기 스토리지 공급자에게 전송하기 전에, 상기 백업 코디네이터에 의해, 상기 공유 볼륨으로 플러시 및 홀드 커맨드(flush and hold command)를 전송하여, 상기 공유 볼륨으로 하여금 파일 시스템 메타데이터를 유지하게 하는 단계를 더 포함하는,
    공유 볼륨의 스냅샷을 생성하는 방법.
  3. 제 1 항에 있어서,
    상기 스냅샷이 생성된 이후, 상기 백업 코디네이터에 의해, 상기 제 1의 노드 상의 라이터 중 적어도 하나와 상기 클러스터 라이터로 포스트 스냅샷(post snapshot) 커맨드를 전송하는 단계, 및
    상기 제 1의 노드 상의 상기 클러스터 라이터에 의해, 상기 제 1의 노드 상의 상기 클러스터 서비스로 상기 포스트 스냅샷 커맨드의 통지를 전송하는 단계, 및
    상기 제 1의 노드 상의 상기 클러스터 서비스에 의해, 상기 적어도 하나의 다른 노드 각각 상의 상기 클러스터 서비스로 상기 포스트 스냅샷 커맨드의 통지를 전송하는 단계를 더 포함하는,
    공유 볼륨의 스냅샷을 생성하는 방법.
  4. 제 3 항에 있어서,
    상기 포스트 스냅샷 커맨드를 전송받은 상기 제 1의 노드 상의 상기 라이터 중 상기 적어도 하나는 하이퍼바이저(hypervisor) 어플리케이션의 라이터를 포함하는,
    공유 볼륨의 스냅샷을 생성하는 방법.
  5. 제 3 항에 있어서,
    상기 제 1의 노드 상의 상기 클러스터 라이터에 의해, 상기 적어도 하나의 다른 노드 각각 상의 상기 클러스터 서비스로부터의 통지를 대기하는 단계 - 상기 통지는 상기 백업 프로세스가 상기 적어도 하나의 다른 노드 각각 상에서 완료되었음을 나타냄 - , 및
    상기 제 1의 노드 상의 클러스터 라이터에 의해, 상기 적어도 하나의 다른 노드 각각 상의 상기 클러스터 서비스로부터 상기 백업 프로세스가 완료되었다는 상기 통지를 수신하는 단계를 더 포함하는,
    공유 볼륨의 스냅샷을 생성하는 방법.
  6. 제 5 항에 있어서,
    상기 적어도 하나의 다른 노드 각각 상의 상기 클러스터 서비스로부터 상기 백업 프로세스가 완료되었다는 상기 통지를 수신한 이후, 상기 제 1의 노드 상의 상기 클러스터 라이터에 의해, 상기 포스트 스냅샷 커맨드로부터 복귀하는 단계를 더 포함하는,
    공유 볼륨의 스냅샷을 생성하는 방법.
  7. 제 6 항에 있어서,
    상기 제 1의 노드 상의 상기 적어도 하나의 라이터 및 상기 클러스터 라이터가 상기 포스트 스냅샷 커맨드로부터 복귀한 이후, 상기 백업 코디네이터가 상기 백업 어플리케이션에게 상기 스냅샷이 성공적으로 완료되었음을 통지하는 단계를 더 포함하는,
    공유 볼륨의 스냅샷을 생성하는 방법.
  8. 백업 코디네이터, 적어도 하나의 어플리케이션, 헬퍼 공급자, 클러스터 서비스, 및 클러스터 라이터를 포함하는, 클러스터의 노드에서, 공유 볼륨의 백업 프로세스가 상기 클러스터의 다른 노드 상에서 개시되었다는 통지에 응답하는 방법으로서,
    제 1의 노드 상의 클러스터 서비스에서, 공유 볼륨의 백업 프로세스가 상기 클러스터의 제 2의 노드 상에서 개시되었다는 통지를 수신하는 단계 - 상기 공유 볼륨은 상기 제 1 및 제 2의 노드 각각 상의 적어도 하나의 어플리케이션에 의해 사용되고, 상기 통지는 상기 제 2의 노드 상의 클러스터 서비스로부터 수신되고 상기 제 2의 노드 상의 클러스터 라이터에 의해 프리즈 커맨드가 수신되었음을 나타냄 - 와,
    상기 제 1의 노드 상의 상기 클러스터 서비스에 의해, 상기 공유 볼륨의 스냅샷이 생성되어야 한다고 요청하는 요청을, 상기 제 1의 노드 상의 백업 코디네이터로 전송하는 단계,
    상기 백업 코디네이터에 의해, 상기 제 1의 노드 상의 상기 적어도 하나의 어플리케이션의 라이터 및 클러스터 라이터로 프리즈 커맨드를 전송하는 단계 - 상기 프리즈 커맨드는 상기 클러스터 라이터 및 상기 적어도 하나의 라이터에게 어플리케이션 데이터를 상기 공유 볼륨에 유지하도록 명령함 - 와,
    상기 클러스터 라이터와 상기 적어도 하나의 라이터가 상기 프리즈 커맨드로부터 복귀한 후, 상기 백업 코디네이터에 의해, 상기 제 1의 노드 상의 헬퍼 공급자로 커밋 커맨드를 전송하는 단계,
    상기 제 1의 노드 상의 상기 헬퍼 공급자에 의해, 상기 제 1의 노드 상의 상기 클러스터 서비스로 상기 커밋 커맨드의 통지를 전송하는 단계 - 상기 헬퍼 공급자는 상기 커밋 커맨드를 차단함 - , 및
    상기 제 1의 노드 상의 상기 클러스터 서비스에 의해, 상기 커밋 커맨드가 수신되었다는 통지를 상기 제 2의 노드 상의 상기 클러스터 라이터로 전송하여, 상기 제 1의 노드 상의 각각의 라이터가 대응하는 어플리케이션의 데이터를 상기 공유 볼륨에 유지했음을 나타내는 단계를 포함하는,
    방법.
  9. 제 8 항에 있어서,
    상기 제 1의 노드 상의 상기 클러스터 서비스에 의해 전송된, 상기 공유 볼륨의 스냅샷이 생성되어야 한다는 상기 요청은 상기 스냅샷을 생성하기 위해 상기 헬퍼 라이터가 사용될 것이라는 것을 특정하는,
    방법.
  10. 제 8 항에 있어서,
    상기 제 1의 노드 상의 상기 클러스터 서비스에 의해, 상기 제 2의 노드 상의 상기 클러스터 라이터에 의해 포스트 스냅샷 커맨드가 수신되었다는 통지를, 상기 제 2의 노드 상의 상기 클러스터 서비스로부터 수신하는 단계를 더 포함하는,
    방법.
  11. 제 10 항에 있어서,
    상기 제 1의 노드 상의 상기 클러스터 서비스에 의해, 상기 제 2의 노드 상의 상기 클러스터 라이터에 의해 상기 포스트 스냅샷 커맨드가 수신되었다는 통지를 상기 헬퍼 공급자로 전송하는 단계를 더 포함하는,
    방법.
  12. 제 11 항에 있어서,
    상기 헬퍼 공급자에 의해, 상기 커밋 커맨드로부터 복귀하는 단계를 더 포함하는,
    방법.
  13. 제 12 항에 있어서,
    상기 제 1의 노드 상의 상기 적어도 하나의 라이터 및 상기 클러스터 라이터에 의해, 포스트 스냅샷 커맨드를 수신하는 단계, 및
    상기 적어도 하나의 라이터에 의해, 가상 스냅샷에 대한 포스트 프로세싱을 수행하는 단계를 더 포함하는,
    방법.
  14. 제 13 항에 있어서,
    상기 제 1의 노드 상의 상기 적어도 하나의 라이터 및 상기 클러스터 라이터가 상기 포스트 스냅샷 커맨드로부터 복귀한 후, 상기 스냅샷이 상기 제 1의 노드 상에서 성공적으로 생성되었음을 상기 백업 코디네이터가 상기 제 1의 노드 상의 상기 클러스터 서비스에게 통지하는 단계, 및
    상기 통지에 응답하여, 상기 스냅샷이 상기 제 1의 노드 상에서 성공적으로 완료되었음을 상기 제 1의 노드 상의 상기 클러스터 서비스가 상기 제 2의 노드 상의 클러스터 라이터에게 통지하여, 상기 제 2의 노드 상의 상기 클러스터 라이터에게 상기 적어도 하나의 라이터의 각각이 상기 제 1의 노드 상의 상기 포스트 스냅샷 커맨드를 프로세싱했음을 나타내는 단계를 더 포함하는,
    방법.
  15. 제 14 항에 있어서,
    상기 제 1의 노드 상의 상기 클러스터 라이터가 상기 제 1의 노드 상의 상기 가상 스냅샷을 삭제하는 단계를 더 포함하는,
    방법.
KR1020147016893A 2011-12-21 2012-12-12 공유 볼륨의 어플리케이션 일관된 스냅샷 기법 KR102006513B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/333,722 2011-12-21
US13/333,722 US8516210B2 (en) 2011-12-21 2011-12-21 Application consistent snapshots of a shared volume
PCT/US2012/069029 WO2013096022A1 (en) 2011-12-21 2012-12-12 Application consistent snapshots of a shared volume

Publications (2)

Publication Number Publication Date
KR20140106588A true KR20140106588A (ko) 2014-09-03
KR102006513B1 KR102006513B1 (ko) 2019-08-01

Family

ID=48495925

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147016893A KR102006513B1 (ko) 2011-12-21 2012-12-12 공유 볼륨의 어플리케이션 일관된 스냅샷 기법

Country Status (13)

Country Link
US (1) US8516210B2 (ko)
EP (1) EP2795476B1 (ko)
JP (1) JP6238309B2 (ko)
KR (1) KR102006513B1 (ko)
CN (1) CN103136073B (ko)
AU (1) AU2012355673B2 (ko)
BR (1) BR112014014791B1 (ko)
CA (1) CA2858981A1 (ko)
ES (1) ES2602143T3 (ko)
IN (1) IN2014CN04219A (ko)
MX (1) MX343276B (ko)
RU (1) RU2606052C2 (ko)
WO (1) WO2013096022A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230034005A (ko) 2021-09-02 2023-03-09 주식회사 나눔기술 엣지 클라우드 컴퓨팅 환경에서 멀티 클러스터 스냅샷 생성 및 복구 장치

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10417027B1 (en) 2012-03-30 2019-09-17 EMC IP Holding Company LLC Virtual machine proxy server for hyper-V image backup and recovery
US20140075170A1 (en) * 2012-09-12 2014-03-13 International Business Machines Corporation Automated firmware voting to enable multi-enclosure federated systems
US9740563B2 (en) * 2013-05-24 2017-08-22 International Business Machines Corporation Controlling software processes that are subject to communications restrictions by freezing and thawing a computational process in a virtual machine from writing data
US9430649B2 (en) * 2013-12-17 2016-08-30 Microsoft Technology Licensing, Llc Automatic strong identity generation for cluster nodes
US10936545B1 (en) * 2013-12-20 2021-03-02 EMC IP Holding Company LLC Automatic detection and backup of primary database instance in database cluster
US9411811B2 (en) 2014-01-06 2016-08-09 International Business Machines Corporation Coordinated point-in-time snapshots of multiple computing platforms
US9639428B1 (en) * 2014-03-28 2017-05-02 EMC IP Holding Company LLC Optimized backup of clusters with multiple proxy servers
US9411628B2 (en) * 2014-11-13 2016-08-09 Microsoft Technology Licensing, Llc Virtual machine cluster backup in a multi-node environment
US9778994B1 (en) * 2015-06-26 2017-10-03 EMC IP Holding Company LLC Parallel node backup for CSV
US10133617B2 (en) 2016-07-01 2018-11-20 Hewlett Packard Enterprise Development Lp Failure notifications in multi-node clusters
US10664357B1 (en) * 2016-12-20 2020-05-26 EMC IP Holding Company LLC Single agent backup for cloud networks
US10860427B1 (en) * 2016-12-23 2020-12-08 EMC IP Holding Company LLC Data protection in a large-scale cluster environment
CN106681866B (zh) * 2016-12-30 2019-10-18 成都华为技术有限公司 一种保证应用一致性的方法、装置及系统
CN110058962B (zh) * 2018-01-18 2023-05-23 伊姆西Ip控股有限责任公司 确定虚拟机快照的一致性级别的方法、设备和计算机程序产品
US10705927B2 (en) * 2018-07-19 2020-07-07 Hewlett Packard Enterprise Development Lp Freeze a volume of a replication set and unfreeze the volume based on at least one of a snapshot permit message, a snapshot abort message, and expiration of a timeout
US11442893B2 (en) 2018-08-29 2022-09-13 Red Hat, Inc. Database-aware snapshotting
US11461121B2 (en) 2019-07-26 2022-10-04 Red Hat, Inc. Guest-driven virtual machine snapshots
CN111209343B (zh) * 2020-01-22 2022-02-22 腾讯科技(深圳)有限公司 节点数据同步方法、装置、设备以及存储介质
US20220057947A1 (en) * 2020-08-20 2022-02-24 Portworx, Inc. Application aware provisioning for distributed systems
US20230273742A1 (en) * 2022-02-28 2023-08-31 Nebulon, Inc. Recovery of clustered storage systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060206677A1 (en) * 2003-07-03 2006-09-14 Electronics And Telecommunications Research Institute System and method of an efficient snapshot for shared large storage
US7809907B2 (en) * 2006-07-31 2010-10-05 Hitachi, Ltd. System and method for backup by splitting a copy pair and storing a snapshot
US20110252208A1 (en) * 2010-04-12 2011-10-13 Microsoft Corporation Express-full backup of a cluster shared virtual machine

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5857208A (en) 1996-05-31 1999-01-05 Emc Corporation Method and apparatus for performing point in time backup operation in a computer system
US6014669A (en) * 1997-10-01 2000-01-11 Sun Microsystems, Inc. Highly-available distributed cluster configuration database
US6154852A (en) 1998-06-10 2000-11-28 International Business Machines Corporation Method and apparatus for data backup and recovery
US6952741B1 (en) 1999-06-30 2005-10-04 Computer Sciences Corporation System and method for synchronizing copies of data in a computer system
US6708227B1 (en) 2000-04-24 2004-03-16 Microsoft Corporation Method and system for providing common coordination and administration of multiple snapshot providers
US7231461B2 (en) 2001-09-14 2007-06-12 International Business Machines Corporation Synchronization of group state data when rejoining a member to a primary-backup group in a clustered computer system
US7117324B2 (en) 2002-10-18 2006-10-03 International Business Machines Corporation Simultaneous data backup in a computer system
US6993603B2 (en) * 2002-12-09 2006-01-31 Microsoft Corporation Managed file system filter model and architecture
US20050097179A1 (en) * 2003-09-16 2005-05-05 Orme Gregory M. Spam prevention
GB0410540D0 (en) * 2004-05-12 2004-06-16 Ibm Write set boundary management for heterogeneous storage controllers in support of asynchronous update of secondary storage
US7475296B2 (en) * 2004-05-20 2009-01-06 International Business Machines Corporation Serviceability and test infrastructure for distributed systems
US7660879B2 (en) * 2004-05-20 2010-02-09 Ananthan Bala Srinivasan System and method for application deployment service
JP4325524B2 (ja) * 2004-09-29 2009-09-02 日本電気株式会社 スイッチ装置とシステム並びにバックアップ及びリストア方法とプログラム
US7779295B1 (en) 2005-06-28 2010-08-17 Symantec Operating Corporation Method and apparatus for creating and using persistent images of distributed shared memory segments and in-memory checkpoints
US7685459B1 (en) 2006-04-13 2010-03-23 Symantec Operating Corporation Parallel backup
US7441092B2 (en) 2006-04-20 2008-10-21 Microsoft Corporation Multi-client cluster-based backup and restore
US7587565B1 (en) * 2006-09-28 2009-09-08 Emc Corporation Generating automated and scheduled SAN copy sessions for ISB protocol systems
US7992036B2 (en) * 2007-01-22 2011-08-02 International Business Machines Corporation Apparatus, system, and method for volume-level restoration of cluster server data
US8307154B2 (en) * 2009-03-03 2012-11-06 Kove Corporation System and method for performing rapid data snapshots
US20110082832A1 (en) 2009-10-05 2011-04-07 Ramkumar Vadali Parallelized backup and restore process and system
JP5541149B2 (ja) * 2010-12-27 2014-07-09 富士通株式会社 スナップショット採取プログラム、サーバおよびスナップショット採取方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060206677A1 (en) * 2003-07-03 2006-09-14 Electronics And Telecommunications Research Institute System and method of an efficient snapshot for shared large storage
US7809907B2 (en) * 2006-07-31 2010-10-05 Hitachi, Ltd. System and method for backup by splitting a copy pair and storing a snapshot
US20110252208A1 (en) * 2010-04-12 2011-10-13 Microsoft Corporation Express-full backup of a cluster shared virtual machine

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230034005A (ko) 2021-09-02 2023-03-09 주식회사 나눔기술 엣지 클라우드 컴퓨팅 환경에서 멀티 클러스터 스냅샷 생성 및 복구 장치

Also Published As

Publication number Publication date
ES2602143T3 (es) 2017-02-17
CN103136073B (zh) 2015-11-25
WO2013096022A1 (en) 2013-06-27
RU2606052C2 (ru) 2017-01-10
JP6238309B2 (ja) 2017-11-29
US8516210B2 (en) 2013-08-20
AU2012355673B2 (en) 2017-09-07
EP2795476A4 (en) 2015-06-24
MX2014007678A (es) 2014-07-30
CN103136073A (zh) 2013-06-05
MX343276B (es) 2016-10-31
KR102006513B1 (ko) 2019-08-01
JP2015506507A (ja) 2015-03-02
AU2012355673A1 (en) 2014-07-10
IN2014CN04219A (ko) 2015-07-17
EP2795476B1 (en) 2016-08-10
EP2795476A1 (en) 2014-10-29
CA2858981A1 (en) 2013-06-27
US20130166863A1 (en) 2013-06-27
RU2014125081A (ru) 2015-12-27
BR112014014791B1 (pt) 2022-02-15
BR112014014791A2 (pt) 2017-06-13

Similar Documents

Publication Publication Date Title
KR102006513B1 (ko) 공유 볼륨의 어플리케이션 일관된 스냅샷 기법
US9031910B2 (en) System and method for maintaining a cluster setup
US8886609B2 (en) Backup and restore of data from any cluster node
US8473783B2 (en) Fault tolerance in distributed systems
US10831741B2 (en) Log-shipping data replication with early log record fetching
US20110010392A1 (en) Checkpoint-Free In Log Mining For Distributed Information Sharing
US20080016300A1 (en) Asynchronous replication with write concurrency grouping
WO2023197670A1 (zh) 一种分布式存储系统控制方法、装置及可读存储介质
CN105302676A (zh) 一种分布式文件系统的主备机制数据传输方法及装置
US10620851B1 (en) Dynamic memory buffering using containers
WO2020025049A1 (zh) 数据同步的方法、装置、数据库主机及存储介质
WO2020060620A1 (en) Storage segment server covered cache
WO2018157605A1 (zh) 一种集群文件系统中消息传输的方法及装置
US11093332B2 (en) Application checkpoint and recovery system
US10726047B2 (en) Early thread return with secondary event writes
US10853314B1 (en) Overlay snaps
US11334445B2 (en) Using non-volatile memory to improve the availability of an in-memory database
US11099948B2 (en) Persistent storage segment caching for data recovery
US20200097578A1 (en) Brokering persisted and unpersisted log records
CN117931830A (zh) 数据恢复方法、装置、电子设备、存储介质及程序产品
CN115774521A (zh) Pcie ssd的数据迁移方法、系统、设备及存储介质
Vishwanathan et al. A Study of Application Recovery in Mobile Environment Using Log Management Scheme

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right