KR102266051B1 - 대용량 데이터 처리 및 고성능 nfv 시스템 구축 방법 - Google Patents

대용량 데이터 처리 및 고성능 nfv 시스템 구축 방법 Download PDF

Info

Publication number
KR102266051B1
KR102266051B1 KR1020200080158A KR20200080158A KR102266051B1 KR 102266051 B1 KR102266051 B1 KR 102266051B1 KR 1020200080158 A KR1020200080158 A KR 1020200080158A KR 20200080158 A KR20200080158 A KR 20200080158A KR 102266051 B1 KR102266051 B1 KR 102266051B1
Authority
KR
South Korea
Prior art keywords
virtual machine
network packet
blade server
network
packet controller
Prior art date
Application number
KR1020200080158A
Other languages
English (en)
Other versions
KR20200085247A (ko
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
Priority claimed from KR20130112115A external-priority patent/KR20150032085A/ko
Application filed by 김정호 filed Critical 김정호
Priority to KR1020200080158A priority Critical patent/KR102266051B1/ko
Publication of KR20200085247A publication Critical patent/KR20200085247A/ko
Application granted granted Critical
Publication of KR102266051B1 publication Critical patent/KR102266051B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/20Network management software packages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

네트워크 패킷 처리 성능이 우수한 네트워크 기능 가상화 기술이 개시된다. 개시된 네트워크 기능 가상화 기술에서는 네트워크 패킷을 직접 전송하는 네트워크 패킷 컨트롤러와 네트워크 패킷을 관리하는 블레이드 서버를 분리하여 관리함으로써, 네트워크를 용이하게 관리할 수 있으면서도, 네트워크 패킷 처리 성능을 우수하게 유지할 수 있다.

Description

대용량 데이터 처리 및 고성능 NFV 시스템 구축 방법{METHOD FOR PROCESSING HUGE DATA AND CONSTRUCTING HIGH PERFORMANCE NFV SYSTEM}
하기의 실시예들은 네트워크 가상화 시스템에 관한 것으로, 구체적으로는 가상화된 블레이드 서버 환경에서 네트워크 트래픽에 따라 유동적으로 네트워크 패킷을 분배 처리하고 추가적으로 가상화 시스템 성능 향상 및 그린 컴퓨팅을 달성하기 위하여 가상화된 네트워크 패킷 컨트롤러를 이용하여 고속으로 네트워크 패킷을 처리할 수 있는 가상화된 네트워크 패킷 컨트롤러를 포함하는 고성능 가상화 시스템에 관한 것이다.
네트워크 기술은 비즈니스, 가정, 그리고 학교에 대한 매우 중요한 인프라의 일부가 되었다. 그러나 개발자 혹은 연구자의 입장에서 보면, 이러한 성공이 네트워크 기술의 혁신을 가로 막는 장애 요소가 되었다. 즉, 장비 업체마다 장비를 운영하는 방식이나 사용자 인터페이스가 다르기 때문에 네트워크 사용자 혹은 연구자가 새로운 네트워크 프로토콜을 개발하여 적용하는 것이 매우 어려웠다.
이러한 문제점을 극복하기 위해서 개방형 인터페이스를 갖는 스위치나 라우터 기술이 연구되었다. 그러나 이러한 개방형 인터페이스를 제공하는 네트워크 기술들은 성능 대비 가격이 비싸기 때문에 상용화에 어려움이 있었다.
가상화 기술이란 물리적 특성을 추상화한 컴퓨팅 자원과 대상(사용자, 응용, 시스템 등) 간에 상호작용을 효율적으로 제어하는 기술이라고 말할 수 있는데, CPU, 메모리, 네트워크 디바이스 등과 같은 하드웨어 자원들과 단말, 애플리케이션 및 관리 등 거의 전 영역에 걸쳐 적용이 가능하다.
네트워크 기능 가상화(NFV: Network Function Virtualization) 기술은 표준화된 하드웨어와 그 표준화된 하드웨어 상에서 구동되는 소프트웨어 모듈을 이용하여 서버 및 네트워크의 부하 등에 따라 가변적인 리소스를 제공하는 기술이다. 네트워크 기능 가상화 기술을 이용하면, 개발 측면에서는 표준화된 API를 이용하여 개발 기간 단축 및 기능 추가가 용이하게 되며, 시스템 운용 측면에서는 추상화된 하드웨어 리소스를 이용하여 시스템 관리를 용이하게 할 수 있고, 결과적으로 시스템 구축 비용을 절감할 수 있는 장점이 있다.
하기의 실시예들의 목적은 고성능 네트워크 기능 가상화 기술을 제공하는 것이다.
하기의 실시예들의 목적은 다수의 블레이드 서버 및 네트워크 패킷 컨트롤러를 통한 가상화 시스템을 구성하고, 구성된 가상화 시스템 상에서 고속으로 네트워크 패킷 처리를 수행할 수 있는 방법을 제공함으로 써 기존 가상화 시스템 대비 시스템 구축 비용 및 운용 비용의 절감을 통해 최종적으로 그린 컴퓨팅을 달성하기 위한 것이다.
예시적 실시예에 따르면, 네트워크 패킷을 송수신하고 프로토콜 스택, DPI(Deep Packet Inspection), 암호화, 미디어 패킷 처리를 수행하는 가상머신을 구동하는 가상화된 네트워크 패킷 컨트롤러, 상기 네트워크 패킷 컨트롤러로부터 응용 프로그램 패킷을 수신하여 상기 응용 프로그램 패킷을 처리하는 가상머신을 구동하는 가상화된 블레이드 서버 및 상기 가상화된 네트워크 패킷 컨트롤러 및 상기 가상화된 블레이드 서버를 관리하는 가상화 관리자를 포함하는 고성능 네트워크 가상화 시스템이 제공된다.
여기서, 가상화 시스템에서 수행될 복수의 바이너리 코드를 저장하는 레파지토리를 더 포함하고, 상기 가상화 관리자는 상기 바이너리 코드들 중에서, 상기 네트워크 패킷의 처리 특성에 따른 바이너리 코드를 선택하고, 선택된 바이너리 코드를 상기 블레이드 서버의 가상머신 및 상기 네트워크 패킷 컨트롤러의 가상머신으로 전송하고, 상기 가상머신은 상기 선택된 바이너리 코드를 실행하여 상기 가상머신을 구동할 수 있다.
그리고, 상기 블레이드 서버는 상기 가상화 관리자로 블레이드 서버의 제2 가상머신에 대한 정보를 전송하고, 상기 블레이드 서버의 제2 가상머신에 대한 정보에 기반하여 상기 복수의 바이너리 코드들 중에서 선택된 바이너리 코드를 상기 가상화 관리자로부터 수신하고, 상기 수신된 바이너리 코드를 실행하여 블레이드 서버의 제2 가상머신을 구동할 수 있다.
또한, 상기 가상화 관리자는 상기 블레이드 서버의 가상머신 상태를 모니터링하고, 상기 블레이드 서버의 가상머신이 미리 결정된 시간 이상 동작하지 않는 경우에, 상기 블레이드 서버의 가상머신에 대한 정보를 상기 네트워크 패킷 컨트롤러의 가상머신으로 전송하고, 상기 네트워크 패킷 컨트롤러의 가상머신은 상기 응용프로그램 패킷의 전송을 중단할 수 있다.
여기서, 네트워크 패킷 컨트롤러의 제2 가상머신은 상기 블레이드 서버의 제2 가상머신에 연결되고, 상기 네트워크 패킷 컨트롤러는 네트워크 패킷 컨트롤러의 제2 가상머신에 대한 정보를 상기 가상화 관리자로 전송하고, 상기 네트워크 패킷 컨트롤러의 제2 가상머신에 대한 정보에 기반하여 상기 복수의 바이너리 코드들 중에서 선택된 바이너리 코드를 상기 가상화 관리자로부터 수신하고, 상기 수신된 바이너리 코드를 실행하여 상기 네트워크 패킷 컨트롤러의 제2 가상머신상에 제2 프로토콜 스택을 구동하고, 상기 블레이드 서버의 제2 가상머신으로부터 제2 네트워크 패킷에 대한 메시지 처리 규칙을 수신하고, 상기 제2 네트워크 패킷은 상기 수신된 메시지 처리 규칙에 따라 상기 제2 프로토콜 스택을 이용하여 송수신하고 처리된 제2 네트워크 패킷을 블레이드 서버의 제2 가상머신에 전달될 수 있다.
그리고, 상기 제2 프로토콜 스택은 상기 네트워크 패킷으로부터 시그널링 메시지를 추출하고, 상기 네트워크 패킷 컨트롤러의 제2 가상머신은 상기 시그널링 메시지를 상기 블레이드 서버의 제2 가상머신으로 전송하고, 상기 블레이드 서버의 제2 가상머신은 상기 시그널링 메시지를 처리하여 세션 정보를 생성하고, 상기 생성된 세션 정보를 상기 네트워크 패킷 컨트롤러의 제2 가상머신으로 전송하고, 상기 제2 프로토콜 스택은 상기 세션 정보를 참고하여 제2 네트워크 패킷에 포함된 데이터를 변환하여 상기 블레이드 서버의 제2 가상머신의 처리 없이 직접 포워딩할 수 있다.
또한, 상기 네트워크 패킷에 대한 분석(DPI: Deep Packet Inspection) 요청이 상기 블레이드 서버의 가상머신으로부터 상기 네트워크 패킷 컨트롤러의 가상머신으로 전송되고, 상기 프로토콜 스택은 상기 수신된 요청에 따라서, 상기 네트워크 패킷에 대한 분석을 수행하고, 상기 네트워크 패킷에 대한 분석의 결과를 참고하여 DPI 플로우(flow)를 생성하고, 상기 DPI 플로우에 대응되는 제2 네트워크 패킷에 대한 분석을 수행하고, 상기 네트워크 패킷 컨트롤러의 가상머신은 상기 제2 네트워크 패킷에 대한 분석의 결과를 상기 블레이드 서버의 가상머신으로 전송할 수 있다.
여기서, 상기 네트워크 패킷 컨트롤러의 가상머신은 상기 수신된 네트워크 패킷에 대한 메시지 처리 규칙을 상기 블레이드 서버의 가상머신으로부터 수신하고, 상기 메시지 처리 규칙에 따라서 상기 수신된 제2 네트워크 패킷을 상기 블레이드 서버의 가상머신으로 전송할 수 있다.
그리고, 상기 네트워크 패킷 컨트롤로의 가상머신은 블레이드 서버의 복수의 가상머신에 매핑되고, 상기 블레이드 서버의 가상머신들의 부하 정보는 상기 가상화 관리자로 전송되고, 상기 메시지 처리 규칙은 상기 블레이드 서버의 가상머신들의 부하 정보에 따라서 업데이트되고, 상기 네트워크 패킷은 상기 메시지 처리 규칙에 따라서 상기 네트워크 패킷 컨트롤러의 가상머신으로부터 상기 블레이드 서버의 가상머신으로 전송될 수 있다.
또한, 상기 프로토콜 스택은 상기 네트워크 패킷에 포함된 데이터에 대한 복호화 또는 디코딩을 수행하고, 상기 네트워크 패킷 컨트롤로의 가상머신은 복호화 또는 디코딩된 데이터를 상기 블레이드 서버의 가상머신으로 전송할 수 있다.
하기의 실시예들에 따르면, 성능이 우수한 네트워크 기능 가상화 기술을 제공할 수 있다.
하기의 실시예들에 따르면, 다수의 블레이드 서버 및 네트워크 패킷 컨트롤러를 통한 가상화 시스템을 구성할 수 있으며, 구성된 가상화 시스템 상에서 고속으로 네트워크 패킷 처리를 수행할 수 있는 방법을 제공할 수 있다. 또한 네트워크 패킷을 전송하는 네트워크 패킷 컨트롤러와 상기 네트워크 패킷을 처리하는 블레이드 서버를 분리하여 네트워크 패킷을 용이하게 처리할 수 있다.
도 1은 네트워크 기능 가상화 기술이 적용된 네트워크를 도시한 도면이다.
도 2는 예시적 실시예에 따른 네트워크 가상화 시스템의 구조를 도시한 블록도이다.
도 3은 또 다른 예시적 실시예에 따른 네트워크 가상화 시스템의 구조를 도시한 블록도이다.
도 4는 블레이드 서버의 가상머신을 추가하는 예시적 실시예를 도시한 블록도이다.
도 5는 블레이드 서버의 가상머신을 삭제하는 예시적 실시예를 도시한 블록도이다.
도 6은 네트워크 패킷 컨트롤러의 가상머신을 추가하는 예시적 실시예를 도시한 블록도이다.
도 7은 네트워크 패킷을 포워딩하는 예시적 실시예를 도시한 블록도이다.
도 8은 네트워크 부하를 분산하는 예시적 실시예를 도시한 블록도이다.
도 9는 예시적 실시예에 따라서, 블레이드 서버의 가상머신을 추가하는 방법을 단계별로 설명한 순서도이다.
도 10은 예시적 실시예에 따라서, 블레이드 서버의 가상머신을 삭제하는 방법을 단계별로 설명한 순서도이다.
도 11은 예시적 실시예에 따라서, 네트워크 패킷 컨트롤러의 가상머신을 추가하는 방법을 단계별로 설명한 순서도이다.
도 12는 예시적 실시예에 따라서, 세션 정보에 따라 네트워크 패킷을 포워딩하는 방법을 단계별로 설명한 순서도이다.
도 13은 예시적 실시예에 따라서, DPI 기능을 수행하는 방법을 단계별로 설명한 순서도이다.
도 14는 예시적 실시예에 따라서 메시지 라우팅 기능을 수행하는 방법을 단계별로 설명한 순서도이다.
도 15는 예시적 실시예에 따라서, 부하를 분산하는 방법을 단계별로 설명한 순서도이다.
이하, 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 네트워크 기능 가상화 기술이 적용된 네트워크를 도시한 도면이다.
단말기들(110, 120)은 기지국(130, 140)을 경유하여 네트워크 시스템(150)으로 데이터를 전송한다. 네트워크 시스템(150)은 단말기(110, 120)가 전송한 데이터의 특성에 따라 여러 가지 네트워크 엔티티(151, 152, 153, 154, 155, 156, 157, 158)들을 이용하여 데이터를 처리한다. 일측에 따르면, 네트워크 시스템(150)은 단말기(110, 120)가 전송한 데이터의 특성에 따라 데이터를 다른 시스템으로 포워딩할 수도 있고, 단말기(110, 120)간의 데이터 전송을 위해 세션을 생성할 수도 있다.
도 1에서, MME(151, 152)는 단말기(110, 120)로부터 데이터를 수신하거나, 각 단말기(110, 120)로 데이터를 전송하기 위하여 각 기지국(130, 140)의 동작을 제어하는 기지국 제어기이다. MME(151, 152)는 각 단말기(110, 120)가 네트워크에 접속하는 경우, 각 단말기(110, 120)를 인증하고, 단말기(110, 120)의 데이터 전송을 위한 베어러를 관리한다. 또한, 각 단말기(110, 120)가 네트워크가 접속해있는지, 또는 데이터를 전송하고 있는지 여부 등을 관리한다.
SGW(153, 157) 및 PDN-GW(154)는 기지국과 교환기 사이에서 데이터의 경로를 지정해주는 게이트웨이이다. SGW(153, 157)는 단말기(110, 120)가 기지국(130, 140)간 핸드오버를 수행하는 도중에 기지국(130, 140)간의 시그널링을 수행할 수 있다. PDN-GW(154)는 단말기(110, 120)로 패킷 데이터를 전송하기 위하여 사용되는 게이트웨이이다.
HSS(155, 156)은 각 단말기(110, 120)의 인증을 위한 키(Key) 정보, 가입자 프로파일을 보유한다. 각 가입자 프로파일은 각 가입자가 가입한 서비스 상품에 맞는 QoS 정보(우선순위, 최대 사용 가능 대역폭 등)를 포함할 수 있다. 인증을 위한 키 정보, 가입자 프로파일은 각 단말기(110, 120)가 네트워크에 접속할 때 HSS(155, 156)으로부터 MME(151, 152)로 전송될 수 있다.
PCRF(158)는 단말기(110, 120)와 관련한 QoS 제어에 필요한 정책을 결정한다.
단말기(110, 120)가 네트워크를 통해 데이터를 전송하기 위해서는 도 1에 도시된 여러 가지 네트워크 엔티티(151, 152, 153, 154, 155, 156, 157, 158)들이 모두 필요하다. 그러나, 특정 네트워크 엔티티(151, 152, 153, 154, 155, 156, 157, 158)로 동작하는 하드웨어만을 이용하여 네트워크를 운용하면, 변동하는 트래픽이나, 프로토콜에 유연하게 대응하기 어렵다.
이를 극복하기 위하여, 표준화된 하드웨어로 구성된 블레이드 서버들을 구비하고, 필요에 따라 각 블레이드 서버들을 적절한 네트워크 엔티티(151, 152, 153, 154, 155, 156, 157, 158)로 동작하게 하려는 기술이 제안되었다. 그러나, 이 경우에는 표준화된 하드웨어로 구성된 블레이드 서버들이 특정 목적으로 제작된 하드웨어 엔티티의 성능에 크게 미달하는 문제점이 있었다.
도 2는 예시적 실시예에 따른 네트워크 가상화 시스템의 구조를 도시한 블록도이다.
예시적 실시예에 따른 네트워크 가상화 시스템은 가상화된 네트워크 패킷 컨트롤러(210), 가상화된 블레이드 서버(200), 가상화 관리자 및 레파지토리를 포함한다.
가상화 관리자는 네트워크 가상화 시스템의 동작을 제어하며, 네트워크 트래픽, 네트워크 가상화 시스템이 처리하려는 네트워크 패킷의 특성에 따라서 블레이드 서버가 가상머신을 추가적으로 구동하도록 제어하거나, 또는 네트워크 패킷 컨트롤러의 가상머신이 특정한 프로토콜 스택을 구동하도록 제어한다. 일측에 따르면, 가상화 관리자는 EPC workloads, IMS workloads, DPI workloads등의 요구에 따라 블레이드 서버(200) 또는 네트워크 패킷 컨트롤러(210)등의 리소스를 가변적으로 제어할 수 있다.
레파지토리는 블레이드 서버의 가상머신(260, 270, 280) 또는 네트워크 패킷 컨트롤러의 가상머신(211, 212, 213)에 다운로드하여 구동될 수 있는 복수의 바이너리 코드를 저장하는 저장장치이다.
*네트워크 패킷 컨트롤러(210)는 네트워크 패킷을 송수신하고 처리하는 고성능 패킷 처리 전용 카드이다. 네트워크 패킷 컨트롤러(210)는 복수의 코어를 가진 CPU를 포함하는 하이퍼바이저 (Hypervisor, 214), 메모리(220), 저장부(230)를 이용하여 가상머신(221, 212, 213)을 구동할 수 있다. 네트워크 패킷 컨트롤러(210)의 가상머신(221, 212, 213) 위에서는 프로토콜 스택이 구동된다.
네트워크 패킷 컨트롤러 (210)는 네트워크 패킷을 처리하기 위하여 복수의 코어를 가진 CPU, DSP 등을 구비할 수 있으며, 암호화, DPI(Deep Packet Inspection)등을 수행하기 위한 전용 하드웨어를 구비할 수 있다. 이 때문에, 네트워크 패킷 컨트롤러(210)를 멀티코어 CPU 카드(Many Core CPU Card)라고 할 수도 있다.
네트워크 패킷 컨트롤러(210)의 하이퍼바이저(214)는 네트워크 패킷 컨트롤러의 가상머신(211, 212, 213)이 송수신하려는 네트워크 패킷의 특성을 가상화 관리자에게 보고한다. 가상화 관리자는 네트워크 패킷의 특성에 따라서 레파지토리에 저장된 복수의 바이너리 코드들 중에서 어느 하나의 코드를 선택한다. 네트워크 패킷 컨트롤러(210)의 가상머신(211, 212, 213)은 선택된 바이너리 코드를 실행하여 프로토콜 스택을 구동할 수 있다.
네트워크 패킷 컨트롤러(210)의 가상머신(211, 212, 213)은 프로코콜 스택을 이용하여 네트워크 패킷을 송수신한다.
블레이드 서버(200)는 표준화된 하드웨어로 구성되어 있으며, 레파지토리에 저장된 바이너리 코드를 다운로드받아 실행할 수 있는 서버이다. 블레이드 서버(200)가 바이너리 코드를 실행하면, 가상머신(260, 270, 280)이 구동된다. 일측에 따르면, 가상머신(260, 270, 280)은 도 1에 도시된 MME(151, 152), SGW(153), PDN-GW(154), HSS(155, 156), PCRF(158) 중 어느 하나의 일부 또는 전부로 동작할 수 있다. 각 가상머신 (260, 270, 280)은 독립적으로 동작하는 운영체제(261, 271, 281)를 이용하여 다른 가상머신들과는 독립적으로 운영된다. 네트워크 패킷 컨트롤러(210)의 가상머신(211, 212, 213)이 수신한 네트워크 패킷이 블레이드 서버(200)의 각 가상머신(260, 270, 280)으로 전달되면, 각 가상머신(260, 270, 280)은 수신한 네트워크 패킷을 처리한다.
일측에 따르면, 네트워크 패킷 컨트롤러(210)는 PCI 카드 형태로 블레이드 서버(200)에 탑재될 수 있다. 특히 cPCI(Compact PCI) 또는 ePCI(external PCI)를 이용하여 블레이드 서버(200)에 탑재될 수 있다.
다른 측면에 따르면, 도 2에 도시된 네트워크 가상화 시스템은 백 패널을 구비한 랙(Rack)에 탑재될 수 있다. 이 경우에, 네트워크 패킷 컨트롤러(210), 블레이드 서버(200), 가상화 관리자, 레파지토리들은 랙에 포함된 데이터 버스를 이용하여 연결될 수 있다.
도 2에서 설명된 실시예에 따르면, 네트워크 패킷 컨트롤러(210)에서 가상머신(211, 212, 213)이 구동되고, 그 위에서 프로토콜 스택이 구동된다. 따라서, 네트워크 패킷 컨트롤러(210)에 대한 가상화는 블레이드 서버(200)가 아니라, 네트워크 패킷 컨트롤러(210)에서 수행될 수 있다.
종래의 네트워크 가상화 시스템은 블레이드 서버(200)가 통신 프로토콜 및 보안 기능을 수행한다. 예를 들어, DPI 기능을 수행하는 경우, 블레이드 서버(200)는 패킷을 분석하고, 패킷의 내용을 검출하는 기능을 수행한다. 따라서, 블레이드 서버(200)의 부하가 가중되어 상대적으로 통신 및 보안 성능이 하락한다.
그러나, 도 2에서 설명된 가상화 시스템에서는 가상화된 네트워크 패킷 컨트롤러(210)가 통신, 보안 기능 및 가상화 기능을 수행한다.
예를 들어, 네트워크 패킷 컨트롤러(210)의 가상머신(211, 212, 213)은 패킷을 분석하고, 패킷의 내용을 검출하는 기능을 수행하는 별도의 하드웨어를 이용할 수 있다. 네트워크 패킷 컨트롤러(210)의 가상머신(211, 212, 213)은 패킷의 내용을 검출하고, 그 결과만을 가상화된 블레이드 서버(200)에서 구동되는 가상머신(260, 270, 280)으로 전송하므로, 통신 및 보안 기능을 수행하는 경우에도 블레이드 서버(200)의 부하가 가중되지 않는다.
일측에 따르면, 블레이드 서버(200)의 가상머신(260, 270, 280)은 해당 네트워크 패킷을 처리하기 위한 세션의 관리, 제어 평면(Control Plane)의 관리 등을 수행하고, 네트워크 패킷 컨트롤러(200)의 가상머신(211, 212, 213)은 데이터 평면(Data Plane)의 관리를 수행할 수 있다. 또 다른 실시예에 따르면, 블레이드 서버(200)의 가상머신(260, 270, 280)은 상위 레이어의 처리를 수행하고, 네트워크 패킷 컨트롤러(210)의 가상머신(211, 212, 213)은 하위 레이어의 처리를 수행할 수 있다. 또 다른 실시예에 따르면, 하드웨어적으로 고성능이 필요한 처리는 전용 하드웨어를 구비한 네트워크 패킷 컨트롤러(210)에서 수행하고, 네트워크 상황에 따라 가변적인 할당이 필요한 처리는 블레이드 서버(200)의 가상머신(260, 270, 280)에서 수행할 수 있다.
일반적으로, 블레이드 서버(200)의 가상머신(260, 270, 280)이 데이터 평면(Data Plane)의 네트워크 패킷을 직접 처리하는 경우, 기존 블레이드 서버(200)의 성능 중에서 25%의 성능만을 패킷을 처리하기 위하여 사용할 수 있다. 이를 개선하기 위하여, 블레이드 서버(200)에서 구동되는 운영체제의 커널을 수정하여 패킷 처리를 응용 프로그램이 직접 수행할 수 도 있다. 그러나, 이 경우에도 블레이드 서버(200) 성능의 50% 성능만이 패킷 처리를 위하여 사용된다.
그러나, 도 2에서 설명된 실시예에서는 블레이드 서버(200)가 처리하던 데이터 평면 (Data Plane) 패킷을 네크워크 패킷 컨트롤러(210)를 통하여 수행한다. 따라서 블레이드 서버(200)의 로드는 감소한다. 도 2에 설명된 실시예에 따르면, 블레이드 서버(200)가 데이터 평면 (Data Plane)의 네트워크 패킷 메시지에 대한 처리는 최소화 하고, 제어 평면 (Control Plane)의 메시지에 대한 처리만 수행함으로써 블레이드 서버(200)의 성능 중에서 95% 이상의 성능을 패킷 처리를 위해 사용할 수 있다.
도 2에 도시된 실시예에 따르면, 표준화된 하드웨어를 구비한 블레이드 서버(200)를 이용하여 네트워크의 필요에 따라 가변적인 처리를 수행하면서도, 고성능의 네트워크 패킷 컨트롤러(210)를 이용하여 처리 속도, 처리 용량을 확보할 수 있다.
또한, 종래의 네트워크 가상화 시스템은 블레이드 서버(200)에서 구동되는 가상머신(260, 270, 280)이 직접 응용 프로그램 패킷을 수신하여 처리한다. 따라서, 네트워크 가상화 시스템의 처리 성능은 블레이드 서버(200)의 대역폭에 따라서 결정된다.
그러나, 도 2에 도시된 네트워크 가상화 시스템은 레파지토리에서 바이너리 코드를 다운로드할 수 있는 네트워크 패킷 컨트롤러(210)가 네트워크 패킷을 송수신한다. 바이너리 코드는 네트워크 패킷 컨트롤러(210) 상에서 구동되는 프로토콜에 대한 정보를 포함한다. 네트워크 패킷 컨트롤러(210)는 네트워크 패킷을 수신하고, 다중코어 프로세서상에서 구동되는 프로토콜을 이용하여 패킷에 대한 처리 또는 라우팅을 수행한다.
도 2에 도시된 네트워크 가상화 시스템은 레파지토리를 이용한 동적 바이너리를 수행할 수 있으므로, 필요에 따라 다양한 종류의 패킷을 처리할 수 있다. 예를 들어, 이미 설치된 네트워크 패킷 컨트롤러(210)의 가상머신(211, 212, 213)에 특정 바이너리 코드를 다운로드하여 해당 네트워크 패킷 컨트롤러(210)의 가상머신(211, 212, 213)이 해당 패킷을 송수신하도록 제어하고, 블레이드 서버(200)에 특정 바이너리 코드를 다운로드하여 가상머신(260, 270, 280)을 추가적으로 구동함으로써, 블레이드 서버(200)의 가상머신(260, 270, 280)이 해당 패킷을 처리할 수 있도록 제어할 수 있다.
도 2에 도시된 네트워크 가상화 시스템에 따르면, 프로토콜의 요구 성능에 따라서, 네트워크 패킷 컨트롤러(210)를 추가적으로 할당할 수있으며, 프로토콜별 하드웨어 추상화 기능도 제공할 수 있다. 또한, 특정 프로토콜을 처리하기 위해서 추가적인 성능이 필요한 경우, 또는 새로운 프로토콜을 처리하기 위한 경우에도 새로운 바이너리를 네트워크 패킷 컨트롤러(210) 또는 블레이드 서버(200)에 다운로드하여 좀더 유연하게 대처할 수 있다.
도 3은 또 다른 예시적 실시예에 따른 네트워크 가상화 시스템의 구조를 도시한 블록도이다.
도 3의 (a)는 복수의 네트워크 가상화 시스템을 연동하여 동작하는 클라우드 네트워크 가상화 시스템을 도시한 것이다. 클라우드 네트워크 가상화 시스템은 도 2에 도시된 네트워크 가상화 시스템을 여러 대 연동시키는 것이다. 이 경우에, 가상화 관리자(330)는 네트워크 가상화 시스템의 외부에 별개로 구현되어 각 네트워크 가상화 시스템의 가상화를 제어할 수 있다.
각 네트워크 가상화 시스템(310, 360)의 가상화된 네트워크 패킷 컨트롤러(320, 361) 및 가상화된 블레이드 서버(310, 360)의 동작 및 구성은 도 2에 도시된 바와 유사하므로 구체적인 설명은 생략하기로 한다.
도 3의 (b)는 블레이드 서버의 가상머신(391, 392, 393)이 이동성 관리, 인증, 가입자 관리 등의 어플리케이션을 실행하는 것을 도시한 것이다. 도 3의 (b)에 도시된 네트워크 가상화 시스템은 가상화된 네트워크 패킷 컨트롤러(381) 및 가상화된 블레이드 서버(380)로 구성된다.
네트워크 패킷 컨트롤러(381)는 다중코어CPU(382), 메모리(384), 저장부(383) 등을 구비하고, 가상머신을 구동한다. 네트워크 패킷 컨트롤러(381)의 가상머신 위에서 프로토콜 스택이 구동된다.
블레이드 서버(380)는 복수의 가상머신(391, 392, 393)을 구동할 수 있다. 각 가상머신(391, 392, 393)은 독립적인 운영체제(394, 395, 396)를 이용하여 독립적인 기능을 수행한다. 일측에 따르면, 각 가상머신(391, 392, 393)들은 단말기의 이동성 관리(391), 인증(398), 가입자 관리(399)의 기능을 수행하는 어플리케이션을 구동할 수 있다. 이 경우에, 각 가상머신(391, 392, 393)들은 도 1에 도시된 MME(151, 152), SGW(153), PDN-GW(154), HSS(155, 156), PCRF(158) 중 어느 하나의 일부 또는 전부로 동작할 수 있다.
도 4는 가상 서버를 추가하는 예시적 실시예를 도시한 블록도이다.
도 4에 도시된 네트워크 가상화 시스템은 가상화 관리자(410), 레파지토리(420), 블레이드 서버(430) 상에 복수의 가상머신(431, 432, 433, 434)들을 구동하고, 네트워크 패킷 컨트롤러(450) 상에 복수의 가상머신(451, 452, 453)들과 결합하여 동작한다.
네트워크 패킷 컨트롤러(450)의 가상머신(451, 452, 453)들은 네트워크 패킷을 송수신하는 프로토콜 스택을 구동한다.
블레이드 서버(430)는 복수의 가상머신(431, 432, 433)를 구동한다.
네트워크 패킷 컨트롤러(450)의 가상머신(451, 452, 453)이 프로토콜 스택을 이용하여 수신한 네트워크 패킷은 블레이드 서버(430)의 가상머신(431, 432, 433)으로 전송된다
도 4에 도시된 실시예에서, 블레이드 서버(430)는 가상머신(434)을 추가적으로 구동한다. 블레이드 서버(430)의 하이퍼바이저(435)는 추가될 가상머신(434)의 정보를 가상화 관리자(410)로 전송한다. 여기서, 추가된 가상머신(434)의 정보는 가상머신(434)의 처리 성능, 버전, 처리할 수 있는 네트워크 프로토콜의 특성 등에 대한 정보일 수 있다.
가상화 관리자(410)는 수신된 가상머신(434)의 정보에 기반하여 레파지토리(420)에 저장된 복수의 바이너리 코드들 중에서, 가상머신(434)에서 구동될 바이너리 코드를 선택한다. 가상화 관리자(410)는 선택된 바이너리 코드를 블레이드 서버(430)의 가상머신(434)로 전송한다.
블레이드 서버(430)의 하이퍼바이저(435)는 수신된 바이너리 코드를 실행하여 가상머신(434)를 구동한다.
가상화 관리자(410)는 추가된 가상머신(434)을 특정한 네트워크 패킷 컨트롤러(453)의 가상머신(451, 452, 453)에 매핑할 수 있다. 가상화 관리자(410)는 추가된 가상머신(434) 및 네트워크 패킷 컨트롤러(453)의 가상머신(451, 452, 453)간의 매핑 관계를 추가된 블레이드 서버(430)의 가상머신(434) 또는 네트워크 패킷 컨트롤러(450)의 가상머신(451, 452, 453)으로 전송할 수 있다. 가상화 관리자(410)는 추가된 블레이드 서버(430)의가상머신(434)에서 구동되는 바이너리 코드에 대한 정보를 추가된 블레이드 서버(430)의 가상머신(434)와 매핑된 네트워크 패킷 컨트롤러(450)의 가상머신(451, 452, 453)으로 전송할 수 있다.
추가된 블레이드 서버(430)의 가상머신(434)는 메시지 처리 규칙을 생성하고, 생성된 메시지 처리 규칙을 매핑된 네트워크 패킷 컨트롤러(450)의 가상머신(453)으로 전송할 수 있다. 매핑된 네트워크 패킷 컨트롤러(450)의 가상머신(453)은 메시지 처리 규칙을 수신한다. 네트워크 패킷 컨트롤러(450)의 가상머신(453)은 네트워크 패킷을 수신하고, 메시지 처리 규칙에 따라 네트워크 패킷을 처리할 수 있다. 일측에 따르면, 네트워크 패킷 컨트롤러(450)의 가상머신(453)은 추가된 가상머신(434)로 수신된 네트워크 패킷을 전달할 수 있다.
도 5는 블레이드 서버(530)의 가상머신(534)을 삭제하는 예시적 실시예를 도시한 블록도이다.
도 5에 도시된 실시예에서, 블레이드 서버(530)의 가상머신(534)는 가상화 관리자(510)에 의해 가상화되어 네트워크 엔티티의 일부로 동작한다. 일측에 따르면, 가상머신(534)의 가상화 에이전트(544)는 주기적 또는 비주기적으로 가상머신(534)의 상태를 가상화 관리자(510)로 보고할 수 있다.
가상화 관리자(510)는 가상머신(534)의 상태를 모니터링할 수 있다. 만약 가상화 관리자(510)가 가상머신(534)의 상태에 대한 보고를 가상화 에이전트(544)로부터 수신하지 못한다면, 가상화 관리자(510)는 가상머신(534)에 고장이 발생한 것으로 판단할 수 있다. 일측에 따르면, 가상화 관리자(510)는 블레이드 서버(530)의 하이퍼바이저(535)를 통해 가상머신(534)를 재부팅하거나, 바이너리 코드를 재수신하도록 가상화 에이전트(544)를 제어할 수 있다.
일측에 따르면, 가상화 관리자(510)는 미리 결정된 시간 이상 가상머신(534)의 상태에 대한 보고를 가상화 에이전트(544)로부터 수신하지 못할 수 있다. 이 경우에, 가상화 관리자(510)는 가상머신(534)에 심각한 오류가 발생한 것으로 판단하고, 가상머신(534)를 네트워크 가상화 시스템에서 삭제할 수 있다.
가상화 관리자(510)는 삭제된 가상머신(534)에 대한 정보를 블레이드 서버(530)와 매핑된 네트워크 패킷 컨트롤러(550)의 가상머신(551, 552, 553)으로 전송한다. 네트워크 패킷 컨트롤러(550)의 가상머신(551, 552, 553)은 블레이드 서버(530)의 가상머신(534)에 대한 정보를 삭제하고, 블레이드 서버(530)의 가상머신(534)에 대한 네트워크 패킷의 전송을 중단할 수 있다.
도 6은 네트워크 패킷 컨트롤러(650)상에 가상머신(653)을 추가하는 예시적 실시예를 도시한 블록도이다.
도 6에 도시된 실시예에서는 네트워크 패킷 컨트롤러(650)의 가상머신(563)이 네트워크 가상화 시스템에 추가된다. 추가되는 네트워크 패킷 컨트롤러(650)의 가상머신(653)은 종래의 가상머신(651, 652)들이 지원하지 못하는 기능을 수행할 수 있다. 또는 추가되는 네트워크 패킷 컨트롤러(650)의 가상머신(653)은 종래의 네트워크 패킷 컨트롤러(650)의 가상머신(651, 652)들과 동일한 기능을 수행할 수 있으며, 네트워크 가상화 시스템의 처리 용량을 증가시키기 위하여 추가될 수 있다.
추가된 네트워크 패킷 컨트롤러(650)의 하이퍼바이저(654)는 추가된 네트워크 패킷 컨트롤러(650)의 가상머신(653)에 대한 정보를 가상화 관리자(610)로 전송한다. 여기서, 추가된 네트워크 패킷 컨트롤러(650)의 가상머신(653)에 대한 정보는 가상머신(653)가 지원하는 기능에 대한 정보, 가상머신(653)의 처리 용량에 대한 정보, 가상머신(653)에서 수행될 수 있는 바이너리 코드에 대한 정보, 가상머신(653)의 버전에 대한 정보 등을 포함할 수 있다.
가상화 관리자(610)는 추가된 가상머신(653)에 대한 정보에 기반하여 레파지토리(620)에 저장된 복수의 바이너리 코드들 중에서, 추가된 가상머신(653)에서 구동될 카드 바이너리를 선택한다. 가상화 관리자(610)는 선택된 카드 바이너리를 추가된 가상머신(653)으로 전송한다.
추가된 가상머신(653)은 바이너리 코드를 수신하고, 수신된 바이너리 코드를 구동한다. 일측에 따르면, 수신된 바이너리 코드는 추가되는 가상머신(653)이 송수신해야할 네트워크 패킷과 관련된 프로토콜에 대한 정보를 포함할 수 있다. 가상화 관리자(610)는 추가된 가상머신(653)을 블레이드 서버(630)의 가상머신(634)에 매핑시킬 수 있다. 가상화 관리자(610)는 블레이드 서버(630)의 가상머신(634)과 추가된 네트워크 패킷 컨트롤러(650)의 가상머신(653)간의 매핑 정보를 블레이드 서버(630)의 가상머신(634) 및 추가된 네트워크 패킷 컨트롤러(650)의 가상머신(653)으로 전송할 수 있다.
추가된 네트워크 패킷 컨트롤러(650)의 가상머신(653)은 매핑된 블레이드 서버(630)의 가상머신(634)에 대한 정보를 수신한다. 추가된 네트워크 패킷 컨트롤러(650)의 가상머신(653)은 매핑된 블레이드 서버(630)의가상머신(634)로부터 메시지 처리 규칙을 수신한다. 추가된 네트워크 패킷 컨트롤러(650)의 가상머신(653)은 블레이드 서버(630)의 가상머신(634)으로부터 메시지를 수신할 수 있다. 또는 추가된 네트워크 패킷 컨트롤러(650)의 가상머신(653)은 네트워크 패킷을 수신하고, 메시지 처리 규칙에 따라서 수신된 네트워크 패킷을 처리할 수 있다. 일측에 따르면, 추가된 네트워크 패킷 컨트롤러(650)의 가상머신(653)은 수신된 네트워크 패킷을 다른 네트워크 엔티티로 포워딩할 수도 있고, 수신된 네트워크 패킷을 블레이드 서버(630)의 가상머신(634)으로 전송할 수도 있다.
도 7은 네트워크 패킷 컨트롤러(751)상의 가상머신에서 네트워크 패킷을 포워딩하는 예시적 실시예를 도시한 블록도이다.
가상화 관리자(710)는 블레이드 서버(731, 732, 733, 734)의 가상머신(741, 742, 743, 744)들 중에서 하나의 가상머신(744)를 선택하고, 네트워크 패킷 컨트롤러(751, 752, 753)상의 가상머신(761, 762, 763)들 중에서 하나의 가상머신(763)를 선택한다. 가상화 관리자(710)는 선택된 블레이드 서버(734)의 가상머신(744)과 선택된 네트워크 패킷 컨트롤러(753)의 가상머신(763)을 매핑시킬 수 있다. 일측에 따르면, 가상화 관리자(710)는 블레이드 서버(730)의 가상머신(744)와 네트워크 패킷 컨트롤러(753)의 가상머신(763)을 1:1로 매핑시킬수도 있으나, 복수의 블레이드 서버(731, 732, 733, 734)의 가상머신(741, 742, 743, 744)를 하나의 네트워크 패킷 컨트롤러(753)의 가상머신(763)에 매핑시킬수도 있고, 하나의 블레이드 서버(734) 가상머신(744)를 복수의 네트워크 패킷 컨트롤러(751, 752, 753)의 가상머신(761, 762, 763)에 매핑시킬 수도 있다.
일측에 따르면, 네트워크 패킷 컨트롤러(753)의 가상머신(763)는 네트워크 패킷을 수신할 수 있다. 네트워크 패킷 컨트롤러(753)의 가상머신(763)은 네트워크 패킷에서 시그널링 메시지 또는 제어 메시지(780)를 추출하고, 추출된 시그널링 메시지 또는 제어 메시지를 매핑된 블레이드 서버(734)의 가상머신(744)로 전송할 수 있다.
블레이드 서버(734)의 가상머신(744)는 네트워크 패킷에서 추출된 시그널링 메시지 또는 제어 메시지를 수신하고, 시그널링 메시지 또는 제어 메시지를 처리하여 해당 네트워크 패킷을 처리하기 위한 세션 정보를 생성할 수 있다. 블레이드 서버(734)의 가상머신(744)는 생성된 세션 정보를 네트워크 패킷 컨트롤러(753)의 가상머신(763)으로 전송할 수 있다.
네트워크 패킷 컨트롤러(751)의 가상머신(761)은 블레이드 서버(734)의 가상머신(744)로부터 세션 정보를 수신할 수 있다. 네트워크 패킷 컨트롤러(751)의 가상머신(761)은 수신된 세션 정보를 이용하여 이후 수신되는 데이터(770)를 처리할 수 있다. 일측에 따르면, 네트워크 패킷 컨트롤러(751)의 가상머신(761)은 이후 수신되는 데이터(770)는 블레이드 서버(734)의 가상 머신(744)로 전송하지 않고, 직접 다른 네트워크 엔티티로 포워딩할 수 있다.
일측에 따르면, 하나의 블레이드 서버(734)의 가상머신(744)는 복수의 네트워크 패킷 컨트롤러(751, 752, 753)의 가상머신(761, 762, 763)과 매핑될 수 있다. 이 경우에, 블레이드 서버(734)의 가상머신(744)는 하나의 네트워크 패킷 컨트롤러(753)의 가상머신(763)으로 세션 정보를 전송할 수 있다. 블레이드 서버(734)의 가상머신(744)로부터 세션 정보를 수신한 네트워크 패킷 컨트롤러(753)의 가상머신(763)은 해당 블레이드 서버(734)의 가상머신(744)와 매핑된 다른 네트워크 패킷 컨트롤러(751, 752)의 가상머신(761, 762)과 세션 정보를 동기화할 수 있다. 해당 블레이드 서버(734)의 가상머신(744)와 매핑된 다른 네트워크 패킷 컨트롤러(751, 752)의 가상머신(761, 762)은 동기화된 세션 정보를 이용하여 수신한 네트워크 패킷을 고속으로 처리할 수 있다.
네트워크 패킷 컨트롤러의 가상머신과 매핑된 블레이드 서버의 가상머신은 네트워크 패킷 컨트롤러의 가상머신으로 메시지 처리 규칙을 전송할 수 있다. 메시지 처리 규칙은 네트워크 패킷 컨트롤러의 가상머신이 수신한 네트워크 패킷을 처리하기 위한 정보를 포함한다. 도 7의 (b)는 메시지 처리 규칙의 일례를 도시한 것이다.
도 7의 (b)에 도시된 메시지 처리 규칙은 네트워크 패킷 컨트롤러의 가상머신이 수신한 네트워크 패킷의 조건에 따라 서로 다른 블레이드 서버의 가상머신으로 네트워크 패킷을 전송해야 함을 나타낸다. 예를 들어, 도 7의 (b)에 도시된 메시지 처리 규칙은 네트워크 패킷에 포함된 메시지의 타입이 "DIAMETER-Gx 인터페이스"인 경우, 네트워크 패킷 컨트롤러의 가상머신은 해당 네트워크 패킷을 제1블레이드 서버의 가상머신으로 전송하고, 네트워크 패킷에 포함된 메시지의 타입이 "GTP-C 프로토콜"인 경우, 네트워크 패킷 컨트롤러의 가상머신은 해당 네트워크 패킷을 제2 블레이드 서버의 가상머신로 전송해야함을 나타낸다. 또한, 네트워크 패킷 컨트롤러의 가상머신이 수신한 네트워크 패킷에 포함된 단말기의 식별자(IMSI:International Mobile Subscriber Identity)가 "010-1000-xxxx"인 경우에는 해당 네트워크 패킷을 제2 블레이드 서버의 가상머신로, 단말기의 식별자가 "010-2000-xxxx"인 경우에는 해당 네트워크 패킷을 제3 블레이드 서버의 가상머신로 전송해야함을 나타낸다.
도 7의 (b)에서는 네트워크 패킷에 포함된 메시지의 타입, 단말기의 식별자에 따라 해당 네트워크 패킷을 전송해야할 블레이드 서버의 가상머신이 결정되는 실시예가 도시되었으나, 다른 실시예에 따르면, 각 가상 서버의 부하에 따라 네트워크 패킷을 전송해야할 블레이드 서버의 가상머신이 결정될 수도 있다.
도 8은 블레이드 서버상에 네트워크 부하를 분산하는 예시적 실시예를 도시한 블록도이다.
일측에 따르면, 가상화 관리자(811)는 제1 블레이드 서버(810)의 가상머신 및 제2 블레이드 서버(820)의 가상머신를 제1 네트워크 패킷 컨트롤러(840)의 가상머신, 제2 네트워크 패킷 컨트롤러(850)의 가상머신 및 제3 네트워크 패킷 컨트롤러(860)의 가상머신에 매핑시킬 수 있다. 도 8의 (a)에서 제2 블레이드 서버(820)는 리소스의 일부만이 제1 네트워크 패킷 컨트롤러(840)의 가상머신, 제2 네트워크 패킷 컨트롤러(850)의 가상머신 및 제3 네트워크 패킷 컨트롤러(860)의 가상머신에 매핑되고, 제3 네트워크 패킷 컨트롤러(860)도 리소스의 일부만이 제1 블레이드 서버(810)의 가상머신 및 제2 블레이드 서버(820)의 가상머신에 매핑되었다.
따라서, 제3 네트워크 패킷 컨트롤러(860)는 수신한 네트워크 패킷의 특성에 따라 수신한 네트워크 패킷을 제1 블레이드 서버(810)의 가상머신, 제2 블레이드 서버(820)의 가상머신 및 제3 블레이드 서버(830)의 가상머신 중 어느 하나로 전송할 수 있다.
도 8의 (b)는 제3 네트워크 패킷 컨트롤러(860)의 가상머신이 수신한 메시지 처리 규칙을 도시한 것이다. 제3 네트워크 패킷 컨트롤러(860)는 메시지 처리 규칙에 따라서 수신한 네트워크 패킷을 처리한다. 일측에 따르면, 메시지 처리 규칙은 네트워크 패킷을 각 블레이드 서버의 가상머신에 분배하는 부하 분배 정보를 포함할 수 있다.
일측에 따르면, 각 블레이드 서버(810, 820, 830)의 가상화 에이전트는 해당 블레이드 서버(810, 820, 830)의 부하를 측정하고, 측정된 부하를 가상화 관리자(811)로 전송한다. 가상화 관리자(811)는 블레이드 서버(810, 820, 830)의 부하를 제3 네트워크 패킷 컨트롤러(860)로 전송하고, 제3 네트워크 패킷 컨트롤러(860)는 수신한 각 블레이드 서버(810, 820, 830)의 부하에 따라 메시지 처리 규칙에 포함된 부하 분배 정보를 업데이트할 수 있다.
도 7의 (b)에 따르면, 네트워크 패킷에 포함된 메시지의 타입이 "GTP-C 프로토콜"인 네트워크 패킷들 중에서, 30%의 네트워크 패킷은 제2 블레이드 서버(820)로, 70%의 네트워크 패킷은 제3 블레이드 서버(830)로 전송할 수 있다. 여기서, 30%와 70%가 부하 분배 정보에 해당하며, 블레이드 서버(810, 820, 830)의 부하에 따라 변경될 수 있는 값이다.
일측에 따르면, 도 2에 도시된 네트워크 가상화 시스템은 네트워크 패킷에 대한 DPI(Deep Packet Inspection) 기능을 수행할 수 있다. DPI 기능은 네트워크 트래픽을 제어하기 위하여 네트워크 패킷의 내용을 분석하고, 각 네트워크 패킷에 우선순위를 부여하는 기능이다.
일측에 따르면, 네트워크 패킷 컨트롤러(860)가 DPI 수행이 필요한 네트워크 패킷을 수신한 경우에, 네트워크 패킷 컨트롤러(860)는 블레이드 서버의 가상머신(260, 270, 280)으로부터 네트워크 패킷에 대한 분석(DPI) 요청을 수신할 수 있다. 일측에 따르면, 네트워크 패킷 컨트롤러(210)의 가상머신(211, 212, 213)은 네트워크 패킷 처리 전용 DPI 엔진을 이용하여 고속으로 DPI 기능을 수행할 수 있다. 네트워크 패킷 컨트롤러(860)는 DPI 수행 결과를 블레이드 서버의 가상머신(260, 270, 280)로 전송할 수 있다. 또한 네트워크 패킷 컨트롤러(210)의 가상머신(211, 212, 213)은 DPI 수행 결과를 참고하여 DPI 플로우(flow)를 생성할 수 있다.
네트워크 패킷 컨트롤러(210)의 가상머신(211, 212, 213)이 DPI 플로우에 대응되는 네트워크 패킷을 수신하면, 네트워크 패킷 컨트롤러(210)의 가상머신(211, 212, 213)은 해당 네트워크 패킷에 대하여 DPI 기능을 수행하고, 해당 네트워크 패킷에 대한 분석의 결과를 블레이드 서버의 가상머신(260, 270, 280)으로 전송할 수 있다.
또 다른 실시예에 따르면, 도 2에 도시된 네트워크 가상화 시스템은 네트워크 패킷 컨트롤러(210)의 가상머신(211, 212, 213)과 블레이드 서버의 가상머신(260, 270, 280)가 역할을 분담하여 네트워크 패킷을 고속으로 처리할 수 있다.
일측에 따르면, 네트워크 패킷 컨트롤러(210)가 수신한 네트워크 패킷은 암호화 또는 인코딩되어 있고, 네트워크 패킷 컨트롤러(210)는 해당 네트워크 패킷을 복호화 또는 디코딩할 수 있다. 네트워크 패킷 컨트롤러(210)의 가상머신(211, 212, 213)은 복호화 또는 디코딩된 네트워크 패킷을 블레이드 서버의 가상 머신으로 전송할 수 있다. 블레이드 서버의 가상머신은 많은 계산량이 필요한 복호화 또는 디코딩 과정을 수행하지 않고, 네트워크 패킷의 내용만을 수신하여 처리할 수 있다.
또한, 네트워크 패킷 컨트롤러(210)의 가상머신(211, 212, 213)은 블레이드 서버의 가상머신(260, 270, 280)이 전송한 데이터에 암호화 또는 인코딩을 수행하여 전송할 수도 있다.
또 다른 측면에 따르면, 네트워크 패킷 컨트롤러(210)의 가상머신(211, 212, 213)이 수신한 네트워크 패킷은 네트워크 프로토콜에 대한 정보와 페이로드 정보를 포함할 수 있다. 이 경우에, 네트워크 패킷 컨트롤러(210)의 가상머신(211, 212, 213)은 네트워크 프로토콜에 대한 정보를 처리하고, 페이로드 정보만을 블레이드 서버(200)의 가상 서버(260, 270, 280)로 전송할 수 있다
도 9는 예시적 실시예에 따라서, 블레이드 서버에 가상머신를 추가하는 방법을 단계별로 설명한 순서도이다.
도 9에 도시된 실시예에서는 N+1 번째 블레이드 서버(910)가 가상화 관리자(920), 레파지토리(930) 및 네트워크 패킷 컨트롤러(940)를 포함하는 네트워크 가상화 시스템에 추가된다.
단계(950)에서, N+1 번째 블레이드 서버(910)의 하이퍼바이저(912)는 가상화 관리자(920)로 N+1 번째 블레이드 서버(910)의 가상머신(911)의 정보를 전송한다. 여기서, 추가된 블레이드 서버(910)의 가상머신(911)의 정보는 가상머신의 처리 성능, 버전 등에 대한 정보일 수 있다.
단계(951)에서, 가상화 관리자(920)는 N+1 번째 블레이드 서버(910)의 가상 머신(911)에 대한 정보를 등록한다.
단계(961)에서, 가상화 관리자(920)는 추가된 N+1 번째 가상 서버(910)의 정보에 기반하여 레파지토리(930)에 저장된 복수의 바이너리 코드들 중에서, N+1 번째 가상 서버(910)에 탑재하여 구동될 바이너리 코드를 선택한다.
단계(962)에서, 가상화 관리자(920)는 선택된 바이너리 코드에 대한 정보를 N+1 번째 블레이드 서버(910)의 하이퍼바이저(912)로 전송한다.
단계(963)에서, N+1 번째 블레이드 서버(910)의 하이퍼바이저(912)는 레파지토리(930)에 바이너리 코드를 요청한다.
단계(964)에서, N+1 번째 블레이드 서버(910)의 하이퍼바이저(912)는 레파지토리(930)로부터 바이너리 코드를 수신한다.
단계(962) 내지 단계(964)에서는 N+1 번째 블레이드 서버(910)의 하이퍼바이저(912)가 바이너리 코드에 대한 정보를 수신하고, 레파지토리(930)로부터 바이너리 코드를 직접 수신하는 실시예가 도시되었으나, 다른 실시예에 따르면, N+1 번째 블레이드 서버(910)의 하이퍼바이저(912)는 가상화 관리자(920)를 경유하여 바이너리 코드를 수신할 수도 있다.
단계(970)에서, N+1 번째 블레이드 서버(910)의 가상머신(911) 는 수신한 바이너리 코드를 실행한다.
단계(971)에서, N+1 번째 블레이드 서버(910)의 하이퍼바이저(912)는 는 N+1 번째 블레이드 서버(910)의 가상머신(911) 상태를 가상화 관리자(920)에게 보고한다.
단계(972)에서, 가상화 관리자(920)는 N+1 번째 블레이드 서버(910)의 가상머신(911)을 네트워크 패킷 컨트롤러(940)의 가상머신(941)에 매핑한다. 가상화 관리자(920)는 네트워크 패킷 컨트롤러(940)로 N+1 번째 블레이드 서버(910)의 가상머신(911)에 대한 정보를 전송할 수 있다. 또한, 가상화 관리자(920)는 네트워크 패킷 컨트롤러(940)로 메시지 처리 규칙을 전송할 수 있다.
단계(973)에서, 네트워크 패킷 컨트롤러(940)의 가상머신(941)은 네트워크 패킷을 수신할 수 있다. 네트워크 패킷 컨트롤러의 가상머신은 메시지 처리 규칙에 따라 네트워크 패킷을 처리할 수 있다. 일측에 따르면, 네트워크 패킷 컨트롤러(940)의 가상머신(941)은 N+1 번째 블레이드 서버(910)의 가상머신(911)으로 수신된 네트워크 패킷을 전달할 수 있다.
단계(974)에서, N+1 번째 블레이드 서버(910)의 가상머신(911)은 네트워크 패킷을 수신하여 관리할 수 있다. 예를 들어, N+1 번째 블레이드 서버(910)의 가상머신(911)은 수신된 네트워크 패킷에서 시그널링 정보를 추출하고, 추출된 시그널링 정보를 이용하여 네트워크 패킷을 처리하기 위한 세션을 생성할 수 있다.
도 10은 예시적 실시예에 따라서, 블레이드 서버의 가상머신을 삭제하는 방법을 단계별로 설명한 순서도이다.
도 10에 도시된 실시예에서는, N번째 블레이드 서버(1010)가 가상화 관리자(1020), 네트워크 패킷 컨트롤러(1030)를 포함한 네트워크 기상화 시스템에서 삭제된다.
단계(1040)에서, N번째 블레이드 서버(1010)의 가상화 에이전트는 주기적 또는 비주기적으로 N번째 블레이드 서버(1010)의 상태를 가상화 관리자(1020)로 보고할 수 있다.
일측에 따르면, 가상화 관리자(1020)는 미리 결정된 시간 이상 N번째 블레이드 서버(1010)의 상태에 대한 보고를 수신하지 못할 수 있다. 이러한 경우에, 단계(1050)에서, 가상화 관리자(1020)는 가상화된 N번째 블레이드 서버(1010)에 심각한 오류가 발생한 것으로 판단하고, 가상화된 N번째 블레이드 서버(1010)를 네트워크 가상화 시스템에서 삭제할 수 있다.
단계(1060)에서, 가상화 관리자(1020)는 삭제된 N번째 블레이드 서버(1010)에 대한 정보를 N번째 블레이드 서버(1010)와 매핑된 네트워크 패킷 컨트롤러(1030)로 전송한다. 네트워크 패킷 컨트롤러(1030)는 N번째 블레이드 서버(1010)에 대한 정보를 삭제하고, N번째 블레이드 서버(1010)에 대한 네트워크 패킷의 전송을 중단할 수 있다.
도 11은 예시적 실시예에 따라서, 네트워크 패킷 컨트롤러를 추가하는 방법을 단계별로 설명한 순서도이다.
도 11에 도시된 실시예에서는, M+1 번째 네트워크 패킷 컨트롤러(1110)가 가상화 관리자(1120), 레파지토리(1130), 가상화된 블레이드 서버(1140)를 포함하는 네트워크 가상화 시스템에 추가된다.
단계(1150)에서, M+1 번째 네트워크 패킷 컨트롤러(1110)는 M+1 번째 네트워크 패킷 컨트롤러(1110)에 대한 정보를 가상화 관리자(1120)로 전송한다.
단계(1151)에서, 가상화 관리자(1120)는 M+1 번째 네트워크 패킷 컨트롤러(1110)에 대한 정보를 등록한다.
단계(1152)에서, 가상화 관리자(1120)는 M+1 번째 네트워크 패킷 컨트롤러(1110)에 대한 정보에 기반하여 레파지토리(1130)에 저장된 복수의 바이너리 코드들 중에서, M+1 번째 네트워크 패킷 컨트롤러(1110)의 가상머신(1111)에서 구동될 바이너리 코드를 선택한다.
단계(1153)에서, 가상화 관리자(1120)는 선택된 바이너리 코드에 대한 정보를를 , M+1 번째 네트워크 패킷 컨트롤러(1110)의 가상머신(1111)으로 전송한다.
단계(1160)에서, , M+1 번째 네트워크 패킷 컨트롤러(1110)의 하이퍼바이저(1112)는 레파지토리(1130)에 바이너리 코드를 요청한다.
단계(1161)에서, M+1 번째 네트워크 패킷 컨트롤러(1110)의 하이퍼바이저(1112)는 레파지토리(1130)로부터 바이너리 코드를 수신한다.
단계(1153) 내지 단계(1161)에서는 M+1 번째 네트워크 패킷 컨트롤러(1110)가 바이너리 코드를 직접 수신하는 실시예가 도시되었으나, 다른 실시예에 따르면, M+1 번째 네트워크 패킷 컨트롤러(1110)는 가상화 관리자(1120)를 경유하여 바이너리 코드를 수신할 수도 있다.
단계(1170)에서, M+1 번째 네트워크 패킷 컨트롤러(1110)의 가상머신(1111)은 수신된 카드 바이너리를 구동한다.
단계(1171)에서, M+1 번째 네트워크 패킷 컨트롤러(1110)의 가상머신(1111)은 가상 서버(1140)로부터 메시지 처리 규칙을 수신한다.
단계(1180)에서, M+1 번째 네트워크 패킷 컨트롤러(1110)의 가상머신(1111)은 네트워크 패킷을 수신하고, 메시지 처리 규칙에 따라서 네트워크 패킷을 처리할 수 있다.
도 12는 예시적 실시예에 따라서, 네트워크 패킷을 포워딩하는 방법을 단계별로 설명한 순서도이다.
단계(1230)에서, 네트워크 패킷 컨트롤러(1210)의 가상머신(1211)은 네트워크 패킷을 수신할 수 있다.
단계(1240)에서, 네트워크 패킷 컨트롤러(1210)의 가상머신(1211)은 네트워크 패킷에서 시그널링 메시지 또는 제어 메시지를 추출할 수 있다.
단계(1250)에서, 네트워크 패킷 컨트롤러(1210)의 가상머신(1211)은 추출된 시그널링 메시지 또는 제어 메시지를 매핑된 블레이드 서버(1220)의 가상 머신(1121)로 전송할 수 있다.
단계(1260)에서, 블레이드 서버(1220)의 가상머신(1221)은 네트워크 패킷에서 추출된 시그널링 메시지 또는 제어 메시지를 수신하고, 시그널링 메시지 또는 제어 메시지를 처리하여 해당 네트워크 패킷을 처리하기 위한 세션 정보를 생성할 수 있다.
단계(1270)에서, 네트워크 패킷 컨트롤러(1210)의 가상머신(1211)은 블레이드 서버(1220)의 가상머신(1221)로부터 생성된 세션 정보를 수신할 수 있다.
단계(1280)에서, 네트워크 패킷 컨트롤러(1210)의 가상머신(1211)은 수신된 세션 정보를 이용하여 이후 수신되는 데이터를 처리할 수 있다. 일측에 따르면, 네트워크 패킷 컨트롤러(1210)의 가상머신(1211)은 이후 수신되는 데이터는 가상 서버로 전송하지 않고, 직접 다른 네트워크 엔티티로 포워딩할 수 있다.
도 13은 예시적 실시예에 따라서, 네트워크 패킷 컨트롤러(1310)의 가상머신(1311)에서 DPI 기능을 수행하는 방법을 단계별로 설명한 순서도이다.
단계(1330)에서, 네트워크 패킷 컨트롤러(1310)의 가상머신(1311)은 블레이드 서버(1320)의 가상머신(1321)로부터 네트워크 패킷에 대한 분석(DPI) 요청을 수신할 수 있다.
단계(1340)에서, 네트워크 패킷 컨트롤러(1310)의 가상머신(1311)은 블레이드 서버(1320)의 가상머신(1321)의 요청에 따라서, DPI 기능을 수행할 수 있다.
단계(1350)에서, 네트워크 패킷 컨트롤러(1310)의 가상머신(1311)은 DPI 수행 결과를 참고하여 DPI 플로우(flow)를 생성할 수 있다.
단계(1360)에서, 네트워크 패킷 컨트롤러(1310)의 가상머신(1311)은 DPI 플로우에 대응되는 네트워크 패킷을 수신할 수 있다. 이 경우에, 네트워크 패킷 컨트롤러(1310)의 가상머신(1311)은 DPI 플로우에 대응되는 네트워크 패킷에 대하여 DPI 기능을 수행할 수 있다.
단계(1370)에서, 네트워크 패킷 컨트롤러(1310)의 가상머신(1311)은 해당 네트워크 패킷에 대한 분석의 결과를 블레이드 서버(1320)의 가상머신(1321)로 전송할 수 있다.
도 14는 예시적 실시예에 따라서 메시지 라우팅 기능을 수행하는 방법을 단계별로 설명한 순서도이다.
단계(1430)에서, 블레이드 서버(1410)의 가상머신(1411)는 메시지 처리 규칙을 생성할 수 있다. 메시지 처리 규칙은 네트워크 패킷 컨트롤러(1420)의 가상머신(1421)이 수신한 네트워크 패킷을 어떻게 처리해야 하는지에 대한 정보를 포함할 수 있다.
단계(1440)에서, 블레이드 서버(1410)의 가상머신(1411)는 생성된 메시지 처리 규칙을 네트워크 패킷 컨트롤러(1420)로 전송할 수 있다.
단계(1450)에서, 네트워크 패킷 컨트롤러(1420)의 가상머신(1421)은 메시지 처리 규칙에 따라서 네트워크 패킷을 분류할 수 있다. 일측에 따르면, 네트워크 패킷 컨트롤러(1420)의 가상머신(1421)은 일부 네트워크 패킷은 다른 네트워크 엔티티로 직접 포워딩하기 위하여 분류할 수 있고, 다른 네트워크 패킷은 블레이드 서버(1410)의 가상머신(1411)로 전송하기 위하여 분류할 수 있다. 다른 측면에 따르면, 메시지 처리 규칙은 네트워크 패킷에 포함된 메시지의 타입 또는 네트워크 패킷에 포함된 단말기의 식별자에 대한 정보를 포함할 수 있다. 이 경우에, 네트워크 패킷 컨트롤러(1420)의 가상머신(1421)은 네트워크 패킷에 포함된 메시지의 타입 또는 단말기의 식별자에 따라서 네트워크 패킷을 분류할 수 있다.
단계(1460)에서, 네트워크 패킷 컨트롤러(1420)의 가상머신(1421)은 메시지 처리 규칙에 따라서 분류된 네트워크 패킷을 블레이드 서버(1410)의 가상머신(1411) 또는 다른 네트워크 엔티티로 전송할 수 있다.
도 15는 예시적 실시예에 따라서, 블레이드 서버의 부하를 분산하는 방법을 단계별로 설명한 순서도이다.
단계(1540)에서, 블레이드 서버(1520)의 가상머신(1521)의 가상화 에이전트는 블레이드 서버(1520)의 가상머신(1521)의 부하를 가상화 관리자(1530)로 보고한다.
단계(1550)에서, 가상화 관리자(1530)는 블레이드 서버(1520)의 가상머신(1521)의 부하를 모니터링한다. 가상화 관리자(1530)는 메시지 처리 규칙 업데이트 요청을 블레이드 서버(1520)의 가상머신(1521)으로 전송할 수 있다.
단계(1560)에서, 블레이드 서버(1520)의 가상머신(1521)는 가상머신(1521) 및 다른 가상머신들의 부하를 고려하여 메시지 처리 규칙을 업데이트할 수 있다.
단계(1561)에서, 블레이드 서버(1520)의 가상머신(1521)은 메시지 처리 규칙을 네트워크 패킷 컨트롤러(1510)의 가상머신(1511)로 전송할 수 있다.
도 15에서는 블레이드 서버(1520)의 가상머신(1521)의 부하에 따라서 가상화 관리자(1530)가 메시지 처리 규칙의 업데이트 여부를 결정하고, 블레이드 서버(1520)의 가상머신(1521)가 메시지 처리 규칙의 업데이트를 수행하는 구성이 개시되었으나, 다른 실시예에 따르면, 가상화 관리자(1530)가 직접 메시지 처리 규칙을 업데이트할 수도 있다. 또는 네트워크 패킷 컨트롤러(1510)가 메시지 처리 규칙을 업데이트할 수도 있다.
단계(1570)에서, 네트워크 패킷 컨트롤러(1510)의 가상머신(1511)은 메시지 처리 규칙에 따라서 네트워크 패킷을 분류할 수 있다.
단계(1580)에서, 네트워크 패킷 컨트롤러(1510) 의 가상머신(1511)은 메시지 처리 규칙에 따라서 분류된 네트워크 패킷을 블레이드 서버(1520)의 가상머신(1521) 또는 다른 네트워크 엔티티로 전송할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. 
110, 120: 단말기
130, 140: 기지국
150: 네트워크 시스템

Claims (10)

  1. 네트워크 패킷을 송수신하는 프로토콜 스택을 구동하는 가상머신을 포함하는 가상화된 네트워크 패킷 컨트롤러;
    상기 네트워크 패킷 컨트롤러의 가상머신으로부터 상기 네트워크 패킷을 수신하여 상기 네트워크 패킷을 처리하는 가상머신을 구동하는 가상화된 블레이드 서버; 및
    상기 가상화된 네트워크 패킷 컨트롤러 및 상기 가상화된 블레이드 서버를 관리하는 가상화 관리자
    를 포함하고,
    상기 네트워크 패킷 컨트롤러의 가상머신 상에 프로토콜 스택은 상기 네트워크 패킷으로부터 시그널링 메시지를 추출하고,
    상기 네트워크 패킷 컨트롤러의 가상머신은 상기 시그널링 메시지를 상기 블레이드 서버의 가상머신으로 전송하고,
    상기 블레이드 서버의 가상머신은 상기 시그널링 메시지를 처리하여 세션 정보를 생성하고, 상기 생성된 세션 정보를 상기 네트워크 패킷 컨트롤러의 가상머신으로 전송하고,
    상기 네트워크 패킷 컨트롤러의 가상머신 상에 프로토콜 스택은 상기 세션 정보를 참고하여 제2 네트워크 패킷에 포함된 데이터를 블레이드 서버의 가상머신으로 전달하지 않고 직접 포워딩하는 네트워크 가상화 시스템.
  2. 제1항에 있어서,
    복수의 바이너리 코드를 저장하는 레파지토리
    를 더 포함하고,
    상기 가상화 관리자는 상기 바이너리 코드들 중에서, 상기 네트워크 패킷의 특성에 따른 바이너리 코드를 선택하고, 선택된 바이너리 코드를 상기 블레이드 서버의 가상머신 및 네트워크 패킷 컨트롤러의 가상머신으로 전송하고,
    상기 블레이드 서버의 가상머신 및 네트워크 패킷 컨트롤러의 가상머신은 상기 선택된 바이너리 코드를 실행하여 상기 가상머신을 실행하는 네트워크 가상화 시스템.
  3. 제2항에 있어서,
    상기 블레이드 서버는 상기 가상화 관리자로 블레이드 서버의 제2 가상머신에 대한 정보를 전송하고, 상기 블레이드 서버의 제2 가상머신에 대한 정보에 기반하여 상기 복수의 바이너리 코드들 중에서 선택된 바이너리 코드를 상기 가상화 관리자로부터 수신하고, 상기 블레이드 서버의 하이퍼바이저는 상기 수신된 바이너리 코드를 실행하여 블레이드 서버의 제2 가상머신을 구동하는 네트워크 가상화 시스템.
  4. 제2항에 있어서,
    상기 가상화 관리자는 블레이드 서버의 상기 가상머신의 상태를 모니터링하고, 상기 블레이드 서버의 가상머신이 미리 결정된 시간 이상 동작하지 않는 경우에, 상기 블레이드 서버의 가상머신에 대한 정보를 상기 네트워크 패킷 컨트롤러로 전송하고,
    상기 네트워크 패킷 컨트롤러의 가상머신은 상기 네트워크 패킷의 전송을 중단하는 네트워크 가상화 시스템.
  5. 제2항에 있어서,
    제2 네트워크 패킷 컨트롤러가 상기 블레이드 서버에 연결되고,
    상기 제2 네트워크 패킷 컨트롤러는 상기 제2 네트워크 패킷 컨트롤러의 가상머신에 대한 정보를 상기 가상화 관리자로 전송하고, 상기 제2 네트워크 패킷 컨트롤러의 가상머신에 대한 정보에 기반하여 상기 복수의 바이너리 코드들 중에서 선택된 바이너리 코드를 상기 가상화 관리자로부터 수신하고, 상기 수신된 바이너리 코드를 실행하여 제2 프로토콜 스택을 구동하고, 상기 블레이드 서버의 가상머신로부터 제2 네트워크 패킷에 대한 메시지 처리 규칙을 수신하고,
    상기 제2 네트워크 패킷은 상기 수신된 메시지 처리 규칙에 따라 상기 제2 프로토콜 스택을 이용하여 송수신되는 네트워크 가상화 시스템.
  6. 삭제
  7. 제1항에 있어서,
    상기 네트워크 패킷에 대한 분석(DPI: Deep Packet Inspection) 요청이 상기 블레이드 서버의 가상머신로부터 상기 네트워크 패킷 컨트롤러의 가상머신으로 전송되고,
    상기 네트워크 패킷 컨트롤러의 가상머신 상에 프로토콜 스택은 상기 수신된 요청에 따라서, 상기 네트워크 패킷에 대한 분석(DPI: Deep Packet Inspection)을 수행하고, 상기 네트워크 패킷에 대한 분석의 결과를 참고하여 DPI 플로우(flow)를 생성하고, 상기 DPI 플로우에 대응되는 제2 네트워크 패킷에 대한 분석을 수행하고,
    상기 네트워크 패킷 컨트롤러의 가상머신은 상기 제2 네트워크 패킷에 대한 분석의 결과를 상기 블레이드 서버의 가상머신으로 전송하는 네트워크 가상화 시스템.
  8. 제1항에 있어서,
    상기 네트워크 패킷 컨트롤러의 가상머신은 상기 수신된 네트워크 패킷에 대한 메시지 처리 규칙을 상기 블레이드 서버의 가상머신으로부터 수신하고, 상기 메시지 처리 규칙에 따라서 상기 수신된 네트워크 패킷을 상기 블레이드 서버의 가상머신으로 전송하는 네트워크 가상화 시스템.
  9. 제8항에 있어서,
    상기 네트워크 패킷 컨트롤러의 가상머신은 복수의 블레이드 서버의 가상 머신에 매핑되고,
    상기 블레이드 서버의 가상머신들의 부하 정보는 상기 가상화 관리자로 전송되고,
    상기 메시지 처리 규칙은 상기 블레이드 서버의 가상머신들을 부하 정보에 따라서 업데이트되고,
    상기 네트워크 패킷은 상기 메시지 처리 규칙에 따라서 상기 네트워크 패킷 컨트롤러의 가상머신으로부터 상기 블레이드 서버의가상머신로 전송되는 네트워크 가상화 시스템.
  10. 제1항에 있어서,
    상기 네트워크 패킷 컨트롤러의 가상머신 상에 프로토콜 스택은 상기 네트워크 패킷에 포함된 데이터에 대한 복호화 또는 디코딩을 수행하고,
    상기 네트워크 패킷 컨트롤러의 가상머신은 복호화 또는 디코딩된 데이터를 상기 블레이드 서버의 가상머신으로 전송하는 네트워크 가상화 시스템.
KR1020200080158A 2013-09-17 2020-06-30 대용량 데이터 처리 및 고성능 nfv 시스템 구축 방법 KR102266051B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200080158A KR102266051B1 (ko) 2013-09-17 2020-06-30 대용량 데이터 처리 및 고성능 nfv 시스템 구축 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20130112115A KR20150032085A (ko) 2013-09-17 2013-09-17 대용량 데이터 처리 및 고성능 nfv 시스템 구축 방법
KR1020200080158A KR102266051B1 (ko) 2013-09-17 2020-06-30 대용량 데이터 처리 및 고성능 nfv 시스템 구축 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR20130112115A Division KR20150032085A (ko) 2013-09-17 2013-09-17 대용량 데이터 처리 및 고성능 nfv 시스템 구축 방법

Publications (2)

Publication Number Publication Date
KR20200085247A KR20200085247A (ko) 2020-07-14
KR102266051B1 true KR102266051B1 (ko) 2021-06-18

Family

ID=71526625

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200080158A KR102266051B1 (ko) 2013-09-17 2020-06-30 대용량 데이터 처리 및 고성능 nfv 시스템 구축 방법

Country Status (1)

Country Link
KR (1) KR102266051B1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8195774B2 (en) * 2008-05-23 2012-06-05 Vmware, Inc. Distributed virtual switch for virtualized computer systems
KR20120072240A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 네트워크 가상화 기술을 이용하여 가상 전용망을 구성하기 위한 장치 및 그 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
‘Cisco UCS: VMware의 서버 가상화와 Cisco의 가상화 네트워킹 기술’, 2012.02.21.*
’Service-Aware Network Architecture Based on SDN, NFV, and Network Intelligence’, 2013.09.04.*

Also Published As

Publication number Publication date
KR20200085247A (ko) 2020-07-14

Similar Documents

Publication Publication Date Title
US10700979B2 (en) Load balancing for a virtual networking system
US10142226B1 (en) Direct network connectivity with scalable forwarding and routing fleets
US9628290B2 (en) Traffic migration acceleration for overlay virtual environments
US9350682B1 (en) Compute instance migrations across availability zones of a provider network
US20150052525A1 (en) Virtual private networks distributed across multiple cloud-computing facilities
US11750466B2 (en) RIC and RIC framework communication
US11095716B2 (en) Data replication for a virtual networking system
US9292351B2 (en) Distributed fabric architecture in a cloud computing environment
US11223576B2 (en) Providing and using a distributed forwarding service
CN112889245B (zh) 具有多个负载均衡器和网络接入控制器的网络系统和架构
CN117413501A (zh) 用于基于无线电的网络的可定制数据处理网络功能
CN117546537A (zh) 用于基于无线电的网络的分布式用户平面功能
JP2024513628A (ja) Ric sdk
US20220217582A1 (en) User plane replicator
KR20150032085A (ko) 대용량 데이터 처리 및 고성능 nfv 시스템 구축 방법
US20170187548A1 (en) Optimization of network data transfers over a wide area network
KR102266051B1 (ko) 대용량 데이터 처리 및 고성능 nfv 시스템 구축 방법
KR102651239B1 (ko) 가상화 기술을 이용한 통신 방법 및 이를 수행하는 전자 장치
US11108652B2 (en) Server assisted network discovery (SAND)
Berisha 5G SA and NSA solutions
US20170134343A1 (en) Smart storage with vpn and discovery
KR101585413B1 (ko) 소프트웨어 정의 네트워크 기반 클라우드 컴퓨팅 시스템을 위한 오픈플로우 컨트롤러 및 재해복구 방법
KR101581127B1 (ko) 네트워크 시스템과 통신 방법, 및 네트워크 장치
US11824943B1 (en) Managed connectivity between cloud service edge locations used for latency-sensitive distributed applications
US20230269191A1 (en) Flow parser and per flow data center utilization in a cloud-based secure access service environment

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right