KR20140117994A - 복제 파일 중복 제거 방법 및 장치 - Google Patents

복제 파일 중복 제거 방법 및 장치 Download PDF

Info

Publication number
KR20140117994A
KR20140117994A KR1020130033054A KR20130033054A KR20140117994A KR 20140117994 A KR20140117994 A KR 20140117994A KR 1020130033054 A KR1020130033054 A KR 1020130033054A KR 20130033054 A KR20130033054 A KR 20130033054A KR 20140117994 A KR20140117994 A KR 20140117994A
Authority
KR
South Korea
Prior art keywords
data block
requested data
identifier
hash key
chunk
Prior art date
Application number
KR1020130033054A
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 KR1020130033054A priority Critical patent/KR20140117994A/ko
Priority to US13/927,520 priority patent/US20140297603A1/en
Publication of KR20140117994A publication Critical patent/KR20140117994A/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/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • G06F16/1752De-duplication implemented within the file system, e.g. based on file segments based on file chunks
    • 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
    • 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
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

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

Abstract

복제 파일 중복 제거 장치는 요청된 데이터 블록의 해시키를 생성하고, 요청된 데이터 블록의 해시키를 이용하여 요청된 데이터 블록과 동일한 골든 이미지 파일로부터 파생된 복제 이미지 파일의 데이터 블록 중에서 요청된 데이터 블록과 동일한 데이터 블록이 있는지 확인한 후, 동일한 데이터 블록이 존재하면 요청된 데이터 블록과 동일한 데이터 블록이 저장되어 있는 청크의 정보를 요청된 데이터 블록의 레이아웃에 기록한다.

Description

복제 파일 중복 제거 방법 및 장치{METHOD AND APPARATUS FOR DEDUPLICATION OF REPLICATED FILE}
본 발명은 복제 파일 중복 제거 방법 및 장치에 관한 것으로, 더욱 자세하게는 가상 머신의 복제 이미지 저장 공간의 효율성을 향상시키기 위한 복제 이미지의 중복 제거 방법 및 장치에 관한 것이다.
가상 데스크탑 환경에서는 가상 머신 생성 시간을 단축시키고, 저장 공간 효율성을 증가시키기 위해 사용자가 사용하는 공통 운영체제에 대한 골든 이미지를 생성하고 링크드 클론(linked clone) 또는 제로 카피 클론(zero copy clone)과 같은 기술을 이용하여 복제 이미지를 생성하고, 사용자의 가상 머신 별로 골든 이미지와 다른 데이터 블록들만을 저장하는 방식을 제공하고 있다.
그러나 초기 복제 이후, 사용자별 변경 데이터 누적으로 복제 이미지 크기가 증가하여 보안 업데이트와 같이 복제 이미지 별로 변경된 데이터가 중복되어도 이를 복제 이미지별로 중복 저장하는 단점이 존재한다.
이를 해결하기 위한 방법으로 서로 다른 파일들 간에 중복되는 부분을 검출하고, 중복된 부분을 제거함으로써 저장 공간 활용 효율을 증가시키는 중복 제거 기술이 존재한다.
미국 공개 특허 제2012-0167087호에 "Apparatus and method for driving virtual machine, and method for deduplication of virtual machine image"가 개시되어 있다. 이 기술은 가상 머신 이미지를 미리 정의된 크기의 청크로 나누어 저장하고 청크에 대한 식별자를 부여한다. 스토리지에 저장되지 않은 청크 저장 요청이 발생하면 요청된 청크에 식별자를 생성하여 부여하고 이전에 저장된 청크의 식별자 중에 같은 식별자가 존재하는지 검사한다. 이미 같은 식별자가 존재하면 같은 청크로 간주하여 해당 청크 식별자에 대한 접근 빈도수를 증가시키고 이를 가상 머신 이미지에 등록하여 해당 청크를 참조하도록 한다. 이를 통해 중복된 청크 저장을 회피할 수 있다.
이때 스토리지에 저장된 가상 이미지들의 총 크기가 1TB, 청크의 크기가 4KB, 식별자의 길이가 4byte라 가정할 때 중복 검사를 위해 필요한 식별자 테이블의 크기는 1TB / 4KB * 32byte(256bit) = 약 8GB 이며 가상 머신의 수가 증가할수록 테이블을 메모리 내에 유지하지 못하는 상황이 발생한다. 따라서 일부만 메모리에 유지하고 나머지는 하드디스크(HDD)에 저장해야 하며 이에 따른 디스크 접근으로 식별자 검색에 따른 중복 검사 시간 증가로 쓰기 성능이 저하되는 단점이 존재한다. 따라서 중복 검사에 필요한 청크 식별자 테이블의 크기를 줄이기 위한 방법이 필요하다.
대한민국 공개특허 제10-2012-0074817호에는 "저장 장치의 중복 제거 성능 향상을 위한 맵핑 관리 시스템 및 방법" 이 개시되어 있다. 이 기술은 복수의 데이터가 중복 되는 경우, 이를 맵핑 테이블에 기록하여 신규 데이터가 저장된 데이터와 중복될 경우, 신규 데이터를 저장하지 않고 저장된 데이터를 참조하도록 맵핑 정보를 맵핑 테이블에 저장하여 데이터 저장에 필요한 연산의 수를 감소시키는 방법에 관한 것이다. 그러나 이 기술 또한 전체 스토리지 공간에 대한 맵핑 정보를 유지해야 하기 때문에 상기 언급한 문제가 동일하게 발생하는 단점이 존재한다.
본 발명이 해결하고자 하는 기술적 과제는 가상 머신의 복제 이미지 저장 공간 효율성을 향상시킬 수 있는 복제 파일 중복 제거 방법 및 장치를 제공하는 것이다.
본 발명의 한 실시 예에 따르면, 가상 머신의 골든 이미지 파일로부터 파생된 복제 이미지 파일의 중복을 제거하는 장치가 제공된다. 복제 파일 중복 제거 장치는 중복 제거 테이블, 그리고 중복 제거 제어부를 포함한다. 상기 중복 제거 테이블은 골든 이미지 파일별로 복제 이미지 파일들의 해시키와 청크 식별자를 맵핑하고 있다. 그리고 상기 중복 제거 제어부는 상기 중복 제거 테이블을 참조하여 쓰기 요청된 데이터 블록과 동일한 골든 이미지 파일에 대한 복제 이미지 파일들의 데이터 블록 중에서 상기 요청된 데이터 블록과 동일한 데이터 블록이 있는지 검색하고, 동일한 데이터 블록이 있는 경우에 중복 제거 처리를 수행한다.
상기 중복 제거 테이블은 골든 이미지 파일을 나타내는 공유 이미지 식별자를 저장하는 공유 이미지 식별자 테이블, 그리고 공유 이미지 식별자별로 복제 이미지 파일들의 각 데이터 블록에 대한 해시키와 청크 식별자를 맵핑하고 있는 복수의 해시키 테이블을 포함한다. 이때 상기 중복 제거 제어부는 상기 요청된 데이터 블록의 공유 이미지 식별자에 해당하는 해시키 테이블을 참조하여 상기 요청된 데이터 블록의 해시키에 맵핑되어 있는 청크 식별자가 존재하면 상기 요청된 파일 블록과 동일한 파일 블록이 있는 것으로 판단할 수 있다.
복제 파일 중복 제거 장치는 메타데이터 제어부를 더 포함할 수 있다. 상기 메타데이터 제어부는 상기 골든 이미지 파일과 상기 복제 이미지 파일에 대한 메타데이터를 관리한다. 상기 메타데이터는 상기 골든 이미지 파일을 식별하기 위한 공유 이미지 식별자 및 상기 골든 이미지 파일과 상기 복제 이미지 파일의 각 데이터 블록의 청크를 나타내는 데이터 블록 레이아웃을 포함할 수 있다. 이때 상기 중복 제거 제어부는 상기 메타데이터 제어부로부터 상기 요청된 데이터 블록의 공유 이미지 식별자를 획득할 수 있다.
상기 메타데이터는 상기 골든 이미지 파일 및 상기 복제 이미지 파일이 생성될 때 생성될 수 있다.
상기 중복 제거 제어부는 상기 요청된 데이터 블록과 동일한 데이터 블록이 존재하는 경우에, 상기 메타데이터 제어부로부터 상기 요청된 데이터 블록의 레이아웃의 위치를 획득하고, 획득한 레이아웃의 위치에 상기 요청된 데이터 블록의 해시키에 매핑되어 있는 청크 식별자를 기록할 수 있다.
상기 중복 제거 제어부는 상기 요청된 데이터 블록과 동일한 데이터 블록이 존재하지 않는 경우에, 새로운 청크 식별자를 상기 요청된 데이터 블록의 해시키에 맵핑하여 상기 중복 제거 테이블에 등록할 수 있다.
상기 중복 제거 제어부는 상기 요청된 데이터 블록과 동일한 데이터 블록이 존재하지 않는 경우에, 상기 메타데이터 제어부로부터 상기 새로운 청크 식별자를 획득하고, 상기 새로운 청크 식별자와 상기 요청된 데이터 블록을 청크 서버로 전달하며, 상기 요청된 데이터 블록은 상기 청크 서버에 의해 상기 새로운 청크 식별자에 대응하여 저장될 수 있다.
상기 복제 파일 중복 제거 장치는 하드웨어 가속을 이용하여 상기 요청된 파일 블록의 해시키를 생성하는 해시키 생성부를 더 포함할 수 있다.
본 발명의 다른 한 실시 예에 따르면, 복제 파일 중복 제거 장치가 가상 머신의 골든 이미지 파일로부터 파생된 복제 이미지 파일의 중복을 제거하는 방법이 제공된다. 복제 파일 중복 제거 방법은 쓰기 요청된 데이터 블록의 해시키를 생성하는 단계, 상기 요청된 데이터 블록의 해시키를 이용하여 상기 요청된 데이터 블록과 동일한 골든 이미지 파일로부터 파생된 복제 이미지 파일들의 데이터 블록 중에서 상기 요청된 데이터 블록과 동일한 데이터 블록이 있는지 확인하는 단계, 그리고 상기 동일한 데이터 블록이 존재하면 중복 제거 처리를 수행하는 단계를 포함한다.
상기 확인하는 단계는 상기 요청된 데이터 블록에 해당하는 골든 이미지 파일의 공유 이미지 식별자를 획득하는 단계, 공유 이미지 식별자별로 복제 이미지 파일들의 각 데이터 블록에 대한 해시키와 청크 식별자를 맵핑하고 있는 복수의 해시키 테이블 중에서 상기 획득한 공유 이미지 식별자에 해당하는 해시키 테이블을 참조하여 상기 요청된 데이터 블록의 해시키에 맵핑되어 있는 청크 식별자가 존재하는지 확인하는 단계, 그리고 상기 요청된 데이터 블록의 해시키에 맵핑되어 있는 청크 식별자가 존재하는 경우에, 상기 요청된 데이터 블록과 동일한 데이터 블록이 있는 것으로 판단하는 단계를 포함할 수 있다.
상기 수행하는 단계는 상기 요청된 데이터 블록의 레이아웃의 위치를 획득하는 단계, 그리고 상기 요청된 데이터 블록의 레이아웃의 위치에 상기 요청된 데이터 블록의 해시키에 맵핑되어 있는 청크 식별자를 기록하는 단계를 포함할 수 있다.
상기 확인하는 단계는 상기 요청된 데이터 블록의 해시키에 맵핑되어 있는 청크 식별자가 존재하지 않는 경우에, 상기 요청된 데이터 블록과 동일한 데이터 블록이 존재하지 않는 것으로 판단하는 단계를 더 포함할 수 있다.
상기 복제 파일 중복 제거 방법은 상기 동일한 데이터 블록이 존재하지 않으면 새로운 청크 식별자를 상기 요청된 데이터 블록의 해시키에 맵핑하여 상기 해시키 테이블에 등록하는 단계를 더 포함할 수 있다.
상기 복제 파일 중복 제거 방법은 상기 동일한 데이터 블록이 존재하지 않으면 새로운 청크 식별자와 상기 요청된 데이터 블록을 청크 서버로 전달하는 단계를 더 포함할 수 있다. 이때 상기 요청된 데이터 블록은 상기 청크 서버에 의해 상기 새로운 청크 식별자에 대응하여 저장될 수 있다.
상기 생성하는 단계는 하드웨어 가속을 이용하여 상기 요청된 파일 블록에 대한 해시키를 생성하는 단계를 포함할 수 있다.
본 발명의 실시 예에 의하면, 가상 데스크탑 환경에서 가상 머신의 복제 이미지 저장 공간의 활용 효율을 증가시킬 수 있으며, 기존 방법 대비 인라인(in-line) 중복 제거 시간이 단축 되어 쓰기 성능이 향상되는 이점이 있다.
도 1은 본 발명의 실시 예에 따른 복제 파일 중복 제거 장치가 적용되는 가상 데스크탑 환경에서의 중복 제거 시스템의 일 예를 나타낸 도면이다.
도 2는 도 1에 도시된 중복 제거 서버의 일 예를 나타내는 도면이다.
도 3은 도 1에 도시된 청크 서버의 일 예를 나타내는 도면이다.
도 4는 도 2에 도시된 메타데이터 제어부가 관리하는 메타데이터의 일 예를 나타내는 도면이다.
도 5는 도 2에 도시된 중복 제거 테이블의 일 예를 나타내는 도면이다.
도 6은 본 발명의 실시 예에 따른 중복 제거 서버에서의 중복 제거 방법을 나타내는 흐름도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
이제 본 발명의 실시 예에 따른 복제 파일 중복 제거 방법 및 장치에 대하여 도면을 참고로 하여 상세하게 설명한다.
도 1은 본 발명의 실시 예에 따른 복제 파일 중복 제거 장치가 적용되는 가상 데스크탑 환경에서의 중복 제거 시스템의 일 예를 나타낸 도면이다.
도 1을 참고하면, 중복 제거 시스템은 적어도 하나의 가상 데스크탑 서버(100), 복제 파일 중복 제거 장치(이하, 편의상 "중복 제거 서버"라 함)(200) 및 적어도 하나의 청크 서버(300)를 포함한다.
가상 데스크탑 서버(100)는 사용자의 가상 머신이 실행되며 중복 제거 서버(200)로 가상 머신 이미지에 대한 입출력 요청을 전달한다.
중복 제거 서버(200)는 가상 데스크탑 서버(100)로부터 입출력 요청을 전달받아 입출력 요청을 처리한다.
파일의 데이터 블록에 대한 쓰기 요청이 발생하면, 중복 제거 서버(200)는 요청된 데이터 블록에 대한 중복 검사를 수행하고, 요청된 데이터 블록이 중복된 데이터일 경우 데이터를 저장하지 않고 저장되어 있는 동일한 데이터에 대한 청크 정보를 해당 데이터 블록의 레이아웃에 기록하여 갱신한다. 또한 중복 제거 서버(200)는 요청된 데이터 블록이 중복되지 않은 데이터일 경우 요청된 데이터 블록에 대한 청크의 정보를 중복 제거 테이블에 등록하고 해당 데이터 블록을 청크 서버(300)에 저장한다.
청크 서버(300)는 파일의 데이터 블록에 해당하는 청크(chunk)들에 대한 실제 입출력 관리를 수행한다. 파일은 고정된 크기의 데이터 블록으로 나누어진다. 이때 데이터 블록이 청크에 저장된다.
도 2는 도 1에 도시된 중복 제거 서버의 일 예를 나타내는 도면이다.
도 2를 참고하면, 중복 제거 서버(200)는 메타데이터 제어부(210) 및 중복 제거 테이블 관리부(220)를 포함한다.
메타데이터 제어부(210)는 가상 머신의 골든 이미지 파일과 골든 이미지 파일로부터 파생된 복제 이미지 파일에 대한 메타데이터를 관리한다.
중복 제거 테이블 관리부(220)는 해시키 생성부(222), 중복 제거 테이블(224) 및 중복 제거 제어부(226)를 포함한다.
중복 제거 테이블 관리부(220)는 가상 데스크탑 서버(100)로부터 쓰기 요청이 발생한 경우 요청된 데이터 블록에 대한 중복 검사를 수행하여 동일한 데이터가 저장되지 않도록 한다. 이를 위해 해시키 생성부(222)는 요청된 데이터 블록에 대해 해시키를 생성하고, 중복제거 제어부(226)는 생성된 해시키를 이용하여 중복 제거 테이블(224)에 동일한 데이터 블록이 존재하는지 중복 검사를 수행한다. 이때 해시키 생성부(222)는 AES-NI와 같은 하드웨어 가속을 이용하여 해시키 계산 속도를 가속화시킨다. 중복 제거 테이블(224)은 골든 이미지 파일별로 복제 이미지 파일들에 대한 중복 제거를 위해 복제 이미지 파일들의 각 데이터 블록에 대한 해시키와 이 해시키에 맵핑되어 있는 청크 식별자를 관리한다. 중복 제거 제어부(226)는 요청된 데이터 블록에 대한 해시키로 해당 중복 제거 테이블(224)을 검사하여 중복된 데이터 블록의 존재 유무를 판단하고, 중복된 데이터 블록이 존재하지 않으면 해당 데이터 블록을 청크 서버(300)에 저장하고, 중복된 데이터 블록이 존재하면 요청된 데이터 블록에 대한 레이아웃을 변경한다.
이러한 중복 제거 서버(200)는 시스템 구성에 따라 다수의 물리적 서버를 구성할 수 있으며, 각 서버별로 골든 이미지 파일별 중복 제거 테이블을 구성할 수도 있다.
도 3은 도 1에 도시된 청크 서버의 일 예를 나타내는 도면이다.
도 3을 참고하면, 청크 서버(300)는 청크 제어부(310) 및 저장부(320)를 포함한다.
청크 제어부(310)는 요청된 데이터 블록의 청크 식별자에 해당하는 청크의 저장 및 읽기를 수행한다. 청크 제어부(310)는 읽기 요청이 발생하면 해당 청크 식별자에 해당하는 청크를 저장부(320)로부터 읽어 반환하고, 쓰기 요청이 발생하면 해당 청크 식별자에 해당하는 새로운 청크를 생성하여 해당 데이터를 저장부(320)에 저장한다.
저장부(320)는 청크 식별자에 해당하는 청크를 저장하고 있다.
도 4는 도 2에 도시된 메타데이터 제어부가 관리하는 메타데이터의 일 예를 나타내는 도면이다.
도 4를 참고하면, 메타데이터 제어부(210)가 관리하는 메타 데이터(212)는 파일의 이름, 크기, 생성시간, 소유권 등의 일반 파일 정보에 해당하는 파일 메타데이터와 해당 파일의 골든 이미지를 지칭하는 공유 이미지 식별자, 그리고 해당 파일의 각 데이터 블록이 저장된 청크를 지칭하는 데이터 블록 레이아웃을 포함한다. 이러한 파일의 메타데이터는 가상 머신의 골든 이미지, 이에 대한 복제 이미지가 생성될 때 생성되며, 해당 이미지가 삭제될 때 메타데이터는 삭제된다.
메타데이터 제어부(210)는 읽기 요청을 전달받으면 요청된 데이터 블록의 메타데이터의 레이아웃 정보로부터 해당 데이터 블록에 대한 청크 식별자를 획득하고, 획득한 청크 식별자에 해당하는 청크를 저장하고 있는 청크 서버(300)로 청크 식별자를 전달한다. 그러면 청크 서버(300)가 청크 식별자에 해당하는 청크를 읽어서 반환한다.
메타데이터 제어부(210)는 쓰기 요청을 전달 받으면, 요청된 데이터 블록이 중복된 데이터인지 여부에 따라서 필요한 메타데이터의 정보들을 중복 제거 서버(200)에 제공한다.
도 5는 도 2에 도시된 중복 제거 테이블의 일 예를 나타내는 도면이다.
도 5를 참고하면, 중복 제거 테이블(224)은 공유 이미지 식별자 테이블(2241) 및 복수의 해시 테이블(22421~2242N)을 포함한다.
공유 이미지 식별자 테이블(2241)은 골든 이미지를 지칭하는 공유 이미지 식별자를 저장 및 관리한다.
각 가상 머신의 복제 이미지가 공유하는 골든 이미지의 공유 이미지 식별자별로 해시 테이블(22421~2242N)이 존재한다. 공유 이미지 식별자가 같은 복제 이미지 그룹내에서만 중복제거가 수행된다.
해시 테이블(22421~2242N)은 각각 해당 골든 이미지 파일로부터 파생된 복제 이미지 파일들의 데이터 블록에 대한 해시키와 해시키에 해당하는 청크 식별자를 맵핑하여 저장 및 관리한다.
사용자로부터 쓰기 요청이 발생하면 가상 데스크탑 서버(100)는 쓰기 요청을 중복 제거 테이블 관리부(220)로 전달한다.
중복 제거 테이블 관리부(220)의 해시키 생성부(222)는 요청된 데이터 블록에 대한 해시키를 생성한다. 중복 제거 제어부(226)는 생성된 해시키를 이용하여 중복 제거 테이블(224)을 검색한다. 이때 먼저 중복 제거 제어부(226)는 공유 이미지 식별자 테이블(2241)로부터 요청된 데이터 블록에 해당하는 골든 이미지 파일의 공유 이미지 식별자에 대한 해시 테이블을 나타내는 엔트리 즉, 해시 테이블 참조를 검색한다. 다음, 중복 제거 제어부(226)는 해시 테이블(22421~2242N) 중에서 검색한 엔트리에 해당하는 해시 테이블로부터 요청된 데이터 블록의 해시키에 맵핑되어 있는 청크 식별자가 존재하는지 판단한다.
중복 제거 제어부(226)는 요청된 데이터 블록의 해시키에 맵핑되어 있는 청크 식별자가 존재하면 요청된 데이터 블록이 중복된 데이터인 것으로 판단하여 중복 제거 처리를 수행하며, 그렇지 않은 경우에는 해시 테이블(2242)에 새로운 청크 식별자를 등록하고, 요청된 데이터 블록에 대한 새로운 청크를 청크 서버(300)에 저장한다.
도 6은 본 발명의 실시 예에 따른 중복 제거 서버에서의 중복 제거 방법을 나타내는 흐름도이다.
도 6을 참고하면, 중복 제거 서버(200)는 가상 데스크탑 서버(100)로부터 파일의 데이터 블록에 대한 쓰기 요청을 수신한다(S602).
중복 제거 테이블 관리부(220)의 해시키 생성부(222)는 요청된 데이터 블록에 대해 AES-NI와 같은 하드웨어 가속을 이용하여 해시키를 생성한다(S604).
메타데이터 제어부(210)는 요청된 파일 블록에 해당하는 복제 이미지 파일의 메타데이터를 검색하여 요청된 파일 블록에 해당하는 공유 이미지 식별자를 획득한다(S606).
중복 제거 테이블 관리부(220)의 중복 제거 제어부(226)는 획득한 공유 이미지 식별자를 이용하여 공유 이미지 식별자 테이블(2241)을 검색하고, 해당하는 공유 이미지 식별자에 대한 해시 테이블을 나타내는 해시테이블 참조를 획득한다(S608).
중복 제거 제어부(226)는 획득한 해시테이블 참조에 해당하는 해시테이블에서 해시키를 검색하고(S610), 검색된 해시키에 맵핑되어 있는 청크 식별자가 존재하는지 판단한다(S612).
중복 제거 제어부(226)는 해시키에 맵핑되어 있는 청크 식별자가 존재하면 요청된 데이터 블록이 중복 데이터인 것으로 판단하여 중복 제거 과정을 수행하며, 그렇지 않은 경우에는 새로운 청크로 판단하여 청크 저장을 수행한다.
먼저, 해시키에 맵핑되어 있는 청크 식별자가 존재하지 않는 경우, 중복 제거 제어부(226)는 메타데이터 제어부(210)로부터 새로운 청크 식별자와 해당 청크를 저장할 청크 서버(300)의 정보를 획득한다(S614).
중복 제거 제어부(226)는 메타데이터 제어부(210)로부터 획득한 청크 식별자와 요청된 데이터 블록을 해당 청크 서버(300)에 전달하고(S616), 해당 청크 서버는 요청된 데이터 블록에 해당하는 새로운 청크를 저장한다.
중복 제거 제어부(226)는 새로 생성된 청크 식별자를 요청된 데이터 블록의 해시키와 함께 해당 해시 테이블에 등록한다(S618). 이렇게 함으로써, 이후 발생하는 동일한 블록 데이터의 저장 요청이 발생할 때 해당 해시테이블을 참조하여 중복 저장이 되지 않도록 할 수 있다.
다음, 중복 제거 제어부(226)는 요청된 데이터 블록에 해당하는 파일의 데이터 블록 레이아웃을 메타데이터 제어부(210)로부터 획득하고(S620), 요청된 데이터 블록에 해당하는 레이아웃의 위치에 새로이 생성된 청크 식별자를 기록한다(S622).
마지막으로, 중복 제거 제어부(226)는 갱신된 레이아웃을 메타데이터 제어부(210)로 반환한다(S624). 메타데이터 제어부(210)는 갱신된 레이아웃을 기록한다.
한편, 중복 제거 제어부(226)는 요청된 데이터 블록의 해시키에 맵 핑되어 있는 청크 식별자가 존재하면, 요청된 데이터 블록에 해당하는 파일의 데이터 블록 레이아웃을 메타데이터 제어부(210)로부터 획득한다(S622).
중복 제거 제어부(226)는 요청된 데이터 블록에 해당하는 레이아웃 위치에 해시 테이블에서 검색된 청크 식별자를 기록한다(S624).
마지막으로, 중복 제거 제어부(226)는 갱신된 레이아웃을 메타데이터 제어부(210)로 반환한다.
본 발명의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현되는 것은 아니며, 본 발명의 실시 예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시 예의 기재로부터 본 발명이 속하는 기술 분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속하는 것이다.

