KR20150004200A - 데이터 복제 방법 및 장치 - Google Patents

데이터 복제 방법 및 장치 Download PDF

Info

Publication number
KR20150004200A
KR20150004200A KR1020130077380A KR20130077380A KR20150004200A KR 20150004200 A KR20150004200 A KR 20150004200A KR 1020130077380 A KR1020130077380 A KR 1020130077380A KR 20130077380 A KR20130077380 A KR 20130077380A KR 20150004200 A KR20150004200 A KR 20150004200A
Authority
KR
South Korea
Prior art keywords
change
hint
file
data
type
Prior art date
Application number
KR1020130077380A
Other languages
English (en)
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 KR1020130077380A priority Critical patent/KR20150004200A/ko
Priority to US14/082,962 priority patent/US20150012492A1/en
Publication of KR20150004200A publication Critical patent/KR20150004200A/ko

Links

Images

Classifications

    • 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/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer

Landscapes

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

Abstract

송수신 노드간 파일을 동기화시키기 위해서, 송신 노드의 힌트 제공부는 파일이 변경되면 변경 파일과 상기 변경 파일에 대한 변경 정보를 힌트로서 변경로그 생성부에 제공하며, 변경로그 생성부는 변경 파일과 힌트를 참고하여 변경 로그를 생성하며, 생성된 변경로그는 변경 로그 전송부에 의해 수신 노드로 전송된다.

Description

데이터 복제 방법 및 장치{METHOD AND APPARATUS FOR REPLICATING DATA}
본 발명은 데이터 복제 방법 및 장치에 관한 것이다.
중요한 컴퓨팅 데이터의 저장을 위하여 두 개 이상의 기계나 장치에 동일한 데이터를 실시간으로 유지하는 데이터 이중화가 필요한 경우가 있다. 데이터를 이중화하기 위해서는 서로 다른 컴퓨팅 장치에 대해서 데이터 복제가 필요하다.
두 개의 장치에 있는 파일을 동기화시키기 위한 가장 쉬운 방법은 송신 장치에서 변경된 파일의 전체 데이터를 수신 장치로 전송하는 것이다. 그러나 이 방법은 송신 장치가 매번 파일 전체를 전송해야 하므로 매우 비효율적이다.
이러한 단점을 해결하는 방법으로, 파일의 변경된 부분만을 기록한 변경 로그를 주고 받음으로써 데이터를 동일하게 유지하는 방법이 있다. 송신 장치는 전체 데이터가 아닌 변경된 데이터만을 전송하고 이를 받은 수신 장치는 변경된 데이터만을 갱신함으로써 동기화를 유지한다. 이때 수신 장치는 변경된 데이터를 찾기 위해서 두 파일의 처음부터 끝까지 특정 단위(수bytes)의 크기만큼 파일을 비교해야 한다. 따라서 파일의 변경된 부분을 찾는 데 많은 시간이 소요되는 문제점이 있다.
본 발명이 해결하고자 하는 기술적 과제는 최소한의 컴퓨팅 자원과 시간을 사용하여 효율적으로 데이터를 복제할 수 있는 데이터 복제 방법 및 장치를 제공하는 것이다.
본 발명의 한 실시 예에 따르면, 송신 노드와 수신 노드간 파일을 동기화시키기 위하여 파일을 변경한 상기 송신 노드에서의 데이터 복제 방법이 제공된다. 데이터 복제 방법은 파일이 변경되는 경우에, 변경 파일과 상기 변경 파일에 대한 변경 정보를 힌트로서 제공하는 단계, 상기 변경 파일과 상기 힌트를 참고하여 변경 로그를 생성하는 단계, 그리고 상기 변경 로그를 상기 수신 노드로 전송하는 단계를 포함한다.
상기 힌트는 힌트 타입 정보를 포함하고, 상기 힌트 타입 정보는 상기 변경 파일이 새로운 데이터를 저장하였음을 나타내는 제1 타입, 상기 변경 파일에서 변경된 부분이 연속되어 있음을 나타내는 제2 타입, 그리고 상기 변경 파일이 새로운 데이터를 저장한 경우이면서 상기 변경 파일에 포함된 실제 데이터의 크기가 임계 값 이하임을 나타내는 제3 타입 중 하나를 포함할 수 있다.
상기 제1 타입의 힌트는 상기 힌트 타입 정보만을 포함할 수 있다.
상기 생성하는 단계는 상기 제1 타입의 힌트를 제공 받은 경우에 상기 변경 파일의 데이터를 포함하는 변경 로그를 생성하는 단계를 포함할 수 있다.
상기 제2 타입의 힌트는 변경 시작점의 위치 및 변경 데이터의 크기를 더 포함할 수 있다.
상기 생성하는 단계는 상기 제2 타입의 힌트를 제공 받은 경우에 상기 변경 파일에서 상기 변경 시작점의 위치부터 상기 변경 데이터의 크기만큼의 데이터를 읽는 단계, 그리고 읽은 데이터를 포함하는 변경 로그를 생성하는 단계를 포함할 수 있다.
상기 제3 타입의 힌트는 상기 변경 파일에서 실제 데이터가 쓰인 데이터 시작점의 위치 및 데이터 크기를 더 포함할 수 있다.
상기 생성하는 단계는 상기 제3 타입의 힌트를 제공 받은 경우에 상기 변경 파일에서 상기 데이터 시작점의 위치부터 상기 데이터 크기만큼의 데이터를 읽는 단계, 그리고 읽은 데이터를 포함하는 변경 로그를 생성하는 단계를 포함할 수 있다.
본 발명의 다른 한 실시 예에 따르면, 파일을 변경한 컴퓨팅 노드에서 상기 파일의 변경을 알리기 위한 데이터 복제 장치가 제공된다. 데이터 복제 장치는 힌트 제공부, 변경로그 생성부, 그리고 변경로그 전송부를 포함한다. 상기 힌트 제공부는 파일이 변경되는 경우에, 변경 파일과 상기 변경 파일에 대한 변경 정보를 힌트로서 제공한다. 상기 변경로그 생성부는 상기 변경 파일과 상기 힌트를 참고하여 변경 로그를 생성한다. 그리고 상기 변경로그 전송부는 상기 변경 로그를 다른 컴퓨팅 노드로 전송한다.
상기 힌트는 힌트 타입 정보를 포함하고, 상기 힌트 제공부는 상기 변경 파일이 새로운 데이터를 저장한 경우에 상기 힌트 타입 정보로 제1 타입을 표시하고, 상기 변경 파일의 변경 부분이 연속되어 있는 경우에 상기 힌트 타입 정보로 제2 타입을 표시할 수 있다.
상기 변경로그 생성부는 상기 제1 타입의 힌트를 제공 받은 경우에 상기 변경 파일의 데이터를 포함하는 변경 로그를 생성할 수 있다.
상기 제2 타입인 힌트는 변경 시작점의 위치 및 변경 데이터의 크기를 더 포함하며, 상기 변경로그 생성부는 상기 제2 타입의 힌트를 제공 받은 경우에 상기 변경 파일에서 상기 변경 시작점의 위치부터 상기 변경 데이터의 크기만큼의 데이터를 읽어서 변경 로그를 생성할 수 있다.
상기 힌트 제공부는 상기 변경 파일이 새로운 데이터를 저장한 경우이면서 상기 변경 파일에 포함된 실제 데이터의 크기가 임계 값 이하인 경우에 상기 힌트 타입 정보로 제3 타입을 표시할 수 있다.
상기 제3 타입의 힌트는 상기 변경 파일에서 실제 데이터가 쓰인 데이터 시작점의 위치 및 데이터 크기를 더 포함하며, 상기 변경로그 생성부는 상기 제3 타입의 힌트를 제공 받은 경우에 상기 변경 파일에서 상기 데이터 시작점의 위치부터 상기 데이터 크기만큼의 데이터를 읽어 상기 변경로그를 생성할 수 있다.
상기 힌트 제공부는 상기 파일이 변경되는 경우에 변경 파일을 제공하는 변경파일루틴, 그리고 상기 변경 파일에 대한 변경 정보를 상기 힌트로서 제공하는 힌트 생성부를 포함할 수 있다.
본 발명의 실시 예에 의하면, 힌트 기반의 데이터 복제 기법을 사용함으로써, 최소한의 컴퓨팅 자원과 시간을 사용하여 두 개 이상의 서로 다른 장치에 효율적으로 데이터를 복제할 수 있다.
도 1은 일반적인 데이터 복제 방법을 개략적으로 나타낸 도면이다.
도 2는 도 1의 송신 노드에서 변경 로그를 생성하는 방법의 일 예를 나타낸 도면이다.
도 3은 본 발명의 실시 예에 따른 송신 장치에서 힌트 기반으로 변경 로그를 생성하는 방법의 일 예를 나타낸 도면이다.
도 4는 본 발명의 실시 예에 따른 힌트 타입 1인 경우에 제공되는 힌트의 일 예를 나타낸 도면이다.
도 5는 본 발명의 실시 예에 따른 힌트 타입 2인 경우에 제공되는 힌트의 일 예를 나타낸 도면이다.
도 6은 본 발명의 실시 예에 따른 힌트 타입 2의 힌트의 확장 버전을 나타낸 도면이다.
도 7은 본 발명의 실시 예에 따른 힌트 타입 3인 경우에 제공되는 힌트의 일 예를 나타낸 도면이다.
도 8은 본 발명의 실시 예에 따른 노드의 데이터 복제 장치를 나타낸 도면이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다.
명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
이제 본 발명의 실시 예에 따른 데이터 복제 방법 및 장치에 대하여 도면을 참고로 하여 상세하게 설명한다.
컴퓨팅 데이터를 저장하고 변경하는 단위로는 하나의 바이트부터 수백, 수천 바이트의 집합인 데이터 블록이 있을 수 있으며 또한 이러한 데이터 블록들이 모여서 디스크에 저장될 때 사용되는 파일이 있다. 본 발명의 실시 예에서 제안하는 데이터 복제 장치 및 방법은 동기화를 수행하는 범위에 따라 모든 데이터 단위에 대해 적용될 수 있다. 설명의 편의상 본 발명의 실시 예에서는 동기화의 대상 단위를 파일이라고 가정하고, 본 발명의 실시 예에 따른 데이터 복제 장치 및 방법을 설명한다. 동기화를 수행하는 주체인 장치는 편의상 네트워크로 연결된 컴퓨팅 노드라고 가정하고 간략히 노드라고 명명한다.
도 1은 일반적인 데이터 복제 방법을 개략적으로 나타낸 도면이다.
도 1을 참고하면, 동기화를 수행하는 두 개의 노드 중 송신 노드(100)에서 파일(F0)이 파일(F1)로 변경된 경우에 송신 노드(100)는 변경된 파일(F1)의 내용을 기반으로 변경 로그(150)를 생성하고, 변경 로그(150)를 수신 노드(200)로 전달한다.
수신 노드(200)는 변경 로그(150)를 수신하면, 변경 로그(150)를 해석해 파일(F2)를 수정해 파일(F3)로 변경함으로써, 송신 노드(100)의 파일(F1)과 수신 노드(200)의 파일(F3)을 동기화시킨다.
도 2는 도 1의 송신 노드에서 변경 로그를 생성하는 방법의 일 예를 나타낸 도면이다.
도 2를 참고하면, 송신 노드(100)는 파일(F0)이 파일(F1)로 변경된 경우, 처음부터 끝까지 특정 단위의 크기만큼 두 파일(F0, F1)을 비교하면서 변경된 부분만을 검색한다.
다음, 송신 노드(100)는 변경된 부분의 위치(152), 변경된 내용의 크기(154) 및 변경된 내용(156)을 표시한 변경 로그(150)를 생성한다.
수신 노드(200)는 이러한 변경 로그(150)를 수신하여 변경된 내용(156)을 파일(F2)의 해당 위치에 써 줌으로써 파일(F2)이 파일(F3)로 변경된다. 따라서 수신 노드(200)는 파일(F3)을 송신 노드(100)의 파일(F1)과 동일하게 유지할 수 있다.
그러나 파일(F0, F1)의 모든 데이터를 비교해 변경 로그를 생성하는 방법은 변경된 내용(156)에 대한 어떤 정보도 없이 변경 로그(150)를 생성하기 때문에 변경된 부분을 찾기 위해 파일(F0, F1) 전체를 비교해야 한다. 특히 변경된 부분이 일부분일 경우에는 변경되지 않은 데이터를 비교하는데 대부분의 시간을 사용하게 된다.
본 발명의 실시 예에서는 파일을 변경할 때 파일이 어떻게 변경되었는지에 대한 정보를 변경 로그를 생성할 때 이용함으로써, 변경 로그 생성 시간을 줄일 수 있는 방법을 제안한다. 파일 변경 루틴에서 파일을 변경할 때 파일 변경에 대한 변경 정보를 제공하며 이를 힌트라고 한다. 또한 이 기법을 힌트 기반의 데이터 복제 기법이라고 부른다.
다음은 본 발명의 실시 예에서 사용되는 각각의 힌트에 대하여 실시 예에 토대로 설명한다.
도 3은 본 발명의 실시 예에 따른 송신 장치에서 힌트 기반으로 변경 로그를 생성하는 방법의 일 예를 나타낸 도면이다.
도 3을 참고하면, 송신 장치(100)는 파일을 변경하는 적어도 하나의 파일변경루틴(300)을 포함한다. 또한 송신 장치(100)는 힌트 생성부(310), 변경로그 생성부(320) 및 변경로그 전송부(330)을 포함한다.
적어도 하나의 파일변경루틴(300)은 파일(301)을 변경할 때마다 변경 파일(302)을 변경로그 생성부(302)에 전달한다. 또한 힌트 생성부(310)는 파일변경루틴(300)에서 파일이 변경될 때마다 변경된 파일에 대한 힌트(303)를 변경로그 생성부(302)에 전달한다.
변경로그 생성부(320)는 변경 파일(302)에 대한 변경 로그를 작성 시에 변경 파일(302)과 함께 힌트(303)를 참고하여 변경 로그(304)를 생성할 수 있다.
변경로그 생성부(320)는 생성된 변경 로그(304)를 변경로그 전송부(330)로 전달하면 변경로그 전송부(330)는 변경 로그를 수신 노드(200)로 전달해 수신 노드(200)에서도 해당 파일을 송신 노드(100)와 같이 동기화시킬 수 있다. 파일 변경은 다수의 파일에 대해서 다수의 파일변경루틴(300)에서 동시에 발생할 수 있으므로 변경로그 생성부(320)는 다수의 힌트를 받아 각각에 대한 변경 로그를 작성할 수 있다.
송신 노드(100)의 힌트 생성부(310)에서 제공할 수 있는 힌트는 파일 변경 루틴에 따라서 다양할 수 있으며 본 발명의 실시 예에서는 그 가운데 변경로그 작성에 가장 효율적으로 적용될 수 있는 3가지 경우에 대한 방법을 제안한다.
첫 번째 경우는 변경 후 파일(302)이 변경 전 파일(301)의 내용을 기반으로 하지 않고 새로이 데이터를 저장하는 경우이다. 이 경우 힌트 생성부(310)는 이러한 정보를 힌트로서 변경로그 생성부(320)에 제공하며, 이러한 힌트는 힌트타입 1번에 해당한다.
도 4는 본 발명의 실시 예에 따른 힌트 타입 1인 경우에 제공되는 힌트의 일 예를 나타낸 도면이다.
도 4를 참고하면, 힌트 타입 1인 경우, 힌트(400)는 힌트 타입(410)만을 포함한다.
변경로그 생성부(320)가 힌트 타입 1의 힌트(400)를 받은 경우, 변경 전 파일(301)과 변경 후 파일(302)의 내용을 비교하여 변경 로그를 작성하지 않고 변경 후 파일(302)의 내용만을 포함하는 변경로그(304)를 작성해 변경로그 전송부(330)로 전달한다.
두 번째 경우는 변경된 부분이 분산되어 있지 않고, 연속되어 있을 경우이다. 이 경우 힌트 생성부(310)는 이러한 정보를 힌트로서 변경로그 생성부(320)에 제공하며, 이때 제공되는 힌트는 힌트타입 2번에 해당한다.
도 5는 본 발명의 실시 예에 따른 힌트 타입 2인 경우에 제공되는 힌트의 일 예를 나타낸 도면이다.
도 5를 참고하면, 힌트 타입 2인 힌트(500)는 먼저 힌트 타입(510)과 변경이 시작되는 지점 즉, 변경 시작점의 위치(520)와 변경 데이터의 크기(530)를 포함한다. 도 5에 도시한 바와 같이, 힌트 타입(510)이 2이고, 변경 시작점의 위치(520)가 500이고, 변경 데이터의 크기가 300로 표시된 힌트(500)는 변경 전 파일(301)의 500 바이트 위치부터 300 바이트가 연속하여 데이터가 변경되었음을 나타낸다.
변경로그 생성부(320)가 힌트 타입 2의 힌트(500)를 받은 경우에는 변경 전 파일(301)과 변경 후 파일(302)을 비교하지 않고 힌트(500)로 제공되는 변경 시작점의 위치(520)와 변경 데이터의 크기(530)를 가지고 변경 후 파일(302)의 데이터를 읽어 변경 로그(304)를 작성할 수 있다. 힌트 타입 2의 힌트(500)는 파일의 변경된 부분이 다수 개일 경우에도 적용될 수 있다.
즉, 변경로그 생성부(320)는 변경 파일(302)에서 변경 시작점의 위치부터 상기 변경 데이터의 크기만큼 데이터를 읽어 변경 로그를 생성할 수 있다.
도 6은 본 발명의 실시 예에 따른 힌트 타입 2의 힌트의 확장 버전을 나타낸 도면이다.
도 6을 참고하면, 힌트 타입 2의 힌트(600)는 다수의 변경 부분을 포함할 수 있다. 도 6에 도시된 힌트(600)는 변경 부분 1(601)과 변경 부분 2(602)의 두 개의 변경 부분을 포함하는 것으로 도시하였다.
하나의 변경 부분(601/602)에 대한 정보는 도 5와 같이 변경 시작점의 위치(620/640)와 변경 데이터의 크기(630/650)를 포함한다.
도 6의 힌트를 받은 변경로그 생성부(320)는 힌트(600)에서 제공한 두 개의 변경 부분(601, 602)에 대한 정보를 읽어 변경 전 파일(301)과 변경 후 파일(302)을 비교하지 않고도 힌트(600)의 끝까지 차례대로 변경된 부분의 정보를 읽어 변경 로그(304)를 작성할 수 있다.
다음, 세 번째 경우인 힌트 타입 3은 힌트 타입 1과 같이 파일 전체의 내용을 새로 쓰는 경우이면서 파일에 포함된 실제 데이터의 크기가 파일의 전체 크기에 비교해 많지 않을 때 효과적인 힌트 타입이다. 예를 들어, 크기가 100 바이트인 파일이 있지만, 실제 데이터가 있는 부분의 크기는 10 바이트 밖에 되지 않는 경우, 이 파일을 그대로 수신 노드로 전달할 때는 전체 크기인 100 바이트만큼의 데이터를 보내야 한다. 이때 데이터가 쓰여지지 않은 90 바이트 크기의 영역은 '0'으로 채워져서 보내지게 된다. 힌트 타입 3은 이러한 파일이 생성되는 경우를 나타내며, 이 경우 힌트 생성부(310)는 파일에 실제 데이터가 쓰여진 부분을 힌트로서 알려주고 변경로그 생성부(320)에 제공한다.
도 7은 본 발명의 실시 예에 따른 힌트 타입 3인 경우에 제공되는 힌트의 일 예를 나타낸 도면이다.
도 7을 참고하면, 힌트 타입 3인 힌트(700)는 먼저 힌트 타입(510)과 해당 변경 파일(302)에 실제 데이터가 쓰여진 부분의 정보(701, 702)를 포함한다. 도 7에 도시된 힌트(700)는 데이터 부분 1(701)과 데이터 부분 2(702) 즉, 실제 데이터가 쓰여진 두 데이터 부분(701, 702)의 정보를 포함하는 것으로 도시하였다.
각 데이터 부분(701/602)에 대한 정보는 도 5와 같이 데이터 시작점의 위치(720/740)와 데이터 크기(730/750)를 포함한다.
도 7에 도시한 바와 같이, 힌트 타입(710)이 3이고, 데이터 시작점의 위치(720, 740)가 각각 200, 1000이고, 데이터 크기(730, 750)가 600, 500으로 표시된 힌트(700)는 변경 파일(302)의 첫 번째 데이터 부분(701)의 데이터는 시작 위치가 200바이트인 곳에서 600 바이트만큼의 부분이며, 두 번째 부분의 데이터는 시작 위치가 1000바이트인 곳에서 500 바이트만큼의 부분이라는 것을 나타낸다. 즉, 힌트로로부터 해당 파일에서 실제로 데이터가 쓰여진 크기는 1100바이트라는 것을 알 수 있다.
힌트 타입 3의 힌트를 받은 변경로그 생성부(320)는 변경 후 파일(302)의 전체를 읽지 않고 실제 데이터가 쓰여진 부분만을 읽어 변경 로그를 생성할 수 있다.
한편, 힌트가 제공되지 않는 것이 오히려 유리한 경우도 있다. 이는 변경 범위가 광범위한 경우를 말한다. 즉, 파일을 변경하는 측에서 파일의 많은 부분에 대해서 변경을 하는 경우로, 이와 같은 경우에는 기존의 방법을 그대로 사용하여 로그 파일을 작성하며 이때는 힌트가 제공되지 않는다.
파일의 변경 내용이 전혀 예측되지 않는다면 힌트를 주는 것이 효과적인지 아닌지를 판단하기 어렵다. 하지만, 파일 변경을 특정 소프트웨어 코드에서 정해진 루틴을 따라 수행하는 경우에는 해당 코드에서 어떻게 변경할 것인지 예측할 수 있기 때문에 힌트가 효과적인지 아닌지를 판단할 수 있다.
이에 대한 하나의 실시 예로 분산 파일시스템의 메타데이터 이중화를 들 수 있다. 메타데이터는 파일시스템에 대한 정보를 가진 데이터로 파일시스템에 있어 아주 중요한 요소이다. 따라서 메타데이터를 안전하게 보관하기 위하여 이중화가 필요하다. 이중화를 위해서는 서비스를 수행할 때마다 변경되는 메타데이터를 실시간적으로 다른 노드에 복제해야 한다. 이때 메타데이터의 변경은 메타데이터 서버에서 수행됨으로 메타데이터 서버는 각 서비스 루틴의 동작을 알고 있으며, 따라서 메타데이터가 어떻게 변경될 것인지도 예측할 수 있다. 본 발명의 실시 예는 이러한 경우에 기존의 방법처럼 아무런 힌트 없이 기존 파일과 비교해서 로그 파일을 생성하는 것이 아니라, 파일을 변경하는 루틴에서 제공하는 힌트를 바탕으로 변경 로그 파일을 생성함으로써 로그 파일 작성시 소요되는 부하와 시간을 줄일 수 있다.
도 8은 본 발명의 실시 예에 따른 노드의 데이터 복제 장치를 나타낸 도면이다.
도 8을 참고하면, 송신 노드(100) 및 수신 노드(200)는 각각 데이터 복제 장치(800, 900)를 포함한다.
송신 노드(100)의 데이터 복제 장치(800)는 힌트 제공부(810), 변경로그 생성부(820), 변경로그 전송부(830)를 포함한다.
수신 노드(200)의 데이터 복제 장치(900)는 변경로그 수신부(910) 및 복제부(920)를 포함한다.
송신 노드(100)의 데이터 복제 장치(800)에서, 힌트 제공부(810)는 도 3에서 설명한 변경 파일 루틴(300) 및 힌트 생성부(310)를 포함할 수 있다. 또한 송신 노드(100)의 데이터 복제 장치(800)에서, 변경로그 생성부(820) 및 변경로그 전송부(830)는 도 3에서 설명한 변경로그 생성부(320) 및 변경로그 전송부(330)에 해당한다. 즉, 변경로그 생성부(820)는 도 4 내지 도 7을 토대로 설명한 바와 같이 힌트 생성부(310)에서 제공되는 힌트를 이용하여 변경 로그를 생성할 수 있다. 이때 변경 로그 생성부(820)는 힌트를 그대로 변경 로그로 생성할 수도 있다. 변경 로그 전송부(830)는 생성된 변경 로그를 수신 노드(200)로 전송한다.
수신 노드(200)의 데이터 복제 장치(900)에서, 변경 로그 수신부(910)는 송신 노드(100)의 데이터 복제 장치(800)로부터 변경 로그를 수신한다. 복제부(920)는 변경 로그를 해석하여 수신 노드(200)에 있던 파일(F2)을 파일(F3)로 변경한다. 이렇게 하면, 수신 노드(200)의 변경된 파일(F3)은 송신 노드(100)의 변경된 파일(F1)과 동일해진다.
한편, 두 송/수신 노드는 서로의 역할을 필요에 따라 변경될 수도 있다. 따라서 노드는 송신 노드(100)의 데이터 복제 장치(800) 및 수신 노드(200)의 데이터 복제 장치(900)를 포함할 수 있다.
본 발명의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현되는 것은 아니며, 본 발명의 실시 예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시 예의 기재로부터 본 발명이 속하는 기술 분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속하는 것이다.

Claims (15)

  1. 송신 노드와 수신 노드간 파일을 동기화시키기 위하여 파일을 변경한 상기 송신 노드에서의 데이터 복제 방법으로서,
    파일이 변경되는 경우에, 변경 파일과 상기 변경 파일에 대한 변경 정보를 힌트로서 제공하는 단계,
    상기 변경 파일과 상기 힌트를 참고하여 변경 로그를 생성하는 단계, 그리고
    상기 변경 로그를 상기 수신 노드로 전송하는 단계
    를 포함하는 데이터 복제 방법.
  2. 제1항에서,
    상기 힌트는 힌트 타입 정보를 포함하고,
    상기 힌트 타입 정보는
    상기 변경 파일이 새로운 데이터를 저장하였음을 나타내는 제1 타입,
    상기 변경 파일에서 변경된 부분이 연속되어 있음을 나타내는 제2 타입, 그리고
    상기 변경 파일이 새로운 데이터를 저장한 경우이면서 상기 변경 파일에 포함된 실제 데이터의 크기가 임계 값 이하임을 나타내는 제3 타입 중 하나를 포함하는 데이터 복제 방법.
  3. 제2항에서,
    상기 제1 타입의 힌트는 상기 힌트 타입 정보만을 포함하는 데이터 복제 방법.
  4. 제3항에서,
    상기 생성하는 단계는 상기 제1 타입의 힌트를 제공 받은 경우에 상기 변경 파일의 데이터를 포함하는 변경 로그를 생성하는 단계를 포함하는 데이터 복제 방법.
  5. 제2항에서,
    상기 제2 타입의 힌트는 변경 시작점의 위치 및 변경 데이터의 크기를 더 포함하는 데이터 복제 방법.
  6. 제5항에서,
    상기 생성하는 단계는
    상기 제2 타입의 힌트를 제공 받은 경우에 상기 변경 파일에서 상기 변경 시작점의 위치부터 상기 변경 데이터의 크기만큼의 데이터를 읽는 단계, 그리고
    읽은 데이터를 포함하는 변경 로그를 생성하는 단계를 포함하는 데이터 복제 방법.
  7. 제2항에서,
    상기 제3 타입의 힌트는 상기 변경 파일에서 실제 데이터가 쓰인 데이터 시작점의 위치 및 데이터 크기를 더 포함하는 데이터 복제 방법.
  8. 제7항에서,
    상기 생성하는 단계는
    상기 제3 타입의 힌트를 제공 받은 경우에 상기 변경 파일에서 상기 데이터 시작점의 위치부터 상기 데이터 크기만큼의 데이터를 읽는 단계, 그리고
    읽은 데이터를 포함하는 변경 로그를 생성하는 단계를 포함하는 데이터 복제 방법.
  9. 파일을 변경한 컴퓨팅 노드에서 상기 파일의 변경을 알리기 위한 데이터 복제 장치로서,
    파일이 변경되는 경우에, 변경 파일과 상기 변경 파일에 대한 변경 정보를 힌트로서 제공하는 힌트 제공부,
    상기 변경 파일과 상기 힌트를 참고하여 변경 로그를 생성하는 변경로그 생성부, 그리고
    상기 변경 로그를 다른 컴퓨팅 노드로 전송하는 변경로그 전송부
    를 포함하는 데이터 복제 장치.
  10. 제9항에서,
    상기 힌트는 힌트 타입 정보를 포함하고,
    상기 힌트 제공부는 상기 변경 파일이 새로운 데이터를 저장한 경우에 상기 힌트 타입 정보로 제1 타입을 표시하고, 상기 변경 파일의 변경 부분이 연속되어 있는 경우에 상기 힌트 타입 정보로 제2 타입을 표시하는 데이터 복제 장치.
  11. 제10항에서,
    상기 변경로그 생성부는 상기 제1 타입의 힌트를 제공 받은 경우에 상기 변경 파일의 데이터를 포함하는 변경 로그를 생성하는 데이터 복제 장치.
  12. 제10항에서,
    상기 제2 타입인 힌트는 변경 시작점의 위치 및 변경 데이터의 크기를 더 포함하며,
    상기 변경로그 생성부는 상기 제2 타입의 힌트를 제공 받은 경우에 상기 변경 파일에서 상기 변경 시작점의 위치부터 상기 변경 데이터의 크기만큼의 데이터를 읽어서 변경 로그를 생성하는 데이터 복제 장치.
  13. 제10항에서,
    상기 힌트 제공부는 상기 변경 파일이 새로운 데이터를 저장한 경우이면서 상기 변경 파일에 포함된 실제 데이터의 크기가 임계 값 이하인 경우에 상기 힌트 타입 정보로 제3 타입을 표시하는 데이터 복제 장치.
  14. 제13항에서,
    상기 제3 타입의 힌트는 상기 변경 파일에서 실제 데이터가 쓰인 데이터 시작점의 위치 및 데이터 크기를 더 포함하며,
    상기 변경로그 생성부는 상기 제3 타입의 힌트를 제공 받은 경우에 상기 변경 파일에서 상기 데이터 시작점의 위치부터 상기 데이터 크기만큼의 데이터를 읽어 상기 변경로그를 생성하는 데이터 복제 장치.
  15. 제10항에서,
    상기 힌트 제공부는
    상기 파일이 변경되는 경우에 변경 파일을 제공하는 변경파일루틴, 그리고
    상기 변경 파일에 대한 변경 정보를 상기 힌트로서 제공하는 힌트 생성부를 포함하는 데이터 복제 장치.
