KR20130026738A - 파일 데이터 분산 저장 장치 및 방법 - Google Patents

파일 데이터 분산 저장 장치 및 방법 Download PDF

Info

Publication number
KR20130026738A
KR20130026738A KR1020110090087A KR20110090087A KR20130026738A KR 20130026738 A KR20130026738 A KR 20130026738A KR 1020110090087 A KR1020110090087 A KR 1020110090087A KR 20110090087 A KR20110090087 A KR 20110090087A KR 20130026738 A KR20130026738 A KR 20130026738A
Authority
KR
South Korea
Prior art keywords
data
chunk
stripe
parity
file
Prior art date
Application number
KR1020110090087A
Other languages
English (en)
Other versions
KR101695991B1 (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 KR1020110090087A priority Critical patent/KR101695991B1/ko
Publication of KR20130026738A publication Critical patent/KR20130026738A/ko
Application granted granted Critical
Publication of KR101695991B1 publication Critical patent/KR101695991B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/263Network storage, e.g. SAN or NAS

Landscapes

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

Abstract

본 발명은 파일의 데이터를 청크(chunk) 단위로 나누어 데이터 청크에 대한 복제 데이터 청크를 포함하는 제1 스트라입(stripe)으로 유지하는 제1 스트라입 관리부, 상기 데이터를 청크 단위로 나누어 상기 데이터 청크와 패리티 청크를 포함하는 제2 스트라입으로 유지하는 제2 스트라입 관리부, 상기 제1 스트라입과 상기 제2 스트라입을 혼합하여 유지하는 혼합 스트라입 관리부, 상기 제1 스트라입을 상기 제2 스트라입으로 변환하여 유지하는 제1 스트라입 변환부 및 상기 제2 스트라입을 상기 제1 스트라입으로 변환하여 유지하는 제2 스트라입 변환부를 포함하는 파일 데이터 분산 저장 장치를 제공한다.

Description

파일 데이터 분산 저장 장치 및 방법{APPARATUS AND METHOD FOR DISTRIBUTE AND STORE FILE DATA}
본 발명의 실시예들은 파일 데이터 분산 저장 장치 및 방법에 관한 것으로서, 더욱 상세하게는 분산 파일 시스템에서 네트워크로 연결된 데이터 서버들에 파일 데이터를 분산 저장함에 있어 스토리지 효율성 및 가용성을 제공하는 장치 및 방법에 관한 것이다.
일반적으로 분산 파일 시스템은 파일의 메타데이터와 실제 데이터를 분리하여 저장하고 관리한다.
통상적으로 메타데이터는 다른 데이터를 설명해 주는 데이터로서, 속성 정보라고도 한다.
메타데이터는 메타데이터 서버에서 관리되며, 실제 데이터는 복수의 데이터 서버에 분산되어 저장된다.
메타데이터는 실제 데이터가 저장되어 있는 데이터 서버에 대한 정보를 포함하며, 메타데이터 서버와 복수의 데이터 서버는 네트워크로 연결되어 분산된 구조를 가진다.
클라이언트에서 파일의 메타데이터와 데이터를 접근하는 경로가 분리되며, 파일에 접근하기 위해 클라이언트는 먼저 메타데이터 서버에 있는 파일의 메타데이터에 접근하여 실제 데이터가 저장되어 있는 복수의 데이터 서버에 대한 정보를 얻는다. 실제 데이터에 대한 입출력은 복수의 데이터 서버를 통하여 이루어진다.
파일의 데이터는 네트워크로 연결된 데이터 서버들에 정해진 크기로 나누어 저장된다.
상기와 같이 저장되는 단위를 청크(chunk)라고 하며, 데이터 서버에 저장된 청크들은 데이터 서버 고장 등의 장애를 대비하여 다른 데이터 서버에 복제되어 저장된다.
상기 복제본의 개수는 데이터를 중요도 또는 접근되는 빈도에 따라 결정할 수도 있으며, 데이터를 저장하기 위해서 복제본의 개수에 따라 스토리지 공간이 배수로 소요될 수 있다.
따라서, 파일 분산 시스템은 데이터에 대한 복제본을 만들지 않으면서도 동일한 가용성을 제공하기 위하여 데이터들을 스트라입으로 구성하고 스트라입에 속하는 데이터 청크들을 가지고 패리티 청크를 만들어, 데이터의 가용성을 제공할 수 있다.
일반적으로 패리티는 데이터 청크들을 XOR 하거나 여러 가지 인코딩 방법으로 만들 수 있다.
상기와 같은 구성은 데이터 서버 고장 등의 장애 상황이 발생하였을 때 패리티 청크와 다른 데이터 청크들을 이용하여 고장난 청크를 복구할 수 있다.
따라서, 파일 분산 시스템은 복제본으로 인한 스토리지 공간의 낭비를 줄일 수 있으며, 복제본을 두었을 때와 같은 가용성을 제공할 수 있다.
본 발명의 일실시예는 데이터 서버에 파일의 데이터를 청크들로 나누어 복제 방식 또는 패리티 방식으로 유지하면서 파일의 접근 빈도에 따라 복제 방식에서 패리티 방식으로 그리고 반대로 패리티 방식에서 복제 방식으로 변환하는 것을 목적으로 한다.
본 발명의 일실시예는 데이터에 대한 접근 빈도가 많은 경우 청크들을 복제 방식으로 유지하고, 효율적인 데이터 접근이 가능하도록 하면서 또한 접근 빈도가 줄어들면 다시 데이터를 패리티 방식으로 변환함으로써, 복제 방식에서 낭비되었던 스토리지 공간을 효율적으로 절약할 수 있으면서 복제 방식과 동일한 가용성을 제공한다.
본 발명의 일실시예는 파일의 접근 형태에 따라 파일의 데이터를 복제 방식과 패리티 방식을 혼합하여 유지할 수 있도록 함으로써, 데이터의 효율적인 접근과 스토리지 공간의 효율적인 유지하는 것을 목적으로 한다.
본 발명의 일실시예에 따른 파일 데이터 분산 저장 장치는 파일의 데이터를 청크(chunk) 단위로 나누어 데이터 청크에 대한 복제 데이터 청크를 포함하는 제1 스트라입(stripe)으로 유지하는 제1 스트라입 관리부, 상기 데이터를 청크 단위로 나누어 상기 데이터 청크와 패리티 청크를 포함하는 제2 스트라입으로 유지하는 제2 스트라입 관리부, 상기 제1 스트라입과 상기 제2 스트라입을 혼합하여 유지하는 혼합 스트라입 관리부, 상기 제1 스트라입을 상기 제2 스트라입으로 변환하여 유지하는 제1 스트라입 변환부 및 상기 제2 스트라입을 상기 제1 스트라입으로 변환하여 유지하는 제2 스트라입 변환부를 포함한다.
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 상기 데이터 청크를 저장하는 데이터 서버의 장애 여부를 판단하여, 상기 데이터 서버가 장애로 판단된 경우 상기 데이터를 복구하는 데이터 복구부를 더 포함할 수 있다.
본 발명의 일측에 따르면, 상기 각각의 청크는 청크 크기, 전체 청크 개수, 스트라입 개수, 스트라입 폭 또는 패리티 폭 중 어느 하나 이상의 정보를 포함할 수 있다.
본 발명의 일측에 따르면, 상기 제1 스트라입 변환부는 상기 패리티 청크를 할당하는 청크 할당부 및 상기 데이터 청크에 인코딩 비트를 설정하는 비트 설정부를 포함할 수 있다.
본 발명의 일측에 따르면, 상기 제1 스트라입 변환부는 상기 데이터 청크가 갱신 중인지 여부를 판단하는 갱신 판단부, 상기 데이터 청크를 갱신하지 않는 경우, 상기 패리티 청크가 할당된 데이터 서버에 패리티 인코딩을 요청하는 인코딩 요청부, 상기 패리티 인코딩의 성공 여부를 판단하는 인코딩 판단부 및 상기 패리티 인코딩이 성공한 경우, 상기 파일의 레이아웃을 변경하는 레이아웃 변경부를 더 포함할 수 있다.
본 발명의 일측에 따르면, 상기 제1 스트라입 변환부는 상기 데이터 청크에 대한 상기 복제 데이터 청크를 삭제하는 청크 삭제부를 더 포함할 수 있다.
본 발명의 일측에 따르면, 상기 제2 스트라입 변환부는 상기 복제 데이터 청크를 할당하는 청크 할당부 및 상기 데이터 청크가 저장된 데이터 서버에 복제를 요청하는 복제 요청부를 포함할 수 있다.
본 발명의 일측에 따르면, 상기 제2 스트라입 변환부는 상기 데이터 청크의 복제 성공 여부를 판단하는 인코딩 판단부 및 상기 데이터 청크의 복제가 성공한 경우, 상기 파일의 레이아웃을 변경하는 레이아웃 변경부를 더 포함할 수 있다.
본 발명의 일측에 따르면, 상기 제2 스트라입 변환부는 상기 패리티 청크를 삭제하는 청크 삭제부를 더 포함할 수 있다.
본 발명의 일측에 따르면, 상기 제2 스트라입 변환부는 상기 패리티 청크가 갱신된 경우 상기 데이터 청크에 대한 쓰기를 요청하는 청크 쓰기 요청부 및 상기 데이터에 다른 데이터가 추가되는지 여부를 판단하는 데이터 추가 판단부를 포함할 수 있다.
본 발명의 일측에 따르면, 상기 제2 스트라입 변환부는 상기 다른 데이터가 추가되는 경우 상기 다른 데이터를 상기 패리티 청크에 전달하여 패리티 인코딩 하는 패리티 인코딩부를 더 포함할 수 있다.
본 발명의 일측에 따르면, 상기 제2 스트라입 변환부는 상기 데이터가 갱신되는 경우 상기 데이터를 저장하는 데이터 서버에 상기 복제 데이터 청크를 할당 요청하는 청크 할당부, 상기 할당된 복제 데이터 청크로 상기 데이터를 갱신하는 데이터 갱신부, 상기 갱신된 데이터를 상기 패리티 청크에 전달하여 상기 패리티 청크를 갱신하는 패리티 청크 갱신부 및 상기 갱신된 데이터를 제외한 영역의 데이터를 복제하는 데이터 복제부를 더 포함할 수 있다.
본 발명의 일측에 따르면, 상기 제2 스트라입 변환부는 상기 제2 스트라입에 포함된 모든 데이터 청크에 대한 복제가 완료된 경우, 상기 파일의 레이아웃을 변경하는 파일 레이아웃 변경부를 더 포함할 수 있다.
본 발명의 일측에 따르면, 상기 데이터 복구부는 상기 패리티 청크를 저장하는 데이터 서버에 데이터 읽기를 요청하는 데이터 요청부, 상기 패리티 청크를 저장하는 데이터 서버를 이용하여 상기 데이터를 복구하고, 상기 복구된 데이터를 클라이언트로 전달하는 복구 데이터 처리부를 포함하고, 상기 패리티 청크를 저장하는 데이터 서버는, 장애가 발생한 데이터 청크를 제외한 다른 데이터 청크를 읽어 상기 데이터를 복구할 수 있다.
본 발명의 일측에 따르면, 상기 데이터 복구부는 상기 장애가 발생한 데이터 서버에 저장된 파일의 스트라입 정보를 수신하는 스트라입 정보 수신부, 상기 스트라입 정보를 분석하여 상기 데이터가 제1 스트라입 방식 또는 제2 스트라입 방식인지 여부를 판단하는 스트라입 방식 판단부, 상기 데이터가 제1 스트라입 방식인 경우, 상기 복제 데이터 청크를 할당하고 상기 장애 데이터 청크를 다른 복제 데이터 청크로 복제하는 데이터 복제부 및 상기 복제된 다른 복제 데이터 청크를 기반으로 상기 파일의 레이아웃을 변경하는 레이아웃 변경부를 포함할 수 있다.
본 발명의 일측에 따르면, 상기 데이터 복구부는 상기 데이터가 제2 스트라입 방식인 경우, 상기 장애가 발생한 청크가 패리티 청크인지 여부를 판단하는 청크 판단부 및 상기 장가 발생한 청크가 패리티 청크인 경우, 상기 패리티 청크를 할당하고 상기 데이터 청크를 읽어 패리티를 인코딩하여 다른 패리티 청크를 생성하는 패리티 청크 생성부를 더 포함할 수 있다.
본 발명의 일측에 따르면, 상기 데이터 복구부는 상기 장가 발생한 청크가 패리티 청크인 경우, 상기 데이터 청크를 할당하고 상기 다른 데이터 청크와 다른 패리티 청크를 읽어 상기 데이터 청크를 복구하는 데이터 청크 복구부를 더 포함할 수 있다.
본 발명의 일측에 따른 파일 데이터 분산 저장 방법은 파일의 데이터를 청크(chunk) 단위로 나누어 데이터 청크에 대한 복제 데이터 청크를 포함하는 제1 스트라입(stripe)으로 유지하는 단계, 상기 데이터를 청크 단위로 나누어 상기 데이터 청크와 패리티 청크를 포함하는 제2 스트라입으로 유지하는 단계, 상기 제1 스트라입과 상기 제2 스트라입을 혼합하여 유지하는 단계, 상기 제1 스트라입을 상기 제2 스트라입으로 변환하여 유지하는 단계 및 상기 제2 스트라입을 상기 제1 스트라입으로 변환하여 유지하는 단계를 포함한다.
본 발명의 일실시예에 따르면 데이터 서버에 파일의 데이터를 청크들로 나누어 복제 방식 또는 패리티 방식으로 유지하면서 파일의 접근 빈도에 따라 복제 방식에서 패리티 방식으로 그리고 반대로 패리티 방식에서 복제 방식으로 변환할 수 있다.
본 발명의 일실시예에 따르면 데이터에 대한 접근 빈도가 많은 경우 청크들을 복제 방식으로 유지하고, 효율적인 데이터 접근이 가능하도록 하면서 또한 접근 빈도가 줄어들면 다시 데이터를 패리티 방식으로 변환함으로써, 복제 방식에서 낭비되었던 스토리지 공간을 효율적으로 절약할 수 있으면서 복제 방식과 동일한 가용성을 제공할 수 있다.
본 발명의 일실시예에 따르면 파일의 접근 형태에 따라 파일의 데이터를 복제 방식과 패리티 방식을 혼합하여 유지할 수 있도록 함으로써, 데이터의 효율적인 접근과 스토리지 공간의 효율적인 유지할 수 있다.
도 1은 본 발명의 일실시예에 따른 파일 분산 시스템의 구성을 도시한 블록도이다.
도 2는 본 발명의 일실시예에 따른 파일 데이터 분산 저장 장치의 구성을 도시한 블록도이다.
도 3은 본 발명의 일측에 따라 제1 스트라입 방식으로 데이터를 유지하는 경우의 레이아웃을 도시한 도면이다.
도 4는 본 발명의 일측에 따라 제2 스트라입 방식으로 데이터를 유지하는 경우의 레이아웃을 도시한 도면이다.
도 5는 본 발명의 일측에 따라 제1 스트라입 방식 및 제2 스트라입 방식이 혼합된 형태로 데이터를 유지하는 경우의 레이아웃을 도시한 도면이다.
도 6은 본 발명의 일측에 따라 제1 스트라입 방식의 파일을 제2 스트라입 방식의 파일로 변환하는 방법을 도시한 흐름도이다.
도 7은 본 발명의 일측에 따라 제2 스트라입 방식의 파일을 제1 스트라입 방식의 파일로 변환하는 방법을 도시한 흐름도이다.
도 8은 본 발명의 다른 측에 따라 제2 스트라압 방식의 파일을 제1 스트라입 방식의 파일로 변환하는 방법을 도시한 흐름도이다.
도 9는 본 발명의 일측에 따라 데이터 서버에 장애가 발생한 경우 처리 과정을 도시한 흐름도이다.
도 10은 본 발명의 다른 측에 따라 데이터 서버에 장애가 발생한 경우 처리 과정을 도시한 흐름도이다.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 실시예를 상세하게 설명하지만, 본 발명이 실시예에 의해 제한되거나 한정되는 것은 아니다.
한편, 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일실시예에 따른 파일 분산 시스템의 구성을 도시한 블록도이다.
도 1의 분산 파일 시스템은 클라이언트(101), 메타데이터 서버(102), 및 데이터 서버(103)를 포함한다.
도 1을 참조하면, 본 발명의 일측에 따른 클라이언트(110)는 클라이언트 응용을 수행하고, 메타데이터 서버(120)에 저장된 파일의 메타데이터를 접근할 수 있으며, 데이터 서버(130)에 저장된 파일의 데이터를 입출력할 수 있다.
본 발명의 일측에 따른 메타데이터 서버(120)는 파일 시스템의 모든 파일에 대한 메타데이터를 저장하고 관리하며, 모든 데이터 서버(130)에 대한 상태 정보를 관리한다.
본 발명의 일측에 따른 데이터 서버(130)는 파일의 데이터 청크를 저장 및 관리하고, 주기적으로 메타데이터 서버(120)에게 자신의 상태 정보를 보고한다.
본 발명의 일측에 따르면, 데이터 서버(130)는 다수 개로 구성하는 것이 바람직하며, 클라이언트(110), 메타데이터 서버(120) 및 다수의 데이터 서버(130)는 네트워크로 상호 연결된다.
도 2는 본 발명의 일실시예에 따른 파일 데이터 분산 저장 장치의 구성을 도시한 블록도이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 파일의 데이터를 청크(chunk) 단위로 나누어 데이터 청크에 대한 복제 데이터 청크를 포함하는 제1 스트라입(stripe)으로 유지하는 제1 스트라입 관리부(210), 상기 데이터를 청크 단위로 나누어 상기 데이터 청크와 패리티 청크를 포함하는 제2 스트라입으로 유지하는 제2 스트라입 관리부(220), 상기 제1 스트라입과 상기 제2 스트라입을 혼합하여 유지하는 혼합 스트라입 관리부(230), 상기 제1 스트라입을 상기 제2 스트라입으로 변환하여 유지하는 제1 스트라입 변환부(240) 및 상기 제2 스트라입을 상기 제1 스트라입으로 변환하여 유지하는 제2 스트라입 변환부(250)로 구성된다.
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 데이터 복구부(미도시)를 이용하여 데이터 청크를 저장하는 데이터 서버의 장애 여부를 판단하고, 상기 데이터 서버가 장애로 판단된 경우 상기 데이터를 복구할 수 있다.
본 발명의 일측에 따르면, 상기 각각의 청크는 청크 크기, 전체 청크 개수, 스트라입 개수, 스트라입 폭 또는 패리티 폭 등의 다양한 정보를 포함한다.
도 3은 본 발명의 일측에 따라 제1 스트라입 방식으로 데이터를 유지하는 경우의 레이아웃을 도시한 도면이다.
본 발명의 일측에 따른 제1 스트라입 관리부(210)는 파일의 청크들을 복제본으로 유지할 때 기본적으로 청크 크기(301), 전체 청크 개수(302), 스트라입 개수(303), 스트라입 폭(304), 패리티 폭(305) 등의 스트라입 정보를 유지한다.
본 발명의 일측에 따르면, 상기 청크 크기(301)는 파일 별로 다를 수 있으며 한 파일에서 모든 청크는 동일한 크기를 가질 수 있다.
본 발명의 일측에 따르면, 청크는 주 청크와 복제본 청크로 이루어지며, 파일에 대한 쓰기는 주 청크에만 이루어지며, 주 청크에 반영된 데이터는 추후에 복제본 청크로 복제될 수 있다.
본 발명의 일측에 따르면, 파일 레이아웃에서 전체 청크 개수(302)는 주 청크와 복제본 청크를 포함한 개수를 의미한다.
본 발명의 일측에 따르면, 스트라입 개수(303)는 파일의 전체 청크 개수와 스트라입 폭(304) 및 패리티 폭(305)에 따라 결정될 수 있다.
본 발명의 일측에 따르면, 스트라입 폭(304)은 제1 스트라입 방식의 경우 하나의 스트라입에서 주 청크의 개수를 의미한다.
본 발명의 일측에 따르면, 제1 스트라입 방식의 경우 스트라입 폭(304)은 1이 바람직하다.
본 발명의 일측에 따르면, 패리티 폭(305)은 제1 스트라입 방식의 경우 하나의 스트라입에서 복제본 청크의 개수를 의미한다.
예를 들어, 패리티 폭(305)이 1인 경우에는 복제본이 하나인 경우이며, 이 경우에는 스트라입에 속하는 하나의 청크를 저장하고 있는 데이터 서버 장애가 발생하더라도 대처할 수 있다.
본 발명의 일측에 따른 제1 스트라입 관리부(210)는 스트라입에 속하는 두 청크를 저장하고 있는 데이터 서버 장애가 발생하였을 때는 대처하기 어려우므로, 복제본을 두개를 두어 패리티 폭을 2로 하면 스트라입에 속하는 두 청크를 저장하고 있는 데이터 서버가 동시에 장애가 발생하더라도 대처할 수 있다.
본 발명의 일측에 따르면, 각각의 스트라입(306, 307, 308, 309, 310, 311)은 스트라입에 속하는 청크의 개수와 각 청크의 정보를 유지하며, 청크의 정보는 청크가 저장된 데이터 서버(130)와 디스크 정보 그리고 청크 식별자, 청크 버전, 상태 정보를 포함할 수 있다.
도 4는 본 발명의 일측에 따라 제2 스트라입 방식으로 데이터를 유지하는 경우의 레이아웃을 도시한 도면이다.
도 4를 참조하면, 본 발명의 일측에 따른 제2 스트라입 관리부(220)는 파일의 청크들을 패리티 방식으로 유지하기 위해 청크 크기(401), 전체 청크 개수(402), 스트라입 개수(403), 스트라입 폭(404), 패리티 폭(405) 정보를 유지한다.
본 발명의 일측에 따르면, 제2 스트라입 방식의 경우 청크는 데이터 청크와 패리티 청크로 구별된다.
본 발명의 일측에 따르면, 데이터 청크는 실제 파일 데이터가 저장되고, 패리티 청크는 스트라입에 속하는 데이터 청크의 데이터를 패리티 인코딩 방법에 의해 인코딩한 패리티 데이터가 저장된다.
본 발명의 일측에 따르면, 청크 크기(401)는 한 파일에 속하는 데이터 청크와 패리티 청크의 크기를 의미한다.
본 발명의 일측에 따르면, 전체 청크 개수(402)는 한 파일에 속하는 데이터 청크와 패리티 청크를 모두 포함하는 개수이다.
본 발명의 일측에 따르면, 스트라입 개수(403)는 한 파일에 속하는 스트라입 개수를 의미하며, 전체 청크 개수(403), 스트라입 폭(404) 및 패리티 폭(405)에 의해 결정될 수 있다.
본 발명의 일측에 따르면, 스트라입 폭(404)은 하나의 스트라입에 속하는 데이터 청크의 개수를 의미한다.
본 발명의 일측에 따르면, 패리티 폭(405)은 하나의 스트라입에 속하는 패리티 청크의 개수를 의미한다.
본 발명의 일측에 따르면, 파일 데이터 분산 저장 장치는 패리티 폭(405)에 따라 장애에 대처할 수 있는 정도가 다를 수 있어, 패리티 폭(405)이 1인 경우에는 제1 스트라입 방식에서 패리티 폭(305)을 1로 하였을 때, 즉 복제본을 하나 두었을 때와 동일하다.
본 발명의 일측에 따르면, 파일 데이터 분산 저장 장치는 스트라입에 속하는 하나의 데이터 청크를 저장하고 있는 데이터 서버에 장애가 발생하였을 때 대처할 수 있다.
본 발명의 일측에 따르면, 파일 데이터 분산 저장 장치는 스트라입에 속하는 두 개의 데이터 청크를 저장하고 있는 데이터 서버들에 동시에 장애가 발생하였을 때 대처하기 어려울 수 있어, 패리티 폭을 2인 경우 제1 스트라입 방식에서 패리티 폭(305)을 2로 하였을 때, 즉 복제본을 두개 두었을 때와 동일하게 처리할 수 있다.
본 발명의 일측에 따르면, 파일 데이터 분산 저장 장치는 스트라입에 속하는 두 개의 데이터 청크를 저장하고 있는 데이터 서버들에 동시에 장애가 발생하였을 때도 대처할 수 있다.
본 발명의 일측에 따르면, 파일 데이터 분산 저장 장치는 제2 스트라입 방식에서도 각각의 스트라입(406, 407)에는 스트라입에 속하는 청크의 개수와 데이터 청크 그리고 패리티 청크의 정보를 포함한다.
본 발명의 일측에 따르면, 청크 정보는 청크를 저장하고 있는 데이터 서버와 디스크 정보 그리고 청크 식별자, 청크 버전, 상태 정보 등을 포함한다.
도 5는 본 발명의 일측에 따라 제1 스트라입 방식 및 제2 스트라입 방식이 혼합된 형태로 데이터를 유지하는 경우의 레이아웃을 도시한 도면이다.
본 발명의 일측에 따른 혼합 스트라입 관리부(230)는 파일의 청크들을 복제 방식과 패리티 방식으로 혼합되어 유지되는 경우 기본적으로 청크 크기(501), 전체 청크 개수(502), 스트라입 개수(503), 스트라입 폭(504), 패리티 폭(505) 정보를 유지한다.
본 발명의 일측에 따르면, 혼합 형태에서 스트라입 개수(503)는 상기 두가지 스트라입 방식에서와 동일하다.
본 발명의 일측에 따르면, 파일 데이터 분산 저장 장치는 스트라입 폭(504)과 패리티 폭(505)은 제2 스트라입 방식을 우선적으로 유지하는 것이 바람직하며, 각각의 스트라입에서도 동일하게 스트라입에 속하는 청크의 개수와 청크 정보를 유지할 수 있다.
본 발명의 일측에 따르면, 파일 데이터 분산 저장 장치는 각 청크가 데이터 청크 또는 복제 청크 또는 패리티 청크일 수 있으며, 이는 청크의 정보에 의해 판단할 수 있다.
도 6은 본 발명의 일측에 따라 제1 스트라입 방식의 파일을 제2 스트라입 방식의 파일로 변환하는 방법을 도시한 흐름도이다.
본 발명의 일측에 따른 제1 스트라입 변환부(240)는 청크 할당부를 이용하여 상기 패리티 청크를 할당하고(601), 비트 설정부를 이용하여 상기 데이터 청크에 인코딩 비트를 설정할 수 있다(602).
본 발명의 일측에 따른 메타데이터 서버는 스트라입에 대한 패리티 청크를 데이터 서버에 할당하도록 요청할 수 있으며, 할당할 패리티 청크의 개수는 패리티 폭에 의해 결정될 수 있다.
이때, 본 발명의 일측에 따른 할당된 패리티 청크들은 일단 임시 청크로 설정되며, 스트라입 폭에 의해 스트라입에 포함될 데이터 청크들의 상태를 인코딩 상태로 설정할 수 있다.
본 발명의 일측에 따른 제1 스트라입 변환부(240)는 갱신 판단부를 이용하여 상기 데이터 청크가 갱신 중인지 여부를 판단하고(603), 인코딩 요청부를 이용하여 상기 데이터 청크를 갱신하지 않는 경우, 상기 패리티 청크가 할당된 데이터 서버에 패리티 인코딩을 요청할 수 있다(604).
본 발명의 일측에 따른 제1 스트라입 변환부(240)는 데이터 청크가 갱신 중이면 패리티 청크를 삭제하고 인코딩을 취소할 수 있다(608).
본 발명의 일측에 따른 제1 스트라입 변환부(240)는 데이터 청크에 인코딩 상태를 설정함으로써, 스트라입에 대한 패리티 인코딩을 진행하는 동안 데이터 청크에 대한 갱신이 발생하였을 때 패리티 인코딩을 취소하고 패리티 청크를 삭제한 후, 스트라입 변환을 다음 스트라입에 대해 수행할 수 있다.
본 발명의 일측에 따른 제1 스트라입 변환부(240)는 인코딩 상태 설정이 완료되면 패리티 청크가 할당된 데이터 서버에 패리티 인코딩을 요청하고, 데이터 서버는 스트라입에 속하는 데이터 청크들을 읽어서 패리티 청크를 생성한다.
본 발명의 일측에 따른 제1 스트라입 변환부(240)는 인코딩 판단부를 통하여 상기 패리티 인코딩의 성공 여부를 판단하고(605), 레이아웃 변경부를 이용하여 상기 패리티 인코딩이 성공한 경우, 상기 파일의 레이아웃을 변경한다(606).
본 발명의 일측에 따른 제1 스트라입 변환부(240)는 패리티 인코딩이 실패하면 패리티 청크를 삭제하고 변환을 취소할 수 있다.
본 발명의 일측에 따른 제1 스트라입 변환부(240)는 패리티 청크가 완성되면, 청크의 상태를 주 청크에서 데이터 청크로, 임시 청크 상태인 패리티 청크를 패리티 청크 상태로 변경함으로써 파일 레이아웃을 변경할 수 있다.
본 발명의 일측에 따른 제1 스트라입 변환부(240)는 청크 삭제부를 이용하여 상기 데이터 청크에 대한 상기 복제 데이터 청크를 삭제할 수 있다.
즉, 본 발명의 일측에 따른 제1 스트라입 변환부(240)는 파일 레이아웃이 변경되면 데이터 청크의 복제본 청크들을 삭제한다(607).
본 발명의 일측에 따르면, 청크에 대한 삭제는 지연되어 이루어지도록 하는데, 데이터 서버는 청크를 즉시 삭제하는 것이 아니라 삭제할 청크를 표시해 두었다가 주기적 또는 시스템의 부하가 적을 때를 이용하여 청크를 삭제함으로써 시스템의 부하에 영향을 주지 않도록 한다.
본 발명의 일측에 따르면, 제1 스트라입 변환부(240)에 의한 변환 처리 과정은 각각의 스트라입에 대해 반복적으로 이루어진다.
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 적어도 하나의 스트라입이 변환되었으면 파일 레이아웃의 기본 정보인 스트라입 폭과 패리티 폭을 변경한다.
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 파일을 완전하게 변환하거나 또는 일부만 변환할 수도 있다. 만약 일부만 변환된 경우에는 재변환 과정을 수행할 수도 있다.
본 발명의 일측에 따르면, 이러한 변환 처리는 파일의 접근 빈도에 따라 관리자에 의해 정책적으로 결정될 수 있다.
도 7은 본 발명의 일측에 따라 제2 스트라입 방식의 파일을 제1 스트라입 방식의 파일로 변환하는 방법을 도시한 흐름도이다.
본 발명의 일측에 따른 제2 스트라입 변환부(250)는 청크 할당부를 이용하여 상기 복제 데이터 청크를 할당하고(701), 복제 요청부를 이용하여 상기 데이터 청크가 저장된 데이터 서버에 복제를 요청할 수 있다(702).
본 발명의 일측에 따른 제2 스트라입 변환부(250)는 파일의 청크들을 제2 스트라입 방식으로 유지하고 있다가 제1 스트라입 방식으로 변환하기 위해서 먼저 메타데이터 서버에서 스트라입의 데이터 청크들에 대한 복제 청크들을 할당하도록 데이터 서버에게 요청한다.
본 발명의 일측에 따른 제2 스트라입 변환부(250)는 복제 청크의 상태를 임시 청크로 설정한다.
본 발명의 일측에 따른 제2 스트라입 변환부(250)는 각각의 데이터 청크를 저장하고 있는 데이터 서버에 자신의 복제 청크로 복제를 하도록 요청한다.
본 발명의 일측에 따른 제2 스트라입 변환부(250)는 데이터 청크를 복제하는 동안 데이터 청크를 저장하고 있는 데이터 서버에 고장이 발생하면 스트라입의 패리티 청크와 다른 데이터 청크를 이용하여 복구하는 절차에 들어간다.
본 발명의 일측에 따른 제2 스트라입 변환부(250)는 데이터 청크를 복제하는 동안 데이터 청크에 대한 갱신이 발생하면 도 8에서 설명하는 절차를 수행한다.
본 발명의 일측에 따른 제2 스트라입 변환부(250)는 인코딩 판단부를 이용하여 상기 데이터 청크의 복제 성공 여부를 판단하고(703), 인코딩 판단부 및 레이아웃 변경부를 이용하여 상기 데이터 청크의 복제가 성공한 경우, 상기 파일의 레이아웃을 변경한다(704).
본 발명의 일측에 따른 제2 스트라입 변환부(250)는 데이터 청크의 복제가 실패하면, 복제 청크를 삭제하고 복제를 취소한다(706).
본 발명의 일측에 따른 제2 스트라입 변환부(250)는 데이터 청크의 복제가 성공하면, 복제 청크를 스트라입으로 구성하고 데이터 청크의 상태는 주 청크로, 복제 청크는 복제 데이터 청크로 변경하여 파일 레이아웃을 변경한다.
본 발명의 일측에 따른 제2 스트라입 변환부(250)는 청크 삭제부를 이용하여 상기 패리티 청크를 삭제할 수도 있다(705).
본 발명의 일측에 따르면, 패리티 청크에 대한 삭제는 지연되어 이루어진다.
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 모든 스트라입에 대한 복제가 완료되면 파일 레이아웃의 기본 정보인 스트라입 폭과 패리티 폭을 변경한다.
본 발명의 일측에 따르면, 제2 스트라입 변환부에 의한 스트라입 변환 처리 과정은 모든 스트라입에 대해 반복적으로 수행될 수 있다.
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 모든 스트라입이 변환되지 않은 경우 스트라입 폭과 패리티 폭을 변경하지는 않는다.
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 스트라입 변환 중에 메타데이터 서버에 고장이 발생한 경우에는 청크가 할당되었지만 복제가 완료되지 못한 임시 청크들이 존재할 수 있으므로, 이러한 청크들은 쓰레기 청크로 분류되어 시스템 복구 시에 삭제된다.
본 발명의 일측에 따르면, 유틸리티에 의한 스트라입 변환은 파일의 접근 빈도에 따라 특정 청크에 대해서만 수행되록 지정할 수 있다.
도 8은 본 발명의 다른 측에 따라 제2 스트라압 방식의 파일을 제1 스트라입 방식의 파일로 변환하는 방법을 도시한 흐름도이다.
본 발명의 일측에 따른 제2 스트라입 변환부(240)는 청크 쓰기 요청부를 이용하여 상기 패리티 청크가 갱신된 경우 상기 데이터 청크에 대한 쓰기를 요청하고(801), 데이터 추가 판단부를 이용하여 상기 데이터에 다른 데이터가 추가되는지 여부를 판단한다(802).
본 발명의 일측에 따른 제2 스트라입 변환부(240)는 패리티 인코딩부를 이용하여 상기 다른 데이터가 추가되는 경우 상기 다른 데이터를 상기 패리티 청크에 전달하여 패리티 인코딩할 수 있다(808, 809).
본 발명의 일측에 따른 제2 스트라입 변환부(240)는 청크 할당부를 이용하여 상기 데이터가 갱신되는 경우 상기 데이터를 저장하는 데이터 서버에 상기 복제 데이터 청크를 할당 요청할 수 있다.
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 제2 스트라입 방식으로 유지되는 파일의 데이터를 갱신하게 되면, 클라이언트로부터 스트라입에 속하는 데이터 청크에 대한 쓰기 요청을 할 수 있다.
본 발명의 일측에 따른 제2 스트라입 변환부(240)는 데이터 갱신부를 이용하여 상기 할당된 복제 데이터 청크로 상기 데이터를 갱신한다(803, 804).
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 기존 데이터를 갱신하는 경우 갱신되는 청크를 저장하고 있는 데이터 서버에 복제 청크 할당을 요청하고, 복제 청크가 할당되면 복제 청크로 데이터를 갱신한다.
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 갱신된 데이터를 패리티 청크에 전달하여 패리티를 갱신한다.
본 발명의 일측에 따른 제2 스트라입 변환부(240)는 패리티 청크 갱신부를 이용하여 상기 갱신된 데이터를 상기 패리티 청크에 전달하여 상기 패리티 청크를 갱신하고(805), 데이터 복제부를 이용하여 상기 갱신된 데이터를 제외한 영역의 데이터를 복제할 수 있다(806).
본 발명의 일측에 따른 제2 스트라입 변환부(240)는 파일 레이아웃 변경부를 이용하여 상기 제2 스트라입에 포함된 모든 데이터 청크에 대한 복제가 완료된 경우, 상기 파일의 레이아웃을 변경할 수 있다.
본 발명의 일측에 따른 제2 스트라입 변환부(240)는 제2 스트라입 방식의 파일을 갱신하게 되면 데이터와 패리티를 동시에 갱신해 주어야 한다.
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 파일을 갱신함으로써, 접근 빈도가 증가시킬 가능성을 높일 수 있다.
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 데이터의 접근 효율성을 증가시키면서 갱신에 대한 비용을 줄이고 장애에 대한 가용성을 유지하기 위하여 파일을 다시 복제 방식으로 변환할 수 있다.
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 갱신된 데이터를 제외한 부분의 데이터를 복제한다(806).
본 발명의 일측에 따른 파일 데이터 분산 저장 장치의 상기 처리 과정은 스트라입에 속하는 데이터 청크들에 대해 반복적으로 수행하며, 스트라입에 속하는 모든 데이터 청크에 대해 복제가 완료되면 파일 레이아웃을 변경할 수 있다.
도 9는 본 발명의 일측에 따라 데이터 서버에 장애가 발생한 경우 처리 과정을 도시한 흐름도이다.
도 9를 참조하면, 본 발명의 일측에 따른 데이터 복구부는 데이터 요청부를 이용하여 상기 패리티 청크를 저장하는 데이터 서버에 데이터 읽기를 요청한다.
본 발명의 일측에 따른 데이터 복구부는 복구 데이터 처리부를 이용하여 상기 패리티 청크를 저장하는 데이터 서버를 이용하여 상기 데이터를 복구하고, 상기 복구된 데이터를 클라이언트로 전달한다.
본 발명의 일측에 따르면, 상기 패리티 청크를 저장하는 데이터 서버는 장애가 발생한 데이터 청크를 제외한 다른 데이터 청크를 읽어 상기 데이터를 복구할 수 있다.
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 제2 스트라입 방식으로 파일을 유지하고 있는 경우, 데이터 클라이언트에서 데이터를 읽기 위해서 먼저 메타데이터 서버로부터 읽을 위치의 스트라입 정보를 받아온다(901).
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 읽을 청크를 결정하고 청크가 저장된 데이터 서버에 데이터 읽기를 요청한다(902).
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 데이터 서버에 접근할 수 있으면 데이터 서버에서 바로 데이터를 읽어서 클라이언트로 전달한다(907).
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 데이터 서버에 접근할 수 없으면, 즉, 장애가 발생한 경우 스트라입의 패리티 청크를 저장하고 있는 데이터 서버에 데이터 읽기 요청을 한다(904).
본 발명의 일측에 따르면, 패리티 청크를 저장하고 있는 데이터 서버는 장애가 발생한 데이터 청크를 제외한 다른 데이터 청크를 읽어서 데이터를 복구한다(905).
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 복구된 데이터를 클라이언트로 전달한다(906).
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 데이터 서버에 장애가 발생한 경우, 장애가 발생한 데이터 서버에 청크가 저장된 파일의 경우에는 복구 처리를 수행할 수 있다.
도 10은 본 발명의 다른 측에 따라 데이터 서버에 장애가 발생한 경우 처리 과정을 도시한 흐름도이다.
본 발명의 일측에 따른 데이터 복구부는 스트라입 정보 수신부를 통하여 상기 장애가 발생한 데이터 서버에 저장된 파일의 스트라입 정보를 수신한다(1001).
본 발명의 일측에 따른 데이터 복구부는 스트라입 방식 판단부를 이용하여 상기 스트라입 정보를 분석하여 상기 데이터가 제1 스트라입 방식 또는 제2 스트라입 방식인지 여부를 판단한다(1002).
예를 들어, 본 발명의 일측에 따른 데이터 복구부는 스트라입 폭이 1 보다 큰가를 판단하여 스트라입 폭이 1 보다 크지 않으면 제1 스트라입 방식으로 판단하고, 스트라입 폭이 1 보다 크면 제2 스트라입 방식으로 판단할 수 있다.
본 발명의 일측에 따른 데이터 복구부는 데이터 복제부를 이용하여 상기 데이터가 제1 스트라입 방식인 경우, 상기 복제 데이터 청크를 할당하고 상기 장애 데이터 청크를 다른 복제 데이터 청크로 복제한다(1008, 1009).
본 발명의 일측에 따른 데이터 복구부는 레이아웃 변경부를 이용하여 상기 복제된 다른 복제 데이터 청크를 기반으로 상기 파일의 레이아웃을 변경할 수 있다(1010).
본 발명의 일측에 따른 데이터 복구부는 청크 판단부를 이용하여 상기 데이터가 제2 스트라입 방식인 경우, 상기 장애가 발생한 청크가 패리티 청크인지 여부를 판단한다(1003).
본 발명의 일측에 따른 데이터 복구부는 패리티 청크 생성부를 이용하여 상기 장가 발생한 청크가 패리티 청크인 경우, 상기 패리티 청크를 할당하고 상기 데이터 청크를 읽어 패리티를 인코딩하여 다른 패리티 청크를 생성한다(1004, 1005).
본 발명의 일측에 따른 데이터 복구부는 데이터 청크 복구부를 이용하여 상기 데이터 복구부는 상기 장가 발생한 청크가 패리티 청크인 경우, 상기 데이터 청크를 할당하고 상기 다른 데이터 청크와 다른 패리티 청크를 읽어 상기 데이터 청크를 복구한다(1006, 1007).
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 파일 데이터를 분산 저장함에 있어서 접근 빈도에 따라 데이터를 복제하여 저장하고 관리하는 방법으로 유지하다가 접근 빈도가 줄어들거나 관리자의 의도에 의해 데이터를 패리티를 갖는 스트라입 방식으로 변경하여 저장하도록 함으로써, 스토리지 효율성을 증가시키면서 복제 방식과 동일한 가용성을 제공할 수 있다.
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 패리티를 갖는 스트라입 방식으로 저장된 파일이 다시 갱신될 때 파일 데이터의 접근 빈도가 다시 증가할 것을 예상하여 파일을 다시 복제 방식으로 변경하여 저장하도록 함으로써 접근 효율성을 증가시킬 수 있다.
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 하나의 파일에서 일부 데이터에 대한 접근이 자주 발생하는 것을 대비하여 일부 데이터에 대해서만 복제 방식으로 데이터를 저장하고 나머지 부분에 대해서는 패리티를 갖는 스트라입 방식으로 유지할 수 있다.
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 메타데이터 서버에서 볼륨 단위로 스토리지에 대한 저장 방식을 결정하고, 기본적으로 최초에 파일 저장될 때는 이후 접근이 자주 발생할 것으로 예상되어 복제 방식으로 저장할 수 있다.
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 파일에 대한 접근 빈도가 줄어들었을 때 자동으로 또는 관리자에 의해 유틸리티를 통하여 파일 또는 특정 디렉토리 아래 파일들에 대해 패리티를 갖는 스트라입 형태로 저장 방식을 변경할 수 있다.
본 발명의 일측에 따른 파일 데이터 분산 저장 장치는 볼륨에 속한 모든 파일에 대해 복제 방식으로 데이터를 저장함으로써 낭비될 수 있는 스토리지 공간을 절약할 수 있으며, 시스템 장애로 인한 장애 상황에서도 패리티를 통해 데이터를 손실을 방지할 수 있다.
본 발명에 따른 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
210: 제1 스트라입 관리부
220: 제2 스트라입 관리부
230: 혼합 스트라입 관리부
240: 제1 스트라입 변환부
250: 제2 스트라입 변환부

Claims (20)

  1. 파일의 데이터를 청크(chunk) 단위로 나누어 데이터 청크에 대한 복제 데이터 청크를 포함하는 제1 스트라입(stripe)으로 유지하는 제1 스트라입 관리부;
    상기 데이터를 청크 단위로 나누어 상기 데이터 청크와 패리티 청크를 포함하는 제2 스트라입으로 유지하는 제2 스트라입 관리부;
    상기 제1 스트라입과 상기 제2 스트라입을 혼합하여 유지하는 혼합 스트라입 관리부;
    상기 제1 스트라입을 상기 제2 스트라입으로 변환하여 유지하는 제1 스트라입 변환부; 및
    상기 제2 스트라입을 상기 제1 스트라입으로 변환하여 유지하는 제2 스트라입 변환부;
    를 포함하는 파일 데이터 분산 저장 장치.
  2. 제1항에 있어서,
    상기 데이터 청크를 저장하는 데이터 서버의 장애 여부를 판단하여, 상기 데이터 서버가 장애로 판단된 경우 상기 데이터를 복구하는 데이터 복구부
    를 더 포함하는 파일 데이터 분산 저장 장치.
  3. 제1항에 있어서,
    상기 각각의 청크는,
    청크 크기, 전체 청크 개수, 스트라입 개수, 스트라입 폭 또는 패리티 폭 중 어느 하나 이상의 정보를 포함하는 파일 데이터 분산 저장 장치.
  4. 제1항에 있어서,
    상기 제1 스트라입 변환부는,
    상기 패리티 청크를 할당하는 청크 할당부; 및
    상기 데이터 청크에 인코딩 비트를 설정하는 비트 설정부;
    를 포함하는 파일 데이터 분산 저장 장치.
  5. 제4항에 있어서,
    상기 제1 스트라입 변환부는,
    상기 데이터 청크가 갱신 중인지 여부를 판단하는 갱신 판단부;
    상기 데이터 청크를 갱신하지 않는 경우, 상기 패리티 청크가 할당된 데이터 서버에 패리티 인코딩을 요청하는 인코딩 요청부;
    상기 패리티 인코딩의 성공 여부를 판단하는 인코딩 판단부; 및
    상기 패리티 인코딩이 성공한 경우, 상기 파일의 레이아웃을 변경하는 레이아웃 변경부;
    를 더 포함하는 파일 데이터 분산 저장 장치.
  6. 제5항에 있어서,
    상기 제1 스트라입 변환부는,
    상기 데이터 청크에 대한 상기 복제 데이터 청크를 삭제하는 청크 삭제부;
    를 더 포함하는 파일 데이터 분산 저장 장치.
  7. 제1항에 있어서,
    상기 제2 스트라입 변환부는,
    상기 복제 데이터 청크를 할당하는 청크 할당부; 및
    상기 데이터 청크가 저장된 데이터 서버에 복제를 요청하는 복제 요청부;
    를 포함하는 파일 데이터 분산 저장 장치.
  8. 제7항에 있어서,
    상기 제2 스트라입 변환부는,
    상기 데이터 청크의 복제 성공 여부를 판단하는 인코딩 판단부; 및
    상기 데이터 청크의 복제가 성공한 경우, 상기 파일의 레이아웃을 변경하는 레이아웃 변경부;
    를 더 포함하는 파일 데이터 분산 저장 장치.
  9. 제8항에 있어서,
    상기 제2 스트라입 변환부는,
    상기 패리티 청크를 삭제하는 청크 삭제부;
    를 더 포함하는 파일 데이터 분산 저장 장치.
  10. 제1항에 있어서,
    상기 제2 스트라입 변환부는,
    상기 패리티 청크가 갱신된 경우 상기 데이터 청크에 대한 쓰기를 요청하는 청크 쓰기 요청부; 및
    상기 데이터에 다른 데이터가 추가되는지 여부를 판단하는 데이터 추가 판단부;
    를 포함하는 파일 데이터 분산 저장 장치.
  11. 제10항에 있어서,
    상기 제2 스트라입 변환부는,
    상기 다른 데이터가 추가되는 경우 상기 다른 데이터를 상기 패리티 청크에 전달하여 패리티 인코딩 하는 패리티 인코딩부
    를 더 포함하는 파일 데이터 분산 저장 장치.
  12. 제10항에 있어서,
    상기 제2 스트라입 변환부는,
    상기 데이터가 갱신되는 경우 상기 데이터를 저장하는 데이터 서버에 상기 복제 데이터 청크를 할당 요청하는 청크 할당부;
    상기 할당된 복제 데이터 청크로 상기 데이터를 갱신하는 데이터 갱신부;
    상기 갱신된 데이터를 상기 패리티 청크에 전달하여 상기 패리티 청크를 갱신하는 패리티 청크 갱신부;
    상기 갱신된 데이터를 제외한 영역의 데이터를 복제하는 데이터 복제부;
    를 더 포함하는 파일 데이터 분산 저장 장치.
  13. 제12항에 있어서,
    상기 제2 스트라입 변환부는,
    상기 제2 스트라입에 포함된 모든 데이터 청크에 대한 복제가 완료된 경우, 상기 파일의 레이아웃을 변경하는 파일 레이아웃 변경부
    를 더 포함하는 파일 데이터 분산 저장 장치.
  14. 제2항에 있어서,
    상기 데이터 복구부는,
    상기 패리티 청크를 저장하는 데이터 서버에 데이터 읽기를 요청하는 데이터 요청부;
    상기 패리티 청크를 저장하는 데이터 서버를 이용하여 상기 데이터를 복구하고, 상기 복구된 데이터를 클라이언트로 전달하는 복구 데이터 처리부
    를 포함하고,
    상기 패리티 청크를 저장하는 데이터 서버는, 장애가 발생한 데이터 청크를 제외한 다른 데이터 청크를 읽어 상기 데이터를 복구하는 것을 특징으로 하는 파일 데이터 분산 저장 장치.
  15. 제2항에 있어서,
    상기 데이터 복구부는,
    상기 장애가 발생한 데이터 서버에 저장된 파일의 스트라입 정보를 수신하는 스트라입 정보 수신부;
    상기 스트라입 정보를 분석하여 상기 데이터가 제1 스트라입 방식 또는 제2 스트라입 방식인지 여부를 판단하는 스트라입 방식 판단부;
    상기 데이터가 제1 스트라입 방식인 경우, 상기 복제 데이터 청크를 할당하고 상기 장애 데이터 청크를 다른 복제 데이터 청크로 복제하는 데이터 복제부; 및
    상기 복제된 다른 복제 데이터 청크를 기반으로 상기 파일의 레이아웃을 변경하는 레이아웃 변경부
    를 포함하는 파일 데이터 분산 저장 장치.
  16. 제15항에 있어서,
    상기 데이터 복구부는,
    상기 데이터가 제2 스트라입 방식인 경우, 상기 장애가 발생한 청크가 패리티 청크인지 여부를 판단하는 청크 판단부;
    상기 장가 발생한 청크가 패리티 청크인 경우, 상기 패리티 청크를 할당하고 상기 데이터 청크를 읽어 패리티를 인코딩하여 다른 패리티 청크를 생성하는 패리티 청크 생성부
    를 더 포함하는 파일 데이터 분산 저장 장치.
  17. 제16항에 있어서,
    상기 데이터 복구부는,
    상기 장가 발생한 청크가 패리티 청크인 경우, 상기 데이터 청크를 할당하고 상기 다른 데이터 청크와 다른 패리티 청크를 읽어 상기 데이터 청크를 복구하는 데이터 청크 복구부;
    를 더 포함하는 파일 데이터 분산 저장 장치.
  18. 파일의 데이터를 청크(chunk) 단위로 나누어 데이터 청크에 대한 복제 데이터 청크를 포함하는 제1 스트라입(stripe)으로 유지하는 단계;
    상기 데이터를 청크 단위로 나누어 상기 데이터 청크와 패리티 청크를 포함하는 제2 스트라입으로 유지하는 단계;
    상기 제1 스트라입과 상기 제2 스트라입을 혼합하여 유지하는 단계;
    상기 제1 스트라입을 상기 제2 스트라입으로 변환하여 유지하는 단계; 및
    상기 제2 스트라입을 상기 제1 스트라입으로 변환하여 유지하는 단계
    를 포함하는 파일 데이터 분산 저장 방법.
  19. 제18항에 있어서,
    상기 데이터 청크를 저장하는 데이터 서버의 장애 여부를 판단하여, 상기 데이터 서버가 장애로 판단된 경우 상기 데이터를 복구하는 단계
    를 더 포함하는 파일 데이터 분산 저장 방법.
  20. 제18항에 있어서,
    상기 각각의 청크는,
    청크 크기, 전체 청크 개수, 스트라입 개수, 스트라입 폭 또는 패리티 폭 중 어느 하나 이상의 정보를 포함하는 파일 데이터 분산 저장 방법.
KR1020110090087A 2011-09-06 2011-09-06 파일 데이터 분산 저장 장치 및 방법 KR101695991B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110090087A KR101695991B1 (ko) 2011-09-06 2011-09-06 파일 데이터 분산 저장 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110090087A KR101695991B1 (ko) 2011-09-06 2011-09-06 파일 데이터 분산 저장 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20130026738A true KR20130026738A (ko) 2013-03-14
KR101695991B1 KR101695991B1 (ko) 2017-01-12

Family

ID=48177905

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110090087A KR101695991B1 (ko) 2011-09-06 2011-09-06 파일 데이터 분산 저장 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101695991B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019036301A (ja) * 2017-08-10 2019-03-07 三星電子株式会社Samsung Electronics Co.,Ltd. データ保存方法及びそのシステム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102029942B1 (ko) * 2018-01-18 2019-10-08 아주대학교산학협력단 대용량 데이터 분석 시스템 및 그 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050210322A1 (en) * 2004-03-22 2005-09-22 Intel Corporation Migrating data between storage volumes
US20060085674A1 (en) * 2004-10-02 2006-04-20 Hewlett-Packard Development Company, L.P. Method and system for storing data
WO2006052888A2 (en) * 2004-11-05 2006-05-18 Trusted Data Corporation Dynamically expandable and contractible fault-tolerant storage system permitting variously sized storage devices and method
US20090216832A1 (en) * 2008-02-26 2009-08-27 Quinn Steven C Array-based distributed storage system with parity

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050210322A1 (en) * 2004-03-22 2005-09-22 Intel Corporation Migrating data between storage volumes
US20060085674A1 (en) * 2004-10-02 2006-04-20 Hewlett-Packard Development Company, L.P. Method and system for storing data
WO2006052888A2 (en) * 2004-11-05 2006-05-18 Trusted Data Corporation Dynamically expandable and contractible fault-tolerant storage system permitting variously sized storage devices and method
US20090216832A1 (en) * 2008-02-26 2009-08-27 Quinn Steven C Array-based distributed storage system with parity

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019036301A (ja) * 2017-08-10 2019-03-07 三星電子株式会社Samsung Electronics Co.,Ltd. データ保存方法及びそのシステム
JP7084243B2 (ja) 2017-08-10 2022-06-14 三星電子株式会社 データ保存方法及びそのシステム

Also Published As

Publication number Publication date
KR101695991B1 (ko) 2017-01-12

Similar Documents

Publication Publication Date Title
US11461015B2 (en) Available storage space in a system with varying data redundancy schemes
US10628378B2 (en) Replication of snapshots and clones
CN104641365B (zh) 在文件存储系统中使用检查点管理去复制的系统和方法
KR101915826B1 (ko) 분산 저장 환경에서의 동기 복제 기법
KR102025934B1 (ko) 분산형 시스템에서의 범위들의 분할 및 이동
CN101334797B (zh) 一种分布式文件系统及其数据块一致性管理的方法
US10558565B2 (en) Garbage collection implementing erasure coding
JP5137476B2 (ja) 連携して動作する複数のアプリケーションが使用するデータのバックアップ環境の設定を行う計算機及び方法
JP2019101703A (ja) 記憶システム及び制御ソフトウェア配置方法
US11093387B1 (en) Garbage collection based on transmission object models
US9996421B2 (en) Data storage method, data storage apparatus, and storage device
US20110153570A1 (en) Data replication and recovery method in asymmetric clustered distributed file system
JP5516575B2 (ja) データ挿入システム
US11150846B2 (en) Storage system, computer-readable recording medium, and control method for system that reconstructs and distributes data
EP3575968A1 (en) Method and device for synchronizing active transaction lists
US20140317056A1 (en) Method of distributing and storing file-based data
CN113220729A (zh) 数据存储方法、装置、电子设备及计算机可读存储介质
CN111930716A (zh) 一种数据库扩容方法、装置及系统
US8255367B2 (en) File management apparatus, method, and program
KR20130026738A (ko) 파일 데이터 분산 저장 장치 및 방법
JP2011222005A (ja) 使用中の複数サイトの保護データ記憶の自動化された再配置
JP2021060818A (ja) ストレージシステムおよびデータ移行方法
US11645333B1 (en) Garbage collection integrated with physical file verification
US20130318040A1 (en) Data replication apparatus and method using hierarchical organization of data servers
CN111522688A (zh) 分布式系统的数据备份方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191223

Year of fee payment: 4