(Recovered from my old article - originally posted on 2017.03.14 10:28 KST)

 

(참고: 영문 버전은 http://sdndev.net/11에서 확인하실 수 있습니다.)

 

지난 1회 업스트림 트레이닝에 이어 2017년 2월 11일 (토), 오전 10시부터 오후 5시까지

OpenStack 두 번째 로컬 업스트림 트레이닝 행사를 개최하였다.

 

올해는 OpenStack Days Korea 2017 행사를 7월 중순에 개최 예정이기에,

이번 두 번째 업스트림 트레이닝은 지난번 보다 길게, 토요일 오전 & 오후로 진행하는 식으로 계획하였으며,

실제 모집 및 진행하였던 상세 내역은 http://openstack-kr.github.io/upstream-training/2017/ 참고.

 

아무래도 지난 첫 업스트림 트레이닝과 달리 보다 길게 진행하기에

지난 업스트림 트레이닝보다 많은 분들께서 도와주셔야 행사를 잘 치를 수 있을 것 같은 생각에

이번에는 작년 11월에 업스트림 트레이닝 진행을 위한 스터디를 커뮤니티에서 모집하였고,

많은 분들이 참여해 주셨으며, 또한 업스트림 트레이닝에 멘토로 도와주셔서 행사를 잘 마칠 수 있었다고 생각한다.

 

(스터디 내용 참고: https://github.com/openstack-kr/openstack-study/tree/master/2016-fall-upstream )

 

- 업스트림 스터디 사진 #1 -

 

- 업스트림 스터디 사진 #2 -

 

 

평소에 오픈스택 스터디를 진행하면서 토즈 공간을 많이 이용하였으나,

이번 업스트림 트레이닝 때는 참가 인원을 30명 규모로 생각하였으며, 멘토링 및 실습 등을 위해 넉넉한 공간이

있으면 좋겠다고 생각하여 어떻게 하면 좋을지 많은 고민이 있었다.

다행히 이전에 여러 실습 등을 많이 치렀던 우분투 한국 커뮤니티에서 업스트림 트레이닝에서 다루는

Launchpad (오픈 소스 버그 트래킹 및 개발을 위해 우분투에서 많이 사용함, https://launchpad.net/ )도

같이 살펴볼 겸하여 공동 개최를 하기로 결정하였다.

또한 네이버 D2에서 공간 대여 가능한 D2 Startup Factory를 흔쾌히 대여 허락해 주셔서 스터디도 많은 분들과

재미있게 같이 하면서 필요한 행사 콘텐츠 및 모집 등을 차근차근 함께 진행해 나갈 수 있었다.

 

그러나.. 행사 4일 전 마지막 스터디에서 행사 진행 준비를 논의하던 중...

두둥! D2에 멀티탭이 없을 수도 있다는 사실을 인지하기 시작했다.

수, 목에 열심히 알아보았으나 안타깝게도 D2에서 여분의 멀티탭이 없었다.

그렇다고 행사 이틀 전에 장소를 바꿀 수는 없기에.. 이곳저것 수소문한 덕택에 도움을 주신 두 곳이 있다.

 

1. 나임네트웍스 (http://www.naimnetworks.com/)

본인이 2013년 10월~2014년 8월까지 재직하였던 회사로 나임아카데미 등 교육도 진행을 같이 하기에

혹시나 싶어 회사 전 동료 및 팀장님 (지금은 본부장님이라고 하심)께 여쭈어보니 남는 여분이 있으면 가능할 것 같다고 하셨으며, 정말 다행히 그 시기에 서버 rack에서 떼놓은 14구 멀티탭이 3개인가 있어 흔쾌히 빌려주셨다.

 

- 멀티탭 14구의 위엄! (Thanks to NAIM Networks, Korea) -

 

 

2. 모두의연구소 (http://modulabs.co.kr/)

2015년 초, 인공지능 스터디를 참여하였던 적이 있는데 그 때 현재 모두의연구소 소장님이신 김승일 님을 알게 되었다. 연구소 취지가 좋다고 생각하여, 시간이 허락될 때 스터디 하나를 직접 참가하고 싶은 마음이 크지만, 현실적으로 오픈스택을 보면서 모두의 연구소에서 하는 부분까지 살펴보는 건 참으로 쉽지 않은 것 같다. 소장님께서도 외부 교육 등을 많이 진행하시기에 물어보았으며, 금요일 오전에 연락되어 소장님께선 연구소에 안 계시지만 다른 분의 도움을 받아 힘들게 멀티탭 6구를 여러 개 대여할 수 있었다.

 

이러한 준비 + 많은 분들의 도움 덕택에 이번 2회 업스트림 트레이닝은 지난 번 1회때보다 구체적인 목표를 갖고

여러 질문 & 답변과 함께 재미있는 시간을 보낼 수 있었다고 생각한다.

 

- 제2회 업스트림 트레이닝 행사 끝나고 단체 사진 -

 

- 실습 중 -

 

- Etherpad를 사용한 설명 중 -

 

- 쉬는 시간이지만 토의중 -

 

- 즐거운 토론 중 -

 

 

다음 업스트림 트레이닝 행사도 잘 진행되면 좋을 것 같은데.. D2의 도움도 계속 필요할 것 같고

무엇보다 여러 멘토 분들과 함께하였지만 사실 혼자 Full로 진행하기에는 다소 지치는 측면도 있어..

보다 많은 한국 분들께서 오픈스택 업스트림에 기여하시고, 그 경험을 바탕으로 같이 즐겁게 차후 행사를 할 수 있으면 정말 좋을 것 같다는 생각을 해본다.

 

(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