본문

OpenStack Neutron #2. Neutron의 구조




[그림 1] Quantum기준으로 작성된 [3]의 그림을 약간 수정한 뉴트론의 구조.


오픈스택 네트워킹 서비스는 API를 제공함으로써 클라우드 환경에서 사용자가 네트워크의 주소와 연결을 관리하고 할 수 있도록 도와준다. 네트워킹 서비스를 위한 프로젝트의 코드네임은 뉴트론(Neutron)이다. 오픈스택 네트워킹은 오픈스택 컴퓨트 서비스(Nova)에 의해 관리되는 장치들을 위하여 네트워크, 스위치, 서브넷 그리고 라우터와같은 가상 네트워킹 인프라를 생성하고 관리한다. 또한 API를 통하여 기본적인 네트워크 연결 설정 뿐 아니라 L3 라우팅, NAT, LB, 방화벽 또는 VPN등과 같은 고급 서비스도 지원한다.


오픈스택 네트워킹은 뉴트론 서버(neutron-server), 데이터베이스, 그리고 다양한 플러그인 및 에이전트로 구성되어 있다. 플러그인과 에이전트는 네이티브 리눅스 네트워킹 메커니즘, 외부 장치, 또는 SDN 컨트롤러등을 위한 인터페이스를 제공하는등의 다양한 역할을 수행한다. 뉴트론 서버를 중심으로 하는 관점에서는 뉴트론을 API서버, 플러그인/에이전트, 메시징 큐로 그 구성요소를 구분하여 설명하기도 한다.

  • API서버
    • 오픈스택 네트워킹 API에는 2계층 네트워킹 및 IP 주소 관리(IPAM, IP Address Management) 뿐 아니라 3계층 라우터 구조를 위한 확장또한 제공되어 2계층 네트워크와 게이트웨이간의 라우팅을 통해 외부 네트워크와의 연결을 가능하게 한다 .
  • 오픈스택 네트워킹 플러그인 및 에이전트
    • 포트의 연결 설정/해지, 네트워크 또는 서브넷의 생성, 그리고 IP 주소 관리등의 역할을 수행한다. 플러그인가 에이전트는 클라우드 구축에 사용된 벤더 또는 기술에의해 서로 다를 수 있다. 중요한것은 한번에 하나의 플러그인만 사용할 수 있다는 것이다. 플러그인은 뉴트론 서버에 의해 인스턴스화되고 관리된다. 에이전트는 뉴트론 서버와 분리된 독립적인 서비스 프로세스이다. 몇몇 플러그인은 에이전트를 사용하여 역할을 수행하지만 어떤 플러그인은 플러그인 그 자체로 동작하는 경우도 있다.
  • 메시징 큐
    • 에이전트간의 RPC 요청을 수락하고 전달한다. 메시지큐는 ML2 플러그인에 사용되어 뉴트론 서버와 각 하이퍼바이저상에서 동작하는 뉴트론 에이전트간의 RPC에 사용되기도 한다.


[그림 2] 오픈스택 네트워킹을 이루는 요소들(오픈스택을 전체적으로 그린 [4]을 참고)


오픈스택 네트워킹을 구현하겠다는것이 뉴트론 프로젝트인데 이 둘의 관점이 약간 다르다는것을(하나는 아키텍쳐, 하나는 개발관점) 염두하는것이 좋다. 그리고 일반적으로 뉴트론이라 하면 컨트롤러에 설치되어 외부 API를 처리하고 이를 agent에 넘겨주는 neutron-server와 neutron plugin을 가리키는 경우가 많다. 그리고 컨트롤러 노드에 뉴트론 서버 및 플러그인등을(neutron-server neutron-plugin-*) 설치하고, 컴퓨트 노드에 뉴트론 에이전트를(neutron-plugin-*-agent) 설치한다는것을 이해해야 한다.



[그림 3,4] Compute와 Neutron의 관계를 잘 나타낸 그림, 더 나아가 SDN Controlelr와의 연동방안을 보여준다.



참고문헌:

[1] http://docs.openstack.org/networking-guide/intro_networking.html

[2] http://docs.openstack.org/networking-guide/intro_os_networking_overview.html

[3] http://www.slideshare.net/danwent/openstack-quantum-intro-os-meetup-32612

[4] http://docs.openstack.org/openstack-ops/content/figures/2/figures/osog_0001.png

[5] http://www.slideshare.net/ritchey98/neutronicehouseupdate-36326026

댓글

Holic Spirit :: Tistory Edition

design by tokiidesu. powerd by kakao.