DOI QR코드

DOI QR Code

A Study on the Virtual Switch Implementation and Comparison for Smart Node Platform

가상 스위치 구현 및 비교에 관한 연구

  • Jeong, Gab Joong (Department of Tourism Information, Gyeongju University) ;
  • Choi, Kang-Il (Network Computing Convergence Lab., Electronics and Telecommunications Research Institute)
  • Received : 2014.11.13
  • Accepted : 2014.12.01
  • Published : 2014.12.31

Abstract

Nowadays, most Internet servers run on virtual a network which connects each virtual machine, to process large amounts of data on single physical computer. The virtual machines for their own purposes are interconnected to other virtual server systems with various types of operating systems. Each virtual server may share one physical computer resources and operates at a service seamlessly to each other. Sometimes even the virtual machines are implemented using a method that lease the physical IT resources without purchasing physical server. Therefore, a virtual switch is needed to improve the performance when a large number of virtual machines operate on physical server. In this study, the implementation and investigation was performed for the virtual switches, OpenvSwitch and DPDKvSwitch, in order to provide the necessary high-performance cloud services to creative business.

최근 많은 인터넷 서버들은 하나의 물리적인 컴퓨터에서 동작하는 여러 가상머신 상에서 구현 및 운영되고 있다. 미래 인터넷은 더욱 여러 가지 종류의 운영체제나 서로 다른 용도의 컴퓨터 시스템이 가상의 네트워크에 연결되어 대량의 데이터를 처리하는 가상 호스트 머신들로 이루어진다. 이러한 가상의 호스트 머신들은 VM(Virtual Machine) 상에서 구동되는 가상 서버로 이루어지고 각 가상 서버들은 하나의 물리적 컴퓨터 자원을 공유하고 서로 다른 서버로써 각각의 서비스를 원활하게 지원하는 인터넷 환경에서 동작하게 된다. 본 논문에서는 원활한 클라우드 서비스를 위한 고성능 가상 네트워크에서 필수적인 구성요소인 가상스위치들 중 OpenvSwitch 가상스위치와 DPDKvSwitch 고속화 가상스위치를 구현하고 그 특성을 비교 분석하였다.

Keywords

Ⅰ. 서 론

클라우드 컴퓨팅 분야에서 가상화는 가장 중요한 구현 기술 중의 하나이다. 여러 가지 종류의 운영체제나 서로 다른 용도의 컴퓨터 시스템이 가상의 네트워크에 연결되어 대량의 데이터를 처리하는 가상 호스트 머신들로 이루어지는 미래의 인터넷에서 이러한 가상의 호스트 머신들은 VM(Virtual Machine) 상에서 구동되는 가상 서버로 이루어진다. 각 가상 서버들은 하나의 물리적 컴퓨팅 자원을 공유하고 서로 다른 서버로써 각각의 서비스를 원활하게 지원하는 인터넷 환경에서 동작하게 된다. 클라우드 컴퓨팅은 그러한 가상의 호스트머신을 사용하는데 있어서 물리적 자원을 공유하는 개념을 도입하여 자신 만의 물리적 자원을 구입 및 설치하지 않고 필요시에 필요한 만큼만 빌려 쓰는 형태의 서비스로 발전하게 된다. 많은 IT서비스관련 기업들이 이러한 형태의 서버 시스템 개발에 많은 투자 및 개발을 진행하고 있다. 또한 이러한 IT서비스를 이용하고자 하는 기업 및 기업 내 경영시스템 도입을 추진할 예정인 기업들은 저렴한 비용으로 시장 변동성에 빠르게 대응할 수 있는 신규 비즈니스에 대한 민첩한 투자 효과를 얻을 수 있으므로 효율적 기업경영을 위해 이러한 새로운 인터넷 환경을 도입해야만 하는 필요성이 매우 빠르게 증가하고 있다.

