KR20190062197A - 연속 데이터 관리 시스템 및 방법 - Google Patents

연속 데이터 관리 시스템 및 방법 Download PDF

Info

Publication number
KR20190062197A
KR20190062197A KR1020180139063A KR20180139063A KR20190062197A KR 20190062197 A KR20190062197 A KR 20190062197A KR 1020180139063 A KR1020180139063 A KR 1020180139063A KR 20180139063 A KR20180139063 A KR 20180139063A KR 20190062197 A KR20190062197 A KR 20190062197A
Authority
KR
South Korea
Prior art keywords
data
snapshot
file
service node
module
Prior art date
Application number
KR1020180139063A
Other languages
English (en)
Other versions
KR102089710B1 (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 주식회사 데이타커맨드
Priority to US16/201,866 priority Critical patent/US11138156B2/en
Publication of KR20190062197A publication Critical patent/KR20190062197A/ko
Application granted granted Critical
Publication of KR102089710B1 publication Critical patent/KR102089710B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems

Landscapes

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

Abstract

본 발명에 따른 연속 데이터 관리(CDM) 시스템의 동작 방법은: 서비스 노드의 데이터를 입출력 system call 단위로 실시간으로 이중화시키는 단계, 및 상기 이중화된 데이터를 근거로 하여 데이터 관리 정책 모듈에 의해 통합적으로 데이터를 관리하는 단계를 포함하고, 상기 데이터 관리 정책 모듈은, 상기 서비스 노드의 데이터 중에서 관리 대상 데이터를 선택하고, 상기 선택된 데이터에 대한 관리 정책을 설정하는 것을 특징으로 한다.

Description

연속 데이터 관리 시스템 및 방법{CONTINOUS DATA MANGEMENT SYSTEM AND METHOD}
본 발명은 연속 데이터 관리 시스템 및 방법에 관한 것이다. 보다 구체적으로는 서비스 노드의 변경 데이터를 실시간으로 전송 받아, 서비스 노드에 데이터 관리에 요구되는 부하를 주지 않고, 데이터 항시 가용성을 제공하기 위한 통합 데이터 관리 시스템에 관한 것이다.
클라우드(cloud), HCI(Hyper-Converged Infrastructure) 등과 같은 다양한 IT 서비스 환경의 활용과 더불어 AI, IoT, Big Data, 게놈 분석 등으로 대표되는 data-driven 시대의 도래로 다양한 유형의 데이터가 폭발적으로 증가하고 있으며, IT 서비스의 데이터 의존성 또한 날이 갈수록 심화되고 있다.
2014년 Global IT Study 발표에 따르면 데이터 손실과 (data loss) 서비스 downtime으로 인한 기업의 손실은 연간 약 2,000조 원에 달하며, 2012년 ~ 2014년 데이터 손실 증가율은 400% 에 이르러, 심지어 기업이 도산하는 경우도 발생하고 있다. 또한 데이터의 폭발적인 증가로 이러한 추세는 더 심화될 것으로 전망하고 있다. 따라서, 중단 없는 비즈니스 서비스를 위해 데이터는 항시 사용 가능하도록 관리되어야 하며, 이는 기업의 생존이 달린 문제라 할 수 있다.
“데이터의 항시 가용성 (data always available)” 제공은 데이터 관리의 (Data Management) 궁극적인 목표이며, 이러한 목표를 이루기 위해 그 동안 데이터 관리 분야의 market leader 업체의 대부분은 데이터 관리 용도에 따라 다양한 제품을 개발하여 공급하였다. 그러나, 이들 제품의 대부분은 기존의 제품에 필요한 기능을 더하는 방식 등의 임시 해결책으로 (stopgap solution) 기존 제품이 가지고 있는 근본적인 문제를 해결하기보단 미봉책에 머물렀다. 결과적으로 기업체에서는 중요한 데이터 관리를 위해 데이터 백업/복구, DR (Disaster Recovery) 등 필요에 따라 여러 제품을 구매하여 운영하게 되었고, 이에 따라 데이터 관리 환경은 점점 복잡해져 IT 서비스 환경 및 데이터 관리하기가 점점 어려워지고 있다. 그럼에도 불구하고 기존 제품이 가지고 있는 근본적인 문제가 해결되지 않아 데이터의 항시 가용성을 제공하지 못하고 있다.
기존 데이터 관리 분야의 market leader 제품은 tape를 기반으로 한 데이터 백업/복구 제품이 주류를 이루었으며, 이후 개발된 다른 용도의 모든 제품 또한 tape 기반기술에 뿌리를 두고 있다. Tape를 기반으로 한 market leader 제품은 대부분 30년 이상 오래된 제품으로, core 기술은 변하지 않은 상태에서, 요구에 따라 새로운 기능만을 추가하는 방식으로 유지해 옴에 따라 제품의 코드가 거대하고 오래되어, 성능은 물론 기능 측면에서 새로운 요구사항 및 변화에 대한 대응이 어렵다.
전통적인 데이터 관리 제품을 채택하여 사용하는 기업들을 대상으로, 2016년 IDC가 조사한 End-User Survey에 따르면, 데이터 관리 작업이 복잡하고 어렵고, 작업시간이 너무 오래 걸리며, 데이터 관리를 위해 요구되는 스토리지가 과다하며, 데이터 복구가 불안하여 데이터의 항시 가용성 제공이 어렵다는 것이 공통적인 불만이었다. 즉, 기존 방식의 데이터 관리 기술은 한계점에 달한 상황이며, data-driven 시대에 맞는 통합 데이터 관리 기술의 개발을 통하여 다음과 같은 요구사항을 만족시켜야 한다: 1) 데이터 관리를 위한 별도의 시간이 주어지지 않는 상황에서 24 x 365 서비스를 보장하는 데이터 관리, 2)서비스의 성능 저하를 최소화하는 데이터 관리, 3) 데이터의 손실 및 복구 시간을 최소화 할 수 있는 데이터 관리, 4) 랜섬웨어 등으로부터의 데이터 보호 및 복구가 가능한 데이터 관리, 5) 테스트, 데이터 분석 등 응용 서비스의 필요에 따라 제공하여야 하는 별도의 데이터 copy 본 생성을 최소화 하여 저장 공간의 효율성을 높이는 데이터 관리, 6) 1/1,000 초 단위의 시점 복구가 가능한 데이터 관리, 7) 간단하고, 자동적이며 통합적인 데이터 관리(데이터 관리 관점에 따라 여러 제품을 사용하여야 하는 복잡하고 고비용인 데이터 관리 인프라 제거)
등록특허: 10-1024249, 등록일: 2011년 3월 16일, 제목: 실시간 데이터 복제 시스템. 등록특허: 10-1078586, 등록일: 2011년 10월 25일, 제목: 데이터 처리 장치 및 데이터 처리 방법. 등록특허: 10-1237746, 등록일: 2013년 2월 21일, 제목: 데이터 백업 장치 및 방법. 미국등록특허: US 8,869,139, 등록일: 2014년 10월 21일, 제목: SYSTEM AND METHOD FOR CONVERTING A PHYSICAL DISK TO VIRTUAL DISK.
본 발명의 목적은 데이터 항시 가용성을 제공하여 24x365 서비스를 보장하고, 서비스 노드에 미치는 영향을 최소화하며 자동적이며 통합적인 데이터 관리가 가능한 Continuous Data Management (CDM) 시스템 및 그것의 동작 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 연속 데이터 관리 시스템은 서비스 노드의 데이터를 입출력 system call 단위로 실시간으로 이중화하고, 이중화된 데이터를 기반으로 통합적으로 데이터를 관리할 수 있다. 데이터 실시간 이중화 기술은, 24 x 365 서비스를 보장하는 데이터 관리, 서비스의 성능 저하를 최소화하는 데이터 관리, 데이터의 손실 및 복구시간을 최소화 할 수 있는 데이터 관리를 포함할 수 있다.
데이터 통합 관리 기술은, 서비스 노드에 미치는 영향 없이 데이터의 손실 및 복구시간을 최소화 할 수 있는 데이터 관리, 데이터 분석 작업이 가능한 데이터 관리, 랜섬웨어 등으로부터의 데이터 보호 및 복구가 가능한 데이터 관리, 테스트, 데이터 분석 등 응용 서비스의 필요에 따라 제공하여야 하는 별도의 데이터 copy 본 생성을 최소화하여 저장 공간의 효율성을 높이는 데이터 관리, 및 데이터 관리를 통합적으로 지원할 수 있는 데이터 통합관리를 포함할 수 있다.
본 발명의 실시 예에 따른 연속 데이터 관리(continuous data management; CDM) 시스템의 동작 방법은: 서비스 노드의 데이터를 입출력 system call 단위로 실시간으로 이중화시키는 단계; 및 상기 이중화된 데이터를 근거로 하여 데이터 관리 정책 모듈에 의해 통합적으로 데이터를 관리하는 단계를 포함하고, 상기 데이터 관리 정책 모듈은, 상기 서비스 노드의 데이터 중에서 관리 대상 데이터를 선택하고, 상기 선택된 데이터에 대한 관리 정책을 설정하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 연속 데이터 관리 시스템 및 그것의 동작 방법은, 서비스 노드들과 CDM 시스템은 네트워크를 통하여 연결되며, 네트워크에 연결된 모든 서비스 노드는 CDM 시스템의 Configuration 모듈에 의하여 검색, 나열되고 관리가 필요한 서비스 노드를 등록하여 액세스가 가능한 수단을 제공하고, 이 후 Data Management Policy 모듈은 서비스 노드의 데이터 중 관리가 필요한 데이터를 선택하고 그 데이터에 대한 관리 정책을 설정 할 수 있는 수단을 제공하여 정책에 따라 서비스 노드에 미치는 영향 없이, 그리고 데이터 백업, 복제, DR 등과 같은 별도의 제품 또는 configuration 없이 CDM 시스템 만으로 자동적이고 종합적인 데이터 관리를 수행할 수 있다.
이하에 첨부되는 도면들은 본 실시 예에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 실시 예들을 제공한다. 다만, 본 실시예의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시 예로 구성될 수 있다.
도 1은 Data Flow 관점의 CDM 시스템 구조를 예시적으로 보여주는 도면이다.
도 2는 CDM 시스템의 통합 데이터 관리 구조를 예시적으로 보여주는 도면이다.
도 3은 일반적인 데이터 관리 구조도이다.
도 4는 CDM 시스템 적용시 데이터 관리 구조도이다.
도 5는 Delta Technology: 입출력 system call 단위의 실시간 데이터 복제 방법을 예시적으로 보여주는 도면이다.
도 6은 CDP pool 내 CDP 기능 제공을 위한 자료 구조를 예시적으로 보여주는 도면이다.
도 7은 12시간 주기 CDP를 위한 자료 구조를 예시적으로 보여주는 도면이다.
도 8은 CDP log record 합성을 예시적으로 보여주는 도면이다.
도 9는 영역 기반 B+ tree를 이용한 CDP log record 합성 결과를 예시적으로 보여주는 도면이다.
도 10은 inode data block pointer의 일반적인 구조를 보여주는 도면이다.
도 11은 inode data block pointer의 복제를 예시적으로 보여주는 도면이다.
도 12는 inode data block pointer의 수정을 예시적으로 보여주는 도면이다.
도 13은 상위 레벨 CDM 시스템 구성도이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다.
상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 혹은 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 혹은 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다. 본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함하다" 혹은 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 혹은 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것들의 존재 혹은 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명은 서비스 노드의 데이터를 실시간으로 이중화하고, 이중화된 데이터를 기반으로, 서비스 노드에 미치는 영향 없이, 사용자가 정한 정책에 따라 자동적으로 그리고 통합적으로 데이터를 관리하는 기술을 개시한다.
데이터 실시간 이중화는 데이터 관리를 위한 별도의 시간이 주어지지 않는 상황에서 데이터 가용성을 항시 제공하기 위한 시발점으로 데이터가 생성되는 시점부터 소멸되는 시점까지 데이터의 갱신을 비롯한 모든 operation을 실시간으로 추적하고 관리 할 수 있어야 한다. 데이터 입출력 관련 system call을 실시간으로 추적하여 저장되는 데이터와 함께 데이터에 관련된 정보를 추출 할 수 있다면 데이터의 갱신은 물론 데이터의 생성시점부터 소멸시점까지 데이터 생명주기 전체를 관리할 수 있다. 본 발명에서는 이와 관련된 기술은 특허 등록번호 10-1024249에 개시된 기술을 활용하며, 데이터 생명주기 전체를 추적 할 수 있는 위 특허 기술을 Delta Technology라 부르기로 한다.
본 발명에서 CDM 시스템은 서비스 노드들과 네트워크를 통하여 연결되며 네트워크에 연결된 모든 서비스 노드는 CDM 시스템의 Configuration 모듈에 의하여 검색, 나열되고 관리가 필요한 서비스 노드를 등록하여 액세스가 가능한 수단을 제공한다. 이 후 Data Management Policy 모듈은 서비스 노드의 데이터 중 관리가 필요한 데이터를 선택하고 그 데이터에 대한 관리 정책을 설정 할 수 있는 수단을 제공하여 정책에 따라 서비스 노드에 미치는 영향 없이, 그리고 데이터 백업, 복제, DR 등과 같은 별도의 제품 또는 configuration 없이 CDM 시스템 만으로 자동적이고 종합적인 데이터 관리가 가능하도록 한다.
위와 같은 과정을 거쳐 서비스 노드 별 데이터 관리 정책을 설정한 후, CDM 시스템은 서비스 노드의 데이터를 CDM 시스템으로 초기 동기화 시키는 것으로부터 데이터 관리 업무를 시작한다. 이때, 서비스 노드의 데이터 초기 동기화는 서비스를 멈추지 않은 상태에서 즉, 온라인 상태에서 가장 효율적으로 방법으로 이루어진다.
서비스 노드에 설치되는 CDM agent는 서비스 노드의 데이터를 초기 동기화하기 위하여 먼저 서비스 노드의 디렉토리 스냅샷을 생성한다. 여기서 디렉토리 스냅샷은 서비스 노드의 데이터 파일에 대한 디렉토리 구조와 각 디렉토리에 포함된 파일들의 하드링크들로 구성된다. 이 후 CDM agent는 이들 구조 정보를 CDM 시스템에 전송하고, 스냅샷에 포함된 모든 하드링크들을 스캔하여 파일 데이터에 대한 논리 주소와 맵핑되는 서비스 노드의 스토리지 익스텐트/블록 맵을 생성하고 이들을 물리 주소를 (physical address) 기준으로 정렬한 후 맵핑 정보 또한 CDM 시스템에 전송한다.
CDM agent는 익스텐트/블록에 저장된 데이터를 물리 주소를 기준으로 정렬된 순서대로 읽어, 관리 대상 전체 데이터를 읽는 시간을 최소화 하면서, CDM 시스템에 전송한다. CDM 시스템의 Master Copy모듈은 CDM agent가 전송한 관리대상 데이터 구조를 CDM 시스템에 먼저 복제시킨 후, CDM agent가 전송한 이들 익스텐트/블록 데이터를 맵핑 정보를 이용하여 미리 생성해 놓은 데이터 구조에 복제 시킴으로써 데이터 초기 동기화를 일차적으로 진행한다.
온라인 상태에서 데이터 초기 동기화가 진행되므로 동기화가 진행되는 동안 서비스 노드의 파일 시스템 구조나 데이터의 변경 등이 발생할 수 있으며, 이에 대한 기록은 Delta Technology에 의해 동시에 이루어 진다. CDM agent는 일차적으로 동기화 과정을 진행 시킴과 동시에 Delta Technology에 의해 추적한 데이터 변경 내역을 CDM 시스템에 전송한다. 이렇게 전송된 데이터 변경 내역은 CDM 시스템의 CDP 모듈에 의해 CDP pool에 별도로 저장 관리하며, 일차적으로 초기 동기화가 완료된 후 CDM 시스템의 Snapshot 모듈은 CDP pool에 저장된 CDP log record를 일차적으로 동기화가 완료된 데이터에 반영함으로써 초기 동기화를 완료한다. 초기 동기화가 완료된 데이터는 CDM 시스템의 Master Copy모듈이 관리하며, initial copy라 부른다.
이 후 CDM agent는 서비스 노드에서 변경되는 데이터를 실시간으로 CDM 시스템에 전송하며, 전송된 데이터는 initial copy에 반영하지 않고 CDP 모듈에 의하여 별도로 관리된다 (도 1 참조).
CDP 모듈은 서비스 노드에서 전송된 데이터를 입출력 시스템 콜 단위로, 파일 별로 시간 개념을 더하여 저널 형태로 CDP pool에 저장하여 데이터의 모든 변경 이력을 관리하고 사용자가 원하는 시점 데이터를 다양한 단위로 짧은 시간 내에 복원하여 제공한다. CDP 모듈은 변경된 데이터를 위 저널 형태로 관리하는 것 외에 변경된 파일 및 디렉토리 정보를 별도로 관리하여 데이터 가상화 및 스냅샷을 정리하기 위한 기본 정보로 활용할 수 있도록 한다.
CDP 모듈은 서비스 노드 데이터가 초기 동기화 된 이후의 모든 데이터 변경 이력을 CDP pool에 저장하고 관리하여야 하므로 막대한 양의 CDP pool이 필요하다. 이런 이유로 무한 시간 동안의 데이터 변경 이력을 CDP pool에 저장하여 관리하는 것은 불가능하며, 데이터관리 정책에 기반하여 일정 시간 동안의 데이터 변경 이력만 저장하여 관리한다. 즉, 일정 시간이 경과하면 CDP pool에 저장된 데이터를 정리하여 별도로 관리할 수 있어야 한다.
정책에 따라 정의된 CDP 필요시간 경과 후 CDP pool에 저장된 데이터는 파일 별로 정리되어, 가장 최근의 변경 데이터를 중심으로 정리된다. 이런 과정으로 정리된 데이터를 스냅샷 데이터라 하며, Snapshot 모듈은 스냅샷을 생성하는 역할을 담당한다.
CDP pool에 저장된 데이터는 서비스 노드의 스토리지에 저장된 데이터가 아니라 입출력 시스템 콜 단위로 데이터의 변경 이력을 실시간으로 기록한 것으로, Snapshot 모듈이 생성한 모든 스냅샷은 데이터의 일관성을 유지하고 있다. 그럼에도 불구하고 데이터의 일관성을 유지하기 의하여 특별한 조치가 필요한 application을 위해 Snapshot 모듈은 CDM agent에 스냅샷 생성 신호를 보내고, CDM agent는 서비스 노드의 application에게 적정한 조치를 취하게 한 후 Snapshot 모듈에게 스냅샷을 생성하라는 신호를 전송하여 스냅샷을 생성 할 수 있다. 여기서 CDM agent가 취하는 조치는 단지 application 상태를 동결시키는 행위에 불과한 것으로 application에 미치는 영향이 거의 없다. 즉, Delta Technology를 활용함으로써 cache 된 데이터를 디스크에 저장한다거나 하는 동작이 전혀 필요 없다.
CDP pool에 저장된 데이터는 스냅샷 데이터로 정리되지만 CDP 정책을 항상 보장할 수 있도록 시간의 경과에 따라 CDP pool에 저장된 데이터를 기반으로 스냅샷을 생성 한 후 점진적으로 도 2와 같이 CDP pool에서 삭제한다.
Snapshot 모듈은 CDP 모듈이 생성한 파일 및 디렉토리 정보를 Master Copy 모듈 및 Data Virtualization 모듈과 공유한다. Mater Copy 모듈은 이 정보를 스냅샷을 정리할 때 이용한다. Data Virtualization 모듈은 이 정보를 이용하여 데이터 가상화에 필요한 메타데이터를 initial copy 생성 이후 처음 생성하는 스냅샷은 initial copy로부터, 이 후에 생성하는 스냅샷은 마지막에 생성된 스냅샷으로부터 디렉토리 구조를 복제하여 스냅샷 생성에 필요한 구조를 생성한다. 여기서 디렉토리는 디렉토리 엔트리로 구성되며 디렉토리 엔트리는 크게 entry name과 inode로 구성되어있다. 따라서, 디렉토리 구조를 복제한다는 것은 디렉토리 엔트리를 복제한다는 것과 동일하다.
이후 Snapshot 모듈은 CDP pool에 저장된 데이터를 정리한 스냅샷 데이터를 initial copy 또는 마지막에 생성된 스냅샷의 메타데이터를 복제하여 새로 생성된 스냅샷 구조 위에 저장함으로써 스냅샷 생성을 완료하고, 새로 생성된 스냅샷 정보를 Master Copy 모듈에게 넘겨 Master Copy 모듈이 서비스 노드의 임의 시점의 독립적인 full copy로 관리 할 수 있도록 한다.
위에서 설명한 방법으로 생성된 스냅샷은 물리적으로는 CDP pool에 저장된 데이터만을 포함하고 있으나, 복제된 스냅샷의 메타데이터를 통하여 나머지 모든 데이터를 액세스 할 수 있다. 따라서, CDM 시스템이 생성한 스냅샷은 스냅샷이 생성된 시점의 서비스 노드 데이터의 full copy와 동일한 독립적인 full copy이다. 즉, CDM 시스템은 물리적으로 단일 copy의 서비스 노드 데이터를 저장하여 스토리지 사용을 최소화하면서 최소의 시간으로 사용자가 원하는 시점의 full copy를 서비스 노드에 미치는 영향 없이 생성하여 제공한다 (도 2 참조).
Master Copy 모듈은 initial copy와 Snapshot 모듈에 의해 생성된 스냅샷을 등록하고 관리한다. 즉, Master Copy 모듈은 특정 시점의 서비스 노드 데이터의 full copy를 사용자의 요구에 따라 제공한다. 예를 들어, 서비스 노드 장애시 Master Copy 모듈은 장애 직전 서비스 노드 데이터의 full copy를 생성하여 제공할 수 있다. 이를 위해 Master Copy 모듈은 Snapshot 모듈에게 새로운 스냅샷을 생성하고 스냅샷 정보를 생성 결과로 넘겨주기를 요청한다. 위 요청을 받은 Snapshot 모듈은 서비스 노드 장애 직전까지 CDP pool에 저장된 데이터를 정리한 스냅샷 데이터를 만들고 Data Vitualization 모듈과 위에서 설명한 방법으로 스냅샷을 생성하고 그 정보를 Master Mopy 모듈에게 넘겨 줄 수 있다.
위에서 생성된 스냅샷은 서비스 노드 장애 직전 데이터의 full copy로 real-time copy라 부른다 (도 2 참조). Master Copy 모듈은 사용자의 요구에 따라 real-time copy를 다른 서버에서 직접 mount하여 사용할 수 있도록 할 수도 있고, 사용자가 원하는 스토리지에 복원하여 사용할 수 있도록 할 수도 있다. 이 외에 Master Copy 모듈이 관리하는 특정 시점 full copy 데이터를 테스트, 분석 등을 위해 위와 같은 방법으로 제공할 수 있으며 이때 변경되는 데이터 또한 위와 같은 방법으로 관리할 수 있다.
CDP pool에 저장된 데이터를 정책에 따라 삭제 하듯이 Master Copy 모듈이 관리하는 스냅샷 또한 무한 시간 동안 관리 할 수 없어 일정 시간이 경과하면 정책에 따라 정리하여 삭제하여야 한다.
Master Copy 모듈은 스냅샷을 정리하여 삭제할 때, CDP 모듈이 생성한 파일 및 디렉토리 정보를 이용한다. 즉, 이 정보에 포함된 파일 및 디렉토리는 스냅샷을 생성할 당시 변경된 데이터를 의미하며 그렇지 않은 정보는 변경되지 않고 단지 이전 스냅샷과 공유된 데이터를 의미한다. 따라서, 이 정보에 포함된 파일 및 디렉토리 변경 정보를 이용하여 바로 직전 스냅샷에서 이에 해당하는 실제 데이터 및 메타데이터를 삭제할 수 있으며, 이 정보에 포함되지 않은 파일 및 디렉토리 관련 메타데이터는 바로 직전 스냅샷에서 삭제가 가능함을 의미하나, 실제 데이터는 삭제할 수 없음을 의미한다.
CDM 시스템은 내부 스토리지에 저장된 데이터를 외부 클라우드 스토리지 등에 복제하여 장기간 관리 또는 활용이 필요할 때 데이터의 중복을 제거하여 전송하거나 복제하는 데이터 양을 최소화 시킬 수 있으며, 이때 deduplication pool을 사용한다. 데이터 중복제거는 initial copy를 시작으로 이루어지며, 고정 크기 청크와 (chunk) 가변 크기 청크 방식을 모두 지원한다.
중복 제거된 데이터는 크게 메타데이터와 실제 데이터로 구성된다. 메타데이터는 디렉토리 정보와 파일정보, 그리고 파일 데이터 청크의 해쉬 값들로 구성된 정보 저장소와 해쉬 값이 가리키는 데이터 청크에 대한 정보를 제공하는 해쉬 테이블로 구성된다. Deduplication pool에 저장되는 데이터는 이들 메타데이터이며 실제 데이터는 chunk repository에 저장된다.
Master Copy 모듈이 관리하는 스냅샷은 임의 시점의 full copy 데이터이다. CDM 시스템은 사용자 요구에 따라 테스트, 분석 등의 용도에 따라 실제 데이터를 복제하지 않고도 단순히 스냅샷을 복제함으로써 사용자가 원하는 시점의 full copy를 제공할 수 있다.
도 3은 현재 전산센터의 일반적인 전개 유형을 도식화 한 것이다. 데이터 가용성을 제공하기 위하여 데이터 복제, 백업/복구는 물론 CDP 제품 등 다양한 제품을 복잡하게 설치하여 운영하는 상황임을 알 수 있다. 그럼에도 불구하고 스토리지 중심의 데이터 관리로 인하여 데이터의 항시 가용성 제공이 어려운 실정이며, 테스트, 분석 등 필요에 따라 실제 데이터를 복제하여 제공하므로 막대한 양의 스토리지가 필요한 상황이다.
도 4는 CDM 시스템을 이용하였을 때의 전산센터의 전개 유형을 도식화 한 것이다. 서비스 노드에 탑재되는 모듈은 단순히 CDM agent 이며 다른 데이터 관리 소프트웨어의 설치가 필요 없이 자동적인 데이터의 통합관리가 가능하고 테스트, 분석 등 필요에 따라 실제 데이터의 복제 없이도 응용 시스템이 필요한 데이터를 최소의 스토리지로 제공할 수 있다.
CDM 시스템의 개략적인 동작
본 발명에서는 데이터 생명주기 전체를 추적할 수 있는 기술로 특허 등록번호 10-1024249에 개시된 기술인 Delta Technology를 활용한다.
도 5 는 Delta Technology 기반 실시간 데이터 이중화(복제)를 개념 적으로 보여주는 도면이다. 데이터 생명주기 전체를 관리하기 위한 모든 정보는 운영체제에서 제공하는 입출력 관련 system call을 VFS 계층에서 hooking하여 추출할 수 있다. 도 5를 참조하면, Delta Technology의 응용으로 입출력 관련 system call 을 hooking하여 필요한 정보를 원격지 노드에 전송하고, 서비스 노드에서 수행되는 입출력 관련 모든 system call을 원격지에서 그대로 재현, 수행하여 데이터를 이중화하는 과정을 도식화 한 것이다.
즉, 운영체제의 VFS 계층에서 입출력 관련 system call을 모두 hooking하여 이중화 대상 데이터는 물론 system call을 수행하는데 필요한 모든 정보를 추출하여 원격지 노드에 전송하고, 원격지 노드는 추출된 정보를 기반으로 원래의 system call에 상응하는 system call을 수행함으로써 데이터를 실시간으로 이중화 할 수 있다.
Delta Technology 기반 CDP 기술
본 발명에서 CDM 시스템은 initial copy 생성 후 서비스 노드의 CDM agent가 위 방법으로 전송한 입출력 데이터 및 system call 정보를, system call 단위로, 파일 별로 시간 정보를 추가하여 CDP pool에 log 형태로 저장하여 system call 단위의 데이터 복구가 가능하도록 관리한다. 도 6은 initial copy 생성 후 CDP 구현을 위한 데이터 구조를 도식화 한 것이다. 도 6에서 하나의 CDP log record는 CDM agent가 전송한 system call 정보로 파일 정보, operation type, 실데이터 및 데이터에 관한 정보, 그리고 operation이 수행된 시간 등을 포함하는 log header와 실제 데이터로 구성된다. CDP 모듈은 CDP log record를 분 단위로 나누어 CDP pool에 저장하고 서비스 노드에서 수행된 operation을 CDP log 별로 재현, 수행함으로써 system call 단위로 데이터를 복구하거나 사용자가 원하는 시점의 서비스 노드 데이터를 CDM에서 생성한다.
도 6에서 File Info는 CDP log에 저장된 파일에 대한 정보를 포함하고 있으며, 이 정보는 스냅샷 데이터 생성 및 정리, 그리고 데이터 가상화 과정에서 이용된다. 같은 파일에 대한 CDP log record는 시간의 역 순으로 모두 연결되어 있다.
CDP 필요 기간은 day와 minute 구조로 나타내며 이들은 File Info와 연결되어 필요한 기간의 CDP 기능을 구현할 수 있다. 예를 들어 12시간의 CDP 기간을 설정하였을 경우 CDP pool에 저장되는 데이터 구조는 도 7로 표시할 수 있다. 만약 사용자가 File 2의 0분 12초 데이터 복원을 원한다면, CDM 시스템은 CDP pool의 day와 minute가 가리키는 File Info 중 File 2에 대한 File Info를 찾고 File Info가 가리키는 End log로부터 시작하여 원하는 시간의 CDP log record까지 추적하여 따라간다. 도 7에서 File 2에 대한 마지막 CDP log record는 15번 record이다. 하지만 15번 record의 시간은 0분 48초의 데이터 이므로 그 전에 기록된 CDP log record인 7번 record가 원하는 데이터임을 알 수 있다.
여기서 File 2의 0분 12초 데이터는 0분 12초까지 변경된 File 2의 모든 데이터를 의미한다. 따라서, 간단하게는 File 2의 첫 번째 CDP log record 부터 CDP log record 7까지 log에 기록된 write operation을 차례 차례로 마지막에 생성된 스냅샷 위에 수행함으로써 복원할 수 있다.
또 다른 방법은 CDP log record의 operation을 개별적으로 실행하는 대신 operation을 합성하여 필요한 operation 만 실행하는 것이다. 즉, CDP log record 7번 전에 기록된 File 2에 대한 모든 operation을 7번 record와 합성하여 0분 12초까지 변경된 File 2에 대한 데이터를 복원할 수 있다. File 2 전체 데이터에 대한 복원은 마지막으로 생성된 스냅샷에 저장된 File 2 데이터와 위 CDP log record에서 합성한 데이터를 최종적으로 합성하여 복원한다.
CDP log record 합성 기술
스냅샷 데이터는 분 단위로 저장된 CDP log record를 파일 별로, operation 종류를 반영하여 생성한다. 예를 들어 어떤 파일에 대한 마지막 log record가 delete operation 이었다면 그 파일에 대한 나머지 log record에 대한 처리는 필요 없을 것이다.
파일에 대한 operation 중 데이터를 합성하여야 하는 operation은 write 관련 operation으로 B+ tree를 응용하여 합성한다. 어떤 파일에 대한 write operation 들은 데이터의 파일 내 시작 위치와 끝 위치를 B+ tree의 키(key)로 활용하여 겹치지 않는 데이터 부분만 스냅샷 데이터에 포함될 수 있도록 한다. 즉, 파일의 변경된 영역을 키로 사용하며, 모든 키는 B+ tree에 삽입하는 과정에서 이미 삽입된 영역과 겹치는 영역이 있는가를 조사하고, 겹치는 부분이 있다면 그 부분을 제외하고 나머지 영역을 키로 조정하여 삽입한다. 새로 조정된 키를 삽입하는 과정에서도 B+tree의 매 대상 노드에서 반복적으로 위와 같이 영역이 겹치는지를 검사하여 삽입되는 영역을 조정한다.
마지막으로 B+tree의 leaf node에 조정된 키를 삽입할 때 이미 삽입된 영역과 새로 삽입되는 영역이 연속되었다면 연속된 키를 하나로 합쳐 영역을 조정하여 삽입하고 기존 삽입된 키 값은 삭제한다. 이때 물론 청크 정보에 대한 조정도 이루어 진다.
예를 들어 도 7에서 File1에 대한 0~1분 사이의 합성은, File1의 마지막 log record인 11번에서 데이터 영역 즉, 시작위치와 끝 위치 (9K, 10.5K-1)를 키로 B+tree에 삽입하는 것으로 시작된다. 여기서, B+tree의 order는 3으로 가정한다. B+tree의 leaf node에 삽입되는 각 entry는 CDP log에 포함된 데이터에 대한 파일 내 위치 정보와 CDP log 내 데이터 중 합성 대상 데이터 청크에 대한 정보로 이루어져있다 (도 8 참조).
이 후 합성 대상은 log record 9번이며 키는 (9K, 10K-1) 이다. 여기서 키 (9K, 10K-1)는 먼저 삽입된 키 (9K, 10K-1)와 영역이 완전히 겹치므로 B+ tree에 삽입할 필요가 없다. 즉, File1의 (9K, 10K-1) 영역에 마지막으로 쓰여진 데이터는 11번 log record에 기록된 데이터이며, 9번 log record와 영역이 완전히 겹치므로 마지막으로 쓰여진 데이터만 남기면 됨을 의미한다.
다음 합성 대상은 log record 8번이며 키는 (7K, 8.5K-1) 로 먼저 삽입된 키와 겹치는 영역이 없으므로 B+ tree에 삽입한다. Log record 6번의 키는 (5K, 8.5K-1)로 먼저 삽입된 키 (7K, 8.5K-1)와 영역이 일부분 겹친다. 따라서, 겹치는 부분을 제외하고 나머지 영역만 삽입할 수 있도록 조정하여야 한다. 즉, (5K, 7K-1)로 영역 키를 조정하여 삽입하여야 한다. 이러한 조정은 B+tree의 root node로부터 재귀적으로 (recursive) 이루어 지며, 조정 과정에서 원래 영역이 여러 개의 영역으로 나뉘어 질 수 있다. 조정된 각 영역은 별도의 청크 정보를 소유하며 leaf node에 삽입될 때 마지막으로 조정될 수 있다.
조정된 (5K, 7K-1)를 leaf node에 삽입할 때 이미 삽입된 log record 8번 데이터 (7K, 8.5K-1)와는 연속된 영역임을 알 수 있다. 이때는 (5K, 7K-1)를 별도의 entry로 삽입하지 않고 원래 삽입된 entry 영역을 하나의 entry, 즉, (5K, 8.5K-1)로 조정하고, 청크 정보를 조정하여 파일 내 주소에 따라 연결하고 삽입하려고 했던 (5K, 7K-1) entry 정보를 삭제한다.
도 8의 (a)는 CDP log record 6번 합성 전의 상태를 표시했으며, (b)는 합성 후 의 상태를 표시한 것이다. CDP log record 6번 합성 대상 파일 데이터 청크는 (5K, 8.5K-1)이나, log record 8번 데이터와 겹치는 (7K, 8.5K-1)부분은 합성 대상에서 제외하여야 한다. 결과적으로 합성되는 데이터 청크는 (5K, 7K-1)이며, 이에 맞추어 청크 정보도 조정된다 (도 8 info2 참조). 이때 합성되는 두 영역은, 실제 데이터는 다른 CDP log record에 존재하지만, 파일 내에서는 연속된 영역임으로 원래 CDP log 8번 entry를 조정하고 새로운 청크 정보를 파일의 논리 주소에 따라 원래의 청크 정보 전에 연결한다 (도 8 (b) 참조).
만약 CDP log record 6번 합성 대상 파일 데이터 청크 영역이 겹치지 않는다면 B+tree에 삽입하여야 하나 삽입 대상 leaf node에 더 이상 삽입할 공간이 없으므로 그 노드는 B+tree 노드 분할 알고리즘에 의하여 분할되어야 하며, 결과는 도 9와 같다.
위와 같은 과정으로 분 단위로 CDP log record를 모두 합성하여 하나의 스냅샷 데이터를 생성할 수 있으며, 파일 별로 병행 처리하여 합성 시간을 최적화 한다.
이상을 종합하면, 본 발명에서는 CDP log record를 합성하기 위하여 기존의 B+tree를 이용하나, 기존의 B+ tree와 달리 키가 단일 값이 아닌 영역이며, 겹치는 영역에 대한 처리가 수반되어야 한다.
스냅샷 생성 기술
Snapshot 모듈은 파일 별 CDP log record를 합성하기 전에 Data Virtualization 모듈에게 스냅샷 생성에 필요한 구조를 생성하라고 요구한다. Data Virtualization 모듈은 처음 스냅샷을 생성할 때는 initial copy로부터, 이 후의 스냅샷 생성은 마지막에 생성된 스냅샷의 최상위 디렉토리부터 디렉토리 구조를 복제하여 스냅샷 생성에 필요한 구조를 생성한다. 여기서 디렉토리는 디렉토리 엔트리로 구성되며 디렉토리 엔트리는 크게 entry name과 inode로 구성되어있다. 따라서, 디렉토리 구조를 복제한다는 것은 디렉토리 엔트리를 복제한다는 것과 동일하다.
Data Virtualization 모듈은 CDP 모듈이 생성한 파일 및 디렉토리 정보를 이용하여 디렉토리 엔트리 모두를 차례 차례 복제한다. 이때 디렉토리 엔트리의 entry name이 위 파일 및 디렉토리 정보와 동일하다면, CDP 주기 동안 그 엔트리에 대한 operation이 발생했음을 의미한다. 즉, 파일 또는 디렉토리가 변경되었음을 의미하기 때문에 새로운 inode를 생성하여 원래의 entry를 대체함으로써 원래의 entry를 보호하고 변경된 데이터를 저장할 수 있도록 새로운 메타데이터를 생성한다.
반대의 경우는 CDP 주기 동안 그 엔트리에 대한 어떠한 operation도 발생하지 않았음을 의미하며, 그 엔트리를 그대로 복제하여 지금 생성되는 스냅샷에 실제 데이터를 복제하지 않고도 데이터를 액세스 할 수 있도록 한다.
새로 생성된 inode가 디렉토리라면 위와 같은 방법으로 디렉토리 엔트리를 복제하고 파일이라면 실제 데이터를 액세스 할 수 있는, 즉 실제 데이터가 저장된 위치정보 메타데이터인 inode data block pointer 구조를 복제한다. 파일은 일반적으로 블록 또는 익스텐트 단위로 나뉘어 저장되며, 저장된 데이터를 액세스하기 위한 파일 블록의 주소는 inode 내에서 도10 와 같이 일반적으로 구조화된다. 즉, 파일의 논리적 위치에 해당하는 실제 데이터는 inode의 data block pointer가 가리키는 블록 또는 익스텐트에 저장되어 있다.
도 11은 새로운 inode인 inode 2 생성 후 원래의 inode인 inode 1의 메타데이터를 복제한 결과를 표시한 것이다. 디렉토리 역시 파일의 한 종류로 파일과 동일하게 취급한다.
위 디렉토리 복제 과정과 파일 별 CDP log record 합성은 Data Virtualization 모듈과 Snapshot 모듈에 의하여 각 각 동시에 진행되며, 위 과정이 완료되면 Snapshot 모듈은 CDP log record 합성과정에서 생성된 B+tree의 leaf node를 왼쪽으로부터 차례로 읽어 CDP log record에 표기된 operation을, Data Virtualization 모듈이 생성한 스냅샷 구조 위에, 수행함으로써 스냅샷 생성을 완료한다.
B+tree leaf node의 각 엔트리는 파일 내 데이터의 논리적 위치와 (logical address) CDP log에 저장된 실제 데이터에 대한 위치 정보를 포함한 청크 정보로 구성되어있다. 위 CDP log record 합성과정에서 데이터의 논리적 위치는 다른 엔트리와 통합되기도 하고 분리되기도 한다. 따라서 어떤 데이터의 논리 위치는 여러 개의 청크 정보로 구성될 수 있으며, 청크 정보는 논리 위치의 낮은 주소로부터 높은 순으로 연결되어있다. Leaf node의 모든 엔트리 또한 논리적 위치 순으로 정렬되어 저장되어있으며, 논리적 위치가 가장 낮은 엔트리가 맨 왼쪽에 위치한다.
Snapshot 모듈은 스냅샷 생성을 완료하기 위하여 각 파일에 해당하는 B+tree leaf node의 엔트리에 저장된 청크 정보를 이용하여 file chunk data를 해당 CDP log record로부터 수집한다. 이 후 수집된 file chunk data는 해당 파일에 서비스 노드에서 수행되었던 operation을 그대로 수행하여 저장한다. 이때 파일이 새로 생성된 파일이면 서비스 노드에서와 같이 파일을 생성하고 기존의 파일을 저장하는 방식과 동일하게 파일을 저장하며, 그렇지 않으면 아래와 같이 파일 데이터를 저장한다.
Data Virtualization 모듈은 파일 또는 디렉토리 변경 시 새로운 inode를 생성하고 원래 inode의 data block pointer를 모두 복제하였다. 따라서, 파일의 변경되지 않은 부분의 데이터는 복제된 data block pointer를 그대로 이용하여 실제 그 부분의 파일 데이터를 복제하지 않고도 액세스 할 수 있다. 그러나, 변경된 부분의 data block pointer를 그대로 이용하여 파일 데이터를 변경한다면 이전 파일 데이터에 신규 데이터를 덮어쓰게 되므로 원래의 파일을 보전 할 수 없다.
따라서, 원래의 파일 데이터를 보전하면서 신규 데이터를 저장하는 과정이 필요하다. 즉, 변경된 파일 데이터 청크를 저장하기 위하여 새로운 데이터 블록을 (또는 익스텐트) 할당하고, 파일 데이터 청크를 그 블록에 저장하고 변경된 부분에 해당하는 data block pointer 값을 새로 할당된 블록의 주소로 변경해주어야 한다.
이때 파일 데이터 청크 크기가 파일 데이터를 저장하는 블록 범위 보다 작다면 블록 데이터 전체를 액세스 할 수 없다. 이때에는 원래 data block pointer가 가리키는 데이터 블록을 새로 할당된 데이터 블록으로 복제하고 파일 데이터 청크를 그 데이터 블록에 저장하여 원래 데이터 블록을 보전하면서 새로운 데이터 블록도 액세스가 가능하도록 하여야 한다. 만약 파일 데이터 청크 크기가 데이터 블록 범위와 일치한다면 원래의 데이터 블록을 복제할 필요가 없으며, 새롭게 할당된 데이터 블록에 파일 데이터 청크를 저장하고 data block pointer를 그 데이터 블록의 주소로 변경하면 된다. 만약 data block pointer가 NULL이라면 파일 데이터 청크 크기가 데이터 블록 범위와 일치하는 경우의 과정과 동일하게 파일 데이터 청크를 저장한다.
도 12는 위에서 설명한 과정을 실행한 결과를 도식화 한 것이다. 스냅샷 데이터 생성 과정에서 inode 1에 해당하는 파일이 변경되었음을 알고 Data Virtualization 모듈은 도 11과 같이 새로운 inode 2를 할당 받아 inode 1의 메타데이터를 모두 복제하였다. 이 후 스냅샷 데이터를 CDP log로부터 스냅샷에 저장하는 과정에서 원래 파일의 블록3, 15, 그리고 16에 해당하는 파일 데이터가 변경되었음을 알 수 있어 이에 상응하는 블록 203을 할당 한 후 inode의 data block pointer 값을 새로 할당된 블록의 주소로 변경하였다 (도 12 Snapshot 2 참조).
스냅샷 생성을 완료하기 위하여는 블록 15와 16에 상응하는 블록 215와 216을 할당하고 변경된 파일 데이터를 이들 블록에 저장하여야 한다. 그러나 이들 데이터 블록은 double indirect pointer를 거쳐 접근할 수 있는 블록이므로, 이들 블록을 접근하는 경로에 있는 모든 block pointer 블록을 새로운 블록에 복제하고 새로 할당된 블록에 접근 가능하도록 block pointer 값을 변경시켜야 한다.
블록 15와 16의 데이터는 새로 할당된 215와 216으로 각 각 변경되었으며, 이들 새로운 블록은 블록 12를 경유하여 접근할 수 없다. 따라서, 새로운 블록 212를 할당하고 블록 12 데이터를 복제한 후 블록 215와 216에 접근 가능하도록 블록 212를 수정하여야 한다. 블록 212는 double indirect pointer 블록이다. 따라서, 블록 212에 접근 할 수 있도록 새로운 블록 211을 할당하여 블록 11의 데이터를 복제한 후 블록 211을 수정하여야 한다. 이 후 마지막으로 블록 211에 접근이 가능하도록 block pointer 값을 수정하여야 한다 (도 12 Snapshot 2 참조).
위와 같은 방법으로 생성된 스냅샷은 Master Copy 모듈에 의해 서비스 노드의 임의 시점의 독립적인 full copy로 관리된다. 따라서, Master Copy 모듈은 사용자가 원하는 서비스 노드의 임의 시점 full copy 데이터를, 물리적으로 단일 copy의 서비스 노드 데이터를 저장하여 스토리지 사용을 최소화하면서, 항시 제공할 수 있다.
Master Copy 모듈은 스냅샷과 그 스냅샷에 관련된 디렉토리 및 파일 정보, 그리고 스냅샷 생성과정에서 필요했던 영역 기반 B+tree 정보도 연동하여 관리하고 스냅샷 삭제 시점에 이들 정보도 같이 삭제한다.
Master Copy 모듈은 사용자의 요구에 따라 임의 시점 full copy 데이터를 다른 서버에서 직접 mount하여 사용할 수 있도록 할 수도 있고, 사용자가 원하는 스토리지에 복원하여 사용할 수 있도록 할 수도 있다. 이 외에 Master Copy 모듈이 관리하는 시점 데이터 full copy를 테스트, 분석 등을 위해 위와 같은 방법으로 제공할 수 있으며, 테스트 또는 분석 과정에서 새로 생성되거나 변경되는 데이터 또한 위에서 설명한 절차에 따라 관리할 수 있다.
이 외에 Master Copy 모듈은 서비스 노드 장애시 장애 직전 서비스 노드 데이터의 full copy를 생성, 제공하여 DR 업무에 이용할 수 있다. 서비스 노드 장애시 Master Copy 모듈은 Snapshot 모듈에게 새로운 스냅샷을 생성하고 스냅샷 정보를 생성 결과로 넘겨주기를 요청한다. 위 요청을 받은 Snapshot 모듈은 서비스 노드 장애 직전까지 CDP pool에 저장된 데이터를 정리한 스냅샷 데이터를 만들고 Data Virtualization 모듈과 위에서 설명한 방법으로 스냅샷을 생성하고 그 정보를 Master Copy 모듈에게 넘겨 줄 수 있다. 이와 같은 방법으로 생성한 스냅샷은 서비스 노드 장애 직전 데이터의 full copy로 real-time copy라 부른다 (도 2 참조). Master Copy 모듈은 사용자의 요구에 따라 real-time copy를 다른 서버에서 직접 mount하여 사용할 수 있도록 할 수도 있고, 사용자가 원하는 스토리지에 복원하여 사용할 수 있도록 할 수도 있다.
스냅샷 삭제 기술
Master Copy 모듈은 사용자가 설정한 정책에 따라 과거에 생성된 스냅샷을 순서대로 정리하여 삭제할 수 있으며, 이때 삭제 대상 스냅샷 바로 다음에 생성된 스냅샷 정보, 즉 그 스냅샷에 관련된 파일 및 디렉토리 정보와 스냅샷 데이터 합성 과정에서 생성된 영역 기반 B+tree를 이용한다.
Master Copy 모듈이 보관하고 있는 각 스냅샷과 연관된 파일 및 디렉토리 정보는 스냅샷을 생성할 당시 그 디렉토리나 파일이 변경되었음을 의미하며, 반대로 이 정보에 포함되지 않은 디렉토리나 파일은 스냅샷 생성시까지 그 디렉토리나 파일에 변경이 전혀 없었으며 단지 바로 직전 스냅샷과 데이터 블록을 공유하고 있음을 의미한다.
만약 T0 에 스냅샷이 생성되었고 이 후 T1에 스냅샷을 생성하였다면, Data Virtualization 모듈은 T0 스냅샷의 디렉토리와 변경된 파일의 메타데이터를 위에서 설명한 방법으로 T1 스냅샷에 복제한다. 이 후 T0에 생성된 스냅샷을 삭제한다면, T0 바로 다음에 생성된 스냅샷 정보, 즉, T1의 스냅샷에 연관된 파일 및 디렉토리 정보와 영역 기반 B+tree를 이용하여 T0 스냅샷을 삭제한다.
T1의 스냅샷에 연관된 파일 및 디렉토리 정보에 일치하지 않는 T0의 스냅샷 파일 및 디렉토리는 T0 ~ T1 사이에 전혀 변경 되지 않았음을 의미한다. 이는 T1 스냅샷 생성시, T1 스냅샷에서 그 파일 또는 디렉토리 데이터를 복제하지 않고도 직접 액세스 할 수 있도록, T0 스냅샷의 메타데이터만을 복제하였음을 의미한다. 따라서, 메타데이터를 통해서 T0 스냅샷과 T1 스냅샷이 공유하는 데이터 블록은 삭제할 수 없으며, 단지 T0 스냅샷의 메타데이터만 삭제하면 된다.
반면 T1의 스냅샷에 연관된 파일 및 디렉토리 정보와 일치하는 T0의 스냅샷 파일 및 디렉토리는 T0 ~ T1 사이에 변경 되었음을 의미하며, 메타데이터에 더하여 변경된 해당 데이터 블록은 삭제가 가능함을 의미한다. 즉, T0 스냅샷으로부터 복제한 디렉토리 또는 파일의 inode data block pointer가 변경되었음을 의미하며, 해당 데이터 블록은 두 스냅샷에서 더 이상 공유하지 않으므로 T0 스냅샷에서 삭제가 가능함을 의미한다. 따라서, T0 스냅샷의 inode block pointer가 T1 스냅샷의 inode block pointer와 동일하지 않은 block pointer가 가리키는 데이터 블록을 삭제하고 inode를 삭제한다.
변경된 inode block pointer는 T1 스냅샷의 영역 기반 B+ tree를 이용하여 찾을 수 있으며 해당 데이터 블록을 삭제할 수 있다. 영역 기반 B+ tree leaf node의 각 엔트리는 파일의 변경된 논리적 위치를 나타낸다. 따라서, 각 엔트리에 해당하는 T0 스냅샷의 파일 데이터 블록을 삭제하고 메타데이터를 삭제함으로써 T0 스냅샷을 삭제할 수 있다.
지금까지 설명한 방법으로 스냅샷이 생성된 시간 순으로 스냅샷을 삭제 할 수 있다. 하지만 경우에 따라서 사용자는 임의의 스냅샷 삭제를 원할 수도 있으며, 이 또한 아래에서 설명한 방법으로 간단하게 삭제 할 수 있다.
예를 들어 T0에 스냅샷이 생성되었고, 이 후 T1에 다음 스냅샷이 생성되었고, T2에 마지막으로 스냅샷이 생성되었으나, T1 스냅샷을 삭제한다고 가정하자. 이 경우 T1 스냅샷은 T0 스냅샷 및 T2 스냅샷과 메타데이터 및 데이터를 공유할 수 있어, 앞 뒤 스냅샷의 공유 관계를 판단하여 T1 스냅샷의 메타데이터와 데이터를 삭제하여야 한다.
본 발명에서는 Tn +1 스냅샷의 영역 기반 B+ tree를 이용하여 Tn 스냅샷의 데이터 블록을 삭제한다. 영역 기반 B+ tree leaf node의 각 엔트리는 파일의 변경된 논리적 위치를 나타낸다. 따라서, 각 엔트리에 해당하는 파일 데이터 블록 pointer를 Tn -1 스냅샷과 Tn 스냅샷에서 간단하게 찾을 수 있으며, 두 스냅샷에서 pointer가 다르다면 Tn 스냅샷에서 해당 데이터 블록을 삭제하고 그렇지 않으면 데이터 블록을 삭제하지 않는다. 이런 과정으로 Tn +1 스냅샷의 영역 기반 B+ tree 모든 엔트리에 해당하는 데이터 블록들이 Tn -1 스냅샷과 Tn 스냅샷에서 동일한지 여부를 판단하여 Tn 스냅샷에서 삭제가 가능한 모든 데이터 블록을 찾아 삭제할 수 있다. 이 후 메타데이터를 삭제하고 inode를 삭제함으로써 Tn 스냅샷 삭제를 완료할 수 있다.
스냅샷 복제 기술
Master Copy 모듈이 관리하는 스냅샷은 임의 시점의 full copy 데이터이다. CDM 시스템은 사용자 요구에 따라 테스트, 분석 등의 용도에 따라 실제 데이터를 복제하지 않고도 단순히 스냅샷을 복제함으로써 사용자가 원하는 시점의 full copy를 제공할 수 있다.
복제된 스냅샷은 읽기 전용 또는 갱신이 가능한 스냅샷으로 제공되며, 갱신이 가능한 스냅샷은 Data Management Policy 모듈의 도움으로 사용자가 정한 데이터 관리 정책에 따라 정상적인 스냅샷 데이터 관리 과정과 동일한 과정을 거쳐 관리된다.
CDM 시스템
도 13은 위에서 설명한 동작을 구현하기 위한 CDM 시스템의 상위 레벨 구성도이다. 본 발명에서 CDM 시스템은 서비스 노드들과 네트워크를 통하여 연결되며 네트워크에 연결된 모든 서비스 노드는 CDM 시스템의 Configuration 모듈에 의하여 검색, 나열되고 데이터 관리가 필요한 서비스 노드를 등록 하여 액세스가 가능한 수단을 제공한다. Configuration 모듈은 CDM 시스템 간의 연결 및 HA를 책임진다.
이 후 Data Management Policy 모듈은 서비스 노드의 데이터 중 관리가 필요한 데이터 세트를 선택하고 그 데이터 세트에 대한 관리 정책을 설정할 수 있는 수단을 제공한다. 여기서 데이터 관리 정책은 CDP 필요 기간, 다른 CDM 시스템으로의 CDP log 복제, 스냅샷 생성 주기 및 보유기간, 데이터 중복제거 및 중복제거 데이터 보유 정책 등을 포함한다.
Data Management Policy 모듈은 스케쥴러 기능을 포함하고 있어 필요한 시간에 관리자에 의해 설정된 데이터 관리 정책을 실행할 수 있도록 다른 모듈에게 명령을 전달한다. CDP 필요 기간이 경과되면 Snapshot 모듈에 명령을 보내 CDP 필요 기간에 CDP 모듈에 의해 수집되어 관리된 CDP log record를 정리하고 새로운 CDP log record를 저장할 수 있도록 조치를 취한다. 또한 스냅샷 생성 주기에 맞춰 CDP log record를 정리한 스냅샷을 생성할 수 있도록 명령을 전달한다.
CDP 모듈의 주된 역할은 서비스 노드의 CDM agent로부터 전송된 데이터를 파일 별로, 로그 형태로 CDP pool에 저장하고 관리하여 Snapshot 모듈 등 CDM 시스템의 다른 모듈이 CDP log에 저장된 데이터를 기반으로 CDP, 백업 등의 종합적인 데이터 관리 서비스를 제공할 수 있도록 하는 것이다. 이 외에 CDP log record를 다른 또는 원격지의 CDM 시스템에 Configuration 모듈이 미리 정한 configuration에 따라 복제하여 사용자 요구에 따른 데이터 관리 서비스를 제공할 수 있도록 한다.
Snapshot 모듈의 주된 역할은 Data Management Policy 모듈로부터 명령을 전달받아 CDP log record를 정리하고 Data Virtualization 모듈과 함께 스냅샷을 생성하는 것이다. Snapshot 모듈은 단순히 CDP log record에 저장된 데이터를 기반으로 짧은 시간 내에 스냅샷을 생성하지만 여기서 생성된 스냅샷은 특정 시점의 서비스 노드의 full copy로 스냅샷 생성 시점의 서비스 노드 데이터 전체를 백업 받은 것과 동일하다. 즉, 실제 데이터의 복제 없이 항상 특정 시점의 full copy 데이터를 제공할 수 있어 full copy 데이터를 제공하기 위한 시간과 비용을 최소화 할 수 있다.
Data Virtualization 모듈은 Snapshot 모듈 또는 Deduplication 모듈 등의 요청에 따라 관리 대상 데이터의 CDM 시스템 내 메타데이터를 복제 또는 필요에 따라 수정하여 데이터 가상화를 제공해주는 역할을 수행한다.
Master Copy 모듈은 initial copy와 서비스 노드의 특정 시점 full copy 데이터인 스냅샷을 등록하고 관리한다. Master Copy 모듈은 Data Management Policy 모듈의 요청에 따라 스냅샷을 정리하여 삭제할 수 있으며, 사용자의 요청에 따라 스냅샷을 복제하여 사용자에게 제공할 수 있다. Master Copy 모듈은 사용자의 요구에 따라 스냅샷을 다른 서버에서 직접 mount하여 사용할 수 있도록 할 수도 있고, 사용자가 원하는 스토리지에 복원하여 사용할 수 있도록 할 수도 있다.
Deduplication 모듈은 initial copy와 스냅샷 데이터를 분할하여 중복 제거된 데이터를 deduplication pool에 저장한다. 여기서 deduplication pool의 파일에 저장되는 데이터는 실제 파일 데이터의 청크 정보이며, 실제 청크 데이터는 별도의 repository에 저장하며, repository에 저장된 청크 데이터에 대한 접근은 fingerprint table을 이용한다.
Chunk repository는 실제 청크 데이터가 저장된 저장소로 deduplication pool에 별도로 할당하여 운영하거나, initial copy와 스냅샷 데이터를 복제 없이 활용할 수도 있고 외부의 저장장치를 활용할 수 도 있으며, 다른 CDM 장비에 복제하여 중복 제거된 데이터를 저장할 수 있다.
I/O Manager는 각 CDM 시스템에 내장된 SSD와 HDD를 통합 관리하고, SAN/NAS 및 클라우드와 같은 외부 저장장치와 연계하여 global storage를 제공하는 역할을 담당한다. Pool Manager는 I/O Manager가 제공하는 global storage에 CDM 시스템의 각 모듈이 요구하는 storage pool을 제공한다.
본 발명에 따른 단계들 및/또는 동작들은 기술분야의 통상의 기술자에 의해 이해될 수 있는 것과 같이, 다른 순서로, 또는 병렬적으로, 또는 다른 에포크(epoch) 등을 위해 다른 실시 예들에서 동시에 일어날 수 있다.
실시 예에 따라서는, 단계들 및/또는 동작들의 일부 또는 전부는 하나 이상의 비-일시적 컴퓨터-판독가능 매체에 저장된 명령, 프로그램, 상호작용 데이터 구조(interactive data structure), 클라이언트 및/또는 서버를 구동하는 하나 이상의 프로세서들을 사용하여 적어도 일부가 구현되거나 또는 수행될 수 있다. 하나 이상의 비-일시적 컴퓨터-판독가능 매체는 예시적으로 소프트웨어, 펌웨어, 하드웨어, 및/또는 그것들의 어떠한 조합일 수 있다. 또한, 본 명세서에서 논의된 "모듈"의 기능은 소프트웨어, 펌웨어, 하드웨어, 및/또는 그것들의 어떠한 조합으로 구현될 수 있다.
본 발명의 실시 예들의 하나 이상의 동작들/단계들/모듈들을 구현/수행하기 위한 하나 이상의 비-일시적 컴퓨터-판독가능 매체 및/또는 수단들은 ASICs(application-specific integrated circuits), 표준 집적 회로들, 마이크로 컨트롤러를 포함하는, 적절한 명령들을 수행하는 컨트롤러, 및/또는 임베디드 컨트롤러, FPGAs(field-programmable gate arrays), CPLDs(complex programmable logic devices), 및 그와 같은 것들을 포함할 수 있지만, 여기에 한정되지는 않는다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
CDM: 연속 데이터 관리

Claims (20)

  1. 연속 데이터 관리(continuous data management; CDM) 시스템의 동작 방법에 있어서:
    서비스 노드의 데이터를 입출력 system call 단위로 실시간으로 이중화시키는 단계; 및
    상기 이중화된 데이터를 근거로 하여 데이터 관리 정책 모듈에 의해 통합적으로 데이터를 관리하는 단계를 포함하고,
    상기 데이터 관리 정책 모듈은, 상기 서비스 노드의 데이터 중에서 관리 대상 데이터를 선택하고, 상기 선택된 데이터에 대한 관리 정책을 설정하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 실시간으로 이중화시키는 단계는,
    상기 관리 정책을 설정한 후에, 상기 서비스 노드의 CDM agent가 생성한 상기 서비스 노드의 디렉토리 스냅샷을 수신하는 단계를 더 포함하고,
    상기 디렉토리 스냅샷은 상기 서비스 노드의 데이터 파일에 대한 디렉토리 구조와 각 디렉토리에 포함된 파일들의 하드링크들을 포함하는 방법.
  3. 제 2 항에 있어서,
    상기 CDM agent는 상기 디렉토리 스냅샷의 상기 하드링크들을 스캔 함으로써 파일 데이터에 대한 논리 주소와 맵핑되는 상기 서비스 노드의 익스텐트/블록 맵을 생성하고, 상기 익스텐트/블록 맵을 물리 주소 기준으로 정렬하고, 상기 정렬된 익스텐트/블록 맵을 상기 CDM 시스템에 전송하는 것을 특징으로 하는 방법.
  4. 제 3 항에 있어서,
    상기 실시간으로 이중화 시키는 단계는,
    상기 CDM agent는 물리 주소 기준으로 정렬된 익스텐트/블록을 서비스 노드의 저장장치로부터 물리 주소 순으로 읽어 상기 CDM 시스템에 전송하고,
    상기 서비스 노드의 초기 동기화를 위하여 master copy 모듈에서 상기 서비스 노드의 상기 디렉토리 구조를 복제하고 파일 데이터에 대한 논리 주소와 맵핑되는 상기 서비스 노드의 익스텐트/블록 맵을 이용하여 서비스 노드가 전송한 상기 익스텐트/블록을 상기 디렉토리 구조 위에 복제하여 서비스 노드의 파일 구조 및 파일 데이터를 1차적으로 초기 복제 완료하는 단계를 더 포함하는 방법.
  5. 제 4 항에 있어서,
    상기 실시간으로 이중화 시키는 단계는,
    상기 CDM agent는 상기 서비스 노드의 초기 동기화를 진행하면서 동시에 delta technology에 의해 상기 서비스 노드의 파일 시스템 구조 혹은 데이터 변경 내역을 상기 CDM 시스템에 전송하고, CDP 모듈에서 상기 변경된 데이터를 log 형태로 저장하는 단계; 및
    initial copy를 생성하기 위하여 snapshot 모듈에서 상기 CDP 모듈에 저장된 log record를 상기 초기 동기화가 완료된 데이터에 반영시키는 단계를 더 포함하는 하는 방법.
  6. 제 1 항에 있어서,
    상기 실시간으로 이중화 시키는 단계는,
    initial copy를 생성한 후에 상기 서비스 노드의 CDM agent에서 전송된 입출력 데이터 및 system call 정보를 수신하는 단계;
    상기 수신된 정보를 system call 단위로 파일 별로 시간 정보를 추가하는 단계; 및
    system call 단위로 데이터 복구를 하기 위하여 상기 추가된 정보를 CDP pool에 log 형태로 저장하는 단계를 더 포함하는 방법.
  7. 제 6 항에 있어서,
    상기 데이터를 관리하는 단계는,
    상기 서비스 노드에서 수행된 동작을 CDP log 별로 제현, 수행함으로써 system call 단위로 데이터를 복구하는 단계; 혹은
    상기 사용자가 원하는 시점의 서비스 노드 데이터를 상기 CDM 시스템에 생성하는 단계를 포함하는 방법.
  8. 제 1 항에 있어서,
    스냅샷(snapshot) 데이터를 이용하여 상기 서비스 노도의 데이터가 실시간으로 이중화되고,
    상기 스냅샷 데이터는 분 단위로 저장된 CDP log record를 파일 별로 동작 종류를 반영하여 생성되는 것을 특징으로 하는 방법.
  9. 제 8 항에 있어서,
    파일에 대한 동작 중에서 데이터 합성 동작은 데이터의 파일 내 시작 위치와 끝 위치를 B+ tree를 키(key)로 이용하여 겹치지 않는 데이터 부분만 상기 스냅샷 데이터에 포함시키는 것을 특징으로 하는 방법.
  10. 제 9 항에 있어서,
    B+ tree의 leaf node에 조정된 키를 삽입할 때, 이미 삽입된 영역과 새롭게 삽입된 영역이 연속하면, 연속된 키를 하나로 합침으로써 영역이 조정되고, 기존 삽입된 키 값은 삭제되는 것을 특징으로 하는 방법.
  11. 제 1 항에 있어서,
    snapshot 모듈에서 파일 별 CDP log record를 합성하기 전에, data virtualization 모듈은 상기 스냅샷 데이터의 생성에 필요한 구조를 생성하는 것을 특징으로 하는 방법.
  12. 제 11 항에 있어서,
    상기 data virtualization 모듈은 처음 스냅샷 데이터를 생성할 때 initial copy를 이용하고, 이후에는 마지막에 생성된 스냅샷 데이터의 최상의 디렉토리로부터 디렉토리 구조를 복제함으로써 스냅샷 생성에 필요한 구조를 생성하는 것을 특징으로 하는 방법.
  13. 제 12 항에 있어서,
    상기 data virtualization 모듈은 CDP 모듈이 생성한 파일 및 디렉토리 정보를 이용하여 디렉토리 엔트리 모두를 차례로 복제하고, 디렉토리 엔트리의 entry name이 파일 및 디렉토리 정보와 동일하면 CDP 주기 동안에 엔트리에 대한 동작이 발생한 상황으로써 새로운 inode를 생성하고, 원래의 엔트리를 대체하고, 상기 원래의 엔트리를 보호하고 변경된 데이터를 저장하도록 새로운 메타 데이터를 생성하는 것을 특징으로 하는 방법.
  14. 제 13 항에 있어서,
    상기 data virtualization 모듈은 디렉토리 엔트리의 entry name이 파일 및 디렉토리 정보와 동일하지 않다면 CDP 주기 동안에 상기 엔트리에 대한 어떠한 동작도 발생하지 않았기 때문에 상기 엔트리를 그대로 복제하고, 현재 생성되는 스냅샷에 실제 데이터를 복제하지 않으면서 데이터를 액세스 하도록 하는 것을 특징으로 하는 방법.
  15. 제 13 항에 있어서,
    상기 data virtualization 모듈은, 상기 새로운 inode가 디렉토리이면 디렉토리 엔트리를 복제하고, 상기 새로운 inode가 파일이면 실제 데이터를 액세스 할 수 있도록 상기 실제 데이터가 저장된 위치 정보 메타데이터인 inode data block pointer 구조를 복제하는 것을 특징으로 하는 방법.
  16. 제 1 항에 있어서,
    상기 스냅샷 데이터는 master copy 모듈에 의해 상기 서비스 노드의 임의 시점의 독립적인 full copy로 관리되는 것을 특징으로 하는 방법.
  17. 제 16 항에 있어서,
    상기 master copy 모듈은 상기 서비스 노드의 장애 발생시 장애 직전의 상기 서비스 노드의 데이터에 대한 full copy를 생성 및 제공하여 DR(재해 복구 센터) 업무에 이용하는 것을 특징으로 하는 방법.
  18. 제 16 항에 있어서,
    상기 master copy 모듈은 상기 스냅샷 데이터를 사용자가 설정한 정책에 따라 삭제, 복제, 혹은 중복 제거하는 것을 특징으로 하는 방법.
  19. 데이터 서비스 시스템에 있어서:
    CDM(continuous data management) agent에 의해 스냅샷 데이터를 생성하는 복수의 서비스 노드들; 및
    상기 스냅샷 데이터를 이용하여 실시간으로 데이터를 관리하는 CDM 시스템을 포함하고,
    상기 CDM 시스템은, 상기 스냅샷 데이터를 이용하여 대응하는 서비스 노드의 데이터를 실시간으로 이중화시키고; 상기 이중화된 데이터를 근거로 하여 데이터 관리 정책 모듈에 의해 통합적으로 데이터를 관리하고, 상기 데이터 관리 정책 모듈은, 상기 서비스 노드의 데이터 중에서 관리 대상 데이터를 선택하고, 상기 선택된 데이터에 대한 관리 정책을 설정하는 것을 특징으로 하는 데이터 서비스 시스템.
  20. 제 19 항에 있어서,
    상기 CDM 시스템은, initial copy를 생성한 후에 상기 서비스 노드의 CDM agent에서 전송된 입출력 데이터 및 system call 정보를 수신하고, 상기 수신된 정보를 system call 단위로 파일 별로 시간 정보를 추가하고, 및 system call 단위로 데이터 복구를 하기 위하여 상기 추가된 정보를 CDP pool에 log 형태로 저장하는 것을 특징으로 하는 데이터 서비스 시스템.
KR1020180139063A 2017-11-27 2018-11-13 연속 데이터 관리 시스템 및 방법 KR102089710B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/201,866 US11138156B2 (en) 2017-11-27 2018-11-27 Continuous data management system and operating method thereof

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762591128P 2017-11-27 2017-11-27
US62/591,128 2017-11-27
KR20180038138 2018-04-02
KR1020180038138 2018-04-02

Publications (2)

Publication Number Publication Date
KR20190062197A true KR20190062197A (ko) 2019-06-05
KR102089710B1 KR102089710B1 (ko) 2020-03-16

Family

ID=66845006

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180139063A KR102089710B1 (ko) 2017-11-27 2018-11-13 연속 데이터 관리 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102089710B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220042974A (ko) * 2020-09-28 2022-04-05 주식회사 데이타커맨드 데이터 초기 복제 방법 및 이를 수행하기 위한 컴퓨팅 장치

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070094203A (ko) * 2006-03-16 2007-09-20 정문수 무정지 자동복구 서버시스템 데이터동기화 방법
KR20100062775A (ko) * 2008-12-02 2010-06-10 한국전자통신연구원 정책 관리 시스템 및 그 시스템에서의 일괄 정책 프로파일 설정 방법
KR101024249B1 (ko) 2008-05-28 2011-03-29 매크로임팩트 주식회사 실시간 데이터 복제 시스템
KR101078586B1 (ko) 2009-11-19 2011-11-01 매크로임팩트 주식회사 데이터 처리 장치 및 데이터 처리 방법
KR101237746B1 (ko) 2010-10-22 2013-02-28 매크로임팩트 주식회사 데이터 백업 장치 및 방법
KR20140047829A (ko) * 2012-10-15 2014-04-23 (주) 글루시스 전력 제어 스위칭 모듈을 구비한 클라우드 스토리지 시스템
KR101730109B1 (ko) * 2016-05-23 2017-04-25 주식회사 세이디엔디 이미지 스냅샷 공유 기법을 활용한 데스크탑용 통합 클라우드 솔루션 시스템

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070094203A (ko) * 2006-03-16 2007-09-20 정문수 무정지 자동복구 서버시스템 데이터동기화 방법
KR101024249B1 (ko) 2008-05-28 2011-03-29 매크로임팩트 주식회사 실시간 데이터 복제 시스템
KR20100062775A (ko) * 2008-12-02 2010-06-10 한국전자통신연구원 정책 관리 시스템 및 그 시스템에서의 일괄 정책 프로파일 설정 방법
KR101078586B1 (ko) 2009-11-19 2011-11-01 매크로임팩트 주식회사 데이터 처리 장치 및 데이터 처리 방법
KR101237746B1 (ko) 2010-10-22 2013-02-28 매크로임팩트 주식회사 데이터 백업 장치 및 방법
KR20140047829A (ko) * 2012-10-15 2014-04-23 (주) 글루시스 전력 제어 스위칭 모듈을 구비한 클라우드 스토리지 시스템
KR101730109B1 (ko) * 2016-05-23 2017-04-25 주식회사 세이디엔디 이미지 스냅샷 공유 기법을 활용한 데스크탑용 통합 클라우드 솔루션 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
미국등록특허: US 8,869,139, 등록일: 2014년 10월 21일, 제목: SYSTEM AND METHOD FOR CONVERTING A PHYSICAL DISK TO VIRTUAL DISK.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220042974A (ko) * 2020-09-28 2022-04-05 주식회사 데이타커맨드 데이터 초기 복제 방법 및 이를 수행하기 위한 컴퓨팅 장치