Claims (15)

  1. 가상 머신의 골든 이미지 파일로부터 파생된 복제 이미지 파일의 중복을 제거하는 장치로서,
    골든 이미지 파일별로 복제 이미지 파일들의 해시키와 청크 식별자를 맵핑하고 있는 중복 제거 테이블, 그리고
    상기 중복 제거 테이블을 참조하여 쓰기 요청된 데이터 블록과 동일한 골든 이미지 파일에 대한 복제 이미지 파일들의 데이터 블록 중에서 상기 요청된 데이터 블록과 동일한 데이터 블록이 있는지 검색하고, 동일한 데이터 블록이 있는 경우에 중복 제거 처리를 수행하는 중복 제거 제어부
    를 포함하는 복제 파일 중복 제거 장치.
  2. 제1항에서,
    상기 중복 제거 테이블은
    골든 이미지 파일을 나타내는 공유 이미지 식별자를 저장하는 공유 이미지 식별자 테이블, 그리고
    공유 이미지 식별자별로 복제 이미지 파일들의 각 데이터 블록에 대한 해시키와 청크 식별자를 맵핑하고 있는 복수의 해시키 테이블을 포함하고,
    상기 중복 제거 제어부는 상기 요청된 데이터 블록의 공유 이미지 식별자에 해당하는 해시키 테이블을 참조하여 상기 요청된 데이터 블록의 해시키에 맵핑되어 있는 청크 식별자가 존재하면 상기 요청된 파일 블록과 동일한 파일 블록이 있는 것으로 판단하는 복제 파일 중복 제거 장치.
  3. 제2항에서,
    상기 골든 이미지 파일과 상기 복제 이미지 파일에 대한 메타데이터를 관리하는 메타데이터 제어부
    를 더 포함하고,
    상기 메타데이터는 상기 골든 이미지 파일을 식별하기 위한 공유 이미지 식별자 및 상기 골든 이미지 파일과 상기 복제 이미지 파일의 각 데이터 블록의 청크를 나타내는 데이터 블록 레이아웃을 포함하며,
    상기 중복 제거 제어부는 상기 메타데이터 제어부로부터 상기 요청된 데이터 블록의 공유 이미지 식별자를 획득하는 복제 파일 중복 제거 장치.
  4. 제3항에서,
    상기 메타데이터는 상기 골든 이미지 파일 및 상기 복제 이미지 파일이 생성될 때 생성되는 복제 파일 중복 제거 장치.
  5. 제3항에서,
    상기 중복 제거 제어부는 상기 요청된 데이터 블록과 동일한 데이터 블록이 존재하는 경우에, 상기 메타데이터 제어부로부터 상기 요청된 데이터 블록의 레이아웃의 위치를 획득하고, 획득한 레이아웃의 위치에 상기 요청된 데이터 블록의 해시키에 매핑되어 있는 청크 식별자를 기록하는 복제 파일 중복 제거 장치.
  6. 제3항에서,
    상기 중복 제거 제어부는 상기 요청된 데이터 블록과 동일한 데이터 블록이 존재하지 않는 경우에, 새로운 청크 식별자를 상기 요청된 데이터 블록의 해시키에 맵핑하여 상기 중복 제거 테이블에 등록하는 복제 파일 중복 제거 장치.
  7. 제6항에서,
    상기 중복 제거 제어부는 상기 요청된 데이터 블록과 동일한 데이터 블록이 존재하지 않는 경우에, 상기 메타데이터 제어부로부터 상기 새로운 청크 식별자를 획득하고, 상기 새로운 청크 식별자와 상기 요청된 데이터 블록을 청크 서버로 전달하며,
    상기 요청된 데이터 블록은 상기 청크 서버에 의해 상기 새로운 청크 식별자에 대응하여 저장되는 복제 파일 중복 제거 장치.
  8. 제2항에서,
    하드웨어 가속을 이용하여 상기 요청된 파일 블록의 해시키를 생성하는 해시키 생성부
    를 더 포함하는 복제 파일 중복 제거 장치.
  9. 복제 파일의 중복 제거 장치가 가상 머신의 골든 이미지 파일로부터 파생된 복제 이미지 파일의 중복을 제거하는 방법으로서,
    쓰기 요청된 데이터 블록의 해시키를 생성하는 단계,
    상기 요청된 데이터 블록의 해시키를 이용하여 상기 요청된 데이터 블록과 동일한 골든 이미지 파일로부터 파생된 복제 이미지 파일들의 데이터 블록 중에서 상기 요청된 데이터 블록과 동일한 데이터 블록이 있는지 확인하는 단계, 그리고
    상기 동일한 데이터 블록이 존재하면 중복 제거 처리를 수행하는 단계
    를 포함하는 복제 파일 중복 제거 방법.
  10. 제9항에서,
    상기 확인하는 단계는
    상기 요청된 데이터 블록에 해당하는 골든 이미지 파일의 공유 이미지 식별자를 획득하는 단계,
    공유 이미지 식별자별로 복제 이미지 파일들의 각 데이터 블록에 대한 해시키와 청크 식별자를 맵핑하고 있는 복수의 해시키 테이블 중에서 상기 획득한 공유 이미지 식별자에 해당하는 해시키 테이블을 참조하여 상기 요청된 데이터 블록의 해시키에 맵핑되어 있는 청크 식별자가 존재하는지 확인하는 단계, 그리고
    상기 요청된 데이터 블록의 해시키에 맵핑되어 있는 청크 식별자가 존재하는 경우에, 상기 요청된 데이터 블록과 동일한 데이터 블록이 있는 것으로 판단하는 단계를 포함하는 복제 파일 중복 제거 방법.
  11. 제10항에서,
    상기 수행하는 단계는
    상기 요청된 데이터 블록의 레이아웃의 위치를 획득하는 단계, 그리고
    상기 요청된 데이터 블록의 레이아웃의 위치에 상기 요청된 데이터 블록의 해시키에 맵핑되어 있는 청크 식별자를 기록하는 단계를 포함하는 복제 파일 중복 제거 방법.
  12. 제10항에서,
    상기 확인하는 단계는
    상기 요청된 데이터 블록의 해시키에 맵핑되어 있는 청크 식별자가 존재하지 않는 경우에, 상기 요청된 데이터 블록과 동일한 데이터 블록이 존재하지 않는 것으로 판단하는 단계를 더 포함하는 복제 파일 중복 제거 방법.
  13. 제9항에서,
    상기 동일한 데이터 블록이 존재하지 않으면 새로운 청크 식별자를 상기 요청된 데이터 블록의 해시키에 맵핑하여 상기 해시키 테이블에 등록하는 단계
    를 더 포함하는 복제 파일 중복 제거 방법.
  14. 제13항에서,
    상기 동일한 데이터 블록이 존재하지 않으면 새로운 청크 식별자와 상기 요청된 데이터 블록을 청크 서버로 전달하는 단계
    를 더 포함하고,
    상기 요청된 데이터 블록은 상기 청크 서버에 의해 상기 새로운 청크 식별자에 대응하여 저장되는 복제 파일 중복 제거 방법.
  15. 제9항에서,
    상기 생성하는 단계는 하드웨어 가속을 이용하여 상기 요청된 파일 블록에 대한 해시키를 생성하는 단계를 포함하는 복제 파일 중복 제거 방법.
