본문 바로가기
Study

[Openstack] 오픈스택 컴포넌트 이해2

by wwns 2024. 9. 25.
반응형

이번주차의 목표 - 오픈스택 컴포넌트 이해

  • neutron
  • cinder
  • horizon

horizon

OpenStack Horizon은 OpenStack의 웹 기반 대시보드

클라우드 인프라를 관리하고 다양한 OpenStack 서비스를 사용자가 GUI를 통해 쉽게 접근할 수 있도록 제공한다.

Horizon은 OpenStack 클라우드 환경에서 사용자가 인스턴스, 네트워크, 스토리지, 사용자 관리 등을 직관적으로 수행할 수 있는 관리 도구입니다.

특히 프로젝트라고 불리는 테넌트에 인스턴스 생성, 네트워크 설정 등을 수행할 수 있다.

 

https://waspro.tistory.com/333


Cinder

https://somaz.tistory.com/128?pidx=2

  •  cinder-api
    • API 요청을 승인하고이를 cinder-volume조치로 라우팅한다.
  • cinder-volume
    • 블록 스토리지 서비스와 직접 상호 작용하고 또한 메시지 대기열을 통해 이러한 프로세스와 상호 작용한다.
    • cinder-volume서비스는 읽고 상태를 유지하기 위해 블록 스토리지 서비스로 전송 쓰기 요청에 응답한다.
    • 드라이버 아키텍처를 통해 다양한 스토리지 제공 업체와 상호 작용할 수 있다.
  • cinder-scheduler 데몬
    • 볼륨을 생성 할 최적의 스토리지 제공자 노드를 선택한다. nova-scheduler의 구성 요소와 비슷하다.
  • cinder-backup 데몬
    • cinder-backup서비스는 모든 유형의 볼륨 백업을 백업 스토리지 제공자에 제공한다.
    • cinder-volume서비스 와 마찬가지로 드라이버 아키텍처를 통해 다양한 스토리지 제공 업체와 상호 작용할 수 있다.
  • Messaging queue
    • 블록 스토리지 프로세스간에 정보를 라우팅한다.

리디바이스 드라이버

리눅스의 디바이스 드라이버는 LVM 드라이버를 제공하고 있다.

-> 리눅스의 볼륨을 스토리지로 사용할 수 있다


Neutron

Neutron 역할

  • 오픈스택의 인스턴스들에 대한 네트워크 제공
  • 스위치, 서브넷, 라우터 기능을 가상 네트워크를 구축하여 제공
  • 오픈스택의 내부 네트워크를 통해 방화벽, 로드밸런서와 같은 기능을 제공할 수 있음

 

Neutron 서버 요청 흐름

  • 방화벽, 시큐리티그룹, LBaaS, 라우터 생성 등의 요청은 Resource에 대한 API로 service plugins에 해당
  • 네트워크 생성, 서브넷, 포트 설정은 Core API이며 Core Plugin에 해당하며 네트워크 설정에 중점
  • Core API를 통해 네트워크 설정이 되면 해당 설정 내용에 대한 처리가 Message Queue에 쌓이게 됨
  • Resource Extension API를 통해 네트워크 설정이 변경되거나 서비스가 추가되면 해당 내용에 대한 처리가 Message Queue에 쌓이게 됨
  • L2, L3, DHCP, metadata agent들이 할당된 Job을 처리 

 

OVS 환경의 트래픽 흐름

- Compute 노드에서 출발한 VM의 요청이 Controller를 거쳐 최종 외부와 통신을 하게되는 복잡한 구조

https://naleejang.tistory.com/m/244

  1. VM에서 트래픽이 생기면 Linux Bridge인 qbr(quantum bridge)에서 트래픽을 처리하며 브릿지가 qvb, qvo, tap 인터페이스를 거쳐 테넌트 네트워크에서 트래픽이 나옴
    1. tap 인터페이스로 테넌트 네트워크의 어떤 VM에서 나왔는지 Tapping (인캡슐)
  2. br-int에서 tun 인터페이스를 타고 br-tun 브릿지로 이동 
    1. tun 인터페이스는 tunneling 인터페이스로 IP 패킷을 인캡슐 -> br-int의 어떤 patch인터페이스를 타고왔구나 정보를 추가
  3. br-tun에서 vlan 정보를 인캡슐하여 br-tenant 인터페이스로 전달하고 물리 NIC를 타고 컨트롤러로 전달
  4. vxlan을 통해 어떤 인터페이스로 전달할 지 찾아서 해당 br-tun으로 트래픽 전달
  5. patch가 들어온 트래픽에 대해 외부로 가려면 tunneling이 필요해 tun 인터페이스로 향하는 patch인터페이스로 전달
  6. br-ex에서 들어온 트래픽을 외부와 연결된 물리 NIC로 전달
  7. 물리 스위치를 타고, 라우터를 거쳐 외부로 통신

https://www.youtube.com/watch?v=SxKGWg-teFA

Naver D2 DVR 사례 (OVS 아키텍처의 단점에서 좀 더 안전한 아키텍처)

-> 하나의 컴퓨트 노드를 추가할 때마다 가상 브릿지, iptable, 가상 라우터 등 직접 만들어야하는것이 반복적으로 수행되어 불편

-> 라우터 증가는 속도 저하가 빠르게 증가

-> 이러한 단점을 보완한 새로운 아키텍처를 제시 -> Dataplane 구현 -> 고블린 프로젝트 (영상 참고)

  1. VM에서 트래픽이 생기면 Linux Bridge인 qbr(quantum bridge)에서 트래픽을 처리하며 브릿지가 보안 그룹으로 트래픽을 보냄
  2. 보안 그룹에서 트래픽이 무시되는게 아니라면 qvb 인터페이스에서 br-int의 qvo 인터페이스로 트래픽 전달
  3. qr 인터페이스를 타고 가상 내부 라우터 인터페이스로 트래픽을 보냄
    1. VM 테넌트의 VM과의 통신이라면 br-int qr 인터페이스로 보냄
    2. 외부 IP와 통신이라면 외부로 가기위해 붙여야하는 공인 IP를 얻으러 fpr로 보냄
  4. patch인터페이스가 물리 네트워크 인터페이스가 연결되어있는 br - tun 브리지로 통신을 보냄

용어

  • qbr (Quantum Bridge)
    • VM의 NIC와 호스트 NIC를 연결하는 Linux Bridge
  • qvb (Quantum Virtual Bridge)
    • VM의 네트워크 트래픽 처리를 위한 가상의 인터페이스
    • Veth Pair 방식으로 qvb - qbr -qvo로 연결되는 쌍
  • qvo (Quantum Virtual Open vSwitch)
    • qvb에서 OVS와 통신하는 인터페이스로 qvo로 들어온 트래픽은 물리NIC 혹은 다른 VM으로 트래픽을 전달
  • patch
    • OVS에서 사용되는 가상 네트워크 인터페이스로 OVS 브리지를 물리적인 연결 없이 가상으로 연결하는 역할
    • br - int.  <---> br - tun
  • qr (Quantum Router)
    • 가상 라우터의 내부 인터페이스
    • 가상 머신의 테넌트 사이 트래픽 처리 인터페이스
  • rfp (Router Forwarding Port)
    • 외부로 트래픽을 내보낼 때 사용하는 외부 인터페이스
    • 라우터 => 가상 포트 사용
  • fpr (Floating IP Router)
    • 외부 네트워크로 통신이 필요할 때 공인 IP 받아서 나갈 수 있도록해주는 인터페이스

References

 

Naver D2 Openstack Neutron Dataplane 구현 세미나

 

터널 매커니즘의 오버레이 프로토콜 개요

https://docs.openstack.org/neutron/latest/admin/intro-overlay-protocols.html

 

Overlay (tunnel) protocols — Neutron 25.1.0.dev35 documentation

Overlay (tunnel) protocols Tunneling is a mechanism that makes transfer of payloads feasible over an incompatible delivery network. It allows the network user to gain access to denied or insecure networks. Data encryption may be employed to transport the p

docs.openstack.org

 

OSV와 OVN

https://naleejang.tistory.com/m/244

 

OpenvSwitch 와 Open Virtual Network

오픈스택에서 가장 중요한 것은 아마도 네트워크일 것이다. 사실 레드햇 오픈스택의 기본 네트워크는 ML2기반의 OVS였다. 그런데, 지난 2월에 릴리즈된 레드햇 오픈스택 16.1 (커뮤니티 버전: Train)

naleejang.tistory.com

 

OSV와 OVN을 알기전에 인터페이스가 인캡슐레이션하여 가상화를하는 과정 강의

VLAN 동작원리

네트워크의 Tunnel

 

반응형