티스토리 뷰

OpenStack

OpenvSwitch 와 Open Virtual Network

나리 짱!!! naleejang 2021. 4. 18. 14:53

오픈스택에서 가장 중요한 것은 아마도 네트워크일 것이다. 사실 레드햇 오픈스택의 기본 네트워크는 ML2기반의 OVS였다. 그런데, 지난 2월에 릴리즈된 레드햇 오픈스택 16.1 (커뮤니티 버전: Train)부터는 운영체제가 RHEL 7에서 RHEL 8로 변경되었고, Neutron 네트워크는 ML2기반의 OpenvSwitch 에서 Open Virtual Network라는 SDN 으로 변경되었다.

기본 오버레이 패킷 변경

기존 ML2/OVS 환경에서 오버레이 패킷은 VXLAN이였고, 패킷 헤더는 아래와 같이 생겼었다. 

VXLAN Packet Header

OVN 환경에서 오버레이드 패킷은 Geneve로 변경이 되었고, 패킷 헤더는 아래와 같이 VXLAN보다 훨씬 길어졌다.

Geneve Packet Header

Geneve 패킷은 VXLAN보다 길이가 길다. 정확하게 세어보지 않아서 얼마나 더 긴지는 알수가 없지만,... 여튼 그림을 보면 길어보인다. 그런데, 이 두 패킷을 비교한 성능 자료들을 보면 Geneve가 VXLAN보다 패킷 길이가 더 길어도 성능적으로 훨씬 빠르다는 것이다. 그때는 사실 이해가 가질 않았다. 왜 대체 성능이 Geneve가 VXLAN보다 빠른건지 말이다.

OVS 환경의 오픈스택 가상 네트워크 환경과 OVN 환경의 오픈스택 가상 네트워크 환경

이건 얼마전 고객사의 오픈스택 환경을 점검하고, 분석하면서 분석한 결과를 그림으로 표현하다보니 알게되었다. 왜 OVN환경에서 Geneve 패킷에 대한 성능이 더 좋은지 말이다. 아래 그림은 OVS환경의 RHOSP13과 OVN환경의 RHOSP16의 가상 네트워크 생성 현황을 그림으로 표현한 것이다. OVS 환경은 기본적으로 VM이 Floating IP를 달고 외부 통신을 하려면 무조건 컴퓨트 노드 내의 br-int와 br-tun이라는 가상 브리지를 거쳐 컨트롤러 노드의 br-tun, br-int이라는 가상 브리지를 또 거치고 거쳐 br-ex 라는 브리지를 거쳐 통신이 된다. 그런데, OVN환경에서는 그냥 컴퓨트 노드에 있는 브리지를 통해 바로 외부 통신이 된다. 

 

OVS 환경의 오픈스택 가상 네트워크 환경

다시 한번 더 정리를 해 보면 OVS 환경의 RHOSP13에서는 다음과 같은 12개 가량의 가상 네트워크를 거쳐 통신이 된다. 그리고, 반드시 컨트롤러 노드를 거쳐야만 한다.

- VM > qbr~ > qvb~ > qvo~ > tap~ > br-int > br-tun > br-tenant > physical switch > br-tenant > br-tun > br-int > br-ex > physical switch 

 

OVN 환경의 오픈스택 가상 네트워크 환경

OVN 환경의 RHOSP16.1 에서는 다음과 같이 5개 정도의 가상 네트워크를 거쳐 통신이 된다.

- VM > tap~ > ovnmeta~ > tap~ > br-int > br-ex > physical switch

그림으로 표현된 네트워크 구조를 살펴보면 왜 OVN환경이 OVS환경보다 성능이 좋다고 했는지 알것 같다. 그렇다고 해서 OVS가 항상 나쁜건 아니다. 뭐든 좋은게 있으면 안 좋은것도 있는법이니까... 오랫동안 오픈스택을 설치하고 운영해보니 OVS  환경은 컨트롤러 노드에 모든 가상 네트워크가 생성되어 운영할때 컨트롤러 노드만 들어가서 보면 되기 때문에 편했지만, OVN 환경은 OVN 데이터베이스에서 모든 네트워크 정보를 관리하므로, 운영할때도 솔직히 말해서 좀 더 어려운 부분들이 있는것 같다. 그리고, 아직까지는 OVN이 나온지 얼마 되지 않아서, 미쳐 기능 개발이 되지 않은것들도 꽤 보이는것 같다. 하지만, 앞으로는 계속 OVN을 개발할꺼라고 하니 OVS보다는 OVN환경이 더 좋아지기는 할 것 같다.

그리고, 덤으로 하나 레드햇 오픈스택은 커뮤니티 오픈스택의 TripleO 프로젝트를 기반으로 한다. 따라서, TripleO를 이용하여 오픈스택을 구성하고 배포한다면 레드햇 오픈스택과 동일한 것이라고 볼 수 있다. 그리고, 오픈스택은 표준 기술과 API를 사용하므로, 커뮤니티 오픈스택이나 레드햇 오픈스택의 기술 자체에는 큰 차이는 없다. 다만, 문제가 발생했을때 또는 구축을 해야 할 경우 스스로 알아서 하느냐, 아니면, 누군가의 도움을 받는냐의 차이는 있을 수 있겠지~~

댓글
  • 프로필사진 부자아빠 드디어 집에서 트레인 설치에 성공했읍니다. 추카해 주셤~^^ 여기 블로그 와 보니 제가 평소에 궁금해왔던 미지의 영역이 잘 소개되어 있네요. OVN, OVS 개념 잘 얻어 갑니다 감사요~ 열혈독자. 2021.05.14 11:24
댓글쓰기 폼