티스토리 뷰
안녕하세요~!!
한달만에 다시 블로그에 글을 써 보는 것 같습니다. 저는 그동안 아이와 함께 재미있고 즐거운 여름 휴가를 보내고 다시 일상으로 복귀를 하였습니다. 오늘부터 다시 오픈스택도 하고, 커뮤니티 활동도 열심히 해야 하겠습니다.
오늘은 네트워크 서비스인 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 | |
Cloudbase Hyper-V Plug-in | |
Linux Bridge Plug-in | |
Mellanox Plug-in | |
Midonet Plug-in | |
ML2 (Modular Layer 2) Plug-in | |
NEC OpenFlow Plug-in | |
Open vSwitch Plug-in | http://docs.openstack.org/admin-guide-cloud/content/ch_networking.html#networking-services |
PLUMgrid | |
Ryu Plug-in | |
VMware NSX Plug-in |
그럼 이번에는 하이퍼바이저별로 지원하는 플러그인 정보를 한번 알아볼까요?
여러분의 쉬운 이해를 위하여 제가 그림으로 한번 그려봤습니다.
오픈스택의 기본 하이퍼바이저인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
'OpenStack Class' 카테고리의 다른 글
[OpenStack Class] 제13강 데쉬보드 서비스! HORIZON (2) | 2014.08.30 |
---|---|
[OpenStack Class] 제12강 블록 스토리지! CINDER (3) | 2014.08.27 |
[OpenStack Class] 제10강 인증 서비스! KEYSTONE (3) | 2014.07.21 |
[OpenStack Class] 제9강 이미지 서비스! GLANCE (8) | 2014.07.17 |
[OpenStack Class] 제8강 오브젝트 스토리지 서비스! SWIFT (3) | 2014.07.09 |
- Total
- Today
- Yesterday
- neutron
- 네트워크
- NOVA
- 하둡
- Swift
- 오픈스택
- 설치
- 뉴트론
- ubuntu
- 오픈쉬프트
- Python
- 세미나
- 명령어
- 레드햇
- Redhat
- 컨테이너
- cpu
- 클라우드
- install
- sdn
- 쿠버네티스
- OVN
- command
- 후기
- openstack
- Network
- Java
- 파이썬
- 김미경
- 우분투
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |