KR20150078286A - 복수의 가상 머신들을 포함하는 컴퓨팅 시스템 - Google Patents
복수의 가상 머신들을 포함하는 컴퓨팅 시스템 Download PDFInfo
- Publication number
- KR20150078286A KR20150078286A KR1020130167526A KR20130167526A KR20150078286A KR 20150078286 A KR20150078286 A KR 20150078286A KR 1020130167526 A KR1020130167526 A KR 1020130167526A KR 20130167526 A KR20130167526 A KR 20130167526A KR 20150078286 A KR20150078286 A KR 20150078286A
- Authority
- KR
- South Korea
- Prior art keywords
- processing unit
- packets
- virtual
- shared memory
- network
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral 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
본 발명은 전자 기기에 관한 것으로, 좀 더 구체적으로는 복수의 가상 머신들을 포함하는 컴퓨팅 시스템에 관한 것이다.
웹 서비스는 인터넷 네트워크 기술의 발전과 더불어 폭발적으로 증가하여 인터넷을 사용하는 거의 모든 사람들이 웹 서비스를 통해 정보를 검색하고 수집하는 정보의 기반 시설이 되었다. 그러나 이러한 폭넓은 사용으로 인해 웹 서비스는 대부분의 공격, 예를 들면 바이러스, 멀웨어 및 취약점 공격 등의 주요 경로가 되고 있다. 특히 대부분의 바이러스, 멀웨어 및 취약점 공격 등은 특정 분류의 사이트를 통해 전파된다. 예를 들면, 사람들의 호기심을 자극하는 도박, 성인 사이트 등을 통해 바이러스, 멀웨어 및 취약점 공격 등이 전파될 수 있다.
이러한 네트워크를 통한 공격에 대응하기 위해 다양한 보안 장치들이 제공되고 있다. 예를 들면 IDS(Intrusion Detection System) 장치, IPS(Intrusion Protection System) 장치, 그리고 통합 기능을 제공하는 UTM(Unified Threat Management) 등 다양한 보안 장치들이 네트워크 상 각 지점의 특성에 맞게 사용될 수 있다.
최근 들어, 보안 장치에 가상화 인프라가 적용되고 있다. 이러한 가상화 인프라를 통해 네트워크 상 패킷들을 실행해보고, 실행 결과에 따라 보안 정책을 수립 또는 수정하거나, 공격 감지 방법을 찾아내거나, 시그니처를 생성 또는 수정하는 등 다양한 방식들로 보안 장치의 보안 성능을 향상시킨다.
가상 인프라를 구성할 때, 가상 인프라에 패킷을 제공하기 위한 가상 스위치를 구성한다. 이때 가상 스위치는 하이퍼바이저 영역에 위치할 수 있다. 가상 스위치가 하이퍼바이저 영역에 위치하는 것은 하이퍼바이저의 지원 하에 동작하는 가상 머신들이 구성되어 있는 시스템 칩의 하드웨어 자원으로 가상 스위치도 구현하는 것을 의미한다. 결국 가상 스위치가 하이퍼바이저 영역에 위치함으로써 시스템 칩의 하드웨어 자원을 가상 머신, 하이퍼바이저 및 가상 스위치가 나누어 사용하게 된다. 이와 같은 상황에서 다수의 트래픽이 수신되는 경우, 가상 스위치에 많은 로드가 걸리게 된다. 이는 시스템 칩의 전체적인 성능 저하를 유발한다.
본 발명의 목적은 가상 환경을 제공하는 컴퓨팅 시스템을 안정적으로 구동시키면서도 그것의 동작 속도를 향상시키기 위한 것이다.
본 발명의 실시 예에 따른 컴퓨팅 시스템은 복수의 가상 머신들을 구현하기 위한 하이퍼바이저, 그리고 상기 복수의 가상 머신들에 의해 액세스되는 공유 메모리를 포함하는 시스템 칩; 및 상기 시스템 칩과 별도로 구비되며, 물리적 네트워크 포트를 통해 패킷들을 수신하도록 구성되는 네트워크 프로세싱 유닛을 포함한다. 상기 네트워크 프로세싱 유닛은 복수의 가상 스위칭 유닛들, 그리고 상기 물리적 네트워크 포트를 통해 수신되는 상기 패킷들을 복수의 가상 스위칭 유닛들에 전달하는 패킷 처리부를 포함하고, 상기 복수의 가상 스위칭 유닛들은 상기 공유 메모리에 상기 패킷들을 업로드하고, 상기 복수의 가상 머신들은 상기 공유 메모리에 액세스하여 업로드된 상기 패킷들을 제공받는다.
실시 예로서, 상기 시스템 칩은 상기 네트워크 프로세싱 유닛에 연결된 네트워크 컨트롤러를 더 포함한다. 이때 상기 네트워크 컨트롤러는 상기 네트워크 프로세싱 유닛으로부터 상기 패킷들을 업로드한 상기 공유 메모리의 액세스 주소를 수신할 수 있다.
실시 예로서, 상기 네트워크 컨트롤러는 상기 복수의 가상 머신들 중 해당 가상 머신에 상기 액세스 주소를 제공하고, 상기 해당 가상 머신은 상기 공유 메모리의 상기 액세스 주소가 가리키는 영역에 액세스하여 업로드된 상기 패킷들을 제공받을 수 있다.
실시 예로서, 상기 네트워크 프로세싱 유닛은 레지스터를 더 포함하고, 상기 복수의 가상 스위칭 유닛들은 상기 액세스 주소를 상기 레지스터에 저장할 수 있다.
실시 예로서, 상기 네트워크 컨트롤러는 상기 레지스터를 조회하여 상기 액세스 주소를 수신할 수 있다.
실시 예로서, 상기 네트워크 컨트롤러는 컨트롤 버스를 통해 상기 레지스터로부터 상기 액세스 주소를 수신하고, 상기 공유 메모리는 데이터 버스를 통해 상기 복수의 가상 스위칭 유닛들로부터 상기 패킷들을 수신할 수 있다.
실시 예로서, 상기 네트워크 프로세싱 유닛은 상기 물리적 네트워크 포트를 통해 수신된 상기 패킷들에 대한 보안 검사를 수행하여 상기 패킷들을 필터링하고, 필터링된 상기 패킷들을 상기 패킷 처리부에 전달하는 보안 처리부를 더 포함할 수 있다.
실시 예로서, 상기 공유 메모리는 상기 복수의 가상 머신들에 각각 대응하는 복수의 영역들을 포함하고, 상기 복수의 가상 스위칭 유닛들은 각각 상기 복수의 영역들에 상기 패킷들을 업로드할 수 있다.
본 발명의 실시 예에 따르면 가상 환경을 제공하는 컴퓨팅 시스템을 안정적으로 구동시키면서도 그것의 동작 속도가 향상된다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 보여주는 도면이다.
도 2는 컴퓨팅 시스템의 동작 방법을 보여주는 순서도이다.
도 3은 공유 메모리를 보여주는 개념도이다.
도 4는 도 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: 레지스터
110: 공유 메모리
120: 하이퍼바이저
130: 네트워크 컨트롤러
VM1~VM4: 제 1 내지 제 4 가상 머신들
200: 네트워크 프로세싱 유닛
210: 보안 처리부
220: 가상 스위칭 모듈
225: 패킷 처리부
SW1~SW4: 제 1 내지 제 4 가상 스위칭 유닛들
230: 제어부
235: 레지스터
Claims (8)
- 복수의 가상 머신들을 구현하기 위한 하이퍼바이저, 그리고 상기 복수의 가상 머신들에 의해 액세스되는 공유 메모리를 포함하는 시스템 칩; 및
상기 시스템 칩과 별도로 구비되며, 물리적 네트워크 포트를 통해 패킷들을 수신하도록 구성되는 네트워크 프로세싱 유닛을 포함하되,
상기 네트워크 프로세싱 유닛은 복수의 가상 스위칭 유닛들, 그리고 상기 물리적 네트워크 포트를 통해 수신되는 상기 패킷들을 복수의 가상 스위칭 유닛들에 전달하는 패킷 처리부를 포함하고,
상기 복수의 가상 스위칭 유닛들은 상기 공유 메모리에 상기 패킷들을 업로드하고,
상기 복수의 가상 머신들은 상기 공유 메모리에 액세스하여 업로드된 상기 패킷들을 제공받는 컴퓨팅 시스템. - 제 1 항에 있어서,
상기 시스템 칩은 상기 네트워크 프로세싱 유닛에 연결된 네트워크 컨트롤러를 더 포함하되,
상기 네트워크 컨트롤러는 상기 네트워크 프로세싱 유닛으로부터 상기 패킷들을 업로드한 상기 공유 메모리의 액세스 주소를 수신하는 컴퓨팅 시스템. - 제 2 항에 있어서,
상기 네트워크 컨트롤러는 상기 복수의 가상 머신들 중 해당 가상 머신에 상기 액세스 주소를 제공하고,
상기 해당 가상 머신은 상기 공유 메모리의 상기 액세스 주소가 가리키는 영역에 액세스하여 업로드된 상기 패킷들을 제공받는 컴퓨팅 시스템. - 제 2 항에 있어서,
상기 네트워크 프로세싱 유닛은 레지스터를 더 포함하고,
상기 복수의 가상 스위칭 유닛들은 상기 액세스 주소를 상기 레지스터에 저장하는 컴퓨팅 시스템. - 제 4 항에 있어서,
상기 네트워크 컨트롤러는 상기 레지스터를 조회하여 상기 액세스 주소를 수신하는 컴퓨팅 시스템. - 제 5 항에 있어서,
상기 네트워크 컨트롤러는 컨트롤 버스를 통해 상기 레지스터로부터 상기 액세스 주소를 수신하고,
상기 공유 메모리는 데이터 버스를 통해 상기 복수의 가상 스위칭 유닛들로부터 상기 패킷들을 수신하는 컴퓨팅 시스템. - 제 1 항에 있어서,
상기 네트워크 프로세싱 유닛은 상기 물리적 네트워크 포트를 통해 수신된 상기 패킷들에 대한 보안 검사를 수행하여 상기 패킷들을 필터링하고, 필터링된 상기 패킷들을 상기 패킷 처리부에 전달하는 보안 처리부를 더 포함하는 컴퓨팅 시스템. - 제 1 항에 있어서,
상기 공유 메모리는 상기 복수의 가상 머신들에 각각 대응하는 복수의 영역들을 포함하고,
상기 복수의 가상 스위칭 유닛들은 각각 상기 복수의 영역들에 상기 패킷들을 업로드하는 컴퓨팅 시스템.
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 true KR20150078286A (ko) | 2015-07-08 |
KR101571810B1 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10348651B2 (en) | 2015-12-30 | 2019-07-09 | Electronics And Telecommunications Research Institute | Apparatus and method for virtual switching |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8151032B2 (en) | 2008-06-26 | 2012-04-03 | Microsoft Corporation | Direct memory access filter for virtualized operating systems |
US9191454B2 (en) * | 2011-06-27 | 2015-11-17 | Microsoft Technology Licensing, Llc | Host enabled management channel |
-
2013
- 2013-12-30 KR KR1020130167526A patent/KR101571810B1/ko active IP Right Grant
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10348651B2 (en) | 2015-12-30 | 2019-07-09 | Electronics And Telecommunications Research Institute | Apparatus and method for virtual switching |
Also Published As
Publication number | Publication date |
---|---|
KR101571810B1 (ko) | 2015-11-25 |
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) | 보안 내재형 가상 네트워크 제어 시스템 및 방법 | |
Deng et al. | DoS vulnerabilities and mitigation strategies in software-defined networks | |
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 | |
US10911405B1 (en) | Secure environment on a server | |
KR101948049B1 (ko) | 강제적 접근 제어 컴퓨팅 환경에서 네트워크 제어의 개선 | |
US11507285B1 (en) | Systems and methods for providing high-performance access to shared computer memory via different interconnect fabrics | |
EP3070633B1 (en) | Network interface devices with remote storage control | |
US10542039B2 (en) | Security against side-channel attack in real-time virtualized networks | |
He et al. | Masq: Rdma for virtual private cloud | |
US20180176262A1 (en) | Systems and methods for device specific security policy control | |
US11323485B2 (en) | Network traffic switching for virtual machines | |
KR101454837B1 (ko) | 하이퍼바이저 보안 api 모듈 및 하이퍼바이저 기반 가상화 네트워크 침입 방지 시스템 | |
CN111818081A (zh) | 虚拟加密机管理方法、装置、计算机设备和存储介质 | |
US9258277B1 (en) | Decentralized packet dispatch in network devices | |
KR101571810B1 (ko) | 복수의 가상 머신들을 포함하는 컴퓨팅 시스템 | |
EP3342113B1 (en) | Dynamic allocation of resources within network devices | |
Ustiugov et al. | Bankrupt covert channel: Turning network predictability into vulnerability | |
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 |