KR102610846B1 - 고속 분산 저장 장치 및 방법 - Google Patents

고속 분산 저장 장치 및 방법 Download PDF

Info

Publication number
KR102610846B1
KR102610846B1 KR1020160058667A KR20160058667A KR102610846B1 KR 102610846 B1 KR102610846 B1 KR 102610846B1 KR 1020160058667 A KR1020160058667 A KR 1020160058667A KR 20160058667 A KR20160058667 A KR 20160058667A KR 102610846 B1 KR102610846 B1 KR 102610846B1
Authority
KR
South Korea
Prior art keywords
file
data
chunk
speed
input buffer
Prior art date
Application number
KR1020160058667A
Other languages
English (en)
Other versions
KR20170127881A (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 KR1020160058667A priority Critical patent/KR102610846B1/ko
Priority to US15/203,679 priority patent/US20170329797A1/en
Publication of KR20170127881A publication Critical patent/KR20170127881A/ko
Application granted granted Critical
Publication of KR102610846B1 publication Critical patent/KR102610846B1/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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • 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
    • 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/13File access structures, e.g. distributed indices
    • 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/1727Details of free space management performed by the file system
    • 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/1858Parallel file systems, i.e. file systems supporting multiple processors
    • 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/0629Configuration or reconfiguration of storage systems
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Landscapes

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

Abstract

분산 파일 시스템에 기반한 고속 분산 저장 시, 입력 버퍼가 파일 데이터를 청크 단위로 입력 받아 저장하고, 서로 상이한 데이터 서버와 연결된 둘 이상의 파일 저장 요청부가 입력 버퍼에 저장된 파일 데이터 청크를 각각 출력하여 데이터 서버로 병렬 전송하고, 입력 버퍼의 데이터 입력 속도 및 데이터 서버로의 출력 속도에 기초하여 새로운 파일 저장 요청부를 추가 생성하여 새로운 데이터 서버와 연결하고, 새로운 파일 저장 요청부를 포함하는 파일 저장 요청부들에 대한 파일 데이터 청크 출력 순서를 재설정하고, 파일 저장 요청부들이 재설정 결과를 적용하여 입력 버퍼에 저장된 파일 데이터 청크를 각각 출력하여 데이터 서버로 병렬 전송한다.

Description

고속 분산 저장 장치 및 방법{APPARATUS AND METHOD FOR DISTRIBUTED STORAGE HAVING A HIGH PERFORMANCE}
본 발명은 분산 파일 시스템에 관한 것이되, 대용량 데이터를 고속으로 분산 저장 처리하는 장치 및 그 방법에 관한 것이다.
일반적으로, 분산 파일 시스템은 파일의 메타데이터와 실제 데이터를 분리하여 저장하고 관리하는 시스템이다. 메타데이터는 실제 데이터를 설명하는 속성 정보로서, 실제 데이터가 저장되어 있는 데이터 서버에 대한 정보를 포함한다. 이러한, 분산 파일 시스템은 기본적으로 메타데이터 서버와 복수의 데이터 서버가 네트워크를 통해 연결되어 있는 분산 구조이다. 따라서, 클라이언트는 메타데이터 서버에 있는 파일의 메타데이터에 접근하여 실제 데이터가 저장되어 있는 데이터 서버에 대한 정보를 획득하고, 획득한 정보에 해당하는 복수의 데이터 서버에 연결하여 실제 데이터 입출력을 수행한다.
파일의 실제 데이터는, 네트워크로 연결된 데이터 서버들에 정해진 크기의 청크(chunk) 단위로 나누어 분산 저장된다. 기존의 분산 파일 시스템은 처리할 파일이 기설정된 청크 크기보다 큰 파일인 경우, 파일 데이터를 몇 개의 데이터 서버에 분산 저장할지 미리 결정하고 데이터를 병렬 저장함으로써 성능을 향상시키고 있다. 이러한 분산 저장 방식을 파일 스트라이핑(file-striping)이라고 하며, 파일 스트라이핑은 파일 혹은 디렉토리 단위로 설정할 수 있다.
이와 관련하여, 한국등록특허공보 제10-0834162 호(발명의 명칭: 스트라이핑을 사용한 데이터 저장 방법 및 장치)는, NFS 서버들의 클러스터, 및 상기 서버들과 통신 중에 있는 복수의 저장소 어레이들을 포함하는 데이터 저장 장치를 개시하고 있으며, 이때 각 서버들은 데이터 저장을 위한 스트라이프 파일 시스템(striped file system)을 이용하되, 유입 파일 시스템 요구들과 서버들 간의 클러스터 트래픽을 위한 네트워크 포트들을 갖는다.
한편, 분산 파일 시스템의 데이터 저장 성능이 응용(application)에서 요구하는 데이터 저장(또는 입력) 성능을 충족시키지 못할 경우, 파일 데이터가 손실되거나 데이터 저장 실패에 따른 응용 실행 실패가 발생될 수 있는 문제가 있다. 특히, 대용량 데이터(예를 들어, 우주 전파 관측 데이터, 강입자충돌기 데이터, 대규모 우주론 시뮬레이션 데이터 등의 과학 데이터)를 안정적으로 처리하기 위해서는 고속의 데이터 저장 성능이 필수적이다.
그러나 종래의 분산 파일 시스템은 대용량 데이터 처리 시 원본 파일을 그대로 저장하지 못하고 샘플링을 수행하여 분산 저장 처리하는 등의 한계가 있었다. 일례로, 종래의 대표적인 분산 병렬 파일 시스템인 루스터(Lustre)의 경우 단일 파일 데이터 입출력 성능이 6Gbps 정도인데 비해, 강입자충돌기의 요구 성능은 32 Gbps 정도이다. 즉, 대용량 데이터를 효율적으로 분산 저장 처리하기 위해서는, 기존의 분산 파일 시스템의 분산 저장 성능보다 훨씬 빠른 저장 성능이 요구된다.
본 발명의 일 실시예는, 다수의 데이터 서버를 대상으로 파일 데이터의 저장 병렬성을 증가시켜 대용량 데이터를 고속으로 분산 저장할 수 있는 고속 분산 저장 장치 및 그 방법을 제공하고자 한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일측면에 따른 분산 파일 시스템에 기반한 고속 분산 저장 장치는, 파일 데이터가 청크 단위로 입력되는 입력 버퍼; 기 입력 버퍼에 저장된 파일 데이터 청크를 각각 출력하여 서로 상이한 데이터 서버로 병렬 전송하여 저장하는 둘 이상의 파일 저장 요청부; 및 기 입력 버퍼의 데이터 입력 속도 및 상기 데이터 서버로의 데이터 출력 속도에 기초하여 새로운 파일 저장 요청부를 추가 생성하고, 기설정된 상기 입력 버퍼의 잔여 저장 공간량에 기초하여 상기 입력 버퍼에 저장된 파일 데이터의 적어도 하나의 청크를 삭제 처리하는 고속 분산 저장 제어부를 포함한다.
그리고 본 발명의 다른 측면에 따른 분산 파일 시스템에 기반한 고속 분산 저장 장치를 통한 고속 분산 저장 방법은, 입력 버퍼가 파일 데이터를 청크 단위로 입력 받아 저장하는 단계; 서로 상이한 데이터 서버와 연결된 둘 이상의 파일 저장 요청부가, 상기 입력 버퍼에 저장된 파일 데이터 청크를 각각 출력하여 상기 연결된 데이터 서버로 병렬 전송하는 단계; 고속 분산 저장 제어부가 상기 입력 버퍼의 데이터 입력 속도 및 상기 데이터 서버로의 출력 속도에 기초하여 새로운 파일 저장 요청부를 추가 생성하여 새로운 데이터 서버와 연결하는 단계; 기 고속 분산 저장 제어부가 상기 새로운 파일 저장 요청부를 포함하는 파일 저장 요청부들에 대한 파일 데이터 청크 출력 순서를 재설정하는 단계; 및 상기 파일 저장 요청부들이 상기 재설정의 결과를 적용하여 상기 입력 버퍼에 저장된 파일 데이터 청크를 각각 출력하여 상기 연결된 데이터 서버로 병렬 전송하는 단계를 포함한다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 파일 데이터의 빠른 입력 속도 따라 저장할 데이터 서버의 수를 증가시킴으로써, 파일 데이터 저장 병렬성을 향상시켜 응용의 실행 중단 없이 파일 데이터 저장 성능을 크게 증가시킬 수 있다.
또한, 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 과학 응용으로부터 생성되는 파일 데이터(즉, 과학 데이터)가 기설정된 파일 스트라이프 수에 따른 데이터 저장 성능을 초과하는 경우 스프라이프 수를 증가시켜, 청크 저장의 병렬화 증강을 통해 저장 성능을 향상 시킬 수 있다. 뿐만아니라, 파일 데이터의 생성이 폭증할 경우, 파일 데이터를 청크 단위로 삭제하고 삭제된 데이터는 사용자로부터 입력 받은 데이터로 대체 저장함으로써 과학 응용이 장시간 실행 중간에도 중단되지 않도록 할 수 있다.
도 1 은 본 발명의 일 실시예에 따른 분산 파일 시스템의 구조도이다.
도 2는 본 발명의 일 실시예에 따른 분산 파일 방식에 의한 파일 스트라이핑의 일례를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 분산 파일 방식에 의한 파일 스트라이핑의 또 다른 예를 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 파일 스트라이핑 변경 시 메타데이터의 구성 요소를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 파일 데이터 분산 저장 시 파일 스트라이핑 변경 동작을 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시예에 따른 파일 데이터 분산 저장 시 파일 데이터 청크 삭제 처리를 설명하기 위한 순서도이다.
도 7은 본 발명의 일 실시예에 따른 파일 데이터 청크를 데이터 서버에 저장하는 과정을 설명하기 위한 순서도이다.
[01] 아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다.
[02] 명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
[03] 이하에서는, 도면을 참조하여 본 발명의 일 실시예에 따른 고속 분산 저장 장치 및 그 방법에 대하여 상세히 설명하도록 한다.
[04] 도 1 은 본 발명의 일 실시예에 따른 분산 파일 시스템의 구조도이다.
[05] 도 1에 도시한 바와 같이, 분산 파일 시스템(10)은 클라이언트 단말(100), 메타데이터 서버(200) 및 데이터 서버(300)를 포함한다. 참고로, 복수의 클라이언트 단말(100) 및 복수의 데이터 서버(300)는 네트워크를 통해 메타데이터 서버(200)에 연결될 수 있다.
[06] 클라이언트 단말(100)은 클라이언트 응용(client application)을 수행한다. 이러한 클라이언트 응용이 수행됨에 따라 데이터의 생성(또는 발생) 및 분산 저장이 처리된다.
[07] 이때, 클라이언트 단말(100)은 메타데이터 서버(200)에 저장된 파일 메타데이터에 접근하고, 획득한 파일 메타데이터에 기초하여 해당하는 데이터 서버(300)에 접속하여 파일 데이터를 입력 및 출력한다.
[08] 메타데이터 서버(200)는 분산 파일 시스템(10)의 모든 파일에 대한 메타데이터와 모든 데이터 서버(300)에 대한 상태 정보를 관리한다. 여기서, 메타 데이터는 파일 데이터를 설명하는 데이터로서, 파일 데이터가 저장되어 있는 데이터 서버(300)에 대한 정보를 포함한다.
[09] 데이터 서버(300)는 정해진 크기인 청크 단위로 데이터를 저장하고 관리한다.
[10] 도 2는 본 발명의 일 실시예에 따른 분산 파일 방식에 의한 파일 스트라이핑의 일례를 설명하기 위한 도면이다. 그리고 도 3은 본 발명의 일 실시예에 따른 분산 파일 방식에 의한 파일 스트라이핑의 또 다른 예를 설명하기 위한 도면이다.
[11] 도 2 및 도 3에서는, 클라이언트 단말(100)의 파일 데이터를 복수의 데이터 서버(300)에 분산하여 병렬 저장하는 동작을 나타내었다. 이때, 파일 데이터를 분산하여 저장할 데이터 서버(300)의 개수를 파일 스트라이프(stripe) 수라고 한다. 이러한, 파일 스트라이프 수는 클라이언트 단말(100)에서의 파일 생성 시 결정되며, 최초의 값은 사전에 설정된 임의의 설정 값으로 설정되거나, 또는 사용자에 의해 선택적으로 설정될 수 있다.
[12] 구체적으로, 클라이언트 단말(100)은 파일 오픈(file open) 시, 사전에 설정된 파일 스트라이프 수에 대응하는 수의 파일 저장 요청자(110)를 생성한다. 참고로, 파일 저장 요청자(110)는 일종의 처리 프로그램일 수 있으며, 기설정된 알고리즘 또는 절차의 동작을 처리하는 처리부(즉, 파일 저장 요청부)로서 클라이언트 단말(100)의 파일 데이터를 데이터 서버(300)로 전달하여 저장한다. 이때, 클라이언트 단말(100) 상에서 생성된 둘 이상의 파일 저장 요청자(110)는 각각 상이한 데이터 서버(300)와 네트워크 통신을 하여, 파일 데이터의 적어도 일부 데이터를 각 데이터 서버(300)로 전송 및 저장한다. 이에 따라, 클라이언트 단말(100)의 파일 데이터가 복수의 데이터 서버(300)에 분산 저장된다.
[13] 한편, 다수의 파일 저장 요청자(110)들은 정렬화되어 각자의 순서 번호를 가지며, 파일 데이터를 청크 단위로 처리한다. 이때, 각 파일 저장 요청자(110)는 자신에게 할당된 순서 번호와 파일 스트라이프 수, 및 저장 처리 횟수에 기초하여, 처리해야 할 파일 데이터의 청크 번호를 산출한다. 이때, 파일 저장 요청자(1110)가 처리할 청크 번호를 계산하는 방식은 아래 수학식 1과 같이 나타낼 수 있다.
[14] <수학식 1>
[15] 다음 처리할 파일 데이터 청크 번호 = 첫 번째 청크 번호(즉, 순서 번호) + 파일 스트라이프 수 * 저장 처리 횟수
[16] 좀 더 구체적으로 설명하자면, 클라이언트 단말(100)의 입력 버퍼(120)에 파일 데이터가 기설정된 크기 단위(즉, 청크)로 순차적으로 입력된다. 그리고 입력 버퍼(120) 내에 기설정된 크기의 이상의 데이터가 입력되면, 저장 요청자(110)는 입력 버퍼(120)로부터 파일 데이터 청크를 꺼내 데이터 서버(300)에 전송하여 저장한다. 이때, 입력 버퍼(120)는 파일 데이터가 삽입되는 순서(즉, 청크 번호 순서)에 따라 파일 데이터를 차례로 출력한다. 즉, 도 2에서와 같이, 입력 버퍼(120)로부터 파일 데이터 청크가 'F1, F2, F3, …' 번호 순으로 출력된다. 참고로, 입력 버퍼(120)는 순환큐(Circular Queue) 또는 FIFO(First In First Out) 큐 등의 방식을 사용할 수 있다.
[17] 도 2에서는, 파일 스트라이프 수가 '2'로 설정된 경우로서, 클라이언트 단말(100) 상에 두 개의 파일 저장 요청자(110-1, 110-2)가 생성된 것을 나타내었다. 즉, 파일 저장 요청자(110-1, 110-2) 각각은, 서로 다른 데이터 서버(300-1, 300-2)를 대상으로 파일 데이터 청크를 전송하여 저장한다. 이때, 파일 저장 요청자(110-1, 110-2)는 파일 데이터를 저장할 두 데이터 서버(300-1, 300-2)의 정보를 메타데이터 서버(200)에 질의하여 획득한다. 파일 저장 요청자 1(110-1)은 자신의 순서 번호가 '1'이므로, 상기 수학식 1에 기초하여 입력 버퍼(120)에 저장된 파일 데이터 청크 중 'F1, F3, F5, F7, …'의 파일 데이터 청크를 데이터 서버 1(300-1)에 전송하여 저장한다. 마찬가지로, 파일 저장 요청자2(110-2)는 'F2, F4, F6, F8, ……'의 파일 데이터 청크를 데이터 서버 2(300-2)에 전송하여 저장한다. 이처럼, 파일 저장 요청자 1(110-1)과 파일 저장 요청자 2(110-2)를 통해 두 데이터 서버(즉, 데이터 서버 1과 데이터 서버 2)(300-1, 300-2)를 대상으로 파일 데이터 청크의 저장이 병렬로 수행된다. 예를 들어, 첫 번째 전송 회차에서, 파일 저장 요청자 1(110-1) 및 파일 저장 요청자 2(110-2)는 각각 F1 및 F2를 데이터 서버 1(300-1) 및 데이터 서버 2(300-2)로 병렬로 전송하여 저장한다.
[18] 한편, 본 발명의 일 실시예에 따른 분산 파일 시스템(10)은, 클라이언트 단말(100)의 응용의 파일 데이터 저장 요청 속도와 데이터 서버(300)를 통한 실제 데이터 저장 속도를 바탕으로 파일 병렬 분산 처리를 수행한다.
[19] 구체적으로, 도 2에서 설명한 바와 같이, 클라이언트 단말(100)에서 응용의 실행 에 의해 입력 버퍼(120)에 파일 데이터가 입력되고, 데이터 서버(300)의 저장 성능에 따라 입력 버퍼(120)로부터 파일 데이터가 출력될 때, 각각의 처리되는 데이터의 양과 처리 시간에 기초하여 데이터 입력 속도 및 출력 속도가 계산된다. 이때, 데이터 입력 속도가 데이터 출력 속도보다 큰 경우, 클라이언트 단말(100)은 파일 저장 요청자를 추가적으로 더 생성하고, 기설정된 파일 스트라이프 수를 '1'씩 증가시켜 새로운 파일 저장 요청자의 순서 번호로서 할당한다.
[20] 예를 들어, 데이터 입력 속도가 데이터 출력 속도보다 큰 경우, 도 3에서와 같이, 클라이언트 단말(100)은 하나의 파일 저장 요청자를 추가 생성하고 기존의 파일 스트라이프 수인 '2'에 '1'를 더한 '3'을 새로운 파일 저장 요청자의 순서 번호로 할당한다. 그리고 클라이언트 단말(100)은 메타데이터 서버(200)에 해당 파일에 대한 메타데이터에 포함된 파일 스트라이프 수의 정보를 '1' 증가시키고, 메타데이터 서버(200)로부터 새로운 데이터 서버를 할당 받는다. 이에 따라, 클라이언트 단말(100) 상에 새로 생성된 파일 저장 요청자 3(110-3)은 새로 할당 받은 데이터 서버 3(300-3)과 연결이 설정된다.
[21] 구체적으로, 이전의 파일 스트라이프 수(즉, '2')를 순서 번호로 갖는 파일 저장 요청자 2(110-2)가 입력 버퍼(120)로부터 파일 데이터 청크(F2)를 꺼내 데이터 서버 2(300-2)에 저장하고 난 이후, 파일 저장 요청자1, 2, 3(110-1, 110-2, 110-3)은 파일 데이터 청크 F3부터 나머지 파일 데이터 청크들을 순차적으로 데이터 서버1,2,3(300-1, 300-2, 300-3)에 분산하여 병렬 저장한다. 이때, 파일 스트라이프 수가 '3'으로 설정됨에 따라, 파일 저장 요청자1(110-1)은 파일 데이터 청크 F3, F6를 데이터 서버 1(300-1)에 저장하고, 파일 저장 요청자 2(110-2)는 파일 데이터 청크 F4, F7을 데이터 서버 2(300-2)에 저장하고, 파일 저장 요청자 3(110-3)은 파일 데이터 청크 F5, F8을 데이터 서버 3(300-3)에 저장한다.
[22] 앞서, 도 2에서와 같이, 첫 번째 저장 처리 회차에서 파일 저장 요청자 1 및 2(110-1, 110-2)가 F1 및 F2를 병렬 전송하여 저장한 이후로, 도 3에서와 같이 파일 스트라이프 수 변경에 따른 첫 번째 저장 처리 회차가 실행되는 것을 가정한다. 이러한 경우, 파일 스트라이프 수 변경에 따른 첫 번째 저장 처리 회차에서, 파일 데이터 청크 F3, F4, F5는 각각 3개의 데이터 서버(300-1, 300-2, 300-3)를 대상으로 병렬화 저장 처리된다. 이에 따라, 파일 스트라이프 수가 '2'였을 경우에 비해 분산 파일 시스템(10)의 파일 저장 성능이 향상되며, 이는 파일 데이터의 저장을 요청한 응용의 실행 성능의 향상으로 연결된다.
[23] 이처럼, 파일 분산 시스템(10)에서의 데이터 입력 속도 및 출력 속도 차에 기초하여 파일 데이터 저장 병렬화 개수를 증가시킴으로써, 입력 버퍼(120)의 데이터 출력 속도를 증가시켜 입력 버퍼(120)의 오버플로우에 따른 파일 데이터 손실을 막을 수 있다. 한편, 입력 버퍼(120)의 파일 데이터의 입력 속도와 출력 속도의 차이가 매우 큰 경우, 저장 병렬화 개수를 증가시켰음에도 입력 버퍼(120)의 용량이 모두 차서 응용으로부터 파일 데이터의 저장 요청을 받을 수 없는 경우가 발생할 수 있다. 이러한 경우, 클라이언트 응용의 실행이 중단될 수 있다. 그런데 과학 데이터 등의 대용량 데이터(또는 빅데이터)의 발생은 몇 시간에 걸쳐 대용량의 데이터가 발생하는 것으로, 방대한 양의 전체 데이터 내 일부 데이터의 손실이 전체 데이터 분석 결과에 크게 영향을 미치지 않는다. 따라서, 본 발명의 일 실시예에 따른 파일 분산 시스템(10)은, 과학 데이터 등의 대용량 데이터의 분산 저장 시, 일부 데이터의 손실을 허용하여 데이터를 발생시키는 응용의 중단을 방지한다.
[24] 구체적으로, 클라이언트 단말(100)은 입력 버퍼(120)가 특정 임계치 이상 가득 차게 되면, 입력 버퍼(120)에서 다음 출력되어야 하는 파일 데이터 청크를 삭제한다. 예를 들어, 입력 버퍼(120) 내 데이터 저장 공간이 50%가 빈 공간으로 유지될 수 있도록 파일 데이터 청크를 지속적으로 삭제할 수 있다. 이때, 삭제되는 파일 데이터 청크 번호가 연속적이지 않도록 시간 차를 두어 파일 데이터 청크를 삭제한다. 이에 따라, 파일 저장 요청자(110)는 입력 버퍼(120)에 처리 대상 청크 번호가 존재하지 않은 경우, 원래의 파일 데이터 청크를 대신하여 기설정된 손실 패턴 청크를 데이터 서버(300)에 대체 저장한다. 참고로, 손실 패턴 청크 데이터는 디폴트 데이터 청크로서, 사용자로부터 입력 받거나 사전에 임의의 데이터가 설정되어 있을 수 있다.
[25] 도 3에서는, 파일 저장 요청자 2(110-2) 및 파일 저장 요청자 1(110-1)이 각각 현재 저장 회차에서 저장해야 할 파일 데이터 청크 F7, F9가 입력 버퍼(120)에 존재하지 않음을 확인하여, 데이터 서버 2(300-2)와 데이터 서버 1(300-1)에 각각 기설정된 손실 패턴 청크 데이터로 대체 저장한 것을 나타내었다.
[26] 도 4는 본 발명의 일 실시예에 따른 파일 스트라이핑 변경 시 메타데이터의 구성 요소를 설명하기 위한 도면이다.
[27] 본 발명의 일 실시예에서, 메타 데이터는 파일의 '전체 청크 수', 임의의 파일 데이터 청크 손실 시 대체 저장할 데이터인 '손실 패턴 청크 데이터', 파일 데이터 저장 시에 사용된 파일 스트라이프 수의 개수를 나타내는 '스트라이프 리스트 수', 및 각 스트라이프에 대한 정보(즉, 파일 스트라이프 수, 첫 번째 청크 번호, 마지막 청크 번호)로 구성된다.
[28] 도 3을 예로 들면, 전체 청크 수는 10이며, 스트라이프 리스트 수는 2이다. 첫번째 스트라이프 정보에서는 파일 스트라이프 수가 '2'이며, 이때 첫 번째 청크 번호는 1이고, 마지막 청크 번호는 2이다. 두 번째 스트라이프 정보에서는 파일 스트라이프 수는 3이며, 첫 번째 청크 번호는 3이고, 마지막 청크 번호는 10이다.
[29] 이상 도 1 내지 도4에서 설명한 바와 같이, 본 발명의 일 실시예에 따른 클라이언트 단말(100)은 파일 데이터 입/출력 속도에 기초하여 파일 스트라이핑을 변경 처리함으로써 파일 분산 시스템(10)의 분산 성능을 향상시키는 고속 분산 저장 장치로서 동작한다. 이처럼, 고속 분산 저장 장치로서의 클라이언트 단말(100)은 고속 분산 저장 제어부(미도시)를 포함할 수 있으며, 고속 분산 저장 제어부(미도시)는 파일 연결 요청자(110) 및 입력 버퍼(120)와 연동하여 스트라이핑 변경 및 파일 데이터 청크 삭제를 제어한다.
[30] 한편, 이상에서 설명한 본 발명의 일 실시예에 따른 고속 분산 저장 장치(즉, 클라이언트 단말)(100)는 메모리(미도시) 및 프로세서(미도시)를 포함하는 형태로 구현되는 것도 가능하다.
[31] 즉, 메모리(미도시)에는 앞서 설명한 파일 데이터 입/출력 속도에 기초한 파일 스트라이핑 변경 및 파일 데이터 청크 삭제를 통한 고속 분산 저장을 처리하는 일련의 동작 및 알고리즘을 포함하는 프로그램이 저장된다. 이때, 메모리(미도시)에 저장된 프로그램은, 고속 분산 저장 장치(100)의 각 구성이 파일 데이터를 분산 저장 처리하는 모든 동작이 하나로 구현된 프로그램이거나 또는, 고속 분산 처리 장치(100)의 각 구성 별 동작을 별도로 처리하는 복수의 프로그램들이 서로 연동되는 것일 수 있다. 프로세서(미도시)는 메모리(미도시)에 저장된 프로그램을 실행시킨다. 프로세서(미도시)가 프로그램을 실행시킴에 따라, 앞서 설명한 고속 분산 저장 장치(100)의 각 구성이 처리하는 동작들 및 알고리즘들이 수행 수 있다. 참고로, 고속 분산 저장 장치(100)의에 구성 요소들은 소프트웨어 또는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)와 같은 하드웨어 형태로 구현될 수 있으며, 소정의 역할들을 수행할 수 있다. 그렇지만 '구성 요소들'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 각 구성 요소는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 구성 요소는 소프트웨어 구성 요소들, 객체지향 소프트웨어 구성 요소들, 클래스 구성 요소들 및 태스크 구성 요소들과 같은 구성 요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성 요소들과 해당 구성 요소들 안에서 제공되는 기능은 더 작은 수의 구성 요소들로 결합되거나 추가적인 구성 요소들로 더 분리될 수 있다.
[32] 이하에서는, 도 5 내지 도 7을 참조하여 본 발명의 일 실시예에 따른 클라이언트 단말(100)을 통한 파일 분산 시스템(10)에서의 고속 분산 저장 방법에 대해서 상세히 설명하도록 한다.
[33] 도 5는 본 발명의 일 실시예에 따른 파일 데이터 분산 저장 시 파일 스트라이핑 변경 동작을 설명하기 위한 순서도이다.
[34] 이하에서 설명할 단계(S510)내지 단계(S560)은 클라이언트 단말(100)을 통해 수행되며, 이는 고속 분산 저장 제어부(미도시)에 의한 동작일 수 있다.
[35] 도 5에서와 같이, 먼저 소정의 시간 동안 입력 버퍼(120)로 입력되는 파일 데이터의 양 및 출력 양에 기초하여 데이터 입력 속도와 출력 속도를 계산한다(S510).
[36] 그리고, 데이터 입력 속도와 출력 속도의 차가 특정 임계치를 초과하는지 판단한다(S520).
[37] 이때, 특정 임계치는 속도 차이 값 또는 속도 차이 비율일 수 있다.
[38] 상기 판단의 결과, 입/출력 속도 차가 임계치를 초과할 경우, 메타데이터 서버(200)로부터 새로운 데이터 서버(300)를 할당 받고, 파일 저장 요청자(110)를 새로 생성하여 상기 할당 받은 데이터 서버(300)와 연결한다(S530).
[39] 이때, 새로 생성된 파일 저장 요청자(110)는 이전 파일 스트라이프 수에 '1'을 더한 순서 번호를 부여한다. 이러한 파일 저장 요청자의 순서 번호는, 파일 저장 요청자(110) 간에 입력 버퍼(120)에서 데이터를 출력하는 순서를 나타낸다.
[40] 다음으로, 새로 추가된 파일 저장 요청자(110)를 포함하는 파일 스트라이핑 환경을 구성한다(S540).
[41] 구체적으로, 이전 파일 스트라이프 수에 따른 마지막 순서 번호를 갖는 파일 저장 요청자(110)가 입력 버퍼(120)로부터 데이터를 꺼내 해당 데이터 서버(300)로 전송하면, 입력 버퍼(120)의 출력을 잠금 처리한다. 그리고, 입력 버퍼(120) 내 첫 번째 파일 데이터 청크를 시작으로 재설정하고, 기존에 비해 '1'이 증가된 파일 스트라이프 수를 적용하여 각 파일 저장 요청자(110)들이 처리해야 할 파일 청크 번호를 재계산하도록 요청한다.
[42] 다음으로, 메타데이터 서버(200)에 해당 파일의 스트라이프 수의 변경을 요청한다(S550).
[43] 이러한, 클라이언트 단말(100)의 요청에 대응하여, 메타데이터 서버(200)는 스트라이프 리스트 수를 증가시키고, 이전 스트라이프 정보의 마지막 청크 번호를 삽입하고, 새로운 스트라이프 정보를 생성한 후 첫 번째 청크 번호를 삽입한다.
[44] 메타데이터 서버(200)에 의한 메타데이터 변경이 완료되면, 입력 버퍼(120)의 출력 잠금을 해제하여, 파일 저장 요청자(110)들이 입력 버퍼(120)로부터 파일 데이터 청크를 출력하여 각각 해당하는 데이터 서버(300)로 전송함으로써, 병렬 저장이 수행되도록 한다(S560).
[45] 도 6은 본 발명의 일 실시예에 따른 파일 데이터 분산 저장 시 파일 데이터 청크 삭제 처리를 설명하기 위한 순서도이다.
[46] 이하에서 설명할 단계(S610)내지 단계(S650)은 클라이언트 단말(100)을 통해 수행되며, 이는 고속 분산 저장 제어부(미도시)에 의한 동작일 수 있다.
[47] 먼저, 입력 버퍼(120)에서의 파일 데이터의 입력 또는 출력 시, 입력 버퍼(120) 내 사용 중인 저장 공간을 계산한다(S610).
[48] 그런 다음, 입력 버퍼(120) 내 사용중인 저장 공간이 기설정된 특정 임계치를 초과하는지 판단한다(S620).
[49] 이때, 입력 버퍼(120)의 저장 공간 계산 및 임계치 초과 여부 판단은 주기적으로 처리되거나 임의의 시점에 간헐적으로 처리되거나, 데이터 입력 또는 출력 시마다 매번 처리되는 것도 가능하다.
[50] 상기 판단의 결과, 사용 중인 저장 공간이 임계치를 초과한 경우, 입력 버퍼(120) 내 가장 오래된 파일 데이터 청크를 삭제한다(S630).
[51] 그런 다음, 임의 시간 동안 대기한 후(S640), 다시 사용 중인 저장 공간이 특정 임계치(예: 50%)를 초과하는지 재판단한다(S650).
[52] 상기 재판단의 결과, 입력 퍼버(120)의 저장 공간이 특정 임계치를 초과할 경우, 단계(S630)으로 회귀하여 파일 데이터 청크 삭제를 반복한다.
[53] 반면, 상기 단계(S620)의 판단 및 상기 단계(S650)의 재판단의 결과 각각, 입력 버퍼(120)가 특정 임계치 미만의 저장 공간을 사용하고 있는 경우 삭제 판단 절차를 종료한다. 참고로, 삭제 판단 절차의 종료 이후 앞서 설명한 바와 같이 주기적, 간헐적 또는 입/출력 회차 수행 시마다 상기 단계(S610) 내지 단계 (S650)의 과정을 자동 실행할 수 있다.
[54] 도 7은 본 발명의 일 실시예에 따른 파일 데이터 청크를 데이터 서버에 저장하는 과정을 설명하기 위한 순서도이다.
[55] 이하에서 설명할 단계(S710)내지 단계(S740)는 클라이언트 단말(100)을 통해 수행되며, 이는 파일 저장 요청자(110)에 의한 동작일 수 있다.
[56] 먼저, 입력 버퍼(120) 내에 처리될 파일 데이터 청크 번호들이 존재하는지 확인한다(S710).
[57] 그런 다음, 확인된 청크 번호 중 파일 저장 요청자(110) 자신이 처리해야 할 청크 번호가 존재하는지 판단한다(S720).
[58] 상기 판단의 결과, 해당하는 청크 번호가 존재하는 경우, 입력 버퍼(140)로부터 해당 파일 데이터 청크를 출력한 후, 자신과 연결되어 있는 데이터 서버(300)에 전송하여 저장한다(S730).
[59] 반면, 상기 판단의 결과, 해당하는 청크 번호의 파일 데이터가 존재하지 않는 경우, 기설정된 손실 패턴 청크 데이터를 데이터 서버(300)에 전송하여 대체 저장한다(S740).
[60] 이상에서 설명한 본 발명의 일 실시예에 따른 고속 분산 저장 장치(100)의 분산 파일 시스템(10)에서의 파일 데이터 고속 분산 저장 방법은, 컴퓨터에 의해 실행되는 매체에 저장된 컴퓨터 프로그램 또는 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
[61] 본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
[62] 전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
[63] 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 분산 파일 시스템
100: 클라이언트 단말(고속 분산 저장 장치)
200: 메타데이터 서버
300: 데이터 서버

Claims (13)

  1. 메타데이터 서버 및 데이터 서버를 포함하는 분산 파일 시스템에 기반한 고속 분산 저장 장치에 있어서,
    파일 데이터가 청크 단위로 입력되는 입력 버퍼;
    상기 입력 버퍼에 저장된 파일 데이터 청크를 각각 출력하여 서로 상이한 데이터 서버로 병렬 전송하여 저장하는 둘 이상의 파일 저장 요청부; 및
    상기 입력 버퍼의 데이터 입력 속도 및 상기 데이터 서버로의 데이터 출력 속도 차이를 특정 임계치와 비교한 결과에 기초하여 새로운 파일 저장 요청부를 추가 생성하고, 기설정된 상기 입력 버퍼의 잔여 저장 공간량에 기초하여 상기 입력 버퍼에 저장된 파일 데이터의 적어도 하나의 청크를 삭제 처리하는 고속 분산 저장 제어부를 포함하고,
    상기 파일 저장 요청부는,
    자신에게 할당된 순서 번호와 파일 스트라이프 수, 및 저장 처리 횟수에 기초하여, 처리해야 할 상기 파일 데이터 청크의 청크 번호를 산출하는 것인 고속 분산 저장 장치.
  2. 제 1 항에 있어서,
    상기 고속 분산 저장 제어부는,
    상기 데이터 입력 속도가 상기 데이터 출력 속도보다 기설정된 임계치를 초과하여 빠른 경우,
    새로운 파일 저장 요청부를 추가 생성하고, 상기 메타데이터 서버로부터 새로운 데이터 서버를 할당 받아, 상기 새로운 파일 저장 요청부와 상기 새로운 데이터 서버를 연결하는, 고속 분산 저장 장치.
  3. 제 1 항에 있어서,
    상기 파일 저장 요청부는,
    다른 파일 저장 요청부와 상기 입력 버퍼로부터 출력할 청크가 겹치지 않도록 순서 번호가 설정되며,
    상기 입력 버퍼 내 첫 번째 청크 번호, 상기 순서 번호 및 저장 처리 횟수에 기초하여 다음 출력할 청크 번호가 설정되는, 고속 분산 저장 장치
  4. 제 1 항에 있어서,
    상기 파일 저장 요청부는,
    상기 삭제 처리된 청크 대신에 기설정된 디폴트 데이터 청크를 상기 데이터 서버로 전송하여 대체 저장하는, 고속 분산 저장 장치.
  5. 제 3 항에 있어서,
    상기 고속 분산 저장 제어부는,
    상기 새로운 파일 저장 요청부의 생성 후,
    상기 메타데이터 서버에 상기 순서 번호와 대응하는 파일 스트라이프 수를 갱신 저장하고,
    이전 파일 스트라이프 수를 적용한 결과에 따른 마지막 청크 번호와, 상기 갱신된 파일 스트라이프 수를 적용한 결과에 따른 첫 번째 청크 번호를 저장하는, 고속 분산 저장 장치.
  6. 제 1 항에 있어서,
    상기 고속 분산 저장 제어부는,
    상기 입력 버퍼의 잔여 저장 공간량이 기설정된 임계치 미만인 경우, 상기 입력 버퍼에 저장된 파일 데이터 중 가장 오래된 청크부터 삭제 처리하며,
    삭제 처리할 다음 청크 번호는 기삭제 처리된 청크 번호와 비연속적인 것인, 고속 분산 저장 장치.
  7. 메타데이터 서버 및 데이터 서버를 포함하는 분산 파일 시스템에 기반한 고속 분산 저장 장치를 통한 고속 분산 저장 방법에 있어서,
    입력 버퍼가 파일 데이터를 청크 단위로 입력 받아 저장하는 단계;
    서로 상이한 데이터 서버와 연결된 둘 이상의 파일 저장 요청부가, 상기 입력 버퍼에 저장된 파일 데이터 청크를 각각 출력하여 상기 연결된 데이터 서버로 병렬 전송하는 단계;
    고속 분산 저장 제어부가 상기 입력 버퍼의 데이터 입력 속도 및 상기 데이터 서버로의 데이터 출력 속도의 차이를 특정 임계치와 비교한 결과에 기초하여 새로운 파일 저장 요청부를 추가 생성하여 새로운 데이터 서버와 연결하는 단계;
    상기 고속 분산 저장 제어부가 상기 새로운 파일 저장 요청부를 포함하는 파일 저장 요청부들에 대한 파일 데이터 청크 출력 순서를 재설정하는 단계; 및
    상기 파일 저장 요청부들이 상기 재설정의 결과를 적용하여 상기 입력 버퍼에 저장된 파일 데이터 청크를 각각 출력하여 상기 연결된 데이터 서버로 병렬 전송하는 단계를 포함하고,
    상기 파일 저장 요청부는,
    자신에게 할당된 순서 번호와 파일 스트라이프 수, 및 저장 처리 횟수에 기초하여, 처리해야 할 상기 파일 데이터 청크의 청크 번호를 산출하는 것인 고속 분산 저장 방법.
  8. 제 7 항에 있어서,
    상기 새로운 파일 저장 요청부를 추가 생성하여 새로운 데이터 서버와 연결하는 단계는,
    상기 데이터 입력 속도가 상기 데이터 출력 속도보다 빠른지 판단하는 단계;
    상기 판단의 결과 기설정된 임계치를 초과하여 빠른 경우, 새로운 파일 저장 요청부를 추가 생성하는 단계;
    상기 메타데이터 서버로부터 새로운 상기 데이터 서버를 할당 받는 단계; 및
    상기 새로운 파일 저장 요청부와 상기 할당된 새로운 데이터 서버를 연결하는 단계를 포함하는 고속 분산 저장 방법.
  9. 제 7 항에 있어서,
    상기 입력 버퍼가 파일 데이터를 청크 단위로 입력 받아 저장하는 단계 이후에,
    상기 고속 분산 저장 처리부가, 각 파일 저장 요청부들에 대해 상기 입력 버퍼로부터 출력할 청크가 겹치지 않도록 순서 번호를 부여하는 단계를 더 포함하며,
    상기 입력 버퍼 내 첫 번째 청크 번호, 상기 순서 번호 및 저장 처리 횟수에 기초하여 각 파일 저장 요청부 별 다음 출력할 청크 번호가 설정되는, 고속 분산 저장 방법.
  10. 제 7 항에 있어서,
    상기 새로운 파일 저장 요청부를 추가 생성하여 새로운 데이터 서버와 연결하는 단계 이후에,
    상기 메타데이터 서버에 순서 번호와 대응하는 파일 스트라이프 수를 갱신 저장하는 단계; 및
    이전 파일 스트라이프 수를 적용한 결과에 따른 마지막 청크 번호와, 상기 갱신된 파일 스트라이프 수를 적용한 결과에 따른 첫 번째 청크 번호를 저장하는 단계를 더 포함하는 고속 분산 저장 방법.
  11. 제 7 항에 있어서,
    상기 입력 버퍼가 파일 데이터를 청크 단위로 입력 받아 저장하는 단계 이후에,
    상기 입력 버퍼의 잔여 저장 공간량에 기초하여 상기 입력 버퍼에 저장된 파일 데이터의 적어도 하나의 청크를 삭제 처리하는 단계를 더 포함하는 고속 분산 저장 방법.
  12. 제 11 항에 있어서,
    상기 적어도 하나의 청크를 삭제 처리하는 단계 이후에,
    상기 파일 저장 요청부가 상기 삭제 처리된 청크 대신에 기설정된 디폴트 데이터 청크를 상기 데이터 서버로 전송하여 대체 저장하는 단계를 더 포함하는 고속 분산 저장 방법.
  13. 제 11 항에 있어서,
    상기 적어도 하나의 청크를 삭제 처리하는 단계는,
    상기 고속 분산 저장 제어부가 상기 입력 버퍼의 잔여 저장 공간량이 기설정된 임계치 미만인지 여부를 판단하는 단계; 및
    상기 판단의 결과 상기 임계치 미만인 경우, 상기 고속 분산 저장 제어부가 상기 입력 버퍼에 저장된 파일 데이터 중 가장 오래된 청크부터 삭제 처리하는 단계를 포함하며,
    삭제 처리할 다음 청크 번호는 기삭제 처리된 청크 번호와 비연속적인 것인, 고속 분산 저장 방법.

KR1020160058667A 2016-05-13 2016-05-13 고속 분산 저장 장치 및 방법 KR102610846B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160058667A KR102610846B1 (ko) 2016-05-13 2016-05-13 고속 분산 저장 장치 및 방법
US15/203,679 US20170329797A1 (en) 2016-05-13 2016-07-06 High-performance distributed storage apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160058667A KR102610846B1 (ko) 2016-05-13 2016-05-13 고속 분산 저장 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20170127881A KR20170127881A (ko) 2017-11-22
KR102610846B1 true KR102610846B1 (ko) 2023-12-07

Family

ID=60295302

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160058667A KR102610846B1 (ko) 2016-05-13 2016-05-13 고속 분산 저장 장치 및 방법

Country Status (2)

Country Link
US (1) US20170329797A1 (ko)
KR (1) KR102610846B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7391847B2 (ja) * 2019-06-20 2023-12-05 クワッド マイナーズ ネットワークフォレンジックシステム及びこれを用いたネットワークフォレンジック方法
CN110413673B (zh) * 2019-07-08 2022-02-11 中国人民银行清算总中心 数据库数据统一采集与分发方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120167103A1 (en) 2010-12-23 2012-06-28 Electronics And Telecommunications Research Institute Apparatus for parallel processing continuous processing task in distributed data stream processing system and method thereof
US20140317056A1 (en) 2013-04-17 2014-10-23 Electronics And Telecommunications Research Institute Method of distributing and storing file-based data
US20150288590A1 (en) * 2014-04-08 2015-10-08 Aol Inc. Determining load state of remote systems using delay and packet loss rate

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3593299A (en) * 1967-07-14 1971-07-13 Ibm Input-output control system for data processing apparatus
US6047356A (en) * 1994-04-18 2000-04-04 Sonic Solutions Method of dynamically allocating network node memory's partitions for caching distributed files
US5745915A (en) * 1995-03-17 1998-04-28 Unisys Corporation System for parallel reading and processing of a file
US6388999B1 (en) * 1997-12-17 2002-05-14 Tantivy Communications, Inc. Dynamic bandwidth allocation for multiple access communications using buffer urgency factor
JP3543661B2 (ja) * 1999-03-05 2004-07-14 日本電気株式会社 交換機ファイルシステムにおけるバッファキャッシュ方法および装置
US6625656B2 (en) * 1999-05-04 2003-09-23 Enounce, Incorporated Method and apparatus for continuous playback or distribution of information including audio-visual streamed multimedia
US7054927B2 (en) * 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
US7685126B2 (en) * 2001-08-03 2010-03-23 Isilon Systems, Inc. System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system
JP4176341B2 (ja) * 2001-10-23 2008-11-05 株式会社日立製作所 記憶制御装置
KR100429897B1 (ko) * 2001-12-13 2004-05-03 한국전자통신연구원 공유 버퍼형 스위치의 적응 버퍼 배분 방법 및 이에사용되는 스위치
JP4244572B2 (ja) * 2002-07-04 2009-03-25 ソニー株式会社 キャッシュ装置、およびキャッシュデータ管理方法、並びにコンピュータ・プログラム
KR100578143B1 (ko) * 2004-12-21 2006-05-10 삼성전자주식회사 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는저장 시스템 및 그것을 포함한 컴퓨팅 시스템
JP4568168B2 (ja) * 2005-05-17 2010-10-27 株式会社日立製作所 情報処理方法及びシステム
JP4903415B2 (ja) * 2005-10-18 2012-03-28 株式会社日立製作所 記憶制御システム及び記憶制御方法
JP4949176B2 (ja) * 2007-09-10 2012-06-06 ソニー株式会社 情報処理装置、記録方法およびコンピュータプログラム
WO2010007749A1 (ja) * 2008-07-17 2010-01-21 パナソニック株式会社 送信装置、受信装置、レート制御装置、送信方法及び受信方法
KR101023883B1 (ko) * 2009-02-13 2011-03-22 (주)인디링스 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템
KR101269678B1 (ko) * 2009-10-29 2013-05-30 한국전자통신연구원 P2p 스트리밍 장치, 방법 및 시스템 구성방법
KR100955208B1 (ko) * 2010-02-02 2010-04-29 주식회사 나우콤 고속네트워크용 패킷분산처리시스템 및 이를 이용한 고속네트워크용 패킷분산처리방법
US8300667B2 (en) * 2010-03-02 2012-10-30 Cisco Technology, Inc. Buffer expansion and contraction over successive intervals for network devices
JP5765920B2 (ja) * 2010-11-16 2015-08-19 キヤノン株式会社 送信装置および送信方法
US10394757B2 (en) * 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US9098423B2 (en) * 2011-10-05 2015-08-04 Taejin Info Tech Co., Ltd. Cross-boundary hybrid and dynamic storage and memory context-aware cache system
US9135123B1 (en) * 2011-12-28 2015-09-15 Emc Corporation Managing global data caches for file system
US8984235B2 (en) * 2012-11-14 2015-03-17 Hitachi, Ltd. Storage apparatus and control method for storage apparatus
US9081686B2 (en) * 2012-11-19 2015-07-14 Vmware, Inc. Coordinated hypervisor staging of I/O data for storage devices on external cache devices
US8984243B1 (en) * 2013-02-22 2015-03-17 Amazon Technologies, Inc. Managing operational parameters for electronic resources
KR102059865B1 (ko) * 2013-08-06 2020-02-12 삼성전자주식회사 가변 저항 메모리 장치 및 그것을 포함하는 가변 저항 메모리 시스템
US9298633B1 (en) * 2013-09-18 2016-03-29 Emc Corporation Adaptive prefecth for predicted write requests
US9773210B2 (en) * 2013-11-08 2017-09-26 Electronics And Telecommunications Research Institute System and method for providing information
JP6472253B2 (ja) * 2014-03-25 2019-02-20 キヤノン株式会社 画像処理装置及びその制御方法
KR20150115240A (ko) * 2014-04-03 2015-10-14 한국전자통신연구원 패킷 스위치 시스템 및 이의 트래픽 제어방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120167103A1 (en) 2010-12-23 2012-06-28 Electronics And Telecommunications Research Institute Apparatus for parallel processing continuous processing task in distributed data stream processing system and method thereof
US20140317056A1 (en) 2013-04-17 2014-10-23 Electronics And Telecommunications Research Institute Method of distributing and storing file-based data
US20150288590A1 (en) * 2014-04-08 2015-10-08 Aol Inc. Determining load state of remote systems using delay and packet loss rate

Also Published As

Publication number Publication date
US20170329797A1 (en) 2017-11-16
KR20170127881A (ko) 2017-11-22

Similar Documents

Publication Publication Date Title
US10936560B2 (en) Methods and devices for data de-duplication
US10637916B2 (en) Method and device for storage resource allocation for video cloud storage
US10489343B2 (en) Cluster file system comprising data mover modules having associated quota manager for managing back-end user quotas
US9811546B1 (en) Storing data and metadata in respective virtual shards on sharded storage systems
US9100362B2 (en) Peer-to-peer architecture for web traffic management
EP3605347B1 (en) Systems and methods for i/o prioritization in nvme-compliant storage devices
CN108132775B (zh) 一种租户管理系统及方法
US10235047B2 (en) Memory management method, apparatus, and system
CN108023812B (zh) 云计算系统的内容分发方法及装置、计算节点及系统
JP6972714B2 (ja) データ取得プログラム、装置、及び方法
US10038752B2 (en) Method and system for execution of client-initiated operations on file handles in a distributed server system
CN111782134B (zh) 数据处理方法、装置、系统和计算机可读存储介质
US10216593B2 (en) Distributed processing system for use in application migration
US20100161585A1 (en) Asymmetric cluster filesystem
KR102610846B1 (ko) 고속 분산 저장 장치 및 방법
US11444998B2 (en) Bit rate reduction processing method for data file, and server
KR20190094690A (ko) 스토리지 서버 및 분산 파일 시스템에서 스토리지 서버에 의해 수행되는 적응형 프리페칭 방법
US11755541B2 (en) Distributed file system and method for accessing a file in such a system
KR102033401B1 (ko) 효율적으로 파일을 생성하기 위한 분산 파일 시스템 및 방법
US9544371B1 (en) Method to discover multiple paths to disk devices cluster wide
US20150220612A1 (en) Computer, control device for computer system, and recording medium
US10949322B2 (en) Collecting performance metrics of a device
CN108683608B (zh) 分配流量的方法和装置
JP6076882B2 (ja) 情報処理システム、管理装置及びキー割当プログラム
KR101351237B1 (ko) 네트워크의 파일 분산 처리 시스템

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