KR20180088991A - 파일 데이터의 중복 저장 방지 방법 - Google Patents

파일 데이터의 중복 저장 방지 방법 Download PDF

Info

Publication number
KR20180088991A
KR20180088991A KR1020170013482A KR20170013482A KR20180088991A KR 20180088991 A KR20180088991 A KR 20180088991A KR 1020170013482 A KR1020170013482 A KR 1020170013482A KR 20170013482 A KR20170013482 A KR 20170013482A KR 20180088991 A KR20180088991 A KR 20180088991A
Authority
KR
South Korea
Prior art keywords
data
file
deduplication
hash key
file data
Prior art date
Application number
KR1020170013482A
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 KR1020170013482A priority Critical patent/KR20180088991A/ko
Publication of KR20180088991A publication Critical patent/KR20180088991A/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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • 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

Landscapes

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

Abstract

파일 데이터의 중복 저장 방지 방법이 개시된다. 본 발명에 따른 분산 파일 시스템에서 데이터 서버에 의해 수행되는 파일 데이터의 중복 저장 방지 방법은, 메타데이터 서버로부터 선정된 데이터 서버의 정보를 수신한 클라이언트로부터, 파일 데이터 쓰기 요청을 입력받는 단계, 상기 파일 데이터 쓰기 요청에 상응하는 중복제거 해시키를 연산하는 단계, 상기 파일 데이터 쓰기 요청에 상응하는 중복제거 파일 청크 스트라입 엔트리의 해시키와 연산된 상기 중복제거 해시키가 동일한지 여부를 판단하는 단계, 그리고 판단된 결과를 기반으로, 상기 클라이언트로 파일 데이터 쓰기 성공을 반환하거나, 중복제거 해시키 인덱스를 수정하여 상기 파일 데이터 쓰기 요청에 상응하는 파일 데이터의 중복 저장을 방지하는 단계를 포함한다.

Description