또한 사물인터넷 및 지능형 IT 시스템들의 인터넷 접속과 같은 새로운 정보기기의 출현과 더불어 그에 대한 활용 및 응용 서비스를 새로운 기업 비즈니스 및 창조적 기업경영에 적용할 수 있는 분야가 해가 갈수록 다양해지고 응용 범위가 넓어지고 있다. IT 자원을 사용하는 사용자 입장에서의 기업 경영자들은 적은 고정투자비를 활용해 신규 서비스를 빠른 시일 내에 적용할 수 있고 향후 성공 여부 및 필요성에 따라 사업의 철수 및 확장이 매우 용이한 변동비용 운영모델 위주의 인터넷 기업 경영환경을 조성할 수 있다[1-3].

본 연구에서는 새로운 기업경영 및 서비스 사업에 활용할 수 있는 클라우드 서비스를 지향하는 인터넷 환경과 그러한 환경에 필수적인 가상머신의 구현 및 동작환경에 대해 조사하고 OpenvSwitch 가상스위치와 DPDKvSwitch 고속화 가상 스위치의 비교 및 분석 연구를 수행하였다.

이어지는 제 2장에서는 클라우드 컴퓨팅과 클라우드 서비스의 최근 개발동향을 소개하고 제 3장에서는 가상화 시스템의 구조 및 가상 네트워크의 구조에 대해 정리한다. 제 4장에서는 본 연구에서 시험 및 개발에 사용한 오픈소스 가상스위치의 구현 및 비교를 위해 구축된 호스트 머신에 대한 소개와 해당 호스트 머신에서 OpenvSwitch 가상스위치와 DPDKvSwitch 고속화 가상스위치의 구현 방법 및 비교 분석결과를 정리하고 제5장을 끝으로 결론 및 향후 연구 계획을 정리한다.

 

Ⅱ. 클라우드 컴퓨팅과 서비스

최근 수년 동안 급속도로 발전하고 있는 클라우드 컴퓨팅 분야에서는 모바일뿐만 아니라 사물인터넷 등의 응용으로 현실 세계의 많은 객체들이 인터넷에 접속되고 그에 따른 응용 서비스가 급격히 개발되고 있다. 특히 IT 기술 부분의 투자를 활용하여 신규 서비스 창출에 많은 노력을 기울이고 있는 기업들은 경험적으로 새로운 신규 서비스들에서 가상 인터넷을 이용하여 용량가변적이면서 유연한 구현 환경 등의 제공을 필수적인 주요 기능으로 요구하고 있다.

이는 새로운 사업영역을 창출하고자 하는 기업들이 투자 위험성을 회피하면서도 효율적인 신규 서비스나 기업 경영효율화를 모색할 수 있도록 물리적인 IT 시스템을 구입하거나 구현할 필요가 없어지는 방법으로써 새로운 클라우드 서비스에 적극적인 관심을 보이고 있는 이유이다. 그러나 각 기업들의 사업 분야나 각 IT응용 서비스들의 클라우드 컴퓨팅 기술 적용분야 및 방법이 획일적으로 정해져 있는 것이 아니므로 IT 기술을 응용하는 각 기업들의 응용 분야에 따라 각각 그 적용방법을 달리하고 독립적으로 대응하고 있는 것과 같이 클라우드 컴퓨팅 및 서비스에 대한 명확한 정의나 형태를 일반적이고 정형화된 기술적인 모습으로 나타내기는 어려운 점도 있다.

특히, 최근의 기업 경영환경은 사업영역의 확장과 중첩으로 더욱 경쟁적인 환경이 되어가고 있으므로 많은 투자비용이 소요되는 신규 비즈니스를 위한 IT 부문의 고정비 특성을 가지는 투자 자금이 가변적이고 확장가능한 변동비용성 IT투자로 진화함으로써 기업 간 경쟁 환경에 있어서 각 기업들이 더욱 신속하고 민첩한 기업 경영 및 운영을 가능하게 한다. 필요하다면 무제한의 IT자원을 활용할 수도 있으면서 비용은 사용한 만큼만 지불하는 등의 방법으로 서비스 이용량에 따른 비용 구조를 취할 수 있기 때문에 기업 경영에 있어서 클라우드 컴퓨팅으로의 이동은 매우 다양한 긍정적 효과를 기업에 제공한다.