KR1020130033054A 2013-03-27 2013-03-27 복제 파일 중복 제거 방법 및 장치 KR20140117994A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130033054A KR20140117994A (ko) 2013-03-27 2013-03-27 복제 파일 중복 제거 방법 및 장치
US13/927,520 US20140297603A1 (en) 2013-03-27 2013-06-26 Method and apparatus for deduplication of replicated file

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130033054A KR20140117994A (ko) 2013-03-27 2013-03-27 복제 파일 중복 제거 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20140117994A true KR20140117994A (ko) 2014-10-08

Family

ID=51621854

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130033054A KR20140117994A (ko) 2013-03-27 2013-03-27 복제 파일 중복 제거 방법 및 장치

Country Status (2)

Country Link
US (1) US20140297603A1 (ko)
KR (1) KR20140117994A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160147451A (ko) * 2015-06-15 2016-12-23 한국전자통신연구원 인메모리 가상 데스크탑 시스템

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9178860B2 (en) * 2013-08-22 2015-11-03 Maginatics, Inc. Out-of-path, content-addressed writes with untrusted clients
US9424058B1 (en) * 2013-09-23 2016-08-23 Symantec Corporation File deduplication and scan reduction in a virtualization environment
US9569124B2 (en) 2014-11-04 2017-02-14 Rubrik, Inc. Deduplication of virtual machine content
US9547513B2 (en) * 2015-06-17 2017-01-17 VNware, Inc. Provisioning virtual desktops with stub virtual disks
KR102450295B1 (ko) 2016-01-04 2022-10-04 한국전자통신연구원 암호 데이터의 중복 제거 방법 및 장치
WO2017160318A1 (en) * 2016-03-18 2017-09-21 Hewlett Packard Enterprise Development Lp Deduplicating blocks of data
US10210011B2 (en) * 2016-03-26 2019-02-19 Vmware, Inc. Efficient VM migration across cloud using catalog aware compression
US10282124B2 (en) * 2016-06-23 2019-05-07 International Business Machines Corporation Opportunistic handling of freed data in data de-duplication
US10802922B2 (en) 2016-08-26 2020-10-13 International Business Machines Corporation Accelerated deduplication block replication
US11176097B2 (en) 2016-08-26 2021-11-16 International Business Machines Corporation Accelerated deduplication block replication
US11630735B2 (en) 2016-08-26 2023-04-18 International Business Machines Corporation Advanced object replication using reduced metadata in object storage environments
US9983827B1 (en) * 2016-11-29 2018-05-29 Red Hat Israel, Ltd. Key-based memory deduplication protection
US11334438B2 (en) 2017-10-10 2022-05-17 Rubrik, Inc. Incremental file system backup using a pseudo-virtual disk
US10789002B1 (en) * 2017-10-23 2020-09-29 EMC IP Holding Company LLC Hybrid data deduplication for elastic cloud storage devices
KR20200104601A (ko) 2019-02-27 2020-09-04 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법
KR102421149B1 (ko) 2018-01-02 2022-07-14 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR102456173B1 (ko) 2017-10-27 2022-10-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11372729B2 (en) 2017-11-29 2022-06-28 Rubrik, Inc. In-place cloud instance restore
US10972343B2 (en) 2019-01-29 2021-04-06 Dell Products L.P. System and method for device configuration update
US10911307B2 (en) 2019-01-29 2021-02-02 Dell Products L.P. System and method for out of the box solution-level configuration and diagnostic logging and reporting
US11442642B2 (en) 2019-01-29 2022-09-13 Dell Products L.P. Method and system for inline deduplication using erasure coding to minimize read and write operations
US10901641B2 (en) * 2019-01-29 2021-01-26 Dell Products L.P. Method and system for inline deduplication
US20200241781A1 (en) 2019-01-29 2020-07-30 Dell Products L.P. Method and system for inline deduplication using erasure coding
US10979312B2 (en) 2019-01-29 2021-04-13 Dell Products L.P. System and method to assign, monitor, and validate solution infrastructure deployment prerequisites in a customer data center
US10740023B1 (en) 2019-01-29 2020-08-11 Dell Products L.P. System and method for dynamic application access-based mapping
US10764135B2 (en) 2019-01-29 2020-09-01 Dell Products L.P. Method and system for solution integration labeling
US11372730B2 (en) 2019-07-31 2022-06-28 Dell Products L.P. Method and system for offloading a continuous health-check and reconstruction of data in a non-accelerator pool
US11609820B2 (en) 2019-07-31 2023-03-21 Dell Products L.P. Method and system for redundant distribution and reconstruction of storage metadata
US10963345B2 (en) 2019-07-31 2021-03-30 Dell Products L.P. Method and system for a proactive health check and reconstruction of data
US11328071B2 (en) 2019-07-31 2022-05-10 Dell Products L.P. Method and system for identifying actor of a fraudulent action during legal hold and litigation
US11775193B2 (en) 2019-08-01 2023-10-03 Dell Products L.P. System and method for indirect data classification in a storage system operations
US11573891B2 (en) 2019-11-25 2023-02-07 SK Hynix Inc. Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device
KR102456176B1 (ko) 2020-05-21 2022-10-19 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11416357B2 (en) 2020-03-06 2022-08-16 Dell Products L.P. Method and system for managing a spare fault domain in a multi-fault domain data cluster
US11175842B2 (en) 2020-03-06 2021-11-16 Dell Products L.P. Method and system for performing data deduplication in a data pipeline
US11281535B2 (en) 2020-03-06 2022-03-22 Dell Products L.P. Method and system for performing a checkpoint zone operation for a spare persistent storage
US11119858B1 (en) 2020-03-06 2021-09-14 Dell Products L.P. Method and system for performing a proactive copy operation for a spare persistent storage
US11301327B2 (en) 2020-03-06 2022-04-12 Dell Products L.P. Method and system for managing a spare persistent storage device and a spare node in a multi-node data cluster
KR102406449B1 (ko) 2020-06-25 2022-06-08 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR102435253B1 (ko) 2020-06-30 2022-08-24 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR102495910B1 (ko) 2020-04-13 2023-02-06 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
US11755476B2 (en) 2020-04-13 2023-09-12 SK Hynix Inc. Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device
US11418326B2 (en) 2020-05-21 2022-08-16 Dell Products L.P. Method and system for performing secure data transactions in a data cluster
US20220197752A1 (en) * 2020-12-17 2022-06-23 EMC IP Holding Company LLC Copy reuse using gold images

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8701106B2 (en) * 2008-11-30 2014-04-15 Red Hat Israel, Ltd. Hashing storage images of a virtual machine
KR20120072136A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 가상 머신 구동 장치 및 방법, 그리고 가상 머신 이미지 중복 제거 방법
US20120216052A1 (en) * 2011-01-11 2012-08-23 Safenet, Inc. Efficient volume encryption
WO2013118195A1 (en) * 2012-02-10 2013-08-15 Hitachi, Ltd. Storage management method and storage system in virtual volume having data arranged astride storage devices
US9471590B2 (en) * 2013-02-12 2016-10-18 Atlantis Computing, Inc. Method and apparatus for replicating virtual machine images using deduplication metadata
US9250946B2 (en) * 2013-02-12 2016-02-02 Atlantis Computing, Inc. Efficient provisioning of cloned virtual machine images using deduplication metadata
US9372865B2 (en) * 2013-02-12 2016-06-21 Atlantis Computing, Inc. Deduplication metadata access in deduplication file system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160147451A (ko) * 2015-06-15 2016-12-23 한국전자통신연구원 인메모리 가상 데스크탑 시스템
US10241818B2 (en) 2015-06-15 2019-03-26 Electronics And Telecommunications Research Institute In-memory virtual desktop system

