KR101150127B1 - 데이터 보호 시스템에서 데이터를 보호하기 위한 아카이브루틴을 생성하는 방법, 시스템 및 장치 - Google Patents

데이터 보호 시스템에서 데이터를 보호하기 위한 아카이브루틴을 생성하는 방법, 시스템 및 장치 Download PDF

Info

Publication number
KR101150127B1
KR101150127B1 KR1020050066298A KR20050066298A KR101150127B1 KR 101150127 B1 KR101150127 B1 KR 101150127B1 KR 1020050066298 A KR1020050066298 A KR 1020050066298A KR 20050066298 A KR20050066298 A KR 20050066298A KR 101150127 B1 KR101150127 B1 KR 101150127B1
Authority
KR
South Korea
Prior art keywords
data
protection
user
block
archive
Prior art date
Application number
KR1020050066298A
Other languages
English (en)
Other versions
KR20060046539A (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 KR20060046539A publication Critical patent/KR20060046539A/ko
Application granted granted Critical
Publication of KR101150127B1 publication Critical patent/KR101150127B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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/1461Backup scheduling policy
    • 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/1448Management of the data involved in backup or backup restore
    • 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
    • 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/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

데이터의 백업을 아카이브하기 위한 아카이브 보호 계획을 생성하는 방법이 제공된다. 아카이브 데이터 보호 유형 및 아카이브 데이터 보호 기간의 표시가 수신된다. 아카이브 데이터 보호 유형 및 아카이브 데이터 보호 기간의 수신에 응답하여, 아카이브 스킴이 결정되고, 아카이브 스킴을 나타내는 아카이브 보호 계획이 생성된다.
Figure R1020050066298
데이터 보호 시스템, 데이터 백업, 아카이브, 보호, 복구

Description

데이터 보호 시스템에서 데이터를 보호하기 위한 아카이브 루틴을 생성하는 방법, 시스템 및 장치{METHOD, SYSTEM AND APPARATUS FOR CREATING AN ARCHIVE ROUTINE FOR PROTECTING DATA IN A DATA PROTECTION SYSTEM}
도 1a-2는 본 발명의 일 실시예에 따라 데이터의 보호 및 복구를 관리하는 데이터 보호 시스템의 블록도.
도 3은 본 발명의 일 실시예에 따라 생성 위치에 위치하는 보호 가능 객체들의 초기 선택 및 보호를 기술하는 데이터 보호 시스템의 흐름도.
도 4는 본 발명의 일 실시예에 따라 사용자 상호작용 및 선택을 위해 사용자 인터페이스에 공개되고 표시되는 복수의 명칭 공간 및 명칭 공간 요소의 블록도.
도 5는 본 발명의 일 실시예에 따른 명칭 공간 요소와 보호 가능 객체 사이의 맵핑을 나타내는 도면.
도 6은 본 발명의 일 실시예에 따라 명칭 공간의 타입과 명칭 공간 요소의 타입을 연관시키는 스키마의 블록도.
도 7은 본 발명의 일 실시예에 따라 논리 명칭 공간 요소를 물리적 보호 가능 객체로 맵핑하는 스키마의 블록도.
도 8은 본 발명의 일 실시예에 따라 데이터 보호 시스템에 의해 보호될 수 있는 보호 가능 객체를 포함하는 생성 위치의 블록도.
도 9a-9b는 본 발명의 일 실시예에 따른 생성 위치의 보호 가능 객체들 및 보호 가능 객체들의 보호 그룹으로의 그룹화를 나타내는 블록도.
도 10은 본 발명의 일 실시예에 따라 선택된 명칭 공간 요소, 맵핑된 보호 객체들 및 보호 그룹의 특성들을 포함하는 보호 그룹의 블록도.
도 11은 본 발명의 일 실시예에 따라 보호 그룹을 보호하기 위한 계획을 구성하는 구성 루틴의 흐름도.
도 12는 본 발명의 일 실시예에 따라 보호 그룹의 생성을 보다 상세히 기술하는 보호 그룹 생성 루틴을 나타내는 도면.
도 13은 본 발명의 일 실시예에 따라 둘 이상의 보호 그룹에 포함된 데이터 소스의 중복을 검출하는 중복 검출 루틴을 나타내는 도면.
도 14는 본 발명의 일 실시예에 따라 보호 그룹을 복구하는 복구 프로세스의 흐름을 나타내는 데이터 보호 시스템의 흐름도.
도 15는 본 발명의 일 실시예에 따라 저장 위치에 포함될 수 있는 복구 가능 객체들의 보다 상세한 뷰를 나타내는 블록도.
도 16은 본 발명의 일 실시예에 따라 저장 위치로부터 보호 객체들을 복구하는 복구 루틴을 나타내는 도면.
도 17-23a 및 24는 본 발명의 일 실시예에 따라 자동 발견 그룹을 생성하고 이용하는 흐름도.
도 23b는 본 발명의 일 실시예에 따라 보호 명칭 공간 요소의 리맵핑을 해결하기 위한 리맵핑 해결 루틴을 나타내는 도면.
도 25는 본 발명의 일 실시예에 따라 최상위 레벨 명칭 공간 요소들과 보호 가능 객체들 간의 맵핑을 초기에 발견하기 위한 초기 발견 루틴의 흐름도.
도 26은 본 발명의 일 실시예에 따라 명칭 공간 및 명칭 공간 요소와 생성 위치에 위치한 보호 가능 객체 간의 맵핑의 발견을 위한 스케쥴링된 발견 루틴의 흐름도.
도 27은 본 발명의 일 실시예에 따른 자동 발견 그룹 생성 루틴의 흐름도.
도 28 및 29는 본 발명의 일 실시예에 따른 자동 발견 그룹 갱신 루틴의 흐름도.
도 30은 본 발명의 일 실시예에 따라 보호 의도들을 데이터 세트 보호 계획으로 변환하는 흐름도.
도 31 및 32는 본 발명의 일 실시예에 따라 보호 의도들을 생성 위치에 위치하는 물리 객체의 보호를 위한 상세 계획으로 변환하는 의도 변환 루틴의 흐름도.
도 33은 본 발명의 일 실시예에 따라 보호 그룹에 대한 보호 계획을 생성하는 보호 계획 생성 루틴의 흐름도.
도 34는 본 발명의 일 실시예에 따라 준비 계획을 실행하는 준비 계획 실행 루틴의 흐름도.
도 35는 본 발명의 일 실시예에 따라 저장 위치에 위치하는 데이터의 사본을 검증하는 검증 루틴의 흐름도.
도 36은 본 발명의 일 실시예에 따라 저장 위치에 저장된 객체의 사본을 검증하는 스케쥴링된 검증 루틴의 흐름도.
도 37은 본 발명의 일 실시예에 따른 저장 위치의 저장 부분 및/또는 전체 저장 위치에 대한 상태 전이의 블록도.
도 38은 본 발명의 일 실시예에 따라 이전 의도 변환 루틴 동안에 발생하나 인터럽션에 후속하는 의도 변환 루틴을 재개하는 재개 루틴의 흐름도.
도 39는 본 발명의 일 실시예에 따라 데이터를 아카이브하기 위한 계획을 생성하는 아카이브 보호 계획 생성 루틴을 나타내는 도면.
도 40은 본 발명의 일 실시예에 따라 아카이브 스킴을 생성하는 데 사용될 수 있는 상이한 세대들의 예를 나타내는 테이블.
도 41은 본 발명의 일 실시예에 따라 데이터를 아카이브하기 위한 매체를 할당하는 흐름 루틴을 나타내는 도면.
도 42는 본 발명의 일 실시예에 따른 데이터 보호 시스템의 블록도.
도 43-44는 본 발명의 일 실시예에 따라 데이터 보호 시스템에 의해 수행되는 데이터 전송 모니터링 루틴의 흐름도.
도 45는 본 발명의 일 실시예에 따라 생성 위치에서 저장 위치로 변경 레코드의 전송을 재개하는 데이터 보호 시스템의 흐름도.
도 46 및 47은 본 발명의 일 실시예에 따라 사본을 검증하는 검증 루틴의 흐름도.
도 48a는 본 발명의 일 실시예에 따라 생성 위치에 의해 수신되는 명령을 처리하기 위한 명령 처리 루틴의 흐름도.
도 48b는 본 발명의 일 실시예에 따라 생성 위치에서 저장 위치로 변경 레코 드를 전송하는 데이터 전송 루틴의 흐름도.
도 48c는 본 발명의 일 실시예에 따라 데이터를 검증하는 검증 루틴의 흐름도.
도 49a는 본 발명의 일 실시예에 따라 저장 위치에 의해 수신되는 명령을 처리하는 명령 처리 루틴의 흐름도.
도 49b는 본 발명의 일 실시예에 따라 저장 위치에서 레코드를 수신하는 레코드 수신 루틴의 흐름도.
도 49c는 본 발명의 일 실시예에 따라 변경 레코드를 저장 위치의 사본에 적용하는 변경 레코드 적용 루틴의 흐름도.
도 50은 본 발명의 일 실시예에 따라 복수의 태스크를 포함하는 흐름도.
도 51은 본 발명의 일 실시예에 따라 태스크의 모니터링 및 메이크업 작업의 생성을 나타내는 흐름도.
도 52는 본 발명의 일 실시예에 따라 태스크 실패를 식별하고 그 태스크가 중요한 경우 메이크업 작업을 생성하는 메이크업 작업 루틴의 흐름도.
도 53은 본 발명의 일 실시예에 따라 사본 및 시간 버젼과 관련된 문제를 진단하고 문제가 검출된 경우 제안된 수정이 이루어진 보고서를 생성하는 흐름도.
도 54-56은 본 발명의 일 실시예에 따라 데이터 보호 시스템에서 데이터의 복사에 있어서의 잠재적인 문제점을 진단하는 복사 진단 루틴의 상세를 기술하는 흐름도.
도 57-58은 본 발명의 일 실시예에 따라 데이터 보호 시스템에 의해 생성되 는 시간 버젼에 있어서의 잠재적 문제를 진단하는 시간 버젼 진단 루틴을 기술하는 흐름도.
도 59는 본 발명의 일 실시예에 따라 데이터 보호 시스템에서 정보의 복구에 있어서의 잠재적 문제를 진단하는 복구 진단 루틴을 기술하는 흐름도.
<도면의 주요 부분에 대한 부호 설명>
101: 데이터 보호기
103: 생성 위치
105: 저장 위치
110: 데이터 보호기
111: 생성 위치
113: 저장 위치
120: 데이터 보호기
121: 생성 위치
123: 저장 위치
201: 데이터 보호기
203, 205, 207: 생성 위치
209, 211, 213: 저장 위치
301: 데이터 보호기
303: 사용자 인터페이스
305: 생성 위치
본 출원은 2004년 9월 9일자로 출원되었고, 본 명세서에 참고로 반영된 데이터 보호 시스템을 구성하는 방법, 시스템 및 장치라는 제목의 미국 특허 출원 제_호를 상호 참조하고,
본 출원은 2004년 9월 9일자로 출원되었고, 본 명세서에 참고로 반영된 데이터 보호 시스템에 대한 저장된 검색 및 자동 발견 그룹을 생성하는 방법, 시스템 및 장치라는 제목의 미국 특허 출원 제_호를 상호 참조하고,
본 출원은 2004년 9월 9일자로 출원되었고, 본 명세서에 참고로 반영된 데이터 보호 시스템에서 물리 데이터를 나타내는 논리 정보를 변환하는 방법, 시스템 및 장치라는 제목의 미국 특허 출원 제_호를 상호 참조하고,
본 출원은 2004년 9월 9일자로 출원되었고, 본 명세서에 참고로 반영된 데이터 보호 시스템에서 탄력적 데이터 전송을 제공하는 방법, 시스템 및 장치라는 제목의 미국 특허 출원 제_호를 상호 참조하고,
본 출원은 2004년 9월 9일자로 출원되었고, 본 명세서에 참고로 반영된 데이터 보호 시스템에서 강력하고 관리가 용이한 데이터 보호 애플리케이션을 생성하기 위한 아키텍쳐 모델을 생성하는 방법, 시스템 및 장치라는 제목의 미국 특허 출원 제_호를 상호 참조하고,
본 출원은 2004년 9월 9일자로 출원되었고, 본 명세서에 참고로 반영된 데이 터 보호 시스템에서 경보 합성을 제공하는 방법, 시스템 및 장치라는 제목의 미국 특허 출원 제_호를 상호 참조한다.
일반적으로 본 발명은 데이터 보호 및 데이터 보호 시스템에 관한 것으로서, 특히 데이터의 보호 및 복구를 제어하는 시스템, 방법 및 장치에 관한 것이다.
일반적으로, 대규모 컴퓨터 시스템은 종종 여러 컴퓨팅 장치 및 대량의 데이터를 포함한다. 이러한 시스템에서, 컴퓨팅 장치들은 종종 추가되거나 제거된다. 마찬가지로, 기존의 컴퓨팅 장치들은 종종 이 컴퓨팅 장치들에 저장된 데이터에, 쉐어, 교환 저장 그룹, 데이터베이스, 볼륨 및 기타 변경을 추가함으로써 변경된다. 이러한 컴퓨팅 시스템을 이용한 구성에 있어서, 일반적으로 종종 데이터의 백업을 생성함으로써 시스템에 저장된 데이터를 보호할 필요가 있다.
그러나, 시스템 보호 담당자는 종종 시스템에 대한 추가 및/또는 변경을 알지 못하며, 따라서 보호를 필요로 하는 새로운 자원을 알지 못한다. 예를 들어, 서버 등의 새로운 컴퓨팅 장치가 시스템에 추가되고, 시스템 보호 담당자가 이러한 추가를 알지 못하는 경우, 새로운 컴퓨팅 장치 상의 데이터 및 새로운 컴퓨팅 장치는 보호되지 못할 수 있다.
이러한 문제는 담당자가 물리적 레벨보다는 논리적 레벨로 시스템 내에서 조작하는 것을 허용하는 시스템에서 증가하고 있다. 담당자는 논리 레벨에서 조작하지만, 일반적으로 보호는 물리 레벨로 결정된다. 이러한 환경에서는, 논리 레벨의 조작이 백업 프로시져에 대한 변경을 요구할 때 문제가 발생한다. 예를 들어, 논 리 경로 //history/public/tools가 서버 히스토리 1 상의 쉐어를 지시하고, //history/public/tools를 이동시켜 서버 히스토리 2 상의 다른 쉐어를 지시하는 것으로 결정되고, 보호 담당자가 이러한 변경을 알지 못하는 경우, 새로운 쉐어는 보호되지 않는 반면에 구 쉐어가 계속 보호될 수 있다.
더욱이, 단일 논리 경로가 기초 데이터의 동기 사본을 포함하는 한 세트의 물리적 대체물을 나타낼 수 있을 때 문제가 커진다. 예를 들어, //history/docs는 history1 및 history2 상의 동일 쉐어를 지시할 수 있으며, 동일 기초 폴더들 중 하나만이 시스템에 의해 보호된다.
대규모 시스템 상의 자료에 대한 보호의 실패는 일반적으로 보호 담당자가 보호될 자원 및 데이터를 수동으로 식별하고 보호를 수동으로 식별해야 하기 때문에 발생한다. 시스템이 변경될 때, 담당자가 그 변경을 알지 못하면, 데이터 및 자원은 보호되지 못할 수 있다. 또한, 데이터의 백업을 물리 매체에 아카이브하기 위해 담당자는 보호를 위해 어떤 매체를 사용할 것인지, 매체를 언제/어떻게 회전시킬 것인지를 수동으로 결정해야 한다. 대규모 시스템에서, 수동으로 변경을 식별하고, 보호를 구성하고 아카이브를 유지하는 것은 복잡하고, 변경이 어렵다. 이러한 수동 식별, 보호의 구성 및 수정은 종종 보호를 필요로 하는 데이터 및 자원의 간과 및 보호 자체의 문제를 초래한다.
문제가 발생할 때, 일반적으로 담당자는 보호 시스템 자체로부터 정보를 제공 받지 않고도 문제를 상세 레벨에서 결정하고 문제를 해결할 방법에 대한 지식을 가질 수 있어야 한다.
따라서, 컴퓨터 시스템의 보호를 자동화하고, 시스템에 대한 변경이 발생한 때 이를 식별하고, 보호에 대한 문제가 발생한 때 사용자에게 지침을 제공하고, 담당자가 논리 명칭 공간에서 작업함으로써 보호를 생성하는 것을 허용하는 시스템, 방법, 및 장치가 필요하다.
데이터의 백업을 아카이브하기 위한 아카이브 보호 계획을 생성하는 방법이 제공된다. 아카이브 데이터 보호 유형 및 아카이브 데이터 보호 기간의 표시가 수신된다. 아카이브 데이터 보호 유형 및 아카이브 데이터 보호 기간의 수신에 응답하여, 아카이브 스킴이 결정되고, 아카이브 스킴을 나타내는 아카이브 보호 계획이 생성된다.
본 발명의 일 양태에 따르면, 데이터 저장 요구의 수신에 응답하여 아카이브 위치에서 데이터를 저장하는 복수의 매체를 관리하는 메카니즘이 제공된다. 이 메카니즘은 작업 배열 의도를 포함하는데, 이 작업 배열 의도는 데이터 저장 작업과 연관된 각각의 요구에 대해 복수의 매체로부터 매체의 동일 항목을 할당한다. 또한, 이 메카니즘은 자식 배열 의도를 포함하는데, 소정의 기간 동안 제1 자식에 후속하는 모든 자식들에 대해서는 제1 자식에 사용된 그 동일 매체가 복수의 매체로부터 할당된다.
본 발명의 전술한 양태들 및 많은 이점들은 첨부 도면을 참조한 아래의 상세한 설명으로부터 보다 쉽게 이해될 것이다.
도 1a는 본 발명의 일 실시예에 따라 데이터의 보호 및 복구를 관리하는 데이터 보호 시스템의 블록도이다. 본 명세서에서 설명되는 데이터 보호 시스템(100)의 실시예들은 시스템 관리자와 같은 사용자에게 데이터의 보호 및 복구를 쉽게 관리할 수 있는 능력을 제공한다. 일반적으로, 데이터 관리 및 보호는 생성 위치(103)에서 활성적으로 생성되고 수정되는 데이터에 필요하다. 이러한 데이터는 데이터의 복제 또는 사본으로 저장 위치(105)에 보호되고 저장된다. 저장 위치는 생성 위치로부터 원격 위치 및/또는 생성 위치와 같은 위치일 수 있다. 또한, 저장 위치는 상이한 저장 형태를 위한 다수의 위치를 포함할 수 있다. 예를 들어, 데이터의 사본은 한 위치에 유지될 수 있으며, 그 데이터의 아카이브는 제2 위치에 유지될 수 있다. 따라서, 저장 위치는 일반적으로 데이터가 저장되고 보호될 수 있는 위치의 임의의 조합 및/또는 타입을 기술한다.
본 명세서에서 설명되듯이, 데이터 보호 시스템(100)은 생성 위치(103) 및 저장 위치(105)와 통신하여 생성 위치(103)와 저장 위치(105) 간의 데이터의 보호 및 흐름을 모니터링하는 데이터 보호기(101)를 포함한다. 데이터 보호기(101)는 도 1a에 도시된 바와 같이 서버와 같은 단일 컴퓨팅 장치 상에 존재하거나 다수의 컴퓨팅 장치 상에 분산될 수 있다. 데이터 보호기(1010)는 생성 위치(103) 및/또는 저장 위치(105)와 같은 데이터 보호 시스템(100) 내의 상이한 컴퓨팅 장치들에 위치하는 에이전트들을 배치하고 통신하여 다수의 장치들 사이에서 데이터 보호의 분산 제어 및 관리를 가능하게 한다. 데이터 보호 시스템(100)에 의해 제공되는 데이터 보호의 타입들의 예는 시간 버젼(temporal version)의 복제, 전통적인 테이 프 또는 디스크와 같은 분리식 매체로의 아카이브 및 이러한 복제 및 아카이브의 조합을 포함하지만 이에 한하지는 않는다. 임의의 다른 보호 형태 및/또는 조합이 본 발명의 실시예에서 이용될 수 있으며 이러한 복제, 시간 버젼 및 아카이브는 예일 뿐이라는 것을 이해할 것이다.
도 1b는 데이터 보호 시스템(100)의 다른 실시예를 나타낸다. 구체적으로, 데이터 보호기(110)는 생성 위치(111)에 부분적으로 또는 전체적으로 상주할 수 있다. 이 실시예에서, 데이터 보호기(110)는 그 자신과 생성 위치(111) 간의 통신, 및 그 자신과 저장 위치(113) 간의 통신을 제공한다.
도 1c는 본 발명의 일 실시예에 따라 데이터를 보호하고 복구하는 데 사용되는 데이터 보호 시스템(100)의 또 다른 실시예를 나타낸다. 도 1c에 도시된 바와 같이, 데이터 보호기(120)는 저장 위치(123)에 부분적으로 또는 전체적으로 상주할 수 있다. 이 실시예에서, 데이터 보호기(120)는 그 자신과 저장 위치(123) 간의 통신 및 그 자신과 생성 위치(121) 간의 통신을 제공한다.
도 2는 본 발명의 일 실시예에 따라 데이터를 보호하고 복구하는 데이터 보호 시스템(200)의 다른 블록도이다. 데이터 보호 시스템(200)은 생성 위치 1(203), 생성 위치 2(205) 및 생성 위치 3(207)과 같은 다수의 생성 위치가 데이터 보호기(201)와 상호작용하여 생성 위치들에서 생성된 데이터의 사본 및/또는 시간 버젼을 저장할 수 있는 것으로 도시되어 있다. 데이터 보호기(201)는 생성 위치들(203, 205, 207)과 통신하고, 저장 위치 A(209), 저장 위치 B(211) 및 저장 위치 X(213)와 같은 각각의 저장 위치에서 생성 위치들에 상주하는 데이터의 보호를 제 공한다. 본 명세서에서 설명되는 실시예들은 임의의 수의 데이터 생성 위치 및 저장 위치 및 그 조합과 함께 이용될 수 있다.
이해하듯이, 그리고 도 1a-2에 도시되어 있듯이, 임의 타입의 데이터 보호 시스템의 구성이 데이터를 보호하고 복구하기 위한 본 발명의 실시예들에 따라 사용될 수 있다.
일반적으로, 본 명세서에서 설명되는 데이터 보호 시스템의 실시예들은 데이터 보호 시스템의 사용자가 생성 위치의 어떤 데이터가 중요한지, 사용자가 그 데이터를 어떻게 보호하기를 원하는지를 하이 레벨에서 지정할 수 있는 능력을 제공한다. 구체적으로, 본 명세서에서 설명되는 시스템은 사용자가 특정 생성 위치의 어떤 데이터를 보호하기를 원하는지, 그리고 어떻게 보호하기를 원하는지를 논리적으로 식별하는 능력을 사용자에게 제공한다. 데이터 보호 시스템은 이러한 논리적 식별을 데이터를 보호하도록 스케쥴링되고 실행되는 일련의 "작업"으로 변환한다. 작업은 본 명세서에서 설명되는 바와 같이 사용자에 의해 식별되는 데이터를 보호하는 데 필요한 상세한 정보를 포함한다. 예를 들어, 작업은 복사, 검증, 시간 버젼 관리, 아카이브 및 매체 관리 등을 행할 수 있다.
사용자에게 논리 레벨에서 데이터를 선택할 수 있는 능력을 제공하기 위하여, 데이터 보호 시스템은 사용자에게 "명칭 공간" 및 "명칭 공간 요소"의 형태로 생성 위치에 저장된 데이터의 논리적 표현을 제공한다. 명칭 공간은 본 명세서에서 설명되는 바와 같이 애플리케이션의 논리적 표현이다. 예를 들어, 명칭 공간으로서 데이터 보호 시스템 내에 표현될 수 있는 애플리케이션들은 분산 파일 시스템 (DFS), 논리 파일 시스템, 쉐어 포인트와 같은 웹 애플리케이션 명칭 공간 및 교환 명칭 공간을 포함하지만 이에 한하지 않는다. 이해하듯이, 예시적인 애플리케이션들의 리스트는 단지 예시적일 뿐 어떠한 방법으로든 한정하려는 의도는 없다. 임의 타입의 애플리케이션이 데이터 보호 시스템과 함께 사용될 수 있고, 명칭 공간으로서 식별될 수 있다.
명칭 공간 요소는 본 명세서에서 설명되는 바와 같이 데이터와 같은 물리 객체의 논리적 표현이며, 명칭 공간을 구성하는 주요 엔티티이다. 예를 들어, 명칭 공간 요소는 DFS 링크, 서버, 쉐어, 볼륨, 폴더 또는 교환 저장 그룹일 수 있지만 이에 한하지 않는다. 일반적으로, 교환 저장 그룹은 공통 로그를 공유하는 데이터베이스들의 집합이다. 당업자가 이해하듯이, 명칭 공간 요소는 임의 타입의 물리 객체 또는 물리 객체들의 조합을 표현하는 데 사용될 수 있다.
데이터를 보호하기 위하여, 사용자는 논리 명칭 공간을 검색하거나 네비게이트하여 명칭 공간 요소들 중 하나 이상을 선택한다. 선택된 명칭 공간 요소는 기존 보호 그룹과 연관되거나 새로운 보호 그룹을 생성하는 데 사용된다. 명칭 공간 요소가 보호 그룹과 연관될 때, 그 명칭 공간 요소와 연관되는 물리 객체(데이터)도 보호 그룹의 일부가 된다. 보호 그룹은 본 명세서에서 설명되는 바와 같이 동일한 보호 규칙들이 적용되는 명칭 공간 요소들 및 관련 보호 객체들의 논리적 그룹화이다.
각각의 명칭 공간 요소는 본 명세서에서 보호 그룹에 추가될 수 있는 보호 가능 객체로서 지칭되는 하나 이상의 물리 객체(데이터)를 찾는 데 사용된다. 발 견된 보호 가능 객체는 보호를 위해 선택될 수 있다. 보호 가능 객체가 보호를 위해 선택될 때, 선택된 보호 가능 객체는 보호 그룹의 일부인 보호 객체가 된다. 보호 가능 객체는 본 명세서에서 설명되는 바와 같이 보호될 수 있는 물리 정보/데이터이다. 예를 들어, 보호 가능 객체는 폴더, 파일, 전자 메일 박스, 데이터베이스, 웹 사이트 등일 수 있으나 이에 한하지 않는다. 본 명세서에서 사용되는 보호 객체는 보호를 위해 식별되고 선택된 보호 가능 객체이다.
보호 그룹을 생성하는 것 외에도, 사용자는 어떻게, 언제(얼마나 자주) 그리고 얼마나 오랫동안 보호 그룹이 보호되기를 원하는지를 하이 레벨에서 지정할 수 있다. 또한, 사용자는 보호 그룹의 사본 및 아카이브가 얼마나 오랫동안 유지되기를 원하는지를 지정할 수 있다. 이러한 하이 레벨 사양은 복사, 아카이브, 매체 관리, 및 이들의 임의의 조합과 같은 모든 보호 활동에 확대될 수 있다. 사용자에 의해 제공되는 사양에 기초하여, 보호 그룹의 객체들을 보호하기 위한 상세한 계획이 생성된다.
데이터를 복구하기 위하여, 논리적 명칭 공간을 검색하거나 네비게이트하여 사용자가 복구하기를 원하는 데이터를 찾을 수 있는 능력이 사용자에게 제공된다. 이어서, 후술하는 바와 같이 하나 이상의 복구 가능 객체를 찾기 위해 복구될 데이터에 대한 논리적 경로가 사용된다. 각각의 복구 가능 객체는 보호 그룹 또는 그 일부의 버젼을 나타낸다.
도 3은 본 발명의 일 실시예에 따라 생성 위치에 위치하는 보호 가능 객체의 초기 선택 및 보호를 기술하는 데이터 보호 시스템(300)의 흐름도이다. 도 3에 도 시된 바와 같이, 데이터 보호 시스템(300)은 에이전트들을 생성 위치(305)로 배치하여 생성 위치(305)에 위치하는 보호 가능 객체들의 발견을 가능하게 하고, 이들 보호 가능 객체에 대응하는 명칭 공간 및 명칭 공간 요소를 식별한다. 이러한 명칭 공간 및 명칭 공간 요소는 사용자 상호작용을 위해 공개되며, 사용자 인터페이스(303) 상에 표시된다.
예를 들어, 도 4는 본 발명의 일 실시예에 따라 사용자 상호 작용 및 선택을 위해 사용자 인터페이스(303) 상에 공개되고 표시되는 다수의 명칭 공간 및 명칭 공간 요소의 블록도이다. 당업자가 이해하듯이, 도 4는 단지 예시적인 것이며, 임의의 다른 구성이 본 발명의 실시예에서 표시될 수 있다. 예를 들어, 표시는 볼륨을 포함할 수 있지만 쉐어는 포함하지 않는다.
표시(400)는 DFS ROOTS 명칭 공간(401) 및 SERVERS 명칭 공간(403)을 도시하고 있다. DFS ROOTS 명칭 공간(401)은 DFS ROOT인 2개의 명칭 공간 요소(405, 407)를 포함한다. DFS ROOTS 명칭 공간(401) 아래에 식별되는 명칭 공간 요소들은 //ABCD/PUBLIC(405) 및 //EFG/PRIVATE(407)이다. 또한, SERVERS 명칭 공간(403)은 여러 개의 명칭 공가나 요소들(409, 411, 413, 415, 421, 423, 425)을 포함한다. 이러한 명칭 공간 요소들은 여러 개의 추가적인 명칭 공간 요소를 포함할 수도 있다. 예를 들어, SERVER1(409)은 SHARES 명칭 공간 요소 타입(411)과 같은 여러 개의 명칭 공간 요소 타입을 포함한다. 또한, SHARES 명칭 공간 요소 타입(411)은 SHARE1 명칭 공간 요소(413) 및 SHARE2 명칭 공간 요소(415)를 포함한다. 또한, SHARES 명칭 공간 요소(411), SHARE1 명칭 공간 요소(413) 및 SHARE2 명칭 공간 요 소(415)는 모두 보호 가능 객체의 논리적 표현이다.
사용자는 확장 박스(417)와 같은 확장 또는 축소 박스를 선택함으로써 명칭 공간 및 명칭 공간 요소의 표시(400)와 상호작용할 수 있다. 또한, 사용자는 선택 박스(419)와 같은 선택 박스를 선택함으로써 보호를 위한 명칭 공간 요소들 중 하나 이상을 선택할 수 있다. 다른 실시예에서, 보호를 위한 명칭 공간 요소를 선택할 수 있는 것 외에도, 사용자는 보호를 위한 명칭 공간을 선택할 수 있다.
도 3을 다시 참조하면, 사용자 인터페이스(303) 상의 명칭 공간 및 명칭 공간 요소의 표시(400)의 표현시에 사용자는 명칭 공간 요소들 중에서 데이터 보호 시스템(300)에 의해 보호되기를 원하는 것을 선택한다. 또한, 사용자는 선택된 명칭 공간 요소들에 대한 보호 의도를 제공할 수 있다. 보호 의도는 본 명세서에서 설명되는 바와 같이 선택된 데이터가 어떻게 보호되어야 하는지에 대한 하이 레벨 서술이다. 예를 들어, 사용자는 선택된 명칭 공간 요소들이 매일 밤 한 번씩 객체들의 사본을 백업하고 일년의 기간 동안 주간 사본을 유지함으로써 보호되어야 함을 지시할 수 있다. 선택된 명칭 공간 요소 및 관련 보호 의도는 사용자 인터페이스(303)에서 데이터 보호기(301)로 전송된다.
데이터 보호기(301)는 선택된 명칭 공간 요소 및 보호 의도를 이용하여, 선택된 명칭 공간 요소들에 의해 식별되는 보호 가능 객체들에 대한 보호 그룹을 생성한다. 선택시, 보호 가능 객체들은 보호 객체들이 된다. 보호 그룹은 선택된 명칭 공간 요소, 관련 보호 객체들의 식별, 및 보호 객체들이 어떻게 보호되어야 하는지에 관한 상세 계획을 포함한다. 또한, 데이터 보호기(301)는 후술하는 바와 같이 적어도 하나의 자동 발견 그룹을 생성한다. 일 실시예에서, 데이터 보호기(301)는 후술하는 바와 같이 저장된 검색 루틴을 생성할 수도 있다.
보호 그룹의 생성은 선택된 논리 객체들(명칭 공간 요소들)을 생성 위치에 위치하는 적절한 보호 가능 객체들로 맵핑함으로써 달성된다. 이어서, 식별된 보호 가능 객체들은 보호 그룹의 멤버로서 추가되어 보호 객체가 된다. 보호 가능 객체들은 기존 보호 그룹에 추가되거나 새로운 보호 그룹을 형성할 수 있다. 또한, 보호 의도들은 보호 그룹을 보호하기 위한 그룹 계획을 생성하는 데 사용된다. 그룹 계획은 후술하는 자원 계획, 준비 계획 및 보호 계획을 포함하지만 이에 한하지 않는다. 그룹 계획, 및 그룹 내의 계획들은 하나 이상의 작업 및 스케쥴링 파라미터로 이루어진다. 자원 계획의 경우, 할당될 자원의 양이 식별된다. 할당 자원들은 사본을 위한 디스크 공간, 디스크 또는 테이프와 같은 아카이브를 위한 분리식 매체, 사본 및 분리식 매체 양자의 조합 등을 포함하지만 이에 한하지 않는다. 스케쥴링 파라미터들은 언제 작업이 실행되어야 하는지를 식별한다.
보호 그룹, 데이터 보호 계획, 자동 발견 그룹 및 저장된 검색의 생성 후, 데이터 보호기(301)는 생성 위치(305) 및 저장 위치(307)의 보호를 준비한다. 구체적으로, 데이터 보호기는 생성 위치(305)에서 저장 위치(307)로의 데이터의 통신 및 전송을 가능하게 하는 에이전트들을 배치한다. 보호를 위해 생성 위치 및 저장 위치가 준비되면, 보호가 시작되고 보호 객체들에 대한 데이터의 사본이 생성 위치(305)에서 저장 위치(307)로 전송된다. 전송된 데이터의 사본은 후술하는 바와 같이 복사본, 아카이브 사본, 또는 임의의 다른 타입의 데이터 보호로서 유지될 수 있다.
저장 위치(307)를 보호할 준비를 함에 있어서, 후술하는 바와 같이 데이터 보호기(301)는 사용자에 의해 요구되는 대로 물리 객체들의 사본을 저장하는 데 필요한 자원을 (자원 계획을 통해) 할당한다. 보호를 시작하기 위하여, 생성 위치(305)에 저장된 선택된 보호 가능 객체들의 초기 사본을 생성하고 이 사본을 저장 위치(307)에 전송하여 저장하기 위한 작업이 개시된다. 사본이 복제본인 경우, 검증 작업의 실행을 통해 그의 정확도의 보장이 확인된다. 사본이 분리식 매체에 아카이브되고 있는 경우, 초기 사본은 선택된 보호 가능 객체들의 풀 백업이다. 초기 사본이 생성된 후, 데이터 보호기(301)는 사본을 주기적으로 갱신하거나, 생성 위치(305)에 위치하는 정보에 대해 행해진 변경들을 가진 추가 사본들(아카이브의 경우와 같이)을 생성하는 작업들을 생성한다.
선택된 명칭 공간 요소들과 관련된 생성 위치(305)에 저장된 보호 가능 객체들을 식별하기 위하여, 데이터 보호기(301)는 논리 객체들(명칭 공간 요소들)을 물리 객체들(보호 가능 객체들)로 맵핑한다. 도 4를 다시 참조하면, 2개의 명칭 공간, 즉 DFS ROOTS(401) 및 SERVERS 명칭 공간(403)이 표시되며, 이들 각각은 다수의 명칭 공간 요소를 갖는다. 사용자는 명칭 공간 요소들 중 하나 이상을 선택할 수 있다. 일 실시예에서, 명칭 공간 요소가 선택될 때, 포함된 모든 명칭 공간 요소들도 디폴트로 선택된다. 도 4를 일례로서 이용할 때, 사용자가 SERVER1(409) 상에서 STORAGE GROUP(421)을 선택하는 경우, DATABASE A(423) 및 DATABASE B(425)도 자동으로 선택된다. 사용자는 명칭 공간들 중 하나 이상을 선택하지 않을 수 있다.
각각의 명칭 공간 요소는 생성 위치(305)에 위치하는 하나 이상의 보호 가능 객체로 맵핑된다. 예를 들어, 명칭 공간 요소 //ABC/PUBLIC(405)는 다수의 보호 가능 객체로 맵핑된다. 도 5를 참조하면, 명칭 공간 요소 //ABCD/PUBLIC(505)은 생성 위치(305)에 위치하는 3개의 보호 가능 객체들로 맵핑된다. 구체적으로, 명칭 공간 요소 //ABCD/PUBLIC(505)은 D:/FOLDER ON SERVER1(507), D:/FOLDER ON SERVER2(509) 및 F:/ON SERVER3(511)으로 맵핑된다. 보호 가능 객체들(507, 509, 511) 각각은 생성 위치(305) 내에 위치한다.
데이터 보호기가 명칭 공간 요소(505)와 같은 논리 객체에서 물리 객체로 맵핑하는 것은 물론 명칭 공간들을 검색하고 네비게이트하기 위하여, 명칭 공간 및 명칭 공간 요소를 연관시키는 스키마가 생성된다. 스키마는 애플리케이션 명칭 공간의 구성의 추상적 표현이며, 가능한 명칭 공간들은 분산 파일 시스템 및 교환을 포함하지만 이에 한하지 않는다.
도 6은 본 발명의 일 실시예에 따라 명칭 공간의 타입과 볼륨 스키마를 나타내는 명칭 공간 요소의 타입을 연관시키기 위한 스키마의 블록도이다. 스키마는 방향 그래프로서 표시되는데, 그래프 내의 노드들은 애플리케이션 명칭 공간 내의 명칭 공간 요소의 타입을 나타내고, 링크들은 명칭 공간 요소들 간의 포함 및 수식 관계를 나타낸다. 명칭 공간 요소들의 타입들 간의 포함 관계 및 수식 관계는 이러한 타입들의 인스턴스들이 연관될 수 있는 가능한 모든 방법을 나타낸다. 도 6을 참조하면, 포함 관계는 단일 화살표로 도시되어 있고, 수식 관계는 이중 화살표 로 표시되어 있다. 예를 들어, 타입 DFS ROOT(603)의 명칭 공간 요소는 타입 SHARE(609)의 명칭 공간 요소로의 연결(617)을 나타낼 수 있고, SHARE(609)는 VOLUME(611)으로의 연결(619) 또는 FOLDER(615)로의 연결을 나타낼 수 있다.
포함 관계는 명칭 공간 요소들 간의 간단한 부모/자식 관계인데, 부모는 논리적으로 자식들을 포함한다. 예를 들어, DOMAIN(601)은 SERVER(607)를 포함하고(623), DFS ROOT(603)를 포함한다(625). SERVER(607)은 SHARE(609)를 포함하고(627), VOLUME(611)을 포함한다(629). VOLUME(611)은 FOLDER(615)를 포함하고(631), MOUNT POINT(613)를 포함한다(633). FOLDER(615)는 다른 폴더 및 파일을 포함할 수 있다(도시되지 않음).
수식 관계는 소스/타겟 관계인데, 소스 명칭 공간 요소는 타겟 명칭 공간 요소에 대한 논리적 동의어이며, 이는 소스 및 타겟 경로가 2개의 다른 명칭 공간에서 동일한 기초 객체를 나타냄을 의미한다. 수식 관계는 일대다의 관계일 수 있다. 즉, 단일 소스 명칭 공간 요소가 다수의 타겟 명칭 공간 요소를 가질 수 있는데, 이 경우 타겟은 소스에 의해 표현되는 기초 데이터를 검색하는 대체 위치들을 나타낸다. 예를 들어, DFS ROOT(603)는 타겟으로서 다수의 SHARE(609)로 맵핑(617)될 수 있다. 수식 관계는 또한 다대일 관계일 수 있는데, 수식의 타겟은 다른 명칭 공간들에 다수의 논리적 명칭을 가질 수 있다. 예를 들어, FOLDER(615)는 FOLDER(615)로 맵핑되는 많은 SHARE(609)를 가질 수 있다.
또한, 다수의 명칭 공간 요소가 동일한 보호 가능 객체로 맵핑될 수 있다. 예를 들어, SHARE1 명칭 공간 요소(513)는 SERVER(515) 상의 E:/PRIVATE로 맵핑된 다. 또한, SHARE2 명칭 공간 요소(517)도 SERVER(515) 상의 E:/PRIVATE로 맵핑될 수 있다.
도 7은 본 발명의 일 실시예에 따라 논리적 명칭 공간 요소를 물리적 보호 가능 객체로 맵핑하기 위한 스키마의 블록도이다. 구체적으로, 스키마(700)는 도메인 ABCD(701)가 DFS ROOT(PUBLIC)(703) 및 3개의 SERVER(705)와 포함 관계를 갖는 것으로 도시하고 있다. 또한, DFS ROOT(PUBLIC)(703)은 LINK1(707A), LINK2(707B) 및 LINK3(707C)을 포함하는 3개의 DFS LINK(707)와 포함 관계를 갖는다. LINK1(707A), LINK2(707B) 및 LINK3(707C)은 각각 SHARE(711)에 대한 수식 관계를 포함한다. 구체적으로, LINK1(707A)은 //SERVER/SHARE에 대한 수식을 포함하고, LINK2(707B)는 //SERVER2/SHARE에 대한 수식을 포함하며, LINK3(707C)은 //SERVER/SHARE에 대한 수식을 포함한다. //SERVER1/SHARE, //SERVER2/SHARE 및 //SERVER3/SHARE는 각각 DFS 명칭 공간과 다른 명칭 공간 내의 논리적 객체들이다. 이것은 DFS LINK(707)와 SHARE(711) 사이의 수식(719)의 트래버설로서 도시되어 있다. 구체적으로, //SERVER1/SHARE, //SERVER2/SHARE 및 //SERVER3/SHARE는 UNC 서버 명칭 공간 내에 있다. SHARE(711)을 참조하면, //ABCD/PUBLIC의 맵핑을 완료하기 위하여, SHARE들 각각이 어디로 맵핑되는지에 관한 결정 이루어진다. 전술한 바와 같이, SHARE는 VOLUME(713) 및/또는 FOLDER(717)로 맵핑될 수 있다. 따라서, 이 예에서 계속할 때, 논리 객체 //SERVER1/SHARE는 SERVER1 상의 D:/FOLDER의 물리 객체로 맵핑되고, //SERVER2/SHARE는 SERVER2 상의 D:/FOLDER로 맵핑되며, //SERVER3/SHARE는 SERVER3 상의 F:/로 맵핑되는 것으로 결정된다. SERVER1 상의 D:/FOLDER, SERVER2 상의 D:/FOLDER 및 SERVER3 상의 F:/는 //ABCD/PUBLIC(505)의 논리 객체에 의해 표현되는 3개의 물리적 보호 가능 객체이다.
도 7의 예에 도시된 바와 같이, 스키마(600)(도 6)를 이용하여, 논리적 명칭 공간 요소로부터 이 명칭 공간 요소에 의해 표현되는 생성 위치에 저장되는 물리 객체에 대한 맵핑 관계가 결정될 수 있다. 스키마(600)의 각각의 포인트로부터, 맵핑의 다음 부분으로 링크하기 위해 당해 포인트로부터 어떤 관계가 검색될 수 있는지가 알려진다.
데이터 보호기의 명칭 공간 트래버설 기능은 브라우징, 검색, 및 논리적 명칭 공간 및 명칭 공간 요소에서 생성 위치에 저장된 물리 객체로의 맵핑을 위한 임의 타입의 애플리케이션에도 적용될 수 있다. 예를 들어, 사용자는 사용자 인터페이스를 통해 와일드 카드를 포함하는 검색 파라미터를 지정할 수 있으며, 데이터 보호 시스템은 기존의 명칭 공간 및 명칭 공간 요소의 리스트에 질의하여 적절한 결과를 제공할 수 있다. 사용자 인터페이스는 검색 요구를 데이터 보호기로 전송하고, 데이터 보호기는 결과를 사용자 인터페이스로 전송한다. 데이터 보호기는 일반적인 검색, 네이게이션 및 명칭 공간들 간의 맵핑 동작을 지원하며, 각각의 애플리케이션 명칭 공간의 특정 구조는 스키마 내에 캡쳐될 수 있다. 새로운 애플리케이션을 지원하도록 데이터 보호기를 확장하기 위하여, 명칭 공간에 대해 기본 동작들을 수행하여, 이들 동작을 보다 큰 검색, 네비게이션 및 맵핑 동작들로 구성하는 방법을 기술하고 있는 스키마는 물론 포함 관계 및 수식 관계를 트래버스할 수 있는 모듈을 제공하기만 하면 된다.
본 발명의 실시예들은 비 데이터 보호 애플리케이션에도 이용될 수 있다. 예를 들어, 생성 위치 전반에서, 또는 생성 위치 내의 한 세트의 서버들 전반에서 저장 장치가 어떻게 이용되고 있는지를 나타내는 저장 보고서가 생성될 수 있다. 이 실시예에서, 사용자는 DFS ROOT 아래에 100MB보다 큰 모든 파일을 표시하도록 보고서를 구성할 수 있다.
생성 위치는 보호될 수 있는 상이한 여러 타입의 객체들을 포함한다. 예를 들어, 도 8은 본 발명의 일 실시예에 따라 데이터 보호 시스템에 의해 보호될 수 있는 보호 가능 객체들을 포함하는 생성 위치(800)의 블록도이다. 생성 위치(800)에는 3개의 서버(801, 803, 805)가 포함되어 있다. 각각의 서버는 그 자신의 컴퓨팅 장치, 또는 단일 서버로서 보이는 컴퓨팅 장치들의 그룹일 수 있다. 각각의 서버는 중앙 위치에 있거나 지리적으로 분산될 수 있다.
SERVER-1(801)과 같은 서버에는 하나 이상의 데이터 소스가 포함된다. 본 명세서에서 사용되는 데이터 소스는 데이터 보호기에 의해 조작되는 애플리케이션 데이터의 하이 레벨 추상화이다. 데이터 소스는 그의 물리 데이터를 하나 이상의 보호 가능 객체로서 노출시키며, 데이터 소스 자체는 보호 가능 객체일 수 있다. 데이터 소스는 단일 서버 내에 포함되며, 서버는 하나 이상의 데이터 소스를 포함할 수 있다. 예를 들어, SERVER-1(801)은 2개의 데이터 소스, 즉 데이터 소스 1(DS1)(807) 및 데이터 소스 2(DS2)(821)를 포함한다.
마찬가지로, 데이터 소스 1(807)은 6개의 보호 가능 객체(809, 811, 813, 815, 817, 819)를 포함한다. 유사하게, 데이터 소스 2(821)는 2개의 보호 가능 객 체(823, 825)를 포함한다. 데이터 소스는 보호 가능 객체를 포함하는 것 외에도 그 자신이 보호 가능 객체일 수 있다. 더욱이, 보호 가능 객체는 다른 보호 가능 객체를 포함할 수 있다. 예를 들어, 데이터 소스 3(835)는 8개의 보호 가능 객체(827, 829, 831, 833, 837,839, 841, 843)를 포함한다. 보호 가능 객체(837)는 보호 가능 객체(839)를 포함하고, 839는 보호 가능 객체(841, 843)를 포함한다.
SERVER-3(805)은 4개의 데이터 소스, 즉 DS4(845), DS5(851), DS6(857), DS7(859)을 포함한다. 4개의 데이터 소스(845, 851, 857, 859) 각각은 보호 가능 객체일 수 있다. 데이터 소스 4(845)에는 2개의 보호 가능 객체(847, 849)가 포함된다. 데이터 소스 5(851)는 2개의 보호 가능 객체(853, 855)를 포함하고, 데이터 소스 6(857)은 보호 가능 객체를 포함하지 않으며, 데이터 소스 7(859)은 2개의 보호 가능 객체(861, 863)를 포함한다.
각각의 보호 가능 객체는 데이터 보호 시스템이 상이한 입도(granularity) 레벨로 각각의 데이터 소스 내의 보호 가능 객체를 노출시키는 것을 허용하는 특정 보호 가능 객체 타입을 갖는다. 예를 들어, 데이터 보호 시스템은 교환 저장 그룹 데이터 전체를 보호 객체 타입의 저장 그룹을 갖는 보호 가능 객체로서 노출시킬 수 있다. 데이터 보호 시스템은 또한 동일 저장 그룹 데이터 소스를 다수의 보호 가능 객체로 분할 수 있으며, 각각의 보호 가능 객체는 보호 가능 객체 타입의 데이터베이스를 갖는다. 동일 보호 가능 객체에 대해 2개 이상의 상이한 보호 가능 객체 타입이 있을 수도 있다. 예를 들어, 데이터 보호 시스템은 블록 레벨의 볼륨을 하나의 보호 가능 객체 타입의 보호 가능 객체로서, 파일 레벨의 볼륨을 또 하 나의 보호 가능 객체 타입의 보호 가능 객체로서 노출시킬 수 있다.
데이터 소스의 예는 운영 체제, 시스템 볼륨, 교환 저장 그룹, SQL 데이터베이스 등을 포함하지만 이에 한하지 않는다. 서버용의 보호 가능 객체 타입의 예는 시스템 보호 파일, 레지스트리 및 활성 디렉토리와 같은 운영 체제 데이터 저장소를 포함하지만 이에 한하지 않는다. 파일 시스템 볼륨 보호 가능 객체 타입은 디렉토리 및 파일을 포함하지만 이에 한하지 않는다. 파일 시스템 볼륨 엔티티는 파일 쉐어 또는 DFS 링크 타겟 명칭 공간 요소에 의해 찾을 수 있다. 교환 저장 그룹에 대한 보호 가능 객체 타입은 데이터베이스 및 메일 박스를 포함하지만 이에 한하지 않는다.
전술한 바와 같이, 각각의 선택 가능 명칭 공간 요소는 보호 가능 객체(801-863)(도 8)와 같은 하나 이상의 보호 가능 객체로 맵핑된다. 각각의 보호 가능 객체는 보호 가능 객체 타입이며, 각각의 보호 가능 객체는 단일 데이터 소스 내에 있다. 또한, 각각의 데이터 소스는 생성 위치의 단일 서버 내에 있다.
사용자가 명칭 공간 요소 //ABCD/PUBLIC(405)(도 4)을 선택하는 예를 다시 참조하고, 도 5 및 7과 관련하여 설명된 바와 같이 명칭 공간 요소를 보호 가능 객체로 맵핑하는 것에 계속하여, 보호 가능 객체들 및 그 연관성의 보호 그룹으로의 맵핑이 본 발명의 일 실시예에 따라 도 9a-9b와 관련하여 설명된다.
사용자의 관점에서 볼 때, 보호 그룹의 멤버들은 자동 발견 그룹(후술함)의 결과로서 추가되는 보호 가능 객체는 물론 사용자가 선택하여 보호 그룹에 추가한 공간 명칭 요소에 의해 정의된다. 또한, 데이터 보호 시스템은 사용자가 보호 그 룹 내의 각각의 명칭 공간 요소가 어떤 보호 객체들로 맵핑되는지와, 이들 보호 객체 각각의 상태를 볼 수 있도록 해준다.
이전 예를 다시 참조하면, 명칭 공간 요소 //ABCD/PUBLIC(405)은 3개의 상이한 보호 가능 객체, 즉 D:/FOLDER ON SERVER1(507), D:/FOLDER ON SERVER2(509) 및 F:/ON SERVER3(511)으로 맵핑된다. 도 7과 관련하여 설명된 맵핑에 계속해서 도 9a를 참조하며, D:/FOLDER ON SERVER1(507)은 SERVER1(901) 상의 데이터 소스 D:/(907) 내에 포함된 FOLDER(909)를 참조한다. D:/FOLDER ON SERVER2(509)는 SERVER2(903) 상의 데이터 소스 D:/(935)에 포함된 FOLDER(9237)를 참조한다. 마지막으로, F:/ON SERVER3(511)은 SERVER3(905) 상의 데이터 소스 F:/(951)를 참조한다. 도 9b를 참조하면, 명칭 공간 요소 //ABCD/PUBLIC(505)의 선택은 도 9a와 관련하여 설명된 보호 객체들로 맵핑되며, 이들 객체는 보호 그룹(930)과 연관된다. 전술한 바와 같이, 선택된 보호 객체에 포함된 보호 가능 객체들은 보호 그룹에 자동으로 포함될 수 있다. 예를 들어, 부분적으로 SERVER3(905) 상의 F:/(951)로 맵핑되는 //ABCD/PUBLIC(505)의 선택은 추가적인 보호 가능 객체들(953, 955)을 포함하게 되는데, 이는 이들이 SERVER3(905) 상의 보호 객체 F:/(951) 내에 포함되기 때문이다. 도 9b에 도시된 바와 같이, 보호 그룹(930)은 SERVER1(901), SERVER2(903) 및 SERVER3(905)와 같은 상이한 서버들에 위치하는 보호 객체들을 포함할 수 있다.
도 10은 본 발명의 일 실시예에 따라 선택된 명칭 공간 요소, 맵핑된 보호 객체 및 보호 그룹의 특성들을 포함하는 보호 그룹의 블록도이다. 구체적으로, 보 호 그룹(1030)은 명칭 공간 요소 //ABCD/PUBLIC(1005), 이전 예와 관련하여 설명된 보호 객체들 각각, 및 선택된 보호 객체들 내에 포함된 보호 객체들을 포함한다. 구체적으로, 보호 그룹(1030)은 SERVER1(1009) 상의 D:/FOLDER 및 SERVER2(1027) 사의 D:/FOLDER의 보호 객체들을 포함한다. 또한, 보호 그룹(1030)은 SERVER3(1051) 상의 보호 객체 F:/, 및 SERVER3(1051) 상의 보호 객체 F:/ 내에 포함된 2개의 보호 객체(1053, 1055)를 포함한다.
보호 그룹(1030)과 같은 각각의 보호 그룹은 스케쥴(1041), 공간 할당 규칙(1043) 등을 포함할 수 있는 그룹 계획(1040)을 포함한다. 그룹 계획은 작업 및 그룹을 보호하기 위한 기타 정보를 포함한다. 보호 그룹은 조작 간편성을 위해 보호 객체들을 수비한다. 보호 그룹 내의 모든 보호 객체는 동일한 보호 의도들의 집합으로부터 생성되는 동일한 그룹 계획을 공유한다.
요컨대, 보호 그룹은 하나 이상의 보호 명칭 공간 요소를 포함한다. 각각의 보호 명칭 공간 요소는 하나 이상의 보호 가능 객체를 지시한다. 또한, 보호 가능 객체는 데이터 소스 상에 위치한다. 데이터 소스는 단 하나의 보호 그룹의 멤버일 수 있다. 보호 동안, 보호 그룹 맵핑은 보호 그룹 자체 내에 잠재적으로 포함되어야 하는 새로운 발견된 보호 가능 객체들을 식별하고 보호 객체로의 논리적 경로의 변경을 검출하기 위해 주기적으로 재평가된다. 이러한 주기적 평가는 후술하는 바와 같이 자동 발견 그룹을 이용하여 이루어진다.
이제 도 11, 12, 13, 16, 23b, 25-36, 38, 39, 41, 48a-48c, 49a-49c 및 52-59를 참조하여, 본 발명의 실시예들에 의해 구현되는 상이한 루틴들이 설명된다. 루틴들은 서버와 같은 단일 컴퓨팅 장치 상에서 구현되거나 다수의 컴퓨팅 장치로 분산될 수 있다는 것을 당업자는 이해할 것이다. 도 11, 12, 13, 16, 23b, 25-36, 38, 39, 41, 48a-48c, 49a-49c 및 52-59는 특정 기능을 수행하기 위한 블록들을 도시하고 있다. 다른 실시예들에서, 보다 많거나 적은 블록들이 사용될 수 있다. 본 발명의 일 실시예에서, 블록은 소프트웨어 프로그램, 소프트웨어 객체, 소프트웨어 함수, 소프트웨어 서브루틴, 소프트웨어 메소드, 소프트웨어 인스턴스, 코드 프래그먼트, 하드웨어 동작, 또는 사용자 동작, 단일 또는 조합을 나타낼 수 있다.
도 11은 본 발명의 일 실시예에 따라 보호 그룹을 보호하기 위한 계획을 구성하는 구성 루틴의 블록도이다. 구성 루틴(1100)은 블록 1101에서 시작하고, 블록 1103에서 루틴은 사용자 인터페이스와 인터페이스하는 사용자로부터 명칭 공간 요소의 선택 및 보호 의도를 취득한다. 후술하는 바와 같이, 사용자는 보호할 다수의 명칭 공간 요소를 선택할 수 있다. 제공된 보호 의도는 선택된 요소들 모두에 적용된다. 블록 1105에서, 선택된 명칭 공간 요소는 적절한 보호 가능 객체로 맵핑된다.
판정 블록 1107에서, 추가 명칭 공간 요소들이 이전에 선택된 명칭 공간 요소들과 함께 포함되도록 선택되었는지를 판정한다. 판정 블록 1107에서 추가 명칭 공간 요소들이 선택된 것으로 판정된 경우, 루틴은 블록 1103으로 되돌아가서, 선택된 명칭 공간 요소를 취득한다. 그러나, 판정 블록 1107에서 추가 명칭 공간 요소들이 선택되지 않은 경우, 블록 1109에서 데이터 보호기가 블록 1105에서 맵핑된 관련 보호 가능 객체를 보호하기 위해 사용될 선택된 명칭 공간 요소들에 대한 보 호 그룹을 생성한다. 보호 그룹에 추가되는 보호 가능 객체들은 보호 객체가 된다.
블록 1111에서, 블록 1103에서 사용자에 의해 제공되는 보호 의도에 기초하여 보호를 위한 그룹 계획이 생성된다. 보호를 위한 그룹 계획은 원하는 보호의 빈도 및 보호의 유형을 포함할 수 있다. 보호 유형의 예는 배경 보호, 백업 보호 및 아카이브 보호를 포함하지만 이에 한하지 않는다. 배경 보호는 보호가 거의 계속되는 보호 타입을 말한다(예를 들어, 사본이 한 주에 7일, 하루에 24시간, 매 시간마다 갱신된다). 백업 보호는 때에 맞춰(예를 들어, 밤에 한 번씩, 밤마다) 특정 인스턴스를 발생시키도록 보호가 스케쥴링되는 보호 유형을 말한다. 그룹 계획은 보호 그룹의 모든 보호 객체에 적용된다. 그룹 계획의 생성은 후술하며 의도 변환으로서 참조된다(도 31-34).
블록 1113에서, 보호 객체들을 포함하는 생성 위치 및 객체들의 사본이 저장되는 저장 위치가 보호를 위해 준비된다. 예를 들어, 데이터 보호기는 저장 위치에 저장되고 정확성을 위해 검증되는 데이터의 초기 사본을 만든다. 블록 1115에 도시된 바와 같이, 보호가 진행되고, 선택된 명칭 공간 요소와 관련된 보호 객체들이 복사되고 저장된 후, 블록 1117에서 루틴이 종료한다.
도 12는 본 발명의 일 실시예에 따라 블록 1109(도 11)에서 참조된 보호 그룹의 생성을 보다 상세히 설명하는 보호 그룹 생성 루틴을 나타낸다. 보호 그룹 생성 루틴(1200)은 블록 1201에서 시작하고, 블록 1203에서 보호가 행해질 명칭 공간 요소들의 선택이 수신된다. 또한, 선택된 명칭 공간 요소들에 대한 보호 의도 도 수신된다. 판정 블록 1205에서, 수신된 명칭 공간 요소들이 새로운 보호 그룹에 추가될 것인지, 또는 기존 보호 그룹 내에 포함될 것인지를 판정한다. 명칭 공간 요소들이 새로운 보호 그룹에 추가되지 않는 것으로 판정된 경우, 블록 1207에서 명칭 공간 요소들이 포함될 기존 보호 그룹의 선택이 얻어진다.
블록 1209에서, 후술하는 바와 같이(도 13), 명칭 공간 요소들과 연관된 데이터 소스들의 중복이 해결된다. 마지막으로, 블록 1211에서, 기존 보호 그룹이 추가 명칭 공간 요소 및 관련 보호 가능 객체를 포함하도록 갱신된다. 또한, 사용자는 보호 그룹에 대한 그룹 계획을 변경하는 옵션을 가질 수 있다.
판정 블록 1205를 다시 참조하면, 수신된 명칭 공간 요소들이 새로운 보호 그룹에 추가되는 것으로 판정된 경우, 블록 1213에서 이들 명칭 공간 요소들과 관련된 데이터 소스들의 임의의 중복이 해결된다. 블록 1215에서, 새로운 보호 그룹의 명칭이 수신된다. 일 예에서, 새로운 보호 그룹의 명칭은 사용자 인터페이스를 통해 사용자에 의해 제공될 수 있다. 대안으로, 보호 그룹의 명칭은 데이터 보호 시스템 자체에 의해 자동으로 생성될 수 있다. 블록 1217에서, 데이터 보호 시스템에 미리 제공된 보호 의도에 따라 보호 그룹에 대한 그룹 계획이 생성된다. 블록 1219에서, 보호 그룹을 생성하는 루틴이 종료된다.
도 13은 본 발명의 일 실시예에 따라 2개 이상의 보호 그룹에 포함된 데이터 소스들의 중복을 검출하기 위한 블록들(1209, 1213)(도 12)에 대응하는 중복 검출 루틴을 나타낸다. 중복 검출 루틴(1300)은 블록 1301에서 시작하고, 판정 블록 1303에서 선택된 명칭 공간 요소와 연관된 임의의 보호 가능 객체들을 포함하는 데 이터 소스가 현재 다른 보호 그룹(기존 보호 그룹)에 포함되어 있는지를 판정한다. 기존 보호 그룹에 포함된 선택된 명칭 공간 요소와 연관된 보호 가능 객체들을 포함하는 데이터 소스가 없는 것으로 판정된 경우, 루틴은 1313에서 종료하고, 보호 그룹 생성 루틴(1200)(도 12)과 같은 적절한 루틴으로 제어를 되돌린다.
그러나, 선택된 명칭 공간 요소와 관련된 보호 가능 객체를 포함하는 데이터 소스가 기존 보호 그룹 내에 포함(즉, 중복)되어 있는 것으로 판정된 경우, 판정 블록 1305-1307에서 검출된 중복을 어떻게 해결할 것인지에 대한 판정이 이루어진다. 본 발명의 일 실시예에서, 중복의 해결은 사용자의 결정에 따른다. 예를 들어, 중복이 검출된 경우, 사용자에게는 현재의 보호 그룹으로부터 중복 데이터 소스(충돌 보호 가능 객체)의 보호 가능 객체를 제거하는 옵션(1305)이 제공되거나, 기존 보호 그룹으로부터 중복을 유발하는 충돌 보호 가능 객체를 포함하는 데이터 소스를 제거하고 이를 현재의 보호 그룹에 추가하는 옵션(1307)이 제공될 수 있다. 다른 실시예에서, 중복 검출 루틴(1300)을 진행하는 데 사용되는 글로벌 정책이 중복을 해결하기 위해 사용자에 의해 제공될 수 있다. 또 다른 실시예에서, 보호 가능 객체를 중복을 유발하는 보호 그룹에 추가하려는 시도는 실패하게 된다.
판정 블록 1305에서, 충돌 보호 가능 객체가 현재 추가되고 있는 보호 그룹(현재 보호 그룹)으로부터 제거되어야 하는지에 대한 판정이 이루어진다. 판정 블록 1305에서 충돌 보호 가능객체가 현재 보호 그룹으로부터 제거되어야 하는 것으로 판정된 경우, 이 보호 가능 객체는 현재 보호 그룹으로부터 제거되지만, 충돌을 유발한 기존 보호 그룹에는 유지되며, 중복 검출 루틴은 블록 1313에 도시된 바와 같이 제어를 개시 루틴으로 되돌린다.
판정 블록 1305에서 충돌 보호 가능 객체가 현재 보호 그룹으로부터 제거되지 않는 것으로 판정된 경우, 루틴은 판정 블록 1307에서 보호 가능 객체의 데이터 소스 및 이 데이터 소스 내에 포함된 모든 보호 객체들을 기존 보호 그룹으로부터 제거하고 제거된 데이터 소스, 제고된 보호 객체 및 충돌 보호 가능 객체를 현재 보호 그룹에 추가할 것인지를 판정한다. 데이터 소스 및 이에 포함된 보호 객체들이 기존 보호 그룹으로부터 제거되고 현재 보호 그룹에 추가되는 경우, 루틴은 블록 1313에서 종료되고, 출발한 적절한 루틴으로 제어를 되돌린다.
판정 블록 1307에서 충돌 보호 가능 객체의 데이터 소스 및 이에 포함된 모든 보호 객체가 기존 보호 그룹으로부터 제거되어 현재 보호 그룹에 추가되지 않는 것으로 판정된 경우, 중복 검출 루틴(1300)은 블록 1311에 도시된 바와 같이 중복 실패를 생성하고 블록 1313에서 종료한다.
사용자가 보호 가능 객체를 나타내는 명칭 공간 요소를 선택함으로써 생성 위치에 저장된 물리적 객체(보호 가능 객체)를 보호할 수 있는 것과 유사하게, 사용자는 복구될 물리 객체를 나타내는 명칭 공간 요소를 선택함으로써 물리 객체(복구 가능 객체)를 복구할 수도 있다. 도 14는 본 발명의 일 실시예에 따라 보호 객체를 복구하기 위한 복구 프로세스의 흐름을 나타내는 데이터 보호 시스템의 흐름도이다. 객체를 복구하기 위하여, 사용자는 복구할 보호 객체들을 나타내는 하나 이상의 명칭 공간 요소를 선택한다. 데이터 보호기(1401)는 명칭 공간 요소의 선택의 수신에 응답하여 저장 위치(1403)에 질의하여 사용자에 의해 선택 제공된 명 칭 공간 요소와 연관된 복구 가능 객체의 시간 버젼을 식별한다. 다른 실시예에서는 시간 버젼을 식별하기 위해 저장 위치(1403)에 질의하는 것이 필요하지 않을 수 있다. 예를 들어, 아카이브로부터의 복구를 위해, 데이터 보호기(1401)는 이용 가능한 시간 버젼을 식별하는 정보를 포함하는 카탈로그 또는 데이터베이스를 검색함으로써 시간 버젼을 식별할 수 있다. 식별된 시간 버젼들은 합성되어 사용자에게 데이터가 복구될 수 있는 시점의 표현으로서 제공된다.
사용자는 복구할 시점을 선택하고, 그 시점에 대해 복구 의도를 제공한다. 복구 의도의 예는 후술한다. 사용자로부터 복구될 것과 그에 대응하는 복구 의도를 수신한 때, 데이터 보호기(1401)에 의해 복구 계획이 생성되고 실행되며, 저장 위치(1403)에 위치하는 적절한 복구 가능 객체들이 복구되어 생성 위치(1405)로 전송된다.
도 15는 본 발명의 일 실시예에 따라 저장 위치(1403)에 포함될 수 있는 복구 가능 객체들의 보다 상세한 뷰를 나타내는 블록도이다. 일반적으로, 복구는 손상되거나 누락된 보호 객체(또는 그 일부)를 이전의 시간 버젼으로 회복시킨다. 시간 버젼화는 이산적이거나 거의 연속적일 수 있다. 이산 시간 버젼은 보호 객체들의 지속 시점 완전 사본들로부터 발생한다. 이산 시간 버젼의 복구는 보호 객체의 복원만을 요구하거나 복원 후의 추가 복구 처리를 요구할 수 있다. 거의 연속적인 시간 버젼은 보호 객체들과 연관된 로그의 지속 시점 사본들로부터 발생한다. 복구는 로그의 롤 포워드 애플리케이션에 의해 발생한다. 본 발명의 일 실시예에서, 롤 포워드는 로그 내에 포함된 임의의 시점에 중지될 수 있다.
본 명세서에서 설명되는 바와 같이 복구 가능 객체는 보호 객체의 복구에 대한 가능성을 나타낸다. 각각의 복구 가능 객체는 하나 이상의 복구 소스로부터 생성될 수 있다. 복구 소스는 복제본과 연관된 시간 버젼 상에, 복제본 내에, 아카이브 테이프 상에 위치하거나, 디스크 상의 아카이브 사본일 수 있다.
이제 도 15를 참조하면, 보호 객체(1509)는 하나 이상의 복구 가능 객체(1511, 1513, 1515, 1517, 1519, 1521)를 포함할 수 있다. 일반적으로, 복구 가능 객체는 보호 객체보다 미세할 수 있다. 예를 들어, 보호 객체는 SERVER1(1509) 상의 D:/FOLDER와 같은 폴더일 수 있다. 보호 객체(1509)는 다수의 복구 가능 객체를 포함할 수 있다. 예를 들어, SERVER1(1509) 상의 보호 객체 D:/FOLDER는 6개의 복구 가능 객체, 즉 FILE1(1511), FILE2(1513), FILE3(1515), FILE4(1517) FILE5(1519) 및 FILE6(1521)을 포함할 수 있다. 또한, 보호 객체(1509)도 복구 가능 객체이다.
보호 객체 및 보호 방법의 최초 선택은 종종 이용 가능한 복구 가능 객체 및/또는 복구에 필요한 작업을 결정한다. 예를 들어, 보호 객체가 메일 박스를 포함하는 데이터베이스를 포함하는 교환 저장 그룹인 경우, 이 저장 그룹 내의 모든 데이터베이스는 암시적으로 보호될 수 있다. 완전 저장 그룹 또는 하나 이상의 데이터베이스가 복구될 수 있으며, 따라서 복구 가능 객체이다. 보호가 복제가 아니라 아카이브에 의해서만(후술함) 수행되는 경우, 메일 박스 복구는 매우 시간 소모적이 된다(고비용). 보호가 아카이브는 물론 복제에 의해 수행되는 경우, 복제본으로부터의 메일 박스 복구는 훨씬 더 빠를 수 있다(저비용).
보호 객체가 저장 그룹의 데이터베이스인 경우, 저장 그룹은 전반적으로 보호되지 않을 수 있지만, 선택된 데이터베이스 내에 포함된 메일 박스는 보호된다. 그러나, 보호 객체가 메일 박스인 경우, 관련 데이터베이스 또는 저장 그룹의 암시적인 보호가 없을 수 있다. 보호가 복제 없이 아카이브에 의해서만 수행되는 경우, 아카이브는 선택된 메일 박스가 아닌 그 어떤 것도 복구하지 못할 수 있다. 대안으로, 메일 박스가 다른 보호 그룹의 일부로서 복제되는 데이터베이스의 일부인 것으로 공지되는 경우, 메일 박스 복구는 아카이브 매체가 아니라 다른 보호 그룹의 복제본으로부터 발생할 수 있다.
도 16은 본 발명의 일 실시예에 따라 저장 위치로부터 보호 객체를 복구하는 복구 루틴을 나타낸다. 복구 루틴(1600)은 블록 1601에서 시작하고, 블록 1603에서, 사용자 인터페이스 상에 표시되는 명칭 공간 요소들과 인터페이스하는 사용자로부터 복구할 명칭 공간 요소의 선택이 수신된다. 사용자는 또한 복구할 데이터에 대한 복구 의도를 제공할 수 있다. 블록 1605에서, 데이터를 복구할 특정 시점 버젼의 선택이 수신된다. 본 발명의 일 실시예에서, 사용자는 복구가 발생할 시점을 제공한다. 다른 실시예에서, 선택된 명칭 공간 요소에 대한 시간 버젼이 식별되어 선택을 위해 사용자에게 제공될 수 있다.
블록 1607에서, 복구할 추가 요소들이 선택되었는지를 판정한다. 복구할 추가 요소들이 선택된 것으로 판정된 경우, 루틴은 블록 1603으로 되돌아가서, 복구할 추가 명칭 공간 요소들의 선택을 수신한다. 그러나, 복구할 추가 요소들이 없는 것으로 판정된 경우, 블록 1609에서 복구 가능 객체들은 전술한 맵핑 스키마 및 수신된 복구 의도를 이용하여 저장 위치에 위치하는 적절한 복구 소스로 맵핑된다.
필요한 복구 소스의 식별시, 블록 1611에서 복구 계획이 생성된다. 복구 계획은 적절한 복구 소스들로부터 복구 가능 객체들의 필요한 시점 버젼을 합성하는 프로세스를 포함한다. 블록 1613에서, 계획이 실행되고 식별된 복구 가능 객체들이 복구된다. 블록 1615에서 복구 루틴이 종료된다.
전술한 바와 같이, 보호 그룹을 생성하는 것 외에도, 데이터 보호 시스템은 자동 발견 그룹 및 저장 검색을 생성한다. 자동 발견 그룹 및 저장 검색은 사용자에게 생성 위치에 대한 변경을 알리는 자동화된 수단을 제공한다. 예를 들어, 변경은 서버와 같은 컴퓨팅 장치, 교환 저장 그룹, 데이터베이스, 볼륨 및 쉐어의 추가 또는 삭제는 물론, 명칭 공간 요소와 보호 가능 객체 사이의 맵핑의 변경을 포함할 수 있다. 사용자에게 생성 위치 변경의 통지를 제공하는 것은 보호할 필요가 있는 새로운 데이터를 보호하고 데이터가 재배치되거나 제거되었을 때 이들의 보호 전략을 조정하기에 적합한 액션을 사용자가 취할 수 있게 한다.
자동 발견 그룹은 물리 자원들의 이산 세트로서가 아니라 질의로서 보호되어야 하는 것을 기술하기 위한 메카니즘이다. 예를 들어, 조직이 //FILESRV1, //FILESRV2 등과 같은 //FILESRV*로서 모든 파일 서버를 명명하는 것을 가정한다. 이러한 조직의 사용자는 //FILESRV*라는 명칭을 가진 임의의 서버 상의 모든 쉐어를 주기적으로 검색하는 자동 발견 그룹을 생성할 수 있다. 자동 발견 그룹은 이러한 모든 쉐어를 발견하며, 사용자가 이들 쉐어에 위치하거나 관련된 임의의 보호 가능 객체의 보호를 선택하거나 거절하는 것을 허용한다. 또한, 본 발명의 일 실 시예에서, 자동 발견 그룹은 주기적으로 재평가될 수 있으며, 사용자에게는 임의의 새로운 쉐어에 대해 통지되며, 이들 새로운 쉐어의 보호를 승인 또는 거절할 수 있는 기회가 주어진다. 더욱이, 재평가는 제거된 임의의 기존 쉐어를 식별하며, 사용자에게 그 제거에 대한 통지를 제공한다.
자동 발견 그룹은 또한 명칭 공간 요소와 보호 가능 객체 간의 맵핑을 추적하기 위해 데이터 보호기에 의해 사용될 수 있다. 위의 예를 다시 참조하여, 사용자가 경로 //ABCD/PUBLIC를 보호하는 것으로 가정한다. 데이터 보호 시스템은 명칭 //ABCD/PUBLIC 및 SERVER1 상의 D:/FOLDER, SERVER2 상의 D:/FOLDER 및 SERVER3 상의 F:/FOLDER와 같은 그의 보호 객체들에 대한 맵핑을 포함하는 자동 발견 그룹을 자동으로 생성한다. 미래에 //ABCD/PUBLIC이 동일 서버 또는 다른 서버 상의 다른 폴더를 참조하도록 변경되는 경우, 사용자에게는 데이터 보호기에 의해 변경이 통지되며, 보호를 조정할 기회가 주어진다.
도 17-24는 본 발명의 일 실시예에 따라 자동 발견 그룹을 생성하고 이용하는 흐름도를 나타낸다. 도 17-24의 설명을 위해, 데이터 보호 시스템은 보호를 원하는 여러 서버들(생성 위치(1703)로서 도시됨)을 포함하는 작업 장소에 설치된 것으로 가정한다.
데이터 보호 시스템(1700)의 초기화시, 데이터 보호기(1701)는 생성 위치(1703)에 질의하여, 생성 위치 내에 포함된 보호 가능 객체를 나타내는 명칭 공간 및 명칭 공간 요소를 식별한다. 데이터 보호기(1701)는 사용자에 의한 상호작용 및 선택을 위해 명칭 공간 및 이에 포함된 명칭 공간 요소의 계층적 뷰 형태의 사 용자 인터페이스(1705)를 통해 사용자에게 명칭 공간 및 명칭 공간 요소를 공개한다.
사용자는 사용자 인터페이스(1705)와 인터페이스하여 //ABCD/PUBLIC 명칭 공간 요소(1707)와 같이 보호할 하나 이상의 명칭 공간 요소를 선택할 수 있다. 보호할 명칭 공간 요소를 선택하는 것 외에, 사용자는 사용자가 관련 보호 가능 객체를 어떻게 보호하기를 원하는지를 식별하는 보호 의도를 제공한다. 선택된 명칭 공간 요소 및 보호 의도의 표시는 데이터 보호기(1701)로 제공된다.
이제 도 18을 참조하면, 데이터 보호기(1701)는 명칭 공간 요소의 선택을 생성 위치(1703)에 위치하는 보호 가능 객체로 맵핑한다. 예를 들어, 명칭 공간 요소 //ABCD/PUBLIC(1707)의 선택시, 데이터 보호기는 이 명칭 공간 요소를 전술한 바와 같이 명칭 공간 스키마를 이용하여 보호 가능 객체로 맵핑한다. 이러한 맵핑은 명칭 공간 요소 //ABCD/PUBLIC(1707)이 SERVER1(1709) 상의 보호 가능 객체 D:/FOLDER 및 SERVER2(1711) 상의 보호 가능 객체 D:/FOLDER로 맵핑되는 것을 식별한다. 다른 실시예에서, 명칭 공간 요소의 초기 발견 동안, 요소는 그 시간에 대응하는 보호 가능 객체로 맵핑될 수 있다.
데이터 보호기(1701)는 선택된 명칭 공간 요소를 포함하는 보호 그룹, 보호 객체들이 되는 보호 가능 객체들의 식별, 자동 발견 그룹(1713) 및 자동 발견 그룹 테이블(1715)을 생성한다. 전술한 바와 같이, 사용자에 의해 제공되는 의도에 기초하여, 보호 그룹은 또한 보호 그룹이 실제로 어떻게 보호되어야 하는지를 기술하는 그룹 계획을 포함한다. 자동 발견 그룹(1713)은 //ABCD/PUBLIC/* 및 명칭 공간 요소의 보호 객체들, 즉 SERVER1 상의 D:/FOLDER 및 SERVER2 상의 D:/FOLDER로의 맵핑과 같은 명칭 공간 검색 파라미터를 포함한다. 선택된 명칭 공간 요소에 대한 명칭 공간 검색 파라미터를 포함하는 자동 발견 그룹(1713)의 생성은 데이터 보호기에게 명칭 공간 검색 파라미터와 매칭되는 생성 위치에 대한 추가, 삭제 및 리맵핑을 후속 검색할 수 있는 능력을 제공한다. 이러한 임의의 변경들은 보호를 위해 중요할 수 있으므로 경보를 통해 사용자에게 보고된다. 경보는 다양한 형태로 사용자에게 제공될 수 있다. 예를 들어, 경보는 사용자 인터페이스, 이메일, 페이지, 음성 메시지 등을 통해 제공될 수 있다.
자동 발견 그룹(1713)을 생성한 것 외에, 데이터 보호기(1701)는 보호 객체로의 현재 맵핑의 식별 및 보호 객체에 관한 정보를 포함하는 자동 발견 그룹 테이블(1715)을 생성한다. 구체적으로, 정보는 보호 객체로의 맵핑이 매치 칼럼(1717)에 의해 지시되는 바와 같이 자동 발견 그룹(1713)에 포함된 자동 발견 그룹 파라미터와 매칭되는지의 여부, 보호 객체가 대기 칼럼(1719)에 의해 지시되는 바와 같이 현재 사용자 액션을 기다리고 있는지의 여부, 맵핑된 보호 객체가 계획 보호(PP) 칼럼(1721)에 의해 지시되는 바와 같이 그룹 계획 하에 현재 보호되고 있는지의 여부, 및 맵핑된 보호 객체가 사용자 보호(PU) 칼럼(1731)에 의해 지시되는 바와 같이 현재 사용자에 의해 보호되고 있는지의 여부를 포함한다. 후술하는 바와 같이, 객체는 사용자에 의해 보호될 수 있지만, 아직 데이터 보호 시스템에 의해 보호되지 않는다. 예를 들어, 사용자는 특정 객체를 보호하고자 한다는 것을 지시하여 이 객체가 사용자에 의해 보호되게 할 수 있으나, 이 보호 객체는 그에 대한 의도 변환이 완료된 후까지 계획에 의해 보호되지 않을 수 있다.
보호 그룹, 자동 발견 그룹, 그룹 계획 및 자동 발견 그룹 테이블의 생성 후, 본 발명의 일 실시예에 따른 데이터 보호 시스템은 보호를 위해 생성 위치 및 저장 위치를 준비한다. 위치들이 보호를 위해 준비된 후(예를 들어, 자원 계획), 선택된 보호 가능 객체의 초기 사본을 생성하기 위한 초기 단계들이 수행된 후(준비 계획), 보호가 시작된다(보호 계획).
선택된 보호 객체들이 보호된 후 소정 시간 후에, 데이터 보호 시스템은 자동 발견 그룹을 실행하여 생성 위치(1703)를 리맵핑한다. 예를 들어, 자동 발견 그룹은 밤마다 한 번씩 실행되도록 스케쥴링될 수 있다. 밤에, 또는 생성 위치에서의 활동이 적을 때 자동 발견 그룹을 실행하는 것은 생성 위치에 부과되는 부하의 양을 줄인다.
설명을 위해 도 17-24와 관련하여 설명된 예로 돌아가면, 자동 발견 그룹이 실행되고, 자동 발견 그룹 결과들(1723)(도 19)은 //ABCD/PUBLIC/*의 자동 발견 그룹 검색 파라미터와 매칭되는 보호 가능 객체만이 SERVER2 상의 D:/FOLDER의 보호 객체라는 것을 식별한다. 데이터 보호기(1701)는 자동 발견 그룹 결과(1723)를 자동 발견 그룹 테이블(1715)과 비교한다. 이 예에서, 이것은 SERVER1 상의 D:/FOLDER의 보호 객체가 자동 발견 그룹 검색 파라미터와 더 이상 매칭되지 않는다는 것을 식별한다. SERVER1 상의 D:/FOLDER는 다양한 이유로 검색 파라미터와 더 이상 매칭되지 않을 수 있다. 예를 들어, SERVER1 상의 D:/FOLDER는 더 이상 존재하지 않거나, SERVER1 상의 D:/FOLDER는 //ABCD/PUBLIC 아래에 더 이상 맵핑되 지 않는다.
비교 후, 테이블(1715)은 SERVER1 상의 D:/FOLDER의 보호 객체가 결과들 내에 반환되지 않았으며, 따라서 매치 칼럼(1717)에 "N"으로 도시된 바와 같이 더 이상 자동 발견 그룹 검색 파라미터와 매칭되지 않는다는 것을 나타내도록 갱신된다. 또한, 자동 발견 그룹 테이블(1715)은 사용자 상호작용이 칼럼 1719에 "Y"로 도시된 바와 같이 보호 객체에 대해 현재 대기중이라는 것을 지시하도록 SERVER1 상의 D:/FOLDER의 보호 객체에 대해 갱신된다. 보호 객체는 자동 발견 그룹 파라미터와 더 이상 매칭되지 않으므로 사용자 상호작용은 현재 대기중이다. SERVER1 상의 D:/FOLDER는 PP 칼럼(1721) 및 PU 칼럼(1731)에 Y로 표시된 바와 같이 계획 하에 보호되고 사용자에 의해 보호되는 것으로 계속 표시된다.
자동 발견 그룹 테이블(1715)은 또한 SERVER2 상의 D:/FOLDER가 자동 발견 그룹 검색 파라미터와 매칭되고 칼럼들(1721, 1731) 각각에 Y로 표시된 바와 같이 계획 하에 그리고 사용자에 의해 계속 보호되는 것을 나타내도록 갱신된다. 마지막으로, 대기 칼럼(1719)에 N으로 표시된 바와 같이 SERVER2 상의 보호 객체 D:/FOLDER이 매칭되고 보호되므로 그에 대한 어떠한 사용자 액션도 대기중이 아니라는 것에 대한 지시가 존재한다.
이제 도 20을 참조하면, 자동 발견 그룹이 실행되고, 자동 발견 그룹 테이블이 갱신되고, 경보가 발생된 후 다음 날 아침에, 사용자는 데이터 보호 시스템에 액세스하여, 데이터 보호 시스템으로부터 SERVER1 상의 D:/FOLDER의 보호 객체가 자동 발견 그룹 검색 파라미터와 더 이상 매칭되지 않는다는 통지를 제공 받는다.
이에 응답하여, 데이터 보호 시스템은 사용자로부터 보호 객체를 보호 그룹에서 제거하라는 지시를 수신한다. 데이터 보호기(1701)는 자동 발견 그룹을 갱신하여, SERVER1 상의 D:/FOLDER의 맵핑을 보호 그룹으로부터 제거하고, 자동 발견 그룹 테이블(1715)을 갱신한다. 구체적으로, SERVER1 상의 D:/FOLDER는 PU 칼럼(1731)에 N으로 표시된 바와 같이 사용자에 의해 더 이상 보호되지 않는 것으로 표시되며, 칼럼 1719에 N으로 표시된 바와 같이 더 이상 대기중이 아닌 것으로 표시된다. 이 시점에서, SERVER1 상의 D:/FOLDER는 의도 변환이 보호 그룹으로부터 SERVER1 상의 D:/FOLDER를 제거하도록 아직 재실행되지 않았으므로 계획에 의해 계속 보호된다.
객체는 자동 발견 그룹 테이블(1715)에 유지되며, 사용자에 의해 보호되지 않는 것으로 표시되어, 객체가 자동 발견 루틴의 후속 실행에 의해 식별되는 경우, 객체는 이미 보호로부터 배제되었으므로 사용자에게 승인을 기다리는 것으로서 제공되지 않는다.
도 21은 이전 예의 계속이며, 사용자가 SERVER1 상의 D:/FOLDER를 더 이상 보호하기를 원하지 않는다는 것을 지시한 후 소정 시간 후에 의도 변환이 실행된다. 의도 변환의 실행시, 그룹 계획이 갱신되며, SERVER1 상의 D:/FOLDER는 보호 그룹으로부터 제거된다. SERVER1 상의 D:/FOLDER가 보호 그룹에 의해 더 이상 보호되지 않더라도, 보호 그룹의 기존 시간 버젼은 저장 위치에 저장되어 유지되며, 계획에 의해 더 이상 보호되지 않는 시점까지 SERVER1 상의 D:/FOLDER를 복구하는 데 사용될 수 있다. 의도 변환의 완료시, 자동 발견 그룹 테이블(1715)이 갱신된 다. 구체적으로, SERVER1 상의 D:/FOLDER는 PP 칼럼(1721)에 N으로 표시된 바와 같이 계획에 의해 보호되지 않는 것으로 표시된다.
의도 변환이 완료된 후 소정 시간 후에, 자동 발견 그룹은 다시 실행되어 생성 위치(1703)에 질의하고, 자동 발견 그룹 검색 파라미터를 생성 위치(1703)에 위치하는 객체들로 다시 맵핑한다. 자동 발견 그룹 검색 파라미터들의 맵핑의 완료시, 자동 발견 그룹 결과들(1725)이 제공되며, 검색 파라미터들이 SERVER2 상의 D:/FOLDER의 보호 객체 및 SERVER2(1727) 상의 E:/FOLDER의 새로운 보호 객체로 맵핑된다는 표시를 포함한다. 다시, 데이터 보호기(1701)는 결과들을 자동 발견 그룹 테이블(1715)과 비교한다. 이 비교는 SERVER2 상의 D:/FOLDER의 보호 객체가 자동 발견 그룹 검색 파라미터와 다시 매칭되고, 사용자 액션을 기다리고 있지 않으며, 사용자 및 그룹 계획 양자에 의해 계속 보호된다는 것을 식별한다. 또한, SERVER2 상의 E:/FOLDER의 새로운 보호 가능 객체는 자동 발견 그룹 검색 파라미터와 매칭되고, PP 칼럼(1721)에 N으로 표시된 바와 같이 그룹 계획에 의해 현재 보호되지 않으며, PU 칼럼(1731)에 N으로 표시된 바와 같이 사용자에 의해 현재 보호되지 않고, 대기 칼럼(1719)에 Y로 표시된 바와 같이 현재 사용자 액션을 기다리고 있다. 비교의 완료시, 자동 발견 그룹 테이블(1715)은 모든 객체의 새로운 맵핑 및 상태를 식별하도록 갱신된다.
SERVER2 상의 E:/FOLDER의 보호가능 객체는 자동 발견 그룹에 의해 새로 식별되었으므로 현재 계획 또는 사용자에 의해 보호되지 않는다. 데이터 보호 시스템(1701)은 보호 그룹 내의 보호 객체들과 유사한 새로운 보호 가능 객체가 생성 위치에 추가되었음을 나타내기 위하여 사용자에게 제공되는 경보를 발생시킨다. 사용자는 이 새롭게 식별된 보호 가능 객체를 보호 그룹의 일부로서 추가 보호하는 것에 관심을 가질 수 있으므로 경보가 생성된다.
도 22에서, 사용자는 경보를 수신하고, 자동 발견 그룹에 의해 자동으로 식별된 새로 식별된 보호 가능 객체의 보호를 시작하기 위한 응답을 제공한다. SERVER2 상의 E:/FOLDER의 보호 가능 객체는 또한 보호 그룹에 추가되며, 따라서 보호 객체가 된다. 또한, 데이터 보호기(1701)는 SERVER2 상의 E:/FOLDER의 객체가 더 이상 사용자 액션을 기다리고 있지 않고 사용자에 의해 보호되지만, 이 시점에서 계획에 의해 보호되지 않는다는 지시를 자동 발견 그룹 테이블(1715)에 추가한다.
도 23a는 위의 예의 계속이며, 새로 식별된 보호 가능 객체를 보호 그룹에 추가하기 위한 사용자에 의한 지시 후 소정 시간 후에 의도 변환이 실행되고 SERVER2 상의 E:/FOLDER가 계획에 의해 보호된다. 의도 변환의 완료 후, 자동 발견 그룹 로그(1715)는 SERVER2 상의 E:/FOLDER가 PP 칼럼(1721)에 Y로 표시된 바와 같이 이제 계획에 의해 보호되는 것을 지시하도록 갱신된다.
의도 변환이 완료된 후 소정 시간 후에, 데이터 보호기(1701)는 다시 자동 발견 그룹 루틴을 실행하고, //ABCD/PUBLIC/*의 자동 발견 그룹 검색 파라미터를 생성 위치(1703)에 위치하는 객체들로 리맵핑한다. 자동 발견 그룹 루틴의 완료시, 데이터 보호기는 SERVER2 상의 D:/FOLDER 및 SERVER3(1729) 상의 E:/FOLDER의 맵핑을 식별한다. 그 결과는 비교에 사용되고, SERVER2 상의 D:/FOLDER의 보호 객 체가 다시 자동 발견 그룹 검색 파라미터와 매칭되고, 사용자 액션을 기다리지 않으며, 데이터 보호 시스템에 의해 계속 보호되고 사용자에 의해 계속 보호되는 것을 지시하도록 자동 발견 그룹 테이블(1715)을 갱신하는 데 사용된다. 또한, SERVER2 상의 E:/FOLDER의 이전 보호 객체가 자동 발견 루틴에 의해 식별되지 않지만 사용자 및 보호 계획에 의해 계속 보호되고 따라서 사용자 액션을 기다리고 있다는 것이 지시된다. 마지막으로, SERVER3 상의 E:/FOLDER의 새로운 보호 가능 객체의 추가는 자동 발견 그룹 검색 파라미터와의 매칭으로서 식별되지만, 이 객체는 새로 식별되므로 사용자 또는 보호 계획에 의해 현재 보호되지 않으며, 따라서 사용자 액션을 기다리고 있다. 자동 발견 테이블의 갱신시, 데이터 보호기(1701)는 SERVER2 상의 E:/FOLDER의 이전 보호 객체가 더 이상 자동 발견 그룹 검색 파라미터와 매칭되지 않고, SERVER3 상의 E:/FOLDER가 생성 위치에 추가되고 자동 발견 그룹 검색 파라미터와 매칭된다는 지시를 포함하는 경보를 생성한다. 이 경보는 SERVER2 상의 E:/FOLDER의 보호 객체가 SERVER3 상의 E:/FOLDER로 이동될 수 있음을 사용자에게 지시할 수 있다. 이러한 변경의 자동 발견 없이, 사용자는 계속 구 객체를 보호할 수 있으며, 새 객체에 대한 보호를 제공하지 못할 수 있다.
도 23b는 본 발명의 일 실시예에 따라 도 23a에서 검출된 것과 같은 보호 명칭 공간 요소의 리맵핑을 해결하기 위한 리맵핑 해결 루틴을 나타낸다. 리맵핑 해결 루틴(2300)은 공간 명칭 요소가 이동될 수 있는 것으로 판정된 때 실행된다. 예를 들어, SERVER2 상의 E:/FOLDER로 이전에 맵핑된 //ABCD/PUBLIC/LINK3가 SERVER3 상의 E:/FOLDER로 리맵핑될 수 있다.
리맵핑 해결 루틴(2300)은 블록 2301에서 시작된다. 블록 2303에서, 자동 발견 그룹이 평가되고, 보호 공간 명칭 요소가 하나의 보호 가능 객체에서 다른 보호 가능 객체로 리맵핑된 것으로 판정된다. 판정 블록 2305-2309에서, 리맵핑이 해결되어야 하는지에 대한 판정이 이루어진다.
구체적으로, 판정 블록 2305에서, 새로운 맵핑이 배타적으로 보호되어야 하는지에 대한 판정이 이루어진다. 새로운 맵핑이 배타적으로 보호되어야 하는 것으로 판정된 경우, 블록 2311에서 구 맵핑은 사용자에 의해 보호되지 않는 것으로 표시되고, 새로운 맵핑이 사용자에 의해 보호되는 것으로 표시된다. 그러나, 새로운 맵핑이 배타적으로 보호되지 않아야 하는 것으로 판정된 경우에는, 판정 블록 2307에서 구 맵핑이 배타적으로 보호되어야 하는지에 대한 판정이 이루어진다. 구 맵핑이 배타적으로 보호되어야 하는 경우, 블록 2311에서 구 맵핑은 사용자에 의해 보호되는 것으로 표시되고, 새 맵핑은 보호되지 않는 것으로 표시된다. 그러나, 판정 블록 2307에서 구 맵핑이 배타적으로 보호되지 않아야 하는 것으로 판정된 경우, 판정 블록 2309에서 양 맵핑이 보호되어야 하는지가 판정된다.
판정 블록 2309에서 양 맵핑이 보호되어야 하는 것으로 판정된 경우, 블록 2311에서 양 맵핑이 사용자에 의해 보호되는 것으로 표시된다. 그러나, 양 맵핑이 보호되지 않는 것으로 판정된 경우, 블록 2311에서 양 맵핑은 사용자에 의해 보호되지 않는 것으로 표시된다.
블록 2313에서, 전술한 바와 같이 의도 변환 루틴이 실행된다. 의도 변환의 완료시, 보호 객체는 계획 보호 플래그가 구 보호 객체 및 새 보호 객체 양자에 대 해 사용자 보호 플래그와 동일한 값을 포함하도록 갱신된다. 블록 2315에서 루틴이 종료된다.
도 24는 이 예의 이전 부분들과 같이, 이전에 실행된 자동 발견 그룹 루틴에 의해 검출된 변경을 식별하는 경보가 사용자에게 제공되는 것을 나타낸다. 사용자는 SERVER3 상의 E:/FOLDER의 새로 식별된 보호 가능 객체를 포함하고 SERVER2 상의 E:/FOLDER의 구 보호 객체의 맵핑을 제거하도록 자동 발견 그룹 검색 파라미터의 맵핑을 갱신하기 위해 선택한다(블록 2305, 도 23b). 데이터 보호 시스템(1701)은 사용자로부터 맵핑의 갱신 지시를 수신하는 것에 응답하여 새로운 보호 객체를 포함하도록 보호 그룹을 갱신한다. 또한, 데이터 보호기(1701)는 SERVER2 상의 E:/FOLDER가 더 이상 사용자에 의해 보호되지 않지만 이 시점에서 계획에 의해 계속 보호된다는 것을 식별하고, SERVER3 상의 E:/FOLDER의 보호 객체의 새로운 맵핑이 사용자에 의해 보호되지만 계획에 의해 아직 보호되지 않는다는 것을 지시하도록 자동 발견 그룹 테이블(1715)을 갱신한다.
사용자가 변경을 지시한 후 소정 시간 후에, 의도 변환이 실행되어 SERVER2 상의 E:/FOLDER를 그룹 계획에 의해 보호되는 것으로부터 제외하고, SERVER3 상의 E:/FOLDER을 그룹 계획에 의해 보호되는 것으로 추가한다. 이해하듯이, 의도 변환은 사용자가 보호 그룹의 변경(객체의 추가 또는 제거)을 표시하는 것에 후속하는 임의의 시점에 실행될 수 있다. 예를 들어, 의도 변환은 사용자가 보호 그룹에 대한 변경을 지시한 후 즉시 또는 며칠 후에 실행될 수 있다. 또한, 자동 발견 그룹 루틴 및 의도 변환은 서로 독립적일 수 있다. 자동 발견 그룹 루틴은 사용자가 보 호 그룹에 대한 변경을 지시한 것과 의도 변환이 실행된 것 사이에 여러번 수행될 수 있다. 이 예에서, 자동 발견 그룹의 갱신시, 그룹 계획에 대한 실제 변경이 아직 발생하지 않은 경우에도 사용자는 이미 명령을 제공했으므로 객체가 변경되는 것에 대한 경보는 생성되지 않는다.
도 25는 본 발명의 일 실시예에 따라 최상위 레벨 명칭 공간 요소와 보호 가능 객체 간의 맵핑을 초기에 발견하기 위한 초기 발견 루틴의 흐름도이다. 초기 발견 루틴(2500)은 블록 2501에서 시작하고, 블록 2503에서 생성 위치의 쉽게 발견 가능한 모든 객체의 명칭 공간 및 명칭 공간 요소가 식별된다. 쉽게 발견 가능한 객체들은 생성 위치의 최상위 레벨 객체이다. 예를 들어, 명칭 공간 및 명칭 공간 요소는 DFS ROOT, SERVERS, EXCHANGE SERVERS 및 STS SERVERS와 같은 최상위 레벨 객체에 대해 쉽게 발견될 수 있다. 블록 2505에서, 생성 위치의 발견된 최상위 레벨 명칭 공간 및 명칭 공간 요소는 데이터 보호기의 메모리(예를 들어, 데이터베이스)에 보유된다. 블록 2507에서, 초기 발견 루틴(2500)은 종료된다.
도 26은 본 발명의 일 실시예에 따라 생성 위치에 위치하는 명칭 공간 및 명칭 공간 요소와 보호 가능 객체 사이의 맵핑의 발견을 위한 스케쥴링된 발견 루틴의 흐름도이다. 구체적으로, 스케쥴링된 발견 루틴(2600)은 블록 2601에서 시작하고, 블록 2603에서 초기 발견 루틴(2500)(도 25)이 실행되고, 생성 위치의 최상위 레벨 명칭 공간 요소가 식별된다. 전술한 바와 같이, 최상위 레벨 명칭 공간 요소의 저장 사본은 사용자가 생성 위치를 네비게이트하고, 그리고/또는 검색시에 생성 위치를 재발견할 필요 없이 생성 위치의 특정 부분을 검색하여 검색 및 네비게이션 시간을 향상시키고 생성 위치의 부하를 제거하는 것을 허용하기 위해 데이터 보호 시스템에 의해 사용될 수 있다.
판정 블록 2605에서, 수행될 임의의 기존 저장 검색(후술함)이 존재하는지가 판정된다. 판정 블록 2605에서 수행할 저장 검색이 존재하는 것으로 판정된 경우, 블록 2607에서 저장 검색이 실행된다. 그러나, 판정 블록 2605에서 기존 저장 검색이 존재하지 않는 것으로 판정된 경우, 판정 블록 2609에서 갱신할 임의의 기존 자동 발견 그룹이 존재하는지가 판정된다. 판정 블록 2609에서 갱신할 기존 자동 발견 그룹이 존재하는 것으로 판정된 경우, 도 17-24의 예와 관련하여 전술한 바와 같이 블록 2611에서 자동 발견 그룹이 갱신된다. 루틴은 블록 2617에서 종료된다.
도 27은 본 발명의 일 실시예에 따른 자동 발견 그룹 생성 루틴의 흐름도이다. 자동 발견 그룹 생성 루틴(2700)은 블록 2701에서 시작하고, 블록 2703에서 사용자가 보호하기를 원하는 명칭 공간 요소의 선택이 수신된다. 명칭 공간 요소의 선택의 수신 외에, 명칭 공간 요소와 연관된 보호 가능 객체도 수신된다. 블록 2705에서 명칭 공간 요소와 연관된 데이터 소스의 임의의 중복이 해결된다. 중복 해결은 도 13과 관련하여 위에 설명되었다.
임의의 중복이 해결된 후, 블록 2707에서 선택된 명칭 공간 요소를 식별하는 자동 발견 그룹 리스트가 생성된다. 또한, 질의 파라미터가 생성되고, 선택된 명칭 공간 요소와 유사한 다른 명칭 공간 요소를 식별하는 데 사용되는 자동 발견 그룹에 포함된다. 질의 파라미터는 물리 자원(예를 들어 SERVER1 상의 모든 볼륨), 명칭 공간 상의 소정의 질의(예를 들어, DFS ROOT/PRODUCTS 아래의 모든 쉐어) 또 는 이들의 소정 조합(예를 들어, //FILESRV*라는 명칭을 가진 서버 상의 모든 쉐어)으로 표현될 수 있다. 또한, 질의 파라미터는 기존 명칭 공간 요소의 소정의 특성에 기초할 수 있다.
각각의 경우, 데이터 보호 시스템은 자동 발견 그룹의 멤버쉽의 추적을 유지하고 사용자에게 그 그룹에 대한 변경을 통지한다. 블록 2709에서 자동 발견 그룹 및 선택된 명칭 공간 요소들의 리스트가 보호 그룹에 추가된다. 전술한 바와 같이, 보호 그룹은 기존 보호 그룹이거나 선택된 명칭 공간 요소들에 대해 새로 생성된 보호 그룹일 수 있다. 블록 2711에서 자동 발견 그룹 생성 루틴이 종료한다.
도 27과 관련하여 전술한 바와 같이 생성되는 자동 발견 그룹은 물리 자원들의 이산 세트로서가 아니라 질의로서 잠재적으로 보호되어야 하는 객체들을 기술하는 방법이다. 변경이 검출되면, 사용자는 자동 발견 그룹과 연관되고, 그리고/또는 보호 그룹의 일부인 객체들을 보호하기 위한 계획에 대한 변경을 승인하거나 거절할 수 있다. 예를 들어, 자동 발견 그룹이 서버들 //FILESRV* 상의 모든 쉐어에 대한 검색 파라미터를 포함하고, 새로운 서버 //FILESRV10이 새로운 쉐어와 함께 도달한 경우, 사용자는 새로운 쉐어들 각각의 보호를 승인하거나 거절할 수 있는 옵션을 갖는다.
전술한 바와 같이, 데이터 보호 시스템은 사용자에게 보고되는 자동 발견 그룹 변경에 대한 응답을 추적한다. 예를 들어, 사용자가 새로 식별된 보호 가능 객체의 보호를 거절한 경우, 그 보호 가능 객체가 생성 위치로부터 후속 제거된 경우에는 사용자에게 통지가 후속 전송되지 않는다. 구체적으로, 사용자가 객체를 보 호하기를 원하지 않고 모든 미래의 통지를 자동으로 무시하기를 원하는 것으로 지시하는 경우, 보호 가능 객체에 대한 제외 플래그가 설정된다. 일 실시예에서, 일단 객체가 거절되면, 제외 플래그는 자동으로 설정되지 않는다. 또한, 객체가 거절되는 횟수가 추적되며, 소정의 거절 횟수(예를 들어, 5번) 후에 그 객체는 제외로 표시된다. 제외된 객체의 후속 식별은 사용자에게 통지되지 않는다.
데이터 보호 시스템은 사용자가 보호하기를 원하는 각각의 명칭 공간 요소에 대한 자동 발견 그룹을 자동으로 생성하고 구성한다. 예를 들어, 사용자가 서버 //FILESRV1 상의 SHARE1을 보호하는 경우, 데이터 보호 시스템은 //FILESRV1/SHARE1의 물리 자원(예를 들어, //FILESRV1 상의 볼륨 X: 상의 FOLDER1)으로의 맵핑으로 구성되는 자동 발견 그룹을 구성한다. //FILESRV1/SHARE1이 사라지거나 쉐어에서 물리 자원으로의 맵핑이 변경되는 경우, 사용자에게는 변경이 통지되며, 어떻게 진행할 것인지에 대한 여러 옵션이 주어진다(도 23b). 예를 들어, //FILESRV1/SHARE1이 이제 볼륨 Y 상의 FOLDER1로 맵핑되는 것으로 가정한다. 사용자는 X:/FOLDER1을 계속 보호하거나, X:/FOLDER1의 보호를 중지하고 Y:/FOLDER1의 보호를 시작하거나, 양 객체를 보호할 수 있는 옵션을 갖는다. 이러한 방식으로 사용자는 보호하려고 시도하고 있는 명칭 공간 요소 및 실제로 보호되고 있는 물리 객체에 대한 임의의 변경을 통지 받는다.
도 28 및 29는 본 발명의 일 실시예에 따른 자동 발견 그룹 갱신 루틴의 흐름도이다. 자동 발견 그룹 갱신 루틴(2800)은 블록 2801에서 시작하고, 블록 2803에서 자동 발견 그룹 결과로부터 보호 가능 객체가 선택된다. 자동 발견 그룹 결 과는 자동 발견 그룹의 명칭 공간 요소가 맵핑되거나 이전에 맵핑된 보호 가능 객체들 각각을 식별하는 자동 발견 그룹 맵핑 시퀀스의 실행 후 생성된다. 판정 블록 2805에서, 선택된 보호 가능 객체가 현재 사용자에 의해 보호되고 있는지의 여부가 판정된다.
판정 블록 2805에서, 선택된 보호 가능 객체가 현재 사용자에 의해 보호되고 있지 않은 것으로 판정된 경우, 판정 블록 2807에서 선택된 보호 가능 객체가 현재 사용자로부터 승인을 기다리고 있는지에 대한 판정이 이루어진다. 보호 가능 객체는 이전에 식별되어 사용자에게 경보를 통해 보고되었고 사용자가 그 객체를 보호 그룹에 추가해야 하는지를 식별하지 않은 경우 보호 그룹에 추가되기 위해 사용자로부터 승인을 현재 기다리고 있을 수 있다. 도 17-24와 관련하여 설명된 바와 같이, 객체는 자동 발견 그룹 테이블에서 대기 칼럼을 Y로 설정함으로써 승인을 기다리는 것으로서 식별될 수 있다. 판정 블록 2807에서 보호 가능 객체가 승인을 기다리고 있지 않은 것으로 판정된 경우, 판정 블록 2809에서 선택된 보호 가능 객체가 보호로부터 제외되었는지의 여부가 판정된다. 전술한 바와 같이, 보호 가능 객체는 사용자가 보호 가능 객체를 보호하기를 원하지도 않고 보호 가능 객체에 대한 변경을 통지 받지도 않았다는 사용자로부터의 표시에 의해 보호로부터 제외될 수 있다. 이러한 표시는 자동 발견 그룹 테이블 내의 객체를 사용자에 의해 제어되는 것으로서 표시함으로써 식별된다.
판정 블록 2809에서 선택된 보호 가능 객체가 현재 보호로부터 제어되지 않은 것으로 판정된 경우, 블록 2811에서 새로운 보호 가능 객체를 식별하고, 사용자 가 보호 가능 객체의 보호 그룹에의 추가의 승인 및/또는 보호 가능 객체를 보호 그룹으로부터 구체적으로 제외시키는 응답을 요구하는 경보가 생성된다. 블록 2813에서 보호 가능 객체는 사용자에 의한 승인을 기다리고, 사용자에 의해 보호되지 않고, 계획에 의해 보호되지 않는 것으로서 표시된다.
선택된 보호 가능 객체가 현재 사용자에 의해 보호되고 있거나(블록 2805), 사용자로부터 승인을 기다리고 있거나(2807), 보호로부터 제외된 것으로(블록 2809) 판정된 경우, 판정 블록 2815에서 자동 발견 그룹 결과로서 식별되는 추가 보호 가능 객체가 존재하는지의 여부가 판정된다. 판정 블록 2815에서 추가 보호 가능 객체가 존재하는 것으로 판정된 경우, 루틴은 블록 2803으로 되돌아가서, 자동 발견 그룹 결과로서 식별된 각각의 추가 보호 가능 객체에 대한 프로세스를 계속한다. 그러나, 판정 블록 2815에서 자동 발견 그룹 결과로서 식별되는 추가 보호 가능 객체가 존재하지 않는 것으로 판정된 경우, 블록 2817(도 29)에서 자동 발견 그룹의 기존 보호 객체가 식별된다.
판정 블록 2818에서, 기존 보호 객체가 사용자에 의해 보호되는 것으로 표시되어 있는지에 대한 판정이 이루어진다. 기존 보호 객체가 사용자에 의해 보호되지 않는 것으로서 표시된 것으로 판정된 경우, 루틴은 판정 블록 2821로 진행한다. 그러나, 기존 보호 객체가 사용자에 의해 보호되는 것으로 판정된 경우, 판정 블록 2819에서 기존 보호 객체가 자동 발견 그룹의 실행에 의해 생성되는 결과에 포함되는지의 여부가 판정된다. 판정 블록 2819에서 기존 보호 객체가 새로 생성된 자동 발견 그룹 결과에 포함되는 것으로 판정된 경우, 판정 블록 2821에서 자동 발견 그 룹의 추가 기존 보호 객체들이 존재하는지에 대한 판정이 이루어진다. 판정 블록 2821에서 자동 발견 그룹의 추가 기존 보호 객체들이 존재하는 것으로 판정된 경우, 루틴은 블록 2817로 되돌아가서 계속한다. 판정 블록 2821에서 자동 발견 그룹의 추가 기존 보호 객체가 존재하지 않는 것으로 판정된 경우, 루틴은 블록 2827에서 종료한다.
판정 블록 2819를 다시 참조하면, 식별된 기존 보호 객체가 새로 생성된 자동 발견 그룹 결과에 포함되지 않는 것으로 판정된 경우, 판정 블록 2822에서 대기 플래그를 검사함으로써, 사용자에게 변경을 알리는 경보가 사용자에게 이전에 전송되었는지에 대한 판정이 이루어진다. 경보가 이전에 전송되지 않은 것으로 판정된 경우, 블록 2823에 도시된 바와 같이 사용자에 의해 보호되는 객체에 대한 맵핑이 더 이상 존재하지 않음을 식별하는 변경이 경보를 통해 사용자에게 보고된다. 블록 2825에서, 보호 객체는 보호 그룹으로부터의 제거를 기다리고 자동 발견 그룹 검색 파라미터와 매칭되지 않지만 현재 사용자에 의해 보호되고 있는 것으로 표시된다. 보호 그룹으로부터의 보호 객체의 제거는 저장 위치로부터 보호 객체의 임의의 실제 사본을 제거하지 못한다. 당업자가 이해하듯이, 제거 대기 및 승인 대기는 단일 대기 상태로서 추적된다. 전술한 바와 같이, 객체가 자동 발견 그룹 검색 파라미터와 매칭되는지의 여부에 대한 추적은 객체가 제거 또는 추가되는지를 식별한다.
객체가 자동 발견 루틴에 의해 식별될 때, 객체가 사용자 액션을 기다리고, 계획에 의해 보호되고, 사용자에 의해 보호되고 자동 발견 그룹 검색 파라미터와 매칭되는지를 추적하는 것 외에, 객체가 먼저 식별되고 자동 발견 그룹 테이블에 추가될 때, 객체가 식별되는 날짜 및 시간도 기록된다. 또한, 자동 발견 그룹 테이블 내에 존재하는 보호 객체가 자동 발견 그룹 루틴에 의해 더 이상 식별되지 않을 때, 객체가 사라진 날짜 및 시간도 기록된다.
데이터 보호 시스템은 사용자가 명칭 공간 요소를 선택하는 것에 응답하여 자동 발견 그룹을 자동으로 생성하는 것 외에도, 저장 검색도 자동으로 생성한다. 다른 실시예에서, 저장 검색은 데이터 보호 시스템의 설치시에 생성될 수 있다. 또 다른 실시예에서, 저장 검색은 사용자에 의해 생성될 수도 있다.
저장 검색은 서버와 같은 생성 위치의 세그먼트들이 나타나거나 사라질 때를 사용자에게 알리기 위해 사용된다. 예를 들어, 저장 검색의 이용은 데이터 보호 시스템이 사용자에게 새로운 서버, 새로운 DFS 루트, 더 이상 존재하지 않는 서버, 더 이상 존재하지 않는 DFS 루트, 새로운 STS 서버, 더 이상 존재하지 않는 STS 서버 등을 알릴 수 있는 능력을 제공한다. 동일 저장 검색의 이전 평가 동안 발견된 명칭 공간 요소들의 리스트가 각각의 저장 검색과 연관된다. 저장 검색은 검색의 시작점을 나타내는 명칭 공간 요소, 및 반환될 포함된 명칭 공간 요소를 기술하는 한 세트의 검색 기준을 포함한다. 자동 발견 그룹과 달리, 저장 검색은 보호 가능 객체가 아닌 명칭 공간 요소 상에서 동작한다. 예를 들어, 저장 검색은 회사의 마케팅 부서에 속하는 모든 서버를 식별하도록 생성될 수 있다. 이것은 일반적으로 유효한 자동 발견 그룹이 아니다. 그러나, 자동 발견 그룹과 같이, 저장 검색은 검색 파라미터와 매칭되는 명칭 공간 요소를 식별하는 저장 검색 결과 테이블을 유 지한다.
검색에 매칭되는 명칭 공간 요소에 대해 그 상태가 유지된다. 예를 들어, 최초 식별되고 최후에 본 시간 정보가 각각의 명칭 공간 요소에 대해 유지된다. 이 정보는 변경을 검출하는 데 사용될 수도 있다. 먼저, 명칭 공간 요소가 저장 검색에 의해 식별되고, 이 식별의 날짜를 식별하는 타임스탬프가 유지되고, 명칭 공간 요소가 생성 위치로부터 제거될 때 명칭 공간 요소가 최종 발견된 날짜 및 시간을 식별하는 타임스탬프도 유지된다. 일 실시예에서, 생성 위치에서 변경이 검출될 때마다 사용자에게 경보가 제공된다. 예를 들어, 생성 위치에 명칭 공간 요소를 추가 및/또는 삭제하는 것은 사용자에게 그 변경을 알리는 경보를 발생시킨다. 일 실시예에서, 서버 상의 모든 쉐어에 대한 저장 검색은 사용자가 그 서버 상의 쉐어가 보호되어야 한다는 것을 식별하는 것에 응답하여 생성된다. 유사하게, 서버 상의 모든 볼륨에 대한 저장 검색은 그 서버 상의 볼륨이 보호될 때 생성된다. 서버에 대한 변경시(예를 들어, 적절한 때 쉐어 또는 볼륨의 추가), 사용자는 그 변경을 통지 받는다.
자동 발견 그룹 및 저장 검색의 결과는 또한 데이터 보호기의 네비게이션 및 검색 기능의 성능을 향상시키는 데 사용될 수 있다. 자동 발견 그룹 및 저장 검색은 그들의 결과를 주기적으로 영구적인 저장 장치에 캐시할 수 있으며, 따라서 네비게이션 및 검색 결과가 자주 바꾸지 않는 경우, 또는 약간의 손상이 허용되는 경우에는, 데이터 보호기는 이러한 캐시된 결과를 이용하여 사용자 개시 네비게이션 및 검색에 대한 보다 빠른 응답성을 제공할 수 있다.
보호 의도는 사용자가 보호 그룹을 어떻게(예를 들어, 복제본, 아카이브, 이들 양자) 보호하기를 원하는지, 그리고 과거의 얼마나 먼 시점까지(기간) 복구할 수 있기를 원하는지를 설명하기 위하여 사용자에 의해 제공된다. 예를 들어, 사용자는 선택된 데이터 그룹의 복제본이 그 데이터에 대해 밤마다 생성되고, 저장 위치의 분리식 매체 상에 저장된 사본이 일주에 한 번씩 갱신되고, 최대 4개의 사본이 분리식 매체에 유지되기를 원할 수 있다. 또한, 사용자는 적어도 한 달이 지난 정보를 복구할 수 있기를 원하는 것으로 지정할 수 있다.
저장 위치에 예를 들어 복제본, 아카이브 또는 이들 양자로서 데이터를 보호하는 것은 임의의 자원들이 프로세스 자체에 요구되는 것은 물론, 데이터의 사본에 대해 자원들이 할당될 것을 요구한다. 또한, 자원들을 사용에 필요한 상태로 만들기 위해 다수의 작업들이 요구되며, 보호의 정확성을 유지하기 위해 진행 작업들이 필요하다. 데이터 보호를 위한 작업의 이용은 후술한다. 자원 및 작업의 수동 설정은 지루하고 에러가 발생할 수 있다. 또한, 자원 및 작업은 예를 들어 자동 발견 그룹에 의해 검출되는 변경에 응답하여 보호되고 있는 한 세트의 객체들이 변경될 때마다 변경되어야 할 수 있다. 사용자에게 상세한 자원 및 작업을 수동으로 지정하도록 요구하는 것이 아니라, 사용자는 명칭 공간 요소들의 선택 및 보호 의도의 제공에 의해 보호되어야 할 것을 간단하게 지정할 수 있다. 이어서, 이 정보는 선택된 데이터의 보호를 유지하기 위한 그룹 계획을 생성하는 데 사용된다. 일 실시예에서, 그룹 계획은 3개의 컴포넌트, 즉 자원 계획, 준비 계획 및 보호 계획을 포함한다.
자원 계획은 보호를 가능하게 하기 위해 필요한 자원들을 취득하는 데 필요한 작업들의 리스트를 포함한다. 준비 계획은 식별된 데이터의 보호를 설정하는 데 필요한 1회 작업들의 리스트를 포함한다. 예컨대, 1회 작업은 생성 위치에서 저장 위치로의 데이터의 초기 복사 및 전송일 수 있다. 보호 계획은 보호 데이터의 정확성 및 완전성을 유지하는 데 필요한 진행 작업들의 리스트를 포함한다.
사용자에 의해 식별되는 보호 의도들에서 객체를 보호하기 위한 상세 계획으로의 변환은 본 명세서에서 의도 변환으로 지칭되고 설명된다. 본 발명의 일 실시예에서, 의도 변환은 보호 그룹 및 보호 그룹에 대해 제공되는 보호 의도 상에서 동작한다. 보호 의도는 논리적 표현으로서 표현되고 목표로서 기술될 수 있다. 목표는 원하는 보호 레벨(입도), 데이터 보호 방법, 데이터 보호 기간, 데이터 보호 빈도 등을 식별할 수 있다. 예를 들어, 사용자는 "어떠한 실행 파일 쉐어도 30분 이상 잃어서는 안 되며, 모든 컨텐츠를 일년 동안 보존해야 한다"라는 보호 의도를 식별할 수 있다. 보호 의도로부터의 동사들은 의도들을 객체를 보호하는 상세 계획으로 변환하기 위한 액션으로 사용된다. 이전 예를 참조하면, 의도에 대한 대응 액션들은 "30분마다 볼륨 및 폴더를 복제한다", "일주마다 아카이브한다" 및 "일년 매체 보존과 함께 오프 사이트로 저장한다"이다.
본 발명의 일 실시예에서, 보호 의도들을 식별하는 보호 템플릿들이 사용자에 의해 선택되어, 선택된 보호 그룹을 보호하기 위한 계획을 생성하는 데 사용될 수 있다. 보호 템플릿은 적절한 동사 및 디폴트 특성을 포함하는 하나 이상의 프로토타입 작업 정의를 포함한다. 보호 템플릿은 또한 디폴트 프로토타입 스케쥴을 포함한다. 예를 들어, "한 시간마다의 복제, 하루 동안 생성되는 3개의 시간 버젼, 밤마다의 아카이브, 전송을 위한 비암호화, 저장 위치에서의 비암호화"가 디폴트 프로토타입 스케쥴이다. 사용자는 보호 템플릿을 오버라이드하고 명시적으로 변경할 수 있는 능력을 갖는다. 예를 들어, 사용자는 이전의 보호 템플릿을 변경하여 매시간 복제, 하루 동안 단 하나의 시간 버젼, 매주의 아카이브, 전송에 대한 비암호화, 저장 위치에서의 비암호화를 생성할 수 있다. 전술한 디폴트 프로토타입 스케쥴에서 식별되는 "전송에 대한 비암호화"는 데이터가 생성 위치에서 저장 위치로 전송될 때 암호화가 필요하지 않다는 것을 식별한다. 대안으로, 데이터는 생성 위치와 저장 위치 간의 전송을 위해 암호화될 수 있다. "저장 위치에서의 비암호화"는 저장 위치에 복제본 또는 아카이브로서 저장된 데이터가 암호화될 필요가 없다는 것을 식별한다. 대안으로 저장 데이터는 암호화될 수 있다. 예를 들어, 테이프와 같은 분리식 매체에 아카이브된 생성 위치의 사본들은 암호화될 수 있다. 또한, 복제본으로서 저장된 사본들도 또는 대안으로 암호화될 수 있다. 본 발명의 실시예들에서 전송 및 저장을 위해 데이터를 암호화하기 위한 임의의 암호화 기술이 이용될 수 있다는 것을 당업자는 이해할 것이다.
도 30은 본 발명의 일 실시예에 따라 한 세트의 데이터를 보호하는 계획으로 보호 의도들을 변환하는 흐름도이다. 사용자 인터페이스(3003)를 통해 데이터 보호 시스템과 인터페이스하는 사용자는 보호할 명칭 공간 요소들의 리스트를 선택한다. 보호할 명칭 공간 요소들의 선택은 데이터 보호기(3001)로 전송되고, 이에 응답하여 데이터 보호기는 사용자 인터페이스를 통해 사용자에게 보호 의도 디폴트를 제공한다. 구체적으로, 데이터 보호기는 선택된 명칭 공간 요소들의 수신시 선택된 명칭 공간 요소들과 관련된 보호 가능 객체들을 식별하고, 사용자에게 제공되는 보호 의도들의 디폴트 리스트를 식별한다.
사용자는 보호 의도 디폴트의 수신에 응답하여 사용자 인터페이스(3003)와 상호작용하여 적절한 디폴트를 수정하거나 선택한다. 데이터 보호기(3001)는 선택 또는 수정을 수신하고, 의도를 저장하며 객체들에 대한 보호 그룹을 생성한다. 의도는 바이너리, XML 또는 데이터베이스 테이블을 포함하지만 이에 한하지 않는 임의의 포맷으로 저장될 수 있다. 데이터 보호기(3001)는 보호 의도 디폴트에 임의의 수정을 적용하며 수정된 보호 의도를 이용하여, 바이너리, XML 또는 데이터베이스 테이블을 포함하지만 이에 한하지 않는 임의의 형태로 저장될 수 있는 보호 그룹을 보호하기 위한 상세 계획을 생성한다.
보호 그룹을 보호하기 위한 상세 계획을 생성하는 것과 유사하게, 데이터 보호기는 표명된 복구 의도, 복구 파라미터 및 복구할 명칭 공간 요소의 선택이 주어진 선택된 복구 가능 객체들에 대한 복구 계획을 생성할 수 있는 능력을 구비한다. 복구 계획을 생성하기 위하여, 데이터 보호기는 필요한 복구 소스들을 결정하고 이들을 적절히 배열한다. 또한, 데이터 보호기는 데이터가 복구될 장소를 식별하는 물리적 경로인 복구 타겟을 결정한다.
복구 진행 방법을 제어하기 위하여 여러 개의 상이한 복구 의도가 지정될 수 있다. 예를 들어, 중복 기입 의도는 파일을 생성 위치로 복구하려고 할 때 파일이 이미 생성 위치에 존재하는 것으로 판정된 경우에 발생하는 것을 제어한다. 항상 중복 기입, 중복 기입 없음, 둘 중의 가장 최근 것 사용을 포함하지만 이에 한하지 않는 여러 대안이 제공될 수 있다. 지정될 수 있는 다른 복구 의도는 복구된 객체들의 보안이 설정되어야 하는 방법이다. 예를 들어, 복구 객체의 보안이 부모 객체로부터 보안을 상속하는 것으로 지정될 수 있다(예컨대, 폴더에 복구된 파일의 보안은 폴더와 동일한 보안을 받는다). 대안 모델은 복구 객체의 보안을 백업시에 있었던 바로 그 보안으로 복원하는 것이다. 의도들은 또한 복구 객체가 전송 동안 그리고/또는 저장시에 암호화되어야 할지를 지정할 수 있다.
도 31 및 32는 본 발명의 일 실시예에 따라 생성 위치에 위치하는 물리 객체를 보호하기 위한 상세 계획으로 보호 의도들을 변환하는 의도 변환 루틴의 흐름도이다. 의도 변환 루틴(3200)은 블록 3201에서 시작하고, 블록 3203에서 보호될 명칭 공간 요소의 선택 및 선택된 명칭 공간 요소에 적용될 보호 의도가 수신된다. 전술한 바와 같이, 명칭 공간 요소는 생성 위치에 위치하는 보호 가능 객체로 맵핑된다. 또한, 전술한 바와 같이, 명칭 공간 요소의 선택 및 관련 보호 가능 객체는 데이터 보호 시스템에 의해 보호 의도가 적용될 보호 그룹으로 컴파일된다. 블록 3205에서, 보호 그룹은 "변환 중"으로 표시된다. 보호 그룹을 "변환 중"으로 표시하는 것은 의도 변환이 성공적으로 완료되거나 실패할 때까지 사용자가 보호 그룹에 대한 임의의 변경을 행하는 것을 방지하고 행해진 임의의 변경을 되돌린다.
블록 3207에서, 선택된 보호 그룹에 대한 보호를 적절히 제공하는 데 필요한 자원 요건이 계산된다. 자원 요건은 보호 그룹에 대해 어떠한 변경이 요구되는지를 결정함으로써 식별된다. 보호 그룹에 대해 요구될 수 있는 변경들의 예는 새로 운 데이터 소스가 보호 그룹에 추가되는 것, 보호 그룹으로부터 데이터 소스가 제거되는 것, 보호 그룹에 대한 데이터 소스가 보호 객체를 추가 또는 제거함으로써 변경되는 것, 자원들이 추가 또는 수정되는 것(예를 들어, 복제본에 대한 디스크 공간의 추가 또는 제거, 아카이브에 대한 분리식 매체의 추가 또는 제거), 보호 그룹에 대한 보호 목표 또는 스케쥴이 조정되는 것, 또는 새로운 보호 그룹이 처음 추가되는 것을 포함하지만 이에 한하지 않는다. 또한, 필요한 자원의 크기는 저장 위치에 복사되어 저장하려고 하는 생성 위치에 위치하는 보호 객체들의 크기, 특정 보호 방법 및 지정된 보호 의도를 식별함으로써 결정된다.
블록 3209에서, 자원 계획이 생성되어 보호 그룹에 대한 보호를 제공하는 데 필요한 자원들을 할당하도록 실행된다. 자원 계획은 필요한 자원을 결정하고 이러한 자원을 얻는 데 필요한 임의의 작업들을 포함한다. 예를 들어, 이들 작업은 디스크 공간의 할당, 기존 저장 공간의 증가, 테이프 매체의 할당, 테이프 라이브러리 변경자 및 드라이브의 할당, 자유 매체 풀로부터의 테이프 요구 등을 포함할 수 있다. 자원 계획에 포함된 작업들은 사용자가 원하는 보호 타입에 종속한다. 예를 들어, 복제에 있어서, 작업들은 복제본 및 시간 버젼에 대한 디스크 자원들의 할당 및 가능하게는 로그 영역에 대한 자원들의 할당을 포함한다. 블록 3209에서 생성되는 자원 계획과 연관된 작업들이 실행되고, 보호 그룹에 필요한 자원들이 할당된다.
자원들이 할당된 후, 블록 3211에서 데이터 보호 시스템에 의해 체크 포인트가 생성된다. 다른 실시예에서, 자원 계획은 자원들을 할당하는 데 필요한 작업들 의 생성만을 포함할 수 있으며, 실제로 이들 작업의 실행은 포함하지 않는다. 자원 계획과 연관된 작업들의 실행은 준비 계획의 일부로서 스케쥴링되고 수행될 수 있다. 이 실시예에서, 의도 변환이 완료될 때까지 체크 포인트는 생성되지 않는다. 따라서, 의도 변환이 완료되지 않으면, 처음부터 다시 시작해야 한다. 블록 3209와 관련하여 후술하는 바와 같이, 자원 할당 후의 체크 포인트의 생성은 의도 변환 루틴이 성공적으로 완료되지 못한 경우 루틴이 재개될 수 있는 공지 포인트를 제공한다.
자원들의 전부가 아니라 일부가 자원 할당 작업의 실행 동안에 할당되는 것이 가능하므로(예를 들어, 시스템은 물리 자원들의 일부만을 할당한 후 정지한다), 본 발명의 일 실시예에서는 의도 변환 루틴의 불완전한 실행에서 완전히 할당되지 않은 자원들을 제거하는 제거 루틴을 포함한다. 제거 루틴은 시스템의 자원 할당을 소정의 방식으로 거동하도록 설계함으로써 달성된다. 일 실시예에서, 자원은 데이터 소스마다 할당되며, 주어진 데이터 소스에 필요한 모든 자원이 할당되거나 전혀 할당되지 않는다. 자원들의 일부만이 할당되고 할당 작업이 인터럽트된 경우, 자원 할당 계획의 할당 작업들의 이전 실행으로부터 부분적으로 할당된 임의의 자원을 제거하기 위한 리프레시 작업이 생성된다. 제거 루틴이 부분적으로 할당된 임의의 자원들을 제거한 경우, 데이터 보호 시스템은 필요에 따라 자원들을 재할당할 수 있다. 의도 변환은 자원들이 성공적으로 할당된 새로운 보호 객체들에 대해 계속될 수 있다.
도 31을 다시 참조하면, 블록 3209에서 자원들의 할당이 성공적으로 완료된 때, 블록 3211에서 체크포인트가 생성된다. 자원들의 할당 후의 체크포인트의 생성은 자원들이 할당된 후 그러나 완료 이전에 의도 변환 루틴(3200)이 인터럽트된 경우에 발생할 수 있는 어떠한 문제도 해결할 수 있는 능력을 데이터 보호 시스템에 제공한다. 예를 들어, 블록 3211로 도시된 바와 같이, 시스템이 의도 변환 루틴의 완료 전에 그러나 제1 체크포인트가 추가된 후에 정지한 경우, 데이터 보호 시스템은 다시 시작할 때 의도 변환 루틴이 인터럽트되었다는 것을 식별하고, 자원들의 할당에 이어 추가된 체크포인트를 찾는다. 체크포인트를 식별함으로써, 이전에 할당된 자원들이 이용될 수 있으며, 의도 변환 루틴(3200)은 완전히 재개시하여 자원들을 재할당할 필요 없이 그 체크포인트로부터 재개할 수 있다. 의도 변환 루틴에 대한 인터럽션 후의 개재시는 도 38과 관련하여 후술한다.
판정 블록 3213에서, 의도 변환 루틴(3200)은 보호 그룹과 현재 연관된 임의의 기존 작업들 및/또는 태스크들이 있는지를 판정한다. 판정 블록 3213에서 보호 그룹과 연관된 기존 작업 및/또는 태스크가 존재하는 것을 판정된 경우, 블록 3215에서 이들 작업 및 태스크가 등록이 취소되고, 블록 3217로 도시된 바와 같이 임의의 활성 작업들이 종료된다. 보호 그룹이 처음 생성되고 있는 것이 아니라 수정되고 있는 경우에는 이 보호 그룹에 대한 작업 및 태스크가 사전에 존재할 수 있다.
판정 블록 3213에서 보호 그룹에 대한 기존 작업 및/또는 태스크가 존재하지 않는 것으로 판정된 경우, 또는 블록 3217에서 기존 작업 및/또는 태스크가 종료된 후, 의도 변환 루틴(3200)은 블록 3219에서 보호 계획을 생성하고 스케쥴링한다. 후술하는 바와 같이, 보호 계획은 시간에 따라 저장 위치에 보호 그룹의 사본의 정 확성을 유지하는 데 필요한 작업들의 리스트를 포함한다. 또한, 의도 변환 루틴(3200)은 블록 3221에서 준비 계획을 생성하고 스케쥴링한다. 후술하는 바와 같이, 준비 계획은 보호 계획과 연관된 작업들이 실행되고 보호 그룹의 보호의 정확성이 달성될 수 있도록 하나의 상태로 생성 위치 및 저장위치를 설정하기 위해 사용되는 1회 작업들의 리스트를 포함한다. 예를 들어, 이것이 보호 그룹이 생성된 첫번째이고 복제본에 저장되는 경우, 복제본에 상주하는 보호 그룹과 연관된 데이터의 사본은 존재하지 않는다. 따라서, 준비 계획과 연관된 작업들 중 하나는 보호 객체들의 사본의 생성 및 이 사본의 복제본 상의 저장일 수 있다.
이제 도 22를 참조하면, 블록 3225에서 의도 변환 루틴(3200)은 전술한 저장 검색 및 자동 발견 그룹을 생성한다. 전술한 바와 같이, 자동 발견 그룹 및 저장 검색은 스케쥴링된 발견 루틴의 일부로서 실행된다.
자원 계획, 준비 계획, 보호 계획, 저장 검색 및 자동 발견 그룹에 대한 작업들이 생성된 후, 블록 3227에서 작업의 생성의 완료를 나타내는 제2 체크포인트가 데이터 보호 시스템에 추가된다. 전술하고 후술하는 바와 같이, 이 체크포인트는 의도 변환 루틴(3200) 동안 발생한 인터럽션으로부터 복구하기 위해 데이터 보호 시스템에 의해 사용될 수 있다. 예를 들어, 블록 3227로 도시된 바와 같이, 의도 변환 루틴(3200)이 체크포인트가 생성된 후에 인터럽트된 경우, 재시작 동안 데이터 보호 시스템은 의도 변환 루틴(3200)이 진행중이었다는 것을 식별하고, 계획 및 작업이 생성되었음을 나타내는 체크포인트를 찾는다. 체크포인트의 식별시, 의도 변환 루틴(3200)은 이 체크포인트로부터 재개되어 완료될 수 있다.
블록 3229에서, 보호로부터 제거된 새 보호 객체 및 이전 보호 객체의 상태가 이들의 보호 계획에 대한 포함 및 제거를 반영하도록 갱신된다. 블록 3209에서 자원 할당 에러를 가진 것으로 표시된 보호 객체들은 대기 상태로 돌아간다. 블록 3231에서, 모든 체크포인트가 삭제되고, 보호 그룹은 "변환 중이 아님"으로 표시된다. 모든 보호 객체가 제거된 경우, 보호 그룹은 제거될 수 있다. 블록 3233에서, 의도 변환 루틴(3200)이 종료된다.
도 33은 본 발명의 일 실시예에 따라 보호 그룹에 대한 보호 계획을 생성하는 보호 계획 생성 루틴의 흐름도이다. 보호 계획 생성 루틴(3300)은 블록 3219(도 31)와 관련하여 전술한 보호 계획의 생성 및 스케쥴링을 상세히 기술한다. 보호 계획 생성 루틴(3300)은 블록 3301에서 시작하고, 블록 3303에서 보호 그룹에 대한 복사 작업이 생성되고 스케쥴링된다. 복사 작업은 생성 위치의 하나 이상의 보호 가능 객체에 대해 발생한 변경을 저장 위치에 저장되는 하나 이상의 대응하는 보호 가능 객체의 사본으로 복사하는 작업이다. 예를 들어, 하루 동안 사용자가 생성 위치에 위치하는 보호 객체들을 수정한 경우, 복사 작업의 실행시, 이들 변경이 복사되어 저장 위치로 전송되고, 이러한 변경을 포함하도록 사본이 갱신된다.
블록 3305에서, 보호 계획 생성 루틴(3300)은 시간 버젼 작업을 생성하고 스케쥴링한다. 시간 버젼 작업은 저장 위치에서 데이터의 실제 버젼닝을 수행하도록 스케쥴링된 작업이다. 시간 버젼의 생성은 당업자에게 공지되어 있으며 본 명세서에서는 상세히 설명하지 않는다.
블록 3307에서, 검증 루틴이 생성되고 스케쥴링된다. 실행시 작업은 도 35 와 관련하여 후술하는 바와 같이 검증 루틴을 실행한다. 블록 3309에서, 보호 계획 생성 루틴(3300)이 종료된다.
도 34는 본 발명의 일 실시예에 따라 준비 계획을 실행하는 준비 계획 실행 루틴의 흐름도이다. 준비 계획 실행 루틴(3400)은 블록 3401에서 시작하고, 블록 3403에서 보호 그룹을 보호하기 위해 추가 자원이 필요한지에 대한 판정이 이루어진다. 전술한 바와 같이, 저장 위치에서 보호 그룹을 보호하는 데 필요한 자원들을 결정하기 위한 자원 계획이 생성된다. 일 실시예에서, 이러한 자원들은 준비 계획의 생성 및 실행 전에 자원 계획 동안 할당될 수 있다.
판정 블록 3403에서 자원이 필요한 것으로 판정된 경우, 블록 3405에서 이들 자원을 할당하기 위해 자원 계획에서 생성된 작업들이 실행되고 자원들이 할당된다.
블록 3405에서 자원들의 할당에 이어서, 또는 블록 3403에서 보호 그룹의 보호를 위한 추가 자원이 필요하지 않은 것으로 판정된 경우, 블록 3407에서 보호 그룹과 연관된 물리 객체들의 초기 사본이 생성되고 저장 위치로 전송되어 이전 할당 자원들 상에 저장된다. 보호 그룹의 초기 사본이 생성되어 저장 위치에 저장된 경우, 복제를 위해 블록 3409에서 생성 위치에 위치하는 실제 물리 객체들을 이용하여 사본이 검증된다. 검증은 도 35와 관련하여 후술한다.
판정 블록 3411에서, 임의의 보호 객체가 보호 그룹으로부터 제거되었는지의 여부에 대한 판정이 이루어진다. 블록 3411에서 보호 객체가 보호 그룹으로부터 제거된 것으로 판정된 경우, 블록 3413에서 준비 계획은 이들 객체의 모니터링을 중지하는 작업을 포함하며, 이들 객체는 보호 가능 객체로 남는다. 모니터링은 자원을 소비하기 때문에, 모니터링이 더 이상 필요하지 않을 때 작업은 모니터링을 중지한다. 블록 3415에서 준비 계획 실행 루틴(3400)이 종료된다.
전술한 바와 같이, 본 명세서에 설명된 루틴들을 수행하기 위해 보다 많거나 적은 블록들이 사용될 수 있다. 예를 들어, 매체 로드를 통해 복사가 달성될 때, 준비 계획(3400)은 데이터의 초기 사본을 생성하지 않는다(블록 3407). 또한, 사본이 아카이브에 대한 것일 때, 준비 계획(3400)은 데이터의 초기 사본을 생성하지 않는다(블록 3407).
도 35는 본 발명의 일 실시예에 따라 저장 위치에 위치하는 데이터의 사본을 검증하는 검증 루틴의 흐름도이다. 검증 루틴(3500)은 블록 3501에서 시작하고, 블록 3503에서 검증 루틴(3500)은 생성 위치에 위치하는 물리 객체들에 대한 검증 파라미터를 취득한다. 당업자가 이해하듯이, 검증 파라미터는 생성 위치에 위치하는 물리 객체들의 체크섬일 수 있다. 대안으로, 검증 파라미터는 생성 위치에서 물리 객체들의 최종 변경 시간, 또는 생성 위치에 위치하는 물리 객체들의 크기일 수 있다. 일반적으로, 검증 파라미터는 생성 위치에 위치하는 물리 객체들의 임의 타입의 식별자일 수 있다.
블록 3505에서, 검증 루틴(3500)은 저장 위치에 위치하는 객체들에 대한 검증 파라미터를 취득한다. 생성 위치의 객체들에 대한 검증 파라미터와 유사하게, 저장 위치의 객체들의 검증 파라미터는 체크섬, 최종 변경 시간, 파일 크기 등일 수 있다.
불록 3507에서, 불록 3503에서 얻은 생성 위치의 보호 객체의 검증 파라미터 및 블록 3505에서 얻은 저장 위치의 객체의 검증 파라미터가 비교되어 저장 위치에 위치하는 객체들이 생성 위치에 위치하는 보호 객체들과 매칭되는지를 확인한다. 판정 블록 3509에서, 블록 3507에서 비교된 파라미터들이 매칭되는지에 대한 판정이 이루어진다. 블록 3509에서 파라미터들이 매칭되지 않는 경우, 블록 3513에서 검증 루틴(3500)은 생성 위치로부터 매칭되지 않는 보호 객체들을 다시 복사하고, 저장 위치에 위치하는 객체들을 대체하며, 판정 블록 3511로 진행한다.
그러나, 판정 블록 3509에서 파라미터들이 매칭되는 것으로 판정된 경우, 판정 블록 3511에서 보호 그룹에 대해 아직 검증되지 않은 추가 데이터가 존재하는지에 대한 판정이 이루어진다. 보호 그룹에 대해 검증되지 않은 추가 데이터가 저장 위치에 위치하는 것으로 판정된 경우, 검증 루틴은 블록 3503으로 돌아가서 프로세스 계속한다. 이와 달리, 판정 블록 3511에서 추가 데이터가 존재하지 않는 것으로 판정된 경우, 저장 위치는 검증되며, 검증 루틴은 블록 3515에서 종료하여, 저장 위치에 위치하는 객체들이 보호 객체들과 매칭됨을 확인한다.
검증 루틴이 사본의 정확성을 확인하기 위해 의도 변환 동안 준비 계획의 일부로서 실행되는 것 외에, 검증 루틴은 물리 객체들의 보호의 정확성을 계속 재확인하도록 스케쥴링될 수 있다. 더욱이, 검증 루틴은 저장 위치에 위치하는 객체들의 사본을 유효 상태로 만들도록 스케쥴링되고 실행될 수 있다. 저장 위치에 위치하는 물리 객체들의 사본은 시스템이 멈추거나 소정의 다른 타입의 스케쥴링되지 않은 변경이 발생하는 경우에 무효 상태가 될 수 있다. 예를 들어, 복제본은 변경 로그(후술함)가 저장 위치에서의 변경들의 이용 실패로 인해 오버플로우되는 경우 무효로 될 수 있다.
도 36은 본 발명의 일 실시예에 따라 저장 위치에 위치하는 객체들의 사본을 검증하는 스케쥴링된 검증 루틴의 흐름도이다. 스케쥴링된 검증 루틴(3600)은 블록 3601에서 시작하고, 블록 3603에서 루틴은 검증될 저장 위치에 위치하는 보호 그룹의 객체들의 사본을 식별한다. 판정 블록 3605에서, 식별된 사본이 유효상태인지 무효 상태인지에 대한 판정이 이루어진다. 판정 블록 3605에서 식별된 사본이 무효 상태인 것으로 판정된 경우, 블록 3607에서 스케쥴링된 검증 루틴(3600)은 도 35와 관련하여 설명된 검증 루틴(3500)을 실행한다.
그러나, 판정 블록 3605에서 사본이 유효 상태인 것으로 판정된 경우, 판정 블록 3609에서 저장 위치에 위치하는 보호 그룹의 임의의 추가 사본들의 유효성을 확인할 필요가 있는지에 대한 판정이 이루어진다. 판정 블록 3609에서 추가 사본들의 유효성을 확인할 필요가 있는 것으로 판정된 경우, 스케쥴링된 검증 루틴(3600)은 블록 3603으로 돌아가서 검증될 추가 사본을 식별하고 프로세스를 계속한다. 그러나, 판정 블록 3609에서 저장 위치에 검증될 추가 사본들이 없는 것으로 판정된 경우, 스케쥴링된 검증 루틴(3600)은 블록 3611로 도시된 바와 같이 종료한다.
도 37은 본 발명의 일 실시예에 따른 복제본에 대한 상태 전이의 블록도이다. 자원 할당 동안 저장 위치의 일부를 할당하기 전에, 복제본은 비할당 상태에 있다. 의도 변환이 보호 그룹에 대해 자원을 할당한 후, 복제본은 할당 상태로 전 이된다. 이어서, 컨텐츠들(보호 그룹의 사본)은 전송되어 저장 위치에 저장되어야 한다. 전송 및 저장은 자동화된 매체 로드에 의해 디스크 대 디스크 초기화(데이터 보호 시스템에 의해 자동으로)를 이용하거나, 관리자에 의해 수동으로(예를 들어, 수동 매체 로드에 의해) 달성될 수 있다. 디스크 대 디스크 초기화가 행해지는 경우, 의도 변환기는 초기 복사 작업을 자동으로 생성한다. 초기 복사 작업은 실행시 복제본을 무효 상태로 만든다. 사본이 매체 로드를 이용하여 초기화되는 경우, 사용자는 매체 로드가 완료된 때를 지시하고, 복제본은 그 시점에서 무효 상태로 된다.
복제본이 무효 상태인 경우, 복제본을 유효 상태로 만들기 위하여 검증 작업이 실행되어야 한다. 전술한 바와 같이, 검증 작업은 저장 위치의 사본이 생성 위치의 보호 객체와 매칭되는 것을 보장한다.
복제본이 할당 상태(3703), 무효 상태(3705) 또는 유효 상태(3711)에 있는 것 외에, 복제본은 누락 상태(3713)로 전이할 수 있다. 예를 들어, 시간에 따라 특정 보호 그룹에 대한 사본에 할당된 물리 매체는 실패하여 복제본은 누락 상태가 될 수 있다. 누락 상태(3713)에서, 데이터 보호 시스템은 사용자와 상호작용하여 복제되고 있었던 정보가 계속 보호되어야 하는지의 여부를 판정한다. 보호 그룹이 계속 보호되어야 하는 경우, 자원들은 재할당되어, 복제본은 다시 할당 상태(3703)로 전이한다. 누락 상태(3713)로부터 복제본과 관련된 정보가 더 이상 보호될 필요가 없는 것으로 판정된 경우, 복제본은 파손 상태(3707)로 전이될 수 있고, 데이터 보호 시스템에 의한 보호 그룹에 대한 복제는 더 이상 수행되지 않는다.
복제본은 또한 일시적으로 누락 상태(3713)로 전이될 수 있다. 예를 들어, 디스크는 소정의 하드웨어 문제로 인해 일시적으로 분리되거나 이용 불가능하게 된 후 다시 이용 가능하게 될 수 있다. 이러한 경우에, 디스크가 다시 이용 가능하게 될 때, 복제본은 유효 상태(3711) 또는 무효 상태(3705)로 돌아갈 수 있다.
파손 상태(3707)는 사용자가 더 이상 보호 그룹을 보호하기를 원하지 않는다는 것을 표시하는 것에 응답하여 도달된다. 복제본은 임의의 다른 상태에서 파손 상태(3707)로 전이될 수 있다. 예를 들어, 복제본이 무효 상태(3705)에 있는 경우, 사용자는 복제본 상에 복사된 보호 객체를 더 이상 보호하기를 원하지 않는다는 것을 표시할 수 있으며, 이에 따라 복제본은 파손 상태(3707)로 전이된다. 복제본을 파손 상태로 하는 것은 데이터 보호 시스템에게 사용자가 복제본 상에 복사된 보호 객체들의 보호를 끝냈다는 것을 표시하며, 하드 디스크와 같은 물리 매체는 자유 매체 풀로 돌아가 다른 보호 그룹에 할당될 수 있다.
본 발명의 일 실시예에서, 사용자가 복제본 상에 복사된 보호 객체들의 보호를 계속하기를 원하지 않는 것을 표시할 때, 복제본은 중지 상태(3709)로 전이될 수 있으며, 이에 따라 복제본 및 그의 시간 버젼은 유한 기간 동안 유지된다. 정보가 더 이상 보호되지 않는 것으로 표시된 후 정보를 유지하는 것은 사용자에게 보호를 중지한 시점까지 정보를 복구할 수 있는 능력을 제공한다.
도 38은 본 발명의 일 실시예에 따라 이전 의도 변환 루틴 동안에 발생한 인터럽션에 후속하는 의도 변환 루틴을 재개하는 재개 루틴의 흐름도이다. 재개 루틴(3800)은 블록 3801에서 시작하고, 판정 블록 3803에서 루틴은 보호 그룹이 현재 의도 변환 중인지를 판정한다. 판정 블록 3803에서 보호 그룹이 의도 변환 중인 것으로 판정된 경우, 판정 블록 3805에서 의도 변환 중인 보호 그룹에 모든 자원이 할당되어 있는지에 대한 판정이 이루어진다. 판정 블록 3805에서 모든 자원이 할당되지 않은 것으로 판정된 경우, 재개 전에 할당된 임의의 자원은 블록 3806에 도시된 바와 같이 할당이 취소된다. 이전에 할당된 임의의 자원의 할당을 취소한 후, 판정 블록 3807에서 의도 변환 중인 보호 그룹이 새로운 보호 그룹인지의 여부를 판정한다. 판정 블록 3807에서 보호 그룹이 새로운 보호 그룹이 아닌 것으로 판정된 경우, 블록 3808에서 루틴은 기존 보호 그룹에 추가된 새로운 객체들을 대기 상태로 만든다. 구체적으로, 새로운 객체들은 사용자에 의해 보호되지 않고 사용자 액션을 기다리게 된다.
블록 3809에서 기존 보호 그룹이 변환 중이 아닌 것으로 표시되며, 블록 3817에서 루틴은 종료한다. 기존 그룹을 변환 중인 아닌 것으로 만들고, 새로운 객체들을 대기 상태로 만드는 것은 데이터 보호 시스템을 변환 시도 전의 상태로 돌아가게 한다. 구체적으로, 새로운 객체들은 다시 기존 보호 그룹에 추가되어야 하며, 기존 보호 그룹의 객체들은 의도 변환 루틴에서의 초기 시도 전에 보호된 것처럼 계속 보호된다.
판정 블록 3807을 다시 참조하면, 인터럽션이 발생한 때 의도 변환 중인 보호 그룹이 새로운 보호 그룹인 것으로 판정된 경우, 블록 3811에서 새로운 보호 그룹의 모든 보호 객체가 대기 상태로 되고(즉, 사용자에 의해 보호되지 않고 사용자 액션을 기다림), 루틴은 블록 3817에서 종료한다. 객체들을 대기 상태로 하는 것 외에, 보호 그룹 내에 보호 객체들이 존재하지 않을 때 보호 그룹은 삭제될 수도 있다.
판정 블록 3805를 다시 참조하면, 모든 자원이 인터럽션 전에 할당된 것으로 판정된 경우, 블록 3813에서 시도된 의도 변환 루틴에 의해 생성된 최종 체크 포인트가 식별된다. 전술한 바와 같이, 체크 포인트는 의도 변환 루틴 내의 2개의 상이한 포인트에서 생성된다. 구체적으로, 체크 포인트는 자원이 할당된 후, 그리고 다시 보호 계획이 생성되거나 갱신된 후, 그리고 준비 계획이 생성된 후에 생성된다. 최종 체크 포인트가 블록 3813에서 식별되면, 블록 3815에 도시된 바와 같이 식별된 최종 체크 포인트로부터 의도 변환 루틴이 재개되고, 블록 3817에서 프로세스가 종료된다.
물리 객체들이 저장 위치에서 보호될 수 있는 여러 방법이 있다. 예를 들어, 복제본은 서버와 같은 컴퓨팅 장치에 유지될 수 있고, 아카이브 사본은 테이프 또는 분리식 매체 등과 같은 물리적 매체에 저장될 수 있다. 사용자가 원하는 보호 타입은 전술한 바와 같이 의도 변환기에 의해 한 세트의 계획으로 변환되는 보호 의도들 또는 하이 레벨 목표들의 일부로서 제공된다. 테이프 또는 다른 분리식 매체 상의 데이터의 아카이브에 대해, 하나 이상의 물리 매체를 통해 특정 시점에서의 보호 그룹의 데이터의 표현 또는 한 시점에 대한 그 변경을 포함하는 데이터 세트를 생성함으로써 데이터 보호가 행해진다. 데이터 세트는 하나 이상의 보호 객체와 연관된 하나 이상의 아카이브 경로의 결과이다. 또한, 각각의 데이터 세트는 하나 이상의 복구 소스를 포함할 수 있는데, 이는 다수의 복구 소스가 복구에 기여할 수 있고, 다수의 데이터 세트가 또한 복구에 기여하기 위해 필요할 수 있기 때문이다.
다른 백업 애플리케이션과 달리, 매체가 관리되는 주요 객체인 경우, 본 발명의 일 실시예에 따르면, 매체 자체 대신에 데이터 세트 및 데이터 세트의 매체와의 연관성이 관리된다.
아카이빙은 장기간(수주, 수개월 또는 수년 정도) 데이터를 유지하도록 설계된다. 아카이브된 매체는 일반적으로 지진 또는 화재와 같은 전체 생성 위치에 영향을 미치는 재난에 대해 보호하기 위하여 오프 사이트로 유지된다. 아카이브된 매체는 또한 서버 또는 디스크의 손상 또는 사용자 에러를 포함하는 보다 작은 결함으로부터의 복구를 위해 온 사이트로 유지될 수도 있다. 또한, 복제 및 아카이브 양자를 이용하는 실시예들에서, 아카이브된 매체는 복제와 함께 저장 위치에, 생성 위치에, 또는 별도의 위치에 유지될 수 있다.
도 39는 본 발명의 일 실시예에 따라 데이터를 아카이브하기 위한 계획을 생성하는 아카이브 보호 계획 생성 루틴을 나타낸다. 아카이브 보호 계획 생성 루틴(3900)은 블록 3901에서 시작하고, 블록 3903에서 루틴은 데이터 보호 유형을 수신한다. 데이터 보호 유형은 사용자가 데이터를 온 사이트, 오프 사이트 또는 온 사이트 및 오프 사이트 양자로 아카이브하기를 원하는지에 관하여 사용자에 의해 식별된다. 데이터 보호 유형을 수신하는 것 외에, 블록 3905에서 루틴은 데이터 보호 기간을 수신한다. 데이터 보호 기간은 사용자가 과거에 얼마나 멀리까지 보호 정보를 복구할 수 있기를 원하는지에 관하여 사용자에 의해 제공되는 하이 레벨 의 도이다. 이러한 의도는 사용자가 복구할 수 있기를 원하는 것에 관한 목표라고 할 수 있다.
예를 들어, "나는 최대 7년 동안의 데이터를 복구할 수 있기를 원한다"라는 의도를 제공하는 것은 사용자가 7년 전 생성 위치에 존재했던 정보에 대한 데이터를 복구할 있도록 허용하는 아카이브 계획으로 변환된다. 데이터 보호 기간은 수년, 수개월, 수주 또는 수일일 수 있다. 블록 3907에 도시된 바와 같이, 아카이브 보호 계획 생성 루틴(3900)은 또한 사용자가 데이터를 아카이브하는 액션이 발생하기를 원하는 시기와 같은 스케쥴링 의도를 수신한다. 다른 실시예에서, 데이터 보호 포맷도 수신될 수 있다. 데이터 보호 포맷은 풀 백업, 차등 백업, 및 증분 백업을 포함하지만 이에 한하지 않는다. 본 명세서에서 사용되는 풀 백업은 모든 보호 객체가 저장 위치로 복사되는 백업이다. 본 명세서에서 사용되는 차등 백업은 최종 풀 백업 이후 수정된 보호 객체들이 저장 위치에 복사되는 백업이다. 본 명세서에서 사용되는 증분 백업은 소정의 이전 백업(풀, 차등 또는 증분) 이후 수정된 보호 객체들만이 복사되는 백업이다. 본 명세서에서 설명되는 바와 같이, 차등 및 증분 백업은 일반적으로 부분 백업으로 지칭되며, 이것은 어느 하나를 식별하도록 의도된다. 사용자는 또한 아카이브가 생성 위치의 원본 데이터로부터 생성되어야 하는지의 여부를 지정하거나 아카이브가 저장 위치의 사본으로부터 생성되어야 함을 지정할 수 있다.
데이터 보호 유형 및 보호 기간에 기초하여, 아카이브 보호 계획 생성 루틴(3900)은 사용자에 의해 지정되는 하이 레벨 요건을 만족시키는 디폴트 아카이브 스킴을 결정한다. 일 실시예에서, 데이터를 아카이브하기 위한 4개의 다른 타입의 스킴이 존재한다. 증조부, 조부, 부모, 자식(GGFS)으로서 지칭되는 제1 스킴은 4주 동안 온 사이트로 유지되고, 사본이 소정의 년수 동안 오프 사이트로 유지되는 연간 풀 백업; 4주 동안 온 사이트로 유지되고, 사본이 일년 동안 오프 사이트로 유지되는 월간 풀 백업; 4주 동안 온 사이트로 유지되고, 사본이 4주 동안 오프 사이트로 유지되는 주간 풀 백업; 및 2주 동안 온 사이트로 유지되는 일간 차동 백업을 제공한다. 다른 실시예에서, 블록 3903에서 식별되는 보호 유형에 따라 온 사이트 또는 오프 사이트 사본만이 유지될 수 있다. 또 다른 실시예에서, 온 사이트 사본 자체는 블록 3903에서 식별되는 보호 유형에 기초하는 기간 후에 오프 사이트로 전송되어 유지될 수 있다. 다른 스킴은 조부, 부모, 자식(GFS) 스킴으로서 지칭된다. GFS 스킴은 4주 동안 온 사이트로 유지되고, 사본이 일년 동안 오프 사이트로 유지되는 월간 풀 백업; 4주 동안 온 사이트로 유지되고 사본이 4주 동안 오프 사이트로 유지되는 주간 풀 백업; 및 2주 동안 온 사이트로 유지되는 일간 차동 백업을 제공한다.
또 하나의 아카이브 스킴은 부모, 자식(FS) 스킴으로 지칭된다. FS 스킴은 4주 동안 온 사이트로 유지되고 사본이 4주 동안 오프 사이트로 유지되는 주간 풀 백업; 및 2주 동안 온 사이트로 유지되는 일간 차동 백업을 제공한다. 또 하나의 아카이브 스킴은 자식(S) 스킴으로 지칭된다. S 스킴은 일주 동안 온 사이트로 유지되고 사본이 일주 동안 오프 사이트로 유지되는 일간 풀 백업을 제공한다. 마지막으로, 정상적인 보호 스킴의 외부에서 취해지는 백업을 제공하는 임시 루틴도 이 용 가능하다. 이것은 온 사이트 또는 오프 사이트로 유지되는 만기가 없는 풀 백업일 수 있다.
디폴트 아카이브 스킴은 사용자에 의해 임의의 레벨에서 수정될 수 있으며, 추가/대체 디폴트 아카이브 스킴도 제공될 수 있다는 것을 당업자는 이해할 것이다. 예를 들어, 유형(온 사이트, 오프 사이트), 기간(월, 년) 및 포맷(풀, 차동, 증분)이 수정될 수 있다. 또한, 사용자는 아카이브 스킴에 대한 스케쥴링 제어를 지정할 수 있다. 예를 들어, 사용자는 스킴이 시작되는 주의 하루, 아카이브가 생성되는 날의 시간, 스킴이 회사 일정표, 달력 상에서 동작하는지의 여부 등을 표시할 수 있다.
도 39를 다시 참조하면, 디폴트 아카이브 스킴이 사용자에게 제공되며, 사용자에게는 제공된 스킴의 임의의 부분을 오버라이드할 수 있는 능력이 주어진다. 판정 블록 3911에서, 사용자가 결정된 아카이브 스킴에 대해 임의의 오버라이드를 제공했는지의 여부가 판정된다. 판정 블록 3911에서 사용자가 오버라이드를 제공한 것으로 판정된 경우, 블록 3913에서 아카이브 스킴은 이러한 오버라이드를 포함하도록 수정된다. 오버라이드들은 백업 스킴의 임의의 부분에 대해 제공될 수 있으며 범위가 변할 수 있다. 예를 들어, 오버라이드는 백업 포맷(풀, 차동, 증분), 유지될 온 사이트 사본들의 수, 유지될 오프 사이트 사본들의 수, 오프 사이트 사본의 보유 기간, S 레벨을 불가능하게 할지의 여부, 백업에 의해 생성된 데이터 세트가 검증되어야 하는지의 여부, 아카이브가 언제 생성 위치, 저장 위치 또는 다른 장소에서 생성되어야 하는지의 여부, 주의 시작일, 작업일의 수 등을 포함할 수 있 다. S 레벨을 불가능하게 하는 것은 다양한 이유에서 바람직할 수 있다. 예를 들어, 사용자가 아카이브 및 복제 양자를 구현한 경우, 사용자는 일간 아카이브 보호(S 레벨)를 행할 필요 없이 복제에 의존하여 모든 온 사이트 복구 요구를 처리하는 것으로 결정할 수 있다.
블록 3909에서 결정된 아카이브 스킴이 블록 3913에 도시된 바와 같이 승인되거나 수정된 경우, 블록 3915에서 아카이브 계획 생성 루틴(3900)은 아카이브에 의해 데이터를 보호하는 데 필요한 계획을 생성한다. 전술한 바와 같이, 데이터를 보호하는 데 필요한 계획은 자원 계획, 준비 계획, 및 보호 계획을 포함할 수 있다. 마지막으로, 블록 3915에 도시된 바와 같이 계획이 생성된 후, 아카이브 보호 계획 생성 루틴(3900)은 블록 3917에서 종료한다.
도 40은 본 발명의 일 실시예에 따라 아카이브 스킴을 생성하는 데 사용될 수 있는 상이한 세대들의 예를 나타내는 테이블이다. 테이블(4000)은 2주 동안 하나의 온 사이트 사본을 유지하고 일주에 5일(예를 들어, 월요일에서 금요일) 발생하며 어떠한 오프 사이트 사본도 유지하지 않는 증분 백업 모드를 갖는 자식 세대(4001)를 식별한다. 부모 세대(4003)는 4주 동안 유지되는 하나의 온 사이트 사본을 가진 풀 백업 모드를 유지하고, 풀 백업은 주당 1회(예를 들어, 토요일) 수행되는데, 예외적으로 각 달의 한 주(예를 들어 각 달의 마지막 토요일)는 풀 백업이 수행되지 않는다. 또한, 부모 세대(4003)는 4주 동안 하나의 오프 사이트 사본을 유지한다. 조부 세대(4005)는 매달 한번(예를 들어, 각 달의 마지막 토요일) 생성되는 하나의 온 사이트 사본을 4주 동안 유지하는 풀 백업 모드를 갖되, 예외적으 로 일년에 한달(예를 들어 한 해의 마지막 토요일)은 생성되지 않는다. 또한, 조부 세대(4005)는 12달 동안 하나의 오프 사이트 사본을 유지한다. 마지막으로, 증조부 세대(4007)는 4주 동안 유지되고 일년에 한 번(예를 들어, 한 해의 마지막 토요일) 생성되는 하나의 온 사이트 사본을 유지하는 풀 백업 모드를 갖는다. 또한, 증조부 세대(4007)는 7년 동안 하나의 오프 사이트 사본을 유지한다.
회사 일정(한 달의 마지막 토요일, 한 해의 마지막 토요일 등)에 따른 스케쥴링에 대한 대안으로서, 스케쥴링은 물리적 달력에 따라 이루어질 수 있다. 예를 들어, 한 달의 마지막 날, 한 해의 마지막 날, 한 달의 첫째 날 등에 작업이 발생하도록 스케쥴링될 수 있다. 이러한 날은 토요일일 수도 아닐 수도 있다. 당업자가 이해하듯이, 본 발명의 실시예들에서는 임의 타입의 스케쥴링 또는 일정이 이용될 수 있으며, 회사 일정표 또는 물리적 달력의 이용은 단지 예로서 제공된다. 스케쥴링의 다른 양태는 작업이 실행되어야 하는 기간을 지정할 수 있는 능력이다. 작업 실행 기간의 스케쥴링은 사용자에게 작업이 수행될 수 있는 특정 시간을 식별할 수 있는 능력을 제공한다. 또한, 데이터 보호 시스템은 보호 시스템이 작업이 지정 시간까지 완료되지 않을 수 있다는 것을 알게 된 때 사전 경고를 제공할 수 있다. 대안으로, 작업이 스케쥴링된 실행 기간 동안 완료되지 못한 때, 작업은 자동으로 종료되고 가능하다면 다시 스케쥴링될 수 있다.
당업자가 이해하듯이, 자식(4001, 부모(4003), 조부(4005) 및 증조부(4007)와 같은 세대들은 도 40과 관련하여 설명된 보호 계획 상에서 상이한 변형을 이용하도록 수정될 수 있다. 유일한 요건은 부모가 자식과 동일하거나 수퍼 세트이어 야 한다는 것이다. 예를 들어, 부모 세대가 풀 백업인 경우, 자식 세대는 풀, 차동 또는 증분 백업일 수 있다. 또한, 온 사이트 또는 오프 사이트로 유지되는 사본들의 수는 0에서 사용자가 원하는 임의의 수까지의 임의의 조합일 수 있다. 보유 기간 및 사본들이 생성되는 빈도도 사용자가 원하는 대로 조정될 수 있다.
데이터의 장기 보호를 위한 아카이브 스킴을 생성하는 것 외에도, 데이터 보호 시스템은 매체의 진행 할당, 회전, 저장(오프 사이트 저장) 및 회수를 제공한다. 따라서 본 발명의 일 실시예에 따르면, 매체 풀이 각각의 보호 그룹과 연관된다. 매체 풀은 매체의 컨테이너는 물론, 매체의 할당 및 재생을 제어하기 위하여 다양한 의도를 제공하는 객체 양자이다. 도 41을 참조하여 후술하는 바와 같이, 배열 의도와 같이 매체 할당을 제어하기 위한 여러 타입의 의도들이 존재한다. 본 발명의 일 실시예에 따라 사용될 수 있는 배열 의도의 예는 작업 배열 의도, 자식 배열 의도 및 부모/자식 배열 의도이다. 작업 배열 의도는 동일 작업 내의 태스크들에 대해 동일한 매체를 사용하려고 시도한다. 이것은 작업이 다수의 태스크를 갖고 이들 태스크로부터의 데이터가 단일 매체에 적합할 때 매체의 적재/비적재의 횟수를 줄인다. 자식 배열 의도는 GGFS, GFS, FS 또는 S 아카이브 스킴의 자식 작업들에 대해 매체가 사용되는 방법을 제어한다. 자식 배열 의도가 지정되면, 사이클(주 사이클 등)의 제1 자식 작업은 새로운 매체 상에서 시작되지만, 모든 후속 자식은 매체가 이용 불가능하거나 충분한 공간을 갖고 있지만 않다면 동일 매체에 추가하려고 시도한다. 부모/자식 배열 의도의 이용은 주간 풀 및 후속 일간 차동 및 증분 백업이 동일 매체 상에 저장되도록 한다.
도 41은 본 발명의 일 실시예에 따라 작업 배열 의도 및 자식 배열 의도 각각이 지정된 경우에 데이터를 아카이브하기 위한 매체를 할당하는 흐름 루틴이다. 이해하듯이, 배열 의도들의 다른 조합이 아카이브를 위한 매체를 할당하기 위해 지정될 수 있으며, 도 41과 관련하여 설명되는 루틴은 단지 하나의 예일 뿐이다. 매체 할당 루틴(4100)은 매체가 필요할 때마다 수행된다. 매체 할당 루틴(4100)은 블록 4101에서 시작하고, 판정 블록 4102에서 작업 배열이 지정되었는지의 여부가 판정된다. 작업 배열이 지정되지 않은 것으로 판정된 경우, 매체 할당 루틴은 판정 블록 4111로 진행하여 후술하는 바와 같이 계속된다. 그러나, 판정 블록 4102에서 작업 배열이 지정된 것으로 판정된 경우, 판정 블록 4103에서 매체를 할당하려고 시도하고 있는 태스크가 대체 작업으로부터 나온 것인지에 대한 판정이 이루어진다. 대체 작업은 성공적으로 완료되지 않은 이전 작업을 대체하는 작업이다. 판정 블록 4103에서 태스크가 대체 작업으로부터 나온 것인 것으로 판정된 경우, 블록 4105에서 루틴은 성공적으로 완료되지 않은 원래 작업에서 사용되고 할당된 동일 물리 매체를 할당하려고 시도한다.
그러나, 블록 4103에서 태스크가 대체 작업으로부터 나온 것이 아닌 것으로 판정된 경우, 판정 블록 4107에서 태스크가 작업의 제1 태스크인지에 대한 판정이 이루어진다. 태스크가 작업의 제1 태스크가 아닌 것으로 판정된 경우, 블록 4109에서 매체 할당 루틴(4100)은 동일 작업의 이전 태스크들에 이미 할당된 매체를 할당하려고 시도한다.
그러나, 판정 블록 4107에서 태스크가 작업의 제1 태스크인 것으로 판정된 경우, 판정 블록 4111에서 보호되는 데이터 세트가 제1 자식 데이터 세트인지에 대한 판정이 이루어진다. 블록 4111에서 보호되는 데이터 세트가 제1 자식 데이터 세트인 것으로 판정된 경우, 판정 블록 4112에서 FS 배열 의도가 지정되는지의 여부를 판정한다. FS 배열 의도가 지정된 경우, 블록 4113에서 매체 할당 루틴(4100)은 동일 사이클의 부모 데이터 세트에 의해 사용된 매체를 할당하려고 시도한다. 본 명세서에서 설명되는 사이클은 아카이브 세트에 대해 스케쥴링된 기간(수일 또는 수주 등)이다. 그러나, 판정 블록 4112에서 FS 배열 의도가 지정되지 않은 것으로 판정된 경우, 루틴은 후술하는 판정 블록 4115로 진행한다.
판정 블록 4111에서 데이터 세트가 자식 데이터 세트가 아니거나 사이클의 제1 자식이 아닌 것으로 판정된 경우, 판정 블록 4114에서 데이터 세트가 제2 또는 그 이후의 자식 데이터 세트인지가 판정된다. 데이터 세트가 제2 도는 그 이후의 자식 데이터 세트인 것으로 판정된 경우, 판정 블록 4118에서 FS 배열 의도 또는 S 배열 의도가 지정되었는지의 여부가 판정된다. FS 배열 의도 또는 S 배열 의도가 지정된 경우, 블록 4116에서 매체 할당 루틴(4100)은 동일 사이클의 최종 자식 데이터 세트에 의해 사용된 매체를 할당하려고 시도한다. 그러나, 판정 블록 4118에서 FS 배열 의도도 S 배열 의도도 지정되지 않은 것으로 판정된 경우, 루틴은 후술하는 블록 4115로 진행한다.
그러나, 판정 블록 4114에서 데이터 세트가 제2 또는 그 이후의 자식 데이터 세트가 아닌 것으로 판정된 경우, 판정 블록 4115에서 동일 세대로부터 리사이클 가능한 매체가 이용될 수 있는지에 대한 판정이 이루어진다. 예를 들어, 데이터 세트가 부모 데이터 세트인 경우, 이용 가능한 매체 상에 다른 부모 데이터 세트가 포함되어 있는지의 여부가 판정된다. 판정 블록 4115에서 동일 세대로부터 이용 가능한 리사이클 가능 매체가 존재하는 것으로 판정된 경우, 블록 4117에서 매체 할당 루틴(4100)은 동일 세대로부터 이용할 수 있는 가장 오래된 리사이클 가능 매체를 선택하고 이 매체를 할당하려고 시도한다.
판정 블록 4115에서 동일 세대로부터 이용할 수 있는 매체가 존재하지 않는 것으로 판정되거나, 판정 블록 4127에서 시도된 블록들(4105, 4109, 4113, 4117)의 할당 중 하나가 성공적으로 완료되지 못한 것으로 판정된 경우, 판정 블록 4119에서 자유로운 풀 내에 임의의 매체가 존재하는지에 대한 판정이 이루어진다. 판정 블록 4119에서 풀 내에 매체가 존재하는 것으로 판정된 경우, 블록 4121에서 매체 할당 루틴(4100)은 풀로부터 자유 매체를 취득하며, 이 매체는 할당에 사용된다.
마지막으로, 판정 블록 4119에서 특정 보호 그룹에 대해 풀 내에 자유 매체가 존재하지 않는 것으로 판정된 경우, 매체 할당 루틴(4100)은 블록 4123에서 추가 매체를 취득하려고 시도한다. 추가 매체는 사용자에게 보호 풀에 대해 추가 매체가 요구된다는 것을 통지하거나, 기존 자유 매체 풀에 질의함으로써 취득될 수 있다. 자유 매체 풀은 다른 보호 그룹과 연관되지 않은 매체를 포함한다. 자유 매체 풀에서 자유 매체가 이용될 수 없는 경우, 사용자는 추가 자유 매체가 저장 위치에 추가되고 자유 매체 풀로 할당되어야 한다는 것을 통지받는다. 블록 4125에 도시된 바와 같이, 매체 할당 루틴(4100)은 추가 매체가 할당된 후 종료되거나, 추가 매체가 할당될 수 없는 경우 실패한다.
도 41과 관련하여 설명된 의도들 외에, 매체 풀의 활동을 제어하기 위하여 추가 의도들이 사용될 수 있다. 예를 들어, 매체 풀 내에 유지될 수 있는 매체의 최대 수를 지정하는 최대 한계 의도가 사용자에 의해 지정될 수 있다. 최대 한계 의도의 사용은 최대 한계를 넘어 풀에 불필요하게 매체를 추가(사용자에 의해 또는 자동으로)하는 것을 방지한다. 유사하게, 24 시간 동안 특정 풀에 할당되는 자유 매체의 항목들의 수를 제어하기 위해 최대 일간 한계 의도가 사용될 수 있다. 최대 한계 및 최대 일간 한계의 이용은 자유 풀에서 특정 풀로의 불필요하거나 우발적인 매체 할당을 방지한다.
또한, 최소 임계 의도가 아카이브 보호를 위한 매체 할당에 대해 지정될 수 있다. 최대 임계 의도는 다양한 매체 풀로의 할당을 위해 자유 매체 풀에서 이용할 수 있어야 하는 매체의 최소 수를 지정한다. 자유 매체의 수가 최소 수 이하로 떨어지는 경우, 사용자는 추가 매체가 저장 위치에 추가되고 자유 매체 풀에 할당되어야 한다는 것을 통지받는다. 임의의 리사이클 가능 매체가 재사용되거나, 재할당을 위해 자유 매체 풀로 릴리스되기 전에 소거되어야 하는지를 제어하는 매체 소거 의도도 지정될 수 있다.
생성 위치에서 저장 위치로의 보호 객체의 복제 또는 복사는 각각의 위치에 설치된 한 쌍의 에이전트 사이에서 발생한다. 한 쌍의 에이전트의 액션은 데이터 보호기에 의해 제어된다. 예를 들어, 복제를 위해 생성 위치에 클론 에이전트가 설치되고, 저장 위치에 복제 에이전트가 설치된다. 클론 에이전트 및 복제 에이전트의 액션은 데이터 보호기에 의해 제어된다. 또한, 데이터 이동기가 한 쌍의 에 이전트 사이의 콘딧으로서 동작한다. 데이터 이동기는 에이전트들 사이의 상호 인증을 보장하고, 데이터 암호화, 해독, 압축 또는 해제를 선택적으로 수행한다. 더욱이, 데이터 이동기는 데이터 전송 동안 데이터 보호 시스템에 의해 소비되는 네트워크 대역폭을 제한하기 위한 스로틀링 흐름 제어를 포함한다.
도 42는 본 발명의 일 실시예에 따른 데이터 보호 시스템의 블록도이다. 데이터 보호 시스템(4200)은 생성 위치(4203)에서 저장 위치(4205)로의 데이터(보호 객체) 전송을 관리하는 데이터 보호기(4201)를 포함한다. 전술한 바와 같이, 복제를 위해 생성 위치(4203)는 클론 에이전트(4207) 및 생성 위치(4203)에서 저장 위치(4205)로의 데이터의 흐름을 제어하는 데이터 이동기 부분(4209A)을 포함한다. 또한, 저장 위치(4205)는 복제 에이전트(4211) 및 생성 위치(4203)로부터 정보를 취득하기 위한 데이터 이동기의 제2 부분(4209B)을 포함한다. 생성 위치(4203), 저장 위치(4205) 및 데이터 보호기(4201) 사이의 상호작용은 생성 위치(4203)에서 저장 위치(4205)로 데이터를 전송하고, 데이터 보호기(4201)와 통신함으로써 데이터 전송의 타당성을 검증하기 위해 사용된다.
데이터는 생성 위치(4203)에서 통신 채널(4213)을 통해 데이터 이동기(4209A)를 통해 데이터 이동기(4209B)를 통해 저장 위치(4205)로 전송된다. 데이터 보호 시스템은 생성 위치(4203)에서 저장 위치(4205)로의 데이터 전송을 모니터할 수 있는 능력을 포함하고, 이러한 통신 채널이 실패하는 경우, 인터럽트된 데이터 전송을 재개할 수 있는 능력을 갖는다. 데이터 전송을 재개하기 위하여, 시작 때와 달리 데이터 전송 상태가 주기적으로 추적되고 저장되어야 한다. 이것은 생 성 위치(4203)에서 저장 위치(4205)로의 데이터 전송을 모니터하는 데이터 보호기(4201)에 의해 달성된다.
데이터는 데이터 블록 또는 레코드 형태로 통신 채널(4213)을 통해 전송된다. 이러한 전송 시스템에서, 데이터의 일부는 생성 위치(4203)에 유지되며, 데이터의 일부는 저장 위치(4205)에 유지된다. 통신 채널이 실패하는 경우, 데이터 전송은 인터럽트되고, 전송 상태는 동기화를 잃을 수 있다. 예를 들어, 생성 위치(4203)는 저장 위치(4205)에 의해 성공적으로 수신된 레코드의 수와 다른 수의 레코드를 전송했을 수 있다. 이러한 문제를 해결하기 위하여, 데이터 보호기(4201)는 생성 위치(4203) 및 저장 위치(4205)에게 데이터 전송을 언제 중지할지 또는 시작할지를 개별적으로 지시함으로써 데이터 전송 프로세스를 모니터하고 제어한다.
데이터 보호를 위하여, 생성 위치(4203)에 위치하는 클론 에이전트(4207)는 데이터를 데이터 이동기(4209)를 통해 저장 위치(4205)에 위치하는 복제 에이전트(4211)로 전송한다. 이 데이터는 생성 위치에 위치하는 보호 객체들의 복제본 또는 사본을 생성하기 위하여 통신 채널(4213)을 통해 데이터 레코드로서 전송된다. 클론 에이전트 및 복제 에이전트는 데이터 전송 상태를 본 명세서에서 레코드 체크 포인트로서 참조되는 특수 데이터 블록으로서 데이터 보호기(4201)로 전송한다. 레코드 체크 포인트는 데이터 보호기(4201)에 의해 수신되어 데이터베이스에 저장된다. 또한, 데이터 보호기(4201)는 지시/명령을 클론 에이전트 및 복제 에이전트로 전송한다.
일반적으로, 생성 위치의 클론 에이전트(4207)가 통신 채널(4213)을 통해 전 송하는 두 타입의 데이터 레코드가 있다. 제1 타입의 데이터 레코드는 생성 위치에 위치하는 보호 객체들에 대해 이루어진 변경을 나타낸다. 제2 타입의 데이터 레코드는 보호 객체 데이터에 대한 정보(메타 데이터)를 포함한다. 메타 데이터를 포함하는 레코드는 데이터 보호 시스템에 의해 생성된다. 메타 데이터는 저장 위치에 전송, 저장되는 데이터의 사본을 검증하는 데 사용되며, 예를 들어 데이터의 체크섬일 수 있다.
생성 위치(4203)로부터의 데이터 전송의 상태는 데이터가 클론 에이전트의 변경 로그(도 43-47)에서 복제 에이전트의 스필 로그(spill log)로 전송되고 있을 때 특수 데이터 마커(레코드 체크 포인트)를 데이터 레코드 스트림에 삽입함으로써 클론 에이전트(4207)로부터 전송된다. 일 실시예에서, 레코드 체크 포인트는 데이터가 생성 위치의 데이터 이동기(4209A)에 의해 전송되고 있을 때 데이터 스트림의 끝에 첨부된다. 다른 실시예에서, 레코드 체크 포인트는 변경 로그에 추가되어 데이터의 한 항목으로서 데이터 스트림과 함께 전송될 수 있다. 저장 위치의 데이터 이동기(4209B)에 의한 데이터 스트림의 수신시, 데이터 및 임의의 레코드 체크 포인트는 스필 로그에 저장된다.
복제 에이전트(4211)가 데이터 스트림에서 레코드 체크 포인트를 만날 때 이러한 레코드 체크 포인트를 데이터 보호기(4201)로 전송한다. 또한, 복제 에이전트는 그 자신의 레코드 체크 포인트를 생성하여 이것도 데이터 보호기(4201)로 전송한다. 클론 에이전트(4207) 및 복제 에이전트(4211) 양자에 의해 생성되는 레코드 체크 포인트에 포함된 정보는 동작을 시작하거나 중지하는 명령을 전송할 때 데 이터 보호기에 의해 사용된다.
데이터 보호기(4201)가 임의의 레코드 체크 포인트를 수신할 때 이를 데이터베이스에 자동으로 저장함으로써 데이터 보호 시스템을 통신 실패, 프로세스 및 시스템 재개에 탄력적으로 만든다.
본 발명의 일 실시예에서, 클론 에이전트(4207)는 본 명세서에서 클래스 C 체크 포인트 및 클래스 A 체크 포인트로서 참조되는 두 타입의 체크 포인트를 생성한다. 클래스 C 체크 포인트는 클론 에이전트(4207)에서 복제 에이전트(4211)로 전송되는 데이터 레코드의 상태를 나타낸다. 클래스 A 체크 포인트는 메타 데이터 레코드를 생성하는 전체 프로세스 내의 위치를 나타낸다.
복제 에이전트(4211)는 본 명세서에서 클래스 B 체크 포인트로 지칭되는 한 타입의 레코드 체크 포인트를 생성한다. 클래스 B 체크 포인트는 복제 에이전트(4211)에 의해 수신되고 적용되는 데이터 레코드를 식별한다.
클래스 C 및 클래스 B 체크 포인트는 데이터 체크 포인트이다. 이들은 클론 에이전트(4207)에서 복제 에이전트(4211)로의 데이터 전송을 재개하고 복제 에이전트(4211) 상에서 수신된 데이터 레코드의 적용을 재개하는 데 사용된다. 클래스 A 체크 포인트는 메타 데이터 체크 포인트이다. 이것은 메타 데이터를 생성하는 클론 에이전트(4207) 상의 장기 프로세스를 모니터하는 데 사용된다. 클래스 A 체크 포인트의 생성은 인터럽트된 데이터 전송의 경우에 장기 프로세스 동안 반복되는 작업의 양을 줄인다.
구체적으로, 클래스 C 체크 포인트는 클론 에이전트(4207) 시스템 및 복제 에이전트(4211) 시스템 상의 데이터 레코드 스트림 내의 위치에 대한 포인터를 포함한다. 클래스 C 체크 포인트는 클론 에이전트(4207)에 의해 생성되어 복제 에이전트(4211)로 전송된다. 복제 에이전트(4211)는 그의 스필 로그 내의 최종 수신 레코드의 포인터로 클래스 C 체크 포인트를 갱신한다.
클래스 B 체크 포인트는 저장 위치(4205)의 복제 에이전트(4211)에 의해 최종 적용된 데이터 레코드에 대한 포인터를 포함한다. 데이터 보호기(4201)가 클래스 B 체크 포인트를 수신할 때, 데이터 보호기(4201)는 클래스 B 체크 포인트 이전의 모든 데이터 블록이 저장 위치에 저장된 데이터의 복제본에 적용되었음을 식별한다.
클래스 A 체크 포인트는 메타 데이터를 생성하는 동안 클론 에이전트에 의해 처리된 보호 데이터의 양을 나타낸다. 복제 에이전트에 의한 클래스 A 체크 포인트의 수신시, 복제 에이전트는 필요에 따라 그 자신의 메타 데이터를 수신하고, 클래스 A 체크 포인트를 데이터 보호기로 전송한다. 데이터 보호기가 클래스 A 체크 포인트를 수신할 때, 이것은 체크 포인트에 포함된 위치까지 메타 데이터 생성이 완료되었음을 의미한다. 일 실시예에서, 클래스 A 체크 포인트는 순차적으로 참조되어(예컨대 순차적으로 넘버링됨), 데이터 보호 시스템이 클래스 A 체크 포인트가 누락되었는지를 판정하는 것을 가능하게 한다. 클래스 A 체크 포인트가 누락된 경우, 차이 리스트의 요소들이 누락될 수 있다는 잠재성이 있으므로 검증이 재개된다. 후술하는 바와 같이, 차이 리스트는 복제본과 매칭되지 않는 보호 객체들을 식별하는 정보를 포함한다. 이러한 객체들은 생성 위치에서 생성된 메타 데이터와 저장 위치에서 생성된 메타 데이터를 비교함으로써 식별된다.
전술한 3개의 체크 포인트 타입 외에도, 데이터 보호기(4201)는 특수 마커 토큰을 생성하여 이를 데이터 레코드 스트림 내에 삽입하도록 생성 위치(4203)에 위치하는 클론 에이전트로 전송할 수 있다. 이어서, 이 토큰은 클론 에이전트(4207)에 의해 통신 채널(4211)을 통해 복제 에이전트(4211)로 전송된다. 수신시 복제 에이전트(4211)는 이 토큰을 다시 데이터 보호기(4201)로 전송한다. 마커 토큰의 목적은 메타 데이터 생성을 재개하기 전에 임의의 데이터 통신 전송으로부터 모든 클래스 A 체크 포인트를 제거하는 것이다. 모든 클래스 A 체크 포인트를 시스템을 통과시킴으로써, 클론 에이전트(4207)에 의해 이미 생성된 메타 데이터가 전송된 후에만 메타 데이터 생성이 재개된다. 이것의 이점은 데이터 레코드 전송 로그가 오버플로우되는 것을 방지하고(메타 데이터 생성 프로세스가 클론 에이전트(4207)가 전송할 수 있는 것보다 훨씬 빠른 경우), 동일 메타 데이터를 여러번 생성하는 것을 방지하는 것인데, 이는 데이터 보호기(4201)가 마커 토큰을 수신하기 전에 모든 메타 데이터를 보기 때문이다.
도 43-44는 본 발명의 일 실시예에 따라 데이터 보호 시스템에 의해 수행되는 데이터 전송 모니터링 루틴의 흐름도이다. 전술한 바와 같이, 생성 위치(4303)와 저장 위치(4305) 간의 데이터 전송은 사용자 또는 다른 개인이 보호 데이터를 변경하는 것에 응답하여 또는 스케쥴링된 작업 실행 시간에 개시된다. 사용자에 의해 이루어진 보호 데이터에 대한 변경에 응답하여, 생성 위치(4303)는 보호 데이터에 대한 변경의 레코드를 변경 로그(4307)에 기록한다. 예를 들어, R1, R2, R3, R4, R5 및 R6은 생성 위치(4303)의 클론 에이전트에 의해 변경 로그(4307)에 기록된 각각의 변경 레코드이다. 주기적으로, 변경 로그(4307)에 포함된 레코드는 데이터 이동기에 의해 변경 로그(4307)로부터 인출되고 함께 배치화되어 저장 위치(4305)로 전송된다. 또한, 클론 에이전트는 전송되고 있는 최종 레코드의 변경 로그(4307) 내의 한 위치에 대한 포인터를 포함하는 클래스 C 체크 포인트를 생성하여 이를 전송 배치의 끝에 첨부한다. 예를 들어, 클론 에이전트는 변경 로그(4307)로부터 레코드들(R1, R3)을 인출하고 이들 레코드를 함께 배치화하여 이 배치를 생성 위치(4305)로 전송할 수 있다. R3의 변경 로그(4307) 내의 위치(이 경우, 변경 로그 위치 4)에 대한 포인터를 포함하는 클래스 C 체크 포인트(4311)가 생성된다. 클래스 C 체크 포인트는 생성 위치(4305)로 전송되는 배치의 끝에 첨부된다.
위의 예는 클래스 C 체크 포인트가 생성되고 데이터의 모든 전송 배치와 함께 전송될 수 있는 것으로 설명하고 있지만, 다른 실시예에서 클래스 C 체크 포인트는 전송되는 데이터의 양에 기초하여 생성될 수 있다. 이 실시예에서, 클래스 C 체크 포인트는 데이터의 양이 소정의 최소 전송 크기를 초과하는 경우에만 생성될 수 있다. 다른 실시예에서, 클래스 C 체크 포인트의 생성 및 전송은 이전 클래스 C 체크 포인트가 생성되고 전송된 후의 시간에 의존할 수 있다. 또한, 클래스 C 체크 포인트의 생성 및 전송은 소정 수의 데이터 전송시에 생성되고 전송될 수 있다. 예를 들어, 클래스 C 체크 포인트는 5번째 데이터 전송마다 생성되고 전송될 수 있다. 또한, 체크 포인트를 생성하고 전송하는 기술들의 임의의 조합이 본 발 명의 실시예들에서 사용될 수 있다. 예를 들어, 클래스 C 체크 포인트는 데이터가 최소 크기를 초과하거나 5번째 전송마다 생성될 수 있다.
저장 위치(4305)에 위치하는 복제 에이전트는 데이터 이동기를 통해 전송된 레코드 및 클래스 C 체크 포인트를 수신하고, 전송된 레코드 및 클래스 C 체크 포인트를 스필 로그(4313)에 저장한다. 또한, 클래스 C 체크 포인트(4311)의 수신시, 저장 위치(4305)의 복제 에이전트는 클래스 C 체크 포인트의 스필 로그(4313) 내의 위치를 식별하는 제2 포인터를 클래스 C 체크 포인트에 추가하는데, 이 경우 클래스 C 체크 포인트(4311)에 추가되는 포인터는 스필 로그 위치(106)에 대한 포인터이다. 따라서, 클래스 C 체크 포인트는 변경 로그(4307)의 최종 전송 위치 및 스필 로그(4313) 내의 클래스 C 체크 포인트의 위치 양자에 대한 포인터를 포함한다. 이어서, 클래스 C 체크 포인트(4315)는 복제 에이전트에 의해 데이터 보호기(4301)로 전송된다. 데이터 보호기(4301)는 클래스 C 체크 포인트를 데이터베이스에 기록한다. 다른 실시예에서, 클래스 C 체크 포인트는 스필 로그에 저장되지 않는 대신, 복제 에이전트가 배치와 함께 전송된 최종 변경 레코드를 식별하는 포인터를 클래스 C 체크 포인트에 추가하고 클래스 C 체크 포인트를 데이터 보호기(4301)로 전송한다.
이제, 도 44를 참조하면, 데이터 보호기(4301)는 저장 위치(4305)로부터 클래스 C 체크 포인트를 수신한 때 클래스 C 체크 포인트를 데이터 보호기의 데이터베이스에 저장하고, 클래스 C 체크 포인트 확인을 생성 위치(4303)로 전송한다. 생성 위치(4303)에 의한 클래스 C 체크 포인트 확인의 수신은 클래스 C 체크 포인 트 이전에 전송된 모든 레코드가 저장 위치(4305)에 의해 수신되었고 전송된 레코드들은 변경 로그(4307)로부터 제거될 수 있다는 것을 생성 위치에 식별시켜 준다.
레코드를 수신하고 레코드를 스필 로그(4313)에 저장하는 것 외에, 저장 위치(4305)에 위치하는 복제 에이전트는 수신된 레코드를 저장 위치(4305)에 위치하는 데이터의 복제본에 적용하기 시작한다. 소정의 시점에서, 복제 에이전트는 복제 데이터(4317)에 적용되는 최종 레코드의 스필 로그(4313) 내의 한 위치에 대한 포인터를 포함하는 클래스 B 체크 포인트를 생성한다. 소정의 시점은 예를 들어 처리 데이터의 양, 최종 클래스 B 체크 포인트 이후의 시간 또는 이 둘의 조합에 기초할 수 있지만, 이에 한하지 않는다. 예를 들어, 복제 에이전트는 스필 로그(4313) 위치(103)로부터 R1을, 스필 로그(4313) 위치(104)로부터 R2를 적용할 수 있고, 복제 데이터(4317)에 R2를 적용한 후 스필 로그 위치(104)에 대한 참조를 포함하는 클래스 B 체크 포인트를 생성한다. 생성된 클래스 B 체크 포인트(4319)는 저장 위치(4305)의 복제 에이전트에 의해 데이터 보호기(4301)로 전송된다. 데이터 보호기(4301)는 클래스 B 체크 포인트를 데이터베이스에 저장하여, 레코드가 데이터 전송의 인터럽션의 경우에 사용되는 것을 허용한다.
또한, 저장 위치로부터의 클래스 B 체크 포인트의 수신에 응답하여, 데이터 보호기(4301)는 클래스 B 체크 포인트를 그의 데이터베이스에 저장하고 클래스 B 체크 포인트 확인을 다시 저장 위치(4305)로 전송한다. 저장 위치(4305)에 의한 클래스 B 체크 포인트 확인의 수신은 데이터 보호기가 복제 데이터(4317)에 적용된 레코드의 최종 위치를 기록하였고 이 레코드가 스필 로그(4313)로부터 삭제될 수 있음을 데이터 보호기에게 식별시켜 준다.
레코드를 전송하고 이 레코드를 저장 위치의 복제 데이터에 적용하는 프로세스 및 체크 포인트들의 사이클링은 생성 위치(4303)에서 저장 위치(4305)로의 레코드의 전송의 정확성을 확인하며, 데이터 보호기가 실패의 결과로서 데이터 전송을 재개하는 데 사용할 수 있는 정보를 데이터 보호기에게 제공한다.
도 45는 본 발명의 일 실시예에 따라 생성 위치(4305)에서 저장 위치(4305)로의 변경 레코드의 전송을 재개하는 데이터 보호 시스템의 흐름도이다. 설명을 위해, 시스템은 생성 위치(4303)에서 저장 위치(4305)로 데이터를 전송하고 있으며, 몇가지 이유로 전송은 인터럽트되고 시스템은 전송을 재개하는 것으로 가정한다.
데이터의 전송을 재개하기 위하여, 데이터 보호기(4301)는 데이터 보호기(4301)의 데이터베이스에 저장된 최종 기록된 클래스 C 및 클래스 B 체크 포인트를 참조하여 생성 위치(4303) 및 저장 위치(4305)에 대한 재개 위치를 식별한다. 예를 들어, B2의 기록된 클래스 B 체크 포인트를 참조하여, 데이터 보호기(4301)는 최종 레코드가 적용된 스필 로그(4313) 내의 위치가 위치 107이라는 것을 결정한다. 따라서, 데이터 보호기(4301)는 저장 위치(4305)의 복제 에이전트에게 스필 로그 위치(108)로부터 레코드를 적용하는 것을 시작하고 스필 로그 위치 뒤의 다음 수신 데이터 레코드(즉, 스필 로그 위치 1120)를 저장하도록 지시하는 명령을 생성하는데, 이 명령은 저장 위치(4305)로 전송된다. 복제 에이전트가 수신 레코드(112)의 저장을 개시하는 위치는 데이터 보호기(4301)의 데이터베이스에 기록된 최 종 클래스 C 체크 포인트를 참조하여 식별된다. 이 예에서, 데이터 보호기(4301)는 C3의 클래스 C 체크 포인트를 참조하여 저장 위치(4305)에 의해 수신된 최종 공지된 클래스 C 체크 포인트가 스필 로그 위치(111)에 위치함을 식별한다.
또한, 데이터 보호기(4301)는 C3의 최종 수신 클래스 C 체크 포인트를 참조하며 생성 위치(4303)에 의해 전송되고 저장 위치(4305)에 의해 성공적으로 수신된 그가 아는 최종 레코드가 변경 로그 위치(9)에 위치함을 식별한다. 따라서, 데이터 보호기(4301)는 생성 위치(4303)에 위치하는 클론 에이전트에게 레코드(10)로 시작하는 레코드들을 저장 위치(4305)로 전송하는 것을 시작하도록 지시하는 명령을 생성하며, 이 명령은 생성 위치(4303)로 전송된다.
일반적으로, 데이터 레코드의 전송을 재개하기 위하여, 데이터 보호기(4301)는 3개의 명령을 생성하여 전송한다. 변경 로그(4307) 내의 전송 개시점을 식별하는 레코드 전송 개시 명령이 생성되어 생성 위치(4303)로 전송된다. 적용이 재개되는 스필 로그(4313) 내의 한 위치를 식별하는 레코드 적용 개시 명령이 저장 위치(4305)로 전송된다. 새로 수신된 레코드가 저장되는 경우에 스필 로그(4313) 내의 한 위치를 식별하는 수신 레코드 저장 개시 명령인 제3 명령도 생성되어 저장 위치(4305)로 전송된다.
클래스 B 및 클래스 C와 같은 체크 포인트를 참조하여 레코드 적용 개시 명령, 레코드 전송 개시 명령 및 수신 레코드 저장 개시 명령을 생성하는 것은 데이터 보호 시스템이 시작부터 데이터의 전송을 개시하지 않고도, 그리고 어떠한 데이터도 잃지 않고도, 데이터 전송 내의 공지 체크 포인트로부터 재개함으로써 그 자 신을 재동기화하는 것을 허용한다.
전술한 바와 같이, 생성 위치(4303)에서 저장 위치(4305)로의 변경 레코드의 전송을 모니터하는 것 외에도, 데이터 보호 시스템은 저장 위치(4305)에 위치하는 복제 데이터(4317)의 완전성을 검증할 수 있는 능력을 갖는다. 본 발명의 일 실시예에서, 데이터 검증은 저장 위치(4305)의 레코드와 비교되는 생성 위치(4303)로부터의 검증 레코드를 전송함으로써 달성된다.
도 46 및 47은 본 발명의 일 실시예에 따라 복제본(4317)을 검증하기 위한 검증 루틴의 흐름도이다. 검증 루틴을 시작하기 위하여, 데이터 보호기(4301)는 검증을 시작하기 위해 생성 위치(4303)로 발행되는 명령을 생성한다. 검증 개시 명령의 수신에 응답하여, 생성 위치(4303)의 클론 에이전트는 생성 위치(4303)에 위치하는 각각의 보호 객체에 대한 메타 데이터의 생성을 개시한다. 이 메타데이터는 변경 로그(4307)에 레코드로서 추가되고, 변경 레코드와 함께 전송된다. 레코드 및 메타데이터는 전술한 바와 같이 변경 로그(4307)에서 저장 위치(4305)로 전송된다. 변경 레코드의 수신시, 저장 위치(4305)에 위치하는 복제 에이전트는 전술한 바와 같이 레코드를 복제 데이터(4317)에 적용한다. V1과 같은 메타데이터 레코드의 적용시, 저장 위치(4305)에 위치하는 복제 에이전트는 복제 데이터(4317)의 동일 부분에 대한 메타데이터를 계산한다. 메타데이터의 두 항목은 복제 데이터의 해당 부분에 대한 타당성 및 완전성을 확인하기 위해 비교된다. 메타데이터가 매칭되지 않는 경우, 복제 에이전트는 복제본(4317)과 매칭되지 않는 보호 객체를 식별하는 차이 리스트를 생성한다.
당업자가 이해하듯이, 메타데이터를 이용하여 복제 데이터를 보호 데이터와 비교하는 것은 비교되는 데이터에 대한 체크섬을 생성하고, 그리고/또는 데이터에 대한 최종 변경 시간과 같은 임의의 다른 식별 표시를 비교함으로써 달성될 수 있다.
V1 및 V2와 같은 한 세트의 메타데이터 레코드가 변경 로그(4307)에 포함된 후 소정 시점에서, 생성 위치(4303)에 위치하는 클론 에이전트는 변경 로그(4307)에 레코드로서 추가되는 클래스 A 체크 포인트를 생성한다. A1과 같은 클래스 A 체크 포인트는 통신 채널을 통해 변경 레코드 및 메타데이터 레코드와 함께 저장 위치(4305)로 전송된다.
저장 위치(4305)의 복제 에이전트에 의한 클래스 A 체크 포인트의 수신시, 복제 에이전트는 클래스 A 체크 포인트 및 메타데이터 비교 결과로서 생성된 임의의 차이 리스트를 데이터 보호기(4301)로 전송한다. 도 46에 도시된 바와 같이, 클래스 A 체크 포인트는 제거될 때까지 스필 로그에 유지될 수 있다. 대안으로, 클래스 A 체크 포인트의 수신시, 이것은 차이 리스트와 함께 전송될 수 있으며, 스필 로그에 저장되지 않을 수 있다.
데이터 보호기(4301)는 클래스 A 체크 포인트 및 차이 리스트를 수신하고, 이들을 데이터베이스에 기록한다. 차이 리스트는 생성 위치로 전송되고, 식별된 보호 객체들은 다시 복제되어 저장 위치로 재전송된다. 식별된 보호 객체들의 재복제 및 재전송은 차이 리스트의 수신에 응답하여 발생하거나, 소정의 후속 시점(예컨대, 복제본의 검증이 완료된 후)에 발생하도록 스케쥴링될 수 있다.
클래스 A 체크 포인트는 그 자체 내에, 메타데이터가 계산된 특정 보호 객체의 식별자를 포함한다. 예를 들어, 메타데이터가 SERVER1의 C:/에 위치하는 보호 객체에 대해 생성되고 있고, 메타데이터가 생성된 최종 보호 객체가 SERVER1의 C:/FILE50인 경우, 클래스 A 체크 포인트는 SERVER1의 C:/FILE50에 대한 참조를 포함한다. 이 정보는 데이터 보호기(4301)에 의해 데이터베이스에 저장되어, 데이터 전송이 인터럽트되는 경우에 검증을 재개하는 기준점을 갖게 된다.
도 47은 본 발명의 일 실시예에 따라 특정 시점에서 검증이 인터럽트된 때 검증을 재개하기 위하여 데이터 보호 시스템에 의해 생성되는 검증 루틴의 재개를 설명하는 흐름도이다. 이러한 설명을 위하여, 먼저 데이터 전송이 인터럽트되고 이제 재개되고 있는 것으로 가정한다. 데이터 전송을 재개할 때, 데이터 보호기(4301)는 도 47에 AP로 표시된 바와 같이 마커 토큰을 생성하여 전송한다. 마커 토큰은 데이터의 검증이 재개되기 전에 시스템으로부터 모든 메타데이터 및 클래스 A 체크 포인트를 제거하기 위해 시스템을 통해 사이클링되는 데이터 보호기(4301)에 의해 생성된 고유 토큰이다.
마커 AP는 데이터 보호기(4301)에서 생성 위치(4303)로 전송되며, 생성 위치(4303)에 위치하는 클론 에이전트에 의해 변경 로그(4307)에 포함된다. 생성 위치(4303)에 의한 마커 토큰(AP)의 수신시, 클론 에이전트는 마커(AP)를 변경 로그(4307)에 추가한 후 마커(AP)를 저장 위치(4305)로 전송한다. 저장 위치(4305)에 의한 마커 토큰(AP)의 수신시, 저장 위치(4305)에 위치하는 복제 에이전트는 마커 토큰(AP)을 다시 데이터 보호기(4301)로 전송한다.
데이터 보호기(4301)에 의한 마커 토큰(Ap)의 수신시, 데이터 보호기(4301)는 이미 발생된 시스템에 대한 모든 메타데이터가 생성 위치(4303)에서 저장 위치(4305)로 전송되었음을 인식하게 된다. 데이터 보호기(4301)는 클래스 A 체크 포인트의 데이터베이스를 참조하여, 전송된 최종 클래스 A 체크 포인트를 식별하고, 생성 위치가 데이터 검증을 재개할 위치를 포함하는 재개 명령을 준비한다. 데이터 보호기(4301)는 검증 재개 명령 및 데이터 검증이 재개될 포인트의 식별자를 생성 위치(4303)로 전송한다.
예를 들어, 도 47을 참조하면, 데이터 보호기(4301)는 그의 데이터베이스로부터 이전 검증 루틴 동안에 메타데이터가 계산된 최종 보호 객체가 SERVER1의 C:/FILE1003이라는 것을 식별한다. 따라서, 데이터 보호기(4301)는 메타데이터가 SERVER1의 볼륨 C: 상의 FILE1003까지의 모든 파일에 대해 생성되어 전송되었음을 알게 되며, 따라서 SERVER1의 C:/FILE1003 이후의 메타데이터의 생성을 재개하도록 생성 위치(4303)에게 지시하는 검증 재개 명령을 생성한다.
도 48a는 본 발명의 일 실시예에 따라 생성 위치에 의해 수신되는 명령을 처리하기 위한 명령 처리 루틴의 흐름도이다. 명령 처리 루틴(4800)은 블록 4801에서 시작하고, 판정 블록 4803에서 수신 명령이 전송 개시 명령인지에 대한 판정이 이루어진다. 전술한 바와 같이, 데이터 보호 시스템 전반에 배치된 에이전트들을 제어하기 위한 명령들이 데이터 보호기에 의해 생성된다. 판정 블록 4803에서 수신 명령이 전송 개시 명령인 것으로 판정된 경우, 블록 4805에서 전송 개시점이 식별된다. 전송 개시점은 전송 개시 명령에 포함될 수 있다. 전송 개시점은 데이터 전송이 개시되는 변경 로그 내의 위치를 식별한다.
또한, 블록 4807에서 전송 종료점이 식별된다. 전송 종료점은 다양한 방식으로 결정될 수 있다. 예를 들어, 전송 종료점은 변경 로그에 포함된 최종 레코드를 발견하고 이를 전송 종료점으로 이용함으로써, 데이터 전송의 최대 크기를 결정하고 그 크기에 도달하는 로그 내의 포인트를 식별하는 등에 의해 식별될 수 있다. 전송 개시점 및 종료점의 식별시, 블록 4809에서 명령 처리 루틴(4800)은 제어를 데이터 전송 흐름(도 48b)으로 전달한다.
판정 블록 4803을 다시 참조하면, 수신 명령이 전송 개시 명령이 아닌 것으로 판정된 경우, 판정 블록 4811에서 수신 명령이 검증 개시 명령인지를 판정한다. 판정 블록 4811에서 명령이 검증 개시 명령인 것으로 판정된 경우, 블록 4813에서 생성 위치 내의 한 위치가 검증이 시작될 장소로서 식별된다. 전송 개시점 및 종료점과 같이, 이 위치는 검증 개시 명령에 포함되거나 개별적으로 얻어질 수 있다. 검증을 시작할 생성 위치 내의 위치의 식별시, 명령 처리 루틴(4800)은 블록 4815에 도시된 바와 같이 제어를 검증 루틴(도 48c)으로 넘긴다.
판정 블록 4811에서 수신 명령이 검증 개시 명령이 아닌 것으로 판정된 경우, 판정 블록 4817에서 수신 명령이 C 체크포인트 확인인지의 여부가 판정된다. C 체크포인트 확인인 경우, 확인된 C 체크포인트 이전에 전송된 변경 로그에 포함 된 레코드들은 블록 4819에 도시된 바와 같이 변경 로그로부터 제거되며, 루틴은 블록 4821에서 종료한다. 그러나, 판정 블록 4817에서 수신 체크포인트가 C 체크포인트 확인이 아닌 것으로 판정된 경우, 수신 명령은 마커 토큰(AP)이다. 블록 4823에서 마커 토큰(AP)은 변경 로그에 배치되고, 루틴은 블록 4825에서 종료한다.
도 48b는 본 발명의 일 실시예에 따라 생성 위치에서 저장 위치로 변경 레코드를 전송하는 데이터 전송 루틴의 흐름도이다. 데이터 전송 루틴(4830)은 블록 4831에서 시작하고, 블록 4833에서 변경 로그로부터 얻은 변경 레코드들의 그룹이 전송을 위해 함께 배치화된다. 레코드들의 배치는 임의 수의 레코드들일 수 있다. 레코드들의 배치를 생성하는 것은 변경이 발생한 후 소정의 시점에서 변경 로그의 최대 크기에 도달하는 것에 응답하여 발생할 수 있다. 당업자가 이해하듯이, 레코드들의 배치의 생성 타이밍, 및 레코드들의 배치의 크기는 예일 뿐이며, 레코드들의 배치를 생성하는 임의의 타이밍 및 크기가 본 발명의 실시예들에서 사용될 수 있다. 예를 들어, 레코드들의 배치는 하나의 레코드만을 포함할 수 있고, 데이터 보호 시스템에 대해 변경이 발생할 때마다 생성될 수 있다.
블록 4835에서 레코드들의 배치는 생성 위치로부터 전송된다. 레코드들의 배치를 전송하는 것 외에도, 클래스 C 체크포인트가 생성되어 레코드들의 배치의 끝에 첨부되고, 레코드의 배치의 일부로서 함께 전송된다. 전술한 바와 같이, 클래스 C 체크포인트는 레코드들의 배치에 포함된 최종 변경 레코드의 변경 로그 내의 위치에 대한 포인터를 포함한다. 판정 블록 4837에서, 변경 로그 내에 추가 레 코드가 존재하는지에 대한 판정이 이루어진다. 판정 블록 4837에서 추가 레코드가 존재하는 것으로 판정된 경우, 데이터 전송 루틴(4830)은 제어를 블록 4833으로 반환하여 루틴이 계속된다. 그러나, 판정 블록 4837에서 전송할 레코드가 더 이상 존재하지 않는 것으로 판정된 경우, 루틴은 블록 4839에 도시된 바와 같이 종료한다.
도 48c는 본 발명의 일 실시예에 따라 데이터를 검증하는 검증 루틴의 흐름도이다. 검증 루틴(4840)은 블록 4841에서 시작하고, 판정 블록 4843에서 생성 위치 내에 검증을 필요로 하는 객체들이 존재하는지에 대한 판정이 이루어진다. 판정 블록 4843에서 검증할 추가 객체가 존재하지 않는 것으로 판정된 경우, 루틴은 블록 4844에서 종료한다. 그러나, 검증할 추가 객체가 존재하는 것으로 판정된 경우, 블록 4845에서 객체에 대한 메타데이터가 생성된다. 구체적으로, 메타데이터가 생성될 수 있는 제1 객체는 명령 처리 루틴(4800)(도 48a)의 블록 4813에서 식별되는 시작 위치에 대응하는 객체이다. 메타데이터의 생성시, 이 메타데이터는 메타데이터 레코드(V)의 형태로 변경 로그에 추가된다.
판정 블록 4847에서, 클래스 A 체크포인트가 생성되고 변경 로그에 추가되는지에 대한 판정이 이루어진다. 전술한 바와 같이, 클래스 A 체크포인트는 메타데이터 레코드를 생성하고 전송하는 전체 프로세스 내의 위치를 나타내며, 데이터 검증을 재개하는 데 사용될 수 있다. 또한, 클래스 A 체크포인트는 전송된 클래스 A 체크포인트들 중 하나가 수신되지 않았는지를 판정할 수 있도록 순차 마커들을 포함할 수 있다. 판정 블록 4847에서 클래스 A 체크포인트가 생성되어야 하는 것으 로 판정된 경우, 블록 4849에서 체크포인트가 생성되어, 변경 로그에 포함된 다른 레코드들과 함께 배치화되어 전송될 레코드로서 변경 로그에 추가된다. 클래스 A 체크포인트의 변경 로그로의 추가시, 검증 루틴(4840)은 제어를 판정 블록 4843으로 반환하고, 루틴은 계속된다. 그러나, 판정 블록 4847에서 클래스 A 체크포인트가 생성되지 않는 것으로 판정된 경우, 검증 루틴(4840)은 판정 블록(4843)으로 되돌아가서 계속한다.
도 49a는 본 발명의 일 실시예에 따라 저장 위치에 의해 수신된 명령들을 처리하는 명령 처리 루틴의 흐름도이다. 명령 처리 루틴(4900)은 블록 4901에서 시작하고, 판정 블록 4903에서 수신 명령이 수신 개시 명령인지에 대한 판정이 이루어진다. 수신 개시 명령은 생성 위치로부터 전송되고 있는 레코드들의 수신을 개시하기 위한 저장 위치에 대한 명령이다. 판정 블록 4903에서 명령이 수신 개시 명령인 것으로 판정된 경우, 블록 4905에서 수신 레코드를 저장하기 위한 스필 로그 내의 개시점이 식별된다. 스필 로그 내의 위치의 식별은 수신 개시 명령 내에 포함된 위치를 수신함으로써 또는 개별 명령으로서 결정될 수 있다. 수신 레코드의 저장을 개시할 장소에 관한 스필 로그 내의 위치의 식별시, 블록 4907에 도시된 바와 같이 명령 처리 루틴(4900)은 제어를 레코드 수신 루틴(도 49b)으로 넘긴다.
다시 판정 블록 4903을 참조하면, 수신 명령이 수신 개시 명령이 아닌 것으로 판정된 경우, 판정 블록 4909에서 수신 명령이 적용 개시 명령인지가 판정된다. 수신 명령이 적용 개시 명령인 경우, 블록 4911에서 레코드의 적용을 개시할 스필 로그 내의 시작 위치가 식별된다. 수신 개시 레코드 위치와 같이, 스필 로그 내의 식별은 적용 개시 명령에 포함되는 위치에 의해 식별되거나, 개별 명령으로서 수신되거나, 소정의 다른 수단에 의해 식별될 수 있다. 적용을 시작할 스필 로그 내의 위치의 식별시, 명령 처리 루틴(4900)은 제어를 변경 레코드 적용 루틴(도 49c)으로 넘긴다.
판정 블록 4909에서 명령이 적용 개시 명령이 아닌 것으로 판정된 경우, 명령은 클래스 B 체크포인트 확인이며, 블록 4915에서 확인된 클래스 B 체크포인트의 전송 이전에 저장 위치에서 사본에 적용된 스필 로그 내에 포함된 모든 레코드가 로그로부터 제거된다. 블록 4917에서 루틴이 종료된다.
도 49b는 본 발명의 일 실시예에 따라 저장 위치에서 레코드를 수신하는 레코드 수신 루틴의 흐름도이다. 레코드 수신 루틴(4920)은 블록 4921에서 시작하고, 블록 4923에서 다음 유입 레코드가 수신된다. 전술한 바와 같이, 레코드의 전송은 유선, 무선 등을 포함하지만 이에 한하지 않는 임의 타입의 전송 매체를 이용하여 달성될 수 있다. 판정 블록 4925에서, 수신 레코드가 클래스 C 체크포인트인지에 대한 판정이 이루어진다. 클래스 C 체크포인트인 경우, 클래스 C 체크포인트의 스필 로그 위치가 클래스 C 체크포인트에 추가되고, 클래스 C 체크포인트는 블록 4927에서 데이터 보호기로 전송된다. 그러나, 판정 블록 4925에서 레코드가 클래스 C 체크포인트가 아닌 것으로 판정된 경우, 판정 블록 4929에서 레코드가 마커 토큰(AP)인지가 판정된다. 레코드가 마커 토큰인 경우, 블록 4931에서 마커 토큰이 데이터 보호기로 전송된다.
판정 블록 4929에서 레코드가 마커 토큰이 아닌 것으로 판정된 경우, 판정 블록 4935에서 레코드가 클래스 C 체크포인트인지가 판정된다. 판정 블록 4935에서 레코드가 클래스 A 체크포인트인 것으로 판정된 경우, 블록 4937에서 클래스 A 체크포인트 및 차이 리스트가 데이터 보호기로 전송된다. 판정 블록 4935에서 레코드가 클래스 A 체크포인트가 아닌 것으로 판정된 경우, 또는 레코드를 데이터 보호기로 전송한 후에(블록 4927, 4931, 4937), 수신 레코드가 4939에서 스필 로그에 추가된다. 판정 블록 4941에서 수신된 추가 레코드가 존재하는지를 판정한다. 추가 레코드가 존재하는 경우, 레코드 수신 루틴(4920)은 블록 4923으로 돌아가서 루틴은 계속된다. 추가 레코드가 존재하지 않는 경우, 루틴은 4943에서 종료한다.
도 49c는 본 발명의 일 실시예에 따라 변경 레코드를 저장 위치의 복제본에 적용하는 변경 레코드 적용 루틴의 흐름도이다. 레코드 적용 루틴(4950)은 블록 4951에서 시작하고, 블록 4953에서 스필 로그로부터 레코드가 얻어진다. 판정 블록 4955에서, 취득된 레코드가 보호 객체에 대한 메타데이터를 포함하는지가 판정된다. 레코드가 메타데이터를 포함하는 경우, 블록 4957에서 메타데이터가 복제본 상에 저장된 대응 객체와 비교된다. 전술한 바와 같이, 메타데이터는 최종 변경 시간, 크기, 계산된 체크섬 등과 같은 임의 형태의 객체 식별자일 수 있다. 판정 블록 4959에서 메타데이터의 비교시, 메타데이터가 상이한지를 판정한다. 비교된 메타데이터가 상이한 경우, 블록 4961에서 메타데이터가 비교된 객체의 식별자가 차이 리스트에 추가된다. 차이 리스트에 식별된 객체를 추가할 때(블록 4961), 또는 판정 블록 4949에서 메타데이터가 상이하지 않은 것으로 판정된 경우, 변경 레 코드 적용 루틴(4950)은 판정 블록 4965로 계속된다. 다시 판정 블록 4955로 돌아가서, 레코드가 메타데이터가 아닌 것으로 판정된 경우, 레코드는 변경 레코드이며, 블록 4963에서 복제본에 적용된다.
판정 블록 4965에서, 클래스 B 체크포인트가 생성되어야 하는지를 판정한다. 전술한 바와 같이, 클래스 B 체크포인트의 생성은 임의 형태의 기준에 기초하여 생성될 수 있다. 예를 들어, 클래스 B 체크포인트는 예를 들어 각각의 변경 레코드의 적용 후, 소정의 기간 후에 생성될 수 있다. 판정 블록 4965에서 클래스 B 체크포인트가 생성되어야 하는 것으로 판정된 경우, 판정 블록 4967에서 차이 리스트가 비어 있는지를 판정한다. 차이 리스트가 비어 있지 않은 것으로 판정된 경우, 블록 4969에서 루틴(4950)은 클래스 A 체크포인트의 수신을 위해 대기한다. 차이 리스트가 비어 있지 않은 경우의 클래스 A 체크포인트의 기다림은 시스템이 다시 시작되는 경우 차이 리스트에 추가를 생성한 어떠한 메타데이터 레코드도 누실되지 않음을 보장한다. 클래스 B 체크포인트의 전송 이전에 클래스 A 체크포인트를 수신하는 것은 차이 리스트가 전송될 때 차이 리스트를 생성하는 데 사용된 모든 메타데이터 레코드가 더 이상 필요하지 않음을 보장한다. 판정 블록 4967에서 차이 리스트가 비어 있는 것으로 판정된 경우, 또는 블록 4969에서 클래스 A 체크포인트의 수신시, 4971에 도시된 바와 같이, 클래스 B 체크포인트가 생성되어 전송된다.
다시 판정 블록 4965를 참조하면, 클래스 B 체크포인트가 생성되지 않는 것으로 판정된 경우, 또는 클래스 B 체크포인트의 전송 후, 판정 블록 4973에서 스필 로그 내에 복제본에 아직 적용되지 않은 추가 레코드가 존재하는지를 판정한다. 추가 레코드가 존재하는 경우, 변경 레코드 적용 루틴(4950)은 블록 4953으로 돌아가서 계속한다. 그러나, 판정 블록 4973에서 적용할 추가 레코드가 존재하지 않는 것으로 판정된 경우, 루틴은 4975에서 종료한다.
본 발명의 실시예들은 시간 버젼닝 및/또는 데이터 사본의 분리식 매체로의 아카이빙 기능을 갖춘 복제와 같은 임의 타입의 백업 기술을 이용하여 생성 위치에서 데이터를 보호할 수 있는 능력을 제공한다. 본 발명의 일 실시예에서, 생성 위치의 데이터를 보호할 수 있는 능력은 데이터 보호 시스템의 상이한 부분들에 위치하는 에이전트들에 의해 수행되는 액션들의 분산 제어 및 조정의 이용을 통해 달성된다. 예를 들어, 에이전트는 생성 위치, 저장 위치, 및/또는 데이터 보호기 위치에 위치할 수 있다. 작업으로 지칭되는 이들 활동은 일반적으로 스케쥴에 기초하여 실행된다. 작업들은 종종 원격 에이전트와의 통신을 수반하므로, 작업들은 일반적으로 비동기적이며, 완료하기까지 긴 시간이 걸릴 수 있다. 작업은 한번 또는 주기적으로 실행될 수 있는 활동의 스케쥴링된 단위이다. 작업은 하나 이상의 태스크로 이루어진다. 태스크들은 일렬로 또는 병렬로 실행될 수 있다. 또한, 작업은 임의의 태스크가 실패한 때 실패할 수 있거나, 작업은 모든 태스크가 완료되거나 실패할 때까지 모든 태스크를 계속 실행할 수 있다.
데이터 보호를 위하여, 작업들은 보호 그룹의 모든 멤버에 대해 주어진 활동을 수행하도록 구성된다. 데이터 보호는 특정 작업을 위한 적절한 활동을 수행하기 위한 태스크들을 포함하는 작업들의 구성을 통해 이루어진다. 예를 들어, 보호 또는 복구 계획은 하나 이상의 작업 및 이들 작업에 대한 스케쥴을 포함한다. 일 실시예에서, 작업들은 4개의 다른 타입, 즉 보호, 복구, 발견 및 관리 중 하나로 간주될 수 있다. 보호 작업은 복제, 시간 버젼 관리, 아카이브 또는 데이터 세트 스테이징과 같은 데이터 보호 활동을 수행한다. 각각의 보호 태스크는 보호 그룹과 연관된다. 복구 작업은 복제본, 아카이브 또는 이들의 조합으로부터 데이터 복구를 수행한다. 각각의 복구 태스크는 복구 소스와 연관된다. 초기 발견 루틴(도 25) 및 스케쥴링된 발견 루틴(도 26)과 같은 발견 작업은 데이터 보호기 외부의 엔티티를 발견한다. 발견은 검색, 네비게이션, 자동 발견 그룹 리프레시 또는 저장 검색, 및 보호 그룹 멤버십 결정을 위해 수행된다. 관리 작업은 데이터 보호 시스템 유지에 필요한 활동을 수행한다. 관리 작업은 에이전트 설치 버젼 검사, 요약 결과 생성, 매체 이동 및 데이터 보호 시스템 데이터베이스 폐기물 수집을 포함한다.
데이터 보호 시스템의 각각의 작업은 작업 관리자에 의해 모니터된다. 작업 관리자는 작업들의 전체 진행을 모니터하고, 이들 작업과 연관된 데이터 보호기 데이터베이스로부터 정보를 판독하며, 이들 작업으로부터 수신한 정보를 작업 관리기가 유지하는 데이터 보호기 데이터베이스의 특정 부분에 기입한다. 작업 관리기가 유지하는 데이터베이스의 부분에 대해, 데이터베이스의 그 부분에 정보를 기입할 수 있는 것은 데이터 보호 시스템의 관리자뿐이다.
도 50은 본 발명의 일 실시예에 따라 복수의 태스크를 포함하는 작업의 블록도이다. 전술한 바와 같이, 작업(5000)은 태스크 N(5003)으로 도시된 바와 같이 태스크 1(5001), 태스크 2(5002)와 같은 하나 이상의 태스크를 임의 수의 태스크까 지 포함한다. 작업의 각각의 태스크는 태스크 실행자(5005, 5007)에 의해 실행되고 관리된다. 태스크 실행자(5005)는 태스크 2(5002)와 같은 태스크를 실행함에 있어서 데이터 보호 시스템 전반에 분산된 상이한 에이전트들에 의해 수행되는 하나 이상의 명령을 생성할 수 있다. 예를 들어, 태스크 실행자(5005)는 태스크 2(5002)에 대한 3개의 다른 명령을 생성할 수 있는데, 이들 각각은 상이한 에이전트에 의해 완료된다. 태스크 2(5002)에 대한 제1 명령은 에이전트 A(5009)에 의해 실행되고, 제2 명령은 에이전트 B(5011)에 의해, 제3 명령은 에이전트 C(5013)에 의해 실행될 수 있다. 태스크의 타입 및 작업의 타입에 따라, 에이전트들(5009-5013)은 명령들을 일렬로 또는 병렬로 실행할 수 있다.
작업 특성들은 작업의 모든 태스크에 적용된다. 작업의 특정 태스크들은 또한 특정 특성들을 가질 수 있다. 보호 작업의 작업 및 태스크 특성들은 그룹 계획의 작업들을 생성하는 일부로서 의도 변환기에 의해 결정된다. 본 발명의 일 실시예에서, 모든 작업은 다음의 특성들, 즉 성공/실패 상의 액션 및 병렬 또는 단지 일렬로만의 실행 특성을 갖는다. 또한, 데이터 이동을 수반하는 임의의 작업은 다음의 특성, 즉 암호화, 압축, 스로틀링 및 배열 의도를 가질 수 있다.
각각의 태스크 실행자(5005, 5007)는 입력에 응답하여 상이한 상태들을 통해 유한 상태 머신(FSM)을 전이시키고 상태들을 유지하며 재개 논리를 수행하는 공통 엔진에 의해 실행되는 FSM으로서 생성될 수 있다. 예를 들어, 태스크 실행자는 이전에 에이전트에게 발행된 명령으로부터의 응답에 기초하여 전이할 수 있다. 공통 엔진의 이용은 모든 FSM의 설계가 공통 설계 방법을 따르고, 상이한 FSM들이 동일 한 공통 블록들(에이전트가 활동하고 있는지를 판정하기 위한 폴링 및 에이전트로 부터의 상태 취득 등)을 공유하는 것을 허용한다.
일반적으로, 태스크 실행자는 에이전트들에게 명령들을 발행하고, 이들 명령의 성공 또는 실패, 및 이들 명령으로부터 제공되는 응답들에 기초하여 대기 상태 내외로 전이한다. 또한, 태스크 실행자(5005, 5007)는 취소 요구(예를 들어, 사용자로부터의 취소 요구, 작업이 그 작업에 할당된 최대 시간을 초과함으로 인한 내부 취소 요구 등)에 응답하여, 또는 데이터베이스의 상태에 기초하여 발생하는 내부 메시지에 응답하여, 태스크의 실행 동안 특정 시간이 경과한 후에 전이할 수 있다. 각각의 전이에서, 태스크 실행자는 태스크를 통해 그의 진행을 지속한다. 지속되는 진행 포인트들은 데이터 보호기 데이터베이스에 저장될 수 있다. 태스크를 통해 진행 포인트들을 지속하는 것은 데이터 보호 시스템에게 예기치 않은 종료의 경우에(예를 들어 단전) 강건함을 제공한다. 재개시, 태스크 실행자는 지속 포인트를 참조하여 태스크의 적절한 상태를 식별하고, 그 포인트로부터 즉시 실패하고, 필요할 수 있는 임의의 제거를 수행할 수 있다.
예를 들어, 전술한 바와 같이, 복제를 위한 데이터 전송 작업에 있어서, 태스크 실행자는 작업의 각각의 태스크를 수행하기 위해 적절한 에이전트들에게 명령들을 발행한다. 이러한 명령들에는 변경 레코드의 전송을 시작하기 위해 클론 에이전트에게 발행되는 명령이 포함된다. 또한, 태스크 실행자는 레코드의 수신 및 적용을 개시하기 위하여 복제 에이전트에게 명령을 발행한다. 에이전트들이 이들 명령을 수행함에 따라 태스크 실행자는 타이머를 시작하고 대기 상태로 전이한다. 각각의 전이(명령 발행, 대기 시작)에서, 태스크 실행자는 태스크를 위한 진행 포인트를 유지한다. 태스크 실행자에 의해 수신될 수 있는 응답은 체크포인트, 타임아웃 이벤트, 취소 요구 등일 수 있다. 응답의 수신시, 태스크 실행자는 응답에 따라 전이하고 태스크에서 그 포인트를 유지한다. 이러한 프로세스는 태스크가 성공 또는 실패를 통해 종료될 때까지 계속된다.
타임아웃 이벤트가 발생한 경우, 태스크 실행자(5005)는 또한 각각의 에이전트를 폴링하여 에이전트들이 계속 활동 중인지를 판정하고 그 에이전트에 의해 실행되는 명령들의 진행에 관한 갱신을 잠재적으로 얻을 수 있다. 전이 포인트를 유지하여 강건함을 향상시키는 것 외에, 장기 활동들이 중간 포인트인 체크포인트로부터 재개될 수 있도록 설계되어, 모든 작업이 실패의 경우에도 유실되지 않게 된다. 예를 들어, 도 43 내지 47을 다시 참조하면, 데이터 전송 및 검증 동안 체크포인트들이 생성된다. 이들 체크포인트는 복제 관리자에 의해 얻어져 데이터 보호 데이터베이스에 저장된다. 도 43-47과 관련하여 전술한 바와 같이, 실패로부터의 재개시, 이들 체크포인트가 평가되고, 데이터 전송 및 검증이 체크포인트에 의해 식별되는 포인트로부터 재개될 수 있다.
완료까지 태스크를 실행하는 것 외에도, 본 발명의 일 실시예에서 태스크 실행자(5005, 5007)는 작업 관리자에게 태스크의 완료시, 그리고 태스크가 성공 또는 실패로 끝났는지를 통지한다. 작업 관리자는 작업 내의 모든 태스크에 대한 요약 정보를 제공하는 그 자신의 결과를 유지한다. 예를 들어, 작업 결과는 성공적으로 완료된 태스크들의 수를 포함할 수 있다. 작업 관리자는 또한 데이터 보호기 데이 터베이스 내의 태스크 결과에 태스크 실행자로부터 수신된 정보를 유지한다. 또한, 태스크 실행자는 또한 태스크와 관련된 태스크 실행자 특정 정보를 가진 그 자신의 태스크 결과를 유지할 수 있다. 태스크 결과는 태스크 동안에 발생한 임의의 에러들은 물론 데이터 보호 시스템의 사용자에게 유용한 태스크와 연관된 통계를 포함할 수 있다. 태스크 타입 특정 결과들이 수신되어 그 특정 태스크와 연관된 관리자에 의해 유지된다. 태스크 타입 특정 결과들은 데이터 이동에 걸린 총 시간, 태스크 완료에 걸린 총 시간, 전송된 데이터의 전체 양 등과 같은 태스크 특정 정보를 포함할 수 있다. 데이터 보호 시스템의 재개시, 태스크 결과는 실패를 낳은 에러 경로를 식별하는 데 사용될 수 있다. 또한, 태스크는 태스크 사유 메타데이터를 유지할 수 있다. 이러한 사유 메타데이터는 개시시에 실패한 태스크를 제거하고 태스크의 완료(성공 또는 실패)시에 태스크 결과를 생성하기 위해 사용될 수 있다. 또한, 태스크 실행자(5005, 5007)는 태스크와 연관된 메타데이터를 관리할 수 있다.
실패의 경우, 재개시 작업들은 매우 간단한 제거를 행한다. 이들은 그들 자신을 리스케쥴링하거나 복잡한 복구 액션을 수행하지 않는다. 대신에, 실패한 작업의 태스크는 단지 임의의 물리 객체를 갱신하고 실패한다. 이 실패는 태스크 결과 및 작업 결과에 기록된다. 신속하고 자동화된 복구 활동을 보장하기 위해 충분히 중요한 태스크들에 대해, 데이터 보호 시스템은 건강 관리자를 통해 태스크가 실패한 포인트로부터 또는 태스크에 의해 생성된 최종 체크포인트에서 완료까지 작업을 완료하는 데 사용되는 메이크업 작업을 생성할 수 있다. 건강 관리자는 태스 크 결과는 물론 데이터베이스 내의 다양한 객체들의 상태를 이용하여, 데이터 보호의 진행을 가능하게 하는 보다 복잡한 복구 메카니즘을 구현한다.
복제와 같이 결정적인 것으로 간주되는 태스크들에 대해, 건강 관리자는 이들 태스크를 모니터할 수 있다. 일 실시예에서, 건강 제공자들이 건강 관리자에 의해 인스턴스화된다. 결정적인 태스크들은 실패시 실패 이벤트를 발생시킨다. 건강 제공자는 이들 이벤트를 모니터하고 임의의 복구가 수행될 필요가 있는지를 판정한다. 복구가 필요한 경우, 메이크업 작업이 생성되고 하나 이상의 실패 태스크를 복구하도록 스케쥴링된다. 또한 시스템 시동시, 건강 관리자는 건강 제공자들을 개시한다. 각각의 건강 제공자는 시스템이 이전에 종료된 때에 실행되고 있었을 수 있는 실패 태스크들의 복구가 필요한지를 교대로 독립적으로 판정한다. 복구가 필요한 경우, 메이크업 작업이 생성되고 스케쥴링된다. 메이크업 작업은 실패 작업 내의 단일 태스크 실패의 경우에 단일 태스크를, 또는 시작되지 않은 태스크들을 포함하는 실패 작업으로부터의 모든 미완료 작업을 포함할 수 있다.
도 51은 본 발명의 일 실시예에 따라 태스크의 모니터링 및 메이크업 작업의 생성을 나타내는 흐름도이다. 전술한 바와 같이, 데이터 보호 시스템 내의 각각의 액션은 여러 태스크를 갖는 작업의 형태로 구성된다. 데이터 보호기(5101)는 하나 이상의 태스크의 실행 결과로서 저장 위치(5105)로 전송되어 저장되는 생성 위치(5103)의 보호 객체들의 복제와 같은 작업을 생성할 수 있다. 이 작업은 데이터 보호기(5101)에 의해 개시되며, 작업의 각각의 태스크는 하나 이상의 태스크 실행자에 의해 실행된다. 예를 들어, 복제 작업을 위해, 태스크 실행자는 여러 에이전 트들에게 명령들을 발행하는데, 이들 중 하나는 생성 위치(5103)에 위치할 수 있으며, 이들 중 하나는 저장 위치(5105)에 위치할 수 있다. 이들 태스크는 실행되어 현재 진행중이며, 이 예를 위해 작업은 인터럽트되고 후에 복구된다. 작업 인터럽션은 단전과 같은 시스템 실패를 통해 발생할 수 있다. 복구시, 데이터 보호기(5101)는 작업의 태스크가 시스템 실패 전에 진행중이었음을 식별한다. 작업의 태스크가 진행중이었음을 식별한 때, 데이터 보호기(5101)는 태스크를 재개하는 명령을 발행한다. 태스크의 재개시, 데이터 실행자는 태스크를 실패하게 하며, 실패 작업에 대한 간단한 제거를 수행한다. 태스크가 결정적인 경우, 적절한 건강 제공자에게 통지된다.
메이크업 작업은 이전 작업이 중지된 경우 픽업하는 작업이다. 메이크업 작업은 이전 작업에서 실패하였거나 이전 작업에서 시작되지 않았던 태스크들을 포함한다. 예를 들어, 실패 작업이 복제 작업인 경우, 건강 제공자는 복제 작업의 어떤 태스크가 성공적으로 완료되지 못했는지를 식별하고 미완료 태스크 및 그 작업에서 완료되지 않은 모든 다른 태스크를 포함하는 메이크업 작업을 생성한다. 메이크업 작업이 실패 태스크의 수신에 응답하여 생성되는 경우, 건강 관리자는 실패 태스크를 식별하고, 이 태스크 및 잠재적으로 작업에서 일렬로 또는 병렬로 실행될 임의의 다른 태스크들을 포함하는 작업을 생성한다. 메이크업 작업의 생성시, 건강 관리자는 실행할 메이크업 작업을 스케쥴링한다. 이어서, 메이크업 작업은 그 자신의 작업인 것처럼 스케쥴링된 대로 진행되며, 메이크업 작업의 태스크들이 실행된다. 또한, 메이크업 작업은 그 자신의 작업으로서 스케쥴링되어, 작업 관리자 의 관점에서는 임의의 다른 작업으로서 취급되므로, 작업 관리자는 그것이 메이크업 작업인지를 모를 수 있다.
도 52는 본 발명의 일 실시예에 따라 태스크 실패를 식별하고 그 태스크가 결정적인 경우 메이크업 작업을 생성하는 메이크업 작업 루틴의 흐름도이다. 메이크업 작업 루틴(5200)은 데이터 보호 시스템에 의해 실행되거나, 본 발명의 일 실시예에서 건강 관리자에 의해 실행될 수 있다.
메이크업 작업 루틴(5200)은 블록 5201에서 시작하고, 블록 5203에서 태스크 실패를 수신한다. 전술한 바와 같이, 태스크가 인터럽트되는 경우, 태스크 실행자는 이전 실행 태스크를 재개하고 실패하게 하여, 태스크 실패 통지를 발행한다. 태스크 실행자는 실패 태스크에 대한 제거를 수행한다.
판정 블록 5205에서, 메이크업 작업 루틴(5200)은 실패 태스크가 결정적인지를 판정한다. 다른 실시예에서, 사용자는 어떤 태스크들이 결정적인 것으로 간주되어야 할지를 지정할 수 있다. 판정 블록 5205에서 실패 태스크가 결정적인 것으로 판정된 경우, 미완료 태스크 및 임의의 관련 태스크들이 식별된다. 블록 5209에서 메이크업 작업 루틴(5200)은 각각의 미완료 태스크에 대한 메이크업 작업을 생성하고, 블록 5211에서 메이크업 작업이 스케쥴링된다.
판정 블록 5205를 다시 참조하면, 실패 태스크가 결정적이 아닌 것으로 판정된 경우, 메이크업 작업 루틴은 블록 5213에서 종료된다. 태스크가 여러번 수행되는 루틴 작업의 일부인 경우 그 태스크는 결정적인 아닌 것으로 식별될 수 있다. 예를 들어, 배경 복제를 위한 복제 작업이 매시간 실행되도록 스케쥴링되는 경우 이 복제 작업은 결정적이 아닌 것으로 간주될 수 있다. 따라서, 복제 작업은 스케쥴에 따라 다시 진행되므로, 데이터 보호 시스템은 복제 작업의 태스크들이 결정적이 아닌 것으로 판정할 수 있다.
메이크업 작업이 스케쥴되어야 하는지를 판정하는 것 외에, 데이터 보호기는 작업 관리자를 통해, 태스크 실패에 응답하여, 실패 태스크를 포함하는 작업이 계속되어야 하는지 또는 또한 실패되어야 하는지를 판정한다. 실패 태스크가 작업을 실패하게 할 것으로 판정된 태스크인 경우, 작업 관리자는 관련 작업을 실패하게 한다. 태스크가 결정적인 것으로 간주될 수 있어도(따라서 메이크업 작업이 필요), 태스크는 작업이 실패하는 것을 요구하지 않을 수 있다. 또한, 비결정적인 태스크의 실패도 작업 실패를 유발할 수 있다. 예를 들어, 작업이 다수의 데이터 소스로부터의 복제를 포함할 때, 복제 태스크들 중 하나(결정적 태스크)의 실패는 작업의 실패를 유발하지 않을 수 있다.
전술한 바와 같이, 데이터 보호 시스템은 데이터 보호 시스템의 특정 부분들을 제어하는 관리자들을 포함한다. 예를 들어, 데이터 보호 시스템은 복제 관리자, 구성 관리자, 건강 관리자, 요약 관리자, 작업 관리자, 매체 관리자, 아카이브 관리자 등을 포함하지만 이에 한하지 않는다. 각각의 관리자는 데이터 보호기 데이터베이스의 특정 부분을 유지한다. 데이터베이스의 각 부분은 대응 관리자에 의해서만 기입될 수 있는 한 세트의 테이블로 구성된다. 이들 테이블은 임의의 관리자 및 다른 외부 애플리케이션들에 의해 판독될 수 있으나, 대응 관리자는 테이블에 데이터를 기입할 수 있는 단 하나이므로, 모든 동시 제어 및 동기화 논리는 그 관리자에 의해 소유된다. 건강 관리자는 태스크 및 작업을 모니터하는 것 외에도 다른 관리자들을 모니터할 수 있다. 건강 관리자는 관리자와 연관된 임의의 태스크의 실패에 응답하도록 구성되며, 관리자에 대응하는 데이터베이스의 상태를 검사하여, 어떤 복구 액션이 필요한지를 결정할 수 있다.
또한, 관리자는 관리자의 기능을 구현하는 하나 이상의 태스크 실행자를 포함할 수 있다. 예를 들어, 복제 관리자는 복제 태스크 실행자, 시간 버젼닝 태스크 실행자, 및 시간 버젼닝으로부터의 복구 태스크 실행자를 포함하지만 이에 한하지 않는 복제본과 연관된 모든 태스크 실행자를 포함할 수 있다.
데이터 보호 시스템의 물리 객체들(예를 들어, 복제본, 매체, 디스크, 라이브러리, 드라이브)에 대해 상태 모델이 유지된다. 각각의 상태 모델은 객체들이 가질 수 있는 가능한 상태들, 및 상태들 사이의 허용 가능한 전이들을 기술한다. 예를 들어, 도 37은 본 발명의 일 실시예에 따른 복제본에 대한 상태 모델을 나타낸다. 상태 모델은 객체의 수명을 기술하며, 객체를 하나의 상태에서 다른 상태로 전이하기 위해 어떤 활동들이 수행되어야 하는지를 나타낸다. 예를 들어, 복제본이 무효 상태(3705)(도 37)에 있을 때, 그 상태에 기초하여 데이터 보호 시스템은 복제본을 유효 상태(3711)로 설정하기 위해 검증 작업이 수행되어야 한다는 것을 알게 된다. 객체의 상태는 종종 건강 제공자에 대한 입력이 된다.
상태 모델의 유지는 복구를 위해 건강 제공자에 의해 이용될 수 있는 공지 상태를 유지하며, 따라서 에러 처리를 단순화한다. 또한, 객체의 상태를 모니터함으로써 사용자는 데이터 보호 시스템이 임의의 에러 조건을 처리한 방법을 제공받 는다.
데이터 보호 시스템은 또한 데이터 보호 시스템의 부분들에 의해 생성되는 이벤트들을 모니터하며, 데이터 보호 시스템 자체의 전체 상태에 관한 보고를 사용자에게 제공한다. 대안으로, 보고는 데이터 보호 시스템 내의 상이한 물리 객체들에 대한 특정 정보를 제공할 수 있다. 예를 들어, 생성 위치의 서버가 이용 가능하지 않은 경우, 사용자에게 그 문제를 알리고 솔루션을 제시하는 보고 에러가 생성될 수 있다.
이벤트들은 데이터 보호 시스템에 의해 검토되고, 이 검토에 기초하여 검토 이벤트에 관한 보고서가 생성된다. 이 보고서는 3개의 카테고리 중 하나, 즉 정보, 경고 또는 에러로 분류된다. 일반적으로, 보고서가 에러 보고서인 경우, 이것은 사용자 액션이 필요하다는 것을 식별한다. 보고서가 경고 보고서인 경우, 이것은 즉각적인 사용자 액션은 필요하지 않지만, 경고가 자동으로 또는 사용자에 의해 해결되지 않을 경우에는 사용자 액션이 필요할 수 있다는 것을 식별한다. 마지막으로, 보고서가 정보 보고서인 경우, 이것은 사용자에게 사용자로부터의 액션이 필요하다는 것을 알리며, 데이터 보호 시스템에 관한 정보를 제공한다. 당업자가 이해하듯이, 보고서는 정보, 경고 및 에러 외에, 또는 대안으로 임의 형태로 제공될 수 있다.
보고서는 데이터 보호 시스템의 상이한 부분들에 의해 생성되는 이벤트들을 검토함으로써 생성된다. 이들 이벤트에 기초하여, 데이터 보호 시스템은 이벤트들 및 데이터 보호 시스템의 그 부분의 상태에 관한 보고서를 컴파일한다. 따라서, 사용자는 데이터 보호 시스템에 의해 생성되는 이벤트들 모두를 제공받지 못하며, 그 대신 정보 보고서, 경고 보고서 또는 에러 보고서로 분류된 보고서를 제공받는다. 제공된 보고서는 필요에 따라 데이터 보호 시스템에 의해 검출된 문제에 대해 제시된 솔루션을 포함할 수 있다. 보고서는 최종 작업에서 태스크가 실패하였는지에 관계없이 생성될 수 있다. 예를 들어, 후술하는 바와 같이, 최종 복사 작업이 성공한 경우에도(블록 5409), 저장 위치에 사본을 유지하는 데 사용되는 디스크 공간이 소정의 임계치를 초과하는 경우(블록 5411), 데이터 보호 시스템이 경로로서 분류하는 이벤트가 생성되고, 사용자가 더 많은 디스크 공간을 할당하기를 원할 수 있다는 것을 사용자에게 알리는 경고 보고서가 사용자에게 제공된다(블록 5413).
보고서 타입(정보, 경고, 에러)은 데이터 보호 시스템의 특정 부분들을 분석함으로써 결정될 수 있다. 예를 들어, 시간 버젼 진단 루틴(5700)(도 57)을 참조하면, 소정 기간 동안 누락된 시간 버젼의 수 및 총 보존 기간이 계산되고(블록 5725), 보고서 분류(경고, 에러)에 대한 결정인 이들 기간에 누락된 시간 버젼의 비율에 기초하여 이루어진다.
또한, 몇몇 예에서, 보고서에 포함될 제안들을 결정하기 위해 일련의 테스트가 수행될 수 있다. 예를 들어, 복사 진단 루틴(5400)에서 사본이 유효하지 않고(5403), 검증 작업이 실패한 경우(5445), 데이터 보호 시스템은 일련의 테스트를 통해(판정 블록들 5447, 5451, 5455, 5459), 사용자에게 생성된 에러 보고서에 어떤 제안된 솔루션이 포함되어야 하는지를 판정하도록 진행한다. 유사한 예가 복구 진단 루틴(5900)(도 59)에 나타나 있다. 구체적으로, 작업이 실패된 것으로 판정 된 경우(5911), 데이터 보호 시스템은 일련의 테스트를 통해(판정 블록 5917, 5921, 5925, 5929), 에러 보고서에 어떤 제안된 솔루션들이 포함되어야 하는지를 결정한다.
도 53은 본 발명의 일 실시예에 따라 데이터의 사본과 연관된 문제를 진단하고, 문제가 검출된 경우 제안된 수정이 포함된 보고서를 생성하는 흐름도이다. 전술한 바와 같이, 보고서는 3개의 상태, 즉 에러, 경고 및 정보 중 하나로 분류될 수 있다.
진단 루틴(5300)은 블록 5301에서 시작하고, 블록 5303에서 루틴은 도 54-56과 관련하여 상세하게 설명되는 바와 같이 복사 진단 루틴을 수행한다. 복사 진단 루틴(5303)을 수행하는 것 외에, 진단 루틴(5300)은 도 55-58과 관련하여 설명되는 바와 같이 시간 버젼 진단 루틴을 수행한다. 마지막으로, 진단 루틴(5300)은 데이터 보호 시스템에 의해 발행된 임의의 다른 경고가 존재하는지를 판정한다.
판정 블록 5309에서, 복사 진단 루틴, 시간 버젼 진단 루틴 중 어느 하나에서 검출되거나 다른 경고에 의해 제공된 임의의 에러가 존재하는지에 대한 판정이 이루어진다. 판정 블록 5309에서 에러가 검출된 것으로 판정된 경우, 판정 블록 5311에서 에러를 기술하고 사용자에게 보고되는 에러를 해결하기 위해 취해야 할 단계들을 제시하는 에러 보고서가 생성된다. 그러나, 판정 블록 5309에서 에러가 검출되지 않은 것으로 판정된 경우, 판정 블록 5313에서 복사 진단 루틴, 시간 버젼 진단 루틴 중 어느 하나로부터 생성되거나 다른 경고에 의해 제공된 임의의 경고가 존재하는지에 대한 판정이 이루어진다. 판정 블록 5313에서 경고가 검출된 것으로 판정된 경우, 블록 5315에서 사용자에 대한 경고를 기술하고 사용자에게 경고를 해결하기 위해 수행될 수 있는 잠재적 단계들을 제공하는 경고 보고서가 생성된다. 마지막으로, 판정 블록 5313에서 경고가 검출되지 않은 것으로 판정된 경우, 판정 블록 5317에서 데이터 보호 시스템에 문제가 없으며 사용자에 의해 요구된 대로 정보를 보호하고 있다는 것을 사용자에게 알리는 정보 보고서가 생성된다.
블록(5303, 5305, 5307)의 루틴들 각각을 진행한 후 이들 루틴의 가장 심각한 문제를 결정함으로써(판정 블록 5309, 5313), 임의의 잠재적인 문제가 단일 보고서로서 제공될 수 있다. 예를 들어, 에러가 식별된 경우, 에러 및 제안 솔루션이 제공될 수 있으며, 보다 심각하나 문제인 에러가 해결될 때까지 임의의 경고 또는 정보 보고서가 보류될 수 있다.
도 54는 본 발명의 일 실시예에 따라 데이터 보호 시스템에서 데이터 복사의 잠재적 문제를 진단하는 복사 진단 루틴의 상세를 기술하는 흐름도이다. 복사 진단 루틴은 복제본 저장, 아카이브 또는 복제본 및 아카이브 양자와 같은 임의 타입의 저장에 이용될 수 있다. 후술하는 바와 같이, 복사 진단 루틴(5400)은 최종 복사 태스크가 성공했는지 실패했는지를 판정한다. 최종 복사 태스크가 실패한 경우, 복사 모드가 배경인지 백업인지에 기초하여 다른 경로를 따른다(블록 5417). 하루에 한번 실행되고 실패한 태스크가 매시간 실행되고 실패한 태스크보다 훨씬 더 중요하므로, 이들 실패에 기초하여 상이한 보고서가 생성된다. 예를 들어, 모드가 배경이고, 태스크가 실패한 경우, 실패 횟수가 소정의 하한을 초과하지 않은 경우에는 사용자에게 정보 보고서가 제공될 수 있다. 대안으로, 배경 모드에서는 자주 실행되도록 스케쥴링된 태스크에 대해서는 보고서가 생성되지 않을 수 있는데, 이는 이 태스크의 후속 실행이 문제를 자동으로 해결할 수 있기 때문이다. 이와 달리, 복사 모드가 백업 모드이고 태스크가 실패한 경우, 경고 보고서 또는 에러 보고서가 사용자에게 제공된다.
복사 진단 루틴(5400)은 블록 5401에서 시작하고, 판정 블록 5403에서 사본이 유효한지에 대한 판정이 이루어진다. 판정 블록(5403)에서 사본이 유효한 것으로 판정된 경우, 판정 블록 5405에서 복사 작업이 현재 실행중인지에 대한 판정이 이루어진다. 판정 블록 5405에서 복사 작업이 실행되고 있는 것으로 판정된 경우, 블록 5407에서 데이터 보호 시스템은 사본의 최종 상태를 식별하고 복사 작업이 현재 실행되고 있다는 표시를 사용자에게 제공하는 정보 보고서를 생성한다.
그러나, 판정 블록 5405에서 복사 작업이 현재 실행되고 있지 않은 것으로 판정된 경우, 판정 블록 5409에서 최종 복사 작업이 성공했는지에 대한 판정이 이루어진다. 판정 블록 5409에서 최종 복사 작업이 성공한 것으로 판정된 경우, 판정 블록 5411에서 최종 복사 작업으로부터 디스크 이용 임계 경고가 생성되었는지에 대한 판정이 이루어진다. 사본이 현재 저장되고 있는 저장 위치의 부분이 이용 가능한 디스크 공간 상에서 로우 상태에 있다는 것을 데이터 보호 시스템이 식별하는 것에 응답하여 디스크 이용 임계 경고가 생성된다. 예를 들어, 복제본 상의 디스크 공간이 로우 상태일 때마다, 또는 테이프 매체가 아니라 디스크에 대해 아카이브가 수행되고 풀 내의 매체가 로우 상태이거나 자유 풀 내의 매체가 로우 상태일 때, 디스크 이용 임계 경고가 생성될 수 있다. 이 임계 레벨은 도달시 임계 경 고를 생성하는 소정의 미리 설정된 크기 값이다.
판정 블록 5411에서 디스크 이용 임계 경고가 생성된 것으로 판정된 경우, 블록 5413에서 저장 위치에서의 디스크 이용이 소정의 임계치를 초과하였음을 나타내는 경고 보고서가 생성되고, 사본에 대해 추가 디스크 공간이 할당되어야 한다는 제한을 제공한다. 다른 실시예에서, 사용자에게 임계 경고를 알리는 경고 보고서를 생성하는 것 외에도, 데이터 보호 시스템은 사본에 대한 현재 디스크 공간 상태를 확인함으로써 경고가 여전히 적용될 수 있는지를 알기 위해 검사할 수 있다.
판정 블록 5411에서 디스크 이용 임계 경고가 생성되지 않은 것으로 판정된 경우, 데이터 보호 시스템의 그 부분과 관련된 문제가 전혀 없다는 것을 나타내는 정보 보고서가 사용자에게 제공된다.
판정 블록 5409를 다시 참조하면, 최종 복사 작업이 성공하지 못한 것으로 판정된 경우, 판정 블록 5417에서 보호 모드가 배경 모드인지에 대한 판정이 이루어진다. 전술한 바와 같이, 배경 보호 모드는 복사가 거의 연속적인 데이터 보호 시스템의 동작 모드이다. 예를 들어, 매시간마다, 하루에 24시간, 일주일에 칠일 복사가 계속된다. 대안으로, 복사 모드는 백업 모드일 수 있다. 백업 보호 모드는 복사가 비교적 빈번하지 않은 동작 모드이다. 예를 들어, 아카이빙 및/또는 복제는 밤에 이루어질 수 있다.
판정 블록 5417에서 복사 모드가 배경 모드인 것으로 판정된 경우, 블록 5419에서 이전에 실패한 복사 횟수가 계산된다. 판정 블록 5421에서, 블록 5419에서 계산된 실패 복사 작업 횟수가 소정의 하한을 초과했는지에 대한 판정이 이루어 진다. 판정 블록 5421에서 이전 실패 복사 작업 횟수가 소정의 하한을 초과하지 않은 것으로 판정된 경우, 블록 5422에서 데이터 보호 시스템이 현재 예상대로 동작하고 있다는 것을 사용자에게 알리는 정보 보고서가 생성된다. 실패 복사 작업 횟수의 계산 및 보고서를 생성해야 할지를 결정하기 위하여 그 횟수를 한계치에 비교하는 것은 데이터 보호 시스템이 사용자에게 통지할 필요 없이 문제를 해결할 수 있는 기회를 제공한다. 예를 들어, 복사 작업이 매시간 이루어지고 있고 한번 누락된 경우, 데이터 보호 시스템은 복사 작업이 성공적으로 완료된 경우 다음 시간에 이 문제를 해결할 수 있다.
그러나, 판정 블록 5421에서 이전 실패 복사 작업 횟수가 소정의 하한을 초과하는 것으로 판정된 경우, 판정 블록 5423에서 이전 실패 복사 작업 횟수가 보다 높은 제2 한계를 초과하였는지에 대한 판정이 이루어진다. 이전 실패 복사 작업 횟수가 보다 높은 소정의 한계를 초과하지 않은 것으로 판정된 경우, 블록 5424에서 실패한 복사 작업 횟수를 사용자에게 알리는 경고 보고서가 생성된다. 이 경고 보고서는 또한 사용자에게 실패 복사 작업 횟수가 보다 높은 소정의 횟수에는 도달하지 않았으며 현재 사용자의 어떠한 액션도 요구되지 않는다는 것을 알린다.
판정 블록 5417에서 보호 모드가 배경 모드가 아닌 것으로 판정된 경우, 즉 백업 모드인 경우, 또는 판정 블록 5423에서 실패 복사 작업 횟수가 보다 높은 소정의 한계를 초과한 것으로 판정된 경우, 복사 진단 루틴(5400)은 블록 5425(도 55)에 도시된 바와 같이 최종 태스크 실패에 대한 이유를 얻는다. 본 발명의 일 실시예에서, 복사 작업 실패의 이유는 복사 작업 자체 내에 포함된 태스크들에 의 해 생성되는 태스크 결과들로부터 얻어질 수 있다. 전술한 바와 같이, 태스크 결과들은 태스크 자체에 대한 메타데이터, 태스크가 행하고 있었던 것, 태스크가 완료한 것, 또는 태스크가 실패한 이유를 포함한다.
판정 블록 5427에서 실패 이유가 사용자가 이전 복사 작업을 취소한 것인지에 대한 판정이 이루어진다. 판정 블록 5427에서 복사 작업이 사용자의 작업 취소로 인하여 실패한 것으로 판정된 경우, 복사 실패에 대한 통지가 무시된다. 그러나, 판정 블록 5427에서 사용자의 취소가 아닌 다른 이유 때문에 이전 복사가 실패한 것으로 판정된 경우, 판정 블록 5431에서 데이터 보호 시스템이 생성 위치와 접촉할 수 없었기 때문에 이전 복사 작업이 실패했는지에 대한 판정이 이루어진다. 생성위치와 접촉할 수 있는 능력이 없는 것은 네트워크 단절, 전원 문제, 또는 생성 서버가 현재 유지 보수 및 다른 동작을 위해 셧다운된 것과 같은 여러 상이한 타입의 외부 이벤트들로부터 유발될 수 있다.
판정 블록 5431에서 데이터 보호 시스템이 생성 위치와 접촉할 수 없었기 때문에 최종 복사 작업이 실패한 것으로 판정된 경우, 블록 5433에서 이전 복사 작업이 성공적으로 완료되지 못하였음을 사용자에게 알리고, 데이터 보호 시스템이 생성 위치와 접촉할 수 없는 이유를 결정하기 위하여 네트워크 및/또는 생성 위치를 검사할 것을 사용자에게 제안하는 보고서가 생성된다.
판정 블록 5431에서 데이터 보호 시스템이 생성 위치와 접촉할 수 없었기 때문에 이전 실패가 발생한 게 아니라는 판정에 응답하여, 판정 블록 5435에서 데이터 보호 시스템이 복사를 수행하는 에이전트와 접촉할 수 없었기 때문에 이전 실패 가 발생하였는지에 대한 판정이 이루어진다. 복사를 행하는 에이전트와의 접촉 불가능으로 인해 실패가 발생한 것으로 판정된 경우, 블록 5437에 도시된 바와 같이, 사용자에게 에러를 알리고 사용자가 에이전트를 검사하고 가능하다면 루틴을 재개하며, 그리고/또는 에이전트 설치를 검사하고, 그리고/또는 필요에 따라 에이전트를 재설치할 것을 제안하는 경고 보고서가 생성된다.
그러나, 이전 실패가 사용자 취소(블록 5427), 생성 위치와의 접촉 불가능(블록 5431) 또는 에이전트와 접촉 불가능(블록 5435)에 기인한 것이 아니라고 판정된 경우, 문제는 알 수 없으며, 데이터 보호 시스템이 실패의 원인을 판정할 수 없음을 사용자에게 알리고 사용자가 네트워크 접속 및 복사와 관련된 에이전트를 검사할 것을 제안하는 에러가 생성된다.
도 54를 다시 참조하면, 판정 블록 5403에서 복사 진단 루틴(5400)을 이용하여 진단이 수행되고 있는 사본이 유효하지 않은 것으로 판정된 경우, 판정 블록 5437(도 56)에서 진단되고 있는 사본이 무효인지(즉, 도 37의 무효 상태(3705)에 대한 판정이 이루어진다. 판정 블록 5437에서 진단되고 있는 사본이 무효로 판정된 경우, 블록 5439에서 복사 진단 루틴은 데이터 소스에 대한 복사가 초기화되지 않았음을 사용자에게 통지한다. 다른 실시예에서는, 블록 5439에서 진단되고 있는 특정 데이터 소스에 대한 복사가 초기화되지 않았음을 알리고 사용자에게 초기화 작업을 생성하기를 원하는지를 묻는 보고서가 사용자에게 제공될 수 있다.
판정 블록 5437에서 사본이 무효인 것으로 판정된 경우, 판정 블록 5441에서 진단되고 있는 사본에 대해 현재 검증 작업이 실행되고 있는지에 대한 판정이 이루 어진다. 판정 블록 5441에서 진단되고 있는 특정 사본에 대해 현재 검증 작업이 행해지고 있는 것으로 판정된 경우, 블록 5443에서 진단되고 있는 사본이 현재 검증 작업에 의해 검증되고 있으며 현재 어떠한 액션도 필요하지 않다는 것을 사용자에게 알리는 경고 보고서가 생성된다.
판정 블록 5441에서 검증 작업이 실행되고 있지 않은 것으로 판정된 경우, 판정 블록 5445에서 복사 진단 루틴(5400)은 이전 검증 작업이 실행되어 실패했는지를 판정한다. 판정 블록 5445에서 검증 작업이 실행되어 실패한 것으로 판정된 경우, 판정 블록 5447에서 실패가 사용자에 의한 검증 작업의 취소의 결과였는지에 대한 판정이 이루어진다. 판정 블록 5445에서 이전 실행 검증 작업이 실패하지 않은 것으로 판정된 경우, 또는 이전 검증 작업이 실패하였고 그 실패가 사용자에 의한 취소의 결과인 것으로 판정된 경우, 블록 5449에서 사용자에게 실패를 알리고, 사용자가 검증 작업을 실행할 것으로 제안하는 에러 보고서가 생성된다. 대안으로, 검증 작업은 자동으로 실행될 수 있다.
그러나, 판정 블록 5447에서 이전에 실행되어 실패한 검증 작업이 사용자에 의한 취소가 아닌 다른 이유로 실패한 것으로 판정된 경우, 블록 5449에서 이전 검증 작업과 연관된 태스크 결과들로부터 그 실패에 대한 이유가 얻어진다. 블록 5449에서 얻은 실패 이유를 이용하여 복사 진단 루틴(5400)은 판정 블록 5451에서 이전에 실행되어 실패한 검증 작업이 사본에 대해 이용 가능한 저장 위치의 양이 풀 상태이었기 때문에 실패하였는지를 판정한다. 판정 블록 5451에서 저장 위치의 사본을 위한 공간이 풀 상태이었던 것으로 판정된 경우, 블록 5453에서 사용자에게 저장 위치가 풀 상태라는 것을 알리고 사용자가 사본의 저장을 위해 더 많은 디스크 공간을 할당할 것을 제안하는 에러가 보고된다. 더 많은 디스크 공간의 할당은 복제본을 위한 추가 디스크 공간의 추가를 포함할 수 있다.
판정 블록 5451에서 실패가 불충분한 공간의 결과가 아닌 것으로 판정된 경우, 블록 5455에서 실패가 데이터 보호 시스템이 저장 위치에 전혀 도달할 수 없음의 결과이었는지에 대한 판정이 이루어진다. 판정 블록 5455에서 데이터 보호 시스템이 사본을 검증하기 위해 저장 위치에 도달할 수 없었다는 것으로 판정된 경우, 에러 보고서가 생성된다. 에러 보고서는 사용자에게 저장 위치가 액세스될 수 없음을 알리며, 사용자가 데이터 보호 시스템과 저장 위치 간의 통신, 타겟 볼륨과의 통신, 및 저장 위치 자체의 완전성을 검사할 것을 제안한다.
판정 블록 5455에서 실패가 저장 위치의 액세스 불가능의 결과가 아닌 것으로 판정된 경우, 판정 블록 5459에서 생성 위치에서 변경 로그 오버플로우가 있었는지에 대한 판정이 이루어진다. 로그 오버플로우는 너무나 많은 변경들이 생성 위치의 변경 로그 내에 큐잉되어 있고, 그리고/또는 저장 위치의 스필 로그가 풀 상태로 되어 발생할 수 있다. 이것은 변경 레코드 및 검증 레코드가 이들이 저장 위치로 전송되거나 저장 위치에서 처리되는 것보다 빠르게 생성되고 있는 경우에 발생할 수 있다. 판정 블록 5459에서 실패가 로그 오버플로우의 결과인 것으로 판정된 경우, 블록 5461에 도시된 바와 같이, 사용자에게 로그 오버플로우를 알리고, 로그가 오버플로우되었음을 지시하고 로그의 크기가 적절히 조절되어야 할 것을 제안하는 에러 보고서가 생성된다.
마지막으로, 복사 진단 루틴(5400)이 판정 블록 5459에서 실패가 로그 오버플로우의 결과가 아닌 것으로 판정한 경우, 블록 5463에서 사용자에게 실패를 알리고 사용자가 잠재적 통신 문제 도는 다른 잠재적 문제에 대해, 그리고 실패가 계속되는 경우 데이터 보호 시스템을 재초기화하기 위하여 생성 서버, 데이터 보호기 및 저장 서버를 검사할 것을 제안하는 에러 보고서가 생성된다.
보호 문제를 진단하는 또 하나의 예는 시간 버젼의 진단이다. 시간 버젼 진단 루틴은 도 53(블록 5305)에 기술되고 도 57과 관련하여 보다 상세히 기술된 전반적인 진단 루틴과 관련하여 설명된다.
도 57은 본 발명의 일 실시예에 따라 데이터 보호 시스템에 의해 생성되는 시간 버젼의 잠재적인 문제를 진단하기 위한 시간 버젼 진단 루틴을 기술하는 흐름도이다. 시간 버젼 진단 루틴(5700)은 블록 5701에서 시작하고, 판정 블록 5703에서 시간 버젼이 생성되고 있는 사본이 유효 상태에 있는지에 대한 판정이 이루어진다. 판정 블록 5703에서 시간 버젼이 생성되고 있는 사본이 유효 상태에 있는 것으로 판정된 경우, 판정 블록 5705에서 그 사본에 대한 최종 시간 버젼 작업이 성공했는지에 대한 판정이 이루어진다. 판정 블록 5705에서 사본에 대한 최종 시간 버젼 작업이 성공하지 못한 것으로 판정된 경우, 판정 블록 5707에서 시간 버젼 작업의 실패 이유가 시간 버젼 작업의 태스크와 연관된 태스크 결과로부터 얻어진다.
판정 블록 5709에서 설명을 제공하고 시간 버젼을 다시 취할 것을 사용자에게 제안하는 에러 보고서가 생성된다. 다른 실시예에서, 설명을 제공하는 보고서를 생성하는 것 외에도, 데이터 보호 시스템은 후속 시간 버젼을 취하기 위한 시간 버젼 작업을 자동으로 스케쥴링할 수 있다.
다시 판정 블록 5703을 참조하면, 시간 버젼이 취해지는 사본이 유효 상태에 있지 않은 것으로 판정된 경우, 시간 버젼 진단 루틴(5700)은 도 56에 설명된 블록들과 관련하여 전술한 바와 같이 계속한다.
판정 블록 5705에서 유효 사본의 최종 시간 버젼 작업이 성공한 것으로 판정된 경우, 판정 블록 5711에서 시간 버젼이 실제로 취해졌는지에 대한 판정이 이루어진다. 판정 블록 5711에서 시간 버젼이 실제로 취해지지 않은 것으로 판정된 경우, 판정 블록 5713에서 복사 작업 실패가 있었는지에 대한 판정이 이루어진다. 판정 블록 5713에서 복사 작업 실패가 있었던 것으로 판정된 경우, 시간 버젼 진단 루틴(5700)은 도 55에 도시되고 설명된 블록들과 관련하여 전술한 바와 같이 계속한다.
그러나, 판정 블록 5711에서 시간 버젼이 취해지지 않은 것으로 판정되고, 판정 블록 5713에서 복사 작업 실패가 없었던 것으로 판정된 경우, 이것은 사본 상에 어떠한 활동도 없었으며 따라서 시간 버젼이 필요하지 않았다는 것을 데이터 보호 시스템에게 식별시킨다. 또한, 사본 및/또는 시간 버젼에 아무런 문제가 없으므로, 블록 5715에서 사본에 대한 어떠한 활동도 없었으며 따라서 시간 버젼이 취해지지 않았음을 사용자에게 알리는 정보 보고서가 생성된다.
다시 판정 블록 5711을 참조하면, 시간 버젼 작업이 수행되었고 시간 버젼이 취해진 것으로 판정된 경우, 판정 블록 5721(도 58)에 도시된 바와 같이, 복구가 필요한 경우 가장 오래된 의도된 시간 버젼이 이용될 수 있는지에 대한 판정이 이 루어진다. 가장 오래된 의도된 시간 버젼이 이용 가능한지를 결정하는 것은 기간 의도가 만족되고 있는지의 여부를 확인한다. 예를 들어, 기간이 적어도 일년된 정보를 복구할 수 있고 가장 오래된 의도된 시간 버젼(일년 지남)이 이용 가능한 경우, 이는 기간 의도가 만족되고 있음을 확인한다. 판정 블록 5721에서 가장 오래된 의도된 시간 버젼이 복구를 위해 이용될 수 없는 것으로 판정된 경우, 가장 오래된 시간 버젼이 이용될 수 없고 이것의 가능 가능성 높은 원인은 디스크 공간의 부족이라는 것을 사용자에게 알리는 에러 보고서가 생성된다. 에러 보고서는 또한 블록 5723에 도시된 바와 같이 사용자에게 시간 버젼을 위해 더 많은 디스크 공간을 할당할 것을 제안한다.
판정 블록 5721에서 가장 오래된 의도된 시간 버젼이 이용 가능한 것으로 판정된 경우, 블록 5725에서 시간 버젼 진단 루틴(5700)은 소정의 기간 동안 누락된 사본들의 수를 계산하고 총 유지 기간 동안 누락된 사본들의 총 수를 계산한다. 누락 시간 버젼들이 계산되는 소정의 기간은 일주, 2주, 한달 등과 같이 총 유지 기간보다 짧은 임의의 소정 기간일 수 있다. 총 유지 기간은 사용자가 보호 객체들을 복구할 수 있기를 원하는 총 기간을 식별할 때 보호 의도들의 설정에서 사용자에 의해 식별된다. 누락 사본들의 수를 계산하는 것은 빈도 의도가 만족되고 있는지를 확인한다.
판정 블록 5727에서, 블록 5725에서 누락 사본들이 계산된 소정 기간 동안 0%를 넘는 시간 버젼이 존재하는지에 대한 판정이 이루어진다. 판정 블록 5727에서 누락된 시간 버젼이 존재하지 않는 것으로 판정된 경우, 판정 블록 5729에서 총 유지 기간 동안 50%보다 낮은 시간 버젼이 누락되었는지에 대한 판정이 이루어진다. 판정 블록 5729에서 총 기간 동안 누락 시간 버젼의 수가 50%보다 적은 것으로 판정된 경우, 블록 5731에 도시된 바와 같이 데이터 보호 시스템의 시간 버젼 부분에 아무런 문제가 현재 없음을 사용자에게 알리는 정보 보고서가 생성된다. 전술한 바와 같이, 문제를 즉시 보고하지 않음으로써 데이터 보호 시스템은 사용자의 관여 없이 임의의 문제를 해결할 수 있는 기회를 갖는다. 예를 들어, 총 기간 동안 누락 사본의 수가 10%이지만 후속 복사 작업들이 성공적으로 완료된 것으로 판정된 경우, 이 비율은 사용자에게 알릴 필요 없이 시간에 따라 감소하게 된다.
그러나, 블록 5729에서 총 기간 동안 50%를 초과하는 시간 버젼이 누락된 것으로 판정된 경우, 블록 5733에 도시된 바와 같이, 현재 누락된 시간 버젼의 비율을 식별하고 누락 시간 버젼의 비율의 계속적인 모니터링 외의 다른 액션이 필요하지 않음을 제안하는 경고 보고서가 생성된다.
판정 블록 5727에서 소정 기간 동안 누락된 소정의 시간 버젼이 존재하는 것으로 판정된 경우, 판정 블록 5735에서 소정 기간 동안 누락된 시간 버젼의 수가 0 내지 20%인지에 대한 판정이 이루어진다. 판정 블록 5735에서 소정 기간 동안 누락된 사본의 수가 0 내지 20%인 것으로 판정된 경우, 판정 블록 5737에서 총 유지 기간 동안 누락된 시간 버젼의 수가 50%보다 낮은지에 대한 판정이 이루어진다. 판정 블록 5737에서 총 유지 기간 동안 누락된 시간 버젼의 수가 50%보다 낮은 것으로 판정된 경우, 블록 5739에서 누락 시간 버젼의 비율을 제공하고 누락 시간 버젼의 비율을 모니터링하는 것 외에 다른 액션이 필요하지 않음을 제안하는 경고 보 고서가 생성된다.
그러나, 블록 5737에서 총 유지 기간 동안 누락된 시간 버젼의 비율이 50%보다 높은 것으로 판정된 경우, 블록 5741에서 누락된 시간 버젼의 비율을 사용자에게 알리는 에러 보고서가 생성된다. 또한, 블록 5741에서 생성된 에러 보고서는 보호가 예상대로 수행되고 있지 않음을 사용자에게 알리며, 사용자가 식별된 보호 파라미터들 및 생성 위치 및 저장 위치에 대한 디스크 셋업을 검사할 것을 제안한다.
다시 판정 블록 5735를 참조하면, 소정 기간 동안 누락된 시간 버젼의 비율이 0 내지 20%가 아닌 것으로 판정된 경우, 판정 블록 5743에서 총 유지 기간 동안 누락된 시간 버젼의 수가 50%보다 낮은지에 대한 판정이 이루어진다. 판정 블록 5743에서 총 유지 기간 동안 누락된 시간 버젼의 총 수가 50%보다 낮은 것으로 판정된 경우, 블록 5745에서 보호가 예상대로 수행되고 있지 않음을 사용자에게 알리며 사용자에게 총 유지 기간 동안 누락된 시간 버젼의 총 비율을 제공하고, 사용자가 사본 자체의 완전성을 검사하고 보호 스케쥴을 검사할 것을 제안하는 에러 보고서가 생성된다. 마지막으로, 판정 블록 5743에서 총 유지 기간 동안 누락된 시간 버젼의 수가 50%보다 큰 것으로 판정된 경우, 블록 5747에 도시된 바와 같이, 보호가 계속 나쁜 상태인 것을 사용자에게 알리며, 사용자에게 생성 위치 및 저장 위치 양자에서의 보호 및 디스크 셋업을 검사할 것을 제안하는 에러 보고서가 생성된다.
시간 버젼 진단 루틴(5700)의 전술한 설명을 위해 특정 비율이 이용되었지만, 본 발명의 실시예들에서 임의의 소정 비율이 이용될 수 있으며, 본 명세서에 제공된 것들은 설명을 위한 것일 뿐이라는 것을 당업자는 알 것이다.
도 59는 본 발명의 일 실시예에 따라 데이터 보호 시스템에서 정보의 복구에 있어서의 잠재적 문제를 진단하는 복구 진단 루틴의 흐름도이다. 복구 진단 루틴(5900)은 블록 5901에서 시작하고, 판정 블록 5903에서 복구 작업이 현재 실행되고 있는지에 대한 판정이 이루어진다. 판정 블록 5903에서 복구 작업이 현재 실행되고 있는 것으로 판정된 경우, 판정 블록 5905에서 복구 진단 루틴(5900)은 실행중인 복구 작업과 연관된 태스크들로부터 임의의 경고가 생성되었는지를 판정한다. 판정 블록 5905에서 실행 복구 작업과 연관된 태스크에 의해 경고가 생성되지 않은 것으로 판정된 경우, 데이터 보호 시스템에 복구 관련 문제가 존재하지 않음을 사용자에게 알리는 정보 보고서가 생성된다. 판정 블록 5905에서 현재 실행중인 작업과 연관된 태스크로부터 경고가 생성된 것으로 판정된 경우, 블록 5909에서 현재 실행중인 복구 작업이 하나 이상의 경고를 생성하였음을 사용자에게 알리는 경고 보고서가 생성되고, 사용자에게 이러한 경고를 알리며, 임의의 해결책이 필요한 경우 이러한 경고를 해결하는 접근법을 제안한다. 예를 들어, 현재 실행중인 작업은 파일이 현재 열려 있기 때문에 복구할 수 없다는 것을 나타내는 경고를 생성할 수 있다.
판정 블록 5903에서 복구 작업이 현재 실행되고 있지 않은 것으로 판정된 경우, 판정 블록 5911에서 최근 복구 작업(예를 들어, 지난 72시간 내에 실행된 복구 작업)이 완료에 실패하였는지에 대한 판정이 이루어진다. 판정 블록 5911에서 최근 복구 작업이 완료에 실패하지 않은 것으로 판정된 경우, 즉 모두 성공적으로 완 료되었거나 수행된 복구 작업이 없는 경우, 블록 5913에서 데이터 복구 시스템의 복구 부분과 관련된 문제가 없음을 사용자에게 알리는 보고서가 생성된다.
판정 블록 5911에서 최근 실행된 복구 작업이 실패한 것으로 판정된 경우, 블록 5915에서 그 작업의 실패에 대한 이유가 그 작업과 관련된 태스크 결과들로부터 얻어진다. 전술한 바와 같이, 특정 작업과 연관된 태스크들의 태스크 결과들은 태스크가 실패한 경우 태스크가 실패한 이유를 포함하는 태스크 자체에 대한 정보를 포함한다.
판정 블록 5917에서, 블록 5915에서 얻은 실패 이유를 이용하여 복구 작업의 실패가 데이터 보호 시스템이 데이터가 복구될 생성 위치와 접촉할 수 없음의 결과이었는지에 대한 판정이 이루어진다. 판정 블록 5917에서 복구 작업 실패의 이유가 데이터 보호 시스템이 생성 위치와 접촉할 수 없기 때문인 것으로 판정된 경우, 블록 5919에서 사용자에게 최종 복구 작업 실패의 이유를 알리고 사용자에게 생성 위치에서의 네트워크 접속을 검사하고 생성 위치 상의 에이전트를 검사하여 에이전트가 적절히 동작하고 있음을 보장하도록 하는 에러 보고서가 생성된다. 복사 진단 루틴(도 54-56)과 관련하여 전술한 바와 같이, 생성 위치와 같은 위치와 접촉할 수 없음은 네트워크 단절, 전력 문제, 또는 생성 위치가 유지 관리 또는 다른 동작을 위해 오프 라인 상태에 있는 것과 같은 여러 외부 이벤트들의 결과일 수 있다.
판정 블록 5917에서 복구 작업 실패의 이유가 데이터 보호 시스템이 생성 위치와 접촉할 수 없기 때문이 아닌 것으로 판정된 경우, 판정 블록 5921에서 복구 작업 실패의 이유가 생성 위치 상의 타겟이 이용 가능하지 않은 결과인지를 판정한 다. 생성 위치 상의 타겟은 복구 데이터가 기록될 생성 위치의 물리적 부분일 수 있다. 판정 블록 5921에서 타겟이 이용 가능하지 않은 것으로 판정된 경우, 블록 5923에 도시된 바와 같이, 사용자에게 복구 작업 실패의 이유를 알리고, 사용자가 잠재적 문제에 대해 생성 서버 상의 물리적 위치를 검사할 것을 제안하는 에러 보고서가 생성된다.
판정 블록 5921에서 복구 작업 실패가 생성 위치 상의 타겟이 이용가능하지 않음의 결과가 아닌 것으로 판정된 경우, 판정 블록 5925에서 복구 작업 실패의 이유가 복구 작업의 태스크가 저장 위치로부터 데이터를 판독할 수 없기 때문인지에 대한 판정이 이루어진다. 복구 작업의 태스크가 저장 위치로부터 데이터를 판독할 수 없는 것으로 판정된 경우, 블록 5927에서 사용자에게 복구 작업 실패의 이유를 알리고 사용자가 저장 위치에서 디스크 및/또는 매체를 검사할 것을 제안하는 에러 보고서가 생성된다.
판정 블록 5925에서 복구 작업 실패의 원인이 태스크가 저장 위치에서 판독할 수 없었음의 결과가 아닌 것으로 판정된 경우, 판정 블록 5929에서 복구 데이터 복구될 생성 위치의 디스크가 현재 풀 상태인지에 대한 판정이 이루어진다. 판정 블록 5929에서 디스크가 풀 상태인 것으로 판정된 경우, 복구 위치의 디스크가 요구된 데이터를 복구하기에 충분한 여유를 갖고 있지 않음을 사용자에게 알리고, 사용자가 다른 위치에 데이터를 복구하거나 생성 위치에 디스크 공간을 늘릴 것을 제안하는 에러 보고서가 생성된다.
마지막으로, 판정 블록 5929에서 복구 작업 실패의 이유가 생성 위치의 디스 크가 풀 상태인 결과가 아닌 것으로 판정된 경우, 이전 복구 작업에서 알려지지 않은 에러가 발생하였음을 사용자에게 알리고, 사용자가 복구 작업을 다시 실행할 것을 제안하는 보고서가 생성된다.
본 발명의 바람직한 실시예가 도시되고 설명되었지만, 본 발명의 사상 및 범위를 벗어나지 않고 다양한 변경이 이루어질 수 있음을 이해할 것이다.
본 발명에 따르면, 컴퓨터 시스템의 보호를 자동화하고, 시스템에 대한 변경이 발생한 때 이를 식별하고, 보호에 대한 문제가 발생한 때 사용자에게 지침을 제공하고, 담당자가 논리 명칭 공간에서 작업함으로써 보호를 생성하는 것을 허용하는 시스템, 방법, 및 장치가 제공된다.

Claims (45)

  1. 데이터의 백업을 아카이브하기 위한 아카이브 보호 계획을 생성하는 방법에 있어서,
    명칭 공간 요소(namespace element)들의 선택 및 보호 의도의 선택을 획득하는 단계 - 상기 보호 의도는 상기 선택된 명칭 공간 요소들에 대한 아카이브 데이터 보호 유형의 표시 및 아카이브 데이터 보호 기간의 표시를 포함하고, 각각의 명칭 공간 요소는 보호가능 객체(protectable object)의 논리적 표현을 제공하며, 각각의 명칭 공간 요소는 적어도 하나의 보호가능 객체를 찾는데(locate) 사용되고, 각각의 명칭 공간 요소는 분산 파일 시스템 링크, 서버, 공유, 볼륨, 폴더 및 교환 저장 그룹 중 하나를 포함하며, 상기 보호 의도는 디폴트 특성들(default properties)을 가지는 복수의 보호 의도 템플릿으로부터 사용자에 의해 선택되고, 상기 보호 의도 템플릿 특성들은 동사로 표현되는 명령어들을 포함하며, 각각의 보호 의도 템플릿은 사용자가 그 디폴트 특성들을 수정할 수 있는 능력을 제공함 -;
    상기 명칭 공간 요소들을 상기 보호가능 객체들에 맵핑하는 단계;
    보호 그룹(protected group)을 생성하는 단계 - 상기 보호 그룹은 명칭 공간 요소들과, 상기 데이터 보호 유형 및 상기 데이터 보호 기간이 적용되는 연관된 보호가능 객체들의 논리적 그룹을 포함함 -;
    상기 보호 의도 템플릿 특성들을 대응하는 동작들로 전환(turning)함으로써, 상기 선택된 보호 의도를 아카이브 스킴으로 변환(translating)하는 단계;
    상기 보호 그룹에 대한 필요한 자원을 할당하는 단계;
    자원의 할당의 완료를 나타내는 체크포인트를 생성하는 단계; 및
    상기 아카이브 스킴을 나타내는 아카이브 보호 계획을 생성하는 단계
    를 포함하는, 아카이브 보호 계획 생성 방법.
  2. 제1항에 있어서, 상기 아카이브 보호 계획에 대한 스케쥴링 의도를 수신하는 단계를 더 포함하는 아카이브 보호 계획 생성 방법.
  3. 제1항에 있어서,
    상기 아카이브 스킴(archive scheme)을 제공하는 단계;
    상기 아카이브 스킴에 대한 오버라이드(override)를 수신하는 단계;
    상기 아카이브 스킴을 수정하는 단계
    를 더 포함하고,
    상기 생성된 아카이브 보호 계획은 상기 수정된 아카이브 스킴을 나타내는, 아카이브 보호 계획 생성 방법.
  4. 제1항에 있어서, 상기 아카이브 보호 계획은 자원 계획(resource plan), 준비 계획(preparation plan) 및 보호 계획(protection plan)을 포함하는, 아카이브 보호 계획 생성 방법.
  5. 제1항에 있어서, 상기 아카이브 데이터 보호 유형은 온-사이트(on-site) 데이터 보호인, 아카이브 보호 계획 생성 방법.
  6. 제1항에 있어서, 상기 아카이브 데이터 보호 유형은 오프-사이트(off-site) 데이터 보호인, 아카이브 보호 계획 생성 방법.
  7. 제1항에 있어서, 상기 아카이브 데이터 보호 유형은 온-사이트 데이터 보호 및 오프-사이트 데이터 보호인, 아카이브 보호 계획 생성 방법.
  8. 제1항에 있어서, 상기 아카이브 데이터 보호 기간은 수년(years)인, 아카이브 보호 계획 생성 방법.
  9. 제1항에 있어서,
    상기 결정된 아카이브 스킴은
    상기 데이터의 연간 풀 백업;
    상기 데이터의 월간 풀 백업;
    상기 데이터의 주간 풀 백업; 및
    상기 데이터의 일간 부분 백업
    을 포함하는 아카이브 보호 계획 생성 방법.
  10. 제9항에 있어서, 상기 연간 풀 백업은 소정의 기간 동안 온-사이트로 유지된 후 소정의 기간 동안 오프-사이트로 유지되는, 아카이브 보호 계획 생성 방법.
  11. 제1항에 있어서, 상기 아카이브 데이터 보호 기간은 수개월(months)인, 아카이브 보호 계획 생성 방법.
  12. 제1항에 있어서, 상기 아카이브 데이터 보호 기간은 수주(weeks)인, 아카이브 보호 계획 생성 방법.
  13. 제1항에 있어서, 상기 아카이브 데이터 보호 기간은 수일(days)인, 아카이브 보호 계획 생성 방법.
  14. 제1항에 있어서, 상기 아카이브 보호 계획은 풀 백업 및 부분 백업을 생성하는 것을 포함하는, 아카이브 보호 계획 생성 방법.
  15. 제1항에 있어서, 데이터 보호 포맷의 표시를 수신하는 단계를 더 포함하는 아카이브 보호 계획 생성 방법.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
KR1020050066298A 2004-09-09 2005-07-21 데이터 보호 시스템에서 데이터를 보호하기 위한 아카이브루틴을 생성하는 방법, 시스템 및 장치 KR101150127B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/937,651 US7769709B2 (en) 2004-09-09 2004-09-09 Method, system, and apparatus for creating an archive routine for protecting data in a data protection system
US10/937,651 2004-09-09

Publications (2)

Publication Number Publication Date
KR20060046539A KR20060046539A (ko) 2006-05-17
KR101150127B1 true KR101150127B1 (ko) 2012-06-08

Family

ID=35520827

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050066298A KR101150127B1 (ko) 2004-09-09 2005-07-21 데이터 보호 시스템에서 데이터를 보호하기 위한 아카이브루틴을 생성하는 방법, 시스템 및 장치

Country Status (5)

Country Link
US (4) US7769709B2 (ko)
EP (1) EP1635244B1 (ko)
JP (2) JP4851751B2 (ko)
KR (1) KR101150127B1 (ko)
CN (1) CN1746856B (ko)

Families Citing this family (192)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100153183A1 (en) * 1996-09-20 2010-06-17 Strategyn, Inc. Product design
US6684231B1 (en) * 1999-11-29 2004-01-27 Microsoft Corporation Migration of friendly volumes
US6553387B1 (en) * 1999-11-29 2003-04-22 Microsoft Corporation Logical volume configuration data management determines whether to expose the logical volume on-line, off-line request based on comparison of volume epoch numbers on each extents of the volume identifiers
US7475099B2 (en) * 2004-02-25 2009-01-06 International Business Machines Corporation Predictive algorithm for load balancing data transfers across components
US20060047855A1 (en) 2004-05-13 2006-03-02 Microsoft Corporation Efficient chunking algorithm
US8145601B2 (en) 2004-09-09 2012-03-27 Microsoft Corporation Method, system, and apparatus for providing resilient data transfer in a data protection system
US7502961B2 (en) 2004-09-09 2009-03-10 Microsoft Corporation Method, system, and apparatus for providing alert synthesis in a data protection system
US7567974B2 (en) 2004-09-09 2009-07-28 Microsoft Corporation Method, system, and apparatus for configuring a data protection system
US7865470B2 (en) * 2004-09-09 2011-01-04 Microsoft Corporation Method, system, and apparatus for translating logical information representative of physical data in a data protection system
US7769709B2 (en) * 2004-09-09 2010-08-03 Microsoft Corporation Method, system, and apparatus for creating an archive routine for protecting data in a data protection system
US7613787B2 (en) * 2004-09-24 2009-11-03 Microsoft Corporation Efficient algorithm for finding candidate objects for remote differential compression
US20060218435A1 (en) * 2005-03-24 2006-09-28 Microsoft Corporation Method and system for a consumer oriented backup
US7672979B1 (en) * 2005-04-22 2010-03-02 Symantec Operating Corporation Backup and restore techniques using inconsistent state indicators
US8335768B1 (en) * 2005-05-25 2012-12-18 Emc Corporation Selecting data in backup data sets for grooming and transferring
US7873799B2 (en) * 2005-11-04 2011-01-18 Oracle America, Inc. Method and system supporting per-file and per-block replication
US8838615B2 (en) * 2006-02-02 2014-09-16 Oracle International Corporation Computer implemented method for automatically managing stored checkpoint data
US7734951B1 (en) * 2006-03-20 2010-06-08 Netapp, Inc. System and method for data protection management in a logical namespace of a storage system environment
US7490110B2 (en) * 2006-03-24 2009-02-10 International Business Machines Corporation Predictable query execution through early materialization
US8548948B2 (en) * 2006-04-11 2013-10-01 Oracle International Corporation Methods and apparatus for a fine grained file data storage system
US7444388B1 (en) * 2006-04-13 2008-10-28 Concert Technology Corporation System and method for obtaining media content for a portable media player
US7836440B2 (en) * 2006-04-27 2010-11-16 Oracle America, Inc. Dependency-based grouping to establish class identity
JP5124989B2 (ja) * 2006-05-26 2013-01-23 日本電気株式会社 ストレージシステム及びデータ保護方法とプログラム
US9009115B2 (en) 2006-08-04 2015-04-14 Apple Inc. Restoring electronic information
US7853566B2 (en) * 2006-08-04 2010-12-14 Apple Inc. Navigation of electronic backups
US8311988B2 (en) 2006-08-04 2012-11-13 Apple Inc. Consistent back up of electronic information
US7426616B2 (en) * 2006-08-22 2008-09-16 Hewlett-Packard Development Company, L.P. Method for determining a recovery schedule
US7672934B1 (en) 2006-10-19 2010-03-02 Symantec Operting Corporation Method for restoring documents from a database file
JP4135762B1 (ja) * 2007-02-21 2008-08-20 富士ゼロックス株式会社 文書管理プログラム及びシステム
US8307092B2 (en) 2007-02-21 2012-11-06 Napo Enterprises, Llc Method and system for collecting information about a user's media collections from multiple login points
US7882366B2 (en) * 2007-04-16 2011-02-01 Microsoft Corporation Storage media tracking and managment
JP2008287327A (ja) * 2007-05-15 2008-11-27 Hitachi Ltd データマイグレーション方法、計算機システム、及びデータマイグレーションプログラム
US20080307017A1 (en) 2007-06-08 2008-12-11 Apple Inc. Searching and Restoring of Backups
US8745523B2 (en) 2007-06-08 2014-06-03 Apple Inc. Deletion in electronic backups
US8010900B2 (en) 2007-06-08 2011-08-30 Apple Inc. User interface for electronic backup
US8725965B2 (en) * 2007-06-08 2014-05-13 Apple Inc. System setup for electronic backup
US8307004B2 (en) 2007-06-08 2012-11-06 Apple Inc. Manipulating electronic backups
US8452821B2 (en) * 2007-06-29 2013-05-28 Microsoft Corporation Efficient updates for distributed file systems
US20090055683A1 (en) * 2007-08-24 2009-02-26 Ronald Wells Method of restoring previous computer configuration
DE102007043657B4 (de) * 2007-09-13 2009-06-18 Siemens Ag Satellitenübergreifende Speicherorganisation für medizinische Bilddaten
US8214244B2 (en) * 2008-05-30 2012-07-03 Strategyn, Inc. Commercial investment analysis
US9152515B2 (en) * 2007-11-27 2015-10-06 International Business Machines Corporation Apparatus and method for managing storage copy services systems
US8326814B2 (en) * 2007-12-05 2012-12-04 Box, Inc. Web-based file management system and service
US7725441B2 (en) * 2007-12-10 2010-05-25 International Business Machines Corporation Methods, systems, and computer program products for disaster recovery planning
US8270303B2 (en) * 2007-12-21 2012-09-18 Hand Held Products, Inc. Using metadata tags in video recordings produced by portable encoded information reading terminals
US20090204775A1 (en) * 2008-02-12 2009-08-13 Fujitsu Limited Data copying method
US7814074B2 (en) * 2008-03-14 2010-10-12 International Business Machines Corporation Method and system for assuring integrity of deduplicated data
US8386729B2 (en) 2008-04-17 2013-02-26 International Business Machines Corporation Dynamic volume compare for asynchronous remote copy verification
US8515909B2 (en) * 2008-04-29 2013-08-20 International Business Machines Corporation Enhanced method and system for assuring integrity of deduplicated data
US8732265B2 (en) * 2008-06-27 2014-05-20 Microsoft Corporation Reconciliation and remediation with communication archives
GB0813397D0 (en) * 2008-07-22 2008-08-27 Watkin Peter M Monitoring of backup activity on a computer system
US8000052B2 (en) * 2008-08-11 2011-08-16 International Business Machines Corporation Cartridge refresh and verify
JP5599557B2 (ja) * 2008-08-29 2014-10-01 株式会社リコー 情報処理装置、ライセンス判定方法、プログラム及び記録媒体
CN101464820B (zh) * 2009-01-16 2012-02-01 中国科学院计算技术研究所 磁盘设备的持续数据保护方法和系统
US20100191707A1 (en) * 2009-01-23 2010-07-29 Microsoft Corporation Techniques for facilitating copy creation
US20100198876A1 (en) 2009-02-02 2010-08-05 Honeywell International, Inc. Apparatus and method of embedding meta-data in a captured image
US8510271B1 (en) * 2009-03-30 2013-08-13 Symantec Corporation Application and file system data virtualization from image backup
US8291268B2 (en) * 2009-04-02 2012-10-16 International Business Machines Corporation Apparatus, system, and method to provide alert notification with reconcile actions
US8666977B2 (en) 2009-05-18 2014-03-04 Strategyn Holdings, Llc Needs-based mapping and processing engine
US9519814B2 (en) 2009-06-12 2016-12-13 Hand Held Products, Inc. Portable data terminal
US20110016089A1 (en) * 2009-07-16 2011-01-20 Apple Inc. Restoring data to a mobile device
US8489938B2 (en) * 2009-09-18 2013-07-16 International Business Machines Corporation Diagnostic data capture in a computing environment
US9141608B2 (en) * 2009-12-09 2015-09-22 Patrix Ip Helpware Data validation in docketing systems
US20110173947A1 (en) * 2010-01-19 2011-07-21 General Electric Company System and method for gas turbine power augmentation
US8793645B2 (en) 2010-04-02 2014-07-29 Microsoft Corporation Replacement of data element in a graph
US8627143B2 (en) * 2010-07-12 2014-01-07 Hewlett-Packard Development Company, L.P. Dynamically modeling and selecting a checkpoint scheme based upon an application workload
US9824091B2 (en) 2010-12-03 2017-11-21 Microsoft Technology Licensing, Llc File system backup using change journal
US8620894B2 (en) 2010-12-21 2013-12-31 Microsoft Corporation Searching files
US8849758B1 (en) * 2010-12-28 2014-09-30 Amazon Technologies, Inc. Dynamic data set replica management
US8943026B2 (en) 2011-01-14 2015-01-27 Apple Inc. Visual representation of a local backup
US8984029B2 (en) 2011-01-14 2015-03-17 Apple Inc. File system management
GB2500356A (en) 2011-01-20 2013-09-18 Box Inc Real time notification of activities that occur in a web-based collaboration environment
US8566336B2 (en) * 2011-03-30 2013-10-22 Splunk Inc. File identification management and tracking
US8935778B2 (en) * 2011-04-29 2015-01-13 International Business Machines Corporation Maintaining data integrity
US8850261B2 (en) * 2011-06-01 2014-09-30 Microsoft Corporation Replaying jobs at a secondary location of a service
US10585766B2 (en) 2011-06-06 2020-03-10 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
US9015601B2 (en) 2011-06-21 2015-04-21 Box, Inc. Batch uploading of content to a web-based collaboration environment
US9063912B2 (en) 2011-06-22 2015-06-23 Box, Inc. Multimedia content preview rendering in a cloud content management system
US9978040B2 (en) 2011-07-08 2018-05-22 Box, Inc. Collaboration sessions in a workspace on a cloud-based content management system
WO2013009337A2 (en) 2011-07-08 2013-01-17 Arnold Goldberg Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof
US20130212583A1 (en) * 2011-07-20 2013-08-15 Bank Of America Corporation Resiliency tracking for project task management
US9229818B2 (en) 2011-07-20 2016-01-05 Microsoft Technology Licensing, Llc Adaptive retention for backup data
US9197718B2 (en) 2011-09-23 2015-11-24 Box, Inc. Central management and control of user-contributed content in a web-based collaboration environment and management console thereof
US8515902B2 (en) 2011-10-14 2013-08-20 Box, Inc. Automatic and semi-automatic tagging features of work items in a shared workspace for metadata tracking in a cloud-based content management system with selective or optional user contribution
US11210610B2 (en) 2011-10-26 2021-12-28 Box, Inc. Enhanced multimedia content preview rendering in a cloud content management system
US9098474B2 (en) 2011-10-26 2015-08-04 Box, Inc. Preview pre-generation based on heuristics and algorithmic prediction/assessment of predicted user behavior for enhancement of user experience
US8990307B2 (en) 2011-11-16 2015-03-24 Box, Inc. Resource effective incremental updating of a remote client with events which occurred via a cloud-enabled platform
US9773051B2 (en) 2011-11-29 2017-09-26 Box, Inc. Mobile platform file and folder selection functionalities for offline access and synchronization
US9372762B2 (en) * 2011-12-08 2016-06-21 Veritas Technologies Llc Systems and methods for restoring application data
US9019123B2 (en) 2011-12-22 2015-04-28 Box, Inc. Health check services for web-based collaboration environments
US8880479B2 (en) * 2011-12-29 2014-11-04 Bmc Software, Inc. Database recovery progress report
US9904435B2 (en) 2012-01-06 2018-02-27 Box, Inc. System and method for actionable event generation for task delegation and management via a discussion forum in a web-based collaboration environment
US11232481B2 (en) 2012-01-30 2022-01-25 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
US9965745B2 (en) 2012-02-24 2018-05-08 Box, Inc. System and method for promoting enterprise adoption of a web-based collaboration environment
US9195636B2 (en) 2012-03-07 2015-11-24 Box, Inc. Universal file type preview for mobile devices
WO2013136339A1 (en) 2012-03-15 2013-09-19 Hewlett-Packard Development Company, L.P. Regulating replication operation
US20150046398A1 (en) * 2012-03-15 2015-02-12 Peter Thomas Camble Accessing And Replicating Backup Data Objects
US9054919B2 (en) 2012-04-05 2015-06-09 Box, Inc. Device pinning capability for enterprise cloud service and storage accounts
US9575981B2 (en) 2012-04-11 2017-02-21 Box, Inc. Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system
US9413587B2 (en) 2012-05-02 2016-08-09 Box, Inc. System and method for a third-party application to access content within a cloud-based platform
US9691051B2 (en) 2012-05-21 2017-06-27 Box, Inc. Security enhancement through application access control
US9027108B2 (en) 2012-05-23 2015-05-05 Box, Inc. Systems and methods for secure file portability between mobile applications on a mobile device
US8914900B2 (en) 2012-05-23 2014-12-16 Box, Inc. Methods, architectures and security mechanisms for a third-party application to access content in a cloud-based platform
US9021099B2 (en) 2012-07-03 2015-04-28 Box, Inc. Load balancing secure FTP connections among multiple FTP servers
US9792320B2 (en) 2012-07-06 2017-10-17 Box, Inc. System and method for performing shard migration to support functions of a cloud-based service
US9712510B2 (en) 2012-07-06 2017-07-18 Box, Inc. Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform
GB2505072A (en) 2012-07-06 2014-02-19 Box Inc Identifying users and collaborators as search results in a cloud-based system
US9237170B2 (en) 2012-07-19 2016-01-12 Box, Inc. Data loss prevention (DLP) methods and architectures by a cloud service
US9794256B2 (en) 2012-07-30 2017-10-17 Box, Inc. System and method for advanced control tools for administrators in a cloud-based service
US8868574B2 (en) 2012-07-30 2014-10-21 Box, Inc. System and method for advanced search and filtering mechanisms for enterprise administrators in a cloud-based environment
US9225675B2 (en) * 2012-08-08 2015-12-29 Amazon Technologies, Inc. Data storage application programming interface
US8745267B2 (en) 2012-08-19 2014-06-03 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
US9369520B2 (en) 2012-08-19 2016-06-14 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
GB2513671A (en) 2012-08-27 2014-11-05 Box Inc Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment
US9135462B2 (en) 2012-08-29 2015-09-15 Box, Inc. Upload and download streaming encryption to/from a cloud-based platform
US9117087B2 (en) 2012-09-06 2015-08-25 Box, Inc. System and method for creating a secure channel for inter-application communication based on intents
US9195519B2 (en) 2012-09-06 2015-11-24 Box, Inc. Disabling the self-referential appearance of a mobile application in an intent via a background registration
US9311071B2 (en) 2012-09-06 2016-04-12 Box, Inc. Force upgrade of a mobile application via a server side configuration file
US9292833B2 (en) 2012-09-14 2016-03-22 Box, Inc. Batching notifications of activities that occur in a web-based collaboration environment
US10200256B2 (en) 2012-09-17 2019-02-05 Box, Inc. System and method of a manipulative handle in an interactive mobile user interface
US9553758B2 (en) 2012-09-18 2017-01-24 Box, Inc. Sandboxing individual applications to specific user folders in a cloud-based service
US10915492B2 (en) 2012-09-19 2021-02-09 Box, Inc. Cloud-based platform enabled with media content indexed for text-based searches and/or metadata extraction
US9959420B2 (en) 2012-10-02 2018-05-01 Box, Inc. System and method for enhanced security and management mechanisms for enterprise administrators in a cloud-based environment
US9495364B2 (en) 2012-10-04 2016-11-15 Box, Inc. Enhanced quick search features, low-barrier commenting/interactive features in a collaboration platform
US9705967B2 (en) 2012-10-04 2017-07-11 Box, Inc. Corporate user discovery and identification of recommended collaborators in a cloud platform
US9665349B2 (en) 2012-10-05 2017-05-30 Box, Inc. System and method for generating embeddable widgets which enable access to a cloud-based collaboration platform
US9756022B2 (en) 2014-08-29 2017-09-05 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
JP5982343B2 (ja) 2012-10-17 2016-08-31 ボックス インコーポレイテッドBox, Inc. クラウドベース環境におけるリモートキー管理
KR101426482B1 (ko) * 2012-11-29 2014-08-26 대한민국(국가기록원) 트위터 기록물 장기보존 시스템
US10235383B2 (en) 2012-12-19 2019-03-19 Box, Inc. Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment
US9396245B2 (en) 2013-01-02 2016-07-19 Box, Inc. Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9953036B2 (en) 2013-01-09 2018-04-24 Box, Inc. File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
EP2755151A3 (en) 2013-01-11 2014-09-24 Box, Inc. Functionalities, features and user interface of a synchronization client to a cloud-based environment
US10599671B2 (en) 2013-01-17 2020-03-24 Box, Inc. Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform
CN105340211A (zh) * 2013-04-18 2016-02-17 里索伏特德瓦公司 用于加密数据的系统及方法
US10846074B2 (en) 2013-05-10 2020-11-24 Box, Inc. Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client
US10725968B2 (en) 2013-05-10 2020-07-28 Box, Inc. Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform
WO2014185916A1 (en) 2013-05-16 2014-11-20 Hewlett-Packard Development Company, L.P. Selecting a store for deduplicated data
WO2014185918A1 (en) 2013-05-16 2014-11-20 Hewlett-Packard Development Company, L.P. Selecting a store for deduplicated data
GB2515192B (en) 2013-06-13 2016-12-14 Box Inc Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform
WO2014203030A1 (en) 2013-06-18 2014-12-24 Freescale Semiconductor, Inc. Detection of data corruption in a data processing device
US10445168B2 (en) 2013-06-18 2019-10-15 Nxp Usa, Inc. Device and method for executing a program, and method for storing a program
US9805050B2 (en) 2013-06-21 2017-10-31 Box, Inc. Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform
US10110656B2 (en) 2013-06-25 2018-10-23 Box, Inc. Systems and methods for providing shell communication in a cloud-based platform
US10229134B2 (en) 2013-06-25 2019-03-12 Box, Inc. Systems and methods for managing upgrades, migration of user data and improving performance of a cloud-based platform
US9535924B2 (en) 2013-07-30 2017-01-03 Box, Inc. Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US8892679B1 (en) 2013-09-13 2014-11-18 Box, Inc. Mobile device, methods and user interfaces thereof in a mobile device platform featuring multifunctional access and engagement in a collaborative environment provided by a cloud-based platform
US10509527B2 (en) 2013-09-13 2019-12-17 Box, Inc. Systems and methods for configuring event-based automation in cloud-based collaboration platforms
US9535909B2 (en) 2013-09-13 2017-01-03 Box, Inc. Configurable event-based automation architecture for cloud-based collaboration platforms
GB2518298A (en) 2013-09-13 2015-03-18 Box Inc High-availability architecture for a cloud-based concurrent-access collaboration platform
US9213684B2 (en) 2013-09-13 2015-12-15 Box, Inc. System and method for rendering document in web browser or mobile device regardless of third-party plug-in software
US9704137B2 (en) 2013-09-13 2017-07-11 Box, Inc. Simultaneous editing/accessing of content by collaborator invitation through a web-based or mobile application to a cloud-based collaboration platform
US10866931B2 (en) 2013-10-22 2020-12-15 Box, Inc. Desktop application for accessing a cloud collaboration platform
CN106030590A (zh) * 2014-02-18 2016-10-12 皇家飞利浦有限公司 设备相关日志文件的有效处理
US10530854B2 (en) 2014-05-30 2020-01-07 Box, Inc. Synchronization of permissioned content in cloud-based environments
US9602514B2 (en) 2014-06-16 2017-03-21 Box, Inc. Enterprise mobility management and verification of a managed application by a content provider
US9444678B2 (en) * 2014-07-31 2016-09-13 Verizon Patent And Licensing Inc. Automatic cloud-based disaster recovery system including modifying a copy command based on a copy time threshold
US9894119B2 (en) 2014-08-29 2018-02-13 Box, Inc. Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms
US10574442B2 (en) 2014-08-29 2020-02-25 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US10038731B2 (en) 2014-08-29 2018-07-31 Box, Inc. Managing flow-based interactions with cloud-based shared content
CN104199926B (zh) * 2014-09-01 2017-11-24 北京联创信安科技股份有限公司 文件归档实现方法和装置以及文件访问方法和装置
US9430272B2 (en) 2014-12-17 2016-08-30 Microsoft Technology Licensing, Llc Efficiently providing virtual machine reference points
US9547555B2 (en) * 2015-01-12 2017-01-17 Microsoft Technology Licensing, Llc Change tracking using redundancy in logical time
US10530724B2 (en) 2015-03-09 2020-01-07 Microsoft Technology Licensing, Llc Large data management in communication applications through multiple mailboxes
US10530725B2 (en) * 2015-03-09 2020-01-07 Microsoft Technology Licensing, Llc Architecture for large data management in communication applications through multiple mailboxes
US10496598B2 (en) * 2015-09-29 2019-12-03 Blackberry Limited Data access control based on storage validation
CN105511986A (zh) * 2015-12-07 2016-04-20 上海爱数信息技术股份有限公司 一种基于磁带库的数据保护系统和方法
US10353534B2 (en) 2016-05-13 2019-07-16 Sap Se Overview page in multi application user interface
US10579238B2 (en) 2016-05-13 2020-03-03 Sap Se Flexible screen layout across multiple platforms
JP6896438B2 (ja) * 2017-01-31 2021-06-30 キヤノン株式会社 情報処理装置、サーバ、情報処理装置の制御方法、およびプログラム
US10795760B2 (en) * 2017-03-20 2020-10-06 Samsung Electronics Co., Ltd. Key value SSD
US10503404B2 (en) 2017-10-23 2019-12-10 Micron Technology, Inc. Namespace management in non-volatile memory devices
US10642488B2 (en) 2017-10-23 2020-05-05 Micron Technology, Inc. Namespace size adjustment in non-volatile memory devices
US10437476B2 (en) 2017-10-23 2019-10-08 Micron Technology, Inc. Namespaces allocation in non-volatile memory devices
US10798102B2 (en) * 2017-11-14 2020-10-06 International Business Machines Corporation Protecting data at an object level
US11580034B2 (en) 2017-11-16 2023-02-14 Micron Technology, Inc. Namespace encryption in non-volatile memory devices
US10915440B2 (en) 2017-11-16 2021-02-09 Micron Technology, Inc. Namespace mapping optimization in non-volatile memory devices
US10223254B1 (en) 2017-11-16 2019-03-05 Micron Technology, Inc. Namespace change propagation in non-volatile memory devices
US10678703B2 (en) 2017-11-16 2020-06-09 Micron Technology, Inc. Namespace mapping structual adjustment in non-volatile memory devices
US10671134B2 (en) 2018-01-10 2020-06-02 International Business Machines Corporation Memory modules with secondary, independently powered network access path
KR101986638B1 (ko) * 2018-03-06 2019-06-07 주식회사 안랩 보호대상 파일에 대한 악성 차단 시스템 및 악성 차단 방법
CN109582776B (zh) * 2018-12-04 2021-07-09 北京羽扇智信息科技有限公司 模型的生成方法及装置、电子设备及存储介质
CN110704242B (zh) * 2019-09-24 2023-06-13 上海爱数信息技术股份有限公司 一种连续数据保护系统及方法
US11360952B2 (en) 2020-08-03 2022-06-14 Bank Of America Corporation System and method for managing data migration based on analysis of relevant data
US11340998B1 (en) * 2020-12-31 2022-05-24 Verified Backups LLC Systems and methods for providing backup storage and verifying the integrity of backup files
CN113378214B (zh) * 2021-05-20 2022-03-08 广西飞创信息科技有限公司 一种基于区块链技术的连续数据保护方法及装置
CN113687774A (zh) * 2021-07-19 2021-11-23 锐捷网络股份有限公司 空间回收方法、装置及设备
US11720525B2 (en) * 2021-07-30 2023-08-08 Netapp, Inc. Flexible tiering of snapshots to archival storage in remote object stores
US11880283B2 (en) 2021-12-28 2024-01-23 Dell Products L.P. Backup copy validation as a workflow
US11899538B2 (en) 2021-12-27 2024-02-13 Dell Products, L.P. Storage integrated differential block based backup
US11934275B2 (en) * 2021-12-28 2024-03-19 Dell Products L.P. Backup copy validation as an embedded object
US11899540B2 (en) 2021-12-27 2024-02-13 Dell Products, L.P. Regenerating a chain of backups
US11782799B2 (en) 2021-12-27 2023-10-10 Dell Products L.P. Using bitmaps to validate data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010009582A1 (en) 2000-01-26 2001-07-26 Seigo Kotani Cryptographic communication method, file access system and recording medium
US20020099719A1 (en) 1999-09-28 2002-07-25 Chad A. Schwitters Architecture for a hierchical folder structure in hand-held computers

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495603A (en) * 1993-06-14 1996-02-27 International Business Machines Corporation Declarative automatic class selection filter for dynamic file reclassification
US5987432A (en) * 1994-06-29 1999-11-16 Reuters, Ltd. Fault-tolerant central ticker plant system for distributing financial market data
US5592618A (en) * 1994-10-03 1997-01-07 International Business Machines Corporation Remote copy secondary data copy validation-audit function
US5799147A (en) * 1994-10-19 1998-08-25 Shannon; John P. Computer recovery backup method
US6181837B1 (en) * 1994-11-18 2001-01-30 The Chase Manhattan Bank, N.A. Electronic check image storage and retrieval system
US6453325B1 (en) * 1995-05-24 2002-09-17 International Business Machines Corporation Method and means for backup and restoration of a database system linked to a system for filing data
US5778165A (en) * 1995-10-20 1998-07-07 Digital Equipment Corporation Variable-level backup scheduling method and apparatus
US5718247A (en) * 1996-05-30 1998-02-17 Frankel; Kenneth Apparatus and process for interactive psychotherapy
US5673382A (en) * 1996-05-30 1997-09-30 International Business Machines Corporation Automated management of off-site storage volumes for disaster recovery
US6154817A (en) * 1996-12-16 2000-11-28 Cheyenne Software International Sales Corp. Device and method for managing storage media
EP1008048B1 (en) 1997-08-29 2001-10-31 Hewlett-Packard Company Data backup and recovery systems
US6014669A (en) * 1997-10-01 2000-01-11 Sun Microsystems, Inc. Highly-available distributed cluster configuration database
US5983239A (en) * 1997-10-29 1999-11-09 International Business Machines Corporation Storage management system with file aggregation supporting multiple aggregated file counterparts
CA2244626A1 (en) * 1998-07-31 2000-01-31 Kom Inc. A hardware and software system
WO2001004756A1 (en) * 1999-07-14 2001-01-18 Commvault Systems, Inc. Modular backup and retrieval system used in conjunction with a storage area network
US6640244B1 (en) * 1999-08-31 2003-10-28 Accenture Llp Request batcher in a transaction services patterns environment
US6571282B1 (en) * 1999-08-31 2003-05-27 Accenture Llp Block-based communication in a communication services patterns environment
US6434568B1 (en) * 1999-08-31 2002-08-13 Accenture Llp Information services patterns in a netcentric environment
US6651074B1 (en) * 1999-12-20 2003-11-18 Emc Corporation Method and apparatus for storage and retrieval of very large databases using a direct pipe
DE50103755D1 (de) * 2000-02-25 2004-10-28 Siemens Ag Verfahren zum betrieb und vorrichtung zur überwachung einer technischen anlage
DE60036539T2 (de) * 2000-06-09 2008-05-08 Hewlett-Packard Development Co., L.P., Houston Verwendung von ungenutzter Speicherkapazität bei vernetzten Computern
US20020156669A1 (en) * 2000-06-27 2002-10-24 Verhaegh Wilhelmus Franciscus Johannes Method of determining a schedule, scheduler and system
US6665780B1 (en) * 2000-10-06 2003-12-16 Radiant Data Corporation N-way data mirroring systems and methods for using the same
US6594677B2 (en) * 2000-12-22 2003-07-15 Simdesk Technologies, Inc. Virtual tape storage system and method
US20040133606A1 (en) * 2003-01-02 2004-07-08 Z-Force Communications, Inc. Directory aggregation for files distributed over a plurality of servers in a switched file system
US7383288B2 (en) * 2001-01-11 2008-06-03 Attune Systems, Inc. Metadata based file switch and switched file system
US6766314B2 (en) 2001-04-05 2004-07-20 International Business Machines Corporation Method for attachment and recognition of external authorization policy on file system resources
US20030167287A1 (en) 2001-04-11 2003-09-04 Karl Forster Information protection system
WO2003005247A2 (en) 2001-07-06 2003-01-16 Computer Associates Think, Inc. Systems and methods of information backup
US20030018657A1 (en) * 2001-07-18 2003-01-23 Imation Corp. Backup of data on a network
US6948038B2 (en) * 2001-07-24 2005-09-20 Microsoft Corporation System and method for backing up and restoring data
US7287047B2 (en) * 2001-11-23 2007-10-23 Commvault Systems, Inc. Selective data replication system and method
US6941328B2 (en) * 2002-01-22 2005-09-06 International Business Machines Corporation Copy process substituting compressible bit pattern for any unqualified data objects
US6826666B2 (en) * 2002-02-07 2004-11-30 Microsoft Corporation Method and system for transporting data content on a storage area network
JP3957278B2 (ja) * 2002-04-23 2007-08-15 株式会社日立製作所 ファイル転送方法およびシステム
ATE400026T1 (de) 2002-09-10 2008-07-15 Exagrid Systems Inc Datenschutzverfahren und vorrichtung
US7424514B2 (en) * 2002-11-08 2008-09-09 The Regents Of The University Of Michigan Peer-to-peer method and system for performing and managing backups in a network of nodes
US7107483B2 (en) 2002-11-15 2006-09-12 Lsi Logic Corporation Apparatus and method for enhancing data availability by leveraging primary/backup data storage volumes
JP4345313B2 (ja) * 2003-01-24 2009-10-14 株式会社日立製作所 ポリシーに基づいたストレージシステムの運用管理方法
US6925385B2 (en) * 2003-05-16 2005-08-02 Seawest Holdings, Inc. Wind power management system and method
US7054960B1 (en) * 2003-11-18 2006-05-30 Veritas Operating Corporation System and method for identifying block-level write operations to be transferred to a secondary site during replication
US7096392B2 (en) 2004-05-07 2006-08-22 Asempra Technologies, Inc. Method and system for automated, no downtime, real-time, continuous data protection
US7299376B2 (en) 2004-08-25 2007-11-20 International Business Machines Corporation Apparatus, system, and method for verifying backup data
US7769709B2 (en) * 2004-09-09 2010-08-03 Microsoft Corporation Method, system, and apparatus for creating an archive routine for protecting data in a data protection system
US7502961B2 (en) * 2004-09-09 2009-03-10 Microsoft Corporation Method, system, and apparatus for providing alert synthesis in a data protection system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020099719A1 (en) 1999-09-28 2002-07-25 Chad A. Schwitters Architecture for a hierchical folder structure in hand-held computers
US20010009582A1 (en) 2000-01-26 2001-07-26 Seigo Kotani Cryptographic communication method, file access system and recording medium

Also Published As

Publication number Publication date
JP5367770B2 (ja) 2013-12-11
JP2011248913A (ja) 2011-12-08
EP1635244B1 (en) 2016-11-16
US20060053182A1 (en) 2006-03-09
CN1746856A (zh) 2006-03-15
US8140604B2 (en) 2012-03-20
US7769709B2 (en) 2010-08-03
US20060053178A1 (en) 2006-03-09
US20100262583A1 (en) 2010-10-14
US20060053088A1 (en) 2006-03-09
US7574459B2 (en) 2009-08-11
JP4851751B2 (ja) 2012-01-11
KR20060046539A (ko) 2006-05-17
JP2006079608A (ja) 2006-03-23
US7860837B2 (en) 2010-12-28
EP1635244A2 (en) 2006-03-15
EP1635244A3 (en) 2009-07-29
CN1746856B (zh) 2010-06-09

Similar Documents

Publication Publication Date Title
KR101150127B1 (ko) 데이터 보호 시스템에서 데이터를 보호하기 위한 아카이브루틴을 생성하는 방법, 시스템 및 장치
JP4807988B2 (ja) データ保護システムにおいて堅牢で扱いやすいデータ保護アプリケーション群を生成するためのアーキテクチャモデルを作成するための方法、システム、および装置
KR101149975B1 (ko) 데이터 보호 시스템에서 경보 통합을 제공하기 위한 방법, 시스템 및 장치
US8463749B2 (en) Method, system, and apparatus for providing resilient data transfer in a data protection system
US8606760B2 (en) Configuring a data protection system
US7631194B2 (en) Method, system, and apparatus for creating saved searches and auto discovery groups for a data protection system
US7865470B2 (en) Method, system, and apparatus for translating logical information representative of physical data in a data protection system

Legal Events

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

Payment date: 20160419

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170420

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee