OpenStack Class2014.08.25 15:57

안녕하세요~!! 

한달만에 다시 블로그에 글을 써 보는 것 같습니다. 저는 그동안 아이와 함께 재미있고 즐거운 여름 휴가를 보내고 다시 일상으로 복귀를 하였습니다. 오늘부터 다시 오픈스택도 하고, 커뮤니티 활동도 열심히 해야 하겠습니다.


오늘은 네트워크 서비스인 Neutron에 대해서 정리를 해 볼까 합니다.


네트워크 서비스인 Neutron Folsom 버전에서 Quantum이라는 이름으로 네트워크 서비스가 오픈 되면서 시작 되었습니다그리고그 후에 Grizzly 버전에서 Havana 버전으로 오면서 프로젝트 명이 Neutron으로 변경되었습니다기존 오픈스택의 네트워크 서비스는 Nova-network가 담당을 하였으나, SDN(Software Defined Network) 개념이 들어오면서 별도의 네트워크 프로젝트로 분리되었습니다.


그럼 먼저 논리 아키텍처로 Neutron이 어떤 기능을 하는지 먼저 알아보도록 하겠습니다.


Logical Architecture에서의 Neutron

Neutron은 Neutron 서버에이전트플러그인메시지 큐네트워크 프로바이더데이터베이스로 구성이 되어 있습니다또한 Neutron은 다양한 네트워크 플러그인과 네트워크 모델을 지원합니다아래 그림은 논리(Logical) 아키텍처 중 Neutron 부분을 크게 표현한 그림입니다아키텍처와 함께 예제를 통하여 Neutron이 어떻게 동작되는지 알아보도록 하겠습니다.


1. 사용자는 Neutron API를 이용하여 Neutron 서버로 IP를 할당을 요청합니다.

2. Neutron 서버는 들어온 요청을 Queue로 다시 요청합니다.

3. Queue는 Neutron 에이전트와 플러그인으로 IP 할당 지시를 내립니다.

4. Neutron 에이전트와 플러그인은 지시 받은 작업을 데이터베이스에 저장합니다.

5. Neutron 에이전트는 네트워크 프로바이더에게 작업을 지시합니다.

6. 그리고수시로 작업상태를 데이터베이스에 업데이트합니다.

7. 이제 할당된 IP를 인스턴스에서 사용할 수 있습니다.




아키텍처를 보고 Neutron이 네트워킹 기능을 하는 것이 아니라 Neutron과 연결된 다른 네트워크 프로바이더에 의해 네트워킹 된다는 사실을 알았습니다. 그럼, 이번에는 네트워킹 기능을 하는 네트워크 프로바이더 즉 플러그인에 대해 알아보도록 하겠습니다.


Neutron이 지원하는 플러그인 종류

Neutron은 SDN 개념이 나오면서 시작된 프로젝트입니다처음에는 지원하는 플러그인 종류가 많지 않았으나현재는 많은 플러그인을 지원하고 있습니다. Neutron Havana 버전으로 오면서 ML2 플러그인이 추가되었으며, IceHouse로 오면서는 OpenvSwitch와 Linuxbridge가 없어지고 ML2가 이를 대체하였습니다아래 표는 Neutron이 지원하는 플러그인 정보입니다아래 사이트를 방문하시면 플러그인별로 자세한 정보를 확인 할 수 있습니다.


Plug-in

Documentation

Big Switch Plug-in

(Floodlight REST Proxy)

http://www.openflowhub.org/display/floodlightcontroller/Neutron+REST+Proxy+Plugin

Brocade Plug-in

http://docs.openstack.org/admin-guide-cloud/content/ch_networking.html#networking-services

Cisco

http://wiki.openstack.org/cisco-neutron

Cloudbase Hyper-V Plug-in

http://www.cloudbase.it/quantum-hyper-v-plugin/

Linux Bridge Plug-in

http://wiki.openstack.org/Neutron-Linux-Bridge-Plugin

Mellanox Plug-in

