KR101530346B1 - 분산 파일 시스템 및 방법 - Google Patents

분산 파일 시스템 및 방법 Download PDF

Info

Publication number
KR101530346B1
KR101530346B1 KR1020130165915A KR20130165915A KR101530346B1 KR 101530346 B1 KR101530346 B1 KR 101530346B1 KR 1020130165915 A KR1020130165915 A KR 1020130165915A KR 20130165915 A KR20130165915 A KR 20130165915A KR 101530346 B1 KR101530346 B1 KR 101530346B1
Authority
KR
South Korea
Prior art keywords
file
data node
sdn switch
node
sdn
Prior art date
Application number
KR1020130165915A
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 KR1020130165915A priority Critical patent/KR101530346B1/ko
Application granted granted Critical
Publication of KR101530346B1 publication Critical patent/KR101530346B1/ko

Links

Images

Classifications

    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data

Abstract

분산 파일 시스템 및 방법이 개시된다. 분산 파일 시스템은 복제를 위한 파일을 가지고 있는 클라이언트 노드, 상기 파일을 수신하여 저장하는 제1 데이터 노드 및 제2 데이터 노드, 상기 클라이언트 노드로부터 상기 파일을 수신하면, 상기 파일을 상기 제1 데이터 노드로 전달하는 동시에 제2 SDN 스위치로 전달하는 제1 SDN 스위치, 상기 제1 SDN 스위치로부터 상기 파일을 수신하면, 상기 파일을 상기 제2 데이터 노드로 전달하는 상기 제2 SDN 스위치, 상기 클라이언트 노드로부터 상기 파일의 저장 요청을 받으면, 상기 파일이 상기 제1 데이터 노드 및 상기 제2 데이터 노드에 저장되도록 상기 제1 SDN 스위치 및 상기 제2 SDN 스위치를 제어하는 SDN 컨트롤러를 포함한다.

Description

