(Recovered from my old article - originally posted on 2014.12.12 08:05 KST)

 

지난 12월 9일 오전 9시 (한국 시각: 12/10 2:00AM)에 Midokura에서 있었던 "Midonet - How to Get Started"에 참석했을 때 들었던 내용들을 정리하고, Midostack을 사용해 본 경험을 정리하였습니다.

 

Midokura 회사에서 개발하는 MidoNet은 OpenStack 등의 클라우드 관리 플랫폼 계층과 KVM 등의 Hypervisor 계층 사이에서 일종의 네트워크 가상화 계층을 두어 다음과 같은 네트워크 기능을 제공하도록 설계되었다.

 - Logical Switching: 물리 네트워크의 2계층과 3계층을 논리적으로 분리 (decoupling)

 - Logical Routing: 가상 네트워크에서의 라우팅 지원

 - Logical Firewall: 커널과 통합된 빠른 속도의 분산 방화벽 지원

 - Logical Layer 4 Load Balancer: 소프트웨어 내에서의 응용프로그램 로드 밸런싱

 - API: RESTful API를 통한 클라우드 관리 플랫폼과의 통합 지원

Midonet은 production network을 염두하고 벤더 및 사용자 중립성을 목표로 하는 Apache 2 라이선스를 따르는 오픈 소스라고 한다.

 

Midokura에 따르면 커널 레벨에서 구현되고, Agent를 기반으로 통신을 하는 식으로 구조가 되었기에, 오버레이 네트워크와 같은 논리적인 토폴로지 구성이 쉽다고 한다. 

또한, 장애가 발생했을 때의 처리 (예: failover), 확장성 (scalability), 네트워크 효율성 등을 해결하기 위해 Midonet은 분산형의 모델을 선택하였다고 한다.

 

 

Midostack은 이러한 Midonet을 오픈 소스 클라우드 관리 플랫폼에서 체험 가능하고자 만들어졌으며, DevStack이 실행될 때 Midonet을 같이 구성하여 Midonet 오픈 소스에 기여하고자 하는 사람, Midonet을 배우고자 하는 사람 등을 대상으로 만들었다고 한다. Midostack은 현재 Ubuntu 14.04에서만 설치를 지원한다고 한다. 실제 Midonet을 설치할 때는 Midostack이 아닌 CentOS 7 또는 RHEL 7에서 동작하는 Packstack RDO를 권장한다고 한다 (참고: https://openstack.redhat.com/MidoNet_integration). Packstack RDO는 Icehouse 기반에서 동작한다고 한다.

 

또한, 보다 자세한 사항 및 Midonet에 contribute하는 방법 등 상세한 설명이 webinar에서 있었다. (슬라이드는 곧 공개될 것으로 보입니다.)

 

OpenStack, 특히 DevStack 위에서 구동되는 것이 신기해 보여 Midostack을 설치해 보고, Midonet에서 지원하는 간단한 cli 명령들을 실행해 보았다.

 

- 준비: VirtualBox 4.3

- OS: Ubuntu 14.04 LTS (64 bit)

- 기본 설정 사항: 램 8GB, HDD는 넉넉하게 50GB 정도로 동적 디스크로 할당, 기본 네트워크 NAT 사용

(Midostack은 다른 설정없이 실행했을 때, public network가 200.200.200.0/24라고 가정한다. 혹, 네트워크 functionality까지 테스트를 원하시는 분은 Midostack 실행 전 설정을 변경하거나, VirtualBox 설정 등을 통해 네트워크 영역을 지정해 줄 필요가 있다.)

 

정말 손쉽게, 다음과 같은 명령을 실행하여 설치 가능한데, 몇 가지는 미리 해 주어야 한다.

- 리눅스가 최신 업데이트된 상태여야 한다. ('sudo apt-get update', 'sudo apt-get upgrade', 'sudo apt-get dist-upgrade', 'sudo reboot' 차례 차례 실행 필요)

- 'git' 설치 필요 ('sudo apt-get install git')

 

 $ git clone 

 $ cd 

 $ ./midonet_stack.sh

 

실행하면 Midonet 및 DevStack 최신 소스를 다운로드하여 자동으로 설치가 이루어지고, Midonet에서 사용하는 logical router 등의 생성까지 이루어진다.

그런데, 나의 경우 알 수 없는 이유로 DevStack 설치 이후 Midonet에서 logical router 생성이 실패했는데, IRC community에 질문하니 unstack 실행 후 다시 stack을 실행해 보라는 제안을 주었고, 실제 그렇게 하니 성공적으로 설치가 된 메시지를 확인할 수 있었다.

(약 2주 전까지는 protobuf 최신 버전을 별도로 설치했어야 했는데, 이 부분은 최근에 해결된 것으로 보인다.)

 

 

 

설치 완료 화면: Devstack과 비슷하게 설치 완료된 후, Midonet과 관련된 추가 작업이 이루어진 것을 확인할 수 있다.

 

 

Horizon: 디폴트로 200.200.200.0/24 public network가 생성된다. VM 인스턴스를 하나 생성한 후, 캡처한 화면

 

 

midonet-cli 명령을 통해 OpenStack에서 사용하는 tenant 목록을 확인할 수 있으며, Midonet에서 관리하는 라우터에 대한 포트 목록, multi-node OpenStack 환경을 위한 host 목록 및 PRE_ROUTING, POST_ROUTING 처리를 위한 chain 목록 등을 확인 가능하였다.

 

 

Midonet의 더 많은 기능을 테스트하기 위해서는 Multi-node로 환경을 구성해야 할 것으로 보인다. IRC에서 이와 관련해 논의하였는데, 이 때는 Midostack보다는 Packstack RDO를 활용하는 것이 좋을 것 같다는 제안을 들었다. (아무래도 Midostack으로 multi-node를 구성하려면.. 이것저것 삽질이 많이 필요할 수 있다는 이야기겠죠? 참고하셨으면 합니다.)

 

[참고]

http://www.midonet.org/#quickstart

- Online MidoNet Network Virtualization Meetup (http://www.meetup.com/Online-MidoNet-Meetup/) 자료 인용

http://komeiy.hatenablog.com/entry/2014/11/13/012401

- Midonet IRC!

 

+ Recent posts