KR101982416B1 - 복수의 데이터 노드를 이용하여 tcp 통신을 통해 데이터를 분산하여 저장하는 시스템을 위한 소프트웨어 정의 네트워크와, 이에 포함되는 스위치 및 그 제어 방법 - Google Patents

복수의 데이터 노드를 이용하여 tcp 통신을 통해 데이터를 분산하여 저장하는 시스템을 위한 소프트웨어 정의 네트워크와, 이에 포함되는 스위치 및 그 제어 방법 Download PDF

Info

Publication number
KR101982416B1
KR101982416B1 KR1020170166786A KR20170166786A KR101982416B1 KR 101982416 B1 KR101982416 B1 KR 101982416B1 KR 1020170166786 A KR1020170166786 A KR 1020170166786A KR 20170166786 A KR20170166786 A KR 20170166786A KR 101982416 B1 KR101982416 B1 KR 101982416B1
Authority
KR
South Korea
Prior art keywords
data
tcp segment
data node
switch
switches
Prior art date
Application number
KR1020170166786A
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 KR1020170166786A priority Critical patent/KR101982416B1/ko
Application granted granted Critical
Publication of KR101982416B1 publication Critical patent/KR101982416B1/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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

복수의 데이터 노드를 이용하여 데이터를 분산하여 저장하는 시스템을 위한 소프트웨어 정의 네트워크와, 이에 포함되는 스위치 및 그 제어 방법이 개시된다. 개시된 소프트웨어 정의 네트워크는 복수의 데이터 노드를 이용하여 데이터를 분산하여 저장하는 시스템을 위한 소프트웨어 정의 네트워크로서, 복수의 스위치; 및 상기 복수의 스위치를 제어하는 컨트롤러;를 포함하되, 클라이언트 단말에서 전송된 TCP 세그먼트는 상기 복수의 데이터 노드 중 K개의 데이터 노드에 저장되며, 상기 복수의 스위치 중 상기 TCP 세그먼트를 수신한 다수의 스위치 각각은 상기 K개의 데이터 노드의 위치에 기초하여 상기 수신된 TCP 세그먼트의 헤더의 수정 여부를 결정한 후 상기 수신된 TCP 세그먼트를 전송한다.

Description

