KR101704928B1 - Gpu를 이용한 파일의 분산 저장 시스템 및 방법 - Google Patents

Gpu를 이용한 파일의 분산 저장 시스템 및 방법 Download PDF

Info

Publication number
KR101704928B1
KR101704928B1 KR1020150148774A KR20150148774A KR101704928B1 KR 101704928 B1 KR101704928 B1 KR 101704928B1 KR 1020150148774 A KR1020150148774 A KR 1020150148774A KR 20150148774 A KR20150148774 A KR 20150148774A KR 101704928 B1 KR101704928 B1 KR 101704928B1
Authority
KR
South Korea
Prior art keywords
clients
server
client
storage
gpu
Prior art date
Application number
KR1020150148774A
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 KR1020150148774A priority Critical patent/KR101704928B1/ko
Priority to PCT/KR2016/012024 priority patent/WO2017073988A1/ko
Application granted granted Critical
Publication of KR101704928B1 publication Critical patent/KR101704928B1/ko

Links

Images

Classifications

    • G06F17/30194
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F17/302
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

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

Abstract

파일의 분산 저장 시스템 및 방법이 개시된다. 본 발명의 일 실시예에 따른 파일의 분산 저장 시스템은 스토리지를 구비하고, 상기 스토리지의 적어도 일부를 제공하기 위해 접속 요청 메시지를 생성하는 복수의 클라이언트 및 저장하고자 하는 대상 파일을 분할하고, 분할된 상기 대상 파일을 복수의 상기 클라이언트 내 스토리지 내에 분산 저장하는 서버를 포함하며, 상기 서버는, 상기 접속 요청 메시지를 수신함에 따라 접속된 상기 클라이언트의 수가 기 설정된 값을 초과하는 경우, GPU(graphic processing unit)를 동작시켜 병렬 연산(parallel computing) 처리를 수행한다.

Description

GPU를 이용한 파일의 분산 저장 시스템 및 방법{SYSTEM AND METHOD FOR DISTRIBUTIVELY STORING FILES USING GPU}
본 발명의 실시예들은 파일의 분산 저장 기술과 관련된다.
빅데이터 시대가 도래함에 따라, 대용량 데이터를 효율적으로 처리하기 위한 방법으로서 하둡 분산 파일 시스템(HDFS: Hadoop Distributed File System) 기술이 사용되고 있다. 하둡 분산 파일 시스템의 경우 파일과 블록, 데이터 노드의 매핑 정보를 관리하는 네임 노드(Namenode), 각 파일을 블록 단위로 여러 장소에 분산 저장하는 데이터 노드(Datanode) 및 파일 백업을 위한 백업 노드(Backupnode)를 이용하여 데이터를 분산 저장한다. 그러나, 종래 기술에 따르면 네임 노드 및 백업 노드 모두에서 장애가 발생한 경우 데이터 노드에 저장된 파일들이 무용지물이 되는 문제점이 있었다. 또한, 종래 기술에 따르면, 사용자의 파일이 어디에 저장되어 있는지 여부를 알 수 없어 저장된 파일에 대한 손실 위험이 있었으며, 파일 메타 정보를 중앙 서버에서 관리함에 따라 서버의 다운 등과 같은 장애 발생시 이에 대한 대처가 어려운 문제점이 있었다. 또한, 서버에 연결되는 클라이언트의 수가 증가함에 따라 연산 처리가 지연되는 문제점이 있었다.
한국등록특허공보 제10-0609459호(2006.08.08)
본 발명의 실시예들은 클라이언트 내 스토리지에 대상 파일을 효율적으로 분산 저장하기 위한 수단을 제공하기 위한 것이다.
본 발명의 예시적인 실시예에 따르면, 스토리지를 구비하고, 상기 스토리지의 적어도 일부를 제공하기 위해 접속 요청 메시지를 생성하는 복수의 클라이언트; 및 저장하고자 하는 대상 파일을 분할하고, 분할된 상기 대상 파일을 복수의 상기 클라이언트 내 스토리지 내에 분산 저장하는 서버를 포함하며, 상기 서버는, 상기 접속 요청 메시지를 수신함에 따라 접속된 상기 클라이언트의 수가 기 설정된 값을 초과하는 경우, GPU(graphic processing unit)를 동작시켜 병렬 연산(parallel computing) 처리를 수행하는, 파일의 분산 저장 시스템이 제공된다.
상기 접속 요청 메시지는, 상기 클라이언트 내 스토리지의 가용 크기, 상기 클라이언트의 아이디, 패스워드, 아이피 주소 및 포트 번호 중 하나 이상을 포함할 수 있다.
상기 기 설정된 값은, 상기 서버가 동일한 개수의 클라이언트에 대하여, 상기 GPU를 이용하여 연산 처리를 수행하는 경우가 CPU(central processing unit)을 이용하여 연산 처리를 수행하는 경우보다 연산 처리 속도가 빨라지는 상기 클라이언트의 수에 기초하여 결정될 수 있다.
상기 서버는, 상기 GPU의 복수의 스레드(thread)와 상기 복수의 클라이언트를 각각 매칭하며, 상기 스레드는, 상기 매칭된 클라이언트에 각각 분산 저장된 상기 대상 파일의 이름, 크기, 소유자, 유형, 저장 위치 및 저장 일자 중 하나 이상을 포함하는 파일 메타 정보를 상기 복수의 클라이언트에 송신할 수 있다.
상기 스레드는, 복수의 상기 클라이언트의 아이피 주소 및 포트 번호 중 하나 이상을 포함하는 클라이언트 메타 정보를 상기 복수의 클라이언트에 송신할 수 있다.
상기 복수의 클라이언트는, 상기 서버의 장애 여부의 판별을 위한 점검 메시지를 설정된 주기마다 상기 스레드에 송신할 수 있다.
상기 클라이언트는, 설정된 기간 동안 상기 점검 메시지에 대한 응답 메시지를 상기 스레드로부터 수신하지 않는 경우 상기 서버에 장애가 발생한 것으로 판단하며, 상기 서버에 장애가 발생한 것으로 판단된 경우 상기 복수의 클라이언트 중 하나를 대체 서버로 선정하여 상기 서버와의 접속을 종료하며, 상기 대체 서버로 새로운 접속 요청 메시지를 송신할 수 있다.
상기 클라이언트는, 상기 클라이언트 메타 정보를 이용하여 상기 복수의 클라이언트를 정렬하고, 정렬된 복수의 상기 클라이언트 중 최상단에 위치한 클라이언트를 대체 서버로 선정할 수 있다.
본 발명의 다른 예시적인 실시예에 따르면, 스토리지를 구비하는 클라이언트에서, 상기 스토리지의 적어도 일부를 제공하기 위한 접속 요청 메시지를 생성하는 단계; 서버에서, 상기 접속 요청 메시지를 수신함에 따라 상기 클라이언트의 접속을 허용하는 단계; 서버에서, 저장하고자 하는 대상 파일을 분할하는 단계; 상기 서버에서, 분할된 상기 대상 파일을 복수의 클라이언트 내 스토리지에 분산 저장하는 단계; 및 상기 서버에서, 상기 접속된 상기 클라이언트의 수가 기 설정된 값을 초과하는 경우, GPU(graphic processing unit)를 동작시켜 병렬 연산(parallel computing) 처리를 수행하는 단계를 포함하는, 파일의 분산 저장 방법이 제공된다.
상기 접속 요청 메시지는, 상기 클라이언트 내 스토리지의 가용 크기, 상기 클라이언트의 아이디, 패스워드, 아이피 주소 및 포트 번호 중 하나 이상을 포함할 수 있다.
상기 기 설정된 값은, 상기 서버가 동일한 개수의 클라이언트에 대하여, 상기 GPU를 이용하여 연산 처리를 수행하는 경우가 CPU(central processing unit)을 이용하여 연산 처리를 수행하는 경우보다 연산 처리 속도가 빨라지는 상기 클라이언트의 수에 기초하여 결정될 수 있다.
상기 서버에서, 상기 GPU의 스레드(thread)와 상기 복수의 클라이언트를 각각 매칭하는 단계; 및 상기 스레드에서, 상기 매칭된 클라이언트에 각각 분산 저장된 상기 대상 파일의 이름, 크기, 소유자, 유형, 저장 위치 및 저장 일자 중 하나 이상을 포함하는 파일 메타 정보를 상기 복수의 클라이언트에 송신하는 단계를 더 포함할 수 있다.
상기 스레드에서, 복수의 상기 클라이언트의 아이피 주소 및 포트 번호 중 하나 이상을 포함하는 클라이언트 메타 정보를 상기 복수의 클라이언트에 송신하는 단계를 더 포함할 수 있다.
상기 클라이언트에서, 상기 서버의 장애 여부의 판별을 위한 점검 메시지를 설정된 주기마다 상기 스레드에 송신하는 단계를 더 포함할 수 있다.
상기 클라이언트에서, 설정된 기간 동안 상기 점검 메시지에 대한 응답 메시지를 상기 스레드로부터 수신하지 않는 경우 상기 서버에 장애가 발생한 것으로 판단하는 단계; 상기 클라이언트에서, 상기 서버에 장애가 발생한 것으로 판단된 경우 상기 복수의 클라이언트 중 하나를 대체 서버로 선정하여 상기 서버와의 접속을 종료하는 단계; 및 상기 클라이언트에서, 상기 대체 서버로 새로운 접속 요청 메시지를 송신하는 단계를 더 포함할 수 있다.
상기 종료하는 단계는, 상기 클라이언트 메타 정보를 이용하여 정렬된 복수의 상기 클라이언트 중 최상단에 위치한 클라이언트를 대체 서버로 선정하여 상기 서버와의 접속을 종료할 수 있다.
본 발명의 실시예들에 따르면, 각 클라이언트 내 스토리지에 대상 파일을 분산 저장하도록 함으로써, 스토리지 자원을 효율적으로 이용하고 파일 저장에 따른 비용을 절감할 수 있다. 또한, 대상 파일을 로컬 영역에 저장하도록 함으로써, 대상 파일의 유출 위험을 방지할 수 있다.
또한, 본 발명의 실시예들에 따르면, 서버에 장애가 발생하는 경우 각 클라이언트 중 하나를 대체 서버로 선정함으로써, 대상 파일을 유연하고 안전하게 저장할 수 있다.
또한, 본 발명의 실시예들에 따르면, 데이터 연산량이 증가하는 경우에도, GPU를 동작시켜 병렬 연산 처리를 수행함으로써, 데이터 처리 지연을 방지할 수 있다.
도 1은 본 발명의 일 실시예에 따른 파일의 분산 저장 시스템의 상세 구성을 나타낸 도면
도 2는 본 발명의 일 실시예에 따른 스레드에 매칭된 복수의 클라이언트를 나타낸 예시도
도 3은 본 발명의 일 실시예에 따른 파일의 분산 저장 방법을 설명하기 위한 흐름도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 본 발명의 일 실시예에 따른 파일의 분산 저장 시스템(100)의 상세 구성을 나타낸 도면이다. 도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 파일의 분산 저장 시스템(100)은 서버(102) 및 복수의 클라이언트(104)를 포함한다.
서버(102)는 사용자 또는 서버 관리자가 저장하고자 하는 대상 파일 및 대상 파일이 저장되는 클라이언트(104) 내 스토리지를 관리하기 위한 장치로서, 예를 들어 데스크탑, 노트북, 태블릿 컴퓨터, PDA 등과 같은 전자 기기가 될 수 있다. 대상 파일은 예를 들어, 텍스트 파일, 동영상 파일, 이미지 파일 등이 될 수 있으나 대상 파일의 종류가 특별히 제한되는 것은 아니다.
서버 관리자는 서버(102)의 아이피 주소 및 포트 번호를 입력하여 서버(102)를 실행시킬 수 있으며, 청크 사이즈(chunk size)를 설정할 수 있다. 청크 사이즈는 대상 파일이 분할되었을 때 분할된 대상 파일 각각의 크기를 의미하며, 예를 들어 64MB가 될 수 있다.
서버(102)는 클라이언트(104)로부터 접속 요청 메시지를 수신할 수 있으며, 접속 요청 메시지를 이용하여 클라이언트(104)의 접속을 허용할 수 있다. 접속 요청 메시지는 클라이언트(104)의 아이디, 패스워드, 아이피 주소 및 포트 번호 중 하나 이상을 포함할 수 있다. 서버(102)는 예를 들어, 접속 요청 메시지에 포함된 아이디 및 패스워드를 인증함으로써 클라이언트(104)의 접속을 허용할 수 있다. 또한, 아이디 및 패스워드는 각 클라이언트(104-1 내지 104-n)의 고유 식별 정보로서, 복수의 클라이언트(104-1 내지 104-n) 중 일부가 서버(102)와의 접속이 끊겼다 다시 접속된 경우 해당 클라이언트를 식별하는 데 사용될 수 있다. 만약, 복수의 클라이언트(104-1 내지 104-n) 중 일부와 서버(102)와의 접속이 끊긴 경우, 서버(102)는 접속이 끊긴 클라이언트 내 스토리지에 저장된 대상 파일을 다른 클라이언트 내 스토리지에 저장하기 위해 해당 대상 파일을 어느 곳에 저장을 할 것인지에 대한 연산을 수행하여야 하는 번거로움이 있으나, 접속이 끊긴 클라이언트가 서버(102)에 재접속하는 경우 해당 클라이언트의 아이디 및 패스워드를 통해 해당 클라이언트 내 스토리지에 저장된 대상 파일의 존재를 신속하게 파악할 수 있다. 이 경우, 서버(102)는 파일 메타 정보를 수정할 필요가 없게 된다.
또한, 접속 요청 메시지에는 클라이언트(104) 내 스토리지(미도시)의 가용 크기, 클라이언트(104) 내 스토리지의 위치 등이 더 포함될 수 있다. 스토리지의 가용 크기는 클라이언트(104)가 제공하는 저장 공간의 최대 크기로서, 예를 들어 5GB일 수 있다. 또한, 스토리지의 위치는 대상 파일이 저장되는 위치로서, 예를 들어 D 드라이브가 될 수 있다. 클라이언트(104)는 이와 같은 스토리지의 가용 크기 및 위치를 사용자로부터 입력 받을 수 있으며, 스토리지의 가용 크기 및 위치는 각 클라이언트(104-1 내지 104-n)별로 다를 수 있다. 예를 들어, 제 1 클라이언트(104-1) 내 스토리지의 가용 크기 및 위치는 5GB 및 D 드라이브이고, 제 2 클라이언트(104-2) 내 스토리지의 가용 크기 및 위치는 10GB 및 C 드라이브이며, 제 3 클라이언트(104-3) 내 스토리지의 가용 크기 및 위치는 15GB 및 D 드라이브일 수 있다. 또한, 클라이언트(104)는 서버(102)로부터 청크 사이즈에 대한 정보를 수신할 수 있으며, 사용자가 입력한 스토리지 가용 크기가 청크 사이즈보다 작은 경우 사용자로 하여금 스토리지 가용 크기를 재입력하도록 알림 메시지를 출력할 수 있다.
서버(102)는 설정된 청크 사이즈에 따라 대상 파일을 분할하고, 분할된 대상 파일을 각 클라이언트(104-1 내지 104-n) 내 스토리지의 가용 크기를 초과하지 않는 범위에서 각 클라이언트(104-1 내지 104-n) 내 스토리지에 분산 저장할 수 있다. 예를 들어, 대상 파일의 크기가 10GB이며 청크 사이즈가 64MB인 경우, 서버(102)는 대상 파일을 64MB의 크기를 갖는 160개의 파일로 분할하고, 분할된 대상 파일 160개를 각 클라이언트(104-1 내지 104-n) 내 스토리지의 가용 크기를 초과하지 않는 범위에서 각 클라이언트(104-1 내지 104-n) 내 스토리지에 분산 저장할 수 있다.
이때, 서버(102)는 클라이언트(104) 내 스토리지의 가용 크기 중 클라이언트(104) 내 스토리지에 저장된 대상 파일의 크기를 제외한 나머지 크기에 해당하는 더미 파일(dummy file)을 생성하여 클라이언트(104) 내 스토리지에 저장할 수 있다. 예를 들어, 제 1 클라이언트(104-1) 내 스토리지의 가용 크기가 5GB이며 제 1 클라이언트(104-1) 내 스토리지에 저장된 대상 파일의 크기가 3GB인 경우, 서버(102)는 2GB의 더미 파일을 생성하여 제 1 클라이언트(104-1) 내 스토리지에 저장할 수 있다. 이에 따라, 스토리지의 가용 크기(5GB)에 해당하는 저장 공간을 대상 파일의 저장에만 사용할 수 있으며, 사용자로 인해 스토리지의 가용 크기(5GB)에 해당하는 저장 공간이 침해되는 것을 방지할 수 있다.
또한, 서버(102)는 분할된 대상 파일을 복제(예를 들어, 3번)하여 복수의 클라이언트(예를 들어, 104-1, 104-11, 104-21)에 중복 저장할 수 있다. 이때, 복제된 대상 파일이 저장되는 클라이언트(예를 들어, 104-1, 104-11, 104-21) 각각은 서로 다른 지역(예를 들어, 학교 내 제 1 전산실, 제 2 전산실, 제 3 전산실) 내에 위치할 수 있다. 이에 따라, 분할된 대상 파일이 저장된 클라이언트(예를 들어, 104-1)가 동작하지 않거나 해당 클라이언트(104-1)에 저장된 대상 파일이 손상 또는 유실되는 경우 동일한 대상 파일을 저장하고 있는 다른 클라이언트(예를 들어, 104-11, 104-21)로부터 대상 파일을 호출할 수 있으며, 대상 파일의 유실을 방지할 수 있다.
또한, 서버(102)는 파일 메타 정보를 각 클라이언트(104-1 내지 104-n)에 송신할 수 있다. 표 1은 본 발명의 일 실시예에 따른 파일 메타 정보의 예시를 나타낸 도면이다. 표 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 파일 메타 정보는 분산 저장된 대상 파일의 이름(name), 크기(size), 소유자(owner), 유형 또는 종류(type), 저장 위치(location) 및 저장 일자(date) 중 하나 이상을 포함할 수 있다. 상기 저장 위치(location)는 분할된 대상 파일 별 인덱스(index), 분할된 대상 파일이 저장된 위치(pil), 분할된 대상 파일 별 고유 이름(sfn) 등을 포함할 수 있다. 또한, 상기 분할된 대상 파일이 저장된 위치(pil)는 분할된 대상 파일의 중복 저장 위치(rdl) 및 분할된 대상 파일의 중복 저장 횟수(count) 등을 포함할 수 있다.
속성 내용
name 대상 파일의 이름
size 대상 파일의 크기
owner 대상 파일의 소유자
type 대상 파일의 유형 또는 종류(예를 들어, 대상 파일의 확장자)
location 대상 파일이 저장된 위치
date 대상 파일의 저장 일자(또는 시간)
index Location의 서브 메타 정보로서, 분할된 대상 파일의 인덱스
pil
(path information list)
Location의 서브 메타 정보로서, 분할된 대상 파일이 저장된 위치
sfn
(split file name)
Location의 서브 메타 정보로서, 분할된 대상 파일의 고유 이름
rdl
(redundant data location)
Pil의 서브 메타 정보로서, 분할된 대상 파일의 중복 저장 위치
count Pil의 서브 메타 정보로서, 분할된 대상 파일의 중복 저장 횟수
서버(102)는 파일 메타 정보를 관리하며, 파일 메타 정보에 변경이 발생할 경우(예를 들어, 대상 파일의 저장 위치가 변경되거나 대상 파일이 추가된 경우 등) 이를 업데이트할 수 있다. 서버(102)는 파일 메타 정보를 업데이트할 때마다 각 클라이언트(104-1 내지 104-n)에 업데이트된 파일 메타 정보를 송신할 수 있다. 또한, 서버(102)는 설정된 주기마다(예를 들어, 하루에 한 번) 파일 메타 정보를 각 클라이언트(104-1 내지 104-n)에 송신할 수도 있다.
또한, 서버(102)는 클라이언트 메타 정보를 각 클라이언트(104-1 내지 104-n)에 송신할 수 있다. 클라이언트 메타 정보는 예를 들어, 서버(102)에서 복수의 클라이언트 각각(104-1 내지 104-n)에 호출 메시지를 송신한 경우 복수의 클라이언트 각각(104-1 내지 104-n)으로부터 호출 메시지에 대한 응답 메시지를 수신하는 데까지 걸리는 시간, 복수의 클라이언트 각각(104-1 내지 104-n)의 CPU 점유율, 복수의 클라이언트 각각(104-1 내지 104-n)의 CPU의 데이터 처리 속도, 복수의 클라이언트 각각(104-1 내지 104-n)의 RAM 용량 및 복수의 클라이언트(104-1 내지 104-n) 내 스토리지에 저장된 대상 파일의 총 크기 중 하나 이상일 수 있다. 또한, 클라이언트 메타 정보는 클라이언트 각각 클라이언트(104-1 내지 104-n)의 아이피 주소 및 포트 번호를 더 포함할 수 있다. 여기서, 호출 메시지는 서버(102)에 대한 클라이언트 각각(104-1 내지 104-n)의 응답 시간을 측정하기 위한 메시지로서, 서버(102)는 클라이언트 각각(104-1 내지 104-n)에 호출 메시지를 송신하고, 호출 메시지에 대한 응답 메시지를 클라이언트 각각(104-1 내지 104-n)으로부터 수신한 후 응답 메시지의 수신 시간을 측정할 수 있다. 또한, CPU 점유율은 클라이언트(104) 내 CPU의 현재 사용률을 의미하며, 예를 들어 70%가 될 수 있다. 또한, CPU의 데이터 처리 속도는 클라이언트(104) 내 CPU의 동작속도를 의미하며 예를 들어, 4GHz가 될 수 있다. 또한, 클라이언트(104)의 RAM 용량은 예를 들어, 4GB일 수 있으며, 클라이언트(104) 내 스토리지에 저장된 대상 파일의 총 크기는 예를 들어, 1GB일 수 있다.
서버(102)는 클라이언트(104)가 서버(102)에 접속할 때마다 클라이언트 메타 정보를 업데이트할 수 있다. 서버(102)는 클라이언트 메타 정보를 업데이트하고, 각 클라이언트(104-1 내지 104-n)에 업데이트된 클라이언트 메타 정보를 송신할 수 있다. 또한, 서버(102)는 설정된 주기마다(예를 들어, 하루에 한 번) 클라이언트 메타 정보를 각 클라이언트(104-1 내지 104-n)에 송신할 수도 있다.
서버(102)는 복수의 연산을 동시에 처리하기 위해 GPU(graphic processing unit)를 동작시킬 수 있다. GPU는 병렬 연산 처리를 수행할 수 있도록 많은 수(예를 들어, 192개)의 스레드(thread)가 동시에 동작하는 구조로 형성되어 있다. 일 예시에서, 서버(102)는 NVIDIA社의 CUDA를 이용하여 GPU를 동작시킬 수 있으나, 이에 한정되는 것은 아니다. 서버(102)가 GPU를 동작시키는 경우, 상술한 서버(102)의 동작, 즉 대상 파일 및 대상 파일이 저장되는 클라이언트(104) 내 스토리지를 관리하는 동작 등을 GPU가 수행할 수 있다. 더 구체적으로는, GPU의 스레드가 상술한 동작을 수행할 수 있다. 이하, 서버(102) 및 클라이언트(104)는 GPU를 내장하고 있다는 전제하에 설명한다.
예를 들어, 복수의 스레드 각각은 분산 저장된 파일 메타 정보를 복수의 클라이언트(104)에 송신할 수 있다. 이때, 파일 메타 정보는 예를 들어, 분산 저장된 대상 파일의 이름, 크기, 소유자, 유형, 저장 위치 및 저장 일자 중 하나 이상을 포함할 수 있다. 또한, 스레드는 복수의 클라이언트 메타 정보를 복수의 클라이언트(104)에 송신할 수 있다. 이때, 클라이언트 메타 정보는 복수의 클라이언트(104)의 아이피 주소 및 포트 번호 중 하나 이상을 포함할 수 있다. 그러나, 스레드가 수행하는 동작은 이에 한정되지 않고, 기술된 서버(102)의 동작들은 복수의 스레드에 의해 병렬적으로 동시에 수행될 수 있다.
한편, 본 발명의 일 실시예에 따른 서버(102)는 데이터 처리 대상이 많지 않은 경우, CPU(central processing unit)의 동작에 따라 데이터 처리를 수행하고 있으나, 복수의 연산을 동시에 수행하기는 어렵다. 그러나, 본 발명의 실시예들에 따르면, 데이터 처리 대상의 용량이 커지는 경우에도, GPU를 이용하여 서버(102)가 데이터 처리속도를 유지 또는 증가시킬 수 있다.
서버(102)는 분할된 대상 파일을 저장하는 클라이언트(104)의 수에 기초하여 GPU를 동작시킬 수 있다. 구체적으로, 서버(102)는 서버(102)에 접속된 클라이언트(104)의 수가 기 설정된 값을 초과하는 경우 GPU를 동작시킬 수 있다. 본 발명의 일 실시예에 따르면, 서버(102)에 연결되어 파일이 분산 저장된 클라이언트(104)의 수가 동일한 경우에 있어서, CPU(central processing unit)를 동작시켜 데이터를 처리하는 속도와 GPU를 동작시켜 데이터를 처리하는 속도를 비교함으로써 GPU를 동작시킬 수 있다. 예를 들어, 서버(102)에 연결된 클라이언트(104)가 2개인 경우에 CPU를 동작시켜 데이터를 처리하는 속도가 더 빨랐으나, 연결된 클라이언트(104)가 3개인 경우에는 GPU를 동작시켜 데이터를 처리하는 속도가 더 빠르다면, 서버(102)는 서버에 접속되는 클라이언트(104)가 2개를 초과하는 경우 GPU를 동작시키도록 설정될 수 있다. 연결되는 클라이언트(104)의 수가 증가함에 따라 GPU를 동작시킴으로써, 서버(102)의 데이터 처리 속도 지연을 방지할 수 있다.
서버(102)는 GPU를 동작시키는 경우, 복수의 클라이언트(104)를 GPU의 복수의 스레드에 각각 매칭시킬 수 있다. 이에 따라, 복수의 스레드 각각은 그와 매칭되는 클라이언트 및 상기 클라이언트에 저장된 파일에 관한 연산 처리를 수행할 수 있다. 예를 들어, 사용자의 요청에 따라 GPU는 둘 이상의 스레드에 대응되는 각각의 클라이언트(104)에 저장된 파일을 동시에 불러오거나, 상기 파일에 변경 사항이 있는 경우 해당 파일 메타 정보를 동시에 업데이트할 수 있다.
서버(102)는 각 클라이언트(104-1 내지 104-n)로부터 점검 메시지를 수신할 수 있으며, 각 클라이언트(104-1 내지 104-n)는 점검 메시지를 이용하여 서버(102)의 장애 여부를 판단할 수 있다. 만약, 서버(102)에 장애가 발생한 것으로 판단되는 경우, 각 클라이언트(104-1 내지 104-n)는 서버(102)로부터 수신한 클라이언트 메타 정보를 이용하여 복수의 클라이언트(104-1 내지 104-n) 중 하나를 대체 서버로 선정할 수 있다.
클라이언트(104)는 대상 파일의 저장 공간을 제공하는 장치로서, 예를 들어 학교, 연구소, 기업 등에서 사용되는 데스크탑, 노트북, 태블릿 컴퓨터, PDA 등과 같은 전자 기기가 될 수 있다. 일반적으로, 학교, 연구소, 기업 등에서 사용되는 데스크탑은 항상 부팅되어 있는 반면에 내부의 스토리지의 이용율이 매주 낮거나 저조하다. 이에 따라, 본 발명의 실시예들에서는 클라우드 서버 내 스토리지가 아닌 클라이언트(104) 내 스토리지에 대상 파일을 저장할 수 있도록 하였다. 클라이언트(104)는 일상적인 데스크탑 용도로 활용됨과 동시에, 스토리지 자원의 일부로서 사용될 수 있다.
한편, 본 발명의 실시예들에 따르면, 클라이언트(104)는 스토리지를 제공하는 데스크탑을, 서버(102)는 클라이언트(104)로부터 스토리지를 제공받고 클라이언트(104)를 관리하는 데스크탑을 각각 의미한다. 그러나 상기와 같은 클라이언트(104)와 서버(102)의 구분은 동일한 데스크탑을 단지 기능적으로 분류한 것이다. 즉, 스토리지를 제공할 때에는 클라이언트(104)로, 클라이언트 및 분할 파일을 관리할 때에는 서버(102)로 동일한 데스크탑이 각각 구분될 수 있다. 다시 말해, 본 발명의 실시예들에서 데스크탑은 필요에 따라 스토리지를 제공하거나, 스토리지 및 분할 파일을 관리하거나, 또는 이 두 가지 동작을 동시에 수행하도록 구성될 수 있다. 따라서, 서버(102)의 장애가 발생한 경우 클라이언트(104) 중 하나가 대체 서버로 동작함으로써, 대상 파일을 유연하고 안전하게 저장할 수 있다.
클라이언트(104)는 사용자로부터 스토리지의 가용 크기 및 위치를 입력받아 접속 요청 메시지를 생성할 수 있다. 상술한 바와 같이, 접속 요청 메시지는 클라이언트(104) 내 스토리지의 가용 크기, 클라이언트(104) 내 스토리지의 위치, 클라이언트(104)의 아이디, 패스워드, 아이피 주소 및 포트 번호 중 하나 이상을 포함할 수 있다. 서버(102)는 클라이언트(104)로부터 수신한 접속 요청 메시지에 따라 클라이언트(104)의 접속을 허용할 수 있으며, 대상 파일을 각 클라이언트(104-1 내지 104-n) 내 스토리지에 분산 저장할 수 있다. 이때, 클라이언트(104) 내 스토리지에 분산 저장된 대상 파일의 크기는 사용자가 설정한 해당 클라이언트(104) 내 스토리지의 가용 크기를 초과하지 않는다. 또한, 서버(102)는 클라이언트(104) 내 스토리지의 가용 크기 중 클라이언트(104) 내 스토리지에 저장된 대상 파일의 크기를 제외한 나머지 크기에 해당하는 더미 파일을 생성하여 해당 클라이언트(104) 내 스토리지에 저장할 수 있으며, 이에 따라 사용자로 인해 스토리지의 가용 크기에 해당하는 저장 공간이 침해되는 것을 방지할 수 있다.
또한, 클라이언트(104)는 서버(102)로부터 파일 메타 정보를 수신할 수 있으며, 이에 따라 클라이언트(104)는 분할된 대상 파일 각각의 저장 위치, 저장 일자 등을 알 수 있다.
또한, 클라이언트(104)는 서버(102)로부터 각 클라이언트(104-1 내지 104-n)의 메타 정보를 수신할 수 있으며, 이에 따라 서버(102)에 장애가 발생하는 경우 상기 클라이언트 메타 정보를 이용하여 복수의 클라이언트(104-1 내지 104-n) 중 하나를 대체 서버로 선정할 수 있다.
이를 위해, 클라이언트(104)는 먼저 서버(102)의 장애 여부 판별을 위한 점검 메시지를 설정된 주기마다(예를 들어, 20초에 한 번씩) 서버(102)에 송신할 수 있다. 클라이언트(104)는 설정된 기간(예를 들어, 10초) 동안 점검 메시지에 대한 응답 메시지를 서버(102)로부터 수신하지 않는 경우 서버(102)에 장애가 발생한 것으로 판단할 수 있다. 서버(102)의 장애가 발생한 것으로 판단되는 경우, 클라이언트(104)는 각 클라이언트(104-1 내지 104-n)의 아이피 주소 및/또는 포트 정보를 크기 순으로 정렬하고, 정렬된 각 클라이언트(104-1 내지 104-n)의 아이피 주소 및/또는 포트 정보 중 최상단 또는 최하단에 위치한 아이피 주소 및/또는 포트 정보에 대응되는 클라이언트(예를 들어, 104-1)를 대체 서버로 선정하여 서버(102)와의 접속을 종료할 수 있다. 이후, 각 클라이언트(104-2 내지 104-n)는 대체 서버(104-1)에 새로운 접속 요청 메시지를 송신함으로써, 대체 서버 (104-1)에 접속할 수 있다. 한편, 여기서는 클라이언트(104)가 각 클라이언트(104-1 내지 104-n)의 아이피 주소 및/또는 포트 정보를 이용하여 대체 서버를 선정하는 것으로 설명하였으나, 이는 하나의 실시예에 불과할 뿐 대체 서버를 선정하는 방식이 이에 한정되는 것은 아니다. 클라이언트(104)는 예를 들어, 각 클라이언트(104-1 내지 104-n) 별로 우선 순위를 미리 설정하고, 서버(102)에서 장애가 발생된 것으로 판단되는 경우 우선 순위가 가장 높은 클라이언트를 대체 서버로 선정할 수도 있다.
한편, 클라이언트가 대체 서버를 선정하는 방법으로서, 각 클라이언트(104-1 내지 104-4)는 클라이언트 메타 정보를 이용하여 클라이언트 각각(104-1 내지 104-4)에 대한 정렬 기준값을 계산하고, 정렬 기준값의 크기 순으로 클라이언트 각각(104-1 내지 104-4)을 정렬함으로써 대체 서버를 선정할 수 있다. 이때, 클라이언트 메타 정보는 서버(102)에서 복수의 클라이언트 각각에 호출 메시지를 송신한 경우 복수의 클라이언트 각각으로부터 호출메시지에 대한 응답 메시지를 수신하는 데까지 걸리는 시간, 클라이언트(104-1 내지 104-4) 각각의 CPU 점유율, 클라이언트(104-1 내지 104-4) 각각의 CPU의 데이터 처리 속도, 클라이언트(104-1 내지 104-4) 각각의 RAM 크기 및 클라이언트(104-1 내지 104-4) 각각의 스토리지에 저장된 대상 파일의 총 크기 중 하나 이상을 더 포함할 수 있다. 각 클라이언트(104-1 내지 104-4)는 예를 들어, 정렬 기준값이 가장 큰 클라이언트(104-2)를 대체 서버로 선정할 수 있다.
대체 서버(104-1)는 대체 서버(104-1)에 저장된 대상 파일을 대체 서버(104-1)를 제외한 클라이언트(104-2 내지 104-n) 내 스토리지에 저장할 수 있으며, 이후 서버(102)와 동일한 기능을 수행하도록 동작할 수 있다. 대체 서버(102-1)는 파일 메타 정보를 업데이트하고, 업데이트된 파일 메타 정보를 대체 서버(102-1)를 제외한 각 클라이언트(104-2 내지 104-n)에 송신할 수 있다. 또한, 각 클라이언트(104-2 내지 104-n)는 설정된 주기마다 대체 서버(102-1)로 점검 메시지를 송신할 수 있으며, 설정된 기간 동안 점검 메시지에 대한 응답 메시지를 대체 서버(102-1)로부터 수신하지 않는 경우 대체 서버(102-1)에 장애가 발생한 것으로 판단할 수 있다.
본 발명의 실시예들에 따르면, 각 클라이언트(104-1 내지 104-n) 내 스토리지에 대상 파일을 분산 저장하도록 함으로써, 스토리지 자원을 효율적으로 이용하고 파일 저장에 따른 비용을 절감할 수 있다. 또한, 대상 파일을 로컬 영역에 저장하도록 함으로써, 대상 파일의 유출 위험을 방지할 수 있다. 나아가, 서버(102)에 장애가 발생하는 경우 각 클라이언트(104-1 내지 104-n) 중 하나를 대체 서버로 선정하도록 함으로써, 대상 파일을 유연하고 안전하게 저장할 수 있다. 또한, 데이터 연산량이 증가하는 경우에도, 서버의 GPU를 동작시켜 병렬 연산 처리를 수행함으로써, 데이터 처리 지연을 방지할 수 있다.
도 2는 본 발명의 일 실시예에 따른 스레드(204)에 매칭된 복수의 클라이언트(104)를 나타낸 예시도이다. 도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 스레드(204)는 GPU(202)내에 배치될 수 있다. 또한, 스레드(204)는 GPU(202)에 복수개 존재한다. 예를 들어, 하나의 GPU(202)에는 4개의 그리드가 존재할 수 있고, 상기 그리드에는 각각 16개의 블록이 존재할 수 있다. 또한, 하나의 블록에는 256개의 스레드(204)가 존재할 수 있다. 다만, 도 2에서 GPU(202)에는 스레드만이 포함된 것으로 도시되어 있으나, 이는 이해를 돕기위한 예시일 뿐, GPU(202)에는 일반적인 GPU(202)의 기능을 수행하기 위한 장치가 모두 포함되어 있음은 자명하다.
스레드(204)는 동시에 각각의 연산 처리를 수행할 수 있다. 따라서, 연산량이 많아지는 경우에도 연산의 지연을 방지하고, 기존의 지연 속도를 유지 또는 증가시킬 수 있다.
복수의 클라이언트(104) 각각은 스레드(204)에 일대일 매칭될 수 있다. 예를 들어, 제1 클라이언트(104)는 제1 스레드(204), 제2 클라이언트(104)는 제2 스레드(204)에 매칭될 수 있다. 구체적으로, 서버는 각 스레드(204)에 매칭될 클라이언트(104)의 클라이언트 메타 정보를 전송하고, 스레드(204)는 수신된 클라이언트(104)를 클라이언트 메타 정보에 따라 해당 클라이언트(104)에 접근할 수 있다. 따라서, 각각의 스레드(204)는 하나의 클라이언트(104)와 관련된 데이터 및 분산 저장 파일을 관리할 수 있다. 이렇게 함으로써, 각 스레드(204)에 업무를 분담시키는데 있어서, 연산량을 감소시킬 수 있다.
한편, GPU(202)는 NVIDIA社의 CUDA를 이용하여 동작될 수 있으나, 이에 한정되는 것은 아니다.
도 3은 본 발명의 일 실시예에 따른 파일의 분산 저장 방법(300)을 설명하기 위한 흐름도이다. 도 3에 도시된 방법은 예를 들어, 전술한 파일 분산 저장 시스템(100)에 의해 수행될 수 있다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
302 단계에서, 클라이언트가 접속 요청 메시지를 생성한다. 이때, 접속 요청 메시지는 상기 클라이언트 내 스토리지의 가용 크기, 상기 클라이언트의 아이디, 패스워드, 아이피 주소 및 포트 번호 중 하나 이상을 포함할 수 있다. 또한, 클라이언트는 생성된 접속 요청 메시지를 서버에 전송할 수 있다.
304 단계에서, 서버가 상기 접속 요청 메시지를 수신함에 따라 클라이언트의 접속을 허용할 수 있다.
306 단계에서, 서버가 저장하고자 하는 대상 파일을 분할할 수 있다. 이때, 서버는 설정된 청크 사이즈에 따라 대상 파일을 분할할 수 있다.
308 단계에서, 서버가 분할된 대상 파일을 클라이언트 내 스토리지에 분산 저장할 수 있다. 이때, 서버는 분할된 대상 파일을 각 클라이언트(104) 내 스토리지의 가용 크기를 초과하지 않는 범위에서 각 클라이언트(104) 내 스토리지에 분산 저장할 수 있다.
310 단계에서, 서버가 접속된 상기 클라이언트의 수가 기 설정된 값을 초과하는 경우 GPU(graphic processing unit)를 동작시켜 병렬 연산(parallel computing) 처리를 수행할 수 있다. 이때, 기 설정된 값은 상기 서버가 동일한 개수의 클라이언트에 대하여, 상기 GPU를 이용하여 연산 처리를 수행하는 경우가 CPU(central processing unit)을 이용하여 연산 처리를 수행하는 경우보다 연산 처리 속도가 빨라지는 상기 클라이언트의 수에 기초하여 결정될 수 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100 : 파일의 분산 저장 시스템
102 : 서버
104 : 클라이언트
202 : GPU(graphic processing unit)
204 : 스레드(thread)

Claims (16)

  1. 스토리지를 구비하고, 상기 스토리지의 적어도 일부를 제공하기 위해 접속 요청 메시지를 생성하는 복수의 클라이언트; 및
    저장하고자 하는 대상 파일을 분할하고, 분할된 상기 대상 파일을 복수의 상기 클라이언트 내 스토리지 내에 분산 저장하는 서버를 포함하며,
    상기 서버는, 상기 접속 요청 메시지를 수신함에 따라 접속된 상기 클라이언트의 수가 기 설정된 값을 초과하는 경우, GPU(graphic processing unit)를 동작시켜 병렬 연산(parallel computing) 처리를 수행하며,
    상기 기 설정된 값은, 상기 서버가 동일한 개수의 클라이언트에 대하여, 상기 GPU를 이용하여 연산 처리를 수행하는 경우가 CPU(central processing unit)을 이용하여 연산 처리를 수행하는 경우보다 연산 처리 속도가 빨라지는 상기 클라이언트의 수에 기초하여 결정되는, 파일의 분산 저장 시스템.
  2. 청구항 1에 있어서,
    상기 접속 요청 메시지는, 상기 클라이언트 내 스토리지의 가용 크기, 상기 클라이언트의 아이디, 패스워드, 아이피 주소 및 포트 번호 중 하나 이상을 포함하는, 파일의 분산 저장 시스템.
  3. 삭제
  4. 청구항 1에 있어서,
    상기 서버는, 상기 GPU의 복수의 스레드(thread)와 상기 복수의 클라이언트를 각각 매칭하며,
    상기 스레드는, 상기 매칭된 클라이언트에 각각 분산 저장된 상기 대상 파일의 이름, 크기, 소유자, 유형, 저장 위치 및 저장 일자 중 하나 이상을 포함하는 파일 메타 정보를 상기 복수의 클라이언트에 송신하는, 파일의 분산 저장 시스템.
  5. 청구항 4에 있어서,
    상기 스레드는, 복수의 상기 클라이언트의 아이피 주소 및 포트 번호 중 하나 이상을 포함하는 클라이언트 메타 정보를 상기 복수의 클라이언트에 송신하는, 파일의 분산 저장 시스템.
  6. 청구항 5에 있어서,
    상기 복수의 클라이언트는, 상기 서버의 장애 여부의 판별을 위한 점검 메시지를 설정된 주기마다 상기 스레드에 송신하는, 파일의 분산 저장 시스템.
  7. 청구항 6에 있어서,
    상기 클라이언트는, 설정된 기간 동안 상기 점검 메시지에 대한 응답 메시지를 상기 스레드로부터 수신하지 않는 경우 상기 서버에 장애가 발생한 것으로 판단하며, 상기 서버에 장애가 발생한 것으로 판단된 경우 상기 복수의 클라이언트 중 하나를 대체 서버로 선정하여 상기 서버와의 접속을 종료하며, 상기 대체 서버로 새로운 접속 요청 메시지를 송신하는, 파일의 분산 저장 시스템.
  8. 청구항 7에 있어서,
    상기 클라이언트는, 상기 클라이언트 메타 정보를 이용하여 상기 복수의 클라이언트를 정렬하고, 정렬된 복수의 상기 클라이언트 중 최상단에 위치한 클라이언트를 대체 서버로 선정하는, 파일의 분산 저장 시스템.
  9. 스토리지를 구비하는 클라이언트에서, 상기 스토리지의 적어도 일부를 제공하기 위한 접속 요청 메시지를 생성하는 단계;
    서버에서, 상기 접속 요청 메시지를 수신함에 따라 상기 클라이언트의 접속을 허용하는 단계;
    서버에서, 저장하고자 하는 대상 파일을 분할하는 단계;
    상기 서버에서, 분할된 상기 대상 파일을 복수의 클라이언트 내 스토리지에 분산 저장하는 단계; 및
    상기 서버에서, 상기 접속된 상기 클라이언트의 수가 기 설정된 값을 초과하는 경우, GPU(graphic processing unit)를 동작시켜 병렬 연산(parallel computing) 처리를 수행하는 단계를 포함하며,
    상기 기 설정된 값은, 상기 서버가 동일한 개수의 클라이언트에 대하여, 상기 GPU를 이용하여 연산 처리를 수행하는 경우가 CPU(central processing unit)을 이용하여 연산 처리를 수행하는 경우보다 연산 처리 속도가 빨라지는 상기 클라이언트의 수에 기초하여 결정되는, 파일의 분산 저장 방법.
  10. 청구항 9에 있어서,
    상기 접속 요청 메시지는, 상기 클라이언트 내 스토리지의 가용 크기, 상기 클라이언트의 아이디, 패스워드, 아이피 주소 및 포트 번호 중 하나 이상을 포함하는, 파일의 분산 저장 방법,
  11. 삭제
  12. 청구항 9에 있어서,
    상기 서버에서, 상기 GPU의 스레드(thread)와 상기 복수의 클라이언트를 각각 매칭하는 단계; 및
    상기 스레드에서, 상기 매칭된 클라이언트에 각각 분산 저장된 상기 대상 파일의 이름, 크기, 소유자, 유형, 저장 위치 및 저장 일자 중 하나 이상을 포함하는 파일 메타 정보를 상기 복수의 클라이언트에 송신하는 단계를 더 포함하는, 파일의 분산 저장 방법.
  13. 청구항 12에 있어서,
    상기 스레드에서, 복수의 상기 클라이언트의 아이피 주소 및 포트 번호 중 하나 이상을 포함하는 클라이언트 메타 정보를 상기 복수의 클라이언트에 송신하는 단계를 더 포함하는, 파일의 분산 저장 방법.
  14. 청구항 13에 있어서,
    상기 클라이언트에서, 상기 서버의 장애 여부의 판별을 위한 점검 메시지를 설정된 주기마다 상기 스레드에 송신하는 단계를 더 포함하는, 파일의 분산 저장 방법.
  15. 청구항 14에 있어서,
    상기 클라이언트에서, 설정된 기간 동안 상기 점검 메시지에 대한 응답 메시지를 상기 스레드로부터 수신하지 않는 경우 상기 서버에 장애가 발생한 것으로 판단하는 단계;
    상기 클라이언트에서, 상기 서버에 장애가 발생한 것으로 판단된 경우 상기 복수의 클라이언트 중 하나를 대체 서버로 선정하여 상기 서버와의 접속을 종료하는 단계; 및
    상기 클라이언트에서, 상기 대체 서버로 새로운 접속 요청 메시지를 송신하는 단계를 더 포함하는, 파일의 분산 저장 방법.
  16. 청구항 15에 있어서,
    상기 종료하는 단계는, 상기 클라이언트 메타 정보를 이용하여 정렬된 복수의 상기 클라이언트 중 최상단에 위치한 클라이언트를 대체 서버로 선정하여 상기 서버와의 접속을 종료하는, 파일의 분산 저장 방법.