분산 파일 시스템 및 방법{DISTRIBUTED FILE SYSTEM AND METHOD}
본 발명은 분산 파일 시스템에 관한 것으로, 구체적으로 본 발명은 파일 저장 시간을 단축할 수 있는 분산 파일 시스템 및 방법에 관한 것이다.
유무선 통신 기술의 발달 및 컴퓨터 관련 기술의 발달에 따라 데이터를 효과적으로 관리하는 기술에 관한 연구가 이루어지고 있다.
또한, 컴퓨터 처리 속도의 발전에 따라 데이터의 크기와 양에 있어서 모두 급속도로 그 총량이 늘어나고 있는 데이터 관리 기술이 절실하게 필요하다.
대용량의 데이터를 관리하기 위한 시스템으로 분산 파일 시스템이 존재한다. 분산 파일 시스템은 다수의 서버 컴퓨터들을 네트워크로 연결하여 네트워크를 통해서 공통된 파일 시스템을 제공해주는 시스템이다.
HDFS(Hadoop distributed file system)은 블록 단위 분산 파일 시스템이다. 즉, HDFS는 수십 테라바이트 또는 페타바이트 이상의 대용량 파일을 분산된 서버에 저장하고 많은 클라이언트가 저장된 데이터를 빠르게 처리할 수 있도록 설계된 분산 파일 시스템이다. 이러한 분산 파일 시스템은 네임 노드와 데이터 노드로 구성된다. 그러나, 종래의 분산 파일 시스템은 클라이언트에서 첫번째 데이터 노드로 대용량 파일의 블록을 보내면, 순차적으로 두번째, 세번째 데이터 노드로 복제되는 방식이므로 시간이 오래 걸리는 문제가 있었다.
본 발명은 SDN(Software Defined Networking) 컨트롤러를 활용하여 분산 파일을 저장할 수 있는 분산 파일 시스템 및 방법을 제공하는 것이다.
그리고, 본 발명은 대용량 분산 파일의 저장 시간을 단축할 수 있는 분산 파일 시스템 및 방법을 제공하는 것이다.
본 발명의 일 측면에 따르면, 분산 파일 시스템이 제공된다.
본 발명의 일 실시예에 따르면, 분산 파일 시스템에 있어서, 복제를 위한 파일을 가지고 있는 클라이언트 노드; 상기 파일을 수신하여 저장하는 제1 데이터 노드 및 제2 데이터 노드; 상기 클라이언트 노드로부터 상기 파일을 수신하면, 상기 파일을 상기 제1 데이터 노드로 전달하는 동시에 제2 SDN 스위치로 전달하는 제1 SDN 스위치; 상기 제1 SDN 스위치로부터 상기 파일을 수신하면, 상기 파일을 상기 제2 데이터 노드로 전달하는 상기 제2 SDN 스위치; 및 상기 클라이언트 노드로부터 상기 파일의 저장 요청을 받으면, 상기 파일이 상기 제1 데이터 노드 및 상기 제2 데이터 노드에 저장되도록 상기 제1 SDN 스위치 및 상기 제2 SDN 스위치를 제어하는 SDN 컨트롤러를 포함하는 분산 파일 시스템이 제공된다.
그리고, 본 발명의 일 측면에 따르면, 분산 파일 시스템의 SDN 컨트롤러가 제공된다.
본 발명의 일 실시예에 따르면, 분산 파일 시스템의 SDN 컨트롤러에 있어서, 클라이언트 노드로부터 파일을 저장할 제1 데이터 노드 및 제2 데이터 노드를 포함하는 데이터 노드 리스트를 수신하는 수신부; 상기 데이터 노드 리스트를 기반으로 상기 제1 데이터 노드 및 상기 제2 데이터 노드 각각과 연결된 제1 SDN 스위치 및 제2 SDN 스위치를 제어하기 위한 플로우 엔트리 정보를 생성하는 생성부; 및 상기 플로우 엔트리 정보를 상기 제1 SDN 스위치 및 제2 SDN 스위치로 전송하는 전송부를 포함하는 것을 특징으로 하는 분산 파일 시스템의 SDN 컨트롤러가 제공된다.
또한, 본 발명의 일 측면에 따르면, SDN 컨트롤러가 분산하여 파일을 관리하는 방법이 제공된다.
본 발명의 일 실시예에 따르면, SDN 컨트롤러가 분산하여 파일을 관리하는 방법에 있어서, 클라이언트 노드로부터 파일을 분산 저장하기 위해 데이터 노드 리스트를 수신하는 단계; 상기 데이터 노드 리스트를 기반으로 제1 데이터 노드 및 제2 데이터 노드를 확인하는 단계; 상기 제1 데이터 노드 및 상기 제2 데이터 노드 각각과 연결된 제1 SDN 스위치 및 제2 SDN 스위치를 제어하기 위한 플로우 엔트리 정보를 생성하는 단계; 및 상기 플로우 엔트리 정보를 상기 제1 SDN 스위치 및 상기 제2 SDN 스위치 각각으로 전송하는 단계를 포함하는 분산 파일 방법이 제공된다.
본 발명의 실시예에 따른 분산 파일 시스템 및 방법은 SDN(Software Defined Networking) 컨트롤러를 활용하여 분산 파일을 저장할 수 있다.
또한, 본 발명의 실시예에 따른 분산 파일 시스템 및 방법은 대용량 분산 파일의 저장 시간을 단축할 수 있다.
그리고, 본 발명의 실시예에 따른 분산 파일 시스템 및 방법은 대역폭을 적게 사용하여 대용량 분산 파일을 복제할 수 있다.
도 1은 분산 파일 시스템을 나타낸 구성도.
도 2는 도 1의 도시된 분산 파일 시스템의 SDN 컨트롤러를 나타낸 블록도.
도 3은 SDN 컨트롤러의 분산 파일 방법을 나타낸 순서도.
도 4는 플로우 엔트리 정보를 나타낸 예시도.
도 5는 분산 파일 시스템의 분산 파일 방법을 나타낸 순서도.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 본 발명에 따른 분산 파일 시스템 및 방법의 실시예를 첨부도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 분산 파일 시스템을 나타낸 구성도이다.
도 1을 참조하면, 분산 파일 시스템은 클라이언트 노드(100), 네임 노드(120), SDN 컨트롤러(140), 제1 SDN 스위치(163) 내지 제3 SDN 스위치(167), 제1 데이터 노드(183) 내지 제3 데이터 노드(187)를 포함한다.
클라이언트 노드(100)는 사용자로부터 파일 저장 요청을 수신한다. 클라이언트 노드(100)는 사용자로부터 파일 저장 요청을 수신하면, 네임 노드(120)로 사용자의 파일 저장 요청을 전달한다. 클라이언트 노드(100)는 네임 노드(120)로부터 복제 대상이 되는 데이터 노드들을 포함하는 데이터 노드 리스트를 수신한다. 클라이언트 노드(100)는 데이터 노드 리스트를 SDN 컨트롤러(140)로 전송한다. 클라이언트 노드(100)는 파일을 저장하기 위해 제1 SDN 스위치(163)로 파일을 전송한다.
클라이언트 노드(100)는 HDFS(Hadoop distributed file system) 클라이언트 노드(100)라고 명명할 수 있다. 이러한 클라이언트 노드(100)는 네임 노드(120), SDN 컨트롤러(140) 및 제1 스위치 노드와 접속하여 통신할 수 있으면 그 종류는 무관하다. 예를 들어, 클라이언트 노드(100)는 WCDMA(Wideband CDMA)폰, 스마트(Smart)폰, 개인 휴대 정보 단말(personal digital assistants: PDA) 등과 같이 음성 통화 또는 영상 통화를 수행할 수 있는 이동 통신 단말, 데스크탑, 노트북, 넷북, 태플릿 PC, 이북(e-book) 중 하나일 수도 있다.
네임 노드(120)는 클라이언트 노드(100)와 접속하여 분산 파일을 저장하기 위한 데이터를 송수신한다. 구체적으로, 네임 노드(120)는 클라이언트 노드(100)로부터 사용자의 파일 저장 요청을 수신하고, 파일을 복제할 데이터 노드들을 선택하여 데이터 노드 리스트를 생성한다. 즉, 네임 노드(120)는 파일을 저장할 제1 데이터 노드(183) 내지 제3 데이터 노드(187)를 선택하고, 선택한 제1 데이터 노드(183) 내지 제3 데이터 노드(187)를 포함하는 데이터 노드 리스르를 생성한다. 여기서, 데이터 노드 리스트에는 제1 데이터 노드(183) 내지 제3 데이터 노드(187)의 주소 정보를 포함할 수 있으며, 주소 정보는 IP 주소 정보일 수 있다. 네임 노드(120)는 생성한 데이터 노드 리스트를 클라이언트 노드(100)로 전송한다.
SDN 컨트롤러(140)는 클라이언트 노드(100), 제1 SDN 스위치(163) 내지 제3 SDN 스위치(167)와 접속하여 분산 파일을 관리하기 위한 데이터를 송수신한다. SDN 컨트롤러(140)는 클라이언트 노드(100)로부터 데이터 노드 리스트를 수신하고, 데이터 노드 리스트를 기반으로 파일을 복제할 대상이 되는 제1 데이터 노드(183) 내지 제3 데이터 노드(187)를 확인한다.
SDN 컨트롤러(140)는 제1 데이터 노드(183) 내지 제3 데이터 노드(187) 각각에 연결된 제1 SDN 스위치(163) 내지 제3 SDN 스위치(167)를 제어하기 위해 플로우 엔티리(flow entry) 정보를 생성한다. 즉, SDN 컨트롤러(140)는 제1 SDN 스위치(163) 내지 제3 SDN 스위치(167) 별로 수행해야 할 액션을 나타내는 액션 규칙을 생성하고, 액션 규칙을 포함하는 플로우 엔트리 정보를 생성한다. SDN 컨트롤러(140)는 생성한 플로우 엔트리 정보를 제1 SDN 스위치(163) 내지 제3 SDN 스위치(167) 각각으로 전송한다. 또한, SDN 컨트롤러(140)는 제1 SDN 스위치(163) 내지 제 3 SDN 스위치 각각에 대한 정보와 제1 SDN 스위치(163) 내지 제 3 SDN 스위치 각각에 연결된 제1 데이터 노드(183) 내지 제3 데이터 노드(187) 각각에 대한 정보를 제1 SDN 스위치(163) 내지 제 3 SDN 스위치로부터 주기적으로 수집하여 저장한다. 이러한, SDN 컨트롤러(140)는 도 2를 참고하여 더욱 상세하게 설명하기로 한다.
제1 SDN 스위치(163) 내지 제3 SDN 스위치(167)는 SDN 컨트롤러(140)와 접속하여 SDN 컨트롤러(140)로부터 플로우 엔트리 정보를 수신한다.
제1 SDN 스위치(163) 내지 제3 SDN 스위치(167) 각각은 제1 데이터 노드(183) 내지 제3 데이터 노드(187) 각각과 접속하며, 제1 SDN 스위치(163)는 제2 SDN 스위치(165)와 접속하고, 제2 SDN 스위치(165)는 제3 SDN 스위치(167)와 접속한다. 제1 SDN 스위치(163) 내지 제3 SDN 스위치(167) 각각은 제1 데이터 노드(183) 내지 제3 데이터 노드(187) 각각으로 파일을 전달한다.
즉, 제1 SDN 스위치(163)는 클라이언트 노드(100)로부터 파일을 수신하면, 플로우 엔트리 정보에 포함된 액션 규칙에 따라 파일을 제1 데이터 노드(183)로 전달하는 동시에 제2 SDN 스위치(165)로 전달하다. 제2 SDN 스위치(165)는 제1 SDN 스위치(163)로부터 파일을 수신하면, 액션 규칙에 따라 파일을 제2 데이터 노드(185)로 전달하는 동시에 제3 SDN 스위치(167)로 전달한다. 제2 스위치로부터 파일을 수신하면, 제3 SDN 스위치(167)는 제3 데이터 노드(187)로 파일을 전달한다.
제1 데이터 노드(183) 내지 제 3 데이터 노드 각각은 제1 SDN 스위치(163) 내지 제3 SDN 스위치(167) 각각과 접속하여 파일을 전달받아 저장한다.
즉, 제1 데이터 노드(183)는 제1 SDN 스위치(163)와 접속하여 제1 랙(RACK, 193)에 위치한다. 제1 데이터 노드(183)는 클라이언트 노드(100)에서 복제 요청한 파일을 제1 SDN 스위치(163)로부터 전달받아 저장한다. 그리고, 제2 데이터 노드(185)는 제2 SDN 스위치(165)와 접속하여 제2 랙(195)에 위치한다. 제2 데이터 노드(185)는 제1 SDN 스위치(163)로부터 수신한 파일을 제2 SDN 스위치(165)로부터 전달받아 저장한다. 마지막으로, 제3 데이터 노드(187)는 제3 SDN 스위치(167)와 접속하여 제3 랙(197)에 위치한다. 제3 데이터 노드(187)는 제2 SDN 스위치(165)로부터 수신한 파일을 제3 SDN 스위치(167)로부터 전달받아 저장한다.
또한, 제1 데이터 노드(183) 내지 제3 데이터 노드(187)는 클라이언트 노드(100)에서 파일을 요청하면, 저장된 파일을 클라이언트 노드(100)로 제공한다.
여기서 분산 파일 시스템에는 3개의 SDN 스위치 및 데이터 노드를 포함한다고 예를 들어 설명하였지만 이에 한정되지 않으며, SDN 스위치와 데이터 노드가 접속되어 SDN 스위치와 데이터 노드의 개수가 동일하면 그 개수는 무관하다.
도 2는 도 1의 도시된 분산 파일 시스템의 SDN 컨트롤러를 나타낸 블록도이다.
도 2를 참조하면, SDN 컨트롤러(140)는 수신부(210), 생성부(220), 제어부(230), 전송부(240) 및 저장부(250)를 포함한다.
수신부(210)는 클라이언트 노드(100)와 접속하여 데이터를 수신한다. 즉, 수신부(210)는 클라이언트 노드(100)로부터 데이터 노드 리스트를 수신한다.
생성부(220)는 제1 SDN 스위치(163) 내지 제3 SDN 스위치(167)를 제어하기 위한 플로우 엔트리 정보를 생성한다. 구체적으로, 생성부(220)는 클라이언트 노드(100)로부터 수신한 데이터 노드 리스트를 기반으로 복제 대상이 되는 제1 데이터 노드(183) 내지 제3 데이터 노드(187)를 확인한다. 생성부(220)는 제1 데이터 노드(183) 내지 제3 데이터 노드(187) 각각과 연결된 제1 SDN 스위치(163) 내지 제3 SDN 스위치(167)를 확인한다. 생성부(220)는 제1 SDN 스위치(163) 내지 제3 SDN 스위치(167) 별로 수행할 액션 규칙을 생성하고, 생성한 액션 규칙을 포함하는 플로우 엔트리 정보를 생성한다. 이때, 생성부(220)는 플로우 엔트리 정보를 SDN 언어로 생성할 수 있다. 예를 들어, SDN 언어는 오픈 플로우 프로토콜(open flow protocol)일 수 있다.
제어부(230)는 SDN 컨트롤러(140)의 전반적인 동작을 제어한다. 즉, 제어부(230)는 SDN 컨트롤러(140)의 구성 요소인 수신부(210), 생성부(220), 전송부(240) 및 저장부(250)를 제어하는 기능을 수행한다. 예를 들어, 수신부(210)를 통해 클라이언트 노드(100)로부터 데이터 노드 리스트를 수신하면, 제어부(230)는 플로우 엔트리 정보를 생성하도록 생성부(220)를 제어할 수 있다. 생성부(220)에서 플로우 엔트리 정보를 생성하면, 제1 SDN 스위치(163) 내지 제3 SDN 스위치(167)로 플로우 엔트리 정보를 전송하도록 전송부(240)를 제어할 수 있다.
전송부(240)는 제1 SDN 스위치(163) 내지 제3 SDN 스위치(167)와 접속하여 데이터를 전송한다. 즉, 전송부(240)는 제1 SDN 스위치(163) 내지 제3 SDN 스위치(167) 각각으로 플로우 엔트리 정보를 전송한다. 또한, 전송부(240)는 클라이언트 노드(100)와 접속하여 분산 파일을 관리하기 위한 데이터를 전송한다.
저장부(250)는 SDN 컨트롤러(140)의 전반적인 동작을 제어하기 위한 다양한 프로그램을 저장한다. 그리고, 저장부(250)는 생성부(220) 및 제어부(230)에서 생성한 데이터, 수신부(210), 생성부(220), 제어부(230), 전송부(240)에서 분산 파일을 관리하기 위해 필요한 데이터를 저장한다. 예를 들어, 저장부(250)는 수신부(210)에서 수신한 데이터 노드 리스트를 저장할 수 있고, 생성부(220)에서 생성한 액션 규칙 및 플로우 엔트리 정보를 포함하는 저장할 수 있다.
또한, 저장부(250)는 수신부(210), 생성부(220), 제어부(230) 및 전송부(240)의 요청에 따라 필요한 데이터를 제공할 수 있다. 저장부(250)는 통합 메모리로 이루어지거나, 복수의 메모리들로 세분되어 이루어질 수 있다. 예를 들어, 저장부(250)는 롬 (Read Only Memory: ROM), 램 (Random Access Memory: RAM) 및 플래시 메모리 (Flash memory) 등으로 이루어질 수 있다.
본 발명의 일 실시예에 따른 분산 파일을 관리하는 방법은 도 3을 참조하여 설명하기로 한다. 앞서 도 2를 참조하여 설명한 SDN 컨트롤러(140)의 각 구성은 통합되거나 또는 세분화될 수 있는바, 해당 명칭에 구애 받지 아니하고, 상술한 기능을 수행하는 구성 요소는 SDN 컨트롤러(140)의 구성이 될 수 있음을 명확히 한다. 따라서, 도 3을 이용하여 본 발명의 일 실시예에 따른 분산 파일 관리 방법을 설명함에 있어서, 각 단계의 주체는 해당 구성 요소가 아닌 SDN 컨트롤러(140)를 주체로 하여 설명한다.
도 3은 SDN 컨트롤러의 분산 파일 관리 방법을 나타낸 순서도이다.
도 3을 참조하면, S310 단계에서, SDN 컨트롤러(140)는 분산하여 파일을 저장하기 위해 클라이언트 노드(100)로부터 데이터 노드 리스트를 수신한다.
S320 단계에서, SDN 컨트롤러(140)는 데이터 노드 리스트로부터 복제 대상이 될 제1 데이터 노드(183) 내지 제3 데이터 노드(187)를 확인하며, 복제 순서를 정한다. 그리고, SDN 컨트롤러(140)는 제1 데이터 노드(183) 내지 제3 데이터 노드(187) 각각과 연결된 제1 SDN 스위치(163) 내지 제3 SDN 스위치(167)를 확인한다.
S330 단계에서, SDN 컨트롤러(140)는 복제 순서를 기반으로 제1 SDN 스위치(163) 내지 제3 SDN 스위치(167) 각각을 제어하기 위한 액션 규칙을 생성한다. 즉, 도 4에 도시된 바와 같이 SDN 컨트롤러(140)는 제1 SDN 스위치(163)를 제어하기 위해 클라이언트 노드(100)로부터 파일을 수신되면 파일을 제1 데이터 노드(183)로 전달하는 동시에 목적지 주소 정보를 제2 데이터 노드(185)의 주소 정보로 변경한 후에 제2 SDN 스위치(165)로 파일을 전달하도록 제1 액션 규칙(420)을 생성할 수 있다. SDN 컨트롤러(140)는 제2 SDN 스위치(165)를 제어하기 위해 제1 SDN 스위치(163)로부터 파일을 수신하면 제2 데이터 노드(185)로 전달하는 동시에 목적지 주소 정보를 제3 데이터 노드(187)의 주소 정보를 변경한 후에 제3 SDN 스위치(167)로 파일을 전달하도록 제2 액션 규칙(440)을 생성할 수 있다. 그리고, SDN 컨트롤러(140)는 제3 SDN 스위치(167)를 제어하기 위하여 제2 SDN 스위치(165)로부터 파일을 수신하면, 제3 데이터 노드(187)로 파일을 전달하도록 제3 액션 규칙(460)을 생성할 수 있다.
S340 단계에서, SDN 컨트롤러(140)는 액션 규칙을 포함하는 플로우 엔트리 정보를 생성한다. 즉, SDN 컨트롤러(140)는 도 4에 도시된 바와 같이 제1 액션 정보(420)를 포함하는 제1 플로우 엔트리 정보(430)를 생성할 수 있으며, 제2 액션 정보(440)를 포함하는 제2 플로우 엔트리 정보(450)를 생성할 수 있고, 제3 액션 정보(460)를 포함하는 제3 플로우 엔트리 정보(470)를 생성할 수 있다.
S350 단계에서, SDN 컨트롤러(140)는 플로우 엔트리 정보를 제1 SDN 스위치(163) 내지 제3 SDN 스위치(167) 각각으로 전송한다. 즉, SDN 컨트롤러(140)는 제1 플로우 엔트리 정보(430)를 제1 SDN 스위치(163)로 전송하고, 제2 플로우 엔트리 정보(450)를 제2 SDN 스위치(165)로 전송하며, 제3 플로우 엔트리 정보(470)를 제3 SDN 스위치(167)로 전송할 수 있다.
도 5는 분산 파일 시스템의 분산 파일 방법을 나타낸 순서도이다.
도 5를 참조하면, S510 단계에서, 클라이언트 노드(100)는 사용자로부터 파일 저장 요청을 수신하면, 네임 노드(120)로부터 복제 대상에 대한 데이터 노드 리스트를 수신하고, 수신한 데이터 노드 리스트를 SDN 컨트롤러(140)로 전송한다.
S515 단계에서, SDN 컨트롤러(140)는 데이터 노드 리스트를 기반으로 제1 데이터 노드(183) 내지 제3 데이터 노드(187)를 확인하고 제1 데이터 노드(183) 내지 제3 데이터 노드(187) 각각에 연결된 제1 SDN 스위치(163) 내지 제3 SDN 스위치(167) 각각을 제어하기 위한 액션 노드를 포함하는 제1 플로우 엔트리 정보 내지 제3 플로우 엔트리 정보를 생성한다.
S520 단계에서, SDN 컨트롤러(140)는 제1 플로우 엔트리 정보를 제1 SDN 스위치(163)로 전송한다.
S525 단계에서, SDN 컨트롤러(140)는 제2 플로우 엔트리 정보를 제2 SDN 스위치(165)로 전송한다.
S530 단계에서, SDN 컨트롤러(140)는 제3 플로우 엔트리 정보를 제3 SDN 스위치(167)로 전송한다. SDN 컨트롤러(140)는 제1 SDN 스위치(163) 내지 제3 SDN 스위치(167) 각각으로 플로우 엔트리 정보를 전송 완료하였으면, 전송 완료 메시지를 클라이언트 노드(100)로 전송한다.
S535 단계에서, 클라이언트 노드(100)는 SDN 컨트롤러(140)로부터 전송 완료 메시지를 수신하면, 제1 SDN 스위치(163)로 파일을 전송한다.
S540 단계에서, 제1 SDN 스위치(163)는 클라이언트로부터 파일을 수신하면, 제1 플로우 엔트리 정보에 포함된 제1 액션 규칙에 따라 제1 데이터 노드(183)로 파일을 전달하는 동시에 제2 데이터 노드(185)로 목적지 정보를 변경한 후에 제2 SDN 스위치(165)로 파일을 전송한다. 이때, 제1 데이터 노드(183)는 제1 SDN 스위치(163)로부터 파일을 수신하여 저장한다. 그리고, 제1 데이터 노드(183)는 파일 저장을 완료하면, 클라이언트 노드(100)로 저장 완료 메시지를 전송한다.
S545 단계에서, 제2 SDN 스위치(165)는 제1 SDN 스위치(163)로부터 파일을 수신하면, 제2 플로우 엔트리 정보에 포함된 제2 액션 규칙에 따라 제2 데이터 노드(185)로 파일을 전달하는 동시에 제3 데이터 노드(187)로 목적지 정보를 변경한 후에 제3 SDN 스위치(167)로 파일을 전송한다. 이때, 제2 데이터 노드(185)는 제2 SDN 스위치(165)로부터 파일을 수신하여 저장한다. 그리고, 제2 데이터 노드(185)는 파일 저장을 완료하면, 클라이언트 노드(100)로 저장 완료 메시지를 전송한다.
S550 단계에서, 제3 SDN 스위치(167)는 제2 SDN 스위치(165)로부터 파일을 수신하면, 제3 플로우 엔트리 정보에 포함된 제3 액션 규칙에 따라 제3 데이터 노드(187)로 파일을 전달한다. 이때, 제3 데이터 노드(187)는 제3 SDN 스위치(167)로부터 파일을 수신하여 저장한다. 그리고, 제3 데이터 노드(187)는 파일 저장을 완료하면, 클라이언트 노드(100)로 저장 완료 메시지를 전송한다.
S555 단계에서, 클라이언트 노드(100)는 제1 데이터 노드(183) 내지 제3 데이터 노드(187) 각각으로부터 저장 완료 메시지를 수신하면, 파일 복제를 완료한다. 만약, 클라이언트 노드(100)는 제1 데이터 노드(183) 내지 제3 데이터 노드(187)로부터 저장 완료 메시지를 수신하지 않을 경우에, 상기 절차를 반복한다.
본 발명의 실시예에 따른 분산 파일 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플로피 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한 상술한 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 클라이언트 노드
120: 네임 노드
140: SDN 컨트롤러
163, 165, 167: SDN 스위치
183, 185, 187: 데이터 노드