기업들이 새로운 서비스를 위해 또는 효율적인 경영을 위해 필요로 하는 응용 소프트웨어를 SaaS(Software as a Service)의 개념으로 서비스 받을 수 있으며 이러한 소프트웨어들은 가상 서버에 호스팅 되어 빌려 쓰는 개념의 구현이 가능하다. 또한, 기업들이 사용하거나 제공하려는 신규 서비스를 위한 IT 서비스 플랫폼으로써 PaaS(Platform as a Service)의 개념으로 접근할 수도 있고 부족하다면 완전한 자율 컨트롤이 가능한 IaaS(Infrastructure as a Service)의 방법으로 기업이 원하는 경영 시스템과 응용 서비스를 완벽히 제공하면서도 IT부문의 투자비용을 사용한 만큼 사용 요금을 지불하는 새로운 IT시스템의 서비스 아키텍처를 구축하여 경쟁력을 높이고 효율적인 기업 경영을 추구할 수가 있다. 또한 기업의 기존 IT자원을 사설 클라우드로 구축하고 공용 클라우드와 연동하는 혼합 클라우드로 구축할 수도 있다. 이는 신속한 기업 경영 및 기업 간 사업의 중복등으로 인해 신규 사업 창출이 점점 더 어려워지고 있고 고급 기술들이 보편화되어 고객인 소비자들의 일상생활에 매우 다양하게 접목되어 있는 현재의 기업환경에서 새로운 비즈니스의 창출과 기업 및 경제 성장의 새로운 기회로 활용될 수 있다[4,5].

 

Ⅲ. 가상화 시스템 구조

3.1. 가상화 구조

클라우드 컴퓨팅 분야에서 연구되고 있는 기술들을 구분하여 나타내면 물리적 컴퓨터를 가상 컴퓨터로 전환하는 가상화 기술과, 분산 병렬 처리 기술, 분산 데이터관리 및 프로비저닝의 자동화 기술, 다중 공유 기술, 보안기술, 및 클라우드 서비스의 관리 기술 등으로 나누어진다. 그 중에서도 가상화 기술은 가장 기본적이면서도 핵심적인 요소 기술이 된다. 이는 하드웨어로써의 컴퓨팅 자원을 추상화하여 여러 가상 머신들이 유한한 하드웨어 자원을 서로 공유하여 사용할 수 있도록 하는 기술이다. 가상화를 이용하는 영역으로는 서버 가상화, 데스크탑 가상화, 네트워크 가상화, 스토리지 가상화등이 있으며 그림 1에 IT 하드웨어 자원의 가상화 개념을 나타내었다.

그림 1.IT 하드웨어 자원의 가상화 Fig. 1 Virtualization of IT hardware resource

이러한 물리적 IT 자원을 가상화하여 여러 응용 시스템들이 논리적으로 공유할 수 있도록 하는 가상화 기술을 구현 가능하게 하는 방법으로 가장 많이 사용되고 있는 것은 하이퍼바이저(hypervisor) 가상화이다. 하이퍼바이저 가상화는 하나의 컴퓨터에서 여러 가지 종류의 운영체제들을 독립적으로 운용 가능하게 해주는 가상 플랫폼이다. 하이퍼바이저 가상화의 아키텍처는 그림 2에 나타내었다. 그림 2에서와 같이 하이퍼바이저 가상화는 서로 다른 운영체제의 독립적 실행과 주어진 하드웨어 자원들을 각각의 운영체제가 실행된 가상 머신에서 직접 자신의 하드웨어 처럼 동작시킬 수 있도록 제어 요구에 대한 제어를 하고 일부 성능 저하를 일으키는 면도 존재하지만 하나의 자원을 여러 가상 머신이 공유한다는 측면에서는 어느 정도 감내할 수밖에 없는 구조를 가지고 있다[6-8].

그림 2.하이퍼바이저 가상화 아키텍처 Fig. 2 Hypervisor virtualization architecture

본 연구에서는 이러한 하이퍼바이저 가상화를 구현하기 위한 하이퍼바이저로써 많이 사용되는 오픈 소스소프트웨어 중의 하나인 리눅스 KVM을 사용하였다. KVM은 인텔 VT(Virtual Technology)를 지원하는 시스템 기능을 이용하여 하드웨어 가상화의 확장을 지원하고 기존의 QEMU 소프트웨어의 수정버전을 기반으로 지원되는 오픈소스 하이퍼바이저이다.

3.2. 네트워크 가상화

네트워크 가상화는 제한된 물리적 네트워크 자원을 여러 가상 네트워크 환경으로 구축하고 여러 독립적인 네트워크 환경으로 이용하는 방법으로써 기존 네트워크 환경을 여러 서브네트워크로 나누어 구축하거나 많은 물리적 네트워크 자원을 하나의 논리적 네트워크로 사용할 수 있다.

네트워크 서비스에 있어서 서비스를 확장할 때 스토리지 등과 함께 가장 문제가 되는 것 중의 하나가 네트워크이다. 서비스 초기에 비용을 최소화하기 위해 리눅스 가상 브릿지 방식으로 가상머신을 네트워크에 연결한다. 하지만 가상머신의 숫자가 늘어나면 가상 브릿지의 부하가 늘어나고 이를 처리하기 위해 물리적 서버의 커널에 부하를 주게 되어 전체 시스템 성능이 떨어진다. 따라서 성능과 보안성을 보완한 클라우드 컴퓨팅 서비스용 네트워크 가상화 기술이 필요하고 이때 가상 스위치(virtual switch)와 SDN(Software Defined Network)이 사용된다. 여기에서 사용되는 가상 스위치로는 OVS(Open Virtual Switch) 등이 있다.

다수의 물리적 네트워크 자원을 하나의 논리적 장치로 사용하거나 하나의 물리적 네트워크 자원을 복수로 서로 다른 용도로 분할하는 등의 네트워크 가상화는 VLAN(Virtual LAN) 기능을 하드웨어 스위치가 아닌 가상 스위치로 구현하는 것이다[9,10].

네트워크 가상화에서 VLAN 기능이 중요한 부분을 차지하는 이유는 이 기능을 이용해 가상머신과 가상머신 사이의 네트워크를 분리하여 네크워크 환경을 효율적으로 관리할 수 있기 때문이다. 가상 스위치는 호스트의 가상 네트워크 인터페이스를 서버의 실제 네트워크 인터페이스에 연결시키고 지역 통신을 위해 서버에 있는 다른 가상 네트워크 인터페이스에 또 다른 가상 네트워크 인터페이스를 결합한다. 그림 3에 이러한 가상 네트워크의 구조를 나타내었다. 따라서 가상 스위치 내에서의 대역폭 한계는 네트워크 속도와는 관계가 없고 메모리 대역폭과 관련돼 있어 로컬 VM(Virtual Machine) 간의 효율적인 통신을 가능하게 하고 네트워크 자원의 오버헤드를 감소시키는 역할을 할 수 있다. 이러한 네트워크 자원의 절감은 VM간 네트워크 트래픽이 서버 내에서 외부 네트워크와 격리된 상태로 이루어져 결국 물리적 네트워크 자원은 물리적으로 서버와 서버 간 통신을 위해서만 사용되도록 하기 때문에 네트워크 자원의 오버헤드가 감소된다.

그림 3.가상 네트워크의 구조 Fig. 3 Virtual network architecture

네트워크 설정에 있어서는 가상 네트워크 인터페이스와 호스트 서버의 네트워크 인터페이스를 연결해주는 네트워크 브릿지가 필요하다. 가상 네트워크 인터페이스와 이 브릿지 인터페이스가 연결되어야 가상머신에서 네트워크 통신이 가능하게 된다. 만약 사설 네트워크와 공용 네트워크를 분리하고 싶다면, 각각 다른 네트워크 인터페이스에서 브릿지 인터페이스를 생성해 주고 네트워크 용도에 맞게 가상 네트워크 인터페이스를 연결해준다.

 

Ⅳ. 가상스위치의 구현 및 비교

4.1. 호스트 머신

