OpenStack2015.01.10 01:04

안녕하세요~!!


오랜만에 글을 써 보는 것 같습니다. 

요즘 얼마 남지 않은 OpenStack Day in Korea 2015 행사 준비때문에 정말 정신없이 하루가 지나가 버리곤 하거든요~!! 


그런데, 오늘 이렇게 글을 올리는 이유는 어느분께서 올려주신 블로그의 방명록 글 때문입니다. 정말 장문의 글을 올려 주셔서 이건 포스팅을 안하면 안될 것 같다는 생각이 들었습니다. 그래서, 어떻게 설명을 하면 좀 더 이해를 쉽게 할 수 있을까? 하고 고민을 하다가 이렇게 글을 올립니다. 


오픈스택을 시작하신 대부분의 사람들이 기존 레거시 네트워크인 nova-network와 SDN 개념이 들어가 있는 neutron 네트워크에 대해 많이들 혼동을 하는 것 같습니다. 


그래서 오늘 이 두가지 네트워크에 대해 정리를 한번 해 보았습니다.


Nova-network


nova-network는 기존 nova 프로젝트 내에서 네트워크를 관리해 주는 프로세스입니다. 그래서 nova-network를 사용할때 nova-api를 사용하여 네트워크를 관리합니다. 또한, nova-network는 외부 통신을 할때 주어지는 Floating IP 범위가 오픈스택이 설치되는 서버와 같은 IP 대역을 사용하기 때문에 사용 가능한 IP 대역이 상당히 제한적입니다.





Neutron


그래서, 이런 제한적인 IP 대역을 해결하고자 나온 개념이 바로 SDN(Software Defined Network)입니다. Neutron은 바로 이 SDN을 이용하여 인스턴스의 Floating IP와 Fixed IP를 관리하겠다는 것입니다. 그래서, 위에 보이는 nova-network를 사용할때는 보이지 않던 ML2 플러그인, 에이전트, OpenvSwitch 등이 존재하며, OpenFlow Controller와 OpenvSwitch가 존재하는 것입니다. 기존 네트워크 장비들은 물리 네트워크와 네트워크를 컨트롤하는 소프트웨어가 장비안에 모두 포함되어 있었습니다. 그런데, 이것을 장비 안에 포함시키는 것이 아니라, 별도의 서버에 네트워크를 컨트롤 하는 프로그램을 따로 두고, 네트워크를 관리하겠다는 의미에서 나온 것이 바로 SDN입니다. 


Neutron을 사용하면 물리 스위치를 그대로 이용하는 것이 아니라, 인스턴스가 가상이듯이 스위치도 가상으로 만든 스위치를 사용하게 됩니다. 이때 주로 사용하는 스위치가 바로 OpenVSwitch입니다. OpenVSwitch는 인스턴스별로 하나씩 생성되어 할당이 되며, 인스턴스의 통신을 담당합니다. 그런데, 물리적으로 멀리 떨어져 있는 인스턴스끼리 서로 통신을 할려면 길을 알아야만 통신을 할 수 있습니다. 예전에는 이 길을 물리 네트워크 장비가 모두 가지고 있었지만, SDN에서는 별도의 서버에서 모든 네트워크 정보를 가지고서 길을 알려줍니다. 이에 대표적인 것이 바로 OpenFlow 입니다. 그래서, OpenFlow에는 모든 인스턴스의 네트워크 정보를 가지고서 길을 알려주는 컨트롤러와 인스턴스별로 생성되는 가상 스위치가 존재하게 되는 것입니다. 



Neutron을 이용한 네트워크를 사용해야겠다고 생각을 하고 가상 스위치와 같은 것들을 열심히 설치했는데, 기존에 물리 스위치를 쓰던 Nova-network를 사용하게 되면 당연히 충돌이 발생하겠죠~!! 그래서, 오픈스택은 설치도 못해보고 어떻게 생긴것지 알수도 없을것입니다. 그래서, 오픈스택 메뉴얼에 두 가지 방식의 설치 방법이 나오는 것입니다. 작은 사무실에서 오픈스택을 아주 작게 사용할 계획이라면 서버도 많이 필요하고 네트워크 카드도 많이 필요한 Neutron을 사용할 이유가 없겠죠~!! 그런데, 문제는 정말 많은 인스턴스를 생성해야 하고 관리해야 하는 데이터센터와 같은 곳이라는 것입니다. 이런 곳에서는 기존의 nova-network Floating IP 범위로는 IP를 감당하기 힘들겠죠~~ 그래서, 데이터센터와 같은 곳에서 많은 네트워크 관리를 충족시키기 위해 SDN 개념이 들어간 Neutron을 사용하는 것입니다.


아래 그림은 Neutron 네트워크 타입 중 GRE로 오픈스택을 설치했을 경우의 네트워크 구성도입니다. nova-network와는 다르게 네트워크와 관련된 모든 소프트웨어들이 모두 가상으로 생성이 되어 에이전트로 동작을 합니다. 이 마저도 무슨 뜻인지 잘 모르시겠다 하시는 분들은 네트워크 공부를 별도로 하셔야 합니다. 이것마저 제가 여기서 설명드릴수는 없잖아요~!! ^^;






이렇게해서 nova-network와 neutron에 대해서 알아보았습니다.

좀 더 많은 그리고 좀 더 깊이있는 네트워크를 알고 싶다면 이번 2015년 2월 5일에 있을 "제2회 OpenStack Day in Korea 2015"에 참석해 보는건 어떨까요?


그럼, 모두들 즐거운 주말 되세요~~~~ 

Posted by 나리 짱!!! naleejang