Claims (12)

  1. 분산 파일 시스템에 있어서,
    복제를 위한 파일을 가지고 있는 클라이언트 노드;
    상기 파일을 수신하여 저장하는 제1 데이터 노드 및 제2 데이터 노드;
    상기 클라이언트 노드로부터 상기 파일을 수신하면, 상기 파일을 상기 제1 데이터 노드로 전달하는 동시에 제2 SDN 스위치로 전달하는 제1 SDN 스위치;
    상기 제1 SDN 스위치로부터 상기 파일을 수신하면, 상기 파일을 상기 제2 데이터 노드로 전달하는 상기 제2 SDN 스위치;
    상기 클라이언트 노드로부터 상기 파일의 저장 요청을 받으면, 상기 파일이 상기 제1 데이터 노드 및 상기 제2 데이터 노드에 저장되도록 상기 제1 SDN 스위치 및 상기 제2 SDN 스위치를 제어하는 SDN 컨트롤러; 및
    상기 클라이언트 노드로부터 파일 저장 요청을 수신하면, 상기 파일을 저장할 데이터 노드들을 선택하여 데이터 노드 리스트를 생성하고, 상기 데이터 노드 리스트를 상기 클라이언트 노드로 전송하는 네임 노드를 포함하되,
    상기 SDN 컨트롤러는 상기 클라이언트 노드로부터 상기 데이터 노드 리스트를 수신하고, 상기 데이터 노드 리스트를 기반으로 상기 파일을 저장할 상기 제1 데이터 노드 및 상기 제2 데이터 노드를 확인하며, 상기 제1 데이터 노드 및 상기 제2 데이터 노드 각각에 연결된 상기 제1 SDN 스위치 및 제2 SDN 스위치 별로 액션 규칙을 생성하고, 생성한 액션 규칙을 포함하는 플로우 엔트리 정보를 생성하여 상기 제1 SDN 스위치 및 상기 제2 SDN 스위치 각각으로 전송하고,
    상기 제1 SDN 스위치는 상기 플로우 엔트리 정보에 포함된 액션 규칙에 따라 상기 클라이언트 노드로부터 파일을 수신하면, 상기 파일을 상기 제1 데이터 노드로 전달하는 동시에 목적지 정보를 상기 제2 데이터 노드로 변경한 후에 상기 제2 SDN 스위치로 파일을 전송하는 것을 특징으로 하는 분산 파일 시스템.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1 항에 있어서,
    상기 제2 SDN 스위치는 상기 플로우 엔트리 정보에 포함된 액션 규칙에 따라 상기 제1 SDN 스위치로부터 파일을 수신하면, 상기 파일을 상기 제2 데이터 노드로 전달하는 것을 특징으로 하는 분산 파일 시스템.
  6. 제1 항에 있어서,
    상기 클라이언트 노드는 상기 제1 데이터 노드 및 상기 제 2 데이터 노드 각각으로부터 완료 메시지를 수신하면, 파일 복제 작업을 완료하는 것을 특징으로 하는 분산 파일 시스템.
  7. 분산 파일 시스템의 SDN 컨트롤러에 있어서,
    클라이언트 노드로부터 파일을 저장할 제1 데이터 노드 및 제2 데이터 노드를 포함하는 데이터 노드 리스트를 수신하는 수신부;
    상기 데이터 노드 리스트를 기반으로 상기 제1 데이터 노드 및 상기 제2 데이터 노드 각각과 연결된 제1 SDN 스위치 및 제2 SDN 스위치를 제어하기 위한 플로우 엔트리 정보를 생성하는 생성부; 및
    상기 플로우 엔트리 정보를 상기 제1 SDN 스위치 및 제2 SDN 스위치로 전송하는 전송부를 포함하되,
    상기 생성부는 상기 제1 SDN 스위치의 경우, 상기 파일을 수신하면, 상기 파일을 상기 제1 데이터 노드에 전달하는 동시에 목적지 주소 정보를 상기 제2 데이터 노드의 주소 정보로 변경하고, 상기 파일을 제2 SDN 스위치로 전송하도록 제1 SDN 스위치의 액션 규칙을 생성하고, 상기 제2 SDN 스위치의 경우, 상기 파일을 수신하면, 상기 파일을 상기 제2 데이터 노드에 전달하도록 상기 제2 SDN 스위치의 액션 규칙을 생성하는 것을 특징으로 하는 분산 파일 시스템의 SDN 컨트롤러.
  8. 제7 항에 있어서,
    상기 생성부는 상기 데이터 노드 리스트를 기반으로 상기 파일을 저장할 제1 데이터 노드 및 제1 데이터 노드를 확인하고, 상기 제1 SDN 스위치 및 상기 제2 SDN 스위치 별로 수행할 액션 규칙을 생성하고, 상기 액션 규칙을 포함하는 플로우 엔트리 정보를 생성하는 것을 특징으로 하는 분산 파일 시스템의 SDN 컨트롤러.
  9. 삭제
  10. SDN 컨트롤러가 분산하여 파일을 관리하는 방법에 있어서,
    클라이언트 노드로부터 파일을 분산 저장하기 위해 데이터 노드 리스트를 수신하는 단계;
    상기 데이터 노드 리스트를 기반으로 제1 데이터 노드 및 제2 데이터 노드를 확인하는 단계;
    상기 제1 데이터 노드 및 상기 제2 데이터 노드 각각과 연결된 제1 SDN 스위치 및 제2 SDN 스위치를 제어하기 위한 플로우 엔트리 정보를 생성하는 단계; 및
    상기 플로우 엔트리 정보를 상기 제1 SDN 스위치 및 상기 제2 SDN 스위치 각각으로 전송하는 단계를 포함하되,
    상기 플로우 엔트리 정보를 생성하는 단계는,
    상기 제1 SDN 스위치 및 제2 SDN 스위치 각각에서 수행할 액션 규칙을 생성하는 단계; 및
    상기 액션 규칙을 포함하는 플로우 엔트리 정보를 생성하는 단계를 포함하고,
    상기 액션 규칙을 생성하는 단계는,
    상기 제1 SDN 스위치의 경우, 상기 파일을 수신하면, 상기 파일을 상기 제1 데이터 노드에 전달하는 동시에 목적지 주소 정보를 제2 데이터 노드의 주소 정보로 변경하고, 상기 제2 SDN 스위치로 상기 파일을 전송하도록 제1 SDN 스위치의 액션 규칙을 생성하는 단계; 및
    상기 제2 SDN 스위치의 경우, 상기 파일을 수신하면, 상기 파일을 상기 제2 데이터 노드에 전달하도록 제2 SDN 스위치의 액션 규칙을 생성하는 단계를 포함하는 것을 특징으로 하는 분산 파일 방법.

  11. 삭제
  12. 삭제
KR1020130165915A 2013-12-27 2013-12-27 분산 파일 시스템 및 방법 KR101530346B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130165915A KR101530346B1 (ko) 2013-12-27 2013-12-27 분산 파일 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130165915A KR101530346B1 (ko) 2013-12-27 2013-12-27 분산 파일 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR101530346B1 true KR101530346B1 (ko) 2015-06-19

Family

ID=53519478

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130165915A KR101530346B1 (ko) 2013-12-27 2013-12-27 분산 파일 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101530346B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001282762A (ja) * 2000-03-30 2001-10-12 Fuji Photo Film Co Ltd 分散処理システムにおけるデータバックアップ装置および方法
US20130266007A1 (en) * 2012-04-10 2013-10-10 International Business Machines Corporation Switch routing table utilizing software defined network (sdn) controller programmed route segregation and prioritization
US20130318243A1 (en) * 2012-05-23 2013-11-28 Brocade Communications Systems, Inc. Integrated heterogeneous software-defined network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001282762A (ja) * 2000-03-30 2001-10-12 Fuji Photo Film Co Ltd 分散処理システムにおけるデータバックアップ装置および方法
US20130266007A1 (en) * 2012-04-10 2013-10-10 International Business Machines Corporation Switch routing table utilizing software defined network (sdn) controller programmed route segregation and prioritization
US20130318243A1 (en) * 2012-05-23 2013-11-28 Brocade Communications Systems, Inc. Integrated heterogeneous software-defined network

Similar Documents

Publication Publication Date Title
US8788760B2 (en) Adaptive caching of data
CN102523279B (zh) 一种分布式文件系统及其热点文件存取方法
US20150215405A1 (en) Methods of managing and storing distributed files based on information-centric network
JP5907709B2 (ja) コンテンツセントリックネットワークにおけるカストディアンベースのルーティングによるエネルギ効率のよいコンテンツキャッシング
US8954394B2 (en) Using mobile devices of a user as an edge cache to stream video files
US10021181B2 (en) System and method for discovering a LAN synchronization candidate for a synchronized content management system
JP5847185B2 (ja) コンテンツ中心のネットワーク環境でグループ変更に関する情報を用いるコンテンツ共有方法及び装置
CN102769640B (zh) 用户信息的更新方法、服务器以及系统
US20180013610A1 (en) File delivery method, apparatus and system
CN105978948B (zh) 一种云服务的方法和系统
CN104410660A (zh) 多媒体资源的下载方法、装置、路由器及服务器
CN108090078A (zh) 文档在线预览方法及装置
CN103248674B (zh) 跨域云平台的共享文件管理方法
CN103369002A (zh) 一种资源下载的方法及系统
CN114218540A (zh) 项目访问方法及装置
WO2013104181A1 (zh) 管理资源的方法和装置
CN106940712A (zh) 序列生成方法与设备
KR101666064B1 (ko) 분산 파일 시스템에서 url정보를 이용한 데이터 관리 장치 및 그 방법
KR101530346B1 (ko) 분산 파일 시스템 및 방법
CN110290196A (zh) 一种内容分发方法及装置
Andriani et al. An architecture for synchronising cloud file storage and organisation repositories
US10798147B2 (en) Constraint based controlled seeding
CN101662494A (zh) 一种实现内容提供的方法、系统和装置
CN103488768A (zh) 一种基于云计算的文件管理方法及系统
US20090327299A1 (en) Replicating modifications made to contents of a shared folder

Legal Events

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