복수의 데이터 노드를 이용하여 TCP 통신을 통해 데이터를 분산하여 저장하는 시스템을 위한 소프트웨어 정의 네트워크와, 이에 포함되는 스위치 및 그 제어 방법{SDN for system for distributed storing data by TCP communication using plurality of data nodes, Switch included the SDN and Method for controlling the switch}
본 발명의 실시예들은 복수의 데이터 노드를 이용하여 TCP 통신을 통해 데이터를 분산하여 저장하는 시스템(일례로, 클러스터 파일 시스템)에서의 데이터 저장 성능을 향상시키고 전체 네트워크 사용량을 감소시키는 소프트웨어 정의 네트워크와, 이에 포함되는 스위치 및 그 제어 방법에 관한 것이다.
블로그, UCC, IPTV 등과 같은 사용자 중심의 인터넷 서비스와 모든 디지털 기기를 이용하여 언제 어디서나 웹을 통해 서비스를 받을 수 있는 유비쿼터스 컴퓨팅 환경은 대규모의 클러스터 파일 시스템을 필요로 한다. 클러스터 파일 시스템은 복수의 데이터 노드를 이용하여 데이터를 중복 저장하는 시스템으로서, 대용량의 저장 공간과 빠른 입출력 성능을 제공하며, 서버 고장과 같은 시스템 장애가 발생하더라도 계속해서 안전하게 서비스를 제공할 수 있다.
클러스터 파일 시스템의 일례인 하둡 분산 파일 시스템(HDFS: Hadoop Distributed File System)은 다수의 리눅스 서버에 설치되어 운영되며, 뛰어난 확장성으로 페타바이트 이상의 대용량 데이터 저장 공간을 확보할 수 있다. 또한, 여러 대의 저장 노드가 동시에 데이터를 분산 처리하여 대규모 데이터 처리에 있어 빠른 속도를 보장한다. 여기서, 네임 노드(Name Node)는 하둡 분산 파일 시스템의 모든 메타데이터(디렉토리명, 파일명, 파일 블록 등에 대한 트리 형태의 네임 스페이스)를 관리하며, 데이터 노드는 블록 단위로 나뉜 데이터를 저장하며, 네임 노드와 클라이언트 단말의 데이터 입출력 요청을 관리한다.
이 때, 하둡 분산 파일 시스템에서 파일을 저장하는 경우, 고장 허용 범위(fault tolerance)를 제공하기 위해 n개의 데이터 노드에 중복하여 순차적으로 저장하며, 이 과정을 'HDFS write"라 한다. TCP(Transmission Control Protocol)는 HDFS write를 위해서 쓰이는 프로토콜로서, 전송 계층(Transport Layer)에서 신뢰성 있는 전송을 수행한다. TCP는 두 호스트 간의 데이터를 전송하기 위해서는 연결을 맺고, 신뢰성 전송을 위해 연결을 관리한다.
도 1은 종래 기술에 따른 TCP 전송을 이용한 하둡 분산 파일 시스템의 데이터 분산 저장 방식의 개념을 설명하기 위한 도면이다.
도 1을 참조하면, 하둡 분산 파일 시스템은 core 스위치(S1), aggregation 스위치(S2, S3), ToR(Top of Rack) 스위치(S4, S5) 및 데이터 노드(DN)를 포함하며, 클라이언트 단말(Client)는 3개의 데이터 노드인 데이터 노드 1(DN 1), 데이터 노드 2(DN 2), 데이터 노드 3(DN 3)로 TCP 통신을 통해 데이터를 중복으로 분산하여 저장하는 것으로 가정한다. 이하, HDFS의 동작을 설명하면 다음과 같다.
먼저, 클라이언트 단말은 core 스위치 S1로 TCP 세그먼트(segment)를 전송한다(단계 1). 이 때, 클라이언트 단말에서 전송된 TCP 세그먼트의 송신자는 "클라이언트 단말"이고, 수신자는 "데이터 노드 1(DN1)"이며, 이는 TCP 세그먼트의 헤더에 기록되어 있다. TCP 세그먼트는 aggregation 스위치 S2를 거쳐 데이터 노드 1(DN1) 및 데이터 노드 2(DN2)가 연결된 ToR 스위치 S4로 전달된다(단계 2, 3).
그 후, ToR 스위치 S4는 TCP 세그먼트의 헤더를 참조하여 데이터 노드 1(DN1)로 TCP 세그먼트를 전달한다(단계 4). 데이터 노드 1(DN1)는 수신된 TCP 세그먼트에서 페이로드를 추출 및 저장한다. 그리고, 데이터 노드 1(DN1)의 TCP 계층은 데이터 노드 1(DN1)의 응용 계층에 TCP 세그먼트의 수신 여부를 전달하고, 데이터 노드 1(DN1)의 응용 계층은 동일한 TCP 세그먼트를 데이터 노드 2(DN2)에게 전송하도록 하는 메시지를 데이터 노드 1(DN1)의 TCP 계층에 전송하며, 데이터 노드 1(DN1)의 TCP 계층은 수신된 메시지에 기초하여 수신된 TCP 세그먼트를 데이터 노드 2(DN2)에게 전송하도록 한다. 이에 따라, 데이터 노드 1(DN1)는 TCP 세그먼트를 ToR 스위치 S4로 전송한다(단계 5).
다음으로, ToR 스위치 S4는 수신된 TCP 세그먼트를 "데이터 노드 DN2"으로 전송한다(단계 6). 데이터 노드 DN2는 수신된 TCP 세그먼트에서 페이로드를 추출 및 저장하며, 앞서 설명한 단계 5와 유사한 동작을 수행한다. 이에 따라, 데이터 노드 2(DN2)는 TCP 세그먼트를 ToR 스위치 S4로 전송한다(단계 7).
계속하여, ToR 스위치 S4는 TCP 세그먼트를 데이터 노드 3(DN3)과 연결된 ToR 스위치 S2, ToR 스위치 S1 및 ToR 스위치 S5로 전달하며(단계 8, 9, 10, 11), ToR 스위치 S5는 데이터 노드 3(DN3)로 TCP 세그먼트를 전달한다(단계 12). 데이터 노드 DN3는 수신된 TCP 세그먼트에서 페이로드를 추출 및 저장한다.
요컨대, 도 1에 따른 HDFS의 데이터 분산 저장 방식은 동일한 데이터를 순차적으로 복제하여 전송(sequential duplicate transmission)하는데, 이러한 전송 방식은 전체 네트워크 사용량을 증가시키므로 비효율적인 단점이 있다.
한편, 소프트웨어 정의 네트워크(SDN: Software Defined Network)은 기존의 네트워크 장비와는 달리 컨트롤 평면(control plane)과 데이터 평면(data plane)이 분리되는 네트워크이다. 이 때, 컨트롤 평면에는 컨트롤러가 위치하고, 데이터 평면에는 복수의 스위치가 위치하며, 복수의 스위치는 컨트롤러에 의해 제어되며, 스위치는 주기적으로 자신의 상태를 컨트롤러에게 보고한다. 즉, 컨트롤러는 하부 스위치에 라우팅 메커니즘을 구성하여 전체적으로 네트워크를 관리한다. 따라서, 네트워크 구조가 단순화되어 있고, 네트워크 관리를 유연하게 해준다.
상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 복수의 데이터 노드를 이용하여 TCP 통신을 통해 데이터를 분산하여 저장하는 시스템(일례로, 클러스터 파일 시스템)에서의 데이터 저장 성능을 향상시키고 전체 네트워크 사용량을 감소시키는 소프트웨어 정의 네트워크와, 이에 포함되는 스위치 및 그 제어 방법을 제안하고자 한다.
본 발명의 다른 목적들은 하기의 실시예를 통해 당업자에 의해 도출될 수 있을 것이다.
상기한 목적을 달성하기 위해 본 발명의 바람직한 일 실시예에 따르면, 복수의 데이터 노드를 이용하여 데이터를 분산하여 저장하는 시스템을 위한 소프트웨어 정의 네트워크에 있어서, 복수의 스위치; 및 상기 복수의 스위치를 제어하는 컨트롤러;를 포함하되, 클라이언트 단말에서 전송된 TCP 세그먼트는 상기 복수의 데이터 노드 중 K개의 데이터 노드에 저장되며, 상기 복수의 스위치 중 상기 TCP 세그먼트를 수신한 다수의 스위치 각각은 상기 K개의 데이터 노드의 위치에 기초하여 상기 수신된 TCP 세그먼트의 헤더의 수정 여부를 결정한 후 상기 수신된 TCP 세그먼트를 전송하는 것을 특징으로 하는 소프트웨어 정의 네트워크가 제공된다.
상기 다수의 스위치는, 상기 K개의 데이터 노드와 직접 연결되지 않는 적어도 하나의 제1 스위치 및 상기 K개의 데이터 노드와 직접 연결된 적어도 하나의 제2 스위치를 포함하고, 상기 적어도 하나의 제1 스위치는 상기 헤더를 수정하지 않고 상기 TCP 세그먼트를 다른 제1 스위치 또는 상기 적어도 하나의 제2 스위치의 적어도 일부로 전송하고, 상기 적어도 하나의 제2 스위치 중에서 상기 K개의 데이터 노드 중 첫번째 데이터 노드와 연결된 하나의 제2 스위치는 상기 헤더를 수정하지 않고 상기 TCP 세그먼트를 상기 첫번째 데이터 노드로 전송하고, 상기 적어도 하나의 제2 스위치 중에서, 상기 K개의 데이터 노드 중 상기 첫번째 데이터 노드를 제외한 나머지 데이터 노드와 연결된 하나 이상의 제2 스위치 각각은 상기 헤더를 수정하여 상기 TCP 세그먼트를 상기 나머지 데이터 노드로 전송할 수 있다.
상기 헤더는, 상기 TCP 세그먼트의 송신자의 통신 관련 주소 정보, 상기 TCP 세그먼트의 수신자의 통신 관련 주소 정보, 시퀀스 번호 및 상기 헤더가 수정되었음을 알리는 필드값 중 적어도 하나를 포함할 수 있다.
상기 헤더가 수정되지 않는 TCP 세그먼트는, 상기 송신자가 상기 클라이언트 단말이고, 상기 수신자가 상기 첫번째 데이터 노드이고, 상기 필드값이 제1 값이며, 상기 헤더가 수정된 TCP 세그먼트 중에서 상기 K개의 데이터 노드 중 k번째 데이터 노드로 전송되는 TCP 세그먼트는, 상기 송신자가 k-1번째 데이터 노드이고, 상기 수신자가 상기 k번째 데이터 노드이고, 상기 필드값이 제2 값일 수 있다.
상기 k번째 데이터 노드는, 상기 헤더가 수정된 TCP 세그먼트를 수신하고, 상기 수신된 TCP 세그먼트에서 페이로드를 추출하여 저장하고, 상기 수신된 TCP 세그먼트에서 상기 시퀀스 번호를 보정하고, 상기 수신된 TCP 세그먼트에 대한 응답 메시지를 상기 다수의 스위치 중 적어도 일부를 통해 상기 k-1번째 데이터 노드로 전송하되, 상기 응답 메시지는 제3 값으로 설정된 상기 필드값을 포함하고, 상기 k-1번째 데이터 노드는, 상기 응답 메시지에 기초하여 가상 전송을 수행할 수 있다.
상기 k번째 데이터 노드는, 상기 TCP 세그먼트를 수신하기 전에 미리 수신한 제1 정보 및 제2 정보에 기초하여 상기 시퀀스 번호를 보정하되, 상기 제1 정보는 상기 클라이언트 단말과 상기 첫번째 데이터 노드의 TCP 연결 준비 과정에서 상기 클라이언트 단말에서 수신된 상기 수정되지 않는 TCP 세그먼트의 시퀀스 번호이고, 상기 제2 정보는 상기 k-1번째 데이터 노드와 상기 k번째 데이터 노드의 TCP 연결 준비 과정에서 상기 k-1번째 데이터 노드에서 전송된 시퀀스 번호일 수 있다.
본 발명의 다른 실시예에 따르면, 복수의 데이터 노드를 이용하여 데이터를 분산하여 저장하는 시스템을 위한 소프트웨어 정의 네트워크 내의 스위치에 있어서, 통신 연결을 위한 복수의 통신 인터페이스; 및 상기 복수의 통신 인터페이스를 제어하는 제어부;를 포함하되, 상기 복수의 통신 인터페이스 중 어느 하나의 통신 인터페이스는 TCP 세그먼트를 수신하고, 상기 제어부는, 상기 복수의 통신 인터페이스 중 어느 하나의 통신 인터페이스를 제외한 적어도 하나의 통신 인터페이스로 상기 수신된 TCP 세그먼트를 전송하도록 제어하되, 상기 복수의 데이터 노드 중 상기 TCP 세그먼트를 저장하는 K개의 데이터 노드의 위치 정보에 기초하여 상기 수신된 TCP 세그먼트의 헤더의 수정 여부를 결정하는 것을 특징으로 하는 스위치가 제공된다.
본 발명의 또 다른 실시예에 따르면, 복수의 데이터 노드를 이용하여 데이터를 분산하여 저장하는 시스템을 위한 소프트웨어 정의 네트워크 내의 스위치의 제어 방법에 있어서, 복수의 통신 인터페이스 중 어느 하나의 통신 인터페이스로 TCP 세그먼트를 수신하는 단계; 및 상기 복수의 통신 인터페이스 중에서 상기 어느 하나의 통신 인터페이스를 제외한 적어도 하나의 통신 인터페이스로 상기 수신된 TCP 세그먼트를 전송하는 단계;를 포함하되, 상기 전송하는 단계는 상기 복수의 데이터 노드 중 상기 TCP 세그먼트를 저장하는 K개의 데이터 노드의 위치 정보에 기초하여 상기 수신된 TCP 세그먼트의 헤더의 수정 여부를 결정한 후 상기 TCP 세그먼트를 전송하는 것을 특징으로 하는 스위치의 제어 방법이 제공된다.
본 발명에 따르면, 복수의 데이터 노드를 이용하여 데이터를 분산하여 저장하는 시스템(일례로, 클러스터 파일 시스템)에서의 데이터 저장 성능을 향상시키고 전체 네트워크 사용량을 감소시키는 장점이 있다.
또한, 본 발명의 효과는 상기한 효과로 한정되는 것은 아니며, 본 발명의 상세한 설명 또는 특허청구범위에 기재된 발명의 구성으로부터 추론 가능한 모든 효과를 포함하는 것으로 이해되어야 한다.
도 1은 종래 기술에 따른 TCP 전송을 이용한 하둡 분산 파일 시스템의 데이터 분산 저장 방식의 개념을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 데이터 분산 저장 시스템의 개략적인 구성을 도시한 도면이다.
도 3, 도 4 및 도 5는 본 발명의 일 실시예에 따른 데이터의 분산/중복 저장 방법의 흐름도를 도시한 도면이다.
도 6 및 도 7은 본 발명의 일 실시예에 따른 데이터의 분산/중복 저장 방법의 효과를 설명하기 위한 도면이다.
본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
이하, 본 발명의 다양한 실시예들을 첨부된 도면을 참조하여 상술한다.
도 2는 본 발명의 일 실시예에 따른 데이터 분산 저장 시스템의 개략적인 구성을 도시한 도면이다.
도 2를 참조하면, 데이터 분산 저장 시스템은 클러스터 파일 시스템(210) 및 소프트웨어 정의 네트워크(220)을 포함한다. 이하, 각 구성 요소 별로 그 기능을 상세하게 설명하기로 한다.
클러스터 파일 시스템(210)은 하둡 분산 파일 시스템(HDFS: Hadoop Distributed File System)일 수 있으며, 네임 노드(NN: Name Node)(210) 및 복수의 데이터 노드(DN: Date Node)(212)를 포함한다.
네임 노드(210)는 하둡 분산 파일 시스템의 모든 메타데이터(디렉토리명, 파일명, 파일 블록 등에 대한 트리 형태의 네임 스페이스)를 관리하며, 복수의 데이터 노드(212)는 데이터를 중복하여 저장하는 기능을 수행한다. 이 때, 복수의 데이터 노드(212) 중 K(2 이상의 정수)개의 데이터 노드에 데이터가 중복되어 저장된다.
클라이언트 단말(230)은 데이터 분산 저장 요청 메시지를 네임 노드(210)로 전송하며, 네임 노드(210)는 데이터가 저장될 K개의 데이터 노드의 정보를 포함하는 응답 메시지를 클라이언트 단말(230)로 전송한다. 일례로서, 도 1을 참조하면, 복수의 데이터 노드 중 3개의 데이터 노드인 데이터 노드 1(212-1), 데이터 노드 2(212-2), 데이터 노드 3(212-3)에 데이터가 저장되는 것으로 가정한다.
소프트웨어 정의 네트워크(220)는 데이터 평면(data plane)과 대응되는 인프라스트럭처 계층(infrastructure layer)과, 컨트롤 평면(control plane)과 대응되는 컨트롤 계층(control layer)를 포함한다.
데이터 평면은 소프트웨어 정의 네트워크의 특정 인터페이스를 통해 제어를 받는 계층으로서, 복수의 스위치(221)를 포함한다. 여기서, 복수의 스위치(221) 각각은 복수의 통신 인터페이스 및 이를 제어하는 제어부를 포함하며, 이를 통해 다른 스위치(221) 또는 데이터 노드(212)와 연결된다. 그리고, 스위치(221)는 core 스위치(S1), aggregation 스위치(S2, S3, S4) 및 ToR(Top of Rack) 스위치(S5, S6, S7) 중 어느 하나일 수 있으며, 복수의 데이터 노드(212) 각각은 ToR 스위치(S5, S6, S7)에 직접 연결될 수 있다.
컨트롤 계층은 데이터의 흐름을 제어하는 계층으로서 애플리케이션과 네트워크 서비스를 통하여 데이터 흐름을 종래 기술과 같이 라우팅할 것인지, 특정 통신 인터페이스로 전달을 할 것인지, 거절할 것인지를 결정하며, 이를 위해 컨트롤러(222)를 포함한다.
요컨대, 본 발명에 따른 소프트웨어 정의 네트워크(220)는 클러스터 파일 시스템(210)의 데이터 분산/중복 저장을 위한 것으로서, 복수의 스위치(221) 중 ToR 스위치(S5, S6, S7)에 복수의 데이터 노드(212) 각각이 직접 연결되고, 데이터는 복수의 데이터 노드(212) 중 K개의 데이터 노드(212)에 중복되어 저장되며, 컨트롤러(222)는 네임 노드(211)와 협력하여 데이터를 저장하기 위한 동작을 수행한다
그리고, 본 발명에 따른 클러스터 파일 시스템(210) 및 소프트웨어 정의 네트워크(220)를 통해 구현되는 데이터 분산/중복 저장 방법은 응용 계층을 수정하지 않고, 전송 계층인 TCP의 수정을 통해 도 1과 동일하게 데이터를 분산/중복하여 저장한다.
이하, 도 3 내지 도 5를 참조하여 본 발명의 일 실시예에 따른 데이터의 분산/중복 저장 방법을 상세하게 설명하기로 한다.
도 3은 본 발명의 일 실시예에 따른 데이터의 분산/중복 저장 방법의 흐름도를 도시한 도면이다.
이 때, 설명의 편의를 위해, 도 3에서는 네임 노드(211) 및 컨트롤러(222)의 표기를 생략하였으며, 3개의 데이터 노드인 데이터 노드 1(212-1), 데이터 노드 2(212-2), 데이터 노드 3(212-3)에 데이터가 저장되는 것으로 가정한다. 그리고, 복수의 스위치(221) 각각은 복수의 통신 인터페이스를 통해 클라이언트 단말(230), 또는 다른 스위치(221), 또는 데이터 노드(212)와 통신을 수행하는 것으로 가정한다. 또한, 네임 노드(211)는 데이터가 저장될 3개의 데이터 노드의 정보인 위치 정보 및 순서 정보를 클라이언트 단말(230) 및 컨트롤러(222)에 전송하며, 클라이언트 단말(230) 및 컨트롤러(222)는 3개의 데이터 노드의 위치 정보 및 순서 정보를 알고 있으며, 컨트롤러(222)의 제어를 받는 복수의 스위치(212) 역시 3개의 데이터 노드의 위치 및 순서를 알고 있는 것으로 가정한다. 이 때, 클러스터 파일 시스템(210) 내의 논리적 위치 정보이고, 순서 정보는 도 1에서 설명된 저장 순서 정보와 대응되는 것일 수 있다.
이하, 각 단계 별로 수행되는 동작을 상세하게 설명하기로 한다.
먼저, 단계(302)에서, 클라이언트 단말(230)는 복수의 스위치(221) 중 core 스위치인 스위치 S1으로 TCP 세그먼트(segment)를 전송한다.
보다 상세하게, TCP 세그먼트는 헤더(header) 및 페이로드(payload)로 구성된다. 페이로드는 저장하고자 하는 데이터와 대응되고, 헤더에는 TCP 세그먼트의 정보가 포함된다. 이 때, TCP 세그먼트의 정보는, TCP 세그먼트의 송신자의 통신 관련 주소 정보(일례로, 송신자의 IP 주소 정보 및 TCP 포트 주소 정보), TCP 세그먼트의 수신자의 통신 관련 주소 정보(일례로, 수신자의 IP 주소 정보 및 TCP 포트 주소 정보), 페이로드의 상대적 위치와 관련된 시퀀스 번호 및 필드값(reserved field) 중 적어도 하나를 포함할 수 있다. 특히, 필드값은 헤더가 수정되었음을 알리는 즉, TCP 세그먼트가 복제되었음을 알리는 정보일 수 있다. 일례로, 헤더가 수정되지 않는 경우(즉, 원본 TCP 세그먼트인 경우) 필드값은 제1 값(일례로, "0")을 가지고, 헤더가 수정된 경우(즉, 복제된 TCP 세그먼트인 경우), 필드값은 제2 값(일례로, "1") 및 제3 값(일례로, "2")을 가진다.
상기한 설명을 참조하면, 단계(302)에서 전송되는 TCP 세그먼트의 송신자는 "클라이언트 단말(230)"이고, 수신자는 3개의 데이터 노드 중 첫번째 데이터 노드인 "데이터 노드 1(212-1)"이고, 필드값은 제1 값을 가진다.
다음으로, 단계(304)에서, 스위치 S1은 수신된 TCP 세그먼트를 헤더의 수정 없이 aggregation 스위치인 스위치 S2 및 스위치 S4로 전달한다.
보다 상세하게, 복수의 스위치(221) 각각은 데이터가 저장될 3개의 데이터의 위치 정보 및 순서 정보를 알고 있으며, 스위치 S1는 3개의 데이터 노드가 간접적으로 연결되어 있는 스위치 S2 및 스위치 S4와 대응되는 통신 인터페이스로 TCP 세그먼트를 전달한다. 그리고, 스위치 S1는 TCP 세그먼트가 수신된 통신 인터페이스 및 3개의 데이터 노드가 연결되지 않는 스위치 S3와 대응되는 통신 인터페이스로는 TCP 세그먼트를 전달하지 않는다.
계속하여, 단계(306)에서, 스위치 S2는 수신된 TCP 세그먼트를 헤더의 수정 없이 ToR 스위치인 스위치 S5로 전송한다. 그리고, 단계(306)와 동시에 또는 인접한 시간에 수행되는 단계(308)에서, 스위치 S4는 수신된 TCP 세그먼트를 헤더의 수정 없이 ToR 스위치인 스위치 S7로 전송한다.
즉, 상기에서 언급한 바와 같이, 스위치 S2 및 스위치 S4 각각은 3개의 데이터 노드가 연결되어 있는 스위치 S5 및 스위치 S7와 대응되는 통신 인터페이스로 TCP 세그먼트를 전달하고, TCP 세그먼트가 수신된 통신 인터페이스 및 3개의 데이터 노드가 연결되지 않는 스위치 S6과 대응되는 통신 인터페이스로는 TCP 세그먼트를 전달하지 않는다.
그 후, 단계(310)에서, 스위치 S5는 수신된 TCP 세그먼트를 데이터 노드 1(212-1)와 대응되는 통신 인터페이스로 전송한다. 이 때, 데이터 노드 1(212-1)는 3개의 데이터 노드 중 첫번째 데이터 노드이고, 수신된 TCP 세그먼트의 수신자는 "데이터 노드 1(212-1)"이므로, 스위치 S5는 수신된 TCP 세그먼트를 헤더의 수정 없이 데이터 노드 1(212-1)로 전송한다. 데이터 노드 1(212-1)는 TCP 세그먼트의 헤더를 확인하여 TCP 세그먼트 내의 페이로드를 추출하여 저장한다.
그리고, 단계(310)와 동시에 또는 인접한 시간에 수행되는 단계(312)에서, 스위치 S5는 수신된 TCP 세그먼트를 데이터 노드 2(212-2)와 대응되는 통신 인터페이스로 전송한다.
여기서, 데이터 노드 2(212-2)는 첫번째 데이터 노드가 아니므로, 스위치 S5는 수신된 TCP 세그먼트의 헤더를 수정하고, 헤더가 수정된 TCP 세그먼트를 데이터 노드 2(212-2)로 전송한다. 이 경우, 스위치 S5는, TCP 세그먼트의 송신자를 "데이터 노드 1(212-1)"로 수정하고, TCP 세그먼트의 수신자를 "데이터 노드 2(212-2)"로 수정하며, 필드값을 제2 값으로 수정한다. 데이터 노드 2(212-2)는 앞서 도 1에서 설명한 바와 같이 데이터 노드 1(212-1)에서 전송된 TCP 세그먼트만을 수신할 수 있으며, 이 경우 스위치 S5에서 상기에서 설명한 바와 같이 헤더를 수정하였으므로, 데이터 노드 2(212-2)는 수정된 TCP 세그먼트를 수신한 후 페이로드를 추출하여 저장한다. 그리고, TCP 세그먼트의 필드값이 제2 값이므로, 데이터 노드 2(212-2)는 TCP 세그먼트가 원본 TCP 세그먼트가 아니라 복제된(수정된) TCP 세그먼트임을 알 수 있다.
계속하여, 단계(310) 및 단계(312)와 동시에 또는 인접한 시간에 수행되는 단계(314)에서, 스위치 S7는 수신된 TCP 세그먼트를 데이터 노드 3(212-3)와 대응되는 통신 인터페이스로 전송한다.
여기서, 데이터 노드 3(212-3)는 첫번째 데이터 노드가 아니므로, 스위치 S7는 수신된 TCP 세그먼트의 헤더를 수정하고, 헤더가 수정된 TCP 세그먼트를 데이터 노드 3(212-3)로 전송한다. 이 경우, 스위치 S7는, TCP 세그먼트의 송신자를 "데이터 노드 2(212-2)"로 수정하고, TCP 세그먼트의 수신자를 "데이터 노드 3(212-3)"로 수정하며, 필드값을 제2 값으로 수정한다. 데이터 노드 3(212-3)는 앞서 도 1에서 설명한 바와 같이 데이터 노드 2(212-2)에서 전송된 TCP 세그먼트만을 수신할 수 있으며, 이 경우 스위치 S7에서 상기에서 설명한 바와 같이 헤더를 수정하였으므로, 데이터 노드 3(212-3)는 수정된 TCP 세그먼트를 수신한 후 페이로드를 추출하여 저장한다. 그리고, TCP 세그먼트의 필드값이 제2 값이므로, 데이터 노드 3(212-3)는 TCP 세그먼트가 원본 TCP 세그먼트가 아니라 복제된 TCP 세그먼트임을 알 수 있다.
한편, 스위치 S5 및 스위치 S7은 3개의 데이터 노드가 아닌 다른 데이터 노드와 연결된 통신 인터페이스로는 TCP 세그먼트를 전송하지 않고, TCP 세그먼트가 수신된 통신 인터페이스로도 TCP 세그먼트를 전달하지 않는다.
상기의 내용을 정리하면, 복수의 스위치 중 TCP 세그먼트를 수신한 다수의 스위치(일례로, 도 3의 스위치 S1, S2, S4, S5, S7)는 수신된 TCP 세그먼트를 전송하되, K개의 데이터 노드의 위치 또는 위치와 순서에 기초하여 수신된 TCP 세그먼트의 헤더의 수정 여부를 결정할 수 있다.
이 때, 다수의 스위치는, K개의 데이터 노드와 직접 연결되지 않는 적어도 하나의 제1 스위치(일례로, 도 3의 스위치 S1, S2, S4) 및 K개의 데이터 노드와 직접 연결된 적어도 하나의 제2 스위치(일례로, 도 3의 스위치 S5, S7)를 포함하고, 적어도 하나의 제1 스위치는 헤더를 수정하지 않고 TCP 세그먼트를 다른 제1 스위치 또는 적어도 하나의 제2 스위치의 적어도 일부로 전송하고, 적어도 하나의 제2 스위치 중에서 첫번째 데이터 노드(일례로, 도 3의 데이터 노드(212-1))와 연결된 하나의 제2 스위치(일례로, 도 3의 스위치 S5)는 헤더를 수정하지 않고 TCP 세그먼트를 첫번째 데이터 노드로 전송하고, 적어도 하나의 제2 스위치 중에서 첫번째 데이터 노드를 제외한 나머지 데이터 노드와 연결된 하나 이상의 제2 스위치(일례로, 도 3의 스위치 S5, S7)는 헤더를 수정하여 TCP 세그먼트를 나머지 데이터 노드로 전송할 수 있다.
이 때, 수정되지 않는 TCP 세그먼트(즉, 원본 TCP 세그먼트)는, 송신자가 클라이언트 단말(230)이고, 수신자가 첫번째 데이터 노드이고, 필드값이 제1 값이며, K개의 데이터 노드 중 k(2 이상 K 이하의 정수)번째 데이터 노드로 전송되는 수정된 TCP 세그먼트(즉, 복제된 TCP 세그먼트)는, 송신자가 k-1번째 데이터 노드이고, 수신자가 k번째 데이터 노드이고, 필드값이 제2 값일 수 있다.
이를 통해, 복수의 스위치(221)가 TCP 세그먼트를 복제하고, 원본 TCP 세그먼트 및 복제된 TCP 세그먼트를 동시에 또는 인접한 시간 내에 K개의 데이터 노드로 전송하는 것이 가능해지며, 데이터 저장 성능을 향상시킨다.
또한, 도 1의 종래 기술에 따르면, 데이터를 저장하는 K개의 데이터 노드 중에서 마지막 데이터 노드를 제외한 데이터 노드는 다음 데이터 노드로 TCP 세그먼트를 전송하고, 다음 데이터 노드는 직전 데이터 노드를 통해 TCP 세그먼트를 획득한다. 하지만, 본 발명의 경우, 클라이언트 단말(230)은 종래 기술과 동일하게 TCP 세그먼트를 전달하지만, 복수의 스위치(221)는 하나의 원본 TCP 세그먼트 및 복제된 K-1개의 TCP 세그먼트 각각을 K개의 데이터 노드로 전달한다. 따라서, 마지막 데이터 노드를 제외한 데이터 노드는 다음 데이터 노드로 TCP 세그먼트를 전송하지 않으므로 전체 네트워크 사용량을 감소시킬 수 있다.
한편, 본 발명은 응용 계층을 수정하지 않으므로, 마지막 데이터 노드를 제외한 데이터 노드는 다음 데이터 노드로 TCP 세그먼트를 전송하여야 하는데, 이 경우 불필요한 전송이 된다. 따라서, 본 발명에서는 불필요한 전송을 방지하기 위해 마지막 데이터 노드를 제외한 데이터 노드는 다음 데이터 노드로 가상의 TCP 세그먼트 전송을 수행하며, 이는 TCP 세그먼트의 필드값에 기초하여 수행될 수 있다.
즉, 본 발명의 일 실시예에 따르면, 수정된(복제된) TCP 세그먼트 수신하는 k번째 데이터 노드는, TCP 세그먼트 수신에 대한 응답 메시지를 다수의 스위치 중 적어도 일부를 통해 k-1번째 데이터 노드로 전송할 수 있다. 이 때, 응답 메시지는 제3 값으로 설정된 필드값을 포함한다. 이 경우, k-1번째 데이터 노드는, 응답 메시지 즉, 제3 값으로 설정된 필드값에 기초하여 가상 전송(virtual transmission)을 수행할 수 있다. 가상 전송은 실제 TCP 세그먼트를 전송하지는 않지만, 마치 전송한 것처럼 프로토콜적인 메커니즘을 가동하는 것으로서, sliding window를 조절하고, retransmission timer를 시작하고, 이후에 k번째 데이터 노드로부터 수신하는 TCP ACK를 처리한다.
더불어, 응용 계층의 수정 없는 완전한 TCP 세그먼트의 저장을 위해, K-1개의 데이터 노드의 시퀀스 번호가 수정되어야 한다. 즉, k-1번째 데이터 노드가 k번째 데이터 노드로 전송한 것처럼 보이는 TCP 세그먼트의 경우, 시퀀스 번호는 클라이언트 단말(230)에서 전송한 TCP 세그먼트의 시퀀스 번호이므로, 도 4에서 도시된 바와 같이 시퀀스 번호에 차이가 날 수 있고, 보정이 필요하다. 일례로, 데이터 노드 2(DN2)에서는 시퀀스 번호 R2=200인 TCP 세그먼트를 획득하여야 하지만, 클라이언트 단말(230)에서 전송한 TCP 세그먼트의 시퀀스 번호는 시퀀스 번호 R2=300인 TCP 세그먼트를 획득하므로, 데이터 노드 2(DN2)에서는 페이로드를 추출한 후 시퀀스 번호를 보정하여야 한다. 시퀀스 번호의 보정은 아래의 수학식 1과 같이 표현된다.
Figure 112017121716224-pat00001
여기서, R1는 원본 TCP 세그먼트의 시퀀스 번호(즉, 첫번째 데이터 노드가 받기를 기대하는 시퀀스 번호), Rk는 k번째 데이터 노드가 받기를 기대하는 시퀀스 번호, diff k 는 R1과 Rk의 차를 의미한다.
그리고, 클라이언트 단말(230) 및 K개의 데이터 노드 각각은 다수의 스위치를 통해 파이프 라인을 형성하여 TCP 연결을 맺고, 그 후에 TCP 세그먼트를 전송한다. 일례로서, 도 5의 1~14 과정이 파이프 라인의 형성 과정이다.
즉, 도 5를 참조하면, 클라이언트 단말(client)이 데이터 노드 1(DN1)과 TCP 연결을 맺고(1~3 과정), 클라이언트 단말(client)은 파이프 라인에 대한 정보를 데이터 노드 1(DN1)로 전송한다. 위 과정에 해당하는 TCP segment는 데이터 노드 1(DN1)뿐만 아니라 데이터 노드 2(DN2)에게도 전달된다. 특히, 데이터 노드 1(DN1)와 데이터 노드 2(DN2) 간의 파이프 라인이 준비되었다는 응용 계층의 메시지를 데이터 노드 1(DN1)가 전송하고(13 과정), 이에 대한 TCP ACK를 클라이언트 단말(client)이 보내는데(14 과정), 이를 전달받은 데이터 노드 2(DN2)는 TCP ACK에 담긴 시퀀스 번호를 "R1"으로 하고, 데이터 노드 2(DN2)가 데이터 노드 1(DN1)로부터 받기를 기대하는 TCP 세그먼트의 시퀀스 번호를 "R2"로 하여 diff 2 를 산출한다. 그 이후에, 전달되는 TCP 세그먼트의 시퀀스 번호에 diff 2 를 더해줌으로써 보정한다.
시퀀스 번호의 보정 과정을 일반화하면, k번째 데이터 노드는, TCP 세그먼트를 수신하기 전에 미리 수신한 제1 정보 및 제2 정보에 기초하여 시퀀스 번호를 보정하되, 제1 정보는 클라이언트 단말(230)과 첫번째 데이터 노드의 TCP 연결 준비 과정에서 클라이언트 단말(230)에서 수신된 상기 수정되지 않는 TCP 세그먼트의 시퀀스 번호이고, 제2 정보는 k-1번째 데이터 노드와 k번째 데이터 노드의 TCP 연결 준비 과정에서 k-1번째 데이터 노드에서 전송된 시퀀스 번호일 수 있다.
이하, 도 6 및 도 7을 참조하며, 본 발명의 효과를 설명한다.
먼저, 도 6의 그래프에서, "chain"은 도 1의 종래의 기술을 의미하고, "mirrored"는 도 3에서 설명한 본 발명에 따른 방법을 의미하며, 그래프의 x축인 "replication factor"는 고장 허용 범위(fault tolerance)를 위해 중복 저장하는 파라미터를 의미한다
도 6을 참조하면, 본 발명에 따른, HDFS write를 위한 데이터 전송 시간은 종래 기술에 비해 약 25% 감소하고, HDFS write 전체 시간은 종래 기술에 비해 약 17% 감소함을 확인할 수 있다.
또한, 도 6을 참조하면, replication factor가 기본값인 3이라 가정했을 때, 본 발명의 경우 15%~40%의 트래픽(traffic)이 감소한다. 이와 같은 트래픽 감소를 통해 하둡 분산 파일 시스템은 다른 프로세스를 수행할 수 있으며, 데이터 저장 시스템의 성능을 향상시킬 수 있다.
여기서, 네트워크의 트래픽 감소 비율 분석은 아래의 수학식 2과 같이 표현될 수 있다.
Figure 112017121716224-pat00002
여기서,
Figure 112017121716224-pat00003
는 도 1의 종래 기술에 따른 순차 복제 전송(sequential duplicate transmission)을 본 발명에 따른 하나의 동시 전송(single concurrent transmission)으로 대체하였을 때 감소하는 트래픽을 의미하고,
Figure 112017121716224-pat00004
는 아래의 수학식 3과 같이 표현될 수 있다.
Figure 112017121716224-pat00005
여기서,
Figure 112017121716224-pat00006
는 x에서 y로 가는 link 수를 의미하고,
Figure 112017121716224-pat00007
는 HDFS write를 위해 거쳐가는 스위치를 각각 의미한다.
또한, 본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 일 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (8)

  1. 데이터 분산 저장 시스템을 위한 소프트웨어 정의 네트워크에 있어서,
    복수의 스위치; 및
    상기 복수의 스위치를 제어하는 컨트롤러;를 포함하되,
    클라이언트 단말에서 전송된 TCP 세그먼트는 상기 데이터 분산 저장 시스템 내의 복수의 데이터 노드 중 K개의 데이터 노드에 저장되고, 상기 TCP 세그먼트는 헤더 및 페이로드를 포함하되, 상기 헤더는, 상기 TCP 세그먼트의 송신자 및 수신자의 통신 관련 주소 정보와, 시퀀스 번호와, 상기 헤더가 수정되었음을 알리는 필드값 중 적어도 하나를 포함하고,
    상기 복수의 스위치 중 다수의 스위치는 상기 TCP 세그먼트를 수신하되, 상기 다수의 스위치는 상기 K개의 데이터 노드와 직접 연결되지 않는 적어도 하나의 제1 스위치 및 상기 K개의 데이터 노드와 직접 연결된 적어도 하나의 제2 스위치를 포함하고,
    상기 적어도 하나의 제1 스위치는 상기 TCP 세그먼트의 헤더를 수정하지 않고 상기 TCP 세그먼트를 다른 제1 스위치 또는 상기 적어도 하나의 제2 스위치의 적어도 일부로 전송하고, 상기 적어도 하나의 제2 스위치 중 상기 K개의 데이터 노드의 첫번째 데이터 노드와 연결된 하나의 제2 스위치는 상기 헤더를 수정하지 않고 상기 TCP 세그먼트를 상기 첫번째 데이터 노드로 전송하되, 상기 헤더가 수정되지 않는 TCP 세그먼트는, 상기 송신자가 상기 클라이언트 단말이고, 상기 수신자가 상기 첫번째 데이터 노드이고, 상기 필드값이 제1 값이며,
    상기 적어도 하나의 제2 스위치 중에서 상기 첫번째 데이터 노드를 제외한 상기 K개의 데이터 노드의 나머지 데이터 노드와 연결된 하나 이상의 제2 스위치 각각은 상기 헤더를 수정하여 상기 TCP 세그먼트를 상기 나머지 데이터 노드로 전송하되, 상기 K개의 데이터 노드의 k번째 데이터 노드로 전송되는 상기 헤더가 수정된 TCP 세그먼트는, 상기 송신자가 k-1번째 데이터 노드이고, 상기 수신자가 상기 k번째 데이터 노드이고, 상기 필드값이 제2 값이며,
    상기 k번째 데이터 노드는, 상기 헤더가 수정된 TCP 세그먼트를 수신한 후 상기 페이로드를 추출하여 저장하고, 상기 수신된 TCP 세그먼트에서 상기 시퀀스 번호를 보정하고, 상기 수신된 TCP 세그먼트에 대한 응답 메시지를 상기 다수의 스위치 중 적어도 일부를 통해 상기 k-1번째 데이터 노드로 전송하되 상기 응답 메시지의 상기 필드값은 제3 값이고, 상기 k-1번째 데이터 노드는 상기 응답 메시지에 기초하여 가상 전송을 수행하는 것을 특징으로 하는 소프트웨어 정의 네트워크.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 제1항에 있어서,
    상기 k번째 데이터 노드는, 상기 TCP 세그먼트를 수신하기 전에 미리 수신한 제1 정보 및 제2 정보에 기초하여 상기 시퀀스 번호를 보정하되,
    상기 제1 정보는 상기 클라이언트 단말과 상기 첫번째 데이터 노드의 TCP 연결 준비 과정에서 상기 클라이언트 단말에서 수신된 상기 수정되지 않는 TCP 세그먼트의 시퀀스 번호이고,
    상기 제2 정보는 상기 k-1번째 데이터 노드와 상기 k번째 데이터 노드의 TCP 연결 준비 과정에서 상기 k-1번째 데이터 노드에서 전송된 시퀀스 번호인 것을 특징으로 하는 소프트웨어 정의 네트워크.
  7. 삭제
  8. 삭제
KR1020170166786A 2017-12-06 2017-12-06 복수의 데이터 노드를 이용하여 tcp 통신을 통해 데이터를 분산하여 저장하는 시스템을 위한 소프트웨어 정의 네트워크와, 이에 포함되는 스위치 및 그 제어 방법 KR101982416B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170166786A KR101982416B1 (ko) 2017-12-06 2017-12-06 복수의 데이터 노드를 이용하여 tcp 통신을 통해 데이터를 분산하여 저장하는 시스템을 위한 소프트웨어 정의 네트워크와, 이에 포함되는 스위치 및 그 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170166786A KR101982416B1 (ko) 2017-12-06 2017-12-06 복수의 데이터 노드를 이용하여 tcp 통신을 통해 데이터를 분산하여 저장하는 시스템을 위한 소프트웨어 정의 네트워크와, 이에 포함되는 스위치 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR101982416B1 true KR101982416B1 (ko) 2019-05-24

Family

ID=66680307

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170166786A KR101982416B1 (ko) 2017-12-06 2017-12-06 복수의 데이터 노드를 이용하여 tcp 통신을 통해 데이터를 분산하여 저장하는 시스템을 위한 소프트웨어 정의 네트워크와, 이에 포함되는 스위치 및 그 제어 방법

Country Status (1)

Country Link
KR (1) KR101982416B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005502096A (ja) * 2001-01-11 2005-01-20 ゼット−フォース コミュニケイションズ インコーポレイテッド ファイルスイッチ及び交換ファイルシステム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005502096A (ja) * 2001-01-11 2005-01-20 ゼット−フォース コミュニケイションズ インコーポレイテッド ファイルスイッチ及び交換ファイルシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
J.Wu 외 1인,"Multicast-based Replication for Hadoop HDFS", IEEE/ACIS 16th International Conference on SNPD, June 2015* *

Similar Documents

Publication Publication Date Title
US11223702B2 (en) Method for migration of virtual network function
KR101694980B1 (ko) 데이터 분산 처리 장치 및 방법, 그리고 스토리지 서버
US9934242B2 (en) Replication of data between mirrored data sites
CN101188627B (zh) 用于客户-服务器通信系统的事务加速器
US20200059376A1 (en) Eventually consistent data replication in queue-based messaging systems
US9348662B2 (en) Network system and communication control method
CN107210976B (zh) 用于在网络中转发数据分组的方法及其可编程入口和出口节点
US20160006645A1 (en) Increased data transfer rate method and system for regular internet user
CN103118148B (zh) 一种arp缓存更新方法和设备
US9723074B2 (en) Method and apparatus for in the middle primary backup replication
US10142257B2 (en) Dynamic scaling of redundancy elimination middleboxes
US11403319B2 (en) High-availability network device database synchronization
US20160216891A1 (en) Dynamic storage fabric
JP6899837B2 (ja) リージョン間にわたるデータ送信
WO2014177085A1 (zh) 分布式多副本数据存储方法及装置
CN104782081A (zh) 套接字状态转移
CN113259476B (zh) 消息推送方法及系统
KR101982416B1 (ko) 복수의 데이터 노드를 이용하여 tcp 통신을 통해 데이터를 분산하여 저장하는 시스템을 위한 소프트웨어 정의 네트워크와, 이에 포함되는 스위치 및 그 제어 방법
CN111163120A (zh) 分布式数据库的数据存储传输方法和装置以及存储介质
JP6432392B2 (ja) ストレージシステム、ストレージ、管理サーバおよびファイル管理方法
WO2016063461A1 (ja) クラスタシステム、クラスタノード、クラスタ制御方法及びコンピュータ可読媒体
JP2013179430A (ja) 装置間同期および切替方法、並びに装置間切替システム
CN115941493B (zh) 基于组播的云场景nat网关集群的多活分配方法及装置
CN109901947B (zh) 容错数据存储访问单元、容错数据存储访问系统和访问数据存储的方法
US11936490B2 (en) L2 switch, communication method, and communication program

Legal Events

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