KR1020130077380A 2013-07-02 2013-07-02 데이터 복제 방법 및 장치 KR20150004200A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130077380A KR20150004200A (ko) 2013-07-02 2013-07-02 데이터 복제 방법 및 장치
US14/082,962 US20150012492A1 (en) 2013-07-02 2013-11-18 Method and apparatus for replicating data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130077380A KR20150004200A (ko) 2013-07-02 2013-07-02 데이터 복제 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20150004200A true KR20150004200A (ko) 2015-01-12

Family

ID=52133513

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130077380A KR20150004200A (ko) 2013-07-02 2013-07-02 데이터 복제 방법 및 장치

Country Status (2)

Country Link
US (1) US20150012492A1 (ko)
KR (1) KR20150004200A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108572749A (zh) * 2017-03-14 2018-09-25 中兴通讯股份有限公司 一种终端控制方法和系统、设置适配装置、及移动终端

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6018747A (en) * 1997-11-26 2000-01-25 International Business Machines Corporation Method for generating and reconstructing in-place delta files
US6526418B1 (en) * 1999-12-16 2003-02-25 Livevault Corporation Systems and methods for backing up data files
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
US7698318B2 (en) * 2006-02-10 2010-04-13 Microsoft Corporation Automatically determining file replication mechanisms
KR100717064B1 (ko) * 2006-03-03 2007-05-10 삼성전자주식회사 소프트웨어 업데이트 실행 방법 및 장치
US8296268B2 (en) * 2006-07-21 2012-10-23 Samsung Electronics Co., Ltd. System and method for change logging in a firmware over the air development environment
US8166263B2 (en) * 2008-07-03 2012-04-24 Commvault Systems, Inc. Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices
US8990161B1 (en) * 2008-09-30 2015-03-24 Emc Corporation System and method for single segment backup
JP5061166B2 (ja) * 2009-09-04 2012-10-31 Kii株式会社 データ同期システムおよびデータ同期方法
US9177009B2 (en) * 2012-06-28 2015-11-03 Microsoft Technology Licensing, Llc Generation based update system
US9244960B2 (en) * 2013-03-15 2016-01-26 International Business Machines Corporation Metadata-driven version management service in pervasive environment

Also Published As

Publication number Publication date
US20150012492A1 (en) 2015-01-08

Similar Documents

Publication Publication Date Title
US10055216B2 (en) Minimizing image copying during partition updates
JP6151353B2 (ja) 分散ストレージシステム及び分散ストレージの方法
CN107018185B (zh) 云存储系统的同步方法和装置
US8839031B2 (en) Data consistency between virtual machines
CN103761162A (zh) 分布式文件系统的数据备份方法
JP5548829B2 (ja) 計算機システム、データ管理方法及びデータ管理プログラム
US10726042B2 (en) Replication control using eventually consistent meta-data
JP2007507030A (ja) データを同期させるための方法、システム及びプログラム
US20140195575A1 (en) Data file handling in a network environment and independent file server
US11074224B2 (en) Partitioned data replication
CN109492049B (zh) 用于区块链网络的数据处理、区块生成及同步方法
CN108810112B (zh) 一种市场监管区块链系统的节点同步方法及装置
US20130282653A1 (en) Initializing replication in a virtual machine
CN106605217B (zh) 用于将应用从一个站点移动到另一站点的方法和系统
CN106873902B (zh) 一种文件存储系统、数据调度方法及数据节点
CN106790378A (zh) 设备间的数据全同步方法、装置及系统
CN108733516A (zh) 多云安全存储动态平衡备份方法及系统
CN105550230B (zh) 分布式存储系统节点故障的侦测方法和装置
KR20150004200A (ko) 데이터 복제 방법 및 장치
KR101748913B1 (ko) 분산 저장 환경에서 게이트웨이를 선택하기 위한 클러스터 관리 방법 및 데이터 저장 시스템
US20140215153A1 (en) Storage system, disk array apparatus and control method for storage system
JP2017208113A (ja) データ格納方法、データストレージ装置、及びストレージデバイス
JP5963324B2 (ja) 仮想シーケンシャルアクセスボリュームのデータのコピー方法、システム
JP2013004067A (ja) ストレージシステム、ストレージ制御方法、プログラム
JP6291977B2 (ja) 分散ファイルシステム、バックアップファイル取得方法、制御装置及び管理装置

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid