KR20100073154A - 메타데이터 서버, 데이터 서버의 데이터 처리 방법 및 이를이용한 비대칭 클러스터 분산 파일 시스템 - Google Patents
메타데이터 서버, 데이터 서버의 데이터 처리 방법 및 이를이용한 비대칭 클러스터 분산 파일 시스템 Download PDFInfo
- Publication number
- KR20100073154A KR20100073154A KR1020080131747A KR20080131747A KR20100073154A KR 20100073154 A KR20100073154 A KR 20100073154A KR 1020080131747 A KR1020080131747 A KR 1020080131747A KR 20080131747 A KR20080131747 A KR 20080131747A KR 20100073154 A KR20100073154 A KR 20100073154A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- server
- data chunk
- metadata
- block
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
본 발명은 비대칭 클러스터 분산 파일 시스템에서 클라이언트들로부터 집중적인 접근이 이루어지는 데이터에 대한 접근을 분산하는 방법에 관한 것이다.
본 발명은 지식경제부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2007-S-016-02, 과제명: 저비용 대규모 글로벌 인터넷 서비스 솔루션 개발].
최근에 인터넷 서비스로 UCC 등과 같이 동영상 서비스를 제공하는 경우에 다수의 클라이언트들로부터 특정 동영상들에 대한 접근이 한 순간에 일시적 또는 지속적으로 폭주하는 일이 빈번하게 발생하고 있다.
이런 인기 동영상과 같이, 현저한 액세스(access)량을 보이는 데이터를 핫 데이터(hot data)라고 한다. 핫 데이터에 대한 서비스를 효율적으로 제공하지 못한다면 서비스의 지연 또는 중지로 이어질 수 있으며 다른 데이터에 대한 서비스에도 영향을 미칠 수 있다.
핫 데이터에 대한 서비스를 효율적으로 제공하기 위해서는, 클라이언트로부터 요청되는 핫 데이터에 대한 접근 빈도가 상승할 때, 핫 데이터를 여러 서버들로 효율적으로 분산하면서 핫 데이터에 대한 서비스가 지연되지 않도록 보장할 수 있는 방법이 요구된다.
비대칭 클러스터 분산 파일 시스템은 파일의 메타데이터와 실제 데이터를 분리하여 저장하고 관리하는 시스템으로서, 메타데이터는 메타데이터 서버에서 관리되며 실제 데이터는 여러 대의 데이터 서버들에 분산되어 저장된다. 메타데이터 서버에서 관리하는 메타데이터에는 실제 데이터가 저장되어 있는 데이터 서버에 대한 정보가 포함된다.
이러한 메타데이터 서버와 데이터 서버들은 네트워크로 연결되어 분산된 구조를 갖는다. 따라서 클라이언트는 파일의 메타데이터와 데이터를 접근하는 경로가 분리된다. 즉, 파일을 액세스하기 위해서, 클라이언트는 먼저 메타데이터 서버에 있는 파일의 메타데이터를 액세스해서 실제 데이터가 저장되어 있는 데이터 서버들에 대한 정보를 얻는다. 그리고 나서 실제 데이터에 대한 입출력은 데이터 서버들을 통하여 이루어진다.
비대칭 클러스터 분산 파일 시스템에서는 파일 데이터를 고정된 크기의 데이터 청크(chunk) 단위로 나누어 데이터 서버들에 분산하여 저장한다.
또한 서버나 네트워크 등이 고장난 경우에, 데이터에 대한 입출력을 할 수 없는 문제를 해결하고자 청크에 대한 복제본을 만들어 다른 데이터 서버들에 저장하는데, 복제본은 저장 비용 등을 고려하여 세 개 정도를 유지하는 것이 일반적이 다.
복제본을 여러 데이터 서버에 유지함에 따라서, 사용자로부터의 액세스 부하를 분산시킬 수 있게 된다.
하지만, 동영상 파일을 접근하는 대부분의 클라이언트들은 동영상 파일의 유명하거나 특징적인 부분에 집중적으로 액세스하는 경향이 많다. 따라서 특정 파일 데이터 청크에 대한 액세스가 급증할 수 있으며, 이렇게 액세스가 급증한 특정 데이터 청크, 즉 핫 데이터 청크에 대한 서비스를 효율적으로 제공해야 하는 문제가 제기되고 있다.
현재 비대칭 클러스터 분산 파일 시스템에서는 핫 데이터에 대한 이벤트가 발생하였을 때, 데이터를 다시 여러 데이터 서버들에 복제함으로써 핫 데이터에 대한 액세스를 분산시키는 방법을 사용한다.
하지만 핫 데이터를 다른 데이터 서버에 복제하는 작업은 핫 데이터를 서비스하고 있는 데이터 서버에게는 부담으로 작용할 수 있다. 뿐만 아니라 일반적으로 비대칭 클러스터 분산 파일 시스템에서는, 파일 데이터에 대한 입출력을 위해서 매번 메타데이터 서버에 액세스해야 하는 비용을 줄임과 동시에 메타데이터 서버에서 유지하는 메타데이터 크기를 줄일 수 있다는 점 등을 고려하여, 일반 파일 시스템의 블록보다 훨씬 큰 단위로 파일 데이터를 나누어 저장하기 때문에, 데이터 청크 자체를 복제하는 비용도 커다란 부담으로 작용할 수 있다.
이를 고려해서 인기 있을 것으로 예상되는 동영상 데이터를 미리 여러 데이터 서버에 복제하여 두는 방법도 사용되고 있지만, 예상이 항상 만족하는 것은 아 니기 때문에 저장 공간의 낭비를 초래할 수 있다.
따라서, 핫 데이터 청크에 대한 접근을 빠르게 분산시킬 수 있는 방법이 요구된다.
본 발명에서는 비대칭 클러스터 분산 파일 시스템에서 핫 데이터에 대한 접근을 효율적으로 분산할 수 있도록 한다.
본 발명에서는 핫 데이터를 분할함으로써 핫 데이터에 대한 접근을 효과적으로 분산할 수 있도록 한다.
본 발명에서는 클라이언트로부터 요청된 핫 데이터에 대한 접근을 핫 데이터를 분할한 데이터 블록들로 분산할 수 있도록 한다.
본 발명에서는 분할되어 있던 데이터 블록들을 조합함으로써 핫 데이터에 대한 수요가 감소한 경우에, 데이터를 효율적으로 관리할 수 있도록 한다.
본 발명에서는 핫 데이터에 대한 접근이 줄어들었을 때 분할했던 핫 데이터 블록을 조합하면서 데이터 블록들의 수를 줄여나갈 수 있도록 한다.
본 발명에서는 핫 데이터 전체가 아니라 핫 데이터 블록 단위의 복제로 핫 데이터에 대한 복제가 보다 빠르게 수행될 수 있도록 한다.
본 발명에서는 핫 데이터 블록을 이용하여 핫 데이터에 대한 회복이 수행될 수 있도록 한다.
본 발명에서는, 데이터 파일에 대한 메타데이터; 상기 데이터 파일에서 분할된 각 데이터 청크에 대한 메타데이터; 및 상기 데이터 청크에서 분할된 데이터 청크블록에 대한 메타데이터를 저장하는 데이터 저장부를 포함하는, 비대칭 클러스터 분산 파일 시스템의 메타데이터 서버를 제공한다.
본 발명에 따른 비대칭 클러스터 분산 파일 시스템의 메타데이터 서버에서, 상기 데이터 파일에 대한 메타데이터는, 상기 데이터 청크를 식별하는 청크 식별자를 포함하며, 상기 데이터 청크에 대한 메타데이터는, 상기 데이터 파일을 식별하는 파일 식별자; 및 상기 데이터 청크블록을 식별하는 데이터 청크블록 식별자를 포함하고, 상기 데이터 청크블록에 대한 메타데이터는, 상기 데이터 청크를 식별하는 데이터 청크 식별자를 포함할 수도 있다.
본 발명에 따른 비대칭 클러스터 분산 파일 시스템의 메타데이터 서버에서, 상기 데이터 저장부는, 상기 데이터 청크블록에서 분할된 자(子) 데이터 청크블록에 대한 메타데이터를 추가로 저장하며, 상기 데이터 청크블록에 대한 메타데이터는, 상기 자(子) 데이터 청크블록을 식별하는 자(子) 데이터 청크블록 식별자를 더 포함하고, 상기 자(子) 데이터 청크블록에 대한 메타데이터는, 상기 데이터 청크블록을 식별하는 모(母) 데이터 청크블록 식별자를 포함할 수도 있다.
본 발명은 또한, 데이터 파일의 데이터 청크를 여러 개의 데이터 청크 블록으로 나누어 저장하는 단계; 클라이언트의 데이터 액세스 요청을 수신하는 단계; 상기 액세스 요청의 대상이 되는 데이터 청크 블록에 대하여, 액세스 요청의 누적 횟수를 검색하는 단계; 상기 액세스 요청의 누적 횟수가 최대 기준값 이하인 경우에는, 액세스 요청의 대상 데이터를 반환하는 단계; 상기 액세스 요청의 누적 횟수가 최대 기준값 이상인 경우에는, 다른 데이터 서버에 상기 데이터 청크 블록을 복제하는 단계; 및 상기 복제된 데이터 청크 블록에 대한 식별자를 클라이언트에게 반환하는 단계를 포함하는, 비대칭 클러스터 분산 파일 시스템에 있어서 데이터 서버의 데이터 처리 방법을 제공한다.
본 발명에 따른 비대칭 클러스터 분산 파일 시스템에 있어서 데이터 서버의 데이터 처리 방법에서는, 상기 데이터 청크 블록의 복제 단계를 실행한 후, 상기 데이터 청크 블록에 대한 정보를 메타데이터 서버에 전송하는 단계를 더 포함할 수도 있다.
본 발명에 따른 비대칭 클러스터 분산 파일 시스템에 있어서 데이터 서버의 데이터 처리 방법에서는 또한, 상기 복제한 데이터 청크 블록을 여러 개의 자(子) 데이터 청크 블록으로 분할하여 저장하는 단계를 더 포함할 수도 있다.
아울러, 본 발명에 따른 비대칭 클러스터 분산 파일 시스템에 있어서 데이터 서버의 데이터 처리 방법에서는, 상기 액세스 요청의 누적 횟수 검색 단계 전에, 상기 데이터 액세스 요청의 대상이 된 데이터 청크 블록에 대하여, 다른 데이터 서버에 복제된 데이터 청크 블록의 식별자가 있는지 검색하는 단계를 더 포함하며, 다른 데이터 서버에 복제된 데이터 청크 블록의 식별자가 있는 경우에는, 상기 데이터 청크 블록의 식별자를 클라이언트에게 반환하고, 다른 데이터 서버에 복제된 데이터 청크 블록의 식별자가 있는 경우에는, 상기 액세스 요청의 누적 횟수 검색 단계를 실행할 수도 있다.
또한, 본 발명에 따른 비대칭 클러스터 분산 파일 시스템에 있어서 데이터 서버의 데이터 처리 방법에서, 상기 데이터 서버는, 상기 데이터 액세스 요청의 누적 횟수가 최대 기준값 이하인 경우에는, 상기 데이터 액세스 요청의 누적 횟수를 감소시키고, 상기 상기 데이터 액세스 요청의 누적 횟수가 최저 기준값 이하로 감소하는 경우에는, 상기 분할된 데이터 청크 블록을 데이터 청크로 조합해도 된다.
본 발명은 이와 함께, 데이터 파일의 데이터 청크를 여러 개의 데이터 청크 블록으로 나누어 저장하는 데이터 서버; 상기 데이터 파일의 메타데이터, 상기 데이터 청크의 메타데이터 및 상기 데이터 청크 블록의 메타데이터를 저장하는 메타데이터 서버; 및 클라이언트를 포함하는 비대칭 클러스터 분산 파일 시스템을 제공한다.
본 발명에 따른 비대칭 클러스터 분산 파일 시스템에서 상기 데이터 서버는, 상기 클라이언트의 데이터 액세스 요청에 대응하여, 상기 액세스 요청의 대상이 되는 데이터 청크 블록에 대한 액세스 요청 누적 횟수가 최대 기준값 이하인 경우에는, 액세스 요청의 대상 데이터를 반환하며, 상기 액세스 요청의 누적 횟수가 최대 기준값 이상인 경우에는, 다른 데이터 서버에 상기 데이터 청크 블록을 복제하고, 상기 복제된 데이터 청크 블록에 대한 식별자를 클라이언트에게 반환하며, 상기 메타데이터 서버는, 상기 데이터 서버로부터, 또는 상기 데이터 서버에게서 데이터 청크 블록을 복제받은 데이터 서버로부터, 데이터 청크 블록의 복제 정보를 수신하고, 상기 복제된 데이터 청크 블록에 관한 메타데이터 정보 및 상기 데이터 청크 및 데이터 청크 블록 사이의 식별자를 생성할 수도 있다.
또한, 본 발명에 따른 비대칭 클러스터 분산 파일 시스템에서 상기 데이터 서버는, 상기 액세스 요청의 누적 횟수가 최대 기준값 이하인 경우에는, 상기 액세스 요청의 누적 횟수를 감소시키고, 상기 액세스 요청의 누적 횟수가 최소 기준값 이하로 감소한 경우에는, 상기 상기 분할된 데이터 청크 블록을 데이터 청크로 조합해도 된다.
아울러, 본 발명에 따른 비대칭 클러스터 분산 파일 시스템에서, 상기 데이터 서버로부터 데이터 청크 블록을 복제받은 데이터 서버는, 상기 복제받은 데이터 청크 블록을, 여러 개의 데이터 청크 블록에 분할하여 저장하며, 설정된 수만큼 다른 데이터 서버로 복제하고, 상기 데이터 청크 블록의 복제 정보를 메타데이터 서버에 전송할 수도 있다.
본 발명에 의하면, 비대칭 클러스터 분산 파일 시스템의 클라이언트들로부터 집중적으로 액세스 요청되는 데이터 청크를 분할하여 복제함으로써 데이터 복제에 대한 부하와 비용을 최소화하면서 클라이언트로부터의 액세스를 효과적으로 분산할 수 있다.
또한 본 발명에 의하면, 핫 데이터 전체가 아니라 핫 데이터 블록 단위의 복제가 이루어지므로, 데이터 복제 뿐만 아니라 액세스 부하의 분산이 더 빠르게 수행될 수 있다.
아울러, 본 발명에 의하면, 분할되어 있던 데이터 블록들을 조합함으로써 핫 데이터에 대한 수요가 감소한 경우에, 데이터를 효율적으로 관리할 수 있다.
본 발명에 따른 비대칭 클러스터 분산 파일 시스템은 메타데이터를 저장하고 관리하는 메타데이터 서버, 파일 데이터를 저장하고 관리하는 데이터 서버들이 네 트워크로 연결되어 구성되는 시스템으로서, 상기 메타데이터 서버는 파일 데이터를 저장하고 있는 데이터 서버들에 대한 정보를 유지하고 클라이언트로부터의 메타데이터 접근 요청을 처리할 뿐만 아니라 파일 데이터를 저장할 데이터 서버를 선정한다.
또한, 본 발명에 따른 비대칭 클러스터 분산 파일 시스템의 데이터 서버들은 파일 데이터를 정해진 크기의 파일 데이터 청크들로 나눠서 분산 저장하고, 클라이언트로부터의 데이터 액세스 요청을 처리하며, 클라이언트로부터의 집중적인 액세스 요청으로 핫 데이터가 발생하였을 때, 핫 데이터를 분할하여 다른 데이터 서버들로 분산함으로써 클라이언트로부터의 액세스 요청을 분산시킨다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다.
<비대칭 클러스터 분산 파일 시스템의 개략>
본 발명에 따른 비대칭 클러스터 분산 파일 시스템에서는, 클라이언트가 액세스할 파일에 대한 메타데이터를 메타데이터 서버로부터 수신하여, 데이터 서버에 파일 데이터를 요청하면, 데이터 서버는 클라이언트로부터의 액세스 요청에 의해 대상 데이터가 일정한 기준 이상 액세스 요청이 쇄도한 핫 데이터인지, 혹은 핫 데이터가 되었는지를 판단하고, 핫 데이터로 판단된 경우에는 데이터 블록들로 분할하여, 다른 데이터 서버에 복제하며, 클라이언트의 액세스 요청을 복제된 데이터 블록이 있는 데이터 서버로 분산시킨다. 이어서, 핫 데이터에 대한 액세서 요청이 줄어들면 핫 데이터의 블록들을 조합하여 데이터 저장 관리의 효율을 도모한다.
도 1은 본 발명에 따른 비대칭 클러스터 분산 파일 시스템의 구성을 개략적으로 도시한 것이다.
도 1에 도시된 바와 같이, 비대칭 클러스터 분산 파일 시스템은 클라이언트(101), 메타데이터 서버(102), 데이터 서버(103)을 포함한다.
클라이언트(101)는 클라이언트 응용을 수행하면서 메타데이터 서버(102)로부터 파일 메타데이터에 액세스하고 데이터 서버(103)로부터 파일 데이터를 입출력한다.
메타데이터 서버(101)는 파일 시스템의 모든 파일에 대한 메타데이터를 저장하고 관리하며, 모든 데이터 서버(103)에 대한 상태 정보를 관리한다.
비대칭 클러스터 분산 파일 시스템에서는 파일 데이터가 정해진 크기의 청크 단위로 나뉘어서 데이터 서버들(103)에 분산 생성된다. 메타데이터 서버(101)는 파일 데이터 청크가 생성될 데이터 서버를 선정하며 복제본을 저장할 데이터 서버들도 선정한다. 파일 데이터 청크는 유일한 식별자에 의해 구별되며 생성된 파일 데이터 청크에 대한 식별자 정보는 파일의 메타데이터 정보로 메타데이터 서버(101)에 유지된다.
데이터 서버(103)는 파일 데이터 청크를 저장하고 관리한다. 데이터 서버(103)는 주기적으로 메타데이터 서버(102)에게 자신의 상태 정보를 보고한다.
클라이언트(101), 메타데이터 서버(102), 데이터 서버(103)들은 네트워크로 상호 연결된다.
<데이터 서버 - 데이터의 분할 복제>
도 2는 본 발명에 따른 비대칭 클러스터 분산 파일 시스템의 데이터 서버에서 핫 데이터를 핫 데이터 블록들로 분할하고 분산하는 것을 개략적으로 도시한 것이다.
파일 데이터 청크는 서버 고장 또는 네트워크 고장 등에 의한 데이터 손실 대비 또는 데이터 서버의 부하 분산 등을 목적으로 여러 대의 데이터 서버에 복제본을 만들어 저장된다.
일반적으로 데이터 청크는 복제본을 포함하여 세 개 정도를 유지하도록 관리된다. 즉 세 대의 별도의 데이터 서버들(201, 202, 203)에 데이터 청크가 저장된다.
데이터 서버(201)는 클라이언트로부터 파일 데이터에 대한 액세스 요청을 받으면 해당 데이터가 핫 데이터에 해당하는지를 판단한다.
좀 더 구체적으로 도면을 참조하여 설명하면, 본 발명에서, 데이터 서버(201)는 파일 데이터 청크(211)를 데이터 청크 블록(211a, 211b, 211c)로 분할하여, 저장하고 있다. 여기서 데이터 청크 블록은, 데이터 청크의 데이터를 더 잘게 분할한 단위를 말하는 것으로, 저장 공간을 일컫는 데이터 블록과는 구별된다.
액세스 요청이 있으면, 데이터 서버(201)은 데이터 청크 블록 단위로 액세스 요청의 횟수를 산출한다. 데이터 청크 블록에 대한 지금까지 누적된 액세스 요청의 횟수가 미리 설정한 기준 누적 횟수를 초과하였을 때는 해당 데이터 블록을 핫 데이터 청크 블록으로 판단하고, 다른 데이터 서버로 복제한다.
예컨대, 데이터 청크 블록(211a)에 대한 액세스 요청 누적 횟수가 미리 정한 기준 누적 횟수를 초과하면, 해당 청크 블록(211a)만을 다른 데이터 서버(204)에 복제한다. 이를 통해, 해당 데이터 청크 블록을 가진 데이터 서버가 늘어나면서, 데이터 서버(201)에 대한 액세스 요청 부하가 분산될 수 있다.
이때, 데이터 청크 블록(211a)이 복제된 데이터 서버(204)는 복제된 데이터 청크 블록(213)을 또다시 데이터 청크 블록(213a, 213b, 213c)으로 분할하여 저장할 수도 있다.
뿐만 아니라, 일반적으로 복제가 이루어지는 경우에 유지되는 복제본의 갯수가 미리 설정되어 있는 경우에는, 그에 따라 다른 데이터 서버에 연속하여 데이터복제를 행한다. 예를 들어, 복제본이 전부 3개가 유지되도록 미리 설정되어 있다면, 데이터 청크 블록을 복제받는 데이터 서버(204)는 다른 데이터 서버로 차례로 복제(데이터 서버-61 → 데이터 서버-62 → 데이터 서버-63)함으로써, 핫 데이터 청크 블록에 대한 복제본이 3개 유지되도록 한다.
핫 데이터 청크 블록을 감지하고 복제하는 절차는 다른 데이터 서버들(202, 203)에서도 수행된다.
복제가 이루어지는 경우에는, 원본 데이터 블록을 가지고 있는 데이터 서버 또는 복제를 받은 데이터 서버 중 어느 하나, 혹은 두 데이터 서버 모두가 해당 정보를 메타데이터 서버에 전송한다.
복제된 핫 데이터 청크 블록에 대한 액세스 요청이 계속해서 발생하여, 또다시 핫 데이터가 될 수도 있다. 이 경우에 데이터 서버는 또다시 해당 데이터 청크 블록을 분할 분산 복제함으로써 액세스 요청을 분산시킬 수 있으며, 이를 대비해, 복제된 데이터 청크 블록을 다시 여러 개의 블록에 나누어 저장할 수도 있다.
예를 들어, 데이터 서버(205)는 복제받은 데이터 청크 블록(213)을 세 개의 데이터 블록(213a, 213b, 213c)에 나누어 저장하고, 이 새로운 자(子) 데이터 청크 블록 별로 액세스 요청 횟수를 누적해 나갈 수도 있다. 그 결과, 특정 자(子) 데이터 청크 블록(213a)에 대한 액세스 요청의 누적 횟수가 또다시 기준 누적횟수를 초과하면, 이 데이터 청크 블록(213a)을 다른 데이터 서버(208)에 복사한다.
이처럼, 분할된 데이터 청크 블록을 다시 데이터 청크 블록으로 분할하고 분산 복제/저장하는 경우에는, 메타데이터 서버에 이들 모(母) 데이터 청크 블록과 자(子) 데이터 청크 블록을 식별할 수 있는 정보를 함께 전송한다.
물론, 일단 데이터 서버(201)에서 다른 데이터 서버(204)로 핫 데이터 청크 블록에 분할 분산 복제가 이루어진 뒤에도, 해당 데이터 청크 블록에 대한 액세스 요청이 계속해서 일정 기준 이상이면, 데이터 서버(201)는 다른 데이터 서버(205)에 또다시 해당 데이터 청크 블록을 복제할 수도 있다.
핫 데이터 청크 블록에 대한 접근 요청이 정해진 시간 동안, 기준치를 초과하지 않으면, 해당 데이터 청크 블록에 대한 수요가 감소하고 있다는 것을 의미하므로, 여러 데이터 서버(205, 207 등)에 복제되었던 데이터 청크 블록들을 데이터 서버(209 등)에 조합함으로써 점진적으로 핫 데이터 청크 블록들을 줄여나감으로써, 저장공간을 다시 확보할 수도 있다.
<메타데이터 서버 및 데이터 서버 - 데이터에 관한 정보 관리>
도 3은 본 발명에 따른 비대칭 클러스터 분산 파일 시스템의 메타데이터 서 버에서 저장/관리하는 메타데이터를 개략적으로 도시한 것이다.
도 3을 참조하면, 데이터 파일에 대한 메타데이터(301)에는, 파일에 대한 여러 가지 메타데이터 정보뿐만 아니라, 파일 데이터의 데이터 청크들을 식별하기 위한 식별자 정보가 유지된다.
구체적으로, 파일 데이터 청크에 대한 메타데이터(302)에는 복제본 데이터 청크를 식별할 수 있는 식별자, 해당 청크를 저장하고 있는 데이터 서버 주소, 그리고 데이터 청크 블록에 관한 정보를 유지한다.
데이터 청크 블록에 대한 메타데이터(303)에는 해당 데이터 청크 블록이 분할되어 나온 데이터 청크에 대한 식별자와 복제본 데이터 청크 블록의 식별자, 데이터 청크 블록을 저장하고 있는 데이터 서버 주소 그리고 자(子) 데이터 청크 블록들의 식별자를 유지한다.
최하위 데이터 청크 블록에 대한 메타데이터(304)에는 모(母) 데이터 청크 블록의 식별자, 복제본 데이터 청크 블록의 식별자, 데이터 청크 블록을 저장하고 있는 데이터 서버 주소 등을 유지한다.
이러한 메타데이터들은 모자(母子) 관계, 즉 분할 관계로 서로 연결된다.
또한, 데이터 청크 블록은 항상 분할되어서 저장되는 것뿐만 아니라, 조합되어서 저장될 수도 있다. 이 경우, 파일 데이터 청크에 대한 메타데이터(302)에서 각각의 데이터 청크 블록의 식별자는 두 개 이상의 데이터 청크 블록을 합쳐서 데이터를 저장하고 있는 하나의 데이터 청크 블록에 대한 메타데이터(305)를 지시하게 된다.
뿐만 아니라, 자(子) 데이터 청크 블록(304)가 있는 데이터 서버를 찾아가기 위해, 데이터 파일의 메타데이터(301)로부터 데이터 청크에 식별자를 통해 데이터 청크의 메타데이터(302)를 찾아가고, 데이터 청크의 메타데이터(302)에서 다시 데이터 청크 블록에 대한 식별자를 통해 데이터 청크 블록의 메타데이터(303)을 찾은 후, 다시 자(子) 데이터 청크 블록의 메타데이터(304)를 찾아가지 않고, 데이터 파일의 메타데이터(301)에서, 바로 모든 정보를 관리할 수도 있다.
도 4는 본 발명에 따른 비대칭 클러스터 분산 파일 시스템의 데이터 서버에서 파일 데이터 청크와 청크 블록에 대한 정보를 관리하기 위해 저장하는 데이터 구조를 개략적으로 도시한 것이다.
도 4에 도시된 바와 같이, 데이터 서버에 저장된 데이터 청크에 대한 정보(401)에는 데이터 청크 식별자 그리고 데이터 청크 블록의 식별자와 해당 데이터 청크 블록에 대한 액세스 요청 누적 횟수 등이 포함된다. 데이터 청크 블록에 대한 메타데이터(402) 및 자(子) 데이터 청크 블록에 대한 메타데이터(403)에도 청크 블록에 대한 메타데이터와 동일하게 청크 블록에 대한 식별자와 접근 요청 회수 등을 포함한다.
데이터 서버에서는 이를 통해, 핫 데이터 발생 여부를 판단할 수 있고, 메타데이터 서버의 메타데이터에 액세스함으로써 데이터 청크 및 데이터 청크 블록 간의 분할 관계를 검색할 수 있다.
클라이언트의 액세스 요청에 따른 핫 데이터 발생
도 5는 본 발명에 따른 비대칭 클러스터 분산 파일 시스템에서 클라이언트가 데이터에 액세스하고자 할 때 핫 데이터가 발생한 경우의 처리에 관한 플로우차트이다.
클라이언트는 먼저 접근하고자 하는 데이터 청크 또는 데이터 청크 블록에 대한 메타데이터가 이미 캐싱되어 있는지를 판단한다(S501 단계).
캐싱되어 있다면, 이 메타데이터를 통해 데이터 서버에 해당 데이터를 읽기 위한 요청을 한다(S504 단계).
만약 메타데이터가 캐싱되어 있지 않으면 메타데이터 서버로부터 액세스할 데이터 청크 또는 데이터 청크 블록에 대한 메타데이터를 요청한다(S502 단계).
그리고 수신한 메타데이터를 캐시에 반영한다(S503 단계).
클라이언트는 메타데이터를 통해 읽을 데이터 청크를 가진 데이터 서버를 결정하고 데이터 청크가 저장된 데이터 서버에 데이터 청크에 대한 읽기 요청을 한다(S504 단계).
클라이언트는 데이터를 읽기 위한 요청에 한 데이터 서버로부터, 해당 데이터 청크의 데이터를 수신하며, 해당 데이터 청크가 핫 데이터 청크일 경우에는 다른 데이터 서버에 복제된 데이터 청크 블록에 대한 식별자를 수신한다(S505 단계).
데이터 서버로부터 데이터 청크 블록의 식별자를 수신한 경우(S506 단계의 ‘예’), 클라이언트는 수신한 데이터 청크 블록의 식별자를 통해, 메타데이터 서버에 데이터 청크 블록의 메타데이터를 다시 요청한다(S502 단계).
데이터 서버로부터 데이터 청크 블록 식별자를 받지 않은 경우(S506 단계의 ‘아니오’)는, 해당 데이터를 수신한 것이므로, 데이터 읽기 요청에 대한 응답을 종료한다.
데이터 서버에서의 데이터 처리
도 6은 본 발명에 따른 비대칭 클러스터 분산 파일 시스템의 데이터 서버에서 핫 데이터 청크를 검출하고 핫 데이터 청크 블록을 복제하는 처리 과정을 개략적으로 도시한 플로우차트이다.
클라이언트는 액세스할 데이터 청크에 대해 데이터 서버로 읽기 요청을 한다(S601 단계).
이에 대하여, 데이터 서버는 클라이언트로부터 읽기 요청된 부분에 해당하는 데이터 청크 블록에 대한 액세스 요청 누적 횟수를 증가시키다(S602 단계).
데이터 서버는 이 액세스 요청의 누적 횟수가 미리 설정해 둔 기준 누적 횟수를 초과하였는지 판단한다(S603 단계).
해당 데이터 청크 블록에 대한 액세스 요청의 누적 횟수가 기준 누적 횟수를 초과하지 않았으면(S603 단계의 ‘아니오’), 데이터 서버는 해당 데이터 청크 블록에 대한 액세스 요청 누적 횟수를 감소시키고(S606 단계), 요청받은 데이터를 클라이언트에게 반환한다(S607 단계).
해당 데이터 청크 블록에 대한 액세스 요청의 누적 횟수가 기준 누적 횟수를 초과하였으면(S603 단계의 ‘예’), 해당 데이터 청크 블록은 핫 데이터에 해당하므로, 데이터 청크 블록을 복제할 다른 데이터 서버의 데이터 블록에 대한 할당을 메타데이터 서버에 요청한다(S606 단계).
데이터 블록을 할당받으면, 데이터 서버는 할당받은 데이터 블록에 액세스 요청의 누적 횟수가 기준 누적 횟수를 초과한 데이터 청크 블록을 복제한다(S607 단계).
데이터 청크 블록에 대한 복제가 완료되면, 복제를 행한 데이터 서버 또는 복제를 받은 데이터 서버 중 어느 하나 혹은 둘 모두가 이에 대한 정보를 메타데이터 서버로 전송한다(S608 단계). 이때, 복제를 받은 데이터 서버는 미리 설정된 수만큼 다른 데이터 서버에 복제를 행해서, 비대칭 클러스터 분산 파일 시스템 내에 복제본이 정해진 수만큼 유지될 수 있도록 한다.
데이터 서버는 클러이언트에게 복제된 청크 블록을 식별할 수 있는 식별자를 생성하고 반환함으로써, 액세스 요청을 분산시킨다(S609 단계).
이에 대하여, 데이터 서버는 읽기 요청의 대상 데이터 청크 블록에 대하여 식별자가 이미 생성되어 있는지를 먼저 확인할 수도 있다(S602 단계). 즉, 데이터 청크 블록에 대한 식별자가 이미 존재한다면, 해당 데이터는 핫 데이터 청크로 판단되었고, 다른 데이터 서버에 해당 데이터 청크에 관한 데이터 청크 블록이 복제되어 분산되어 있음을 의미한다. 또한, 이 데이터 서버에 대한 액세스 요청 부하가 크게 증가한 상태임을 의미하므로, 부하를 분산시키기 위해, 이때는 클라이언트에게 복제된 데이터 청크 블록에 대한 식별자를 전달한다.
지금까지 도면을 참조로 본 발명의 구체적인 구현 방법을 설명하였지만, 이는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 쉽게 이해할 수 있도 록 하기 위한 것이고 발명의 기술적 범위를 제한하기 위한 것이 아니다. 도면을 참조로 한 이상과 같은 설명은 본 발명의 기술적 사상의 범위 내에서 충분히 변형되거나 수정될 수 있다.
도 1은 본 발명에 따른 비대칭 클러스터 분산 파일 시스템의 구성을 개략적으로 도시한 것이다.
도 2는 본 발명에 따른 비대칭 클러스터 분산 파일 시스템의 데이터 서버에서 핫 데이터를 핫 데이터 블록들로 분할하고 분산하는 것을 개략적으로 도시한 것이다.
도 3은 본 발명에 따른 비대칭 클러스터 분산 파일 시스템의 메타데이터 서버에서 저장/관리하는 메타데이터를 개략적으로 도시한 것이다.
도 4는 본 발명에 따른 비대칭 클러스터 분산 파일 시스템의 데이터 서버에서 파일 데이터 청크와 청크 블록에 대한 정보를 관리하기 위해 저장하는 데이터 구조를 개략적으로 도시한 것이다.
도 5는 본 발명에 따른 비대칭 클러스터 분산 파일 시스템에서 클라이언트가 데이터에 액세스하고자 할 때 핫 데이터가 발생한 경우의 처리에 관한 플로우차트이다.
도 6은 본 발명에 따른 비대칭 클러스터 분산 파일 시스템의 데이터 서버에서 핫 데이터 청크를 검출하고 핫 데이터 청크 블록을 복제하는 처리 과정을 개략적으로 도시한 플로우차트이다.
Claims (12)
- 데이터 파일에 대한 메타데이터;상기 데이터 파일에서 분할된 각 데이터 청크에 대한 메타데이터; 및상기 데이터 청크에서 분할된 데이터 청크블록에 대한 메타데이터를 저장하는 데이터 저장부를 포함하는,비대칭 클러스터 분산 파일 시스템의 메타데이터 서버.
- 제1항에 있어서,상기 데이터 파일에 대한 메타데이터는,상기 데이터 청크를 식별하는 청크 식별자를 포함하며,상기 데이터 청크에 대한 메타데이터는,상기 데이터 파일을 식별하는 파일 식별자; 및상기 데이터 청크블록을 식별하는 데이터 청크블록 식별자를 포함하고,상기 데이터 청크블록에 대한 메타데이터는,상기 데이터 청크를 식별하는 데이터 청크 식별자를 포함하는,비대칭 클러스터 분산 파일 시스템의 메타데이터 서버.
- 제2항에 있어서,상기 데이터 저장부는,상기 데이터 청크블록에서 분할된 자(子) 데이터 청크블록에 대한 메타데이터를 추가로 저장하며,상기 데이터 청크블록에 대한 메타데이터는,상기 자(子) 데이터 청크블록을 식별하는 자(子) 데이터 청크블록 식별자를 더 포함하고,상기 자(子) 데이터 청크블록에 대한 메타데이터는,상기 데이터 청크블록을 식별하는 모(母) 데이터 청크블록 식별자를 포함하는,비대칭 클러스터 분산 파일 시스템의 메타데이터 서버.
- 클라이언트의 데이터 액세스 요청을 수신하는 단계;상기 액세스 요청의 대상이 되는 데이터 청크 블록에 대하여, 액세스 요청의 누적 횟수를 검색하는 단계;상기 액세스 요청의 누적 횟수가 최대 기준값 이하인 경우에는, 액세스 요청의 대상 데이터를 반환하는 단계;상기 액세스 요청의 누적 횟수가 최대 기준값 이상인 경우에는, 다른 데이터 서버에 상기 데이터 청크 블록을 복제하는 단계; 및상기 복제된 데이터 청크 블록에 대한 식별자를 생성하고, 클라이언트에게 반환하는 단계를 포함하는,비대칭 클러스터 분산 파일 시스템에 있어서 데이터 서버의 데이터 처리 방법.
- 제4항에 있어서,상기 데이터 청크 블록의 복제 단계를 실행한 후,상기 데이터 청크 블록에 대한 정보를 메타데이터 서버에 전송하는 단계를 더 포함하는,비대칭 클러스터 분산 파일 시스템에 있어서 데이터 서버의 데이터 처리 방법.
- 제4항에 있어서,상기 복제한 데이터 청크 블록을 여러 개의 자(子) 데이터 청크 블록으로 분할하여 저장하는 단계를 더 포함하는,비대칭 클러스터 분산 파일 시스템에 있어서 데이터 서버의 데이터 처리 방법.
- 제4항에 있어서,상기 액세스 요청의 누적 횟수 검색 단계 전에,상기 데이터 액세스 요청의 대상이 된 데이터 청크 블록에 대하여, 다른 데이터 서버에 복제된 데이터 청크 블록의 식별자가 있는지 검색하는 단계를 더 포함하며,다른 데이터 서버에 복제된 데이터 청크 블록의 식별자가 있는 경우에는, 상기 데이터 청크 블록의 식별자를 클라이언트에게 반환하고,다른 데이터 서버에 복제된 데이터 청크 블록의 식별자가 있는 경우에는, 상기 액세스 요청의 누적 횟수 검색 단계를 실행하는,비대칭 클러스터 분산 파일 시스템에 있어서 데이터 서버의 데이터 처리 방법.
- 제4항에 있어서,상기 데이터 서버는,상기 데이터 액세스 요청의 누적 횟수가 기준 누적횟수 이하인 경우에는, 상기 데이터 액세스 요청의 누적 횟수를 감소시키고,상기 상기 데이터 액세스 요청의 누적 횟수가 기준 시간 동안 기준 누적횟수 이하인 경우에는, 상기 분할된 데이터 청크 블록을 데이터 청크로 조합하는,비대칭 클러스터 분산 파일 시스템에 있어서 데이터 서버의 데이터 처리 방법.
- 데이터 파일의 데이터 청크를 여러 개의 데이터 청크 블록으로 나누어 저장하는 데이터 서버;상기 데이터 파일의 메타데이터, 상기 데이터 청크의 메타데이터 및 상기 데이터 청크 블록의 메타데이터를 저장하는 메타데이터 서버; 및클라이언트를포함하는 비대칭 클러스터 분산 파일 시스템.
- 제9항에 있어서,상기 데이터 서버는,상기 클라이언트의 데이터 액세스 요청에 대응하여, 상기 액세스 요청의 대상이 되는 데이터 청크 블록에 대한 액세스 요청 누적 횟수가 기준 누적횟수 이하인 경우에는, 액세스 요청의 대상 데이터를 반환하며,상기 액세스 요청의 누적 횟수가 기준 누적횟수 이상인 경우에는, 다른 데이터 서버에 상기 데이터 청크 블록을 복제하고, 상기 복제된 데이터 청크 블록에 대한 식별자를 클라이언트에게 반환하며,상기 메타데이터 서버는,상기 데이터 서버로부터, 또는 상기 데이터 서버에게서 데이터 청크 블록을 복제받은 데이터 서버로부터, 데이터 청크 블록의 복제 정보를 수신하고,상기 복제된 데이터 청크 블록에 관한 메타데이터 정보 및 상기 데이터 청크 및 데이터 청크 블록 사이의 식별자를 생성하는,비대칭 클러스터 분산 파일 시스템.
- 제10항에 있어서,상기 데이터 서버는,상기 액세스 요청의 누적 횟수가 기준 누적횟수 이하인 경우에는, 상기 액세스 요청의 누적 횟수를 감소시키고,상기 액세스 요청의 누적 횟수가 기준 시간 동안 기준 누적횟수 이하인 경우에는, 상기 상기 분할된 데이터 청크 블록을 데이터 청크로 조합하는,비대칭 클러스터 분산 파일 시스템.
- 제10항에 있어서,상기 데이터 서버에게서 데이터 청크 블록을 복제받은 데이터 서버는,상기 복제받은 데이터 청크 블록을,여러 개의 데이터 청크 블록에 분할하여 저장하며, 설정된 수만큼 다른 데이터 서버로 복제하고,상기 데이터 청크 블록의 복제 정보를 메타데이터 서버에 전송하는,비대칭 클러스터 분산 파일 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080131747A KR20100073154A (ko) | 2008-12-22 | 2008-12-22 | 메타데이터 서버, 데이터 서버의 데이터 처리 방법 및 이를이용한 비대칭 클러스터 분산 파일 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080131747A KR20100073154A (ko) | 2008-12-22 | 2008-12-22 | 메타데이터 서버, 데이터 서버의 데이터 처리 방법 및 이를이용한 비대칭 클러스터 분산 파일 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20100073154A true KR20100073154A (ko) | 2010-07-01 |
Family
ID=42636161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080131747A KR20100073154A (ko) | 2008-12-22 | 2008-12-22 | 메타데이터 서버, 데이터 서버의 데이터 처리 방법 및 이를이용한 비대칭 클러스터 분산 파일 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20100073154A (ko) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8495013B2 (en) | 2010-12-24 | 2013-07-23 | Kt Corporation | Distributed storage system and method for storing objects based on locations |
US8775870B2 (en) | 2010-12-22 | 2014-07-08 | Kt Corporation | Method and apparatus for recovering errors in a storage system |
US8849756B2 (en) | 2011-04-13 | 2014-09-30 | Kt Corporation | Selecting data nodes in distributed storage system |
US9052962B2 (en) | 2011-03-31 | 2015-06-09 | Kt Corporation | Distributed storage of data in a cloud storage system |
US9158460B2 (en) | 2011-04-25 | 2015-10-13 | Kt Corporation | Selecting data nodes using multiple storage policies in cloud storage system |
US9514008B2 (en) | 2010-09-29 | 2016-12-06 | Naver Corporation | System and method for distributed processing of file volume |
US9736872B2 (en) | 2013-04-28 | 2017-08-15 | Huawei Device Co., Ltd. | Data transmission method, apparatus, and system |
KR20170121358A (ko) | 2016-04-22 | 2017-11-02 | 주식회사 엘지생활건강 | 다크서클 예방 또는 개선용 화장료 조성물 |
US9888062B2 (en) | 2010-12-24 | 2018-02-06 | Kt Corporation | Distributed storage system including a plurality of proxy servers and method for managing objects |
-
2008
- 2008-12-22 KR KR1020080131747A patent/KR20100073154A/ko not_active Application Discontinuation
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9514008B2 (en) | 2010-09-29 | 2016-12-06 | Naver Corporation | System and method for distributed processing of file volume |
US8775870B2 (en) | 2010-12-22 | 2014-07-08 | Kt Corporation | Method and apparatus for recovering errors in a storage system |
US8495013B2 (en) | 2010-12-24 | 2013-07-23 | Kt Corporation | Distributed storage system and method for storing objects based on locations |
US9888062B2 (en) | 2010-12-24 | 2018-02-06 | Kt Corporation | Distributed storage system including a plurality of proxy servers and method for managing objects |
US9052962B2 (en) | 2011-03-31 | 2015-06-09 | Kt Corporation | Distributed storage of data in a cloud storage system |
US8849756B2 (en) | 2011-04-13 | 2014-09-30 | Kt Corporation | Selecting data nodes in distributed storage system |
US9158460B2 (en) | 2011-04-25 | 2015-10-13 | Kt Corporation | Selecting data nodes using multiple storage policies in cloud storage system |
US9736872B2 (en) | 2013-04-28 | 2017-08-15 | Huawei Device Co., Ltd. | Data transmission method, apparatus, and system |
KR20170121358A (ko) | 2016-04-22 | 2017-11-02 | 주식회사 엘지생활건강 | 다크서클 예방 또는 개선용 화장료 조성물 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20100073154A (ko) | 메타데이터 서버, 데이터 서버의 데이터 처리 방법 및 이를이용한 비대칭 클러스터 분산 파일 시스템 | |
JP6479020B2 (ja) | 分散ストレージシステムにおけるオブジェクトの階層チャンキング | |
KR101544480B1 (ko) | 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체 | |
KR101453425B1 (ko) | 메타데이터 서버 및 메타데이터 관리 방법 | |
KR101585146B1 (ko) | 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체 | |
US7076553B2 (en) | Method and apparatus for real-time parallel delivery of segments of a large payload file | |
CN101697168B (zh) | 一种分布式文件***动态元数据管理方法及*** | |
US7546486B2 (en) | Scalable distributed object management in a distributed fixed content storage system | |
EP2062123B1 (en) | Automatic load spreading in a clustered network storage system | |
CN102483768B (zh) | 基于策略的储存结构分布 | |
US20110153570A1 (en) | Data replication and recovery method in asymmetric clustered distributed file system | |
US20070179981A1 (en) | Efficient data management in a cluster file system | |
US20060167838A1 (en) | File-based hybrid file storage scheme supporting multiple file switches | |
CN102349047B (zh) | 数据******、数据控制装置、存储装置、数据***方法、数据控制方法和数据存储方法 | |
WO2012127526A1 (en) | File server system and storage control method | |
KR100936238B1 (ko) | 파일 입출력과 복제의 균형적 수행을 위한 지연복제 시스템및 방법 | |
JP2014044677A (ja) | 送信制御プログラム、通信ノード、および送信制御方法 | |
US6973536B1 (en) | Self-adaptive hybrid cache | |
CN108540510B (zh) | 一种云主机创建方法、装置及云服务*** | |
CN112948178A (zh) | 一种数据处理方法、装置、***、设备及介质 | |
JP2000322292A (ja) | クラスタ型データサーバシステム及びデータ格納方法 | |
CN105760391A (zh) | 数据动态重分布的方法、数据节点、名字节点及*** | |
CN104951475A (zh) | 分布式文件***和实现方法 | |
US11194501B2 (en) | Standby copies withstand cascading fails | |
US11216204B2 (en) | Degraded redundant metadata, DRuM, technique |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E601 | Decision to refuse application |