Future Internet Winter Camp - PlanetLab 테스트베드세션 - VINI (PlanetLab 가상화확장 ) 이해및활용방안 HyunYong Lee*, SuHyun Ahn, and Dr. JongWon Kim Networked Media Lab., Dept. of Information and Communications GIST (Gwangju Institute of Science & Technology), Korea hrlee@nm.gist.ac.kr 2009. 2. 24
Contents PlanetLab 가상화확장 PlanetLab VINI - PL-VINI VINI - Trellis Private VINI (MyVINI) 설치및검증 운용및확장
PLANETTLAB 가상화확장 PlanetLab 의구조, 가상화및제약점 Private PlanetLab 테스트베드들의등장 VINI: PL-VINI, VINI-Trellis
PlanetLab (1/2) PlanetLab (PL) 의이해 구현기반연구검증테스트베드 : PlanetLab is a global research network that supports the development of new network services 기존의많은연구들이시뮬레이터, 에뮬레이터, 혹은소규모의테스트베드에기반하여검증이이루어짐 글로벌규모의 PlanetLab 테스트베드를활용함으로써, 대규모의환경에서구현기반의연구검증을할수있게되었다. 또한가상화기술을통해다수의연구자들이동시에다발적으로자신들의연구를진행할수있다. 2003년에구축시작. 현재는 473 사이트의 953개의노드가연결되어있음 PlanetLab 노드용머신 2대이상지원함으로써 PlanetLab 테스트베드에참여할수있음 (Non-profit 기관의경우 ) 구조 : PLC (DB server + API server + Boot server + Web server) + PlanetLab 노드들 + PlanetLab 사용자역할구분 PI (Principal Investigator): Slice / 계정 / 노드관리 Technical Contact: 실제적인노드관리, 문제해결담당 User: PI, Technical Contact의도움을받아 PlanetLab 노드를사용하는사용자 PlanetLab 노드사용 : 사용자는자신의 slice 를생성하고, 생성된 slice 에 PL 노드를추가 (association) 함으로써자신의 slice 로접속하여사용할노드의집합을구성한다.
PlanetLab (2/2) PlanetLab 의가상화 컴퓨팅가상화리눅스 VServer를사용함. fair share of the node s available CPU & temporary share increases (via Sirius) 네트워킹가상화리눅스 Netflier 시스템을활용하는 VNET을구현 Slice와패킷의 bound 및 connection tracking을통해패킷들이해당하는 slice에서전송 / 수신되도록한다. fair share access to outgoing network bandwidth PlanetLab 의제약점 연구자가원하는기능을임의로추가하기어렵다. 연구자가원하는임의의네트워크환경을꾸미기어렵다. 가상화를통한성능보장을기대하기어렵다.. Node Mgr Local Admin VM 1 VM 2 VM n Virtual Machine Monitor (VMM) (Linux++)
Private PlanetLab 연구자가자신만의목적을위해개발한 PLC (MyPLC) 에기반하여구축된 PlanetLab 테스트베드 Intel s Wireless PlanetLab PlanetLab for wireless research (France) CoreLab PlanetLab-based more flexible environment supporting enhanced resource virtualization EverLab Private PlanetLab for HPC and Networking researchers (EU & Israel) VINI PlanetLab for layer 3 researches, enhanced computing/networking virtualization PPK (Private PlanetLab Korea) PPK (Korea) CoreLab (Japan)
VINI (VIrtual Network Infrastructure) PL-VINI (1/3) VINI (PL-VINI) 의배경 시뮬레이션환경의장점인 control + real testbed 의장점인 realism New techniques to support improved virtualization VINI (PL-VINI) 의가상화컴퓨팅가상화 : Improved CPU isolation VINI 는 PlanetLab 의 CPU reservation 와 Linux real-time priorities 를활용하여보다향상된 CPU isolation 을제공한다. 네트워킹가상화 : Virtual network devices 각 user-space에가상의네트워크디바이스를생성하기위해 UML (User-Mode Linux) 를사용리눅스 TUN/TAP 드라이버를수정하여, 로컬응용이구성된오버레이상에서패킷을송 / 수신하도록하였다. Andy Bavier, et. al., In VINI Veritas: Realistic and controlled network experimentation, in Proc. of SIGCOMM 2006.
VINI (VIrtual Network Infrastructure) PL-VINI (2/3) VINI (PL-VINI) 의이해 설명 a virtual network infrastructure that allows network researchers to evaluate their protocols and services in a realistic environment that also provides a high degree of control over network conditions 지원기능연구자임의의네트워크토폴로지를생성가능 Virtual network devices in UML UDP tunnels and encapsulation in Click 생성된토폴로지상에서의패킷전송을위한포워딩, 라우팅기능지원 Separate instance of Click/XORP on each virtual node Click for forwarding (data plane) XORP for routing (control plane) Realistic condition 구축을위한 external real end hosts에대한연결지원 End-host connection to an OpenVPN server NAT in Click on egress 여러실험의동시진행지원 Virtual servers and network isolation in PlanetLab Extensions for CPU reservations and priorities Local Apps. eth0 XORP (routing protocols) eth1 Packet Forward Engine Click Ethernet Packets (data) PlanetLab VM (user-space) tap 0 eth2 UML eth3 Ethernet Packets (routing) UmlSwitch element Tunnel table Filters UDP tunnels Control Data Andy Bavier, et. al., In VINI Veritas: Realistic and controlled network experimentation, in Proc. of SIGCOMM 2006.
VINI (VIrtual Network Infrastructure) PL-VINI (3/3) VINI (PL-VINI) 의이해 arbitrary network topologies on a shared physical infrastructure + carrying real traffic + controlling network events BGP BGP c BGP BGP s
VINI (VIrtual Network Infrastructure) - Trellis (1/2) Allows each virtual network to define its own topology, control protocols, and forwarding tables, which lowers the barrier for deploying custom service on an isolated, reconfigurable, and programmable network Design goals: Speed / Isolation / Flexibility / Scalability / Low Cost Trellis 의배경 : PL-VINI 의네트워크가상화성능을향상시키는한방법으로제안됨 VINI 에서의패킷포워딩은 user space 에서이루어졌기때문에좋은성능을내지못하였다. Trellis 에서는패킷포워딩이 kernel space 에서이루어지도록함으로써성능향상을이루고자하였다. Trellis 의가상화 컴퓨팅가상화 PL-VINI와동일네트워킹가상화 Kernel space에서의패킷포워딩을지원하기위해 NetNS를사용 User-space의응용으로하여금 kernel의 FIB를직접수정할수있도록하였음고속의가상네트워크지원을위해새로운터널링기술인 EGRE를 GRE에기반하여개발함 Point-to-point 연결의성능향상을위해서 shortbridge를개발 Sapan Bhatia, et. al., Trellis: A platform for building flexible, fast virtual networks on commodity hardware, in Proc. of ACM ROADS 2008.
VINI (VIrtual Network Infrastructure) - Trellis (2/2) Trellis 의네트워크가상화 EGRE Virtual link 의효율적이며빠른 encapsulation, multiplexing 을위해서 GRE 를활용하여새로운터널링모듈인 EGRE 을구현 Terminate tunnels in the root context Root context 에서 virtual link 를종료시킴으로써트래픽제어를보다용이하도록하였다. 리눅스트래픽제어모듈인 tc 를사용 Bridging Point-to-multipoint 를위해서는리눅스에서지원되는 software bridging 사용 Point-to-point 연결의성능향상을위해서 shortbridge 를구현 Overview of Trellis Shortbridge Akihiro Nakao, et. al., CoreLab: An emerging network testbed empolying hosted virtual machine monitor, in Proc of ACM ROADS 2008.
PRIVATE VINI (MYVINI) 설치 / 검증단계및유의사항 활용을위한운용및확장
Private VINI 설치및검증 (1/7) Private VINI: MyVINI A standalone software distribution that allows researchers and application developers to deploy their own virtual network hosting platforms PlanetLab (PLC) 의 private 버전이 Private PlanetLab (MyPLC) 인것처럼, MyVINI 는 VINI 의 private 버전으로이해할수있다. (Private PlanetLab 처럼 ) 연구에필요한기능을임의로추가할수있으며, (VINI 처럼 ) 원하는다양한네트워크환경을꾸밀수있다. 예 ) MyVINI @ GIST MyVINI Node -ppl2.nm.gist.ac.kr Dell Precision T3400 MyVINI Node - ppl1.nm.gist.ac.kr DellOptiplex Gx280 MyVINI @ GIST MyVINI Node - ppl4.nm.gist.ac.kr Dell Precision T3400 MyVINI Central - vs.nm.gist.ac.kr Dell Precision 340 Sapan Bhatia, et. al., Trellis: A platform for building flexible, fast virtual networks on commodity hardware, in Proc. of ACM ROADS 2008.
Private VINI 설치및검증 (2/7) MyVINI (Trellis) 설치 설치버전 VINI Trellis v0.1 kernel (2.6.22.14-vs2.3.0.32.trellis) 설치한 Trellis Known issues IP 멀티캐스트지원안됨 XORP 지원안됨 Shortbridge 대신리눅스 bridge 지원 설치매뉴얼 MyVINI installation guide http://svn.planet-lab.org/wiki/myviniinstallguide New MyPLC user guide http://svn.planet-lab.org/wiki/myplcuserguide Vserver installation on Centos5 http://svn.planet-lab.org/wiki/vservercentos Centos5 installation http://wiki.linux-vserver.org/installation_on_centos
Private VINI 설치및검증 (3/7) MyVINI 설치순서 CentOS (Host OS) 설치 -> Fedora 8 (Guest OS) 설치 -> MyPLC 설치 -> Trellis 설치 MyVINI 설치및유의사항 CentOS 설치새로운부트이미지설치후재시작할때새로운부트이미지선택 Fedora 8 설치 Host 머신에 httpd server 가동작하고있어야함 설치시로컬 web server 에접속하여필요한데이터수신함 MyPLC 설치후실행 Host 머신의 httpd server 의동작을중지시켜야함 Guest 머신에서 httpd server 가동작해야하는데 Host 와 Guest 머신에서동작하는 httpd server 간의충돌이있어 MyPLC 실행시 web server 와 crond 가실행되지않음. Trellis 이미지교체 http://www.vini-veritas.net/boot/bootstrapfs-planetlab-i386.tar.bz2 에서 trellis 이미지를다운받은후에 MyPLC 가설치된 Guest 머신의 /var/www/html/boot/bootstrapfs-planetlab-i386.tar.bz2 파일과교체한다. VINI 노드설치 PlanetLab 노드설치와동일
Private VINI 설치및검증 (4/7) MyVINI 토폴로지생성절차 ]# make configs VINI 노드들로전송될설정파일이생성된다. ]# make sync 생성된설정파일이 VINI 노드로전송된다. ]# make install 필요한패키지들이각 VINI 노드에설치된다. ]# make topo 설정파일에기초하여가상네트워크를구성한다. ]# make test 설정된가상네트워크의연결성을 ping 으로테스트한다. ]# make start 가상네트워크상에서라우팅소프트웨어 ( 예, Quagga) 를동작시킨다. ]# make stop 동작하고있는라우팅소프트웨어를중지시킨다. ]# make teardown 생성된가상네트워크를없앤다
Private VINI 설치및검증 (5/7) make configs 관련된파일 Makefile 설정파일생성시사용될루비파일경로를지정한다. CONFIG= $(BASE_DIR)/config/vini.rb Vini.rb 파일 ###Slices $iias = Slice.new('nml_2') //slice name $iias.set_environment('trellis') $iias.set_key(110); //erge key ###Nodes $ppl1 = Node.new('ppl1.nm.gist.ac.kr', $iias, 'ppl1') $ppl2 = Node.new('ppl2.nm.gist.ac.kr', $iias, 'ppl2') ###Links $l1 = Link.new($ppl1, $ppl2) nml_2 Virtual link MyVINI Node - ppl1.nm.gist.ac.kr MyVINI Node -ppl2.nm.gist.ac.kr nml_2 MyVINI @ GIST MyVINI Central - vs.nm.gist.ac.kr MyVINI Node - ppl4.nm.gist.ac.kr ###Additional node configurations $ppl1.hostinfo("210.125.84.14") $ppl2.hostinfo("210.125.84.13") 파일생성 Vini 디렉토리에생성된파일저장됨
Private VINI 설치및검증 (6/7) make topo 관련파일 : setup-links 가능한에러메시지 audit_log_user_command(): Connection refused 에러메시지를발생하나명령어는제대로동작 Fedora 8 에서만발생하는문제로 sudo user 와연관이있음 /vsys/setup-nat: line 14: echo: write error: File exists Named pipe 관련에러 에러메시지는발생하나정상적으로동작 가능한에러 SIOCADDRT: File exists make topo 진행시실행되는 setup-links 는 NAT interface 를활성화시키고이와관련된 routing table 을설정하다. 이때만약기존에동일한이름으로 routing table 에설정이되어있다면위와같은에러가발생 ( 예, make topo 명령을여러번실행했을경우 ) 문제해결 : routing table 에해당내용이없을경우에실행되도록 setup-links 파일수정. VINI 노드의 /etc/vini/egre-keys.txt 관련에러 만약위의파일에사용할 egre key 값이없다면가상네트워크인터페이스생성이이루어지지않는다.
Private VINI 설치및검증 (7/7) make topo 실행결과
Private VINI 운용및확장 (1/3) 활용방안예 - Dynamic IPS (Informed Peer Selection) Informed Peer Selection P2P 사용자가 ISP 가제공하는네트워크정보에기초하여통신할상대를선택함으로써, ISP 의운용비용을절감시키고 P2P 사용자의성능을향상시키는방법 Dynamic IPS IPS 에기초하여선택된상대와통신하는동안네트워크상황변화에대응하여 P2P 사용자의품질을보장하기위해 P2P 사용자간의통신경로를변경하는방법 콘텐트교환 네트워크정보 P2P User ISP 서버
Private VINI 운용및확장 (2/3) 동적인플로우제어기능추가 목표 미리설정한라우팅프로토콜에의한라우팅뿐아니라, 연구자임의로자신이원하는특정플로우를제어할수있는기능을추가 P2P 사용자 P2P 사용자 요구사항 MyVINI 테스트베드 VINI를활용한네트워크이벤트발생 (VINI 지원 ) VINI에서가상링크의네트워크상황을관찰할수있는기능추가 예 ) S 3 (Scalable Sensing Service): E2E latency, E2E available bandwidth, loss rate 포워딩테이블을동적으로변경할수있는기능추가 예 ) route add/delete ~~ 명령을통한라우팅테이블변경
Private VINI 운용및확장 (3/3) 대규모의테스트베드구축 목표 revisitation 개념적용을통해적은수의노드로대규모의테스트베드를구축 revisitation: allows a physical in the underlying infrastructure to host multiple virtual nodes of a single virtual network Virtualized MyVINI Nodes Virtualization & revisitation 요구사항 Physical MyVINI Nodes 가상호스트를연결하는가상링크의네트워크설정 ( 예, 지연시간, 패킷손실율..) 동일노드에서지원되는가상호스트간의성능분리 (isolation) 확인 N.M. Mosharaf Kabir Chowdhury and Raouf Boutaba, A survey of network virtualzation, Technical Report CS-2008-25, 2008.
Q & A Thanks!!