KR101571810B1 - 복수의 가상 머신들을 포함하는 컴퓨팅 시스템 - Google Patents

복수의 가상 머신들을 포함하는 컴퓨팅 시스템 Download PDF

Info

Publication number
KR101571810B1
KR101571810B1 KR1020130167526A KR20130167526A KR101571810B1 KR 101571810 B1 KR101571810 B1 KR 101571810B1 KR 1020130167526 A KR1020130167526 A KR 1020130167526A KR 20130167526 A KR20130167526 A KR 20130167526A KR 101571810 B1 KR101571810 B1 KR 101571810B1
Authority
KR
South Korea
Prior art keywords
processing unit
packets
virtual
shared memory
switching units
Prior art date
Application number
KR1020130167526A
Other languages
English (en)
Other versions
KR20150078286A (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
Application filed by 주식회사 시큐아이 filed Critical 주식회사 시큐아이
Priority to KR1020130167526A priority Critical patent/KR101571810B1/ko
Publication of KR20150078286A publication Critical patent/KR20150078286A/ko
Application granted granted Critical
Publication of KR101571810B1 publication Critical patent/KR101571810B1/ko

Links

Images

Classifications

    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports

Landscapes

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

Abstract

본 발명의 실시 예에 따른 컴퓨팅 시스템은 복수의 가상 머신들을 구현하기 위한 하이퍼바이저 및 복수의 가상 머신들에 의해 액세스되는 공유 메모리를 포함하는 시스템 칩, 그리고 물리적 네트워크 포트를 통해 패킷들을 수신하도록 구성되는 네트워크 프로세싱 유닛을 포함한다. 네트워크 프로세싱 유닛은 복수의 가상 스위칭 유닛들 및 물리적 네트워크 포트를 통해 수신되는 패킷들을 복수의 가상 스위칭 유닛들에 전달하는 패킷 처리부를 포함한다. 복수의 가상 스위칭 유닛들이 상기 공유 메모리에 패킷들을 업로드하면 복수의 가상 머신들은 공유 메모리에 액세스하여 업로드된 패킷들을 제공받는다.

Description

복수의 가상 머신들을 포함하는 컴퓨팅 시스템{COMPUTING SYSTEM INCLUDING PLURALITY OF VIRTUAL MACHINE}
본 발명은 전자 기기에 관한 것으로, 좀 더 구체적으로는 복수의 가상 머신들을 포함하는 컴퓨팅 시스템에 관한 것이다.
웹 서비스는 인터넷 네트워크 기술의 발전과 더불어 폭발적으로 증가하여 인터넷을 사용하는 거의 모든 사람들이 웹 서비스를 통해 정보를 검색하고 수집하는 정보의 기반 시설이 되었다. 그러나 이러한 폭넓은 사용으로 인해 웹 서비스는 대부분의 공격, 예를 들면 바이러스, 멀웨어 및 취약점 공격 등의 주요 경로가 되고 있다. 특히 대부분의 바이러스, 멀웨어 및 취약점 공격 등은 특정 분류의 사이트를 통해 전파된다. 예를 들면, 사람들의 호기심을 자극하는 도박, 성인 사이트 등을 통해 바이러스, 멀웨어 및 취약점 공격 등이 전파될 수 있다.
이러한 네트워크를 통한 공격에 대응하기 위해 다양한 보안 장치들이 제공되고 있다. 예를 들면 IDS(Intrusion Detection System) 장치, IPS(Intrusion Protection System) 장치, 그리고 통합 기능을 제공하는 UTM(Unified Threat Management) 등 다양한 보안 장치들이 네트워크 상 각 지점의 특성에 맞게 사용될 수 있다.
최근 들어, 보안 장치에 가상화 인프라가 적용되고 있다. 이러한 가상화 인프라를 통해 네트워크 상 패킷들을 실행해보고, 실행 결과에 따라 보안 정책을 수립 또는 수정하거나, 공격 감지 방법을 찾아내거나, 시그니처를 생성 또는 수정하는 등 다양한 방식들로 보안 장치의 보안 성능을 향상시킨다.
가상 인프라를 구성할 때, 가상 인프라에 패킷을 제공하기 위한 가상 스위치를 구성한다. 이때 가상 스위치는 하이퍼바이저 영역에 위치할 수 있다. 가상 스위치가 하이퍼바이저 영역에 위치하는 것은 하이퍼바이저의 지원 하에 동작하는 가상 머신들이 구성되어 있는 시스템 칩의 하드웨어 자원으로 가상 스위치도 구현하는 것을 의미한다. 결국 가상 스위치가 하이퍼바이저 영역에 위치함으로써 시스템 칩의 하드웨어 자원을 가상 머신, 하이퍼바이저 및 가상 스위치가 나누어 사용하게 된다. 이와 같은 상황에서 다수의 트래픽이 수신되는 경우, 가상 스위치에 많은 로드가 걸리게 된다. 이는 시스템 칩의 전체적인 성능 저하를 유발한다.
본 발명의 목적은 가상 환경을 제공하는 컴퓨팅 시스템을 안정적으로 구동시키면서도 그것의 동작 속도를 향상시키기 위한 것이다.
본 발명의 실시 예에 따른 컴퓨팅 시스템은 복수의 가상 머신들을 구현하기 위한 하이퍼바이저, 그리고 상기 복수의 가상 머신들에 의해 액세스되는 공유 메모리를 포함하는 시스템 칩; 및 상기 시스템 칩과 별도로 구비되며, 물리적 네트워크 포트를 통해 패킷들을 수신하도록 구성되는 네트워크 프로세싱 유닛을 포함한다. 상기 네트워크 프로세싱 유닛은 복수의 가상 스위칭 유닛들, 그리고 상기 물리적 네트워크 포트를 통해 수신되는 상기 패킷들을 복수의 가상 스위칭 유닛들에 전달하는 패킷 처리부를 포함하고, 상기 복수의 가상 스위칭 유닛들은 상기 공유 메모리에 상기 패킷들을 업로드하고, 상기 복수의 가상 머신들은 상기 공유 메모리에 액세스하여 업로드된 상기 패킷들을 제공받는다.
실시 예로서, 상기 시스템 칩은 상기 네트워크 프로세싱 유닛에 연결된 네트워크 컨트롤러를 더 포함한다. 이때 상기 네트워크 컨트롤러는 상기 네트워크 프로세싱 유닛으로부터 상기 패킷들을 업로드한 상기 공유 메모리의 액세스 주소를 수신할 수 있다.
실시 예로서, 상기 네트워크 컨트롤러는 상기 복수의 가상 머신들 중 해당 가상 머신에 상기 액세스 주소를 제공하고, 상기 해당 가상 머신은 상기 공유 메모리의 상기 액세스 주소가 가리키는 영역에 액세스하여 업로드된 상기 패킷들을 제공받을 수 있다.
실시 예로서, 상기 네트워크 프로세싱 유닛은 레지스터를 더 포함하고, 상기 복수의 가상 스위칭 유닛들은 상기 액세스 주소를 상기 레지스터에 저장할 수 있다.
실시 예로서, 상기 네트워크 컨트롤러는 상기 레지스터를 조회하여 상기 액세스 주소를 수신할 수 있다.
실시 예로서, 상기 네트워크 컨트롤러는 컨트롤 버스를 통해 상기 레지스터로부터 상기 액세스 주소를 수신하고, 상기 공유 메모리는 데이터 버스를 통해 상기 복수의 가상 스위칭 유닛들로부터 상기 패킷들을 수신할 수 있다.
실시 예로서, 상기 네트워크 프로세싱 유닛은 상기 물리적 네트워크 포트를 통해 수신된 상기 패킷들에 대한 보안 검사를 수행하여 상기 패킷들을 필터링하고, 필터링된 상기 패킷들을 상기 패킷 처리부에 전달하는 보안 처리부를 더 포함할 수 있다.
실시 예로서, 상기 공유 메모리는 상기 복수의 가상 머신들에 각각 대응하는 복수의 영역들을 포함하고, 상기 복수의 가상 스위칭 유닛들은 각각 상기 복수의 영역들에 상기 패킷들을 업로드할 수 있다.
본 발명의 실시 예에 따르면 가상 환경을 제공하는 컴퓨팅 시스템을 안정적으로 구동시키면서도 그것의 동작 속도가 향상된다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 보여주는 도면이다.
도 2는 컴퓨팅 시스템의 동작 방법을 보여주는 순서도이다.
도 3은 공유 메모리를 보여주는 개념도이다.
도 4는 도 1의 네트워크 프로세싱 유닛을 구현하기 위한 일 실시 예를 보여주는 블록도이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템(10)을 보여주는 도면이다.
도 1을 참조하면, 컴퓨팅 시스템(10)은 시스템 칩(100) 및 네트워크 프로세싱 유닛(200, Network Processing Unit)을 포함한다.
시스템 칩(100)은 가상 환경에서 복수의 가상 머신들(VM1~VM4)을 구현한다. 시스템 칩(100)은 공유 메모리(110), 하이퍼바이저(120, hypervisor), 제 1 내지 제 4 가상 머신들(VM1~Vm4)을 포함한다.
공유 메모리(110)는 시스템 칩(100)과 네트워크 프로세싱 유닛(200) 사이에서 송수신되는 패킷들을 저장하기 위한 캐시 메모리로서 사용된다.
공유 메모리(110)는 네트워크 프로세싱 유닛(200)으로부터 수신되는 패킷들을 저장하도록 구성된다. 실시 예로서, 공유 메모리(110)는 FIFO(First-In First-Out) 방식으로 패킷들을 저장할 수 있다. 실시 예로서, 공유 메모리(110)는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되지만 빠른 동작 속도를 가진 휘발성 메모리일 수 있다. 예를 들면, 공유 메모리(110)는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등으로서 구현될 수 있다.
하이퍼바이저(120)는 시스템 칩(100)에서 다수의 운영 체제(operating system)을 동시에 실행하기 위한 논리적 플랫폼(platform)으로서, 제 1 내지 제 4 가상 머신들(VM1~VM4)은 하이퍼바이저(120)의 지원 하에 시스템 칩(100)의 하드웨어 자원을 서로 공유한다. 제 1 내지 제 4 가상 머신들(VM1~VM4)은 공유된 하드웨어 자원을 통해, 서로 다른 운영 체제들을 실행할 수 있다.
실시 예로서, 하이퍼바이저(120)는 시스템 칩(100)의 하드웨어에서 직접 실행되며, 제 1 내지 제 4 가상 머신들(VM1~Vm4)은 하이퍼바이저(120) 하에 구현될 수 있다. 다른 실시 예로서, 하이퍼바이저(120)는 시스템 칩(100)의 하드웨어에서 직접 실행되는 호스트 운영체제 하에서 실행되며, 제 1 내지 제 4 가상 머신들(VM1~Vm4)은 하이퍼바이저(120) 하에 구현될 수 있다.
하이퍼바이저(120)는 네트워크 컨트롤러(125)를 포함한다. 네트워크 컨트롤러(125)는 컨트롤 버스(CB)를 통해 네트워크 프로세싱 유닛(200)으로부터 커맨드 및 액세스 주소를 수신하고, 액세스 주소를 제 1 내지 제 4 가상 머신들(VM1~VM4) 중 해당 가상 머신에 전송한다.
제 1 내지 제 4 가상 머신들(VM1~VM4)은 공유 메모리(110)에 연결된다. 제 1 내지 제 4 가상 머신들(VM1~VM4)은 공유 메모리를 공유한다. 제 1 내지 제 4 가상 머신들(VM1~VM4) 각각은 네트워크 컨트롤러(125)로부터 액세스 주소를 수신하고, 공유 메모리(110)의 액세스 주소가 가리키는 영역에 액세스하여 패킷들을 수신한다. 제 1 내지 제 4 가상 머신들(VM1~VM4)은 이후 수신된 패킷들을 처리할 것이다.
네트워크 프로세싱 유닛(200)은 보안 처리부(210), 가상 스위칭 모듈(220), 제어부(230) 및 레지스터(235)를 포함한다.
보안 처리부(210)는 복수의 물리적 네트워크 포트들(310, 320)에 연결된다. 물리적 네트워크 포트들(310, 320) 각각은 네트워크에 연결되며, 네트워크를 통해 패킷들을 수신하도록 구성된다. 물리적 네트워크 포트들(310, 320)에 수신된 패킷들은 보안 처리부(210)에 전송된다.
도 1에는 2개의 물리적 네트워크 포트들(310, 320)이 도시되어 있으나, 이는 예시적인 것으로서 하나의 물리적 네트워크 포트만 제공될 수 있으며, 또는 3개 이상의 물리적 네트워크 포트들이 제공될 수 있음이 이해될 것이다.
보안 처리부(210)는 물리적 네트워크 포트들(310, 320)을 통해 수신된 패킷들에 대한 보안 검사를 수행하고, 수행 결과에 따라 패킷들을 드롭(drop)하거나 아니면 가상 스위칭 모듈(220)에 전송할 수 있다. 예를 들면, 보안 처리부(210)는 수신된 패킷이 TCP(Transmission Control Protocol)에 따른 패킷인지 여부를 판별하고, 판별 결과에 따라 해당 패킷을 가상 스위칭 모듈(220)에 전송할 수 있다. 또는, 사설 네트워크와 같은 기능을 수행하기 위해, 등록된 아이피에 해당하는 패킷들만 가상 스위칭 모듈(220)에 전송할 수 있다. 또는, 패킷으로부터 추출되는 아이피(목적지 아이피 및 출발지 아이피), 포트 번호(목적지의 포트 번호, 출발지의 포트 번호), 그리고 프로토콜 등의 기본적인 조합에 의해 패킷을 차단 또는 가상 스위칭 모듈(220)에 전송하여 특정 공격에 대한 방어 기능을 수행할 수 있다.
가상 스위칭 모듈(220)은 보안 처리부(210)로부터 패킷들을 수신한다. 가상 스위칭 모듈(220)은 패킷 처리부(225) 및 제 1 내지 제 4 가상 스위칭 유닛들(SW1~SW4)을 포함한다.
패킷 처리부(225)는 보안 처리부(210)로부터 수신되는 패킷들을 제 1 내지 제 4 가상 스위칭 유닛들(SW1~SW4)에 제공한다. 실시 예로서, 패킷 처리부(225)는 보안 처리부(210)로부터 수신되는 패킷들이 일부 가상 스위칭 유닛들에 편중되지 않도록 라우팅 기능을 수행할 수 있다. 실시 예로서, 제 1 내지 제 4 가상 스위칭 유닛들(SW1~SW4)에는 각각 아이피들이 할당되며, 패킷 처리부(225)는 패킷들 각각의 아이피에 따라 그것들을 해당 가상 스위칭 유닛에 전송할 수 있다.
제 1 내지 제 4 가상 스위칭 유닛들(SW1~SW4)은 패킷 처리부(225)에 연결된다. 한편으로, 제 1 내지 제 4 가상 스위칭 유닛들(SW1~SW4)은 데이터 버스(DB)를 통해 공유 메모리(110)에 액세스한다. 제 1 내지 제 4 가상 스위칭 유닛들(SW1~SW4)은 물리적인 것이 아닌, 네트워크 프로세싱 유닛(200)의 하드웨어 자원에 의해 소프트웨어적으로 구현된 것임이 이해될 것이다.
실시 예로서, 제 1 내지 제 4 가상 스위칭 유닛들(SW1~SW4)은 데이터 버스(DB)를 통해 공유 메모리(110)에 직접 액세스(Direct Access)할 수 있다. 제 1 내지 제 4 가상 스위칭 유닛들(SW1~SW4)은 제어부(230)의 제어에 따라 패킷 처리부(225)로부터 수신된 패킷들을 공유 메모리(110)에 업로드할 수 있다. 이어서 제 1 내지 제 4 가상 스위칭 유닛들(SW1~SW4)은 공유 메모리(110) 내 기 업로드된 주소(즉 액세스 주소)를 레지스터(235)에 저장할 수 있다. 또는, 제 1 내지 제 4 가상 스위칭 유닛들(SW1~SW4)은 공유 메모리(110)의 액세스 주소를 제어부(230)에 통보하고, 제어부(230)가 해당 액세스 주소를 레지스터(235)에 저장할 수 있다. 즉 레지스터(235)는 제어부(230) 및 가상 스위칭 유닛들(SW1~SW4)에 의해 접근 가능한 구성일 수 있고, 제어부(230)에 의해서만 접근 가능한 구성일 수 있다.
제어부(230)는 보안 처리부(210), 가상 스위칭 모듈(220) 및 레지스터(235)의 제반 동작을 제어한다. 제어부(230)는 보안 처리부(210)를 통해 수신되는 패킷들이 공유 메모리(110)에 업로드되도록 제 1 내지 제 4 가상 스위칭 유닛들(SW1~SW4)을 제어한다.
제어부(230)는 공유 메모리(110)에 패킷들이 업로드되면 컨트롤 버스(CB)를 통해 네트워크 컨트롤러(125)로 커맨드를 전송한다. 네트워크 컨트롤러(125)는 수신된 커맨드에 응답하여 레지스터(235)를 조회하고, 액세스 주소를 취득한다. 이후 네트워크 컨트롤러(125)는 해당 가상 머신에 액세스 주소를 전송하며, 해당 가상 머신은 액세스 주소가 가리키는 공유 메모리(110)의 특정 영역에 액세스하여 패킷들을 제공받게 된다.
본 발명의 실시 예에 따르면, 제 1 내지 제 4 가상 스위칭 유닛들(SW1~SW4)은 시스템 칩(100)의 하드웨어 자원에 의해 구현되지 않고, 네트워크 프로세싱 유닛(200)의 하드웨어 자원에 의해 구현된다. 이에 따라 다수의 패킷들이 컴퓨팅 시스템에 수신되어 가상 스위칭 유닛들(SW1~SW4)에 로드가 크게 걸리는 경우가 발생하더라도, 시스템 칩(100)의 하드웨어 자원에는 영향을 미치지 않아, 가상 머신들(VM1~VM4)이 안정적으로 동작할 수 있다. 또한 별도의 하드웨어 자원(즉 200의 하드웨어 자원)에 의해 가상 스위칭 유닛들(SW1~SW4)이 구현되므로 다수의 패킷들이 안정적으로 처리될 수 있다.
더불어 가상 머신들(VM1~VM4) 및 가상 스위칭 모듈(220) 사이에 공유된 메모리(110)를 제공함으로써 가상 머신들(VM1~VM4) 및 가상 스위칭 모듈(220) 사이의 속도 차이에서 유발될 수 있는 상호 성능 저하를 방지할 수 있다.
도 2는 컴퓨팅 시스템(10)의 동작 방법을 보여주는 순서도이다. 도 3은 공유 메모리(110)를 보여주는 개념도이다.
도 1 및 도 2를 참조하면, S110단계에서, 시스템 칩(100) 내에 복수의 가상 머신들(VM1~VM4)이 제공된다. S120단계에서, 시스템 칩(100)은 가상 스위칭 유닛들(SW1~SW4)에 대한 구현 정보를 네트워크 프로세싱 유닛(200)에 전송한다. 그리고, S130단계에서 가상 스위칭 유닛들(SW1~SW4)이 구성된다. 예를 들면, 4개의 가상 머신들(VM1~VM4)이 제공될 때 4개의 가상 스위칭 유닛들(SW1~SW4)이 구성될 수 있다.
실시 예로서, 제 1 내지 제 4 가상 머신들(VM1~VM4) 각각에 대응하는 가상 스위칭 유닛이 구현되고, 각 가상 스위칭 유닛은 공유 메모리(110)에 직접 액세스할 수 있도록 구현될 수 있다.
실시 예로서, 가상 스위칭 유닛들(SW1~SW4) 각각은 SR-IOV(Single Root IOV) 기능을 수행하도록 구현될 수 있다.
가상 스위칭 유닛들(SW1~SW4)이 구현된 이후에, S140단계에서, 물리적 네트워크 포트들(310, 320)을 통하여 패킷들이 수신된다. S150단계에서, 보안 처리부(210)에 의해 수신된 패킷들이 필터링된다. 보안 처리부(210)는 다양한 방법들에 따라 수신된 패킷들에 대한 검사를 수행하고, 패킷들을 가상 스위칭 모듈(220)에 전송할 수 있다.
S160단계에서, 필터링된 패킷들이 가상 스위칭 모듈(220)에 수신된다.
S170단계에서, 네트워크 프로세싱 유닛(200)의 가상 스위칭 모듈(220)은 공유 메모리(110)에 직접 액세스함으로써 패킷들을 업로드한다.
도 3을 참조하면, 공유 메모리(110)는 제 1 내지 제 4 영역들(AREA1~AREA4)로 구분된다. 제 1 내지 제 4 영역들(AREA1~AREA4)은 각각 제 1 내지 제 4 가상 머신들(VM1~VM4)에 대응할 것이다. 제 1 내지 제 4 가상 스위칭 유닛들(SW1~SW4)은 보안 처리부(210)로부터 패킷들을 수신하면, 각각 공유 메모리(110)의 제 1 내지 제 4 영역들(AREA1~AREA4)에 패킷들을 업로드할 것이다.
실시 예로서, 공유 메모리(110)의 제 1 내지 제 4 영역들(AREA1~AREA4)의 비율은 해당 가상 머신으로 수신되는 패킷들의 양에 따라 미리 정해질 수 있다. 실시 예로서, 제 1 내지 제 4 영역들(AREA1~AREA4)의 비율은 가상 머신들(VM1~VM4)로 수신되는 패킷들의 양에 따라 실시간으로 가변할 수 있다.
S180단계에서, 네트워크 프로세싱 유닛(200)은 패킷들이 업로드된 공유 메모리(110) 내 액세스 주소를 시스템 칩(100)에 제공한다. 실시 예로서, 가상 스위칭 모듈(220)은 제어부(230)의 제어에 따라 액세스 주소를 레지스터(235)에 저장할 수 있다. 다른 실시 예로서, 가상 스위칭 모듈(220)은 제어부(230)에 액세스 주소를 전송하고, 제어부(230)가 액세스 주소를 레지스터(235)에 저장할 수 있다. 레지스터(235)는 컨트롤 버스(CB)를 통해 시스템 칩(100)에서 조회할 수 있다.
S190단계에서, 시스템 칩(100)은 액세스 주소를 해당 가상 머신에 제공한다. 네트워크 프로세싱 유닛(200)의 제어부(230)가 커맨드를 커맨드 버스(CB)를 통해 네트워크 컨트롤러(125)로 전송하면, 시스템 칩(100)의 네트워크 컨트롤러(125)는 레지스터(235)를 조회하여 액세스 주소를 취득할 수 있다.
이후 네트워크 컨트롤러(125)는 해당 가상 머신에 액세스 주소를 제공할 것이다. 실시 예로서, 액세스 주소의 상위 비트들에 따라 제 1 내지 제 4 가상 머신들(VM1) 중 액세스 주소를 수신할 가상 머신이 특정될 수 있다. 다른 실시 예로서, 네트워크 프로세싱 유닛(200)의 제어부(230)가 전송하는 커맨드에 따라, 제 1 내지 제 4 가상 머신들(VM1) 중 액세스 주소를 수신할 가상 머신이 특정될 수 있다.
S200단계에서, 해당 가상 머신은 공유 메모리(110)에 액세스하여 패킷들을 제공받는다. 이후, 해당 가상 머신은 패킷들을 실행할 것이다.
도 4는 도 1의 네트워크 프로세싱 유닛(200)을 구현하기 위한 일 실시 예(1000)를 보여주는 블록도이다.
도 4를 참조하면 네트워크 프로세싱 유닛(1000)은 중앙 처리 유닛(1100, Central Proccessing Unit, CPU), 램(1200, Random Access Memory, RAM), 사용자 인터페이스(1300), 불휘발성 저장 매체(1400), 전원(1500), 송수신 유닛(1600) 및 시스템 버스(1700)를 포함한다.
실시 예로서, 중앙 처리 유닛(1100) 및 램(1200)은 도 1을 참조하여 설명된 보안 처리부(210), 가상 스위칭 모듈(220) 및 제어부(230)의 기능을 수행할 수 있다. 레지스터(235)는 중앙 처리 유닛(1100) 내부에 포함될 수 있다. 예를 들면 보안 처리부(210), 가상 스위칭 모듈(220) 및 제어부(230)의 기능을 각각 수행하기 위한 제 1 내지 3 프로그램 코드들은 불휘발성 저장 매체(1400)에 저장되고, 그러한 프로그램 코드들이 램(1200)에 로드되고, 중앙 처리 유닛(1100)은 램(1200)에 로드된 프로그램 코드들을 실행하여 보안 처리부(210), 가상 스위칭 모듈(220) 및 제어부(230)의 기능을 수행할 수 있다.
실시 예로서, 보안 처리부(210), 가상 스위칭 모듈(220) 및 제어부(230)의 기능을 수행하기 위한, 그리고 중앙 처리 유닛(1100)에 의해 판독 가능한 제 1 내지 제 3 프로그램 코드들을 저장 및 제공하는 장치(예를 들면, 이동식 저장 매체)가 제공되고, 해당 장치에 저장된 프로그램 코드들이 네트워크 프로세싱 유닛(1000)에 실장된 불휘발성 저장 매체(1400)에 복사될 수 있다.
전원(1600)은 네트워크 프로세싱 유닛(1000)에 파워(power)를 제공한다.
송수신 유닛(1600)은 도 1을 참조하여 설명된 물리적 네트워크 포트들(310, 320)의 기능을 수행할 수 있다.
이와 같이, 네트워크 프로세싱 유닛(200)은 시스템 칩(100)으로부터 독립된 중앙 처리 장치(110) 및 램(1200)을 구비하고, 보안 처리부(210), 가상 스위칭 모듈(220) 및 제어부(230)의 기능을 수행할 수 있다. 따라서 외부로부터 다수의 패킷들이 수신되어 그것에 대한 처리가 필요하더라도 가상 스위칭 모듈(220)은 효율적으로 하드웨어 자원(1100 및 1200)을 이용하여 패킷들을 처리할 수 있으며, 더 나아가 가상 머신들(VM1~VM4)을 위한 하드웨어 자원에 영향을 미치지 않는다. 따라서 컴퓨팅 시스템(10)의 동작 성능은 향상된다.
도 4는 도 1의 네트워크 프로세싱 유닛(10)을 구현하기 위한 일 실시 예에 불과하며, 도 1의 네트워크 프로세싱 유닛(10)은 다양한 방법들로 구현될 수 있음이 이해될 것이다.
본 발명의 실시 예에 따르면, 제 1 내지 제 4 가상 스위칭 유닛들(SW1~SW4)은 시스템 칩(100)의 하드웨어 자원에 의해 구현되지 않고, 네트워크 프로세싱 유닛(200)의 하드웨어 자원에 의해 구현된다. 이에 따라 다수의 패킷들이 컴퓨팅 시스템에 수신되어 가상 스위칭 유닛들(SW1~SW4)에 로드가 크게 걸리는 경우가 발생하더라도, 시스템 칩(100)의 하드웨어 자원에는 영향을 미치지 않아, 가상 머신들(VM1~VM4)이 안정적으로 동작할 수 있다. 또한 별도의 하드웨어 자원(즉 200의 하드웨어 자원)에 의해 가상 스위칭 유닛들(SW1~SW4)이 구현되므로 다수의 패킷들이 안정적으로 처리될 수 있다.
더불어 가상 머신들(VM1~VM4) 및 가상 스위칭 모듈(220) 사이에 공유된 메모리(110)를 제공함으로써 가상 머신들(VM1~VM4) 및 가상 스위칭 모듈(220) 사이의 속도 차이에서 유발될 수 있는 상호 성능 저하를 방지할 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 다양한 변경이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 시스템 칩
110: 공유 메모리
120: 하이퍼바이저
130: 네트워크 컨트롤러
VM1~VM4: 제 1 내지 제 4 가상 머신들
200: 네트워크 프로세싱 유닛
210: 보안 처리부
220: 가상 스위칭 모듈
225: 패킷 처리부
SW1~SW4: 제 1 내지 제 4 가상 스위칭 유닛들
230: 제어부
235: 레지스터

Claims (9)

  1. 복수의 가상 머신들을 구현하기 위한 하이퍼바이저, 그리고 상기 복수의 가상 머신들에 의해 액세스되는 공유 메모리를 포함하는 시스템 칩; 및
    상기 시스템 칩과 별도로 구비되며, 물리적 네트워크 포트를 통해 패킷들을 수신하도록 구성되는 네트워크 프로세싱 유닛을 포함하되,
    상기 네트워크 프로세싱 유닛은 복수의 가상 스위칭 유닛들, 그리고 상기 물리적 네트워크 포트를 통해 수신되는 상기 패킷들을 복수의 가상 스위칭 유닛들에 전달하는 패킷 처리부를 포함하고,
    상기 복수의 가상 스위칭 유닛들은 상기 공유 메모리에 상기 패킷들을 업로드하고,
    상기 복수의 가상 머신들은 상기 공유 메모리에 액세스하여 업로드된 상기 패킷들을 제공받는 컴퓨팅 시스템.
  2. 제 1 항에 있어서,
    상기 시스템 칩은 상기 네트워크 프로세싱 유닛에 연결된 네트워크 컨트롤러를 더 포함하되,
    상기 네트워크 컨트롤러는 상기 네트워크 프로세싱 유닛으로부터 상기 패킷들을 업로드한 상기 공유 메모리의 액세스 주소를 수신하는 컴퓨팅 시스템.
  3. 제 2 항에 있어서,
    상기 네트워크 컨트롤러는 상기 복수의 가상 머신들 중 해당 가상 머신에 상기 액세스 주소를 제공하고,
    상기 해당 가상 머신은 상기 공유 메모리의 상기 액세스 주소가 가리키는 영역에 액세스하여 업로드된 상기 패킷들을 제공받는 컴퓨팅 시스템.
  4. 제 2 항에 있어서,
    상기 네트워크 프로세싱 유닛은 레지스터를 더 포함하고,
    상기 복수의 가상 스위칭 유닛들은 상기 액세스 주소를 상기 레지스터에 저장하는 컴퓨팅 시스템.
  5. 제 4 항에 있어서,
    상기 네트워크 컨트롤러는 상기 레지스터를 조회하여 상기 액세스 주소를 수신하는 컴퓨팅 시스템.
  6. 제 5 항에 있어서,
    상기 네트워크 컨트롤러는 컨트롤 버스를 통해 상기 레지스터로부터 상기 액세스 주소를 수신하고,
    상기 공유 메모리는 데이터 버스를 통해 상기 복수의 가상 스위칭 유닛들로부터 상기 패킷들을 수신하는 컴퓨팅 시스템.
  7. 제 1 항에 있어서,
    상기 네트워크 프로세싱 유닛은 상기 물리적 네트워크 포트를 통해 수신된 상기 패킷들에 대한 보안 검사를 수행하여 상기 패킷들을 필터링하고, 필터링된 상기 패킷들을 상기 패킷 처리부에 전달하는 보안 처리부를 더 포함하는 컴퓨팅 시스템.
  8. 제 1 항에 있어서,
    상기 공유 메모리는 상기 복수의 가상 머신들에 각각 대응하는 복수의 영역들을 포함하고,
    상기 복수의 가상 스위칭 유닛들은 각각 상기 복수의 영역들에 상기 패킷들을 업로드하는 컴퓨팅 시스템.
  9. 복수의 가상 머신들, 상기 복수의 가상 머신들을 구현하기 위한 하이퍼바이저, 그리고 상기 복수의 가상 머신들에 의해 액세스되는 공유 메모리를 포함하는 시스템 칩; 및
    상기 시스템 칩과 별도로 구비되며, 가상 스위칭 유닛들 및 물리적 네트워크 포트를 통해 수신되는 패킷들을 상기 가상 스위칭 유닛들에 전달하는 패킷 처리부를 가지는 네트워크 프로세싱 유닛을 포함하되,
    상기 복수의 가상 스위칭 유닛들은 상기 네트워크 프로세싱 유닛의 하드웨어 자원에 의해 구현되며, 상기 시스템 칩의 상기 공유 메모리에 직접 액세스(Direct Access)하여 상기 패킷들을 업로드하고,
    상기 복수의 가상 머신들은 상기 공유 메모리에 액세스하여 업로드된 상기 패킷들을 제공받고 상기 패킷들을 처리하는 컴퓨팅 시스템.
KR1020130167526A 2013-12-30 2013-12-30 복수의 가상 머신들을 포함하는 컴퓨팅 시스템 KR101571810B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130167526A KR101571810B1 (ko) 2013-12-30 2013-12-30 복수의 가상 머신들을 포함하는 컴퓨팅 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130167526A KR101571810B1 (ko) 2013-12-30 2013-12-30 복수의 가상 머신들을 포함하는 컴퓨팅 시스템

Publications (2)

Publication Number Publication Date
KR20150078286A KR20150078286A (ko) 2015-07-08
KR101571810B1 true KR101571810B1 (ko) 2015-11-25

Family

ID=53790852

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130167526A KR101571810B1 (ko) 2013-12-30 2013-12-30 복수의 가상 머신들을 포함하는 컴퓨팅 시스템

Country Status (1)

Country Link
KR (1) KR101571810B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101953546B1 (ko) 2015-12-30 2019-06-03 한국전자통신연구원 가상 스위칭 장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012185849A (ja) 2008-06-26 2012-09-27 Microsoft Corp 仮想化されたオペレーティングシステムのためのダイレクトメモリアクセスフィルター
WO2013002978A2 (en) * 2011-06-27 2013-01-03 Microsoft Corporation Host enabled management channel

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012185849A (ja) 2008-06-26 2012-09-27 Microsoft Corp 仮想化されたオペレーティングシステムのためのダイレクトメモリアクセスフィルター
WO2013002978A2 (en) * 2011-06-27 2013-01-03 Microsoft Corporation Host enabled management channel

Also Published As

Publication number Publication date
KR20150078286A (ko) 2015-07-08

Similar Documents

Publication Publication Date Title
US20210344692A1 (en) Providing a virtual security appliance architecture to a virtual cloud infrastructure
US9110703B2 (en) Virtual machine packet processing
US8856518B2 (en) Secure and efficient offloading of network policies to network interface cards
KR101535502B1 (ko) 보안 내재형 가상 네트워크 제어 시스템 및 방법
CN110784361A (zh) 虚拟化云蜜网部署方法、装置、系统及计算机可读存储介质
Dixon et al. {ETTM}: A scalable fault tolerant network manager
EP2830270A1 (en) Network interface card with virtual switch and traffic flow policy enforcement
KR101948049B1 (ko) 강제적 접근 제어 컴퓨팅 환경에서 네트워크 제어의 개선
US10911405B1 (en) Secure environment on a server
US11507285B1 (en) Systems and methods for providing high-performance access to shared computer memory via different interconnect fabrics
US20180176262A1 (en) Systems and methods for device specific security policy control
US10542039B2 (en) Security against side-channel attack in real-time virtualized networks
EP3070633B1 (en) Network interface devices with remote storage control
He et al. Masq: Rdma for virtual private cloud
KR101454837B1 (ko) 하이퍼바이저 보안 api 모듈 및 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템
US9258277B1 (en) Decentralized packet dispatch in network devices
KR101571810B1 (ko) 복수의 가상 머신들을 포함하는 컴퓨팅 시스템
US20230231915A1 (en) Bare-metal connection storage method and system, and apparatus
EP3342113B1 (en) Dynamic allocation of resources within network devices
Ustiugov et al. Bankrupt covert channel: Turning network predictability into vulnerability
US20220070144A1 (en) Systems, devices, and methods for providing a secure client
KR102203828B1 (ko) 네트워크 보안 장치 및 방법
US9544330B1 (en) Method of securing management interfaces of virtual machines
Thirutera Madappa Dedicated resources for the software puzzle framework for more efficient way of overcoming DDoS attacks
Smolyar et al. Securing Self-Virtualizing I/O Devices

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20181106

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191107

Year of fee payment: 5