KR101491861B1 - 복제 동안 섀도 복사본 데이터의 유지를 위한 방법 및 컴퓨터 프로그램 제품 - Google Patents
복제 동안 섀도 복사본 데이터의 유지를 위한 방법 및 컴퓨터 프로그램 제품 Download PDFInfo
- Publication number
- KR101491861B1 KR101491861B1 KR1020087028913A KR20087028913A KR101491861B1 KR 101491861 B1 KR101491861 B1 KR 101491861B1 KR 1020087028913 A KR1020087028913 A KR 1020087028913A KR 20087028913 A KR20087028913 A KR 20087028913A KR 101491861 B1 KR101491861 B1 KR 101491861B1
- Authority
- KR
- South Korea
- Prior art keywords
- shadow copy
- changes
- storage space
- copy storage
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2097—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Television Signal Processing For Recording (AREA)
- Container Filling Or Packaging Operations (AREA)
Abstract
본 발명의 구현예들은 유효한 섀도 복사본이 만료되기 전에 복제 사이클 동안 그 유효한 섀도 복사본을 보존하도록 구성되어 있는 시스템, 방법, 및 컴포넌트를 제공한다. 상세하게는, 하나 이상의 컴포넌트가 새로운 볼륨 섀도 복사본에 적용될 작업 서버 데이터의 변경의 사이즈 및 속도를 식별할 수 있다. 이 컴포넌트들은 이어서 백업 볼륨에 새로운 볼륨 섀도 복사본을 저장하기 위해 필요하게 될 저장 영역을 결정하고 적절한 공간이 있는 경우 백업 볼륨에 변경을 적용할 수 있다. 적절한 양의 공간이 없는 경우, 이 컴포넌트들은 이전의 유효한 섀도 복사본은 물론 새로운 섀도 복사본 둘다를 보존하기 위해 새로운 조치가 취해져야만 한다는 것을 시스템에 경고할 수 있다. 예를 들어, 백업 관리자는 섀도 복사본 저장 공간을 증가시키거나 새로운 섀도 복사본을 처리하기 위한 새로운 저장 매체를 할당할 필요가 있을 수 있다.
섀도 복사본, 백업 관리자, 백업 볼륨, 작업 서버, 백업 서버
Description
일반적으로, 컴퓨터 시스템 및 관련 장치는 통상, 직장에서 워드 프로세싱 문서를 생성하는 것은 물론 보다 복잡한 데이터베이스용으로 사용되는 파일을 생성하는 일반적인 경우에서와 같이, 다양한 이유로 사용된다. 이러한 사용을 위해 컴퓨터화된 시스템의 인기가 높아짐에 따라, 그와 연관된 다양한 하드웨어 및 소프트웨어 용량도 증가되었다. 예를 들어, 종래의 컴퓨터 시스템이 단지 몇년 전에 가능하게 만들었던 다양한 데이터 처리(예를 들어, 파일, 메일, 데이터베이스, 기타) 작업이 이제는 종종 훨씬 더 빠르고 작은 멀티태스킹 컴퓨터 시스템에 의해 훨씬 더 쉽게 행해질 수 있다. 그 결과, 컴퓨터 시스템은 임의의 주어진 조직체에서 널리 쓰이게 되고, 각각의 컴퓨터 시스템에 요청되는 작업들도 증가하게 되었다. 주어진 컴퓨터 시스템 또는 일련의 컴퓨터 시스템을 운영 및 관리하는 것과 연관된 비용이 증가한 것도 당연한 일이다.
부분적으로 주어진 컴퓨터 시스템의 처리 기능의 향상과 함께 이러한 기능의 비용의 연속적인 증가로 인해, 조직체는 종종 자원(예를 들어, 하드웨어 및/또는 소프트웨어-기반 자원)을 공유 또는 분산시키는 것이 많은 이점이 있음을 알고 있다. 상세하게는, 조직체는 통상 몇개의 워크 스테이션이 단일 노드(예를 들어, 처 리 및/또는 저장 노드)의 처리 및 저장 자원을 공유하도록 컴퓨터 시스템을 구성한다. 예를 들어, 조직체는 하나의 서버 노드에 있는 단일의 물리적 볼륨을 몇개의 서로 다른 볼륨으로 파티션할 수 있고, 이 서로 다른 볼륨들은 네트워크를 통해 몇개의 개별 드라이브로서 액세스될 수 있다. 이들 파티션된 드라이브는 또한 단지 한 일련의 퍼스널 워크스테이션만이 한 일련의 파티션된 드라이브에 액세스할 수 있는 반면 다른 일련의 퍼스널 워크스테이션이 다른 일련의 파티션된 드라이브에만 액세스할 수 있도록 사용자들 및/또는 워크스테이션들 간에 할당될 수 있다.
이에 따라, 조직체는 이제 하나의 서버 노드를 다수의 "가상 기계"를 호스팅하도록 파티션할 수 있다. 요약하면, 가상 기계는 주어진 호스트 컴퓨터 시스템에 있는 드라이브 공간 중 그 자신의 파티션 상에 운영 체제를 독자적으로 설치한 것이다. 가상 기계는, 비록 호스트 컴퓨터 시스템의 물리적 자원의 일부분에 불과하지만, 모든 점에서 별도의 워크 스테이션으로 보이도록 구성될 수 있다. 예를 들어, 가상 기계는 호스트 컴퓨터의 네트워크 주소와 다른 네트워크 주소를 사용하여 네트워크에 걸쳐 주소 지정가능일 수 있다. 게다가, 가상 기계 자체는 호스트의 물리적 디스크 상의 가상 기계에 대한 할당 내에서 다수의 서로 다른 드라이브 파티션을 호스팅할 수 있다. 가상 기계에 의해 관리되는 이들 드라이브 경로는 호스트 컴퓨터 시스템에 의해 관리되는 것과 동일한 이름을 가질 수 있는데, 그 이유는 이들이 사실상 서로 다른 개체에 의해 관리되기 때문이다.
따라서, 가상 기계의 적어도 하나의 이점은 부가의 컴퓨터 하드웨어를 구입하는 추가 비용을 들이지 않고도 다수의 다른 계산 기능을 제공하는 데 사용될 수 있다는 것이다. 예를 들어, 조직체는 서로 다른 네트워크 장소에 서로 다른 호스트 서버를 설치할 수 있고, 또한 각각의 호스트 서버 내에, 수십 및/또는 수백개의 가상 기계를 설치할 수 있다. 몇개의 가상 기계는 메일 또는 데이터베이스 서버로서 사용될 수 있는 반면, 다른 가상 기계들은, 퍼스널 워크스테이션이 로컬적으로 위치되어 있는 것처럼, 네트워크 클라이언트에 의해 액세스되는 퍼스널 워크스테이션 컴퓨터로서 사용될 수 있다. 또다른 가상 기계는 가상 기계가 더 이상 필요하지 않을 때 호스트 서버로부터 용이하게 삭제될 수 있도록 테스트용으로 사용될 수 있다.
가상 기계의 사용이 조직체에서 더욱 보편화됨에 따라, 가상 기계가 적절히 관리되도록 할 부가의 필요성이 있게 된다. 예를 들어, 종래의 서버 관리자 토폴로지는 계정을 구성하고, 패스워드를 관리하며, 조직체 내의 물리적 및 소프트웨어 자원을 체계화하는 일군의 시스템(예를 들어, 서버, 워크 스테이션, 및/또는 네트워크) 관리자와 같은 것들을 포함한다. 큰 기업체의 경우, 각각이 서로 다른 일을 맡고 있는 많은 수의 시스템 관리자가 있을 수 있다.
예를 들어, 한 시스템 관리자는 최종 사용자 사무실에 워크 스테이션을 제공하고 이를 설정하는 일을 맡고 있을 수 있는 반면, 다른 시스템 관리자는 최종 사용자에게 특정의 로그인 계정을 제공하는 일을 맡고 있고, 또다른 시스템 관리자는 각각의 컴퓨터 시스템에의 물리적 접속(예를 들어, 네트워크 접속, 전원 접속)을 제공하고 이를 모니터링하는 일을 맡고 있을 수 있다. 각각의 이러한 시스템 관리자는 특정의 지리적 위치에 대해 전체적으로 감독하는 시스템 관리자에게 보고할 필요가 있을 수 있다. 조직체의 규모에 따라, 감독하는 시스템 관리자도 역시 관리 계층구조에서 위쪽에 있는 또다른 시스템 관리자에게 보고할 필요가 있을 수 있으며, 이하 마찬가지이다.
종래의 시스템에서, 하나 또는 몇명의 시스템 관리자가 수십개의 서버 및 퍼스널 워크스테이션을 관리하는 것이 일반적으로 가능하다. 그렇지만, 많은 수의 가상 기계를 구현하는 경우에서와 같이, 아마도 수백 및/또는 수천개의 기계를 관리하는 것은 훨씬 더 복잡하다. 구체적으로 말하면, 그 가상 기계들이 비교적 적은 수의 호스트 서버 상에서 호스트되고 있을지라도, 하나 또는 몇명의 시스템 관리자가 수천개의 가상 기계의 복잡성을 관리할 수 없을지도 모른다. 상세하게는, 100개 정도의 사용자 계정에 대한 패스워드 요청을 관리하는 일을 맡고 있는 시스템 관리자는 1000개의 컴퓨터에 대해 동일한 일을 사실상 관리할 수 없을지도 모른다. 이와 유사하게, 100개 정도의 물리적 컴퓨터 시스템 각각에 대해 충분한 물리적 및 네트워크 자원을 보장하는 일을 맡고 있는 시스템 관리자가, 특히 조직체 내의 다른 기계들에 대한 서비스를 중단하는 일 없이, 아마도 수천개의 가상 기계가 의도한 대로 동작하기 위해 충분한 하드웨어 및 소프트웨어 자원을 제공받도록 하는 일은 감당하지 못할 수 있다.
물론, 추가적인 부담을 처리하기 위해 단순히 시스템 관리자를 더 고용하는 것은 조직체가 무엇보다도 먼저 가상 기계를 사용함으로써 피하고자 하는 상당한 비용의 문제를 야기할 수 있다. 그에 따라, 조직체에서의 가상 기계의 효과적인 운영 및 관리와 관련하여 해결될 수 있는 많은 어려움이 있다.
본 발명의 구현예들은, 관리자의 백업 목표/의도 대로 섀도 복사본이 유효한 채로 있는 한, 섀도 복사본이 백업 볼륨에 보존되도록 구성되는 시스템, 방법, 및 컴퓨터 프로그램 제품으로 종래 기술의 하나 이상의 문제들을 해결한다. 상세하게는, 본 발명의 구현예들은 작업 서버에서의 기입 속도(write rate)의 결정에 기초하여 백업 볼륨 상의 섀도 복사본 저장 공간의 자동적인 결정을 제공한다. 이러한 이용가능한 공간의 결정은 어떤 경우에 기존의 섀도 복사본을 유지하기 위해 더 새로운 섀도 복사본이 생성될 수 있는지 여부를 결정하는 데도 사용될 수 있다. 한 구현예에서, 백업 볼륨 내의 섀도 복사본 저장 공간은 작업 서버에서의 예상된 기입 속도에 대응하기 위해 각각의 복제 사이클마다 자동적으로 재할당될 수 있다. 게다가, 현재의 섀도 복사본 저장 공간을 초과하는 섀도 복사본이 적절한 방식으로 처리됨으로써 여전히 유효한 이전의 섀도 복사본을 덮어쓰는 일을 피할 수 있도록 섀도 복사본 저장 공간이 사실상 잠겨있을 수 있다.
예를 들어, 작업 서버에서의 데이터 변경의 결정을 하나 이상의 백업 볼륨에서의 이용가능한 섀도 복사본 저장 공간과 상관시키는 방법은 작업 서버에서의 변경의 크기를 결정하는 단계를 포함할 수 있다. 이러한 방법은 일반적으로 작업 서버에서 하나 이상의 데이터 변경들의 세트를 식별하는 단계와 더불어, 섀도 복사본 저장 볼륨에 적용되어야 하는 데이터 변경들의 총 크기가 과대 평가되도록 이 데이터 변경들의 세트의 총 크기를 결정하는 단계를 포함할 수 있다. 그에 부가하여, 이 방법은 섀도 복사본 저장 볼륨에서의 이용가능한 섀도 복사본 저장 공간의 크기를 식별하는 단계, 및 이 하나 이상의 데이터 변경들의 세트를 식별된 이용가능한 섀도 복사본 저장 공간에 적용하는 단계를 포함할 수 있다. 궁극적으로, 유효한 섀도 복사본이 만료 전에 섀도 복사본 저장 볼륨에 남아 있도록 하는 방식으로 파일 변경들이 적용될 수 있다.
대안의 방법은 복제 에이전트가 수신된 변경들을 적용하려고 할 때 하나 이상의 백업 볼륨에서의 이용가능한 섀도 복사본 저장 공간을 결정하는 것에 더 많이 기초하고 있을 수 있다. 이러한 방법은 작업 서버로부터 하나 이상의 데이터 변경을 수신하는 단계, 및 하나 이상의 데이터 변경이 적용될 때 이들 데이터 변경 각각에 표준값을 할당하는 단계를 포함할 수 있다. 이 방법은 또한 백업 볼륨에 저장된 유효한 섀도 복사본을 보존하기 위해 백업 볼륨에서의 이용가능한 섀도 복사본 저장 공간의 양이 과소 평가되도록 이 양을 계산하는 단계를 포함할 수 있다. 그에 부가하여, 이 방법은 하나 이상의 데이터 변경들의 초기의 세트의 표준값이 계산된 백업 볼륨에서의 이용가능한 섀도 복사본 저장 공간의 양보다 작은지를 확인하는 단계를 포함할 수 있다. 적절한 경우, 하나 이상의 데이터 변경이 백업 볼륨에 적용될 수 있다. 그 자체로서, 이 방법에서 유효한 섀도 복사본은 또한 만료 전에 섀도 복사본 저장 볼륨에 남아 있을 수 있다.
이 요약은 이하에서 상세한 설명에 더 기술되는 선택된 개념들을 간략화된 형태로 소개하기 위해 제공된 것이다. 이 요약은 청구된 발명 대상의 주요 특징들 또는 필수적인 특징들을 확인하기 위한 것이 아니며 청구된 발명 대상의 범위를 정하는 데 보조 수단으로 사용되기 위한 것도 아니다.
본 발명의 부가의 특징들 및 이점들은 이하의 설명에서 기술될 것이며, 부분적으로는 이 설명으로부터 명백하게 되거나 본 발명을 실시함으로써 알게 될 수 있다. 본 발명의 특징들 및 이점들은 첨부된 청구항들에 특별히 언급된 수단 및 조합에 의해 실현 및 달성될 수 있다. 본 발명의 이들 및 다른 특징들은 이하의 설명 및 첨부된 청구항들로부터 더욱 명백하게 되거나 이후에 기술되는 바와 같이 본 발명을 실시함으로써 알게 될 수 있다.
도 1은 본 발명의 한 구현예에 따른, 복제 에이전트가 작업 서버로부터 업데이트를 수신하고 이 업데이트를 백업 볼륨에 적용하는, 백업 시스템에서의 작업 서버 및 백업 서버의 개략적인 개요도.
도 2는 작업 서버로부터 오는 변경들의 총 크기를 식별함으로써 작업 서버로부터의 변경들을 백업 서버에 적용하는 방법에서의 일련의 동작들의 플로우차트.
도 3은 작업 서버로부터 수신된 변경들을 적용하기 전에 이용가능한 미사용 공간의 총 크기를 식별함으로써 작업 서버로부터의 변경들을 백업 서버에 적용하는 방법에서의 일련의 동작들의 플로우차트.
본 발명의 상기한 이점 및 특징과 기타의 이점 및 특징이 달성될 수 있는 방식을 기술하기 위해, 첨부 도면에 예시된 본 발명의 구체적인 실시예를 참조하여 이상에서 간략히 기술한 본 발명에 대해 보다 상세히 설명할 것이다. 이들 도면이 본 발명의 전형적인 실시예들만을 나타내고 있고 따라서 본 발명의 범위를 제한하 는 것으로 간주되어서는 안된다는 것을 유념하면서, 첨부 도면을 사용하여 본 발명에 대해 더 구체적이고 상세하게 설명할 것이다.
본 발명은 관리자의 백업 목표/의도에 따라 섀도 복사본이 유효한 채로 있는 한 섀도 복사본이 백업 볼륨에 보존되게 하도록 구성되어 있는 시스템, 방법, 및 컴퓨터 프로그램 제품으로 확장된다. 상세하게는, 본 발명의 구현예들은 작업 서버에서의 기입 속도(write rate)의 결정에 기초하여 백업 볼륨 상의 섀도 복사본 저장 공간의 자동적인 결정을 제공한다. 이러한 이용가능한 공간의 결정은 어떤 경우에 기존의 섀도 복사본을 유지하기 위해 더 새로운 섀도 복사본이 생성될 수 있는지 여부를 결정하는 데도 사용될 수 있다. 한 구현예에서, 백업 볼륨 내의 섀도 복사본 저장 공간은 작업 서버에서의 예상된 기입 속도에 대응하기 위해 각각의 복제 사이클마다 자동적으로 재할당될 수 있다. 게다가, 현재의 섀도 복사본 저장 공간을 초과하는 섀도 복사본이 적절한 방식으로 처리됨으로써 여전히 유효한 이전의 섀도 복사본을 덮어쓰는 일을 피할 수 있도록 섀도 복사본 저장 공간이 사실상 잠겨있을 수 있다.
이하의 설명 및 청구항으로부터 더 상세히 알게 될 것인 바와 같이, 본 발명의 구현예들은 유효한 섀도 복사본 데이터의 상실을 방지할 수 있다. 일반적으로, 섀도 복사본의 "유효성"은, 본 명세서에서 사용되는 바와 같이, 백업 시스템(100)의 백업 의도와 관련되어 있으며, 여기서 백업 관리자는 지정된 시간에 백업 서버에서 이용가능한 증분적 데이터 업데이트를 유지하기 위한 어떤 설정(즉, 의도)을 생성한다. 상세하게는, "유효한" 섀도 복사본은 본질적으로, 특정의 "백업 의도" 로 정의된 바와 같이, 아직 "만료"되지 않은 섀도 복사본이다. 예를 들어, 백업 관리자가 섀도 복사본이 매일 x번 수집되고 삭제되거나 아마도 보관 매체로 이동되기 전에 적어도 14일 동안 저장되어야 하는 것을 나타내는 백업 의도를 설정한 경우, "유효한" 섀도 복사본은 최소한 14일보다 오래되지 않은 것을 말한다. 이와 달리, 14일보다 오래된 백업 서버에 있는 섀도 복사본은 "유효하지 않은" 또는 "만료된" 것으로 간주되어, 백업 관리자가 원하는 바에 따라, 삭제되거나 보관 매체로 이동될 수 있다.
그 자체로서, 본 발명의 구현예들은 일반적으로 그렇지 않은 경우 불충분한 섀도 복사본 저장 공간으로 인해 및/또는 보호되는 주 데이터를 위한 저장 영역의 증가로 일어나는 섀도 복사본 저장 공간("diff 영역"이라고도 함)의 상실로 인해 일어날지도 모르는 유효한 섀도 복사본 데이터 상실을 방지하도록 구성되어 있다. 예를 들어, 한 구현예에서의 하나 이상의 컴포넌트는 작업 서버에서 보호될 데이터의 증가를 추적하고 또한 섀도 복사본 데이터를 보유하도록 구성된 백업 볼륨의 사용 공간 및 미사용 공간을 추적하도록 구성될 수 있다. 이 컴포넌트가 백업 볼륨 내의 유효한 섀도 복사본 데이터가 덮어쓰기될 위험에 있는 것으로 판정할 때마다, 이 컴포넌트는 적어도 잠시 복제 프로세스를 중단할 수 있다(예를 들어, 새로운 섀도 복사본이 생성되지 않음). 이 컴포넌트는 이어서 섀도 복사본 저장 공간을 자동 조정하거나 계속하기 전에 백업 관리자에게 동일한 것의 지시를 요청할 수 있다.
먼저, 본 명세서에서는 보호될 주 데이터에 대한 저장 영역 및 섀도 복사본 데이터에 대한 저장 영역이 별도의 볼륨에 있는 경우의 본 발명의 구현예들에 대해 주로 설명한다. 그렇지만, 이러한 구조적 개요가 꼭 필요한 것은 아니다. 상세하게는, 본 발명의 구현예들은 또한 동일한 백업 볼륨이 주 데이터 및 대응하는 업데이트(즉, 섀도 복사본 데이터)에 대한 할당된 저장 영역을 포함하는 상황에도 적용될 수 있다.
예를 들어, 도 1은 백업 서버(110)[예를 들어, DPM(data protection manager, 데이터 보호 관리자) 서버]와 통신을 하는 작업 서버(105)(예를 들어, 메일, 파일, 또는 데이터베이스 서버, 기타)를 포함하는 백업 시스템(100)의 구조적 개요를 나타낸 것이다. 도시된 바와 같이, 작업 서버(105)는 적어도 저장 매체(115)를 포함하며, 이 저장 매체(115)는 또한 데이터(125)와 같은 보호될 데이터의 하나 이상의 볼륨을 포함한다. 작업 서버(105)에 있는 로그 파일(113)은 데이터(125)에 대한 모든 변경을 식별해줄 수 있다. 그에 따라, 로그 파일(135)은 업데이트(123, 127)를 포함하며, 작업 서버(105)는 궁극적으로 이 업데이트를 백업 서버(110)에 전달하게 된다.
도 1은 또한 백업 서버(110)가 복제 에이전트(130)를 포함하는 것도 나타내고 있다. 일반적으로, 복제 에이전트(130)는 작업 서버(105)와 통신하고 저장 매체(120)와 같은 하나 이상의 부착된 백업 저장 매체의 다양한 특성들을 추적하도록 구성되어 있는 하나 이상의 컴퓨터 실행가능 명령어 세트를 포함한다. 예를 들어, 도 1은 복제 에이전트(130)가 볼륨 특성(150) 컴포넌트를 포함할 수 있다는 것을 나타내고 있으며, 이 볼륨 특성(150) 컴포넌트는 저장 매체(120)(및/또는 임의의 다른 접속된 백업 매체) 내의 각각의 볼륨에 대한 다양한 사용 공간 및 미사용 공간 특성을 저장한다.
설명으로서, 복제 에이전트(130) 및/또는 결정 모듈(135)이 꼭 백업 서버(110)에 존재하는 컴포넌트일 필요는 없다. 상세하게는, 복제 에이전트(130) 및/또는 결정 모듈(135)이 작업 서버(105)에 및/또는 백업 서버(110) 내의 임의의 다른 서버(도시 생략)에 구현될 수 있다. 따라서, 본 명세서에서의 백업 서버(110) 상의 복제 에이전트(130) 및 결정 모듈(135)에 대한 이 예시는 주로 편의상 적어도 하나의 구현예를 설명하기 위한 것이다.
어쨋든, 결정 모듈(135)은 작업 서버(105)에서 보호된 데이터(예를 들어, 125)에 행해지는 업데이트의 크기를 식별할 수 있다. 한 구현예에서, 결정 모듈(135)은 일반적인 보관 기간(예를 들어, 14일 : 섀도 복사본을 보관 또는 삭제하기 전에 섀도 복사본을 유지하는 시간) 동안 복제 사이클에 걸쳐(예를 들어, 매 15분마다) 데이터(125)의 모든 변경의 실제 바이트 크기를 결정한다. 그렇지만, 이러한 입도 결정이 모든 경우에 꼭 필요한 것은 아닐 수 있다. 예를 들어, 어떤 경우에 데이터 업데이트를 diff 영역(예를 들어, 143)으로 복사하는 데 공간이 얼마나 필요한지의 보다 보수적인 추정치를 식별하는 것이 더 효율적일 수 있다. 한 구현예에서, 이것은 바이트 변경을 파일(또는 바이트) 블록으로 환산하여 식별함으로써 행해질 수 있다.
일반적으로, 파일 블록(또는 바이트 블록)은 통상적으로 "파일" 내의 일련의 바이트이다. 본 명세서 및 청구항에서, "파일"은, 가장 넓은 의미로 해석하여, 보 통의 사용자 애플리케이션 파일이라기 보다는(또는 그에 부가하여) 임의의 유형의 이산 데이터 집합체(전자 메일, 데이터베이스 프로그램, 시스템 라이브러리 또는 컴포넌트, 기타 등등과 연관된 이산 데이터 집합체 등)를 포함하는 것으로 이해되어야 한다. 어쨋든, 파일 블록 내의 일련의 바이트는 통상적으로 약 4096 바이트 내지 약 16384 바이트의 일정한 크기를 갖는다. 따라서, 파일은 어떤 임의의 수의 바이트로 기술되는 것에 부가하여 3 바이트 블록들의 세트로 기술될 수 있다. 따라서, 이하의 상세한 설명 및 청구항으로부터 더 잘 알게 될 것인 바와 같이, 복제 에이전트(130)는 [결정 모듈(135)을 통해] 작업 서버(105)로부터 기입될 필요가 있는 블록의 수(즉, 변경의 크기), 저장 매체(120) 내의 이용가능한 블록의 수(즉, 할당된 저장 장치의 크기), 또는 이들의 어떤 조합을 결정할 수 있다.
예를 들어, 복제 에이전트(130)는 [결정 모듈(135)을 통해] 데이터(125)를 대응하는 백업 볼륨과 동기화시키기 전에(즉, 변경들을 대응하는 백업 볼륨에 적용하기 전에) 복제 프로세스 동안에 이들 변경들을 추적함으로써 이 데이터(125)에 대한 변경들의 총 크기를 결정할 수 있다. 한 경우에, 이것은 파일 시스템 로그/저널[예를 들어, USN(update sequence number, 업데이트 순서 번호) 저널, 블록 변경 비트맵, 또는 로그 파일](113)로부터 모든 생성된, 수정된, 및/또는 삭제된 파일을 결정함으로써 행해질 수 있다. 복제 에이전트(130)는 이어서 파일 내의 메타데이터가 변경되었는지, 파일이 새로운 것인지, 파일이 첨부된 것인지, 주어진 파일 블록 내의 하나 이상의 바이트가 변경되었는지, 및/또는 파일이 삭제되었는지와 관련하여 어떤 표준값(즉, 블록값)을 할당할 수 있다. 앞서 언급한 바와 같이, 이 블록값은 궁극적으로 얼마나 저장 매체(120)에 기록되어야 하는지의 보수적 과대 평가를 제공할 수 있다.
예를 들어, 복제 에이전트(130)는 각각의 메타데이터 변경마다 어떤 수의 블록을 계수하고 다른 유형의 파일 변경에 할당된 블록값과 별도로 이것을 카운트하도록 구성될 수 있다. 한 구현예에서, 복제 에이전트(130)는 파일 수정 시간, 보안 특성, 파일 이름, 또는 어떤 다른 파일 속성과 관련된 파일 메타데이터의 변경을 식별할 때마다 1 블록을 카운트한다. 이들 및 다른 메타데이터 속성 각각이 변경되는 경우, 복제 에이전트(130)는 몇개의 개별 블록을 카운트할 필요가 있을 수 있다. 그렇지만, 복제 에이전트(130)는 동일한 메타데이터 필드에 대한 몇개의 변경(예를 들어, 몇개의 파일 이름 변경)을 식별하는 것과 같이 서로 상쇄될 수 있는 메타데이터 변경에 대해서는 단순히 1 블록을 식별하도록 최적화될 수 있다.
복제 에이전트(130)는 또한 파일에 추가되는 새로운 블록들 전부를 카운트하도록 구성될 수도 있다. 예를 들어, 로그 파일(113)이 3개의 블록을 갖는 새로 생성된 파일을 식별하는 경우, 복제 에이전트(130)는 총계에 3개의 블록을 추가할 수 있다. 다른 대안으로서, 첨부된 파일의 경우, 복제 에이전트(130)는 단지 주어진 파일에 추가된 각각의 블록에 대해 1 블록값을 가산할 수 있다. 이와 유사하게, 복제 에이전트(130)는 동일한 파일 블록 내에서의 하나 이상의 바이트 변경에 대해 하나의 블록을 추가하거나 동일한 파일 내의 몇개의 서로 다른 블록에 걸쳐 몇개의 바이트가 변경되었을 때 다수의 블록을 추가하도록 구성될 수 있다. 복제 에이전트(130)는 저장 매체(120)에 공간이 얼마나 필요한지에 대한 추정치를 얻기 위해 이들 개개의 총계(즉, 메타데이터 변경의 횟수, 파일 변경, 생성 또는 첨부의 횟수) 각각을 합산할 수 있다.
어떤 경우에, 삭제된 블록의 총수를 고려함으로써 이 총계도 수정될 수 있다. 예를 들어, 어떤 볼륨 섀도 복사본 서비스는, 작업 서버가 그의 저장 매체(예를 들어, 115)에서 어떤 블록을 삭제하였음을 식별한 경우, 그 블록의 이전 버전을 백업 볼륨(예를 들어, 140)으로부터 섀도 복사본 볼륨(예를 들어, 143)으로 복사하도록 구성되어 있다. 어떤 경우에, 주어진 삭제된 블록이 다른 파일 또는 파일 블록으로 덮어쓰기된 경우, 볼륨 섀도 복사본 서비스는 블록의 삭제만을 보고하도록 구성될 수 있다. 다른 경우에, 볼륨 섀도 복사본 서비스는 일반적인 바이트/블록 삭제는 물론 바이트/블록 덮어쓰기 둘다를 보고하도록 구성될 수 있다. 그에 따라, 복제 에이전트(130)는 대응하는 백업 볼륨으로 전달될 필요가 있는 블록의 가장 정확한 총수가 반영되도록 하기 위해 이용되는 어떤 섀도 복사본 서비스에도 대응하도록 구성될 수 있다.
예를 들어, 복제 에이전트(130)는, 파일 시스템 저널, 로그 파일 또는 블록 변경 비트맵(예를 들어, 113)으로부터, 덮어쓰기되고 있는 삭제된 블록의 총수는 물론 그 삭제된 파일의 크기만을 식별하도록 구성될 수 있다. 한 구현예에서, 그 삭제된 블록들의 크기는 다수의 복제 사이클에 걸친 누적값(및 에러 정정으로 인한 변경)에 기초할 수 있다. 이에 따라, 복제 에이전트(130)는 또한, 가능한 경우, 모든 새로 추가된 블록들이 삭제된 블록들을 반드시 덮어쓰기하는 것으로 가정하도록 구성되어 있다. 따라서, 이 예에서, 복제 에이전트(130)는 데이터(125)에 대한 변경의 총 크기가 메타데이터 변경으로 인한 블록의 수, 새로 추가된 블록의 수, 및 새로 추가된 블록으로 덮어쓰기된 삭제된 블록의 수의 총계로서 근사화될 수 있는 것으로 판정할 수 있다.
작업 서버(105)에서 변경들의 크기를 식별할 시에(또는 그 이전에), 복제 에이전트(130)는 또한 식별된 변경들을 적용할지를 확인하기 위해 백업 저장 매체(예를 들어, 120)에서 이용가능한 영역의 크기를 결정할 수 있다. 예를 들어, 복제 에이전트(130)는 볼륨 섀도 복사본 서비스(도시 생략)에 질의함으로써 주 백업 볼륨(140)에서 섀도 복사본에 할당된 저장 영역 내의 미사용 공간의 양을 식별할 수 있다. 다른 대안으로서, 주 데이터 백업 및 섀도 복사본 백업이 별개의 볼륨(예를 들어, 140, 125)에 저장되는 경우, 복제 에이전트(130)는 섀도 복사본을 저장하는 데 사용되는 볼륨에서 미사용 공간(예를 들어, 147)이 얼마나 발견되는지를 식별할 수 있다. 어쨋든, 복제 에이전트(130)는 기존의 유효한 섀도 복사본을 덮어쓰지 않고 작업 서버(105)에서의 변경이 저장 매체(120)에 적용될 수 있는지를 판정한다.
상세하게는, 복제 에이전트(130)가 작업 서버(105)로부터의 파일/데이터 변경의 총 크기가 섀도 복사본에 이용가능한 미사용 공간(예를 들어, 147)을 초과하지 않는 것으로 식별하는 경우, 복제 에이전트(130)는 필요에 따라 단순히 이들 변경을 저장 매체(120)에 적용할 수 있다. 반면에, 보호될 데이터에 대한 변경(예를 들어, 123, 127)의 크기가 섀도 복사본에 이용가능한 계산된 공간을 초과하는 경우, 복제 에이전트(130)는 저장 매체(120)에 변경을 적용하는 일을 적어도 잠시 동 안 중단할 수 있다. 복제 에이전트(130)는 또한 복제가 중단되었고 섀도 복사본에 할당된 저장 영역이 완전히 채워져 있다는 것을 백업 관리자(또는 적절한 시스템 컴포넌트)에 알려주기 위해 적절한 인터페이스를 통해 경보를 발생시킬 수 있다.
다른 경우에, 복제 에이전트(130)는 섀도 복사본에 할당된 저장 영역이 채워져 있지 않지만 현재의 변경을 수용하기에 크기가 불충분하다는 것을 알려줄 수 있다. 다른 대안으로서, 복제 에이전트(130)는 작업 서버(105)로부터 식별되는 변경의 속도를 결정하고 따라서 섀도 복사본에 할당된 이용가능한 공간이 크기가 불충분할 수 있음을 나타내는 에러를 야기하도록 구성될 수 있다. 복제 에이전트(130)는 또한 [예를 들어, 주 데이터 백업 볼륨(140) 내의 할당된 부분을 증가시키거나 볼륨(145)의 총 크기를 증가시킴으로써] 섀도 복사본을 기입하는 데 이용가능한 공간을 증가시키도록 백업 관리자에 요청할 수 있다. 복제 에이전트(130)는 또한 백업 관리자에게 충분한 공간이 있을 때까지 단지 기존의 섀도 복사본을 "선입 선출" 순서로 제거하도록 추천할 수 있다. 예를 들어, 한 구현예에서, 복제 에이전트(130)는 몇개의 섀도 복사본을 삭제할지를 추천하고 이러한 삭제를 수행한 후에 이용가능하게 되는 마지막 복구 시점을 백업 관리자에 보고한다.
적절한 경우, 복제 에이전트(130)는 원래의 스케쥴에 따라 복제 사이클을 재시작 또는 재개할 수 있고 작업 서버(105)가 알려준 변경들을 적용할 수 있다. 복제 사이클이 계속됨에 따라, 복제 에이전트(130)는 섀도 복사본 저장 공간에서 이용가능한 미사용 공간을 계속하여 추정할 수 있다. 예를 들어, 복제 에이전트(130)가 처음에 보호를 설정할 때, 복제 에이전트(130)는 사용된 공간 및 미사용 공간을 식별하고 이 정보를 볼륨 특성 컴포넌트(150)에 저장한다. 이러한 경우에, 복제 에이전트(130)는 섀도 복사본 저장 공간(예를 들어, 145)에서의 사용된 공간(예를 들어, 143)을 0으로 설정하고 백업 관리자에 의해 이전에 설정된 섀도 복사본 저장 공간/볼륨(145)의 상한값[또는 주 데이터 백업 볼륨(140)에서의 할당된 부분의 상한값]을 저장할 수 있다. 복제 동안에, 또는 볼륨 내의 사용된 공간을 수정하는 임의의 다른 동작(예를 들어, 유효성 확인 및 에러 정정) 동안에, 복제 에이전트(130)는 계속하여 블록의 수를 사용된 공간의 양에 가산할 수 있으며, 이는 역으로 이전에 식별된 미사용 공간으로부터 이들 양을 차감한다.
따라서, 복제 에이전트(130)는 무엇이 기입되었는지에 의해 백업 볼륨에 공간이 얼마나 남아 있는지를 추정할 수 있다. 그럼에도 불구하고, 복제 에이전트(130)는 나머지 변경을 적용하기 전에 이 총계를 더 조정할 필요가 있을 수 있다. 적절한 경우(복제 사이클 이전에 또는 그 동안에), 복제 에이전트(130)는 또한 사용된 공간(예를 들어, 143)으로부터 만료된 섀도 복사본을 삭제하고, 적절한 경우, 각각의 삭제된 섀도 복사본의 크기를 사용된 공간(예를 들어, 143)으로부터 차감한다. 복제 에이전트(130)는 또한 할당된 섀도 복사본 저장 공간[예를 들어, 저장 볼륨(예를 들어, 145)]의 상한에 대한 어떤 수정을 고려할 수 있다. 예를 들어, 복제 에이전트(130)는 섀도 복사본에 할당된 총 크기의 증가 또는 감소에 관하여 백업 관리자로부터 부가적인 입력을 수신할 수 있다. 따라서, 적절한 경우, 복제 에이전트(130)는 계속하여 나머지 파일 또는 파일 블록을 이용가능한 섀도 복사본 저장 공간에 전달할 수 있다.
복제의 시작 및 중지로 인해, 작업 서버(105)에서 로그 파일(113)에 기입되는 것과 비교하여 주 데이터 백업(예를 들어, 140)과 임의의 섀도 복사본 백업(예를 들어, 145) 간의 불일치하는 경우가 있을 수 있다는 것을 잘 알 것이다. 그에 따라, 복제 에이전트(130)는 또한 로그 파일(113)에서의 오버플로우에 대응하기 위해 일관성 검사(즉, 유효성 확인 및 에러 정정)와의 동기화를 수행(또는 추천)하도록 구성될 수 있다. 이러한 동기화에 대해 이후에 더 상세히 설명한다.
계속하여 도 1을 참조하면, 적절한 경우 변경들의 총 크기를 반드시 계산하여 이들 변경을 적용하기 보다는, 복제 에이전트(130)는 계속적으로 질의를 하여 어느 공간이 이용가능한지를 결정하며 이어서 수신된 업데이트의 부분들을 섀도 복사본 저장 영역에 적용하도록 구성될 수 있다. 이상의 설명과 달리, 이것은 작업 서버(105)로부터 수신되는 모든 변경들의 크기를 식별하는 데 보다는, 섀도 복사본을 기입하기 위한 저장 매체(120)에서의 이용가능한 미사용 공간의 크기를 식별하는 데 작업의 대부분을 할애할 수 있다. 일반적으로, 이것이 행해질 수 있는 본 발명의 구현예에 따른 많은 메카니즘이 있다.
한 구현예에서, 예를 들어, 복제 사이클 동안에 작업 서버(105)로부터 파일 변경들을 수신할 때, 복제 에이전트(130)는 파일마다 또는 블록마다 이용가능한 미사용 섀도 복사본 저장 공간(예를 들어, 145)만을 질의할 수 있고, 적절한 경우, 각각의 그 다음 파일(또는 블록(들))을 이용가능한 섀도 복사본 저장 공간에 기입할 수 있다. 하나 이상의 파일(또는 블록(들))의 그 다음 세트에 대한 공간이 불충분한 경우, 복제 에이전트(130)는 경보를 발생할 수 있다. 그렇지만, 백업 볼륨 으로 전달되고 있는 각각의 파일 또는 파일 블록에 대한 이용가능한 미사용 공간을 질의하는 일이 자원 사용 관점에서 볼 때 어떤 백업 시스템에게는 어려울 수 있다. 그에 따라, 복제 에이전트(130)는 더 낮은 입도의 계산(그럼에도 불구하고 이 계산은 이용가능할 수 있는 것의 꽤 보수적인 추정치를 제공함)을 사용하도록 구성될 수 있다.
예를 들어, 복제 에이전트(130)는 섀도 복사본을 저장하기에 "안전한" 미사용 공간의 이용가능한 영역을 계산하고 이어서 이 이용가능한 영역을, 상기한 파일마다 또는 블록마다보다 훨씬 더 적은 빈도수로(예를 들어, 10,000개 파일 또는 파일 블록마다) 질의하도록 구성될 수 있다. 앞서 언급한 바와 같이, 안전한 과소 평가된 양을 챙겨두는 것이 유효한 섀도 복사본을 보존하는 데 도움이 될 수 있다. 그에 부가하여, 이러한 과소 평가가 도움이 될 수 있는 다른 이유는, 새로운 블록이 삭제된 블록의 상단이 기입될 때, 어떤 볼륨 섀도 복사본 서비스가 이들 삭제된 블록의 데이터 업데이트를 섀도 복사본 저장 영역에만 적용할 수 있기 때문이다. 따라서, 이용가능한 공간의 이전의 추정이 불충분한 것으로 밝혀진 경우, 즉 예상(즉, 덮어쓰기된 블록)보다 많은 데이터가 섀도 복사본 저장 공간으로 전송되는 경우, 안전한 과소 평가된 한계를 설정하는 것이 기존의 섀도 복사본을 유지하는 데 도움이 될 수 있다.
어쨋든, 복제 에이전트(130)는 다수의 방식으로 안전한 섀도 복사본 저장 공간을 결정할 수 있다. 한 구현예에서, 예를 들어, 복제 에이전트(130)는 처음에 섀도 복사본을 저장하는 데 현재 이용가능한 미사용 공간의 양을 식별할 수 있고 이어서 미사용 공간의 미리 정해진 비율을 "안전한" 것으로 설정할 수 있다. 한 구현예에서, 예를 들어, 복제 에이전트(130)는 미사용 공간의 90%를 안전한 것으로 식별한다. 따라서, 초기의 일련의 파일 또는 파일 블록(100,000개의 파일 또는 블록 중에서 처음 10,000개의 파일 또는 파일 블록)에서 안전한 미사용 공간의 값의 대략적인 근사치(즉, 미사용 공간의 초기 결정의 90%)를 알고서, 복제 에이전트(130)는 그 일련의 파일 또는 파일 블록 각각을 이용가능한 안전한 저장 공간에 기입할 수 있다.
제1 일련의 파일 또는 파일 블록을 기입한 후에, 복제 에이전트(130)는 (적절한 볼륨 섀도 복사본 서비스에 질의를 하는 등에 의해) 나머지 이용가능한 미사용 공간을 결정하고 또다시 미사용 공간의 "90%"를 안전한 것으로 설정할 수 있다. 그 다음 일련의 파일 또는 파일 블록이 이 공간에 들어가는 경우, 복제 에이전트(130)는 이전과 같이 단순히 미사용 공간 내에 이들 블록을 기입할 수 있다. 그렇지만, 복제 에이전트(130)가 미사용 공간에 대한 새로운 값이 그 다음 일련의 파일 또는 파일 블록에 적절한 것보다 작은 것으로 결정하는 경우, 복제 에이전트(130)는 다수의 부가적인 단계들을 수행할 수 있다.
예를 들어, 한 구현예에서, 복제 에이전트(130)는 단순히 안전한 이용가능한 미사용 공간에 들어갈 수 있는 그 다음 일련의 파일 또는 파일 블록들만을 기입한다. 어떤 경우에, 복제 에이전트(130)는 파일 블록이 아닌 파일만을 기입함으로써 주 데이터 저장 장치[예를 들어, 볼륨(140)]가 섀도 복사본 저장 장치[예를 들어, 볼륨(145)]와 모순되지 않게 유지하도록 구성될 수 있다. 예를 들어, 작업 서 버(105)에서 파일의 2개의 블록이 변경된 경우, 복제 에이전트(130)는 파일 블록 둘다를 저장 매체(120)에 기입하거나, 하나의 블록만이 들어가는 경우 이 파일 내의 어느 블록도 기입하지 않도록 구성될 수 있다.
복제 에이전트(130)가 그 후에 안전한 이용가능한 섀도 복사본 저장 공간에 단 하나의 파일(즉, 파일 내의 변경되거나 추가된 블록)도 기입될 수 없는 것으로 결정하는 경우, 복제 에이전트(130)는 안전한 이용가능한 크기를 적절한 값(예를 들어, "0")으로 설정할 수 있으며, 이는 경보를 발생한다. 이것으로 인해, 복제 에이전트(130)는 주어진 기입 동작이 성공적으로 완료될 수 없고 x 분량의 파일 또는 파일 블록이 여전히 수용되어야 함을 나타내는 경보를 발생할 수 있다. 복제 에이전트(130)는 백업 관리자에게 다시 변경을 적용하려고 하기 전에 섀도 복사본에 할당된 총 저장 영역[예를 들어, 볼륨(145)의 크기 또는 볼륨(140) 내의 할당의 크기]을 증가시키거나 기존의 섀도 복사본을 삭제하도록 추천할 수 있다. 이러한 조정이 행해질 수 있는 것(및 이러한 조정이 행해지는 것)으로 가정하면, 복제 에이전트(130)는, 상기한 바와 같이, 일련의 파일 및/또는 파일 블록을 안전한 이용가능한 섀도 복사본 저장 공간에 기입하는 이러한 프로세스를 반복할 수 있다.
이에 따라, 복제 에이전트(130)는 또한 백업 서버(110)에 있는 모든 백업 볼륨[예를 들어, 저장 매체(120)의 140, 145, 기타]을 모니터링하기 위해 볼륨 필터 드라이버(도시 생략)를 사용할 수 있다. 이것은 복제 에이전트(130) 이외의 다른 프로세스가 백업 볼륨[즉, 섀도 복사본 저장 공간(145)]에 기입할 수 없도록 하는 데 또는 적어도 다른 프로세스/애플리케이션이 백업 볼륨에 기입하고 있더라도 유 효한 섀도 복사본이 유지되도록 하기 위해(이는 다양한 보안 이점을 제공할 수 있음) 동일한 검사가 행해지도록 하는 데 도움이 될 수 있다. 한 구현예에서, 예를 들어, 볼륨 필터 드라이버는 이용가능한 섀도 복사본 저장 공간(예를 들어, 147)의 양으로 초기화되는 변수를 저장할 수 있다. 복제 에이전트(130)가 주 데이터 백업 볼륨(예를 들어, 140)에 데이터를 기입할 때마다, 볼륨 필터 드라이버는 이 기입의 결과 삭제된 데이터가 대응하는 섀도 복사본 볼륨(예를 들어, 145)으로 이동되는 것으로 가정할 수 있다. 이러한 경우에, 볼륨 필터는 각각의 기입이 기존의 데이터에 대한 변경이고 새로운 기입은 물론 덮어쓰기된 데이터의 복사본이 섀도 복사본 저장 공간으로 전달되어야만 하는 극단의 시나리오를 가정하도록 구성될 수 있다.
그 자체로서, 볼륨 필터 드라이버는 주 데이터 백업에의 각각의 식별된 기입에 대해 이용가능한 미사용 섀도 복사본 저장 공간으로부터 1 블록 감소시키도록 구성될 수 있다. 볼륨 필터 드라이버는 또한 일상적으로 이용가능한 미사용 섀도 복사본 저장 공간의 결정들을 동기화할 수 있다(이에 대해서는 이후에 더 상세히 기술함). 궁극적으로, 이용가능한 섀도 복사본 데이터 공간 할당이 0으로 감소될 때, 복제 에이전트(130)(이 경우에 볼륨 필터 드라이버로부터 그의 데이터를 수신함)는 저장 매체(120)에 기입을 할 수 없고 따라서 섀도 복사본 저장 공간(예를 들어, 145)에 기입을 할 수 없다. 차례로, 복제 에이전트(130)는 백업 관리자에게 앞서 기술한 다양한 대응 동작들 중 하나 이상을 요청하는 경보를 발생할 수 있다.
본 명세서에 기술된 다양한 크기 근사와 관련하여, 백업 관리자는 백업 저장 매체(120)에서의 동일한 블록과 비교하여 작업 서버(105) 파일 시스템에서 블록 크기가 서로 다른 경우를 해결할 필요가 있을 수 있다. 상세하게는, 복제 사이클 또는 유효성 확인/에러 정정 이전에 계산된 블록 변경이 반드시 이용가능한 섀도 복사본 공간에서의 동일한 크기의 블록 변경으로 변환될 필요는 없다. 물론, 작업 서버(105)에서의 파일 시스템 블록 크기가 저장 매체(120)에서 관리되는 블록 크기보다 크거나 같은 경우, 어떤 문제도 없는데 그 이유는 저장 매체(120)에서의 이용가능한 미사용 공간이 사실상 과소 평가되기 때문이다. 반면에, 작업 서버(105)에서의 블록 크기가 저장 매체(120)에서의 블록 크기보다 작은 경우, 저장 매체(120)에서의 이용가능한 미사용 공간은 사실상 과대 평가되며, 이 결과 너무 이른 섀도 복사본 덮어쓰기/삭제가 일어날 수 있다. 이러한 경우에, 복제 에이전트(130)는 이용가능한 미사용 공간의 양을 과소 평가하기 위해 다수의 부가적인 단계들을 수행할 수 있다.
예를 들어, 복제 에이전트(130)는 작업 서버(105)의 블록 크기와 백업 저장 매체(120)의 블록 크기를 동일하게 설정할 수 있다. 이것은 작업 서버(105)와 저장 매체(120) 간의 블록 대응이 사실상 일대일이도록 복제 에이전트(130)가 이전에 결정된 변경의 크기를 정규화하는 단계를 포함할 수 있다. 다른 대안으로서, 복제 에이전트(130)는 작업 서버(105)에서의 변경으로 인해 총 블록의 결정을 조정할 수 있고, 하나 이상의 블록을 추가함으로써 작업 서버(105)로부터 수신된 변경의 수를 과대 평가할 수 있다. 이 점에서, 복제 에이전트(130)는 변경된 블록들이 연속적인 것으로 가정하고 그 자체로서 저장 매체(120)에 기입될 필요가 있는 작업 서 버(105)에서의 계산된 변경된 블록들에 1 블록을 가산하도록 구성될 수 있다.
다른 대안으로서, 복제 에이전트(130)는 작업 서버(105)에서 변경된 블록들 각각의 논리적 오프셋을 수행하도록 구성될 수 있다. 이러한 경우에, 복제 에이전트는 변경된(또는 새로운) 일련의 연속적인 블록들 각각에 1 블록값을 가산할 수 있고 또한 변경된 하나의 단독 블록을 2개의 블록으로 카운트할 수 있다. 또다른 대안의 구현예에서, 복제 에이전트(130)는 작업 서버(105)에서 변경된 파일 블록의 논리적 오프셋을 수행할 수 있고 이들 경계를 저장 매체(120)에서 사용되는(예를 들어, 볼륨 섀도 복사본 서비스에 의해 사용되는) 블록 경계와 비교할 수 있다. 백업 서버(110)는 이 비교를 사용하여 섀도 복사본 저장 공간(예를 들어, 145)에 적용될 필요가 있는 작업 서버(105)로부터의 변경된 블록의 정확한 수를 결정할 수 있다(왜냐하면 이들 변경된 블록이 저장 매체(120)에서 정의되기 때문임).
또한, 본 명세서에 기술된 다양한 근사를 고려하여, 복제 에이전트(130)는 또한 이용가능한 섀도 복사본 저장 공간의 근사를 실제의 이용가능한 섀도 복사본 저장 공간과 주기적으로 동기화시킬 필요가 있다. 이것은 시간에 따른 복잡한 근사 오차를 방지하는 데 도움이 될 수 있다. 한 구현예에서, 예를 들어, 복제 에이전트(130)는 작업 서버(105)에서 특정의 변경을 적용하기에 충분한 공간이 있는 것으로 확인할 시에 이러한 변경을 적용하기 전에 이용가능한 미사용 섀도 복사본 저장 공간(예를 들어, 147)을 결정할 수 있다. 복제 에이전트(130)는 이어서 이것을 "사전 공간"이라고 칭할 수 있다. 작업 서버(105)로부터의 변경을 적용할 시에, 복제 에이전트(130)는 변경 후에 나머지 이용가능한 섀도 복사본 저장 공간(예를 들어, 147)을 질의할 수 있으며(예를 들어, 볼륨 섀도 복사본 서비스에 질의할 수 있음), 이것을 "사후 공간"이라고 칭할 수 있다.
이들 사이에 섀도 복사본이 없는 것으로 가정하면, 섀도 복사본 저장 장치에 적용되는 "실제의 변경"은 "사전 공간"과 "사후 공간" 사이의 차이로서 표현된다. 복제 에이전트(130)는, 상기한 바와 같이 수정된 블록이 덮어쓰기된 삭제 블록을 포함한다는 가정에 기초하여, "실제의 변경"으로부터 (새 블록이 아니라) 수정된 블록을 차감함으로써 삭제된 블록을 계산할 수 있다. 이 결과, "조정된 삭제 블록"의 값이 얻어질 수 있다. 복제 에이전트(130)는 변경의 크기를 계산할 때 상기한 프로세스에서 "조정된 삭제 블록"을 사용할 수 있다.
그에 따라, 이상에서는 백업 업데이트의 유효한 복사본(즉, 섀도 복사본)이 그의 의도된 시간 동안 존속할 수 있도록 할 수 있는 다수의 컴포넌트 및 모듈에 대해 기술하고 있다. 상세하게는, 이러한 구현예들은 백업 관리자 등의 기술자에게 과도한 부담을 주지 않고 현재의 백업 시스템을 훨씬 더 안정적이고 신뢰성있으며 효율적이도록 만드는 데 적용될 수 있다. 본 발명의 구현예들은 또한 의도된 결과를 달성하는 일련의 하나 이상의 동작 또는 단계를 포함하는 방법의 플로우차트를 사용하여 기술될 수 있다. 예를 들어, 도 2는 백업 서버에서 적용되어야 하는 작업 서버에서의 변경의 총 크기를 식별하는 방법의 플로우차트를 나타낸 것인 반면, 도 3은 변경을 적용하기 전에 백업 서버에서 이용가능한 저장 공간을 식별하는 방법의 플로우차트를 나타낸 것이다. 도 2 및 도 3에 대해서는 도 1에 나타낸 컴포넌트들을 참조하여 이하에서 기술된다.
상세하게는, 도 2는 본 발명의 구현예에 따른, 작업 서버에서의 파일 변경들의 결정을 하나 이상의 백업 볼륨에서의 이용가능한 섀도 복사본 저장 공간과 상관시키는 방법을 나타낸 것으로서, 하나 이상의 파일 변경들을 식별하는 단계(200)를 포함한다. 단계(200)는 작업 서버에서의 하나 이상의 데이터 변경들의 세트를 식별하는 단계를 포함한다. 예를 들어, 복제 에이전트(130)는 로그 파일(113)을 통해 작업 서버(105)로부터 데이터 업데이트(123 및/또는 127)을 수신한다.
그에 부가하여, 도 2는 이 방법이 데이터 변경들의 세트의 총 크기를 결정하는 단계(210)를 포함할 수 있다. 단계(210)는 변경들의 총 크기가 과대 평가되도록 섀도 복사본 저장 볼륨에 적용되어야 하는 데이터 변경들의 세트의 총 크기를 결정하는 단계를 포함한다. 예를 들어, 로그 파일(113)을 통해 변경들을 수신할 시에, 복제 에이전트(130)는 궁극적으로 백업 볼륨(145)에 적용될 필요가 있는 변경들의 크기에 가까운 값을 결정한다.
일반적으로, 단계(210)가 임의의 수 또는 순서의 대응하는 단계들을 포함할 수 있지만, 적어도 한 구현예에서, 단계(210)는 그 세트의 각각의 새로운 파일 내의 각각의 데이터 부분에 표준값을 할당하는 단계, 이 표준값을 그 세트 내의 임의의 파일에 첨부되는 각각의 데이터 부분에 할당하는 단계, 및 이 표준값을 덮어쓰기된 각각의 파일에 할당하는 단계를 포함한다. 예를 들어, 복제 에이전트(130)는 새로운 블록(예를 들어, 새로운 파일, 첨부 파일)을 식별할 때, 또는 덮어쓰기된 파일(또는 블록)을 식별할 때 1 바이트 블록값(또는 다른 데이터 크기 등가물)을 할당한다. 단계(210)는 또한 이 표준값을 그 세트의 임의의 파일에서 변경된 각각 의 메타데이터 부분에 할당하는 단계, 및 작업 서버에서의 변경들의 총 크기에 가까워지도록 각각의 할당된 표준값을 합산하는 단계를 포함할 수 있다. 예를 들어, 복제 에이전트(130)는 각각의 메타데이터 변경마다 블록(또는 상쇄되는 변경들에 대해 한 블록)을 추가할 수 있고, 백업 볼륨(예를 들어, 145)에 적용될 필요가 있는 블록들의 총 크기에 가깝도록 모든 블록 할당을 추가할 수 있다.
그에 부가하여, 도 2는 이 방법이 섀도 복사본 저장 공간의 크기를 식별하는 단계(220)를 포함할 수 있다는 것을 나타내고 있다. 단계(220)는 섀도 복사본 저장 볼륨에서의 이용가능한 섀도 복사본 저장 공간의 크기를 식별하는 단계를 포함한다. 예를 들어, 복제 에이전트(130)는 일반화된 백업 볼륨(예를 들어, 140)에서 할당된 공간이 얼마나 되고 미사용 공간이 얼마나 되는지 또는 섀도 복사본 저장 볼륨(예를 들어, 145)에서 미사용 공간이 얼마나 되는지를 식별하기 위해 볼륨 섀도 복사본 서비스에 질의를 한다.
게다가, 도 2는 이 방법이 하나 이상의 파일 변경들의 세트를 적용하는 단계(230)를 포함할 수 있다는 것을 나타내고 있다. 단계(230)는 유효한 섀도 복사본이 만료 이전에 섀도 복사본 저장 볼륨에 남아 있도록 하나 이상의 데이터 변경들의 세트를 식별된 이용가능한 섀도 복사본 저장 공간에 적용하는 단계를 포함한다. 예를 들어, 작업 서버(105)로부터 변경들의 총 크기를 식별할 시에, 또한 적절한 백업 볼륨에 미사용 공간이 얼마나 되는지를 식별할 시에, 복제 에이전트(130)는 수신된 변경들을 백업 볼륨에 전달할 수 있다.
일반적으로, 단계(230)가 임의의 수 또는 순서의 대응하는 동작들을 포함할 수 있지만, 적어도 한 구현예에서, 단계(230)는 이용가능한 섀도 복사본 공간에서의 미사용 공간의 양을 식별하는 단계, 및 변경들의 총 크기를 식별된 미사용 공간과 비교하는 단계를 포함한다. 단계(230)는 또한 미사용 공간의 양이 적어도 변경들의 총 크기만큼 큰지를 확인하는 단계, 및 하나 이상의 데이터 변경들의 세트를 식별된 미사용 공간에 자동적으로 적용하는 단계를 포함할 수 있다. 예를 들어, 복제 에이전트(130)가 이용가능한 미사용 공간(예를 들어, 147)이 적어도 작업 서버(105)로부터 수신된 변경들의 총 크기만큼 큰 것으로 확인하는 경우, 복제 에이전트(130)는 (예를 들어, 볼륨 섀도 복사본 서비스를 통해) 단순히 그 수신된 변경들을 섀도 복사본 저장 공간에 전달할 수 있다. 물론, 본 명세서에서 전술한 바와 같이, 이용가능한 섀도 복사본 저장 공간이 크기가 불충분한 경우, 복제 에이전트(130)는 만료된 섀도 복사본을 삭제하거나 추가의 조치를 취하도록 백업 관리자에 경보를 발생할 수 있다.
도 3은 단순히 업데이트를 수신하고 자원을 소비하여 섀도 복사본 저장 영역에서 이용가능한 공간이 얼마나 되는지를 결정하는, 도 2에서와 유사한 방법을 나타낸 것이다. 상세하게는, 도 3은 유효한 섀도 복사본 데이터를 삭제하지 않고 작업 서버로부터 수신된 데이터 업데이트를 적용하기 위해 하나 이상의 백업 볼륨에서의 이용가능한 섀도 복사본 저장 공간을 결정하는 방법이 작업 서버로부터 데이터를 수신하는 단계(300)를 포함할 수 있다는 것을 나타내고 있다. 단계(300)는 작업 서버로부터 하나 이상의 데이터 변경을 수신하는 단계를 포함한다. 예를 들어, 복제 에이전트(130)는 로그 파일(113)을 통해 (데이터(125)에 관하여) 작업 서 버(105)로부터 하나 이상의 데이터 변경들의 세트를 수신한다.
도 3은 또한 이 방법이 수신된 데이터에 블록값을 할당하는 단계(310)를 포함할 수 있다는 것을 나타내고 있다. 단계(310)는 초기의 세트 내의 하나 이상의 데이터 변경들 각각에 표준값을 할당하는 단계를 포함한다. 예를 들어, 본 명세서에서 전술한 바와 같이, 복제 에이전트(130)는 한번에 하나의 파일 또는 하나의 블록을 대응하는 섀도 복사본 저장 공간(예를 들어, 145)에 전달하도록 구성될 수 있는데, 그 이유는 이용가능한 미사용 공간이 얼마나 되는지를 계속적으로 결정하기 때문이다. 따라서, 처음에, 복제 에이전트는 하나 이상의 데이터 업데이트의 세트에서 최초 파일을 가져와서 그 파일에 몇개의 블록값을 할당해야 하는지를 결정할 수 있다(예를 들어, 첨부 파일에 대해 한 블록, 변경된/수정된 기존의 블록에 대해 한 블록, 기타 등등).
그에 부가하여, 도 3은 이 방법이 이용가능한 섀도 복사본 저장 공간을 계산하는 단계(320)를 포함할 수 있다는 것을 나타내고 있다. 단계(320)는, 백업 볼륨에 저장된 유효한 섀도 복사본을 보존하기 위해 백업 볼륨에서의 이용가능한 섀도 복사본 저장 공간의 양이 과소 평가되도록 그 양을 계산하는 단계를 포함한다. 예를 들어, 복제 에이전트(130)는 미사용 공간이 얼마나 되는지를 알기 위해 섀도 복사본 저장 공간으로 "파일"(본 명세서에서 이해되는 바와 같음)을 전달하기 시작할 때마다 일상적으로 볼륨 섀도 복사본 서비스에 질의를 할 수 있다. 즉, 복제 에이전트(130)가 일반적으로 데이터를 주 데이터 백업에 직접 전달하고 또 섀도 복사본 데이터를 섀도 복사본 저장 공간에 전달하기 위해 볼륨 섀도 복사본 서비스(도시 생략)을 사용하지만, 복제 에이전트(130)는 이용가능한 미사용 공간에 대해 볼륨 섀도 복사본 서비스에 질의를 할 수 있다. 복제 에이전트(130)는 또한 작업 서버(105)로부터 수신되는 몇개의 파일 세트마다 이용가능한 미사용 공간에 대해 단순히 볼륨 섀도 복사본 서비스에 질의를 할 수 있고 미사용 공간의 어떤 부분을 안전한 것으로 간주할 수 있다.
단계(320)가 이 단계를 달성하기 위한 임의의 수 또는 순서의 대응하는 동작들을 포함할 수 있지만, 적어도 하나의 구현예에서, 단계(320)는 하나 이상의 데이터 변경들의 제1 바이트 블록을 식별하는 단계, 이용가능한 미사용 섀도 복사본 저장 공간의 양을 볼륨 섀도 복사본 서비스에 요청하는 단계, 하나 이상의 데이터 변경들의 제2 바이트 블록을 식별하는 단계, 및 이용가능한 미사용 섀도 복사본 저장 공간의 양을 볼륨 섀도 복사본 서비스에 또다시 요청하는 단계를 포함한다. 다른 대안으로서, 단계(320)는 이용가능한 미사용 섀도 복사본 저장 공간의 양을 식별하는 단계, 식별된 미사용 공간의 감소된 부분을 안전한 것으로 설정하는 단계, 및 제1 복수의 데이터 변경들에 대응하는 표준값들을 합산하여 이 제1 복수의 데이터 변경들의 총 크기를 결정하는 단계를 포함할 수 있다.
도 3은 또한 이 방법이 식별된 블록값을 계산된 저장 공간과 비교하는 단계(330)를 포함할 수 있다는 것을 나타내고 있다. 단계(330)는 하나 이상의 데이터 변경들의 초기 세트의 표준값이 백업 볼륨에서의 이용가능한 섀도 복사본 저장 공간의 계산된 양보다 작은지를 확인하는 단계를 포함한다. 예를 들어, 복제 에이전트(130)는 초기 파일 또는 파일 세트에 대한 변경들[예를 들어, 작업 서버(105) 로부터 수신된 모든 변경들 중 일부 변경들]의 총 크기가 이용가능한 미사용 공간에 대한 즉석 질의 결과보다 작은지 안전한 섀도 복사본 저장 공간의 양에 들어가는 것으로 이전에 간주되었던 것보다 작은지를 판정한다.
게다가, 도 3은 또한 이 방법이 수신된 데이터를 백업 볼륨에 적용하는 단계(340)을 포함한다는 것을 나타내고 있다. 단계(340)는 유효한 섀도 복사본이 만료 전에 섀도 복사본 저장 볼륨에 남아 있도록 하나 이상의 데이터 변경들의 초기 세트를 백업 볼륨에 적용하는 단계를 포함한다. 예를 들어, 식별된 미사용 공간 또는 안전한 미사용 공간의 양 내에 적절히 들어가는 경우, 복제 에이전트(130)는 단순히 작업 서버로부터 수신된 초기 파일(또는 파일들의 세트)을 백업 볼륨 내의 미사용 공간(예를 들어, 147)으로 전달할 수 있다. 다른 대안으로서, 그렇게 하는 것이 백업 볼륨으로부터의 기존의 유효한 섀도 복사본의 삭제를 야기하는 경우, 복제 에이전트(130)는 전술한 바와 같이 이것에 대응하기 위해 경보를 발생하거나 다른 자동적인 조치를 취할 수 있다.
그에 따라, 본 발명의 구현예들은 섀도 복사본이 너무 일찍 삭제될 위험 없이 섀도 복사본이 그의 유효 기간에 걸쳐 유지될 수 있게 해주는 다수의 컴포넌트, 개요 및 방법을 제공한다. 상세하게는, 본 발명의 구현예들은 다양한 대안의 관점(즉, 변경들의 총 크기, 섀도 복사본 저장 공간의 연속적인 모니터링, 및 섀도 복사본 저장 공간의 유용한 추정)에서 볼 때 이들 문제가 처리될 수 있게 해주는 다양한 메카니즘을 제공한다. 게다가, 본 발명의 구현예들은 2개의 서버 간에 데이터 크기 측정의 일관성을 보장하고 다양한 동기화 프로세스를 통해 시간에 따라 증가할 수 있는 근사화 오차를 감소시키기 위한 다수의 메카니즘을 제공한다. 그 자체로서, 본 발명의 구현예들은 종래에 이용가능한 것보다 훨씬 더 효율적이고 신뢰성있는 섀도 복사본 백업 메카니즘을 제공한다.
본 발명의 실시예들은, 이하에서 더 상세히 기술되는 바와 같이, 다양한 컴퓨터 하드웨어를 포함하는 전용 또는 범용 컴퓨터를 포함할 수 있다. 상세하게는, 본 발명의 범위 내의 실시예들은 또한 컴퓨터 실행가능 명령어 또는 데이터 구조를 담고 있거나 저장하고 있는 컴퓨터 판독가능 매체를 포함한다. 이러한 컴퓨터 판독가능 매체는 범용 또는 전용 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다.
제한이 아닌 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM, 또는 기타 광 디스크 저장 장치, 자기 디스크 저장 장치, 또는 기타 자기 저장 장치, 또는 원하는 프로그램 코드 수단을 컴퓨터 실행가능 명령어 또는 데이터 구조의 형태로 담고 있거나 저장하는 데 사용될 수 있고 범용 또는 전용 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 정보가 네트워크 또는 다른 통신 접속(유선, 무선, 또는 유선과 무선의 조합)을 통해 컴퓨터로 전송 또는 제공될 때, 컴퓨터가 이 접속을 컴퓨터 판독가능 매체로 보아도 무방하다. 따라서, 이러한 접속을 컴퓨터 판독가능 매체라고 해도 무방하다. 상기한 것들의 조합도 컴퓨터 판독가능 매체의 범위 내에 포함되는 것으로 보아야 한다.
컴퓨터 실행가능 명령어는, 예를 들어, 범용 컴퓨터, 전용 컴퓨터, 또는 전용 프로세싱 장치로 하여금 어떤 기능 또는 일군의 기능을 수행하게 하는 명령어 및 데이터를 포함한다. 본 발명이 구조적 특징들 및/또는 방법적 동작들과 관련하여 기술되어 있지만, 첨부된 청구항들에 정의된 발명 대상이 상기한 구체적인 특징들 또는 동작들에 꼭 한정되는 것은 아니라는 것을 잘 알 것이다. 오히려, 상기한 구체적인 특징들 및 동작들은 청구항들을 구현하는 예시적인 형태로서 기술된 것이다.
본 발명은 그의 정신 또는 필수적인 특징을 벗어나지 않고 다른 구체적인 형태로 구현될 수 있다. 기술된 실시예들은 모든 점에서 제한이 아닌 예로서만 보아야만 한다. 따라서, 본 발명의 범위는 이상의 설명에 의해서가 아니라 첨부된 청구항들에 의해 나타내어진다. 청구항들의 등가성의 의미 및 범위 내에 속하는 모든 변경들이 본 발명의 범위 내에 속하는 것으로 보아야 한다.
Claims (20)
- 작업 서버(production server)에서의 데이터 변경들에 대한 결정을 컴퓨터화된 시스템의 하나 이상의 백업 볼륨에서의 이용가능한 섀도 복사본 저장 공간(shadow copy storage space)과 상관시키는 방법으로서, 백업 서버는 데이터 백업 및 대응되는 업데이트를 하나 이상의 백업 볼륨에 적용하고, 상기 방법은,작업 서버에서 하나 이상의 데이터 변경들의 세트를 식별하는 단계,섀도 복사본 저장 볼륨(shadow copy storage volume)에 적용될 상기 세트 내의 변경들의 총 사이즈(total size)를 결정하는 단계,상기 섀도 복사본 저장 볼륨에서의 이용가능한 섀도 복사본 저장 공간의 사이즈를 식별하는 단계,상기 섀도 복사본 저장 공간의 상기 식별된 크기가 상기 변경들의 결정된 사이즈보다 크거나 같은 경우, 상기 식별된 이용가능한 섀도 복사본 저장 공간에 상기 하나 이상의 데이터 변경들의 세트를 적용하는 단계를 포함하며,상기 세트 내의 변경들의 총 사이즈를 결정하는 단계는,상기 세트의 새로운 파일 각각의 데이터 부분 각각과 상기 세트 내의 파일들에 첨부된 데이터 부분 각각에 표준값을 할당하는 단계와,덮어쓰기(overwritten)된 파일 각각에 상기 표준값을 할당하는 단계와,상기 세트 내의 파일에서 변경된 메타데이터 부분 각각에 상기 표준값을 할당하는 단계와,변경들의 상기 총 사이즈를 결정하기 위해 각각의 할당된 표준값을 합산하는 단계를 포함하는,데이터 변경들에 대한 결정을 섀도 복사본 저장 공간과 상관시키는 방법.
- 제1항에 있어서,상기 섀도 복사본 저장 볼륨에서의 이용가능한 섀도 복사본 저장 공간의 사이즈를 식별하는 단계는 볼륨 섀도 복사본 서비스에 이용가능한 섀도 복사본 저장 공간의 사이즈를 요청하는 단계를 포함하는데이터 변경들에 대한 결정을 섀도 복사본 저장 공간과 상관시키는 방법.
- 삭제
- 제1항에 있어서,상기 표준값이 상기 하나 이상의 데이터 변경들의 세트에서 변경된 각각의 바이트 블록에 할당되도록 상기 데이터 부분은 바이트 블록인데이터 변경들에 대한 결정을 섀도 복사본 저장 공간과 상관시키는 방법.
- 제1항에 있어서,상기 식별된 이용가능한 섀도 복사본 저장 공간에 상기 하나 이상의 데이터 변경들의 세트를 적용하는 단계는,상기 이용가능한 섀도 복사본 공간에서의 미사용 공간(free space)의 양을 식별하는 단계, 및상기 변경들의 총 사이즈를 상기 식별된 미사용 공간과 비교하는 단계를 포함하는데이터 변경들에 대한 결정을 섀도 복사본 저장 공간과 상관시키는 방법.
- 제5항에 있어서,상기 미사용 공간의 양이 적어도 상기 변경들의 상기 총 사이즈(total size)보다 크거나 같음을 식별하는 단계, 및상기 하나 이상의 데이터 변경들의 세트를 상기 식별된 미사용 공간에 자동적으로 적용하는 단계를 더 포함하는데이터 변경들에 대한 결정을 섀도 복사본 저장 공간과 상관시키는 방법.
- 제5항에 있어서,상기 미사용 공간의 양이 상기 변경들의 총 사이즈를 수용하기에 불충분함을 식별하는 단계를 더 포함하는,데이터 변경들에 대한 결정을 섀도 복사본 저장 공간과 상관시키는 방법.
- 제7항에 있어서,만료된 하나 이상의 섀도 복사본을 자동적으로 삭제하는 단계, 및상기 하나 이상의 데이터 변경들의 세트를 상기 식별된 미사용 공간에 자동적으로 적용하는 단계를 더 포함하는데이터 변경들에 대한 결정을 섀도 복사본 저장 공간과 상관시키는 방법.
- 제6항에 있어서,추가적인 조치를 위한 경보(alert)를 발생하는 단계를 더 포함하며,상기 경보는,(i) 삭제될 수 있는 하나 이상의 섀도 복사본의 추천, 및(ii) 상기 이용가능한 섀도 복사본 저장 공간의 사이즈를 증가시키라는 추천 중 적어도 하나를 포함하는데이터 변경들에 대한 결정을 섀도 복사본 저장 공간과 상관시키는 방법.
- 제1항에 있어서,상기 백업 서버는 상기 백업 서버에서 상기 하나 이상의 백업 볼륨을 모니터링하도록 구성된 볼륨 필터 드라이버(volume filter driver)를 더 포함하고,상기 볼륨 필터 드라이버는 상기 하나 이상의 백업 볼륨 중 임의의 볼륨에 기입하도록 허가된 유일한 프로세스인데이터 변경들에 대한 결정을 섀도 복사본 저장 공간과 상관시키는 방법.
- 제10항에 있어서,상기 볼륨 필터 드라이버는,식별된 이용가능한 섀도 복사본 저장 공간의 양에 제1 값을 할당하는 단계,적어도 부분적으로 상기 하나 이상의 데이터 변경들 각각이 이전 데이터의 덮어쓰기를 포함하는 것으로 가정함으로써 상기 세트의 변경들의 총 사이즈를 결정하는 단계,상기 제1 값으로부터 상기 변경들의 총 사이즈를 감소시키는 단계, 및상기 제1 값을 0으로 감소시킬 때, 상기 섀도 복사본 저장 볼륨에의 임의의 기입을 중지하는 단계를 수행하도록 구성되는데이터 변경들에 대한 결정을 섀도 복사본 저장 공간과 상관시키는 방법.
- 컴퓨터 실행가능 코드가 저장된 컴퓨터 판독가능 기록 매체로서, 백업 서버가 데이터 백업 및 대응되는 업데이트를 하나 이상의 백업 볼륨에 적용하는 컴퓨터화된 시스템에서 실행되었을 때, 상기 백업 서버의 하나 이상의 프로세서로 하여금 제1항, 제2항 및 제4항 내지 제11항 중 어느 한 항에 따른 방법을 수행하도록 하는, 컴퓨터 판독가능 기록 매체.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN1285DE2006 | 2006-05-29 | ||
IN1285/DEL/2006 | 2006-05-29 | ||
US11/458,552 | 2006-07-19 | ||
US11/458,552 US7461223B2 (en) | 2006-05-29 | 2006-07-19 | Retaining shadow copy data during replication |
PCT/IB2007/002986 WO2008020310A2 (en) | 2006-05-29 | 2007-04-26 | Retaining shadow copy data during replication |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090020583A KR20090020583A (ko) | 2009-02-26 |
KR101491861B1 true KR101491861B1 (ko) | 2015-02-23 |
Family
ID=38750852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020087028913A KR101491861B1 (ko) | 2006-05-29 | 2007-04-26 | 복제 동안 섀도 복사본 데이터의 유지를 위한 방법 및 컴퓨터 프로그램 제품 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7461223B2 (ko) |
EP (2) | EP2033098B1 (ko) |
JP (1) | JP5129245B2 (ko) |
KR (1) | KR101491861B1 (ko) |
CN (1) | CN101460931B (ko) |
AT (1) | ATE503224T1 (ko) |
DE (1) | DE602007013397D1 (ko) |
WO (1) | WO2008020310A2 (ko) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7913043B2 (en) * | 2004-05-14 | 2011-03-22 | Bakbone Software, Inc. | Method for backup storage device selection |
KR101342914B1 (ko) * | 2006-11-21 | 2013-12-19 | 삼성전자주식회사 | 파일 복원기능을 구비한 전자장치 및 그 방법 |
US20080201455A1 (en) * | 2007-02-15 | 2008-08-21 | Husain Syed M Amir | Moving Execution of a Virtual Machine Across Different Virtualization Platforms |
US9043391B2 (en) | 2007-02-15 | 2015-05-26 | Citrix Systems, Inc. | Capturing and restoring session state of a machine without using memory images |
JP2009015476A (ja) * | 2007-07-03 | 2009-01-22 | Hitachi Ltd | Cdpリモート構成におけるジャーナル管理方法 |
US20090106155A1 (en) * | 2007-10-19 | 2009-04-23 | Castellanos Marcos | System and Method for Archival of Electronic and Tangible Records |
US8244868B2 (en) * | 2008-03-24 | 2012-08-14 | International Business Machines Corporation | Thin-provisioning adviser for storage devices |
US8412905B2 (en) * | 2009-01-01 | 2013-04-02 | Sandisk Il Ltd. | Storage system having secondary data store to mirror data |
US8812436B2 (en) * | 2010-05-04 | 2014-08-19 | Symantec Corporation | Schedule based data lifecycle management |
JP5975577B2 (ja) | 2011-03-04 | 2016-08-23 | 株式会社糖鎖工学研究所 | シアル酸含有糖鎖の製造方法 |
US8966382B1 (en) * | 2012-09-27 | 2015-02-24 | Emc Corporation | Managing production and replica copies dynamically |
US9851989B2 (en) | 2012-12-12 | 2017-12-26 | Vmware, Inc. | Methods and apparatus to manage virtual machines |
US9372638B1 (en) * | 2013-02-08 | 2016-06-21 | Veritas Technologies Llc | Systems and methods for backing up virtual machine data |
CN104216793B (zh) * | 2013-05-31 | 2017-10-17 | 国际商业机器公司 | 应用程序备份、恢复的方法及设备 |
US10216631B1 (en) | 2013-09-05 | 2019-02-26 | United Services Automobile Association (Usaa) | Revising cache expiration |
US9495238B2 (en) | 2013-12-13 | 2016-11-15 | International Business Machines Corporation | Fractional reserve high availability using cloud command interception |
US9246840B2 (en) | 2013-12-13 | 2016-01-26 | International Business Machines Corporation | Dynamically move heterogeneous cloud resources based on workload analysis |
US10372546B2 (en) | 2014-02-07 | 2019-08-06 | International Business Machines Corporation | Creating a restore copy from a copy of source data in a repository having source data at different point-in-times |
US10176048B2 (en) * | 2014-02-07 | 2019-01-08 | International Business Machines Corporation | Creating a restore copy from a copy of source data in a repository having source data at different point-in-times and reading data from the repository for the restore copy |
US11194667B2 (en) | 2014-02-07 | 2021-12-07 | International Business Machines Corporation | Creating a restore copy from a copy of a full copy of source data in a repository that is at a different point-in-time than a restore point-in-time of a restore request |
US11169958B2 (en) | 2014-02-07 | 2021-11-09 | International Business Machines Corporation | Using a repository having a full copy of source data and point-in-time information from point-in-time copies of the source data to restore the source data at different points-in-time |
US9836357B1 (en) | 2014-04-25 | 2017-12-05 | Veritas Technologies Llc | Systems and methods for backing up heterogeneous virtual environments |
US10387446B2 (en) | 2014-04-28 | 2019-08-20 | International Business Machines Corporation | Merging multiple point-in-time copies into a merged point-in-time copy |
US9413824B1 (en) | 2015-01-30 | 2016-08-09 | Dropbox, Inc. | Storage constrained synchronization of content items based on predicted user access to shared content items using retention scoring |
US10831715B2 (en) | 2015-01-30 | 2020-11-10 | Dropbox, Inc. | Selective downloading of shared content items in a constrained synchronization system |
US9563638B2 (en) | 2015-01-30 | 2017-02-07 | Dropbox, Inc. | Selective downloading of shared content items in a constrained synchronization system |
US10248705B2 (en) | 2015-01-30 | 2019-04-02 | Dropbox, Inc. | Storage constrained synchronization of shared content items |
US9361349B1 (en) | 2015-01-30 | 2016-06-07 | Dropbox, Inc. | Storage constrained synchronization of shared content items |
US9185164B1 (en) | 2015-01-30 | 2015-11-10 | Dropbox, Inc. | Idle state triggered constrained synchronization of shared content items |
US10140055B2 (en) * | 2015-12-21 | 2018-11-27 | Memory Technologies Llc | Ensuring that memory device actions are valid using reference values |
US10049145B2 (en) | 2016-04-25 | 2018-08-14 | Dropbox, Inc. | Storage constrained synchronization engine |
JP6570761B2 (ja) * | 2016-04-25 | 2019-09-04 | ドロップボックス, インコーポレイテッド | ストレージ制約付きの同期エンジン |
US10719532B2 (en) | 2016-04-25 | 2020-07-21 | Dropbox, Inc. | Storage constrained synchronization engine |
US10515226B2 (en) * | 2016-11-21 | 2019-12-24 | Dell Products, L.P. | Systems and methods for protected local backup |
CN108664354A (zh) * | 2017-04-01 | 2018-10-16 | 华为技术有限公司 | 一种数据镜像方法及存储系统 |
US10613946B2 (en) | 2017-11-30 | 2020-04-07 | International Business Machines Corporation | Device reservation management for overcoming communication path disruptions |
US10282258B1 (en) | 2017-11-30 | 2019-05-07 | International Business Machines Corporation | Device reservation state preservation in data mirroring |
US10521147B2 (en) | 2017-11-30 | 2019-12-31 | International Business Machines Corporation | Device reservation state synchronization in data mirroring |
EP3788466A1 (en) * | 2018-04-30 | 2021-03-10 | Amazon Technologies Inc. | Distributed replica for block storage systems |
KR20220117569A (ko) * | 2021-02-17 | 2022-08-24 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 제어 방법 |
US11775558B1 (en) * | 2022-04-11 | 2023-10-03 | Fmr Llc | Systems and methods for automatic management of database data replication processes |
US11675812B1 (en) | 2022-09-29 | 2023-06-13 | Fmr Llc | Synchronization of metadata between databases in a cloud computing environment |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5664186A (en) | 1992-05-21 | 1997-09-02 | International Business Machines Corporation | Computer file management and backup system |
US6145049A (en) | 1997-12-29 | 2000-11-07 | Stmicroelectronics, Inc. | Method and apparatus for providing fast switching between floating point and multimedia instructions using any combination of a first register file set and a second register file set |
JP2005108133A (ja) * | 2003-10-02 | 2005-04-21 | Hitachi Ltd | 複製データの管理方法、装置、及びプログラム |
KR20060050609A (ko) * | 2004-09-09 | 2006-05-19 | 마이크로소프트 코포레이션 | 데이터 보호 시스템에서 강건하고 관리하기 쉬운 데이터보호 애플리케이션들을 생성하기 위한 아키텍쳐 모델을만드는 방법, 시스템 및 장치 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4459658A (en) * | 1982-02-26 | 1984-07-10 | Bell Telephone Laboratories Incorporated | Technique for enabling operation of a computer system with a consistent state of a linked list data structure after a main memory failure |
US7174352B2 (en) * | 1993-06-03 | 2007-02-06 | Network Appliance, Inc. | File system image transfer |
DE69413977T2 (de) * | 1993-07-01 | 1999-03-18 | Legent Corp., Pittsburgh, Pa. | Anordnung und verfahren zur verteilten datenverwaltung in vernetzten rechnersystemen |
US5799141A (en) * | 1995-06-09 | 1998-08-25 | Qualix Group, Inc. | Real-time data protection system and method |
US5870537A (en) * | 1996-03-13 | 1999-02-09 | International Business Machines Corporation | Concurrent switch to shadowed device for storage controller and device errors |
US6088694A (en) * | 1998-03-31 | 2000-07-11 | International Business Machines Corporation | Continuous availability and efficient backup for externally referenced objects |
US6473775B1 (en) * | 2000-02-16 | 2002-10-29 | Microsoft Corporation | System and method for growing differential file on a base volume of a snapshot |
US6934822B2 (en) * | 2002-08-06 | 2005-08-23 | Emc Corporation | Organization of multiple snapshot copies in a data storage system |
GB2411030B (en) * | 2002-11-20 | 2006-03-22 | Filesx Ltd | Fast backup storage and fast recovery of data (FBSRD) |
US7730033B2 (en) * | 2003-06-13 | 2010-06-01 | Microsoft Corporation | Mechanism for exposing shadow copies in a networked environment |
US7567991B2 (en) * | 2003-06-25 | 2009-07-28 | Emc Corporation | Replication of snapshot using a file system copy differential |
US6959313B2 (en) * | 2003-07-08 | 2005-10-25 | Pillar Data Systems, Inc. | Snapshots of file systems in data storage systems |
US7203708B2 (en) * | 2003-11-06 | 2007-04-10 | Microsoft Corporation | Optimizing file replication using binary comparisons |
US9075851B2 (en) * | 2003-12-09 | 2015-07-07 | Emc Corporation | Method and apparatus for data retention in a storage system |
JP4225206B2 (ja) * | 2004-01-23 | 2009-02-18 | 日本電気株式会社 | 記憶装置の複製データ格納システムと複製データ格納プログラム |
US7756833B2 (en) * | 2004-09-22 | 2010-07-13 | Microsoft Corporation | Method and system for synthetic backup and restore |
US7483926B2 (en) * | 2005-04-01 | 2009-01-27 | Microsoft Corporation | Production server to data protection server mapping |
-
2006
- 2006-07-19 US US11/458,552 patent/US7461223B2/en active Active
-
2007
- 2007-04-26 JP JP2009512709A patent/JP5129245B2/ja active Active
- 2007-04-26 DE DE602007013397T patent/DE602007013397D1/de active Active
- 2007-04-26 EP EP07825302A patent/EP2033098B1/en active Active
- 2007-04-26 EP EP10016062A patent/EP2299361B1/en active Active
- 2007-04-26 WO PCT/IB2007/002986 patent/WO2008020310A2/en active Application Filing
- 2007-04-26 CN CN2007800202618A patent/CN101460931B/zh active Active
- 2007-04-26 KR KR1020087028913A patent/KR101491861B1/ko active IP Right Grant
- 2007-04-26 AT AT07825302T patent/ATE503224T1/de not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5664186A (en) | 1992-05-21 | 1997-09-02 | International Business Machines Corporation | Computer file management and backup system |
US6145049A (en) | 1997-12-29 | 2000-11-07 | Stmicroelectronics, Inc. | Method and apparatus for providing fast switching between floating point and multimedia instructions using any combination of a first register file set and a second register file set |
JP2005108133A (ja) * | 2003-10-02 | 2005-04-21 | Hitachi Ltd | 複製データの管理方法、装置、及びプログラム |
KR20060050609A (ko) * | 2004-09-09 | 2006-05-19 | 마이크로소프트 코포레이션 | 데이터 보호 시스템에서 강건하고 관리하기 쉬운 데이터보호 애플리케이션들을 생성하기 위한 아키텍쳐 모델을만드는 방법, 시스템 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
EP2033098A4 (en) | 2010-01-13 |
CN101460931B (zh) | 2012-06-06 |
WO2008020310A2 (en) | 2008-02-21 |
KR20090020583A (ko) | 2009-02-26 |
EP2033098B1 (en) | 2011-03-23 |
EP2033098A2 (en) | 2009-03-11 |
EP2299361B1 (en) | 2012-05-23 |
US20070277010A1 (en) | 2007-11-29 |
CN101460931A (zh) | 2009-06-17 |
EP2299361A1 (en) | 2011-03-23 |
WO2008020310A3 (en) | 2008-07-24 |
JP5129245B2 (ja) | 2013-01-30 |
JP2009539162A (ja) | 2009-11-12 |
US7461223B2 (en) | 2008-12-02 |
DE602007013397D1 (de) | 2011-05-05 |
ATE503224T1 (de) | 2011-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101491861B1 (ko) | 복제 동안 섀도 복사본 데이터의 유지를 위한 방법 및 컴퓨터 프로그램 제품 | |
US11507305B2 (en) | Concurrently performing normal system operations and garbage collection | |
US20210342264A1 (en) | Scalable garbage collection for deduplicated storage | |
US11409652B2 (en) | Estimating worker nodes needed for performing garbage collection operations | |
US7953946B2 (en) | Controlled anticipation in creating a shadow copy | |
US8069326B2 (en) | Relocation system and a relocation method | |
US8434078B2 (en) | Quick deployment method | |
US8677369B2 (en) | System and method for allocating virtual resources to application based on the connectivity relation among the virtual resources | |
US9519653B2 (en) | Techniques for efficiently enforcing resource quotas in a multi-tenant cloud storage system | |
US7778959B2 (en) | Protecting storages volumes with mock replication | |
US11392490B2 (en) | Marking impacted similarity groups in garbage collection operations in deduplicated storage systems | |
US10705876B2 (en) | Operation management system and operation management method | |
EP3951607A1 (en) | Data reading method, data writing method, and server | |
JP2003323224A (ja) | ライセンス管理システムおよび方法、情報処理装置および方法、並びにプログラム | |
CN103605585A (zh) | 一种基于数据发现的智能备份方法 | |
US20200310965A1 (en) | Deleting data in storage systems that perform garbage collection | |
US11829630B2 (en) | Synthetically providing multiple types of granular delete operations for a cloud-based object storage | |
US20080276243A1 (en) | Resource Management Platform | |
US11500663B1 (en) | Predictive virtual machine launch-based capacity management | |
US12026377B2 (en) | Method to implement and enforce a cost-based quota for cloud operations in backup servers based on allowed cloud budget | |
CN116226201A (zh) | 数据库表空间的在线重组方法、装置、设备和介质 |
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: 20180118 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190116 Year of fee payment: 5 |