파일 데이터의 중복 저장 방지 방법{METHOD FOR PREVENTING DUPLICATE SAVING OF FILE DATA}
본 발명은 분산 파일 시스템에서 소거 코딩을 기반으로 파일 데이터의 중복 저장을 방지하는 기술에 관한 것으로, 특히 파일 메타데이터와 파일 데이터를 분리하여 저장 및 관리하는 비대칭 구조 분산 파일 시스템에서 동일한 파일 데이터가 중복되어 저장되는 것을 방지하는 기술에 관한 것이다.
클라우드 컴퓨팅, 빅데이터 서비스 등에서 발생하는 대량의 데이터를 저장하고 관리할 수 있는 대규모 스토리지 자원에 대한 요구가 날로 증가하고 있으며, 대량의 데이터를 효율적으로 관리하고, 안정적인 파일 서비스를 제공할 수 있는 파일 시스템의 필요성이 대두되고 있다.
시스템 규모가 커질수록 장애에 대비한 안정적 파일 서비스를 제공할 수 있어야 한다. 또한, 저장 공간의 낭비를 줄이기 위하여 대량의 데이터에 다수 포함된 중복된 데이터를 효율적으로 관리하는 기술의 개발이 필요하다.
일반적으로, 분산 파일 시스템에서 네트워크 상에 연결된 데이터 서버 장애로 인한 파일 데이터 내결함성을 보장하기 위해 여러 데이터 서버에 데이터를 복제하는 방식을 사용한다. 그러나 복제 방식은 동일한 데이터를 이중 또는 삼중 이상으로 저장해야 하므로 그로 인한 저장 공간 낭비를 초래할 수 있다.
따라서 저장 공간 낭비를 줄이면서 복제 방식과 동일한 내결함성을 제공하기 위한 방법으로 소거코딩에 기반한 데이터 저장방법이 요구된다. 이때, 소거코딩 기반 데이터 저장방법은 모든 클라이언트에서 일관성 있는 파일 데이터를 접근할 수 있도록 해야 한다.
그러나, 종래 기술에 따른 소거코딩 데이터 저장방법은 데이터가 중복으로 저장되는 문제를 해결할 수는 없다. 따라서 저장 공간을 보다 효율적으로 절감하고 활용할 수 있는 방법으로, 동일한 데이터를 중복 저장하지 않고 이미 저장된 데이터를 공유하는 데이터 중복제거 방법을 적용할 수 있다.
데이터 중복제거 방법은 어느 시점에 중복제거를 수행하느냐에 따라 두 가지 방법으로 구분된다. 첫 번째 방법은 데이터가 저장된 이후에 중복 데이터를 제거하는 방법으로, 중복 데이터를 검출하기 위해 이미 저장된 데이터를 다시 읽어서 중복되어 저장된 데이터를 제거하는 방식이다. 이 방식은 추후 중복제거 될 데이터인데도 불구하고 불필요한 데이터 저장과 추후 중복제거를 수행하기 위한 여분의 저장 공간이 요구된다.
두 번째 방법은 데이터가 저장되기 이전에 실시간으로 중복제거를 수행하는 방법이다. 이 방식은 여분의 저장 공간을 필요로 하지는 않으나, 실시간으로 중복제거를 수행하기 위한 오버헤드가 발생할 수 있다. 또한, 분산 파일 시스템에서 데이터 서버들에 분산되어 저장된 파일 데이터에 대해 전체 시스템 차원에서 데이터 중복제거를 제공하기 어렵다.
따라서, 비대칭 분산 파일 시스템에서, 네트워크 상에 연결된 전체 데이터 서버에 분산되어 저장된 파일 데이터에 대하여 중복제거를 수행하는 기술의 개발이 필요하다.
한국 공개 특허 제10-2005-0060804호, 2005년 06월 22일 공개(명칭: 대용량 데이터에 대한 데이터 중복 저장 시스템)
본 발명의 목적은 분산 파일 시스템에서 네트워크 상에 연결된 데이터 서버에 분산 저장된 파일 데이터에 대한 내결함성을 보정하면서, 동시에 데이터를 중복하여 저장하지 않고 공유할 수 있도록 하는 것이다.
또한, 본 발명의 목적은 복제 방식에서 발생하는 저장 공간의 낭비 문제를 해결하여, 저장 공간 효율성을 증대하는 것이다.
또한, 본 발명의 목적은 파일에 접근하는 클라이언트들 간의 일관성 있는 파일 데이터 접근을 제공하는 것이다.
또한, 본 발명의 목적은 로그를 기반으로 중복제거 데이터를 소거코딩 기반으로 공유하도록 함으로써, 전체 시스템 차원에서의 중복 데이터를 제거하는 것이다.
또한, 본 발명의 목적은 데이터 서버가 다른 데이터 서버에 의해 중복 제거되어 저장된 데이터를 공유할 수 있도록 하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 분산 파일 시스템에서 데이터 서버에 의해 수행되는 파일 데이터의 중복 저장 방지 방법은, 메타데이터 서버로부터 선정된 데이터 서버의 정보를 수신한 클라이언트로부터, 파일 데이터 쓰기 요청을 입력받는 단계, 상기 파일 데이터 쓰기 요청에 상응하는 중복제거 해시키를 연산하는 단계, 상기 파일 데이터 쓰기 요청에 상응하는 중복제거 파일 청크 스트라입 엔트리의 해시키와 연산된 상기 중복제거 해시키가 동일한지 여부를 판단하는 단계, 그리고 판단된 결과를 기반으로, 상기 클라이언트로 파일 데이터 쓰기 성공을 반환하거나, 중복제거 해시키 인덱스를 수정하여 상기 파일 데이터 쓰기 요청에 상응하는 파일 데이터의 중복 저장을 방지하는 단계를 포함한다.
본 발명에 따르면, 분산 파일 시스템에서 네트워크 상에 연결된 데이터 서버에 분산 저장된 파일 데이터에 대한 내결함성을 보정하면서, 동시에 데이터를 중복하여 저장하지 않고 공유할 수 있도록 할 수 있다.
또한 본 발명에 따르면, 복제 방식에서 발생하는 저장 공간의 낭비 문제를 해결하여, 저장 공간 효율성을 증대 할 수 있다.
또한 본 발명에 따르면, 파일에 접근하는 클라이언트들 간의 일관성 있는 파일 데이터 접근을 제공하는 것이다.
또한, 본 발명의 목적은 로그를 기반으로 중복제거 데이터를 소거코딩 기반으로 공유하도록 함으로써, 전체 시스템 차원에서의 중복 데이터를 제거 할 수 있다.
또한 본 발명에 따르면, 데이터 서버가 다른 데이터 서버에 의해 중복 제거되어 저장된 데이터를 공유할 수 있다.
도 1은 본 발명의 일실시예에 따른 파일 데이터의 중복 저장을 방지하는 분산 파일 시스템을 개략적으로 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 파일 데이터를 데이터 서버들에 분산하여 저장 및 관리하는 구조를 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 따른 메타데이터 및 데이터의 레이아웃의 구조를 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 중복제거 파일 청크 스트라입의 엔트리 구조를 나타낸 도면이다.
도 5는 본 발명의 일실시예에 따른 중복제거 데이터 청크 스트라입의 레이아웃 구조를 나타낸 도면이다.
도 6은 본 발명의 일실시예에 따른 중복제거 해시키 인덱스를 저장하는 청크 스트라입의 엔트리 구조를 나타낸 도면이다.
도 7은 본 발명의 일실시예에 따른 중복제거 해시키 인덱스에 대한 로그를 저장하는 청크 스트라입의 엔트리 구조를 나타낸 도면이다.
도 8은 본 발명의 일실시예에 따른 데이터 서버에 의해 수행되는 파일 데이터 읽기 과정을 나타낸 순서도이다.
도 9는 본 발명의 일실시예에 따른 데이터 서버에 의해 수행되는 파일 데이터 쓰기 과정을 나타낸 순서도이다.
도 10은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일실시예에 따른 파일 데이터의 중복 저장 방지 시스템을 개략적으로 나타낸 도면이다.
도 1에 도시한 바와 같이, 파일 데이터의 중복 저장을 방지하는 분산 파일 시스템은 메타데이터 서버(100), 하나 이상의 클라이언트(200) 및 복수 개의 데이터 서버(300)를 포함한다.
이때, 메타데이터 서버(100)와 하나 이상의 클라이언트(200) 및 복수 개의 데이터 서버들(300)은 네트워크(10)를 통해 연결된다.
파일 데이터의 중복 저장을 방지하는 분산 파일 시스템은 메타데이터 서버(100)에 파일 메타데이터가 독립적으로 저장 및 관리되고, 파일 데이터는 복수 개의 데이터 서버들(300)에 분산되어 저장 및 관리되는 비대칭 구조이다.
먼저, 메타데이터 서버(100)는 파일의 메타데이터를 독립적으로 저장 및 관리한다. 또한, 메타데이터 서버(100)는 분산 파일 시스템을 구성하는 데이터 서버들(300), 디스크(330) 및 클라이언트(200)들에 대한 상태 정보를 관리한다.
이때, 메타데이터 서버(100)는 데이터 서버(300) 및 디스크(330)로 구성된 저장 공간을 논리적으로 분할하여, 볼륨 단위로 관리할 수 있다. 그리고 볼륨에는 논리적으로 사용 가능한 저장 공간과 소거코딩 정책이 설정될 수 있다. 여기서, 소거코딩 정책은 데이터를 스트라입 형태로 분할하여 저장할 때, 데이터가 저장될 디스크의 개수, 패리티가 저장될 디스크의 개수, 스트라입의 크기 등을 포함할 수 있다.
또한, 메타데이터 서버(100)는 중복제거 파일 메타데이터, 중복제거 데이터, 중복제거 해시키 인덱스, 중복제거 해시키 인덱스 로그 중 적어도 어느 하나를 저장하기 위해, 소거코딩 정책을 기반으로 데이터와 패리티를 저장하는 청크를 디스크(330)에 할당하고 청크 수준의 스트라입을 구성하여 분산 저장할 수 있다.
그리고 메타데이터 서버(100)는 장애가 발생한 경우, 데이터 서버의 중복제거 관리부 및 소거코딩 관리부를 다른 데이터 서버의 중복제거 관리부 및 소거코딩 관리부로 이전할 수 있다.
다음으로 클라이언트(200)는 메타데이터 서버(100)에서 관리하는 볼륨 단위로 마운트하고, 볼륨에 상응하는 파일의 메타데이터 및 데이터에 접근할 수 있다. 또한, 클라이언트(200)는 파일의 중복제거 소거코딩 관리부로, 파일 데이터 입출력을 수행할 수 있다.
마지막으로 데이터 서버(300)는 중복제거 관리부(310), 소거코딩 관리부(320) 및 디스크(330)를 포함한다. 그리고 데이터 서버(300)는 디스크(330)의 상태를 관리하고, 디스크(330)에 할당된 청크에 저장된 데이터의 입출력을 수행할 수 있다.
데이터 서버(300)의 중복제거 관리부(310)는 파일 데이터에 대한 중복제거를 수행하고, 소거코딩 관리부(320)는 소거코딩 정책을 기반으로 실제 데이터를 소거코딩 부호화 및 복호화하여, 청크 스트라입의 데이터 입출력을 수행한다. 여기서, 스트라입(Stripe)은 소거코딩(Erasure Coding) 방식에서 데이터를 인코딩, 디코딩 하는 단위를 의미한다.
이때, 데이터 서버(300)의 중복제거 관리부(310) 및 소거코딩 관리부(320)는 데이터 서버(100)에 의해 선정될 수 있으며, 데이터 서버(300)는 파일 데이터의 중복 저장 방지 시스템에 포함된 전체 데이터 서버(300)에 균등하게 분포되도록 중복제거 관리부(310) 및 소거코딩 관리부(320)를 설정할 수 있다.
도 2는 본 발명의 일실시예에 따른 파일 데이터를 데이터 서버들에 분산하여 저장 및 관리하는 구조를 설명하기 위한 도면이다.
도 2에 도시한 바와 같이, 본 발명의 일실시예에 따른 파일 데이터의 중복 저장을 방지하는 분산 파일 시스템은 소거코딩 기반의 중복제거 방법을 이용하여, 파일 데이터를 데이터 서버들이 분산하여 저장 및 관리한다.
각각의 클라이언트(200)는 파일 데이터에 대한 입출력을 수행한다. 특히, 클라이언트(200)는 메타데이터 서버로부터 수신한 파일 메타데이터 및 레이아웃 정보를 수신하고, 데이터 서버(300)로 파일 데이터 읽기 요청 또는 파일 데이터 쓰기 요청을 전송할 수 있다.
그리고 데이터 서버(300)의 중복제거 관리부(310)는 파일 별로 데이터의 중복제거 여부를 확인하고, 소거코딩을 이용하여 데이터를 저장 및 관리한다. 또한, 중복제거 관리부(310)는 중복제거 데이터가 저장되는 중복제거 데이터 청크 스트라입의 레이아웃을 메타데이터 서버로 요청하고, 메타데이터 서버로부터 중복제거 데이터 청크 스트라입의 레이아웃을 수신하여 저장할 수 있다.
데이터 서버(300)의 소거코딩 관리부(320)는 데이터를 부호화하여 청크 스트라입 형태로 디스크(330)에 저장한다. 그리고 소거코딩 관리부(320)는 장애가 발생한 경우, 복호화를 수행하여 데이터를 복구할 수 있다. 여기서, 청크 스트라입은 총 4가지 유형(331 내지 337)으로 구분될 수 있으며, 청크 스트라입의 유형은 메타데이터 서버에 의해 설정된 것일 수 있다.
제1 유형인 파일 메타데이터 청크 스트라입(331)은 각 파일마다 할당되고, 파일 데이터의 중복제거 해시키 및 데이터가 실제로 저장된 중복제거 데이터 청크 스트라입 정보를 저장한다. 그리고 제2 유형인 중복제거 데이터 청크 스트라입(333)은 모든 파일들의 실제 데이터가 중복제거 되어 저장된다. 중복제거 데이터 청크 스트라입(333)은 후술할 도 4를 통하여 더욱 상세하게 설명한다.
또한, 제3 유형인 중복제거 해시키 인덱스 청크 스트라입(335)은 파일 데이터의 해시기 인덱스를 저장한다. 이때, 중복제거 해시키 인덱스는 해시키와 중복제거 데이터가 저장된 중복제거 데이터 청크 스트라입 정보를 유지하며, 중복제거 관리부(310)에서 메모리에 적재되어 사용될 수 있다. 그리고 중복제거 관리부(310)에 의해 주기적으로 변경된 중복제거 해시키 인덱스는 중복제거 해시키 인덱스 청크 스트라입에 저장될 수 있다. 중복제거 해시키 인덱스 청크 스트라입(335)은 후술할 도 6을 통하여 더욱 상세하게 설명한다.
마지막으로 제4 유형인 중복제거 해시키 인덱스 로그 청크 스트라입(337)은 중복제거 해시키 인덱스의 삽입 및 삭제 로그를 저장한다. 중복제거 관리부(310)들은 주기적으로 다른 데이터 서버의 중복제거 관리부들로부터 새롭게 추가된 중복제거 해시키 인덱스 로그를 읽어, 자신의 메모리에 유지하고 있는 해시키 인덱스에 반영할 수 있다. 중복제거 해시키 인덱스 로그 청크 스트라입(337)은 후술할 도 7을 통하여 더욱 상세하게 설명한다.
한편, 메타데이터 서버(100)에 의해 데이터 서버의 중복제거 관리부(310) 및 소거코딩 관리부(320)가 이전된 경우, 이전된 중복제거 관리부(310)는 중복제거 해시키 인덱스 청크 스트라입과 중복제거 해시키 인덱스 로그 청크 스트라입을 읽어, 메모리에 중복제거 해시키 인덱스를 적재한다. 그리고 중복제거 관리부(310)는 메타데이터 서버(100)로 중복제거 데이터 청크 스트라입 레이아웃을 요청하고, 메타데이터 서버(100)로부터 수신한 중복제거 데이터 청크 스트라입 레이아웃을 로드한다.
도 3은 본 발명의 일실시예에 따른 메타데이터 및 데이터의 레이아웃의 구조를 나타낸 도면이다.
메타데이터 서버(100)는 파일 메타데이터 정보 및 복수 개의 데이터 서버들(300)에 분산되어 저장된 파일 데이터의 레이아웃 정보를 관리한다. 그리고 도 3에 도시한 바와 같이, 메타데이터 서버(100)에서 관리하는 메타데이터 및 데이터의 레이아웃(400)은 파일 메타데이터 정보(410), 파일 레이아웃 정보(420)을 포함할 수 있다.
파일 메타데이터 정보(410)는 파일 소유권, 접근 허용 모드, 타입, 크기, 접근/변경 시간 등의 속성 정보를 포함할 수 있다. 그리고 파일 레이아웃 정보(420)는 소거코딩 정보(421), 중복제거 소거코딩 관리부 정보(423), 중복제거 파일 청크 스트라입 디스크 정보(425) 및 중복제거 파일 청크 스트라입 청크 정보(427)를 포함할 수 있다.
이때, 소거코딩 정보(421)는 파일 데이터가 스트라입으로 구성된 데이터 디스크의 개수, 패리티 디스크의 개수 및 소거코딩 블록의 크기를 포함할 수 있다. 여기서, 소거코딩 블록은 스트라입에서 각 디스크에 저장되는 단위를 의미한다.
중복제거 소거코딩 관리부 정보(423)는 파일 데이터에 대한 중복 여부를 판단하여, 중복제거를 수행하는 데이터 서버(300)의 정보를 포함한다. 그리고 중복제거 파일 청크 스트라입 디스크 정보(425) 및 중복제거 파일 청크 스트라입 청크 정보(427)는 파일 데이터가 중복제거 되어 저장된 중복제거 데이터 청크에 대한 정보를 저장한 청크 스트라입 정보로, 스트라입을 구성하는 청크들의 개별 디스크 정보 및 청크 정보를 포함한다.
도 4는 본 발명의 일실시예에 따른 중복제거 파일 청크 스트라입의 엔트리 구조를 나타낸 도면이다.
본 발명의 일실시예에 따른 분산 파일 시스템에서 파일 데이터는 소거코딩 정보를 기반으로 데이터 디스크 개수만큼 분할되고, 패리티 디스크 개수만큼의 패리티로 구성된 청크 스트라입으로 저장된다. 중복제거 파일 청크 스트라입을 구성하는 엔트리는 소거코딩 블록 크기 단위로 저장되므로, 파일 데이터를 소거코딩 블록 크기로 나누어 해당 엔트리를 찾을 수 있다.
도 4와 같이, 중복제거 파일 청크 스트라입을 구성하는 엔트리(500)는 파일 데이터에 상응하는 해시키(510), 파일 데이터가 실제 저장된 중복제거 데이터 청크 스트라입 디스크 정보(520), 중복제거 데이터 청크 스트라입 청크 정보(530), 파일 데이터가 저장된 위치를 의미하는 중복제거 데이터 청크 스트라입 데이터 저장 위치(540)를 포함할 수 있다.
즉, 데이터 서버(300)는 파일 데이터를 읽거나 쓰고자 하는 경우, 도 4와 같은 중복제거 파일 청크 스트라입의 엔트리를 읽어, 실제 파일 데이터가 저장된 위치에 접근할 수 있다.
도 5는 본 발명의 일실시예에 따른 중복제거 데이터 청크 스트라입의 레이아웃 구조를 나타낸 도면이다.
데이터 서버(300)는 동일한 파일 데이터에 대하여 중복제거를 수행한 후, 중복제거 데이터 청크 스트라입에 저장한다. 이때, 데이터 서버(300)는 메타데이터 서버(100)로 중복제거 데이터 청크 스트라입의 레이아웃을 요청하고, 메타데이터 서버(100)로부터 수신된 레이아웃을 이용하여, 중복제거 데이터를 저장할 수 있다.
도 5에 도시한 바와 같이, 중복제거 데이터 청크 스트라입의 레이아웃 구조(600)는 데이터 디스크 개수, 패리티 디스크 개수, 소거코딩 블록 크기 등을 포함하는 소거코딩 정보(610), 중복제거 소거코딩 관리부 정보(620), 중복제거 데이터 청크 스트라입 디스크 정보(630) 및 중복제거 데이터 청크 스트라입 청크 정보(640)를 포함 할 수 있다.
도 6은 본 발명의 일실시예에 따른 중복제거 해시키 인덱스를 저장하는 청크 스트라입의 엔트리 구조를 나타낸 도면이다.
데이터 서버(300)는 파일 데이터에 상응하는 해시키를 이용하여, 파일 데이터의 중복 여부를 확인할 수 있다. 이때, 해시키는 스트라입 크기 단위로 생성되며, 스트라입 크기는 소거코딩 블록 크기와 데이터 디스크 개수의 곱에 상응하는 크기일 수 있다.
해시키는 중복제거 해시키 인덱스를 저장하는 청크 스트라입에 저장되어 관리되며, 도 6에 도시한 바와 같이, 중복제거 해시키 인덱스 청크 스트라입의 엔트리(700)는 파일 데이터에 상응하는 해시키(710)와 동일한 해시키(710)를 갖는 파일 데이터가 저장된 중복제거 데이터 청크 스트라입의 디스크에 관한 정보인 중복제거 데이터 청크 스트라입 디스크 정보(720) 및 중복제거 데이터 청크 스트라입 청크 정보(730)를 포함한다.
또한, 중복제거 해시키 인덱스 청크 스트라입의 엔트리(700)는 중복제거 데이터 청크 스트라입에서 파일 데이터가 저장된 위치인 데이터 저장 위치(740) 및 해당 중복제거 데이터를 참조하는 개수인 참조 개수(750)를 포함한다.
도 7은 본 발명의 일실시예에 따른 중복제거 해시키 인덱스에 대한 로그를 저장하는 청크 스트라입의 엔트리 구조를 나타낸 도면이다.
데이터 서버(300)는 중복제거 해시키 인덱스의 생성 및 삭제에 상응하는 로그를 저장한다. 또한, 데이터 서버(300)는 중복제거 해시키 인덱스 로그를 청크 스트라입으로 저장할 수 있다.
중복제거 해시키 인덱스 로그를 저장하는 청크 스트라입의 엔트리(800)는 도 7에 도시한 바와 같이, 로그 타입(810), 해시키(820), 중복제거 데이터가 저장된 중복제거 데이터 청크 스트라입 디스크 정보(830), 중복제거 데이터 청크 스트라입 청크 정보(840) 및 중복제거 데이터 청크 스트라입 데이터 저장 위치(850)를 포함할 수 있다.
이하에서는 도 8 및 도 9를 통하여, 본 발명의 일실시예에 따른 데이터 서버에 의해 수행되는 파일 데이터 읽기 과정 및 쓰기 과정에 대하여 더욱 상세하게 설명한다.
도 8은 본 발명의 일실시예에 따른 데이터 서버에 의해 수행되는 파일 데이터 읽기 과정을 나타낸 순서도이다.
먼저, 데이터 서버(300)는 파일 데이터 읽기 요청을 수신한다(S810).
데이터 서버(300)는 클라이언트(200)로부터 파일 데이터 읽기 요청을 수신한다. 이때, 클라이언트(200)는 파일 데이터 읽기 요청을 데이터 서버(300)로 전송하기 위하여, 메타데이터 서버(100)로 파일에 대한 메타데이터 및 레이아웃 정보를 요청할 수 있다.
그리고 클라이언트(200)는 메타데이터 서버(100)로부터 수신한 파일 메타데이터 및 레이아웃 정보에 상응하는 데이터 서버(300)의 소거코딩 관리부로, 파일 데이터 읽기 요청을 전송할 수 있다.
데이터 서버(300)는 클라이언트(200)로부터 데이터를 읽을 위치, 크기, 소거코딩 정보 및 중복제거 파일 청크 스트라입 정보를 포함하는 파일 데이터 읽기 요청을 수신할 수 있다.
그리고 데이터 서버(300)는 중복제거 파일 청크 스트라입 엔트리를 확인한다(S820).
데이터 서버(300)는 S810 단계에서 수신한 중복제거 파일 청크 스트라입에서, 데이터를 읽을 위치에 해당하는 중복제거 파일 청크 스트라입의 엔트리를 확인한다. 다음으로, 데이터 서버(300)는 디스크로부터 읽어온 데이터를 조합하고, 조합된 데이터를 클라이언트(200)로 전송한다.
중복제거 파일 청크 스트라입 엔트리는 실제 데이터가 저장된 중복제거 데이터 청크 스트라입 정보를 포함한다. 따라서, 데이터 서버(300)는 해당 중복제거 데이터 청크 스트라입에 상응하는 디스크로부터 파일 데이터를 읽고, 읽어온 데이터를 조합하여 데이터 읽기 요청을 전송한 클라이언트(200)로 전송한다.
이때, 중복제거 데이터 청크 스트라입에 상응하는 데이터 서버(300) 또는 데이터 서버(300)의 디스크 중 적어도 어느 하나에서 장애가 발생한 경우, 장애가 발생한 데이터 서버(300)는 다른 데이터 서버 또는 다른 디스크로부터 데이터 및 패리티를 읽어 복호화하여 데이터를 복구한 후, 복구된 데이터를 조합하여 클라이언트(200)로 전송할 수 있다.
도 9는 본 발명의 일실시예에 따른 데이터 서버에 의해 수행되는 파일 데이터 쓰기 과정을 나타낸 순서도이다.
먼저, 데이터 서버(300)는 클라이언트(200)로부터 파일 데이터 쓰기 요청을 수신한다(S910).
이때, 클라이언트(200)는 데이터 서버(300)로 파일 데이터 쓰기 요청을 전송하기 이전에, 메타데이터 서버(100)로 파일 메타데이터 및 레이아웃 정보를 요청할 수 있다.
클라이언트(200)로부터 파일 메타데이터 및 레이아웃 정보 요청을 수신한 메타데이터 서버(100)는 데이터를 쓸 위치에 상응하는 중복제거 파일 청크 스트라입이 할당되지 않은 것으로 판단된 경우, 중복제거 파일 청크 스트라입을 먼저 할당한 후, 데이터 서버(300)를 선정할 수 있다. 이때, 메타데이터 서버(100)는 분산 파일 시스템에 포함된 복수의 데이터 서버들 중에서 파일에 대한 중복제거 소거코딩을 관리할 데이터 서버가 균등하게 분포되도록, 데이터 서버(300)를 선정할 수 있다.
그리고 클라이언트(200)는 메타데이터 서버(100)로부터 파일 메타데이터 및 레이아웃 정보를 수신하고, 수신한 레이아웃 정보에 상응하는 데이터 서버(300)로 파일 데이터 쓰기 요청을 전송할 수 있다.
또한, 데이터 서버(300)는 클라이언트(200)로부터 쓰고자 하는 데이터, 데이터를 쓸 위치, 크기, 소거코딩 정보 및 중복제거 파일 청크 스트라입 정보를 포함하는 파일 데이터 쓰기 요청을 수신할 수 있다.
그리고 데이터 서버(300)는 수신된 데이터에 대한 중복제거 해시키를 연산한다(S920).
다음으로 데이터 서버(300)는 중복제거 파일 청크 스트라입에서, 데이터를 쓸 위치에 상응하는 중복제거 파일 청크 스트라입 엔트리를 확인한다(S930).
중복제거 파일 청크 스트라입 엔트리를 확인한 결과, 중복제거 파일 청크 스트라입 엔트리가 존재하고, 연산된 해시키와 중복제거 파일 청크 스트라입 엔트리의 해시키와 연산된 해시키가 동일한 것으로 판단된 경우(S940), 데이터 서버(300)는 데이터 쓰기 성공을 반환한다(S950).
반면 중복제거 파일 청크 스트라입 엔트리가 존재하지 않거나 연산된 해시키와 중복제거 파일 청크 스트라입 엔트리의 해시키가 동일하지 않은 경우, 데이터 서버(300)는 중복제거 해시키 인덱스에 해당 해시키가 포함되어 있는지 여부를 판단한다(S960).
이때, 중복제거 해시키 인덱스에 해당 해시키가 포함되어 있는 것으로 판단된 경우, 데이터 서버(300)는 중복제거 해시키 인덱스 엔트리의 참조개수를 증가시킨다.
그리고 중복제거 해시키 인덱스에 해당 해시키가 포함되어 있지 않은 것으로 판단된 경우, 데이터 서버(300)는 중복제거 데이터 청크 스트라입에 쓰기 요청된 데이터를 저장한다(S980).
또한, 데이터 서버(300)는 중복제거 해시키 인덱스에 해시키 인덱스 엔트리를 삽입하고, 중복제거 해시키 인덱스 로그 청크 스트라입에 해시키 삽입 로그를 저장할 수 있다. 그리고 데이터 서버(300)는 중복제거 파일 청크 스트라입에 데이터를 쓸 위치에 상응하는 엔트리를 저장하고, 중복제거 파일 청크 스트라입 엔트리에 데이터가 저장된 중복제거 데이터 청크 스트라입에 대한 정보를 저장할 수 있다.
도 10은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 블록도이다.
도 10을 참조하면, 본 발명의 실시예는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1000)에서 구현될 수 있다. 도 10에 도시된 바와 같이, 컴퓨터 시스템(1000)은 버스(1020)를 통하여 서로 통신하는 하나 이상의 프로세서(1010), 메모리(1030), 사용자 입력 장치(1040), 사용자 출력 장치(1050) 및 스토리지(1060)를 포함할 수 있다. 또한, 컴퓨터 시스템(1000)은 네트워크(1080)에 연결되는 네트워크 인터페이스(1070)를 더 포함할 수 있다. 프로세서(1010)는 중앙 처리 장치 또는 메모리(1030)나 스토리지(1060)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1030) 및 스토리지(1060)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1031)이나 RAM(1032)을 포함할 수 있다.
따라서, 본 발명의 실시예는 컴퓨터로 구현된 방법이나 컴퓨터에서 실행 가능한 명령어들이 기록된 비일시적인 컴퓨터에서 읽을 수 있는 매체로 구현될 수 있다. 컴퓨터에서 읽을 수 있는 명령어들이 프로세서에 의해서 수행될 때, 컴퓨터에서 읽을 수 있는 명령어들은 본 발명의 적어도 한 가지 태양에 따른 방법을 수행할 수 있다.
이상에서와 같이 본 발명에 따른 파일 데이터의 중복 저장 방지 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
10: 네트워크 100: 메타데이터 서버
200: 클라이언트 300: 데이터 서버
310: 중복제거 관리부 320: 소거코딩 관리부
330: 저장부 331: 파일 메타데이터 청크 스트라입
333: 중복제거 데이터 청크 스트라입
335: 중복제거 해시키 인덱스 청크 스트라입
337: 중복제거 해시키 인덱스 로그 청크 스트라입
400: 메타데이터 및 데이터의 레이아웃
410: 파일 메타데이터 정보 420: 파일 레이아웃 정보
421: 소거코딩 정보 423: 중복제거 소거코딩 관리부 정보
425: 중복제거 파일 청크 스트라입 디스크 정보
427: 중복제거 파일 청크 스트라입 청크 정보
500: 제1 청크 스트라입의 엔트리 구조
510: 해시키
520: 중복제거 데이터 청크 스트라입 디스크 정보
530: 중복제거 데이터 청크 스트라입 청크 정보
540: 중복제거 데이터 청크 스트라입 데이터 저장 위치
600: 중복제거 데이터 청크 스트라입의 레이아웃 구조
610: 소거코딩 정보 620: 중복제거 소거코딩 관리부 정보
630: 중복제거 데이터 청크 스트라입 디스크 정보
640: 중복제거 데이터 청크 스트라입 청크 정보
700: 제2 청크 스트라입의 엔트리 구조
710: 해시키
720: 중복제거 데이터 청크 스트라입 디스크 정보
730: 중복제거 데이터 청크 스트라입 청크 정보
740: 중복제거 데이터 청크 스트라입 데이터 저장 위치
750: 중복제거 데이터 참조 개수
800: 제3 청크 스트라입의 엔트리 구조
810: 로그 타입 820: 해시키
830: 중복제거 데이터 청크 스트라입 디스크 정보
840: 중복제거 데이터 청크 스트라입 청크 정보
850: 중복제거 데이터 청크 스트라입 데이터 저장 위치
1000: 컴퓨터 시스템 1010: 프로세서
1020: 버스 1030: 메모리
1031: 롬 1032: 램
1040: 사용자 입력 장치 1050: 사용자 출력 장치
1060: 스토리지 1070: 네트워크 인터페이스
1080: 네트워크

Claims (1)

  1. 분산 파일 시스템에서 데이터 서버에 의해 수행되는 파일 데이터의 중복 저장 방지 방법에 있어서,
    메타데이터 서버로부터 선정된 데이터 서버의 정보를 수신한 클라이언트로부터, 파일 데이터 쓰기 요청을 입력받는 단계,
    상기 파일 데이터 쓰기 요청에 상응하는 중복제거 해시키를 연산하는 단계,
    상기 파일 데이터 쓰기 요청에 상응하는 중복제거 파일 청크 스트라입 엔트리의 해시키와 연산된 상기 중복제거 해시키가 동일한지 여부를 판단하는 단계, 그리고
    판단된 결과를 기반으로, 상기 클라이언트로 파일 데이터 쓰기 성공을 반환하거나, 중복제거 해시키 인덱스를 수정하여 상기 파일 데이터 쓰기 요청에 상응하는 파일 데이터의 중복 저장을 방지하는 단계를 포함하는 파일 데이터의 중복 저장 방지 방법.
KR1020170013482A 2017-01-31 2017-01-31 파일 데이터의 중복 저장 방지 방법 KR20180088991A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170013482A KR20180088991A (ko) 2017-01-31 2017-01-31 파일 데이터의 중복 저장 방지 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170013482A KR20180088991A (ko) 2017-01-31 2017-01-31 파일 데이터의 중복 저장 방지 방법

Publications (1)

Publication Number Publication Date
KR20180088991A true KR20180088991A (ko) 2018-08-08

Family

ID=63230138

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170013482A KR20180088991A (ko) 2017-01-31 2017-01-31 파일 데이터의 중복 저장 방지 방법

Country Status (1)

Country Link
KR (1) KR20180088991A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050060804A (ko) 2003-12-17 2005-06-22 한국전자통신연구원 대용량 데이터에 대한 데이터 중복 저장 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050060804A (ko) 2003-12-17 2005-06-22 한국전자통신연구원 대용량 데이터에 대한 데이터 중복 저장 시스템

Similar Documents

Publication Publication Date Title
US11461015B2 (en) Available storage space in a system with varying data redundancy schemes
US9665427B2 (en) Hierarchical data storage architecture
US9547453B2 (en) Method for layered storage of enterprise data
KR100985169B1 (ko) 분산 저장 시스템에서 파일의 중복을 제거하는 장치 및 방법
US9817715B2 (en) Resiliency fragment tiering
US8612699B2 (en) Deduplication in a hybrid storage environment
US8165221B2 (en) System and method for sampling based elimination of duplicate data
US20180267856A1 (en) Distributed storage system, data storage method, and software program
US20170123675A1 (en) Method for layered storage of enterprise data
US20140317056A1 (en) Method of distributing and storing file-based data
US10346066B2 (en) Efficient erasure coding of large data objects
US11449402B2 (en) Handling of offline storage disk
US20190347165A1 (en) Apparatus and method for recovering distributed file system
US20210334241A1 (en) Non-disrputive transitioning between replication schemes
KR101441059B1 (ko) 분산 파일 시스템에서 효율적인 자료 저장 방법
US11775193B2 (en) System and method for indirect data classification in a storage system operations
US10331362B1 (en) Adaptive replication for segmentation anchoring type
US20140279967A1 (en) Data compression using compression blocks and partitions
WO2023197937A1 (zh) 数据处理方法及其装置、存储介质、计算机程序产品
US11379383B2 (en) Data encryption in a two-tier storage system
KR20180088991A (ko) 파일 데이터의 중복 저장 방지 방법
US10063256B1 (en) Writing copies of objects in enterprise object storage systems
KR102599116B1 (ko) 데이터 중복 제거 방법 및 데이터 중복 제거를 수행하는 스토리지 장치
KR20200101594A (ko) 분산 파일 시스템에서 클라이언트 기반의 실시간 데이터 복구에 기반한 디코딩 처리 방법 및 이를 위한 장치
US20230046030A1 (en) Systems, methods, and apparatus for data resizing for computational storage