본 연구에서 가상스위치 구현에 사용한 OpenvSwitch 가상스위치와 DPDKvSwitch 고속화 가상스위치를 구현하기 위해서 가장 먼저 컴퓨터 시스템에 호스트용 운영체제를 구축하고 모든 시스템 동작이 정상적으로 동작하는 상태를 만들어 주어야한다[11-16]. 그러한 상태에서 하이퍼바이저 KVM을 설치하고 가상 머신을 동작시킬 수 있는 환경을 구현한다. 본 연구에서는 호스트 운영체제로 우분투(ubuntu) 리눅스 배포판(ubuntu-server-LTS-12.04.2)을 사용하여 구축하였다. 우분투 리눅스를 개발용 운영체제로 사용하기 위해서는 배포판을 이용하여 운영체제를 설치한 후 개발하고자하는 타겟 버전의 커널 소스를 다운로드하고 재 컴파일한 후 리빌드된 커널을 인스톨하여 개발용 우분투 리눅스 환경으로 치환하여야 한다. 표 1에 본 연구에 사용된 우분투 리눅스 개발 환경에 관한 사항을 나타내었다.

표 1.우분투 리눅스 개발 환경 Table. 1 Ubintu llinux development envirionment

리눅스에서의 네트워크 가상화에는 리눅스 커널에서 제공하는 브릿지 기능을 사용하기도 하지만 하나의 물리적 서버에 여러 가상머신을 실행하는 경우 패킷정보 분석에 과도한 CPU 로드가 걸리고 네트워크 플러딩등의 문제가 발생할 수도 있는 상황을 극복하고 커널마이그레이션 문제 또한 해결하기 위하여 가상스위치를 사용할 수 있다.

4.2. OpenvSwitch 가상스위치

본 논문에는 가상스위치 구성을 비교분석하기 위해 오픈 소스 기반의 가상 스위치 솔루션으로 Openv Switch 가상스위치를 구현하였다. OpenvSwitch는 트래픽 태깅 및 도메인 분할 등의 VLAN 기능, Trunking, GRE tunneling 등의 기능을 제공하고 Forwarding path등 패킷 처리 기능을 Host System의 NIC(Network Interface Card) 카드에서 수행하도록 할 수도 있어서 CPU 부하를 줄이고 가상 네트워크 성능 향상을 위한 기능을 구현하고 있다.

OpenvSwitch의 설치는 http://openvswitch.org로부터 다운로드 받은 오픈소스를 사용하였다. 아래 표 2에 OpenvSwitch에 대한 설치 환경을 나타내었다.

표 2.OpenvSwitch 설치 환경 Table. 2 OpenvSwitch installation envirionment

OpenvSwitch 가상스위치의 recompile 및 install을 위한 일련의 과정을 거치고 최종적으로 OpenvSwitch 가상스위치의 가상네트워크 구성 결과를 그림 4 (a)에 나타내었다. 가상스위치가 서버시스템의 eth0를 브리지로 연결하고 해당 브리지에서 tap device를 통하여 가상머신들과 vlan으로 연결된다. 그림 4 (b)에 Openv Switch를 통하여 KVM hypervisor 상에서 구동되는 2개의 가상머신에 연동시키고 ping test를 실시한 예를 나타내었다.

그림 4.OpenvSwitch 가상스위치 구현 결과 (a) 가상스위치 구성도 (b) 가상스위치 구성 결과 화면 Fig. 4 OpenvSwitch configuration diagram (a) configuration (b) screenshot results

4.3. DPDKvSwitch 고속화 가상스위치

호스트 컴퓨터상에서의 가상네트워크를 위한 가상스위치의 구동에 있어서 호스트 컴퓨터의 CPU load를 줄이고 우수한 성능의 고속화 가상스위치 기능을 제공하기 위하여 호스트 컴퓨터에 탑재된 NIC 카드를 이용하는 가상스위치를 구현하였다. 실험에 사용한 NIC 카드는 Intel사의 서버용 NIC 카드인 I350-T2를 사용하고 오픈소스(open source) 가상 스위치로 DPDKvSwitch를 이용한 가상네트워크를 구현하였다.

DPDKvSwitch 고속화 가상스위치의 설치는 2개의 오픈소스 화일을 이용한다. http://dpdk.org로부터 다운로드 받은 DPDK용 NIC 카드를 위한 드라이버 오픈소스 파일과 https://01.org/packet-processing으로부터 다운로드 받은 openvswitch 가상스위치 용 오픈소스 화일 openvswitchdpdk 파일로 구성되어 있다. 여기서, 가상스위치용 오픈소스 파일 내에 DPDK 연동용 openvswitch 가상스위치 오픈소스와 가상머신 실행을 위한 qemu 오픈소스가 포함되어 있고 또한 가상스위치를 통한 DPDK용 NIC 카드의 응용 테스트 example 소스 화일도 함께 포함되어 있다. 아래 표 3에 DPDKvSwitch에 대한 설치 환경을 나타내었다.

표 3.DPDKvSwitch 설치 환경 Table. 3 DPDKvSwitch installation envirionment

DPDKvSwitch 고속화 가상스위치를 위한 오픈소스들을 recompile한 후 드라이버 모듈 uio와 kni(kernel network interface)를 로드하여 NIC 카드 기능을 활성화하고 hugepage를 설정하여 패킷 버퍼 메모리(packet buffer memory)로 이용하도록 mount해준다. 그 후 가상스위치에 포트를 추가하기 위해서 ovs-vsctl을 사용하여 필요한 virtio및 물리적 장치의 스위치에 flow포트를 추가한다. Ovs-dpdk application을 실행하고 QEMU를 실행하여 가상머신을 구동한다. 가상스위치의 flow table은 패킷 트래픽이 가상스위치를 통해 VM에서 흐를 수 있도록 설정해야 하므로 가상스위치의 flow table을 적절하게 프로그래밍 한다. 그 후 ovs-vsctl을 이용하여 스위치 관리를 한다. Ovs-vsctl 명령들은 아직 addbr, del-br, add-port, del-port 만 우선 지원한다.

본 연구에서는 Intel사의 NIC 카드인 I350-T2를 PCIe 슬롯에 장착한 호스트 서버 시스템에서 DPDKvSwitch 고속화 가상스위치의 recompile 및 install을 위한 일련의 과정을 거치고 최종적으로 DPDKvSwitch 가상스위치의 가상네트워크 구성 결과를 그림 5 (a)에 나타내었다. 그림 5 (b)에 DPDKvSwitch를 통하여 명령라인 qemu-KVM hypervisor 상에서 구동되는 2개의 가상머신을 연동시키고 ping test 및 패킷 전송 테스트를 실시한 예를 나타내었다. 또한 명령라인 vncviewer를 통해서 가상 머신의 정상적인 동작을 확인하였다.

그림 5.DPDKvSwitch 가상스위치 구현 결과 (a) 환경 구성후 시스템 구성도 (b) 실행 테스트 결과 화면 Fig. 5 DPDKvSwitch configuration diagram (a) system configuration after setup (b) performance test screenshot results

 

Ⅴ. 결 론

최근 클라우드 컴퓨팅 분야의 혁신적인 발전으로 무한 경쟁 환경에 놓여 있는 기업경영 환경을 극복하고 새로운 비즈니스를 창출하고 창조경제를 이루는 한 수단이 될 수 있는 가상화 기술들이 나타남으로써 기업들은 매우 합리적인 비용으로 최적의 새로운 서비스를 실현할 수 있는 기반이 마련되었다. 이에 따라 본 연구에서는 새로운 기업 경영 및 서비스 등의 비즈니스에 활용하고자 많은 기업들이 구축 및 연구 중인 클라우드 서비스를 위한 고성능 인터넷 가상화를 위해 가상스위치의 구현 및 가상스위치 상에서의 가상머신 동작 환경에 대해 조사 및 분석과 구현을 수행하였다.

본 연구에서는 인터넷 가상화와 다양한 목적의 가상서버들을 구축할 때 나타날 수 있는 성능 저하 및 클라우드 서비스 제공 인프라의 migration 문제 등을 개선하기 위하여 기본적으로 적용하게 될 가상스위치들에 대해 조사하고 특히 OpenvSwitch 가상스위치와 NIC 카드의 멀티프로세서 및 패킷 처리 기능을 이용한 고속화가상스위치 DPDKvSwitch를 동일한 버전의 리눅스 커널 환경에서 구현하고 각 가상 스위치들의 차이를 분석하였다. 본 연구에서의 조사 및 연구 분석의 결과를 활용하여 오픈소스 가상스위치의 기본적인 기능과 인터넷 가상화를 구현할 때 필요한 하이퍼바이저 및 응용시스템 구조, 가상스위치의 구현 등에 필요한 최소 기능과 시스템 요구사항을 분석하여 효율적인 가상스위치의 관리를 통한 가상서버머신의 구동에 활용이 가능하다. 향후 네트워크 가상화를 통해서 고성능 SNP(Smart Node Platform) 구현 및 서비스지원이 가능하도록 NIC 카드의 멀티프로세서를 이용한 가속화 가상스위치와 그렇지 않은 가상스위치간의 성능비교 및 성능개선방법등과 같이 기초적인 고성능화 제반 기술들의 연구를 통해 실제 클라우드 서비스의 원활한 활용을 위한 기반 기술 연구를 지속할 계획이다.

References

  1. Michael Hugos and Derek Hulizky, Business in the Cloud, John Wiley, 2011.
  2. Barrie Sosinsky, Cloud Computing Bible, Wiley, 2011.
  3. Pankaj Arora, Raj Biyani, and Sali Dave, To the Cloud: Cloud Powering an Enterprise, McGraw-Hill, 2012.
  4. Yanuarizki Amanatullah, Charles Lim, Heru Purnomo Ipung, Arkav Juliandri, "Toward Cloud Computing Reference Architecture: Cloud Service Management Perspective," in Proceedings of International Conference on ICT for Smart Society, pp. 1-4, 2014.
  5. Rosy Aoun, Elias A, Doumith, Maurice Gagnaire, "Resource Provisioning for Enriched Services in Cloud Environment," in Proceedings of The 2nd IEEE International Conference On Cloud Computing Technology and Service, pp. 296-303, 2010.
  6. Zongjian He, Guanqing Liang, "Research and Evaluation of Network Virtualization in Cloud Computing Environment," in Proceedings of Third International Conference on Networking and Distributed Computing (ICNDC), pp. 40-44, 2012.
  7. Hui-Min Tseng, Hui-Lan Lee, Jen-Wei Hu, Te-Lung Liu, Jee-Gong Chang, Wei-Cheng Huang, "Network Virtualization with Cloud Virtual Switch," in Proceedings of The 17th IEEE International Conference on Parallel and Distributed Systems, pp. 998-1003, 2011.
  8. Anhalt, F., Divakaran, D.M., Primet, P.V.-B., "A virtual switch architecture for hosting virtual networks on the Internet," in Proceedings of International Conference on High Performance Switching and Routing (HPSR), pp. 26-31, 2010.
  9. Chao-Tung Yang, Wei-Sheng Chen, Yi-Wei Su, Yao-Yu Yang, Jung-Chun Liu, Fang-Yi Leu, Chu, W.C.C., "Implementation of a Virtual Switch Monitor System Using OpenFlow on Cloud", in Proceedings of International Conference on Innovative Mobile and Internet Services in Ubiquitous Computing (IMIS), pp. 283-290, 2013.
  10. Hui-Min Tseng, Hui-Lan Lee, Jen-Wei Hu, Te-Lung Liu, Jee-Gong Chang, Wei-Cheng Huang, "Network Virtualization with Cloud Virtual Switch", in Proceedings of IEEE International Conference on Parallel and Distributed Systems (ICPADS), pp. 998-1003, 2011.
  11. Open Virtual Switch Project [Internet]. Available: http://openvswitch.org.
  12. DPDK: Data Plane Development Kit [Internet]. Available: http://dpdk.org.
  13. Intel Open Source Technology Center [Internet]. Available: https://01.org/packet-processing.
  14. Intel DPDK Testpmd Application, User Guide, Oct., 2013.
  15. Intel DPDK vSwitch, Getting Started Guide, Dec., 2013.
  16. Intel DPDK, Sample Applications User Guide, Jan., 2014.