Also Published As

Publication number Publication date
KR102089710B1 (ko) 2020-03-16

Similar Documents

Publication Publication Date Title
US11138156B2 (en) Continuous data management system and operating method thereof
US11740974B2 (en) Restoring a database using a fully hydrated backup
US9658928B2 (en) File-based cluster-to-cluster replication recovery
US9588847B1 (en) Recovering corrupt virtual machine disks
US7650341B1 (en) Data backup/recovery
US9785518B2 (en) Multi-threaded transaction log for primary and restore/intelligence
US8108429B2 (en) System for moving real-time data events across a plurality of devices in a network for simultaneous data protection, replication, and access services
US7596713B2 (en) Fast backup storage and fast recovery of data (FBSRD)
EP1702267B1 (en) Method and apparatus for performing operations on selected data in a storage area
EP3796174B1 (en) Restoring a database using a fully hydrated backup
US11093387B1 (en) Garbage collection based on transmission object models
US8375181B1 (en) System and method for performing replication based on change tracking information
JP2013543198A (ja) データ管理仮想化のためのシステムおよび方法
KR20120098708A (ko) 가상 데이터베이스를 사용하는 데이터센터 작업흐름 자동화 시나리오
JP2004038929A (ja) 複数のスナップショットを管理するシステム及び方法
KR20120093296A (ko) 가상 데이터베이스 시스템
US20130159257A1 (en) Systems, Method, and Computer Program Products Providing Sparse Snapshots
US9928246B1 (en) Managing snapshots of data
US20200341871A1 (en) Raid schema for providing metadata protection in a data storage system
KR102089710B1 (ko) 연속 데이터 관리 시스템 및 방법
WO2021208401A1 (zh) 现代应用的持续数据保护系统及方法
US20230333946A1 (en) Method and system for continuous data protection
US11442815B2 (en) Coordinating backup configurations for a data protection environment implementing multiple types of replication
KR102005727B1 (ko) 파일 시스템의 변경 연산 가로채기 기법을 기반으로 한 다중 스냅샷 방법

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