KR1020150148774A 2015-10-26 2015-10-26 Gpu를 이용한 파일의 분산 저장 시스템 및 방법 KR101704928B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150148774A KR101704928B1 (ko) 2015-10-26 2015-10-26 Gpu를 이용한 파일의 분산 저장 시스템 및 방법
PCT/KR2016/012024 WO2017073988A1 (ko) 2015-10-26 2016-10-25 Gpu를 이용한 파일의 분산 저장 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150148774A KR101704928B1 (ko) 2015-10-26 2015-10-26 Gpu를 이용한 파일의 분산 저장 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR101704928B1 true KR101704928B1 (ko) 2017-02-08

Family

ID=58155288

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150148774A KR101704928B1 (ko) 2015-10-26 2015-10-26 Gpu를 이용한 파일의 분산 저장 시스템 및 방법

Country Status (2)

Country Link
KR (1) KR101704928B1 (ko)
WO (1) WO2017073988A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190041707A (ko) 2017-10-13 2019-04-23 인천대학교 산학협력단 Gpu를 사용한 실시간 빅 데이터 스트림 처리 장치 및 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111061511A (zh) * 2019-11-22 2020-04-24 腾讯科技(深圳)有限公司 一种服务处理方法、装置及存储介质和服务器
CN113282404A (zh) * 2021-04-07 2021-08-20 广州汇通国信科技有限公司 基于分布式调度的数据关联整合方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100609459B1 (ko) 2003-03-26 2006-08-08 김기환 피투피 방식의 병렬 분산처리시스템 및 방법
KR20120110871A (ko) * 2011-03-30 2012-10-10 주식회사 케이티 분산 파일 시스템의 저장서버 결정 및 검색방법
KR101245994B1 (ko) * 2012-08-31 2013-03-20 케이씨씨시큐리티주식회사 대용량 데이터의 분산 병렬 처리 시스템 및 방법
US8572407B1 (en) * 2011-03-30 2013-10-29 Emc Corporation GPU assist for storage systems

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101346452B1 (ko) * 2008-11-26 2014-01-02 에릭슨 엘지 주식회사 통신망 장애 복구 장치 및 방법
KR101537996B1 (ko) * 2012-10-17 2015-07-23 한국전자통신연구원 트래픽 상황에 따른 cpu와 gpu간의 로드 밸런스를 가지는 침입 탐지 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100609459B1 (ko) 2003-03-26 2006-08-08 김기환 피투피 방식의 병렬 분산처리시스템 및 방법
KR20120110871A (ko) * 2011-03-30 2012-10-10 주식회사 케이티 분산 파일 시스템의 저장서버 결정 및 검색방법
US8572407B1 (en) * 2011-03-30 2013-10-29 Emc Corporation GPU assist for storage systems
KR101245994B1 (ko) * 2012-08-31 2013-03-20 케이씨씨시큐리티주식회사 대용량 데이터의 분산 병렬 처리 시스템 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190041707A (ko) 2017-10-13 2019-04-23 인천대학교 산학협력단 Gpu를 사용한 실시간 빅 데이터 스트림 처리 장치 및 방법

Also Published As

Publication number Publication date
WO2017073988A1 (ko) 2017-05-04

Similar Documents

Publication Publication Date Title
US10079879B2 (en) Weighted rendezvous hashing
US10275184B2 (en) Framework for volatile memory query execution in a multi node cluster
US9542404B2 (en) Subpartitioning of a namespace region
US9378067B1 (en) Automated load balancing across the distributed system of hybrid storage and compute nodes
AU2014212780B2 (en) Data stream splitting for low-latency data access
US8108612B2 (en) Location updates for a distributed data store
CN102880557B (zh) 一种异构数据源的多级分布式高速缓存的查找方法
US9483482B2 (en) Partitioning file system namespace
US8671134B2 (en) Method and system for data distribution in high performance computing cluster
US20160021177A1 (en) Recording medium storing distribution processing program, distribution processing management apparatus and distribution processing method
US8660996B2 (en) Monitoring files in cloud-based networks
US10185743B2 (en) Method and system for optimizing reduce-side join operation in a map-reduce framework
US11706298B2 (en) Multichannel virtual internet protocol address affinity
KR101704928B1 (ko) Gpu를 이용한 파일의 분산 저장 시스템 및 방법
CN1602480A (zh) 管理附装在数据网络上的存储器资源
KR101718397B1 (ko) 파일의 분산 저장 시스템 및 방법
Nishanth et al. CoHadoop++: A load balanced data co-location in Hadoop Distributed File System
KR101679512B1 (ko) 대용량 데이터 처리를 위한 레거시 데스크탑 기반 파일의 분산 저장 시스템 및 방법
JP2014164554A (ja) 負荷分散判定システム
US20150074150A1 (en) Data management via active and inactive table space containers
Oonhawat et al. Hotspot management strategy for real-time log data in MongoDB
CN111294383B (zh) 物联网服务管理系统
KR101980320B1 (ko) Gpu기반의 빅데이터 검색 질의 병렬 분산처리 방법
Nadaph et al. Cloud computing-partitioning algorithm and load balancing algorithm
KR101654969B1 (ko) 가상화 클러스터 환경에서 네임 노드를 할당하는 방법 및 장치

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200120

Year of fee payment: 4