Also Published As

Publication number Publication date
US20140297603A1 (en) 2014-10-02

Similar Documents

Publication Publication Date Title
KR20140117994A (ko) 복제 파일 중복 제거 방법 및 장치
US20240231671A1 (en) Replication Using Logical Data Identifiers
US20230359644A1 (en) Cloud-based replication to cloud-external systems
US9891858B1 (en) Deduplication of regions with a storage system
US10460124B2 (en) Per-volume tenant encryption and external key manager
US8930648B1 (en) Distributed deduplication using global chunk data structure and epochs
CA2817119C (en) Synthetic backups within deduplication storage system
US20150127621A1 (en) Use of solid state storage devices and the like in data deduplication
US9990156B1 (en) Deduplicating snapshots associated with a backup operation
US9740422B1 (en) Version-based deduplication of incremental forever type backup
US10261946B2 (en) Rebalancing distributed metadata
US10303395B2 (en) Storage apparatus
US10242021B2 (en) Storing data deduplication metadata in a grid of processors
US20140222770A1 (en) De-duplication data bank
US10078648B1 (en) Indexing deduplicated data
US10255288B2 (en) Distributed data deduplication in a grid of processors
JP2012089094A5 (ko)
JP6805816B2 (ja) 情報処理装置、情報処理システム、情報処理方法及びプログラム
US10776321B1 (en) Scalable de-duplication (dedupe) file system
JP2011197977A (ja) ストレージシステム
CN111522502B (zh) 数据去重方法、装置、电子设备及计算机可读存储介质
US20220197861A1 (en) System and method for reducing read amplification of archival storage using proactive consolidation
US11016884B2 (en) Virtual block redirection clean-up
JP5751041B2 (ja) ストレージ装置、ストレージ方法およびプログラム
KR101341995B1 (ko) 공유 데이터 저장소 관리 장치 및 방법

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination