KR20130133989A - System and method for parallel file transfer between file storage clusters - Google Patents
System and method for parallel file transfer between file storage clusters Download PDFInfo
- Publication number
- KR20130133989A KR20130133989A KR1020120057168A KR20120057168A KR20130133989A KR 20130133989 A KR20130133989 A KR 20130133989A KR 1020120057168 A KR1020120057168 A KR 1020120057168A KR 20120057168 A KR20120057168 A KR 20120057168A KR 20130133989 A KR20130133989 A KR 20130133989A
- Authority
- KR
- South Korea
- Prior art keywords
- file
- transfer
- storage cluster
- transfer target
- file storage
- Prior art date
Links
- 238000012546 transfer Methods 0.000 title claims abstract description 298
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000005540 biological transmission Effects 0.000 claims abstract description 16
- 239000012634 fragment Substances 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000002932 luster Substances 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
- G06F9/3891—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
본 발명은 파일 스토리지 클러스터간에 효율적으로 파일을 전송하기 위한 기술과 관련된다.
The present invention relates to techniques for transferring files efficiently between file storage clusters.
파일 스토리지 클러스터(File Storage Cluster)란 다수의 서버들이 클러스터로 묶어 파일 스토리지 서비스를 제공하는 시스템이다. 파일 스토리지 클러스터는 클라이언트로부터 파일의 읽기 또는 쓰기 요청이 있을 경우 이를 클러스터 내 서버들이 병렬로 처리하도록 구성되는 것을 특징으로 한다. 이러한 파일 스토리지 클러스터에는 분산 파일 시스템(DFS; Distributed File System), 오브젝트 스토리지(Object Storage) 등의 시스템이 포함되며, 하둡(Hadoop) HDFS, GlusterFS, Lustre, Swift 등이 대표적이다. 파일 스토리지 클러스터는 수십 페타바이트(Petabyte) 규모의 대용량 데이터를 용이하게 저장하고 관리할 수 있어 빅 데이터(Big Data) 분야에서 널리 이용되고 있다.A file storage cluster is a system in which a plurality of servers are bundled into clusters to provide a file storage service. The file storage cluster is characterized in that the server in the cluster is configured to process in parallel when there is a request to read or write a file from the client. Such file storage clusters include systems such as Distributed File System (DFS) and Object Storage (DFS), including Hadoop HDFS, GlusterFS, Luster, and Swift. File storage clusters are widely used in big data because they can easily store and manage tens of petabytes of large data.
이와 같이 파일 스토리지 클러스터들을 사용하는 엔터프라이즈 시장의 경우, 저장된 데이터의 백업, 파일 스토리지 클러스터의 교체, 저장된 데이터의 분석 등의 이유로 저장된 데이터를 다른 파일 스토리지 클러스터로 전송하여야 할 필요가 있다. 그러나 파일 스토리지 클러스터의 경우 그 특성 상 데이터의 용량이 매우 크므로 일반적인 데이터 이전 방식을 이용할 경우 데이터의 이동에 너무 많은 시간이 소요되게 된다. 이에 따라 파일 스토리지 클러스터 간 데이터 이전 시 이를 효율적으로 지원하기 위한 기술이 필요하게 되었다.
In the enterprise market using file storage clusters as described above, the stored data needs to be transferred to another file storage cluster for reasons such as backup of the stored data, replacement of the file storage cluster, and analysis of the stored data. However, in the case of file storage clusters, the capacity of the data is very large. Therefore, when using a general data migration method, the data movement takes too much time. As a result, there is a need for technology to efficiently support data transfer between file storage clusters.
본 발명의 실시예들은 파일 스토리지 클러스터의 특성을 이용하여 파일 스토리지 클러스터간에 효과적으로 데이터를 전송하기 위한 수단을 제공하는 데 그 목적이 있다.
It is an object of the present invention to provide a means for effectively transferring data between file storage clusters using the characteristics of the file storage cluster.
본 발명의 일 실시예에 따른 파일 스토리지 클러스터간 병렬 파일 전송 시스템은, 제1 파일 스토리지 클러스터에 저장된 파일을 제2 파일 스토리지 클러스터로 전송하기 위한 시스템으로서, 상기 제1 파일 스토리지 클러스터의 마스터 서버로부터 상기 제1 파일 스토리지 클러스터에 저장된 전송 대상 파일들의 정보를 수신하고, 상기 전송 대상 파일의 정보에 근거하여 상기 전송 대상 파일들을 복수 개의 파일 전송부에 할당하는 파일 전송 관리자; 및 상기 파일 전송 관리자로부터 할당된 전송 대상 파일을 상기 제1 파일 스토리지 클러스터로부터 수신하고, 수신된 전송 대상 파일을 상기 제2 파일 스토리지 클러스터에 저장하는 상기 복수 개의 파일 전송부를 포함한다.The parallel file transfer system between file storage clusters according to an exemplary embodiment of the present invention is a system for transferring a file stored in a first file storage cluster to a second file storage cluster, the master file of the first file storage cluster. A file transfer manager that receives information of transfer target files stored in a first file storage cluster and allocates the transfer target files to a plurality of file transfer units based on the transfer target file information; And the plurality of file transfer units that receive a transfer target file allocated from the file transfer manager from the first file storage cluster and store the received transfer target file in the second file storage cluster.
또한, 본 발명의 일 실시예에 따른 파일 스토리지 클러스터간 병렬 파일 전송 방법은, 제1 파일 스토리지 클러스터에 저장된 파일을 제2 파일 스토리지 클러스터로 전송하기 위한 방법으로서, 파일 전송 관리자에서, 상기 제1 파일 스토리지 클러스터의 마스터 서버로부터 상기 제1 파일 스토리지 클러스터에 저장된 전송 대상 파일들의 정보를 수신하는 단계; 상기 파일 전송 관리자에서, 수신된 상기 전송 대상 파일의 정보에 근거하여 상기 전송 대상 파일들을 복수 개의 파일 전송부에 할당하는 단계; 및 복수 개의 파일 전송부에서, 상기 파일 전송 관리자로부터 할당된 전송 대상 파일을 상기 제1 파일 스토리지 클러스터로부터 수신하고, 수신된 전송 대상 파일을 상기 제2 파일 스토리지 클러스터에 저장하는 단계를 포함한다.
In addition, the parallel file transfer method between file storage clusters according to an embodiment of the present invention is a method for transferring a file stored in a first file storage cluster to a second file storage cluster, and in the file transfer manager, the first file. Receiving information of transfer target files stored in the first file storage cluster from a master server of a storage cluster; Assigning, by the file transfer manager, the transfer target files to a plurality of file transfer units based on the received information of the transfer target file; And a plurality of file transfer units, receiving a transfer target file allocated from the file transfer manager from the first file storage cluster and storing the received transfer target file in the second file storage cluster.
본 발명의 실시예들에 다를 경우, 파일 스토리지 클러스터간 파일 전송을 위한 노드의 수를 늘려 줌으로써 병목 현상이 발생하는 것을 방지할 수 있다. 또한 분산파일시스템의 파일 저장 특성을 고려하여 효율적으로 파일을 전송 노드에 분산하여 파일 전송 작업을 병렬로 처리함으로써 파일 전송 시간을 단축할 수 있는 효과가 있다.
According to embodiments of the present invention, the bottleneck may be prevented by increasing the number of nodes for file transfer between file storage clusters. In addition, the file transfer time can be shortened by efficiently distributing the files to the transfer nodes in consideration of the file storage characteristics of the distributed file system and processing the file transfer operations in parallel.
도 1은 본 발명의 제1 실시예에 따른 파일 스토리지 클러스터간 병렬 파일 전송 시스템(100)을 설명하기 위한 도면이다.
도 2는 본 발명의 제1 실시예에 따른 제1 실시예에 따른 파일 스토리지 클러스터간 병렬 파일 전송 시스템(100)에서의 파일 전송 방법(200)을 도시한 순서도이다.
도 3은 본 발명의 제2 실시예에 따른 파일 스토리지 클러스터간 병렬 파일 전송 시스템(300)을 설명하기 위한 도면이다.
도 4는 본 발명의 제3 실시예에 따른 파일 스토리지 클러스터간 병렬 파일 전송 시스템(400)을 설명하기 위한 도면이다.
도 5는 본 발명의 제2 실시예 및 제3 실시예에 따른 파일 스토리지 클러스터간 병렬 파일 전송 시스템(300, 400)에서의 파일 전송 방법(500)을 도시한 순서도이다.1 is a diagram illustrating a parallel
2 is a flowchart illustrating a
3 is a diagram illustrating a parallel
4 is a diagram illustrating a parallel
5 is a flowchart illustrating a
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. However, this is merely an example 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 effectively explaining the technical idea of the present invention to a person having ordinary skill in the art to which the present invention belongs.
도 1은 본 발명의 제1 실시예에 따른 파일 스토리지 클러스터간 병렬 파일 전송 시스템(100)을 설명하기 위한 도면이다. 도시된 바와 같이, 본 발명의 제1 실시예에 따른 파일 스토리지 클러스터간 병렬 파일 전송 시스템(100)은 제1 파일 스토리지 클러스터(102)에 저장된 파일을 제2 파일 스토리지 클러스터(104)로 전송하기 위한 시스템으로서, 파일 중계 장치(106) 및 복수 개의 중계 서버(108)를 포함하며, 상술한 각각의 구성요소들은 네트워크(120)를 통하여 서로 연결되어 데이터를 송수신한다. 본 발명의 실시예에서 네트워크(120)는 원활한 데이터 전송을 위하여 제1 파일 스토리지 클러스터(102) 및 제2 파일 스토리지 클러스터(104) 간에 충분한 네트워크 대역폭을 보장하도록 구성된다. 예를 들어, 도시된 실시에에서 제1 파일 스토리지 클러스터(102)에 슬레이브 서버들이 10대가 있고 각각 네트워크 성능이 1Gbps라면 제1 DFS 네트워크와 제2 DFS 네트워크간에 각각 최소 10Gbps(굵은 선으로 표시)가 보장되어야 최대한의 성능이 나올 수 있다. 1 is a diagram illustrating a parallel
제1 파일 스토리지 클러스터(102)는 제2 파일 스토리지 클러스터(104)로 전송될 데이터가 저장되어 있는 파일 스토리지 클러스터이다. 제1 파일 스토리지 클러스터(102)는 복수 개의 서버들이 제1 DFS 네트워크를 통해 클러스터로 묶여 파일을 여러 노드에 분산해서 저장하는 파일시스템으로, 예를 들어 하둡(Hadoop)의 HDFS가 있다. The first
도시된 바와 같이, 제1 파일 스토리지 클러스터(102)는 하나의 마스터 서버 및 하나 이상의 슬레이브 서버를 포함한다. 마스터 서버는 메타데이터 노드를 포함하며, 상기 메타데이터 노드는 각 슬레이브 서버에 저장되는 파일의 정보를 관리한다. 즉, 파일을 어떠한 슬레이브 서버에 저장할지의 여부는 마스터 서버의 메타데이터 노드에 의하여 결정되며, 파일을 저장하려는 클라이언트는 상기 메타데이터 노드에 의하여 결정된 슬레이브 서버의 데이터 노드를 통해 디스크에 파일을 저장한다. 또한, 반대로 클라이언트에서 파일을 읽을 때에는 클라이언트에서 먼저 메타데이터 노드에서 해당 파일에 대한 정보를 얻은 뒤, 상기 정보에 따라 해당 슬레이브 서버의 데이터 노드를 통하여 디스크에 저장된 파일을 읽어오게 된다. 한편, 도시된 실시예에서는 마스터 서버에 메타데이터 노드가 포함되는 것으로 도시되었으나, 예를 들어 GlusterFS 등의 마스터 서버가 없는 파일 스토리지 클러스터의 경우 메타데이터 노드 또한 구성상으로는 존재하지 않게 된다. 그러나 이 경우에도 시스템 내의 다른 구성요소가 메타데이터 노드와 동일한 기능을 수행하도록 구성되는 바, 이 경우에도 논리적으로는 메타데이터 노드가 존재하는 것으로 보아야 한다.As shown, the first
제2 파일 스토리지 클러스터(104)는 제1 파일 스토리지 클러스터(102)로 읽어 들인 데이터가 저장되기 위한 파일 스토리지 클러스터이다. 제2 파일 스토리지 클러스터(104) 또한 제1 파일 스토리지 클러스터(102)와 동일하게 하나의 마스터 서버 및 하나 이상의 슬레이브 서버를 포함한다. 이와 같은 제2 파일 스토리지 클러스터(104)는 제1 파일 스토리지 클러스터(102)와 동일한 종류의 파일 스토리지 클러스터를 사용할 수도 있고, 또는 다른 종류의 파일 스토리지 클러스터를 사용하여 구현될 수도 있다. 즉, 본 발명은 특정한 종류의 파일 스토리지 클러스터에 한정되는 것은 아니다. The second
파일 중계 장치(106)는 후술할 복수 개의 중계 서버(108)에서 수행되는 파일 스토리지 클러스터간 파일 전송을 전체적으로 제어하기 위한 장치로서, 파일 전송 관리자(110) 및 제1 DFS 클라이언트(112)를 포함한다.The
파일 전송 관리자(110)는 제1 파일 스토리지 클러스터(102)의 마스터 서버의 메타데이터 노드로부터 제1 파일 스토리지 클러스터(102)에 저장된 전송 대상 파일들의 정보를 수신하고, 수신된 상기 전송 대상 파일의 정보에 근거하여 전송 대상 파일들을 복수 개의 중계 서버(108)내의 각 파일 전송부(114)에 할당한다. 또한 파일 전송 관리자(110)는 상기 파일을 할당한 이후에도 지속적으로 중계 서버(108)의 파일 전송작업을 스케줄링하고 모니터링한다.The
상기 전송 대상 파일의 정보는 전송 대상 파일의 제1 파일 스토리지 클러스터(102)에서의 유알엘(URL) 및 파일 크기 정보를 포함한다. 이를 이용하여, 파일 전송 관리자(110)는 각 파일 전송부(114)에 할당되는 전송 대상 파일들의 크기 합이 각 파일 전송부(114) 별로 균등하게 되도록 전송 대상 파일들을 복수 개의 파일 전송부(114)에 할당한다.The information of the transfer target file includes a URL and file size information in the first
파일 전송 관리자(110)에서의 파일 할당을 예를 들어 설명하면 다음과 같다. 먼저, 제1 파일 스토리지 클러스터(102)에 저장된 각 파일들의 크기가 모두 동일하거나 또는 완전히 동일하지는 않더라도 충분히 그 크기가 유사한 경우를 가정하자. 이 경우에는 개별 파일 들의 파일 크기 정보를 활용하여 전체 용량을 구하고 각 파일 전송부(114)에게 "전체 용량/파일 전송부 개수"에 해당하는 용량 만큼 파일을 할당한다. 예를 들면, 모두 1GB 크기의 파일 100개가 있고 파일 전송부(114)가 10개로 구성될 경우 총 파일 크기는 100GB이므로 파일 전송부(114) 당 10개의 파일 씩을 나누어서 할당 한다. 할당 방법으로는 100개의 파일 URL 리스트를 10개씩 나누어 그 리스트를 파일 전송부(114)에 전달하도록 구성될 수 있다.For example, file allocation in the
이와 달리 제1 파일 스토리지 클러스터(102)에 저장된 각 파일 크기의 편차가 심한 경우, 파일 전송 관리자(110)는, 전송 대상 파일들을 크기에 따라 정렬하고, 정렬된 전송 대상 파일들을 파일 전송부(114)에 순차적으로 할당하되, 특정 회(round)의 파일 할당 순서는 이전 회의 파일 할당 순서와 반대가 되도록 전송 대상 파일들을 할당하게 된다. 이를 좀 더 쉽게 설명하면 다음과 같다.On the contrary, when the size of each file stored in the first
예를 들어, 제1 파일 스토리지 클러스터(102)에 100개의 파일이 존재하고, 각각의 용량은 1MB에서 100MB까지 1MB 간격으로 증가한다고 가정하자. 이를 각각 a부터 j까지의 이름을 가지는 10개의 파일 전송부(114)에 할당하기 위해서는 먼저, 상기 파일들을 파일 크기순으로 내림차순 (또는 오름차순)으로 정렬한다. 이후, 상기 정렬된 파일들을 각 파일 전송부(114)에 순서대로 배치하되, 처음에는 a에서 j의 순서로, 다음에는 j에서 a의 순서로, 그 다음에는 다시 a에서 j의 순서로, 즉 특정 회(round)의 파일 할당 순서가 이전 회의 파일 할당 순서와 반대가 되도록 전송 대상 파일들을 할당한다. 이를 표로 나타내면 다음과 같다.
For example, assume that there are 100 files in the first
이와 같이 파일들을 할당할 경우, 상기 표 1에서 알 수 있는 바와 같이 각 파일 전송부(114)에 할당되는 파일의 크기 합이 거의 비슷해지게 되므로, 특정 파일 전송부(114)의 작업이 지나치게 빨리 끝나거나 또는 지나치게 늦게 끝나는 일이 없이 효율적으로 파일 전송 작업을 수행할 수 있게 된다.When the files are allocated in this way, as shown in Table 1, the sum of the sizes of the files allocated to each
제1 DFS 클라이언트(112)는 파일 전송 관리자(110)가 상기 전송 대상 파일들의 정보를 수신하기 위하여 제1 파일 스토리지 클러스터(102)에 접속하기 위해 사용되는 에이전트이다. 즉, 파일 전송 관리자(110)는 제1 DFS 클라이언트(112)를 통하여 제1 파일 스토리지 클러스터(102)의 마스터 서버에 접속하여 상기 전송 대상 파일들의 정보를 수신하게 된다.The
다음으로, 중계 서버(108)는 파일 전송부(114), 제1 DFS 클라이언트(116) 및 제2 DFS 클라이언트(118)를 포함한다. 본 발명의 실시예에서 중계 서버(108)의 개수에는 제한이 없으나, 파일을 전송하려는 파일 스토리지 클러스터의 슬레이브 서버의 개수와 동일한 개수의 중계 서버(108)를 구비하는 것이 바람직하다.Next, the
파일 전송부(114)는 파일 전송 관리자(110)로부터 할당된 전송 대상 파일을 제1 DFS 클라이언트(116)를 이용하여 제1 파일 스토리지 클러스터(102)로부터 수신하고, 수신된 전송 대상 파일을 제2 DFS 클라이언트(118)를 이용하여 제2 파일 스토리지 클러스터(104)에 저장하며, 파일 전송이 완료되면 이를 파일 전송 관리자(110)에 보고한다.The
제1 DFS 클라이언트(116)는 중계 서버(108)가 전송 대상 파일을 읽기 위하여 제1 파일 스토리지 클러스터(102)에 접속하기 위해 사용되는 에이전트이고, 제2 DFS 클라이언트(118)는 중계 서버(108)가 전송 대상 파일을 저장하기 위하여 제2 파일 스토리지 클러스터(104)에 접속하기 위해 사용되는 에이전트이다.
The
도 2는 본 발명의 제1 실시예에 따른 제1 실시예에 따른 파일 스토리지 클러스터간 병렬 파일 전송 시스템(100)에서의 파일 전송 방법(200)을 도시한 순서도이다.2 is a flowchart illustrating a
먼저 파일 전송 관리자(110)가 제1 DFS 클라이언트(112)를 통해 제1 파일 스토리지 클러스터(102)의 마스터 서버의 메타데이터 노드로부터 제1 파일 스토리지 클러스터(102)에 저장된 전송 대상 파일들의 정보를 요청하여 이를 수신한다(202). 전술한 바와 같이, 상기 전송 대상 파일의 정보는 전송 대상 파일의 제1 파일 스토리지 클러스터(102)에서의 유알엘(URL) 및 파일 크기를 포함한다.First, the
만약 제1 파일 스토리지 클러스터(102)가 HDFS 기반일 경우, 파일 전송 관리자(110)는 namenode에서 제공하는 API를 통해 파일 정보를 얻을 수 있다. 또한 GlusterFS와 같이 클라이언트가 POSIX(Portable Operating System Interface)를 지원하여 마운트되는 경우에는 ls와 같은 파일 정보를 얻는 명령어를 사용하여 전송 대상 파일들의 정보를 수신할 수 있다.If the first
다음으로, 파일 전송 관리자(110)가 수신된 상기 전송 대상 파일의 정보에 근거하여 전송 대상 파일들을 복수 개의 파일 전송부(114)에 할당한다(204). 이때, 파일 전송 관리자(110)는 각 파일 전송부(114)에 할당되는 전송 대상 파일들의 크기 합이 각 파일 전송부(114)별로 균등하게 되도록 전송 대상 파일들을 복수 개의 파일 전송부(114)에 할당할 수 있다. 상기 파일 할당 방법에 대해서는 도 1에서 상세히 설명하였으므로, 여기서는 그 상세한 설명을 생략한다.Next, the
다음으로, 각각의 파일 전송부(114)는 제1 DFS 클라이언트(116)를 통해 파일 전송 관리자(110)로부터 할당된 전송 대상 파일을 제1 파일 스토리지 클러스터(102)로부터 수신한다(206). 이때, 제1 DFS 클라이언트(116)는 메타데이터 노드를 통해 실제 파일 데이터가 저장되어 있는 슬레이브 서버의 정보를 얻은 뒤, 실제 데이터가 저장되어 있는 슬레이브 서버의 데이터노드를 통해 전송 대상 파일을 읽게 된다. 상기 206 단계 및 후술할 208, 210 단계는 복수 개의 파일 전송부(114)를 통하여 병렬로 수행된다.Next, each
다음으로, 각각의 파일 전송부(114)가 제2 파일 스토리지 클러스터(104)에 수신된 상기 전송 대상 파일을 저장할 URL의 할당을 제2 파일 스토리지 클러스터(104)의 메타데이터 노드에 요청한다(208). 만약 제1 파일 스토리지 클러스터(102) 및 제2 파일 스토리지 클러스터(104)가 동일한 종류의 파일 스토리지 클러스터이어서 제1 파일 스토리지 클러스터(102)에서의 URL을 그대로 사용할 수 있는 경우에는 본 단계는 생략될 수 있다. 그러나 이기종의 파일 스토리지 클러스터 간에는 URL 표기법이 다를 수 있으므로, 이 경우에는 제2 파일 스토리지 클러스터(104)에 새로운 URL 할당을 요청하여야 한다.Next, each
다음으로, 각각의 파일 전송부(114)는 수신한 URL이 사용 가능한지의 여부를 판단하고, 사용 가능한 경우 해당 URL을 이용하여 수신된 전송 대상 파일을 제2 DFS 클라이언트(118)를 통해 제2 파일 스토리지 클러스터(104)에 저장한다(210). 이때 제2 파일 스토리지 클러스터(104)가 스트라이핑 방식으로 저장할 경우에는 하나의 파일이 복수 개의 슬레이브 서버에 그룹(chunk) 단위로 나뉘어 저장되며, 분산 방식으로 저장할 경우에는 지정된 슬레이브 서버에 파일 단위로 저장된다.Next, each
다음으로, 각각의 파일 전송부(114)는 전송할 파일이 남아있는지를 판단하고(212), 남아있는 파일이 존재하는 경우 206 내지 210 단계를 반복 수행한다.Next, each
만약 전송할 파일이 남아있지 않은 경우, 각각의 파일 전송부(114)는 파일 전송 결과를 파일 전송 관리자(110)에게 보고한다(214). 그러면 파일 전송 관리자(110)는 상기 파일 전송 결과로부터 전송 실패 파일이 존재하는지의 여부를 판단하고(216), 존재하는 경우 204 단계로 돌아가 해당 파일의 재전송을 시도한다. 다만, 무한 루프를 방지하기 위하여 본 단계에서 일정 횟수 이상 파일 전송이 실패할 경우 해당 파일에 대해서는 작업 할당을 중지하는 것이 바람직하다.If no file remains to be transmitted, each
마지막으로, 전송 실패 파일이 존재하지 않거나 또는 일정 횟수 이상 파일 전송에 실패하여 해당 파일의 전송이 취소된 경우 파일 전송은 종료된다(218).
Finally, if the transfer failed file does not exist or if the transfer of the file is canceled because the file transfer fails for a predetermined number of times, the file transfer is terminated (218).
도 3은 본 발명의 제2 실시예에 따른 파일 스토리지 클러스터간 병렬 파일 전송 시스템(300)을 설명하기 위한 도면이다. 도면에서 알 수 있는 바와 같이, 본 실시예의 경우 별도의 중계 서버(108)가 존재하지 않고, 제1 파일 스토리지 클러스터(102)의 각각의 슬레이브 서버와 동일한 하드웨어 내에 중계 서버(108)의 각 구성 요소들, 즉 파일 전송부(114), 제1 DFS 클라이언트(116) 및 제2 DFS 클라이언트(118)가 구비된다는 점이 제1 실시예와 상이하다. 즉, 본 실시예의 경우 제1 파일 스토리지 클러스터(102)의 각각의 슬레이브 서버들이 중계 서버의 역할을 수행한다. 이와 같이 구성될 경우 실제 전송 대상 파일은 제1 DFS 네트워크에서 제2 DFS 네트워크로 직접 전달되며, 파일 전송 관리자(110)로는 각 전송 대상 파일의 정보 등의 적은 용량의 데이터만이 전송되므로, 제1 DFS 네트워크 및 제2 DFS 네트워크간에만 충분한 대역폭(도면에서 굵은 선으로 표시)을 확보하면 된다.3 is a diagram illustrating a parallel
또한 중계 서버와 슬레이브 서버가 하나의 하드웨어 내에 존재하므로 파일 전송부(114)는 자신과 동일한 하드웨어 내에 존재하는 데이터 노드로부터 파일을 수신할 경우에는 네트워크를 사용하지 않고 바로 서버 내부 통신을 이용하게 되는 바, 네트워크를 사용할 때 보다 훨씬 빠른 속도로 파일을 읽어올 수 있다.
In addition, since the relay server and the slave server exist in one hardware, the
도 4는 본 발명의 제3 실시예에 따른 파일 스토리지 클러스터간 병렬 파일 전송 시스템(400)을 설명하기 위한 도면이다. 도면에서 알 수 있는 바와 같이, 본 실시예의 경우 제1 파일 스토리지 클러스터(102)의 각 노드들, 제2 파일 스토리지 클러스터(104)의 각 노드들 및 복수 개의 중계 서버(108)가 모두 하나의 하드웨어 내에 구비된다. 즉, 본 실시예의 경우 제1 파일 스토리지 클러스터의 하드웨어 자원이 충분할 경우 동일한 하드웨어 내에 제2 파일 스토리지 클러스터(104) 및 중계 서버를 구성하고 내부 통신망을 통하여 제1 파일 스토리지 클러스터(102)의 파일을 제2 파일 스토리지 클러스터(104)로 이동하도록 구성된다.4 is a diagram illustrating a parallel
본 실시예에 따를 경우 다음과 같은 장점이 있다. 먼저, 제2 파일 스토리지 클러스터(104)를 구성하기 위하여 새로운 하드웨어 자원을 구비할 필요가 없이 기존의 파일 스토리지 클러스터를 그대로 이용할 수 있다.According to this embodiment, there are advantages as follows. First, the existing file storage cluster may be used as it is without having to provide new hardware resources to configure the second
또한, 파일을 읽어 올 제1 파일 스토리지 클러스터(102)의 데이터 노드와 이를 저장할 제2 파일 스토리지 클러스터(104)의 데이터 노드가 동일한 하드웨어 내에 존재할 경우 네트워크를 전혀 이용하지 않고 내부 통신망 만을 통해 데이터 전송이 이루어지므로 앞선 실시예에 비해 훨씬 빠른 속도로 데이터 전송이 가능하다.
In addition, if the data node of the first
도 5는 본 발명의 제2 실시예 및 제3 실시예에 따른 파일 스토리지 클러스터간 병렬 파일 전송 시스템(300, 400)에서의 파일 전송 방법(500)을 도시한 순서도이다.5 is a flowchart illustrating a
먼저 파일 전송 관리자(110)가 제1 DFS 클라이언트(112)를 통해 제1 파일 스토리지 클러스터(102)의 마스터 서버의 메타데이터 노드로부터 제1 파일 스토리지 클러스터(102)에 저장된 전송 대상 파일들의 정보를 요청하여 이를 수신한다(502). First, the
이때 상기 전송 대상 파일들의 정보는 제1 파일 스토리지 클러스터(02)의 파일 저장 형태에 따라 2가지 경우로 나뉠 수 있다.At this time, the information of the transfer target files may be divided into two cases according to the file storage type of the first file storage cluster (02).
첫번째로, 파일을 분산(distributed) 방식으로 저장하는 경우이다. 분산 방식은 파일을 쪼개지 않고 하나의 슬레이브 서버에 저장하는 방식이다. 이 경우 파일 전송 관리자(110)가 제1 파일 스토리지 클러스터(102)로부터 수신하는 상기 전송 대상 파일의 정보는 전송 대상 파일의 제1 파일 스토리지 클러스터(102)에서의 유알엘(URL), 파일 크기 이외에 해당 파일이 저장된 슬레이브 서버의 식별 정보를 더 포함한다.First, the file is stored in a distributed manner. The distributed method is to store files in one slave server without splitting them. In this case, the information of the transfer target file that the
두번째로, 파일을 스트라이핑(striping) 방식으로 저장하는 경우이다. 스트라이핑 방식이란 파일을 복수 개의 조각(chunk)으로 나누어 이를 복수 개의 슬레이브 서버에 나누어 저장하는 방식을 의미한다. 이 경우 상기 전송 대상 파일의 정보는 전송 대상 파일의 제1 파일 스토리지 클러스터(102)에서의 유알엘(URL), 파일 크기 및 각 전송 대상 파일을 구성하는 각각의 조각(chunk)이 저장된 슬레이브 서버의 식별 정보를 포함한다.Secondly, the file is stored by striping. The striping method refers to a method of dividing a file into a plurality of chunks and storing them in a plurality of slave servers. In this case, the information of the transfer target file may include identification of a slave server in which a URL, a file size, and each chunk constituting each transfer target file are stored in the first
다음으로, 파일 전송 관리자(110)가 수신된 상기 전송 대상 파일의 정보에 근거하여 전송 대상 파일들을 복수 개의 파일 전송부(114)에 할당한다(504). Next, the
먼저, 제1 파일 스토리지 클러스터(102)가 파일을 분산 방식으로 저장하는 경우, 파일 전송 관리자(110)는 상기 전송 대상 파일을 파일 전송부(114)의 개수만큼 복수 개의 그룹으로 분할하고 분할된 각각의 그룹들을 각 파일 전송부(114)에 할당하되, 각각의 그룹에 포함되는 전송 대상 파일들의 크기 합이 그룹 별로 균등하게 되도록 분할할 수 있다. 즉, 상기 정보에 기재된 파일 전송 용량에 따라 전체 용량을 구하고, 각 파일 전송부(114)가 "전체 용량/파일 전송부 개수"에 해당하는 용량만큼 파일을 분배받도록 그룹을 나눌 수 있다.First, when the first
또한, 이 경우 파일 전송 관리자(110)는 특정 파일 전송부(114)와 동일한 슬레이브 서버에 저장된 전송 대상 파일을 가장 많이 포함하는 그룹을 특정 파일 전송부(114)에 할당하도록 구성될 수 있다. 즉, 파일 전송부(114)와 동일한 위치의 슬레이브 서버에 저장된 파일이 가장 많을 그룹을 해당 파일 전송부(114)에 최우선적으로 할당하게 된다. Also, in this case, the
한편, 제1 파일 스토리지 클러스터(102)가 파일을 Striping 방식으로 저장하는 경우, 파일 전송 관리자(110)는 분산 방식과 동일하게 상기 전송 대상 파일을 파일 전송부(114)의 개수만큼 복수 개의 그룹으로 분할하고 분할된 각각의 그룹들을 각 파일 전송부(114)에 할당하되, 각각의 그룹에 포함되는 전송 대상 파일들의 크기 합이 그룹 별로 균등하게 되도록 분할할 수 있다. 다만 이 경우 파일 전송 관리자(110)는 특정 파일 전송부(114)와 동일한 슬레이브 서버에 저장된 전송 대상 파일의 조각을 가장 많이 포함하는 그룹을 특정 파일 전송부(114)에 할당하게 된다. 즉, 파일 전송부(114)와 동일한 위치의 슬레이브 서버에 저장된 조각이 가장 많은 그룹을 해당 파일 전송부(114)에 최우선적으로 할당하게 된다. On the other hand, when the first
다음으로, 각각의 파일 전송부(114)는 제1 DFS 클라이언트(116)를 통해 파일 전송 관리자(110)로부터 할당된 전송 대상 파일을 제1 파일 스토리지 클러스터(102)로부터 수신한다(506). 이때, 제1 DFS 클라이언트(116)는 메타데이터 노드를 통해 실제 파일 데이터가 저장되어 있는 슬레이브 서버의 정보를 얻은 뒤, 실제 데이터가 저장되어 있는 슬레이브 서버의 데이터 노드를 통해 전송 대상 파일을 읽게 된다. 상기 206 단계 및 후술할 208, 210 단계는 복수 개의 파일 전송부(114)를 통하여 병렬로 수행된다.Next, each
다음으로, 각각의 파일 전송부(114)가 제2 파일 스토리지 클러스터(104)에 수신된 상기 전송 대상 파일을 저장할 URL의 할당을 제2 파일 스토리지 클러스터(104)의 메타데이터 노드에 요청한다(508). 만약 제1 파일 스토리지 클러스터(102) 및 제2 파일 스토리지 클러스터(104)가 동일한 종류의 파일 스토리지 클러스터여서 제1 파일 스토리지 클러스터(102)에서의 URL을 그대로 사용할 수 있는 경우에는 본 단계는 생략될 수 있다. 그러나 이기종의 파일 스토리지 클러스터 간에는 URL 표기법이 다를 수 있으므로, 이 경우에는 제2 파일 스토리지 클러스터(104)에 새로운 URL 할당을 요청하여야 한다.Next, each
다음으로, 각각의 파일 전송부(114)는 수신한 URL이 사용 가능한지의 여부를 판단하고, 사용 가능한 경우 해당 URL을 이용하여 수신된 전송 대상 파일을 제2 DFS 클라이언트(118)를 통해 제2 파일 스토리지 클러스터(104)에 저장한다(510). 이때 제2 파일 스토리지 클러스터(104)가 스트라이핑 방식으로 저장할 경우에는 하나의 파일이 복수 개의 슬레이브 서버에 그룹(chunk) 단위로 나뉘어 저장되며, 분산 방식으로 저장할 경우에는 지정된 슬레이브 서버에 파일 단위로 저장된다.Next, each
다음으로, 각각의 파일 전송부(114)는 전송할 파일이 남아있는지를 판단하고(512), 남아있는 파일이 존재하는 경우 206 내지 210 단계를 반복 수행한다.Next, each
만약 전송할 파일이 남아있지 않은 경우, 각각의 파일 전송부(114)는 파일 파일 전송 결과를 파일 전송 관리자(110)에게 보고한다(514). 그러면 파일 전송 관리자(110)는 상기 파일 전송 결과로부터 전송 실패 파일이 존재하는지의 여부를 판단하고(516), 존재하는 경우 204 단계로 돌아가 해당 파일의 재전송을 시도한다. 다만, 무한 루프를 방지하기 위하여 본 단계에서 일정 횟수 이상 파일 전송이 실패할 경우 해당 파일에 대해서는 작업 할당을 중지하는 것이 바람직하다.If no file remains to be transmitted, each
마지막으로, 전송 실패 파일이 존재하지 않거나 또는 일정 횟수 이상 파일 전송에 실패하여 해당 파일의 전송이 취소된 경우 파일 전송은 종료된다(518).
Finally, if the transfer failed file does not exist or if the transfer of the file is canceled because the file transfer has failed for a predetermined number of times, the file transfer is terminated (518).
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야에서 통상의 지식을 가진 자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
On the other hand, an embodiment of the present invention may include a computer-readable recording medium including a program for performing the methods described herein on a computer. The computer-readable recording medium may include a program command, a local data file, a local data structure, or the like, alone or in combination. The media may be those specially designed and constructed for the present invention or may be known and available to those of ordinary skill in the computer software arts. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floppy disks, and magnetic media such as ROMs, And hardware devices specifically configured to store and execute program instructions. Examples of program instructions may include machine language code such as those generated by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be construed as limiting the scope of the present invention. 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: 제1 파일 스토리지 클러스터
104: 제2 파일 스토리지 클러스터
106: 파일 중계 장치
108: 중계 서버
110: 파일 전송 관리자
112: 제1 DFS 클라이언트
114: 파일 전송부
116: 제1 DFS 클라이언트
118: 제2 DFS 클라이언트
120: 네트워크100: parallel file transfer system between file storage clusters
102: first file storage cluster
104: second file storage cluster
106: file relay device
108: relay server
110: file transfer manager
112: First DFS Client
114: file transfer unit
116: First DFS Client
118: Second DFS Client
120: Network
Claims (24)
상기 제1 파일 스토리지 클러스터의 마스터 서버로부터 상기 제1 파일 스토리지 클러스터에 저장된 전송 대상 파일들의 정보를 수신하고, 상기 전송 대상 파일의 정보에 근거하여 상기 전송 대상 파일들을 복수 개의 파일 전송부에 할당하는 파일 전송 관리자; 및
상기 파일 전송 관리자로부터 할당된 전송 대상 파일을 상기 제1 파일 스토리지 클러스터로부터 수신하고, 수신된 전송 대상 파일을 상기 제2 파일 스토리지 클러스터에 저장하는 상기 복수 개의 파일 전송부를 포함하는 파일 스토리지 클러스터간 병렬 파일 전송 시스템.
A system for transferring a file stored in a first file storage cluster to a second file storage cluster,
A file that receives information of transfer target files stored in the first file storage cluster from a master server of the first file storage cluster, and allocates the transfer target files to a plurality of file transfer units based on the transfer target file information. Transmission manager; And
A file inter-cluster parallel file including the plurality of file transfer units for receiving a transfer target file allocated from the file transfer manager from the first file storage cluster and storing the received transfer target file in the second file storage cluster. Transmission system.
상기 전송 대상 파일의 정보는 상기 전송 대상 파일의 상기 제1 파일 스토리지 클러스터에서의 유알엘(URL) 및 파일 크기를 포함하는, 파일 전송 시스템.
The method according to claim 1,
And wherein the information of the transfer target file includes a URL and a file size in the first file storage cluster of the transfer target file.
상기 파일 전송 관리자는 각 파일 전송부에 할당되는 전송 대상 파일들의 크기 합이 각 파일 전송부 별로 균등하게 되도록 상기 전송 대상 파일들을 상기 복수 개의 파일 전송부에 할당하는, 파일 전송 시스템.
The method according to claim 2,
And the file transfer manager assigns the transfer target files to the plurality of file transfer units such that the sum of sizes of transfer target files allocated to each file transfer unit is equalized for each file transfer unit.
상기 파일 전송 관리자는, 상기 전송 대상 파일들을 크기에 따라 정렬하고, 정렬된 상기 전송 대상 파일들을 상기 파일 전송부에 순차적으로 할당하되, 특정 회(round)의 파일 할당 순서는 이전 회의 파일 할당 순서와 반대가 되도록 상기 전송 대상 파일들을 할당하는, 파일 전송 시스템.
The method according to claim 3,
The file transfer manager arranges the transfer target files according to size and sequentially allocates the sorted transfer target files to the file transfer unit, wherein a specific round file allocation order is the same as the previous conference file allocation order. Allocating the transfer destination files to be reversed.
상기 복수 개의 파일 전송부는, 상기 제2 파일 스토리지 클러스터의 마스터 서버로 상기 전송 대상 파일의 상기 제2 파일 스토리지 클러스터 내에서의 URL 할당을 요청하고, 할당된 상기 URL에 따라 상기 제1 파일 스토리지 클러스터로부터 수신한 상기 전송 대상 파일을 저장하는, 파일 전송 시스템.
The method according to claim 2,
The plurality of file transfer units request a URL allocation in the second file storage cluster of the transfer target file to a master server of the second file storage cluster, and from the first file storage cluster according to the allocated URL. And a file transfer system for storing the received transfer target file.
상기 복수 개의 파일 전송부는, 상기 제1 파일 스토리지 클러스터에 포함된 복수 개의 슬레이브 서버 내에 배치되는, 파일 전송 시스템.
The method according to claim 1,
The plurality of file transfer units are disposed in a plurality of slave servers included in the first file storage cluster.
상기 전송 대상 파일의 정보는 상기 전송 대상 파일의 상기 제1 파일 스토리지 클러스터에서의 유알엘(URL), 파일 크기 및 해당 파일이 저장된 슬레이브 서버의 식별 정보를 포함하는, 파일 전송 시스템.
The method of claim 6,
The information of the transfer target file includes a URL, a file size, and identification information of a slave server in which the file is stored, in the first file storage cluster of the transfer target file.
상기 파일 전송 관리자는, 상기 전송 대상 파일을 상기 파일 전송부의 개수만큼 복수 개의 그룹으로 분할하고 분할된 각각의 그룹들을 각 파일 전송부에 할당하되, 각각의 그룹에 포함되는 전송 대상 파일들의 크기 합이 그룹 별로 균등하게 되도록 분할하는, 파일 전송 시스템.
The method of claim 7,
The file transfer manager divides the transfer target file into a plurality of groups by the number of the file transfer units and allocates each of the divided groups to each file transfer unit, but the sum of the size of the transfer target files included in each group is increased. A file transfer system that divides evenly into groups.
상기 파일 전송 관리자는, 특정 파일 전송부와 동일한 슬레이브 서버에 저장된 전송 대상 파일을 가장 많이 포함하는 그룹을 상기 특정 파일 전송부에 할당하는, 파일 전송 시스템.
The method according to claim 8,
And the file transfer manager assigns to the specific file transfer unit a group containing the most transfer target files stored in the same slave server as the specific file transfer unit.
상기 전송 대상 파일의 정보는 상기 전송 대상 파일의 상기 제1 파일 스토리지 클러스터에서의 유알엘(URL), 파일 크기 및 각 전송 대상 파일을 구성하는 각각의 조각(chunk)이 저장된 슬레이브 서버의 식별 정보를 포함하는, 파일 전송 시스템.
The method of claim 6,
The information of the transfer target file includes identification information of a slave server in which a URL, a file size, and each chunk constituting each transfer target file are stored in the first file storage cluster of the transfer target file. File transfer system.
상기 파일 전송 관리자는, 상기 전송 대상 파일을 상기 파일 전송부의 개수만큼 복수 개의 그룹으로 분할하고 분할된 각각의 그룹들을 각 파일 전송부에 할당하되, 각각의 그룹에 포함되는 전송 대상 파일들의 크기 합이 그룹 별로 균등하게 되도록 분할하는, 파일 전송 시스템.
The method of claim 10,
The file transfer manager divides the transfer target file into a plurality of groups by the number of the file transfer units and allocates each of the divided groups to each file transfer unit, but the sum of the size of the transfer target files included in each group is increased. A file transfer system that divides evenly into groups.
상기 파일 전송 관리자는, 특정 파일 전송부와 동일한 슬레이브 서버에 저장된 전송 대상 파일의 조각을 가장 많이 포함하는 그룹을 상기 특정 파일 전송부에 할당하는, 파일 전송 시스템.
The method of claim 11,
And the file transfer manager assigns to the specific file transfer unit a group including the most pieces of a transfer target file stored in the same slave server as the specific file transfer unit.
파일 전송 관리자에서, 상기 제1 파일 스토리지 클러스터의 마스터 서버로부터 상기 제1 파일 스토리지 클러스터에 저장된 전송 대상 파일들의 정보를 수신하는 단계;
상기 파일 전송 관리자에서, 수신된 상기 전송 대상 파일의 정보에 근거하여 상기 전송 대상 파일들을 복수 개의 파일 전송부에 할당하는 단계; 및
복수 개의 파일 전송부에서, 상기 파일 전송 관리자로부터 할당된 전송 대상 파일을 상기 제1 파일 스토리지 클러스터로부터 수신하고, 수신된 전송 대상 파일을 상기 제2 파일 스토리지 클러스터에 저장하는 단계를 포함하는 파일 스토리지 클러스터간 병렬 파일 전송 방법.
A method for transferring a file stored in a first file storage cluster to a second file storage cluster, the method comprising:
Receiving, at a file transfer manager, information of transfer target files stored in the first file storage cluster from a master server of the first file storage cluster;
Assigning, by the file transfer manager, the transfer target files to a plurality of file transfer units based on the received information of the transfer target file; And
In the plurality of file transfer unit, File storage cluster comprising the step of receiving a transfer target file allocated from the file transfer manager from the first file storage cluster, and storing the received transfer target file in the second file storage cluster Parallel file transfer method.
상기 전송 대상 파일의 정보는 상기 전송 대상 파일의 상기 제1 파일 스토리지 클러스터에서의 유알엘(URL) 및 파일 크기를 포함하는, 파일 전송 방법.
The method according to claim 13,
And the information of the transfer target file comprises a URL and a file size in the first file storage cluster of the transfer target file.
상기 전송 대상 파일들을 복수 개의 파일 전송부에 할당하는 단계는, 각 파일 전송부에 할당되는 전송 대상 파일들의 크기 합이 각 파일 전송부별로 균등하게 되도록 상기 전송 대상 파일들을 상기 복수 개의 파일 전송부에 할당하는, 파일 전송 방법.
The method according to claim 14,
The step of allocating the transfer target files to the plurality of file transfer units may include transferring the transfer target files to the plurality of file transfer units such that the sum of sizes of transfer target files allocated to each file transfer unit is equalized for each file transfer unit. File transfer method.
상기 전송 대상 파일들을 복수 개의 파일 전송부에 할당하는 단계는,
상기 전송 대상 파일들을 크기에 따라 정렬하는 단계; 및
정렬된 상기 전송 대상 파일들을 상기 파일 전송부에 순차적으로 할당하되, 특정 회(round)의 파일 할당 순서는 이전 회의 파일 할당 순서와 반대가 되도록 상기 전송 대상 파일들을 할당하는 단계를 더 포함하는 파일 전송 방법.
16. The method of claim 15,
The step of assigning the transfer target files to a plurality of file transfer unit,
Sorting the transfer target files according to a size; And
Allocating the transferred target files sequentially to the file transfer unit, allocating the transfer target files such that a specific round file allocation order is opposite to a previous conference file allocation order. Way.
전송 대상 파일을 상기 제2 파일 스토리지 클러스터에 저장하는 단계는,
상기 제2 파일 스토리지 클러스터의 마스터 서버로 상기 전송 대상 파일의 상기 제2 파일 스토리지 클러스터 내에서의 URL 할당을 요청하는 단계; 및
할당된 상기 URL에 따라 상기 제1 파일 스토리지 클러스터로부터 수신한 상기 전송 대상 파일을 상기 제2 파일 스토리지 클러스터에 저장하는 단계를 더 포함하는 파일 전송 방법.
The method according to claim 14,
Storing the transfer target file in the second file storage cluster,
Requesting a URL allocation in the second file storage cluster of the transfer target file to a master server of the second file storage cluster; And
And storing the transfer target file received from the first file storage cluster in the second file storage cluster according to the assigned URL.
상기 전송 대상 파일의 정보는 상기 전송 대상 파일의 상기 제1 파일 스토리지 클러스터에서의 유알엘(URL), 파일 크기 및 해당 파일이 저장된 슬레이브 서버의 식별 정보를 포함하는, 파일 전송 방법.
The method according to claim 14,
The information of the transfer target file includes a URL, a file size, and identification information of a slave server in which the file is stored, in the first file storage cluster of the transfer target file.
상기 전송 대상 파일들을 복수 개의 파일 전송부에 할당하는 단계는, 상기 전송 대상 파일을 상기 파일 전송부의 개수만큼 복수 개의 그룹으로 분할하고 분할된 각각의 그룹들을 각 파일 전송부에 할당하되, 각각의 그룹에 포함되는 전송 대상 파일들의 크기 합이 그룹 별로 균등하게 되도록 분할하는, 파일 전송 방법.
19. The method of claim 18,
The step of allocating the transfer target files to a plurality of file transfer units may include dividing the transfer target files into a plurality of groups by the number of the file transfer units and assign each divided group to each file transfer unit, wherein each group And dividing the sum of the size of the transfer target files included in the evenly into groups.
상기 전송 대상 파일들을 복수 개의 파일 전송부에 할당하는 단계는, 특정 파일 전송부와 동일한 슬레이브 서버에 저장된 전송 대상 파일을 가장 많이 포함하는 그룹을 상기 특정 파일 전송부에 할당하는, 파일 전송 방법.
The method of claim 19,
The allocating of the transfer target files to the plurality of file transfer units may include: allocating a group including the most transfer target files stored in the same slave server as the transfer file to the specific file transfer unit.
상기 전송 대상 파일의 정보는 상기 전송 대상 파일의 상기 제1 파일 스토리지 클러스터에서의 유알엘(URL), 파일 크기 및 각 전송 대상 파일을 구성하는 각각의 조각(chunk)이 저장된 슬레이브 서버의 식별 정보를 포함하는, 파일 전송 방법.
The method according to claim 14,
The information of the transfer target file includes identification information of a slave server in which a URL, a file size, and each chunk constituting each transfer target file are stored in the first file storage cluster of the transfer target file. File transfer method.
상기 전송 대상 파일들을 복수 개의 파일 전송부에 할당하는 단계는, 상기 전송 대상 파일을 상기 파일 전송부의 개수만큼 복수 개의 그룹으로 분할하고 분할된 각각의 그룹들을 각 파일 전송부에 할당하되, 각각의 그룹에 포함되는 전송 대상 파일들의 크기 합이 그룹 별로 균등하게 되도록 분할하는, 파일 전송 방법.
The method of claim 10,
The step of allocating the transfer target files to a plurality of file transfer units may include dividing the transfer target files into a plurality of groups by the number of the file transfer units and assign each divided group to each file transfer unit, wherein each group And dividing the sum of the size of the transfer target files included in the evenly into groups.
상기 전송 대상 파일들을 복수 개의 파일 전송부에 할당하는 단계는, 특정 파일 전송부와 동일한 슬레이브 서버에 저장된 전송 대상 파일의 조각을 가장 많이 포함하는 그룹을 상기 특정 파일 전송부에 할당하는, 파일 전송 방법.
23. The method of claim 22,
The allocating of the transfer target files to the plurality of file transfer units may include: allocating a group including the most fragments of the transfer target files stored in the same slave server as the specific file transfer unit to the specific file transfer unit. .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120057168A KR101901266B1 (en) | 2012-05-30 | 2012-05-30 | System and method for parallel file transfer between file storage clusters |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120057168A KR101901266B1 (en) | 2012-05-30 | 2012-05-30 | System and method for parallel file transfer between file storage clusters |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130133989A true KR20130133989A (en) | 2013-12-10 |
KR101901266B1 KR101901266B1 (en) | 2018-09-20 |
Family
ID=49981682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120057168A KR101901266B1 (en) | 2012-05-30 | 2012-05-30 | System and method for parallel file transfer between file storage clusters |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101901266B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9917884B2 (en) * | 2013-12-17 | 2018-03-13 | Tencent Technology (Shenzhen) Company Limited | File transmission method, apparatus, and distributed cluster file system |
KR20190097844A (en) * | 2018-02-13 | 2019-08-21 | 서강대학교산학협력단 | File system program and method for controlling data cener using it |
WO2019189963A1 (en) * | 2018-03-28 | 2019-10-03 | 주식회사 리얼타임테크 | Distributed cluster management system and method therefor |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8180747B2 (en) | 2007-11-12 | 2012-05-15 | F5 Networks, Inc. | Load sharing cluster file systems |
-
2012
- 2012-05-30 KR KR1020120057168A patent/KR101901266B1/en active IP Right Grant
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9917884B2 (en) * | 2013-12-17 | 2018-03-13 | Tencent Technology (Shenzhen) Company Limited | File transmission method, apparatus, and distributed cluster file system |
KR20190097844A (en) * | 2018-02-13 | 2019-08-21 | 서강대학교산학협력단 | File system program and method for controlling data cener using it |
WO2019189963A1 (en) * | 2018-03-28 | 2019-10-03 | 주식회사 리얼타임테크 | Distributed cluster management system and method therefor |
Also Published As
Publication number | Publication date |
---|---|
KR101901266B1 (en) | 2018-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11334597B2 (en) | Resource management systems and methods | |
US10956246B1 (en) | Isolated read channel management interfaces at streaming data service | |
US10489343B2 (en) | Cluster file system comprising data mover modules having associated quota manager for managing back-end user quotas | |
JP7160442B2 (en) | Method, computer program and computer system for managing read/write requests | |
US6832248B1 (en) | System and method for managing usage quotas | |
US8099402B2 (en) | Distributed data storage and access systems | |
US11075984B1 (en) | Workload management at streaming data service supporting persistent connections for reads | |
CN103561101A (en) | Network file system | |
US20100011364A1 (en) | Data Storage in Distributed Systems | |
US8489709B2 (en) | Method of managing a file access in a distributed file storage system | |
US11509700B2 (en) | Stream data record reads using push-mode persistent connections | |
KR101714412B1 (en) | Method and apparatus for organizing database system in cloud environment | |
US11675501B2 (en) | Streaming data service with isolated read channels | |
CN1602480A (en) | Managing storage resources attached to a data network | |
US20100161585A1 (en) | Asymmetric cluster filesystem | |
US20230239345A1 (en) | Isolated read channel categories at streaming data service | |
US20170322994A1 (en) | Coherent distributed logging | |
KR101341412B1 (en) | Apparatus and method of controlling metadata in asymmetric distributed file system | |
KR101901266B1 (en) | System and method for parallel file transfer between file storage clusters | |
CN111225003B (en) | NFS node configuration method and device | |
US20130166670A1 (en) | Networked storage system and method including private data network | |
EP3788501B1 (en) | Data partitioning in a distributed storage system | |
US11070600B1 (en) | Optimization techniques to support lagging readers at streaming data service | |
KR20140060959A (en) | System and method for load balancing of network distributed file system using iscsi storage system | |
KR20180123350A (en) | Method for managing data by distributing and apparatus using the same |
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 |