KR101718397B1 - System and method for distributively storing files - Google Patents
System and method for distributively storing files Download PDFInfo
- Publication number
- KR101718397B1 KR101718397B1 KR1020150055119A KR20150055119A KR101718397B1 KR 101718397 B1 KR101718397 B1 KR 101718397B1 KR 1020150055119 A KR1020150055119 A KR 1020150055119A KR 20150055119 A KR20150055119 A KR 20150055119A KR 101718397 B1 KR101718397 B1 KR 101718397B1
- Authority
- KR
- South Korea
- Prior art keywords
- server
- client
- storage
- clients
- file
- Prior art date
Links
Images
Classifications
-
- G06F17/30194—
-
- G06F17/302—
-
- G06F17/30233—
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
파일의 분산 저장 시스템 및 방법이 개시된다. 본 발명의 일 실시예에 따른 파일의 분산 저장 시스템은, 스토리지를 구비하고, 사용자로부터 상기 스토리지의 가용 크기를 입력받아 접속 요청 메시지를 생성하는 복수의 클라이언트; 및 상기 접속 요청 메시지에 따라 상기 클라이언트의 접속을 허용하고, 저장하고자 하는 대상 파일을 분할하며, 분할된 상기 대상 파일을 상기 스토리지의 가용 크기를 초과하지 않는 범위에서 복수의 상기 클라이언트 내 스토리지에 분산 저장하는 서버를 포함한다.A distributed storage system and method for files is disclosed. According to an embodiment of the present invention, there is provided a distributed storage system for a file, comprising: a plurality of clients having a storage, receiving an available size of the storage from a user and generating a connection request message; And distributing the divided target files to a plurality of storage devices in the client in a range that does not exceed an available size of the storage, Lt; / RTI >
Description
본 발명은 파일을 분산 저장하는 기술과 관련된다.
The present invention relates to a technique for distributed storage of files.
빅데이터 시대가 도래함에 따라, 대용량 데이터를 효율적으로 처리하기 위한 방법으로서 하둡 분산 파일 시스템(HDFS: Hadoop Distributed File System) 기술이 사용되고 있다. 하둡 분산 파일 시스템의 경우 파일과 블록, 데이터 노드의 매핑 정보를 관리하는 네임 노드(Namenode), 각 파일을 블록 단위로 여러 장소에 분산 저장하는 데이터 노드(Datanode) 및 파일 백업을 위한 백업 노드(Backupnode)를 이용하여 데이터를 분산 저장한다. 그러나, 종래 기술에 따르면 네임 노드 및 백업 노드 모두에서 장애가 발생한 경우 데이터 노드에 저장된 파일들이 무용지물이 되는 문제점이 있었다. 또한, 종래 기술에 따르면, 사용자의 파일이 어디에 저장되어 있는지 여부를 알 수 없어 저장된 파일에 대한 손실 위험이 있었으며, 파일 메타 정보를 중앙 서버에서 관리함에 따라 서버의 다운 등과 같은 장애 발생시 이에 대한 대처가 어려운 문제점이 있었다.
As the age of big data comes, Hadoop Distributed File System (HDFS) technology is being used as a method for efficiently processing large amounts of data. In the case of the Hadoop distributed file system, Namenode manages mapping information of files, blocks, and data nodes. Datanode distributes each file in several places in block units. Backupnode (Backupnode) ) To distribute the data. However, according to the related art, there is a problem in that, when a failure occurs in both the name node and the backup node, the files stored in the data node become useless. In addition, according to the related art, there is a risk of loss of the stored file because the user can not know where the file is stored. When the file meta information is managed by the central server, a countermeasure There was a difficult problem.
본 발명의 실시예들은 클라이언트 내 스토리지에 대상 파일을 효율적으로 분산 저장하기 위한 수단을 제공하기 위한 것이다.
Embodiments of the present invention are intended to provide a means for efficiently distributing destination files to storage in a client.
본 발명의 예시적인 실시예에 따르면, 스토리지를 구비하고, 사용자로부터 상기 스토리지의 가용 크기를 입력받아 접속 요청 메시지를 생성하는 복수의 클라이언트; 및 상기 접속 요청 메시지에 따라 상기 클라이언트의 접속을 허용하고, 저장하고자 하는 대상 파일을 분할하며, 분할된 상기 대상 파일을 상기 스토리지의 가용 크기를 초과하지 않는 범위에서 복수의 상기 클라이언트 내 스토리지에 분산 저장하는 서버를 포함하는, 파일의 분산 저장 시스템이 제공된다.According to an exemplary embodiment of the present invention, there is provided a storage system comprising: a plurality of clients having a storage, receiving an available size of the storage from a user and generating a connection request message; And distributing the divided target files to a plurality of storage devices in the client in a range that does not exceed an available size of the storage, A distributed storage system of files is provided.
상기 접속 요청 메시지는, 상기 클라이언트 내 스토리지의 가용 크기, 상기 클라이언트의 아이디, 패스워드, 아이피 주소 및 포트 번호 중 하나 이상을 포함할 수 있다.The connection request message may include at least one of an available size of the storage in the client, an ID, a password, an IP address, and a port number of the client.
상기 서버는, 상기 클라이언트 내 스토리지의 가용 크기 중 상기 클라이언트 내 스토리지에 저장된 상기 대상 파일의 크기를 제외한 나머지 크기에 해당하는 더미 파일(dummy file)을 생성하여 상기 클라이언트 내 스토리지에 저장할 수 있다.The server may generate a dummy file corresponding to the remaining size of the available storage size of the client, excluding the size of the target file stored in the storage in the client, and store the dummy file in the client storage.
상기 서버는, 분산 저장된 상기 대상 파일의 이름, 크기, 소유자, 유형, 저장 위치 및 저장 일자 중 하나 이상을 포함하는 파일 메타 정보를 상기 클라이언트 각각에 송신할 수 있다.The server may transmit to each of the clients file meta information including at least one of a name, a size, an owner, a type, a storage location and a storage date of the object file distributed and stored.
상기 서버는, 복수의 상기 클라이언트의 아이피 주소를 상기 클라이언트 각각에 송신할 수 있다.The server may transmit the IP addresses of the plurality of clients to each of the clients.
상기 클라이언트는, 상기 서버의 장애 여부의 판별을 위한 점검 메시지를 설정된 주기마다 상기 서버에 송신할 수 있다.The client may transmit an inspection message for determining whether the server has failed, to the server at a set interval.
상기 클라이언트는, 설정된 기간 동안 상기 점검 메시지에 대한 응답 메시지를 상기 서버로부터 수신하지 않는 경우 상기 서버에 장애가 발생한 것으로 판단할 수 있다.The client can determine that a failure has occurred in the server if the server does not receive a response message to the check message during the set period of time.
상기 클라이언트는, 상기 서버에 장애가 발생한 것으로 판단되는 경우 복수의 상기 클라이언트 중 하나를 대체 서버로 선정하여 상기 서버와의 접속을 종료하며, 상기 대체 서버로 새로운 접속 요청 메시지를 송신할 수 있다.The client can select one of the clients as an alternative server to terminate the connection with the server and transmit a new connection request message to the alternative server when it is determined that the server has failed.
상기 클라이언트는, 복수의 상기 클라이언트의 아이피 주소를 크기 순으로 정렬하고, 정렬된 복수의 상기 클라이언트의 아이피 주소 중 최상단 또는 최하단에 위치한 아이피 주소에 대응되는 클라이언트를 상기 대체 서버로 선정할 수 있다.The client may sort the IP addresses of the plurality of clients in order of magnitude and select a client corresponding to an IP address located at the top or bottom of the aligned IP addresses of the clients as the alternative server.
상기 대체 서버는, 상기 대체 서버에 저장된 대상 파일을 상기 대체 서버를 제외한 클라이언트 내 스토리지에 저장할 수 있다.The alternative server may store a target file stored in the alternative server in a storage in a client other than the alternative server.
상기 대체 서버는, 상기 파일 메타 정보를 업데이트하며, 업데이트된 상기 파일 메타 정보를 상기 대체 서버를 제외한 클라이언트 각각에 송신할 수 있다.The alternative server may update the file meta information and transmit the updated file meta information to each of the clients except for the alternative server.
본 발명의 다른 예시적인 실시예에 따르면, 스토리지를 구비하는 클라이언트에서, 사용자로부터 상기 스토리지의 가용 크기를 입력받아 접속 요청 메시지를 생성하는 단계; 서버에서, 상기 접속 요청 메시지에 따라 상기 클라이언트의 접속을 허용하는 단계; 상기 서버에서, 저장하고자 하는 대상 파일을 분할하는 단계; 및 상기 서버에서, 분할된 상기 대상 파일을 상기 스토리지의 가용 크기를 초과하지 않는 범위에서 복수의 상기 클라이언트 내 스토리지에 분산 저장하는 단계를 포함하는, 파일의 분산 저장 방법이 제공된다.According to another exemplary embodiment of the present invention, there is provided a storage method comprising the steps of: generating, in a client having a storage, a connection request message inputting a usable size of the storage from a user; Allowing the server to access the client in accordance with the connection request message; Dividing a target file to be stored in the server; And distributing, in the server, distributed distribution of the target file to a plurality of the in-client storage in a range not exceeding an available size of the storage.
상기 접속 요청 메시지는, 상기 클라이언트 내 스토리지의 가용 크기, 상기 클라이언트의 아이디, 패스워드, 아이피 주소 및 포트 번호 중 하나 이상을 포함할 수 있다.The connection request message may include at least one of an available size of the storage in the client, an ID, a password, an IP address, and a port number of the client.
상기 파일의 분산 저장 방법은, 상기 서버에서, 상기 클라이언트 내 스토리지의 가용 크기 중 상기 클라이언트 내 스토리지에 저장된 상기 대상 파일의 크기를 제외한 나머지 크기에 해당하는 더미 파일(dummy file)을 생성하여 상기 클라이언트 내 스토리지에 저장하는 단계를 더 포함할 수 있다.The distributed storage method of a file may further include a step of creating a dummy file corresponding to a remaining size of the available storage size of the storage in the client except for the size of the target file stored in the storage in the client, And storing the data in the storage.
상기 파일의 분산 저장 방법은, 상기 서버에서, 분산 저장된 상기 대상 파일의 이름, 크기, 소유자, 유형, 저장 위치 및 저장 일자 중 하나 이상을 포함하는 파일 메타 정보를 상기 클라이언트 각각에 송신하는 단계를 더 포함할 수 있다.The distributed storage method of the file may further include transmitting to each of the clients file meta information including at least one of a name, a size, an owner, a type, a storage location, and a storage date of the target file distributed and stored in the server .
상기 파일의 분산 저장 방법은, 상기 서버에서, 복수의 상기 클라이언트의 아이피 주소를 상기 클라이언트 각각에 송신하는 단계를 더 포함할 수 있다.The distributed storage method of the file may further include transmitting, in the server, the IP addresses of the plurality of clients to each of the clients.
상기 파일의 분산 저장 방법은, 상기 클라이언트에서, 상기 서버의 장애 여부의 판별을 위한 점검 메시지를 설정된 주기마다 상기 서버에 송신하는 단계를 더 포함할 수 있다.The distributed storage method of the file may further include, in the client, transmitting a check message for determining whether the server has failed, to the server at a predetermined interval.
상기 파일의 분산 저장 방법은, 상기 클라이언트에서, 설정된 기간 동안 상기 점검 메시지에 대한 응답 메시지를 상기 서버로부터 수신하지 않는 경우 상기 서버에 장애가 발생한 것으로 판단하는 단계를 더 포함할 수 있다.The distributed storage method of the file may further include determining that a failure has occurred in the server when the client does not receive a response message for the check message during the set period from the server.
상기 파일의 분산 저장 방법은, 상기 클라이언트에서, 상기 서버에 장애가 발생한 것으로 판단되는 경우 복수의 상기 클라이언트 중 하나를 대체 서버로 선정하여 상기 서버와의 접속을 종료하는 단계; 및 상기 대체 서버로 새로운 접속 요청 메시지를 송신하는 단계를 더 포함할 수 있다.The distributed storage method of the file may include the steps of selecting, by the client, one of the plurality of clients as an alternative server and terminating the connection with the server when it is determined that the server has failed. And transmitting a new connection request message to the alternative server.
복수의 상기 클라이언트 중 하나를 대체 서버로 선정하여 상기 서버와의 접속을 종료하는 단계는, 복수의 상기 클라이언트의 아이피 주소를 크기 순으로 정렬하고, 정렬된 복수의 상기 클라이언트의 아이피 주소 중 최상단 또는 최하단에 위치한 아이피 주소에 대응되는 클라이언트를 상기 대체 서버로 선정할 수 있다.Wherein the step of selecting one of the plurality of clients as an alternative server and terminating the connection with the server comprises the steps of sorting the IP addresses of the plurality of clients in order of size and selecting the uppermost or lowermost The client corresponding to the IP address located in the alternative server can be selected as the alternative server.
상기 파일의 분산 저장 방법은, 상기 대체 서버에서, 상기 대체 서버에 저장된 대상 파일을 상기 대체 서버를 제외한 클라이언트 내 스토리지에 저장하는 단계를 더 포함할 수 있다.The distributed storage method of the file may further include, in the alternative server, storing the target file stored in the alternative server in a storage in the client other than the alternative server.
상기 파일의 분산 저장 방법은, 상기 대체 서버에서, 상기 파일 메타 정보를 업데이트하는 단계; 및 업데이트된 상기 파일 메타 정보를 상기 대체 서버를 제외한 클라이언트 각각에 송신하는 단계를 더 포함할 수 있다.
The distributed storage method of the file may include: updating the file meta information in the alternative server; And transmitting the updated file meta information to each of the clients except for the alternative server.
본 발명의 실시예들에 따르면, 각 클라이언트 내 스토리지에 대상 파일을 분산 저장하도록 함으로써, 스토리지 자원을 효율적으로 이용하고 파일 저장에 따른 비용을 절감할 수 있다. 또한, 대상 파일을 로컬 영역에 저장하도록 함으로써, 대상 파일의 유출 위험을 방지할 수 있다. 나아가, 서버에 장애가 발생하는 경우 각 클라이언트 중 하나를 대체 서버로 선정하도록 함으로써, 대상 파일을 유연하고 안전하게 저장할 수 있다.
According to the embodiments of the present invention, the target files are distributedly stored in the respective storage units in the respective clients, so that the storage resources can be efficiently used and the cost for file storage can be reduced. In addition, by storing the target file in the local area, the risk of leakage of the target file can be prevented. Furthermore, if a server fails, one of each client is selected as an alternate server, allowing the target file to be stored flexibly and securely.
도 1은 본 발명의 일 실시예에 따른 파일의 분산 저장 시스템의 상세 구성을 나타낸 도면
도 2는 본 발명의 일 실시예에 따른 파일 메타 정보의 예시를 나타낸 도면
도 3은 본 발명의 일 실시예에 따른 클라이언트 메타 정보의 예시를 나타낸 도면
도 4는 서버에 장애가 발생하여 각 클라이언트와 서버와의 접속이 종료되는 과정을 설명하기 위한 도면
도 5는 각 클라이언트의 아이피 주소를 이용하여 대체 서버를 선정하는 과정을 설명하기 위한 도면
도 6은 본 발명의 일 실시예에 따른 파일의 분산 저장 방법을 설명하기 위한 흐름도
도 7은 도 6의 S612 단계를 설명하기 위한 흐름도1 is a block diagram showing a detailed configuration of a file distributed storage system according to an embodiment of the present invention;
2 is a diagram illustrating an example of file meta information according to an embodiment of the present invention;
3 is a diagram illustrating an example of client meta information according to an embodiment of the present invention.
4 is a diagram for explaining a process of terminating a connection between each client and a server due to a failure in the server
5 is a diagram for explaining a process of selecting an alternative server using IP addresses of respective clients
6 is a flowchart illustrating a method of distributing and storing files according to an embodiment of the present invention.
FIG. 7 is a flowchart for explaining the step S612 of FIG.
이하, 도면을 참조하여 본 발명의 구체적인 실시예를 설명하기로 한다. 그러나 이는 예시적 실시예에 불과하며 본 발명은 이에 한정되지 않는다.Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. However, this is an exemplary embodiment only and the present invention is not limited thereto.
본 발명을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In the following description, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The following terms are defined in consideration of the functions of the present invention, and may be changed according to the intention or custom of the user, the operator, and the like. Therefore, the definition should be based on the contents throughout this specification.
본 발명의 기술적 사상은 청구범위에 의해 결정되며, 이하 실시예는 진보적인 본 발명의 기술적 사상을 본 발명이 속하는 기술분야에서 통상의 지식을 가진자에게 효율적으로 설명하기 위한 일 수단일 뿐이다.
The technical idea of the present invention is determined by the claims, and the following embodiments are merely a means for efficiently describing the technical idea of the present invention to a person having ordinary skill in the art to which the present invention belongs.
도 1은 본 발명의 일 실시예에 따른 파일의 분산 저장 시스템(100)의 상세 구성을 나타낸 도면이다. 도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 파일의 분산 저장 시스템(100)은 서버(102) 및 복수의 클라이언트(104)를 포함한다.FIG. 1 is a diagram illustrating a detailed configuration of a file
서버(102)는 사용자 또는 서버 관리자가 저장하고자 하는 대상 파일 및 대상 파일이 저장되는 클라이언트(104) 내 스토리지를 관리하기 위한 장치로서, 예를 들어 데스크탑, 노트북, 태블릿 컴퓨터, PDA 등과 같은 전자 기기가 될 수 있다. 대상 파일은 예를 들어, 텍스트 파일, 동영상 파일, 이미지 파일 등이 될 수 있으나 대상 파일의 종류가 특별히 제한되는 것은 아니다.The
서버 관리자는 서버(102)의 아이피 주소 및 포트 번호를 입력하여 서버(102)를 실행시킬 수 있으며, 청크 사이즈(chunk size)를 설정할 수 있다. 청크 사이즈는 대상 파일이 분할되었을 때 분할된 대상 파일 각각의 크기를 의미하며, 예를 들어 64MB가 될 수 있다.The server administrator can execute the
서버(102)는 클라이언트(104)로부터 접속 요청 메시지를 수신할 수 있으며, 접속 요청 메시지를 이용하여 클라이언트(104)의 접속을 허용할 수 있다. 접속 요청 메시지는 클라이언트(104)의 아이디, 패스워드, 아이피 주소 및 포트 번호 중 하나 이상을 포함할 수 있다. 서버(102)는 예를 들어, 접속 요청 메시지에 포함된 아이디 및 패스워드를 인증함으로써 클라이언트(104)의 접속을 허용할 수 있다. 또한, 아이디 및 패스워드는 각 클라이언트(104-1 내지 104-n)의 고유 식별 정보로서, 복수의 클라이언트(104-1 내지 104-n) 중 일부가 서버(102)와의 접속이 끊겼다 다시 접속된 경우 해당 클라이언트를 식별하는 데 사용될 수 있다. 만약, 복수의 클라이언트(104-1 내지 104-n) 중 일부와 서버(102)와의 접속이 끊긴 경우, 서버(102)는 접속이 끊긴 클라이언트 내 스토리지에 저장된 대상 파일을 다른 클라이언트 내 스토리지에 저장하기 위해 해당 대상 파일을 어느 곳에 저장을 할 것인지에 대한 연산을 수행하여야 하는 번거로움이 있으나, 접속이 끊긴 클라이언트가 서버(102)에 재접속하는 경우 해당 클라이언트의 아이디 및 패스워드를 통해 해당 클라이언트 내 스토리지에 저장된 대상 파일의 존재를 신속하게 파악할 수 있다. 이 경우, 서버(102)는 파일 메타 정보를 수정할 필요가 없게 된다.The
또한, 접속 요청 메시지에는 클라이언트(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)로부터 청크 사이즈에 대한 정보를 수신할 수 있으며, 사용자가 입력한 스토리지 가용 크기가 청크 사이즈보다 작은 경우 사용자로 하여금 스토리지 가용 크기를 재입력하도록 알림 메시지를 출력할 수 있다.In addition, the connection request message may further include an available size of the storage (not shown) in the
서버(102)는 설정된 청크 사이즈에 따라 대상 파일을 분할하고, 분할된 대상 파일을 각 클라이언트(104-1 내지 104-n) 내 스토리지의 가용 크기를 초과하지 않는 범위에서 각 클라이언트(104-1 내지 104-n) 내 스토리지에 분산 저장할 수 있다. 예를 들어, 대상 파일의 크기가 10GB이며 청크 사이즈가 64MB인 경우, 서버(102)는 대상 파일을 64MB의 크기를 갖는 160개의 파일로 분할하고, 분할된 대상 파일 160개를 각 클라이언트(104-1 내지 104-n) 내 스토리지의 가용 크기를 초과하지 않는 범위에서 각 클라이언트(104-1 내지 104-n) 내 스토리지에 분산 저장할 수 있다. The
이때, 서버(102)는 클라이언트(104) 내 스토리지의 가용 크기 중 클라이언트(104) 내 스토리지에 저장된 대상 파일의 크기를 제외한 나머지 크기에 해당하는 더미 파일(dummy file)을 생성하여 클라이언트(104) 내 스토리지에 저장할 수 있다. 예를 들어, 제 1 클라이언트(104-1) 내 스토리지의 가용 크기가 5GB이며 제 1 클라이언트(104-1) 내 스토리지에 저장된 대상 파일의 크기가 3GB인 경우, 서버(102)는 2GB의 더미 파일을 생성하여 제 1 클라이언트(104-1) 내 스토리지에 저장할 수 있다. 이에 따라, 스토리지의 가용 크기(5GB)에 해당하는 저장 공간을 대상 파일의 저장에만 사용할 수 있으며, 사용자로 인해 스토리지의 가용 크기(5GB)에 해당하는 저장 공간이 침해되는 것을 방지할 수 있다.At this time, the
또한, 서버(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)로부터 대상 파일을 호출할 수 있으며, 대상 파일의 유실을 방지할 수 있다.In addition, the
다음으로, 서버(102)는 파일 메타 정보를 각 클라이언트(104-1 내지 104-n)에 송신할 수 있다. 파일 메타 정보는 예를 들어, 분산 저장된 대상 파일의 이름, 크기, 소유자, 유형, 저장 위치 및 저장 일자 중 하나 이상을 포함할 수 있다. 서버(102)는 파일 메타 정보를 관리하며, 파일 메타 정보에 변경이 발생할 경우(예를 들어, 대상 파일의 저장 위치가 변경되거나 대상 파일이 추가된 경우 등) 이를 업데이트할 수 있다. 서버(102)는 파일 메타 정보를 업데이트할 때마다 각 클라이언트(104-1 내지 104-n)에 업데이트된 파일 메타 정보를 송신할 수 있다. 또한, 서버(102)는 설정된 주기마다(예를 들어, 하루에 한 번) 파일 메타 정보를 각 클라이언트(104-1 내지 104-n)에 송신할 수도 있다. 파일 메타 정보에 대해서는 도 2를 참조하여 구체적으로 후술하기로 한다.Next, the
또한, 서버(102)는 클라이언트 메타 정보를 각 클라이언트(104-1 내지 104-n)에 송신할 수 있다. 클라이언트 메타 정보는 예를 들어, 각 클라이언트(104-1 내지 104-n)의 아이피 주소 및 포트 번호를 포함하는 리스트 형태로 이루어질 수 있다. 서버(102)는 클라이언트(104)가 서버(102)에 접속할 때마다 해당 클라이언트(104)의 아이피 주소 및 포트 정보를 클라이언트 메타 정보에 추가함으로써 클라이언트 메타 정보를 업데이트할 수 있다. 서버(102)는 클라이언트 메타 정보를 업데이트할 때마다 각 클라이언트(104-1 내지 104-n)에 업데이트된 클라이언트 메타 정보를 송신할 수 있다. 또한, 서버(102)는 설정된 주기마다(예를 들어, 하루에 한 번) 클라이언트 메타 정보를 각 클라이언트(104-1 내지 104-n)에 송신할 수 있다. 클라이언트 메타 정보에 대해서는 도 3을 참조하여 구체적으로 후술하기로 한다.In addition, the
또한, 서버(102)는 각 클라이언트(104-1 내지 104-n)로부터 점검 메시지를 수신할 수 있으며, 각 클라이언트(104-1 내지 104-n)는 점검 메시지를 이용하여 서버(102)의 장애 여부를 판단할 수 있다. 이때, 각 클라이언트(104-1 내지 104-n)는 서버(102)로부터 수신한 클라이언트 메타 정보를 이용하여 복수의 클라이언트(104-1 내지 104-n) 중 하나를 대체 서버로 선정할 수 있다. 이에 대해서는 도 4 및 도 5를 참조하여 구체적으로 후술하기로 한다.In addition, the
클라이언트(104)는 대상 파일의 저장 공간을 제공하는 장치로서, 예를 들어 학교, 연구소, 기업 등에서 사용되는 데스크탑, 노트북, 태블릿 컴퓨터, PDA 등과 같은 전자 기기가 될 수 있다. 일반적으로, 학교, 연구소, 기업 등에서 사용되는 데스크탑은 항상 부팅되어 있는 반면에 내부의 스토리지의 이용율이 매주 낮거나 저조하다. 이에 따라, 본 발명의 실시예들에서는 클라우드 서버 내 스토리지가 아닌 클라이언트(104) 내 스토리지에 대상 파일을 저장할 수 있도록 하였다. 클라이언트(104)는 일상적인 데스크탑 용도로 활용됨과 동시에, 스토리지 자원의 일부로서 사용될 수 있다.The
클라이언트(104)는 사용자로부터 스토리지의 가용 크기 및 위치를 입력받아 접속 요청 메시지를 생성할 수 있다. 상술한 바와 같이, 접속 요청 메시지는 클라이언트(104) 내 스토리지의 가용 크기, 클라이언트(104) 내 스토리지의 위치, 클라이언트(104)의 아이디, 패스워드, 아이피 주소 및 포트 번호 중 하나 이상을 포함할 수 있다. 서버(102)는 클라이언트(104)로부터 수신한 접속 요청 메시지에 따라 클라이언트(104)의 접속을 허용할 수 있으며, 대상 파일을 각 클라이언트(104-1 내지 104-n) 내 스토리지에 분산 저장할 수 있다. 이때, 클라이언트(104) 내 스토리지에 분산 저장된 대상 파일의 크기는 사용자가 설정한 해당 클라이언트(104) 내 스토리지의 가용 크기를 초과하지 않는다. 또한, 서버(102)는 클라이언트(104) 내 스토리지의 가용 크기 중 클라이언트(104) 내 스토리지에 저장된 대상 파일의 크기를 제외한 나머지 크기에 해당하는 더미 파일을 생성하여 해당 클라이언트(104) 내 스토리지에 저장할 수 있으며, 이에 따라 사용자로 인해 스토리지의 가용 크기에 해당하는 저장 공간이 침해되는 것을 방지할 수 있다.The
또한, 클라이언트(104)는 서버(102)로부터 파일 메타 정보를 수신할 수 있으며, 이에 따라 클라이언트(104)는 분할된 대상 파일 각각의 저장 위치, 저장 일자 등을 알 수 있다. In addition, the
또한, 클라이언트(104)는 서버(102)로부터 클라이언트 메타 정보를 수신할 수 있으며, 이에 따라 서버(102)에 장애가 발생하는 경우 클라이언트 메타 정보를 이용하여 복수의 클라이언트(104-1 내지 104-n) 중 하나를 대체 서버로 선정할 수 있다.In addition, the
구체적으로, 클라이언트(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)에서 장애가 발생된 것으로 판단되는 경우 우선 순위가 가장 높은 클라이언트를 대체 서버로 선정할 수도 있다.Specifically, the
대체 서버(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)에 장애가 발생한 것으로 판단할 수 있다.The substitute server 104-1 can store the target file stored in the substitute server 104-1 in the storage in the clients 104-2 to 104-n except for the substitute server 104-1, ) To perform the same function. Alternate server 102-1 may update the file meta information and send the updated file meta information to each client 104-2 through 104-n except for alternate server 102-1. Also, each of the clients 104-2 to 104-n can transmit a check message to the alternative server 102-1 every set period, and transmits a response message to the alternative server 102-1, It can be determined that a failure has occurred in the alternative server 102-1.
본 발명의 실시예들에 따르면, 각 클라이언트(104-1 내지 104-n) 내 스토리지에 대상 파일을 분산 저장하도록 함으로써, 스토리지 자원을 효율적으로 이용하고 파일 저장에 따른 비용을 절감할 수 있다. 또한, 대상 파일을 로컬 영역에 저장하도록 함으로써, 대상 파일의 유출 위험을 방지할 수 있다. 나아가, 서버(102)에 장애가 발생하는 경우 각 클라이언트(104-1 내지 104-n) 중 하나를 대체 서버로 선정하도록 함으로써, 대상 파일을 유연하고 안전하게 저장할 수 있다.
According to the embodiments of the present invention, the target files are distributedly stored in the respective storages in the clients 104-1 to 104-n, so that the storage resources can be efficiently used and the cost for file storage can be reduced. In addition, by storing the target file in the local area, the risk of leakage of the target file can be prevented. Furthermore, when a failure occurs in the
도 2는 본 발명의 일 실시예에 따른 파일 메타 정보의 예시를 나타낸 도면이다. 도 2 및 아래 표 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 파일 메타 정보는 분산 저장된 대상 파일의 이름(name), 크기(size), 소유자(owner), 유형 또는 종류(type), 저장 위치(location) 및 저장 일자(date) 중 하나 이상을 포함할 수 있다. 상기 저장 위치(location)는 분할된 대상 파일 별 인덱스(index), 분할된 대상 파일이 저장된 위치(pil), 분할된 대상 파일 별 고유 이름(sfn) 등을 포함할 수 있다. 또한, 상기 분할된 대상 파일이 저장된 위치(pil)는 분할된 대상 파일의 중복 저장 위치(rdl) 및 분할된 대상 파일의 중복 저장 횟수(count) 등을 포함할 수 있다.
2 is a diagram illustrating an example of file meta information according to an embodiment of the present invention. As shown in FIG. 2 and Table 1 below, the file meta information according to an embodiment of the present invention includes a name, a size, an owner, a type, or a type of a distributed stored target file. , A storage location, and a storage date (date). The storage location may include an index for each of the divided target files, a location where the divided target files are stored (pil), a distinguished name (sfn) for the divided target files, and the like. In addition, the location (pil) where the divided target file is stored may include a redundant storage location rdl of the divided target file and a number of times of storing the divided target file.
(path information list)battery
(path information list)
(split file name)sfn
(split file name)
(redundant data location)rdl
(redundant data location)
도 3은 본 발명의 일 실시예에 따른 클라이언트 메타 정보의 예시를 나타낸 도면이다. 도 3 및 아래 표 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 클라이언트 메타 정보는 클라이언트(104)의 아이피 주소(ip), 포트 번호(port), 클라이언트(104) 내 스토리지의 위치(path), 대상 파일의 저장 및 복제에 관련된 작업 정보 상태(ji), 클라이언트(104) 내 스토리지의 정보(si) 및 클라이언트(104)의 CPU 및 메모리의 점유율 상태 정보(hi) 중 하나 이상을 포함할 수 있다. 상기 대상 파일의 저장 및 복제에 관련된 작업 정보 상태(ji)는 대상 파일의 저장, 복제 등의 작업의 동작, 대기, 중지 등을 나타내는 작업 상태 정보(state) 및 동작 중인 작업과 대기 중인 작업을 포함하는 총 작업의 수(count)를 포함할 수 있다. 또한, 상기 클라이언트(104) 내 스토리지의 정보(si)는 클라이언트(104) 내 스토리지의 총 가용 크기(as), 현재 사용 가능한 잔여 스토리지의 크기(rs) 및 현재 사용 중인 스토리지의 크기(us) 등을 포함할 수 있다. 또한, 클라이언트(104)의 CPU 및 메모리의 점유율 상태 정보(hi)는 클라이언트(104)의 CPU 사용량 및 클라이언트(104)의 메모리 사용량을 포함할 수 있다.
3 is a diagram illustrating an example of client meta information according to an embodiment of the present invention. As shown in FIG. 3 and Table 2 below, the client meta information according to an embodiment of the present invention includes an IP address (ip) of a
(job information)ji
(job information)
(storage information)si
(storage information)
(host information)hi
(host information)
(allow size)as
(allow size)
(residual size)rs
(residual size)
(usage size)us
(usage size)
도 4는 서버(102)에 장애가 발생하여 각 클라이언트(104-1, 104-2, 104-3, 104-4)와 서버와의 접속이 종료되는 과정을 설명하기 위한 도면이다. 도 4 및 도 5에서는 설명의 편의상 4개의 클라이언트(104-1, 104-2, 104-3, 104-4)가 서버(102)와 접속되어 있는 것으로 가정하여 설명하기로 한다. 도 4에 도시된 바와 같이, 각 클라이언트(104-1, 104-2, 104-3, 104-4)는 서버(102)의 장애 여부 판별을 위한 점검 메시지를 설정된 주기마다 서버(102)에 송신할 수 있다. 각 클라이언트(104-1, 104-2, 104-3, 104-4)는 설정된 기간 동안 점검 메시지에 대한 응답 메시지를 서버(102)로부터 수신하지 않는 경우 서버(102)에 장애가 발생한 것으로 판단할 수 있다. 만약, 서버에 장애가 발생한 것으로 판단되는 경우 각 클라이언트(104-1, 104-2, 104-3, 104-4)는 서버(102)와의 접속을 종료할 수 있다.
4 is a diagram for explaining a process of terminating the connection between each client 104-1, 104-2, 104-3, and 104-4 and the server when a failure occurs in the
도 5는 각 클라이언트(104-1, 104-2, 104-3, 104-4)의 아이피 주소를 이용하여 대체 서버(104-1)를 선정하는 과정을 설명하기 위한 도면이다. 도 4에서 서버에 장애가 발생한 것으로 판단되는 경우, 각 클라이언트(104-1, 104-2, 104-3, 104-4)는 각 클라이언트(104-1, 104-2, 104-3, 104-4)의 아이피 주소를 주소를 크기 순으로 정렬하고, 정렬된 각 클라이언트(104-1, 104-2, 104-3, 104-4)의 아이피 주소 중 최상단(또는 최하단)에 위치한 아이피 주소(210.94.185.156)에 대응되는 제 1 클라이언트(104-1)를 대체 서버로 선정할 수 있다. FIG. 5 is a diagram for explaining a process of selecting an alternative server 104-1 using the IP addresses of the clients 104-1, 104-2, 104-3, and 104-4. If it is determined in FIG. 4 that a failure has occurred in the server, each of the clients 104-1, 104-2, 104-3, and 104-4 transmits a request to each of the clients 104-1, 104-2, 104-3, 104-4 The IP addresses of the clients 104-1, 104-2, 104-3, and 104-4 are arranged in the order of their addresses, and the IP addresses 210.94. 185.156) can be selected as an alternative server.
이에 따라, 제 2 클라이언트(104-2), 제 3 클라이언트(104-3) 및 제 4 클라이언트(104-4)는 대체 서버(104-1)로의 접속을 시도한다. 즉, 제 2 클라이언트(104-2), 제 3 클라이언트(104-3) 및 제 4 클라이언트(104-4)는 새로운 접속 요청 메시지를 생성하고 이를 대체 서버(104-1)로 송신한다. 접속 요청 메시지에는 클라이언트 내 스토리지의 가용 크기, 클라이언트의 아이디, 패스워드, 아이피 주소 및 포트 번호가 포함될 수 있다. 대체 서버(104-1)는 접속 요청 메시지에 따라 제 2 클라이언트(104-2), 제 3 클라이언트(104-3) 및 제 4 클라이언트(104-4)의 접속을 허용하며, 대체 서버(104-1)에 저장된 대상 파일을 제 2 클라이언트(104-2), 제 3 클라이언트(104-3) 및 제 4 클라이언트(104-4) 중 하나 이상에 저장할 수 있다. Accordingly, the second client 104-2, the third client 104-3, and the fourth client 104-4 attempt to connect to the alternative server 104-1. That is, the second client 104-2, the third client 104-3, and the fourth client 104-4 generate a new connection request message and transmit it to the substitute server 104-1. The access request message may include the available size of the storage in the client, the ID of the client, the password, the IP address, and the port number. The substitute server 104-1 permits the connection of the second client 104-2, the third client 104-3 and the fourth client 104-4 in accordance with the connection request message, and the substitute server 104- 1) may be stored in one or more of the second client 104-2, the third client 104-3, and the fourth client 104-4.
이후, 대체 서버(104-1)는 서버(102)와 동일한 기능을 수행할 수 있다. 즉, 대체 서버(104-1)는 파일 메타 정보를 업데이트하고, 업데이트된 파일 메타 정보를 대체 서버(104-1)를 제외한 제 2 클라이언트(104-2), 제 3 클라이언트(104-3) 및 제 4 클라이언트(104-4)에 송신할 수 있다. 또한, 대체 서버(104-1)는 클라이언트 메타 정보를 업데이트하고, 업데이트된 클라이언트 메타 정보를 대체 서버(104-1)를 제외한 클라이언트에 송신할 수 있다. 나아가, 제 2 클라이언트(104-2), 제 3 클라이언트(104-3) 및 제 4 클라이언트(104-4)는 설정된 주기마다 대체 서버(104-1)로 점검 메시지를 송신할 수 있으며, 설정된 기간 동안 점검 메시지에 대한 응답 메시지를 대체 서버(104-1)로부터 수신하지 않는 경우 대체 서버(104-1)에 장애가 발생한 것으로 판단할 수 있다.
Subsequently, the substitute server 104-1 may perform the same function as the
도 6은 본 발명의 일 실시예에 따른 파일의 분산 저장 방법을 설명하기 위한 흐름도이다. 6 is a flowchart illustrating a method of distributing and storing files according to an embodiment of the present invention.
먼저, 클라이언트(104)는 사용자로부터 스토리지의 가용 크기를 입력받아 접속 요청 메시지를 생성한다(S602). 상술한 바와 같이, 접속 요청 메시지는 클라이언트(104) 내 스토리지의 가용 크기, 클라이언트(104)의 아이디, 패스워드, 아이피 주소 및 포트 번호 중 하나 이상을 포함할 수 있다.First, the
다음으로, 서버(102)는 클라이언트(104)로부터 수신한 접속 요청 메시지에 따라 클라이언트(104)의 접속을 허용한다(S604). 서버(102)는 예를 들어, 접속 요청 메시지에 포함된 아이디 및 패스워드를 인증함으로써 클라이언트(104)의 접속을 허용할 수 있다.Next, the
다음으로, 서버(102)는 대상 파일을 분할한다(S606). 서버(102)는 서버 관리자로부터 청크 사이즈(chunk size)를 입력받고, 대상 파일을 청크 사이즈에 따라 분할할 수 있다. 청크 사이즈는 예를 들어, 예를 들어 64MB가 될 수 있다.Next, the
다음으로, 서버(102)는 분할된 대상 파일을 스토리지의 가용 크기를 초과하지 않는 범위에서 각 클라이언트(104-1 내지 104-n) 내 스토리지에 분산 저장한다(S608). 이때, 서버(102)는 클라이언트(104) 내 스토리지의 가용 크기 중 클라이언트(104) 내 스토리지에 저장된 대상 파일의 크기를 제외한 나머지 크기에 해당하는 더미 파일(dummy file)을 생성하여 클라이언트(104) 내 스토리지에 저장할 수 있다. 예를 들어, 클라이언트(104) 내 스토리지의 가용 크기가 5GB이며 클라이언트(104) 내 스토리지에 저장된 대상 파일의 크기가 3GB인 경우, 서버(102)는 2GB의 더미 파일을 생성하여 클라이언트(104) 내 스토리지에 저장할 수 있다.Next, the
다음으로, 서버(102)는 파일 메타 정보 및 클라이언트 메타 정보를 각 클라이언트(104-1 내지 104-n)에 송신한다(S610). 파일 메타 정보는 예를 들어, 분산 저장된 대상 파일의 이름, 크기, 소유자, 유형, 저장 위치 및 저장 일자 중 하나 이상을 포함할 수 있으며, 클라이언트 메타 정보는 각 클라이언트(104-1 내지 104-n)의 아이피 주소, 포트 번호 등을 포함할 수 있다.Next, the
마지막으로, 각 클라이언트(104-1 내지 104-n)는 점검 메시지를 이용하여 서버(102)의 장애 여부를 판별하고, 대체 서버(104-1)를 선정한다(S612). 이에 대해서는 도 7을 참조하여 구체적으로 설명하기로 한다.
Finally, each of the clients 104-1 to 104-n uses the check message to determine whether the
도 7은 도 6의 S612 단계를 설명하기 위한 흐름도이다.7 is a flowchart for explaining the step S612 of FIG.
먼저, 각 클라이언트(104-1 내지 104-n)는 서버(102)의 장애 여부의 판별을 위한 점검 메시지를 서버(102)에 송신한다(S702).First, each of the clients 104-1 to 104-n transmits an inspection message to the
각 클라이언트(104-1 내지 104-n)는 설정된 기간 동안 점검 메시지에 대한 응답 메시지를 서버(102)로부터 수신하지 않는 경우 서버(102)에 장애가 발생한 것으로 판단한다(S704, S706). 또한, 각 클라이언트(104-1 내지 104-n)는 설정된 기간 동안 점검 메시지에 대한 응답 메시지를 서버(102)로부터 수신하는 경우 서버(102)가 정상 동작하고 있는 것으로 판단한다(S704, S708).Each of the clients 104-1 to 104-n determines that a failure has occurred in the server 102 (S704, S706) if the
만약, 서버(102)에 장애가 발생한 것으로 판단되는 경우, 각 클라이언트(104-1 내지 104-n)는 각 클라이언트(104-1 내지 104-n)의 아이피 주소를 크기 순으로 정렬한다(S710).If it is determined that the
마지막으로, 각 클라이언트(104-1 내지 104-n)는 정렬된 각 클라이언트(104-1 내지 104-n)의 아이피 주소 중 최상단(또는 최하단)에 위치한 아이피 주소에 대응되는 클라이언트(104-1)를 대체 서버로 선정한다(S712). 이후, 대체 서버(104-1)는 대체 서버(104-1)에 저장된 대상 파일을 대체 서버(104-1)를 제외한 클라이언트(104-2 내지 104-n) 내 스토리지에 저장하며, 파일 메타 정보를 업데이트할 수 있다. 대체 서버(104-1)는 서버(102)와 동일한 기능을 수행하도록 동작할 수 있으며, 각 클라이언트(104-2 내지 104-n)는 앞선 S702 단계 내지 S712 단계를 반복할 수 있다.
Finally, each of the clients 104-1 to 104-n is connected to the client 104-1 corresponding to the IP address located at the top (or bottom) of the aligned IP addresses of the clients 104-1 to 104- As an alternative server (S712). Subsequently, the substitute server 104-1 stores the target file stored in the substitute server 104-1 in the storage in the clients 104-2 to 104-n except for the substitute server 104-1, Can be updated. Alternate server 104-1 may operate to perform the same function as
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, I will understand. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by equivalents to the appended claims, as well as the appended claims.
100 : 파일의 분산 저장 시스템
102 : 서버
104 : 클라이언트100: distributed storage system of files
102: Server
104: Client
Claims (22)
상기 접속 요청 메시지에 따라 상기 클라이언트의 접속을 허용하고, 저장하고자 하는 대상 파일을 분할하며, 분할된 상기 대상 파일을 상기 스토리지의 가용 크기를 초과하지 않는 범위에서 복수의 상기 클라이언트 내 스토리지에 분산 저장하는 서버를 포함하며,
상기 서버는, 복수의 상기 클라이언트에 분산 저장된 상기 대상 파일의 이름, 크기, 소유자, 유형, 저장 위치 및 저장 일자 중 하나 이상을 포함하는 파일 메타 정보를 상기 클라이언트 각각에 송신하며,
상기 서버는, 복수의 상기 클라이언트의 아이피 주소를 상기 클라이언트 각각에 송신하며,
상기 클라이언트는, 상기 서버의 장애 여부 판별을 위한 점검 메시지를 설정된 주기마다 상기 서버에 송신하여 설정된 기간 동안 상기 점검 메시지에 대한 응답 메시지를 상기 서버로부터 수신하지 않는 경우 상기 서버에 장애가 발생한 것으로 판단하며, 상기 서버에 장애가 발생한 것으로 판단되는 경우 복수의 상기 클라이언트의 아이피 주소를 크기 순으로 정렬하고, 정렬된 복수의 상기 클라이언트의 아이피 주소 중 최상단 또는 최하단에 위치한 아이피 주소에 대응되는 클라이언트를 대체 서버로 선정하는, 파일의 분산 저장 시스템.
A plurality of clients having storage and receiving an available size of the storage from a user and generating a connection request message; And
Allowing connection of the client according to the connection request message, dividing a target file to be stored, and distributing and storing the divided target files in a plurality of the in-client storages in a range not exceeding the usable size of the storage Server,
The server transmits to each of the clients file meta information including at least one of a name, a size, an owner, a type, a storage location and a storage date of the target file distributed and distributed to a plurality of clients,
The server transmits a plurality of IP addresses of the clients to each of the clients,
Wherein the client transmits an inspection message for discriminating whether or not the server has failed to the server every predetermined period and determines that a failure has occurred in the server when a response message to the inspection message is not received from the server for a predetermined period, If it is determined that a failure has occurred in the server, sorting the IP addresses of the plurality of clients in order of magnitude and selecting a client corresponding to an IP address located at the uppermost or lowermost end of the sorted plurality of clients' , Distributed storage system of files.
상기 접속 요청 메시지는, 상기 클라이언트 내 스토리지의 가용 크기, 상기 클라이언트의 아이디, 패스워드, 아이피 주소 및 포트 번호 중 하나 이상을 포함하는, 파일의 분산 저장 시스템.
The method according to claim 1,
Wherein the connection request message includes at least one of an available size of the storage in the client, an ID, a password, an IP address, and a port number of the client.
상기 서버는, 상기 클라이언트 내 스토리지의 가용 크기 중 상기 클라이언트 내 스토리지에 저장된 상기 대상 파일의 크기를 제외한 나머지 크기에 해당하는 더미 파일(dummy file)을 생성하여 상기 클라이언트 내 스토리지에 저장하는, 파일의 분산 저장 시스템.
The method according to claim 1,
The server generates a dummy file corresponding to a size of the target file stored in the storage in the client among the available sizes of the storage in the client and stores the dummy file in the storage in the client. Storage system.
상기 대체 서버는, 상기 대체 서버에 저장된 대상 파일을 상기 대체 서버를 제외한 클라이언트 내 스토리지에 저장하는, 파일의 분산 저장 시스템.
The method according to claim 1,
Wherein the substitute server stores a target file stored in the substitute server in a storage in a client other than the substitute server.
상기 대체 서버는, 상기 파일 메타 정보를 업데이트하며, 업데이트된 상기 파일 메타 정보를 상기 대체 서버를 제외한 클라이언트 각각에 송신하는, 파일의 분산 저장 시스템.
The method of claim 10,
Wherein the substitute server updates the file meta information and transmits the updated file meta information to each of the clients except for the substitute server.
서버에서, 상기 접속 요청 메시지에 따라 상기 클라이언트의 접속을 허용하는 단계;
상기 서버에서, 저장하고자 하는 대상 파일을 분할하는 단계;
상기 서버에서, 분할된 상기 대상 파일을 상기 스토리지의 가용 크기를 초과하지 않는 범위에서 복수의 상기 클라이언트 내 스토리지에 분산 저장하는 단계;
상기 서버에서, 복수의 상기 클라이언트에 분산 저장된 상기 대상 파일의 이름, 크기, 소유자, 유형, 저장 위치 및 저장 일자 중 하나 이상을 포함하는 파일 메타 정보를 상기 클라이언트 각각에 송신하는 단계;
상기 서버에서, 복수의 상기 클라이언트의 아이피 주소를 상기 클라이언트 각각에 송신하는 단계;
상기 클라이언트에서, 상기 서버의 장애 여부 판별을 위한 점검 메시지를 설정된 주기마다 상기 서버에 송신하여 설정된 기간 동안 상기 점검 메시지에 대한 응답 메시지를 상기 서버로부터 수신하지 않는 경우 상기 서버에 장애가 발생한 것으로 판단하는 단계; 및
상기 클라이언트에서, 상기 서버에 장애가 발생한 것으로 판단되는 경우 복수의 상기 클라이언트의 아이피 주소를 크기 순으로 정렬하고, 정렬된 복수의 상기 클라이언트의 아이피 주소 중 최상단 또는 최하단에 위치한 아이피 주소에 대응되는 클라이언트를 대체 서버로 선정하는 단계를 포함하는, 파일의 분산 저장 방법.
In a client having storage, receiving an available size of the storage from a user and generating a connection request message;
Allowing the server to access the client in accordance with the connection request message;
Dividing a target file to be stored in the server;
Distributing, in the server, the divided target files to a plurality of the intra-client storages in a range not exceeding an available size of the storage;
Transmitting, at the server, file meta information including at least one of a name, a size, an owner, a type, a storage location, and a storage date of the target file dispersedly stored in the plurality of clients to each of the clients;
Transmitting, at the server, the IP addresses of the plurality of clients to each of the clients;
Transmitting a check message for determining whether or not the server has failed in the client to the server at a predetermined interval and determining that a failure has occurred in the server when the response message to the check message is not received from the server during a predetermined period ; And
If the server is determined to have a failure, sorting the IP addresses of the plurality of clients in order of magnitude and replacing the client corresponding to the IP address located at the top or bottom of the aligned IP addresses of the plurality of clients And selecting the file as a server.
상기 접속 요청 메시지는, 상기 클라이언트 내 스토리지의 가용 크기, 상기 클라이언트의 아이디, 패스워드, 아이피 주소 및 포트 번호 중 하나 이상을 포함하는, 파일의 분산 저장 방법.
The method of claim 12,
Wherein the connection request message includes at least one of an available size of the storage in the client, an ID, a password, an IP address, and a port number of the client.
상기 서버에서, 상기 클라이언트 내 스토리지의 가용 크기 중 상기 클라이언트 내 스토리지에 저장된 상기 대상 파일의 크기를 제외한 나머지 크기에 해당하는 더미 파일(dummy file)을 생성하여 상기 클라이언트 내 스토리지에 저장하는 단계를 더 포함하는, 파일의 분산 저장 방법.
The method of claim 12,
And generating a dummy file corresponding to the remaining size of the available storage size of the client in the client, excluding the size of the target file stored in the storage in the client, and storing the generated dummy file in the storage in the client How to store distributed files.
상기 대체 서버에서, 상기 대체 서버에 저장된 대상 파일을 상기 대체 서버를 제외한 클라이언트 내 스토리지에 저장하는 단계를 더 포함하는, 파일의 분산 저장 방법.
The method of claim 12,
Further comprising the step of, in the alternative server, storing the target file stored in the alternative server in a storage in the client excluding the alternative server.
상기 대체 서버에서,
상기 파일 메타 정보를 업데이트하는 단계; 및
업데이트된 상기 파일 메타 정보를 상기 대체 서버를 제외한 클라이언트 각각에 송신하는 단계를 더 포함하는, 파일의 분산 저장 방법.
23. The method of claim 21,
In the alternate server,
Updating the file meta information; And
And transmitting the updated file meta information to each of the clients except for the alternative server.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150055119A KR101718397B1 (en) | 2015-04-20 | 2015-04-20 | System and method for distributively storing files |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150055119A KR101718397B1 (en) | 2015-04-20 | 2015-04-20 | System and method for distributively storing files |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160124475A KR20160124475A (en) | 2016-10-28 |
KR101718397B1 true KR101718397B1 (en) | 2017-03-21 |
Family
ID=57244556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150055119A KR101718397B1 (en) | 2015-04-20 | 2015-04-20 | System and method for distributively storing files |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101718397B1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101993309B1 (en) * | 2017-06-02 | 2019-06-26 | (주)오투팜 | Method and program for storing service data by cloud account |
KR102026301B1 (en) | 2017-12-29 | 2019-09-27 | 주식회사 포스코아이씨티 | Distributed parallel processing system for preventing data loss and method thereof |
KR102240931B1 (en) * | 2019-05-23 | 2021-04-15 | 주식회사 포스팟 | Payment management server based on a block chain that enables distributed storage of payment information in conjuction with multiple pos terminals and operating method thereof |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014081898A (en) * | 2012-10-18 | 2014-05-08 | Hitachi Systems Ltd | Divided file backup system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140056940A (en) * | 2012-11-02 | 2014-05-12 | (주)유앤비테크 | Black box for virhicle system using smart device control based grid system and method of operating thereof |
KR101431912B1 (en) | 2012-12-10 | 2014-09-23 | 포항공과대학교 산학협력단 | Virtual File System integrating multiple Cloud Storage Services |
KR101496764B1 (en) * | 2013-05-14 | 2015-02-27 | 서울대학교산학협력단 | Method and apparatus for managing file to recover original file with at least pre-determined number file fragments |
-
2015
- 2015-04-20 KR KR1020150055119A patent/KR101718397B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014081898A (en) * | 2012-10-18 | 2014-05-08 | Hitachi Systems Ltd | Divided file backup system |
Also Published As
Publication number | Publication date |
---|---|
KR20160124475A (en) | 2016-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10776396B2 (en) | Computer implemented method for dynamic sharding | |
US10805406B2 (en) | Zone redundant computing services using multiple local services in distributed computing systems | |
US7546486B2 (en) | Scalable distributed object management in a distributed fixed content storage system | |
US9542404B2 (en) | Subpartitioning of a namespace region | |
US10778810B2 (en) | Staging and deployment to multiple service clouds | |
US8261033B1 (en) | Time optimized secure traceable migration of massive quantities of data in a distributed storage system | |
US9483482B2 (en) | Partitioning file system namespace | |
US9454444B1 (en) | Using location tracking of cluster nodes to avoid single points of failure | |
US20080140947A1 (en) | Identification of fixed content objects in a distributed fixed content storage system | |
CN109669762B (en) | Cloud computing resource management method, device, equipment and computer readable storage medium | |
US8713127B2 (en) | Techniques for distributed storage aggregation | |
CN107430603A (en) | The system and method for MPP database | |
US20120078946A1 (en) | Systems and methods for monitoring files in cloud-based networks | |
KR101718397B1 (en) | System and method for distributively storing files | |
CN1602480A (en) | Managing storage resources attached to a data network | |
KR101704928B1 (en) | System and method for distributively storing files using gpu | |
JP6059558B2 (en) | Load balancing judgment system | |
KR101679512B1 (en) | System and method for distributively storing files based on legacy desktop for processing big data | |
US20090144333A1 (en) | System for maintaining a database | |
US9495257B2 (en) | Networking support for zone clusters based on virtualization of servers | |
US10621148B1 (en) | Maintaining multiple object stores in a distributed file system | |
Ruty et al. | Collapsing the layers: 6Stor, a scalable and IPv6-centric distributed storage system | |
US11973823B1 (en) | Offloading namespace redirection to backup clients in a scale out cluster | |
JP2015162216A (en) | Decentralized processing system | |
CN116910158A (en) | Data processing and inquiring method, device, equipment and medium based on copy group |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
FPAY | Annual fee payment |
Payment date: 20200227 Year of fee payment: 4 |