https://wiki.openstack.org/wiki/Mellanox-Neutron/

Midonet Plug-in

http://www.midokura.com/

ML2 (Modular Layer 2) Plug-in

https://wiki.openstack.org/wiki/Neutron/ML2

NEC OpenFlow Plug-in

http://wiki.openstack.org/Quantum-NEC-OpenFlow-Plugin

Open vSwitch Plug-in

http://docs.openstack.org/admin-guide-cloud/content/ch_networking.html#networking-services

PLUMgrid

https://https://wiki.openstack.org/wiki/PLUMgrid-Neutron

Ryu Plug-in

https://github.com/osrg/ryu/wiki/OpenStack

VMware NSX Plug-in

http://www.vmware.com/nsx

 


그럼 이번에는 하이퍼바이저별로 지원하는 플러그인 정보를 한번 알아볼까요?

여러분의 쉬운 이해를 위하여 제가 그림으로 한번 그려봤습니다.

 

오픈스택의 기본 하이퍼바이저인KVM과 QEMU입니다. 그림을 보면 KVM과 QEMU는 대부분의 플러그인을 지원하고 있으며, Xen Server VMware NSX 플러그인을, VMWare는 Plumgrid와 VMware NSX, Hyper-V는 Cloudbase의 Hyper-V 플러그인을 지원하고 있습니다그렇기 때문에 오픈스택으로 클라우드 컴퓨팅 시스템을 구축할 때는 하이퍼바이저를 대부분 KVM으로 사용합니다.


 

노드 별로 설치되는 Neutron

이번에는 노드 별로 설치되는 Neutron 프로세스들을 알아보겠습니다. Neutron을 구성 할 때는 컨트롤러 노드컴퓨트 노드네트워크 노드로 구성됩니다. 우선 이해하기 편하게 그림으로 정리를 해 보면 아래와 같습니다.

각각의 노드에는 위 그림과 같이 구성이 되는데, Neutron이 구성되기 전에 메시지 큐데이터베이스인증 서비스인 Keystone, 이미지 서비스 Glance, 컴퓨트 서비스 Nova가 우선 설치되어야 합니다.


컨트롤러 노드

- Neutron Server

- Neutron Plugin Agent

이더넷 네트워크 인터페이스 2개 필요 (관리용 네트워크, API 네트워크)

컴퓨트 노드

- Neutron Plugin Agent

- L2 Layer Agent OpenvSwitch

네트워크 노드와 컴퓨트 노드 간의 데이터 통신을 위한 데이터 네트워크 필요

네트워크 노드

- Neutron 플러그인 에이전트

- L3 에이전트

- DHCP 에이전트

- OpenvSwitch

이더넷 네트워크 인터페이스 3개 필요(관리용 네트워크데이터 네트워크외부 네트워크)


주요 사이트

Neutron에 대한 최신 정보나 자세한 정보는 아래 사이트를 방문하시길 바랍니다.

- 소스코드 다운로드: https://github.com/openstack/neutron

- 개발자 문서: http://docs.openstack.org/developer/neutron

- 런치패드: https://launchpad.net/neutron

- 위키 사이트: https://wiki.openstack.org/wiki/Neutron



이렇게 해서 Neutron 에 대해 정리를 한번 해 봤습니다. Neutron을 보기 전에는 기본적인 네트워크 개념들을 한번쯤은 시작하는게 도움이 많이 됩니다. 조금이나마 여러분들의 이해를 돕기 위해 예전에 정리했던 글 링크를 알려드릴테니 참조하세요~!!!
- Cloud에서 알아야 할 Network 이야기 - http://naleejang.tistory.com/61
- Cloud Computing에서 자주 만나는 네트워크 용어들~!! - http://naleejang.tistory.com/62

다음에는 블록 스토리지 서비스인 Cinder에 대해 글을 써 볼까합니다. 그럼, 다음 시간까지 모두 모두 열공하세요!! ^^


Posted by 나리 짱!!! naleejang