본문 바로가기

카테고리 없음

오픈스택 개념 및 정리 - UNDERCLOUD와 OVERCLOUD

클라우드 구성도



UNDERCLOUD 와 OVERCLOUD

UNDERCLOUD


주요 direcktor 노드에 위치한다. OVERCLOUD는 OpenStack 환경을 구성한다.

director 노드는 OpenStack환경을 구성하는 노드를 프로비저닝해주며 이 노드를 관리하는 구성요소가 포함된 설치 노드이다.


UNDERCLOUD 구성요소의 기능


환경플래닝

UNDERCLOUD는 사용자가 특정 노드의 역할을 생성하고 할당할 수 있는 플래닝 기능을 제공한다.

UNDERCLOUD에는 Compute, Controller 및 여러 스토리지 역할과 같은 기본 노드 세트가 포함되어 있을 뿐만 아니라 사용자 정의 역할을 사용하는 기능도 제공한다. 

각 노드 역할에 포함할 OpenStackPlatform 서비스를 선택하여 새로운 노드 유형을 모델링하거나 해당 호스트의 특정 구성요소를 분리하는 방법 제공한다.


baremetal system control

UNDERCLOUD는 전원 관리 컨트롤 및 PXE 기반 서비스에서 하드웨어 속성을 검색하고 OpenStack을 각 노드에 설치한다.

각 노드의 대역과 관리 인터페이스(IPMI)를 사용한다.

BaremetalSsytem을 OpenStack 노드로 프로비저닝할 수 있다.


Ochestration

UNDERCLOUD는 환경에 플랜 역할을 하는 YAML 템플릿 세트를 제공한다.

UNDERCLOUD는 이러한 플랜을 가져와서 해당 지침에 따라 원하는 OpenStack환경을 생성한다.

환경생성프로세스 중 특정 시점으로 사용자 정의를 통합할 수 있는 후크도 포함되어 있다.


명령줄 툴 및 웹 UI


UNDERCLOUD 구성요소


keystone - director 구성요소에 인증 및 권한 부여

ironic, nova - baremetal노드를 관리

neutron - 베어메탈노드에 대한 네트워킹 제어

glance - baremetal 머신에 기록된 이미지를 저장

heat, puppet - director에서 OVERCLOUD 이미지를 디스크에 기록한 후 노드의 오케스트레이션 및 노드 설정을 제공 

ceilometer - 모니터링 및 데이터 수집

 └gnocchi - 메트릭에 시계열 데이터베이스 제공

 └aodh - 모니터링을 위한 알람 구성 요소 제공

 └panko - 모니터링을 위한 이벤트 스토리지 제공

mistral - 플랜 가져오기 및 배포하기와 같은 특정 director 관련 작업에 대한 워크플로우 제공

zaqar - openstack workflow service에 메시징 서비스를 제공

swift - openstack platform 구성요소에 오브젝트 스토리지 제공

└openstack image service용 이미지 스토리지

└openstack baremetal에 대한 내부 검사 데이터

└openstack workflow service에 대한 배포 플랜


OVERCLOUDE


언더클라우드를 사용하여 생성된 환경으로  Openstack Platform 환경을 기반으로 다양한 노드 역할이 포함된다.


Controller

openstack 환경에 관리, 네트워킹 및 고가용성 기능을 제공하는 노드이다. 이상적인 openstack환경은 고가용성 클러스터에 이러한 세 가지 노드를 함께 사용하는 것이다. 기본 Controller 노드에는 다음 구성요소가 포함된다.

  • horizon
  • keystone
  • nova
  • neutron
  • glance
  • cinder
  • swift
  • heat
  • ceilometer
  • gnocchi
  • aodh
  • panko
  • sahara
  • manila
  • ironic
  • MariaDB
  • Open vSwitch
  • Pacemaker, Galera

Compute

OpenStack 환경에 컴퓨팅 리소스를 제공한다. 더 많은 Compute 노드를 추가하여 시간 경과에 따라 환경을 확장할 수 있다. 


구성요소

  • OpenStack Compute(nova)
  • KVM/QEMU
  • OpenStack Telemetry(ceilometer) 에이전트
  • Open vSwitch

Storage

OpenStack 환경에 스토리지를 제공하는 노드


구성요소

  • Ceph Storage 노드 - 스토리지 클러스터를 만드는 데 사용된다. 각 노드에는 Ceph OSD가 포함된다. director는 Ceph Storage 노드를 배포하는 Controller 노드에 Ceph Monitor를 설치한다.
  • Block Storage(cinder) - HA Controller 노드에 대한 외부 블록 스토리지로 사용된다. 
    └cinder 볼륨
    └ceilometer 에이전트
    └Open vSwitch
  • swift - 이 노드는 Openstack Swift에 외부 스토리지 계층을 제공한다. Controller 노드는 Swift 프록시를 통해 이러한 노드에 액세스한다.
    └swift 스토리지
    └ceilometer 에이전트
    └Open vSwitch
고가용성

director는 Controller 노드 클러스터를 사용하여 OpenStack Platform 환경에 고가용성 서비스를 제공한다. director에서는 각 Controller 노드에 중복 구성요소 세트를 설치하여 하나의 단일 서비스로 관리한다. 이 유형의 클러스터 구성은 단일 Controller 노드에 작동 오류가 발생하는 경우 폴백 기능을 제공하므로 OpenStack 사용자에게 어느정도의 중단없는 서비스가 제공된다.
  • Pacemaker - pacemaker는 클러스터 리소스 관리자 이다. Pacemaker는 클러스터에 있는 모든 노드에서 OpenStack 구성요소의 가용성을 관리하고 모니터링한다.
  • HAProxy - 클러스터에 부하 분산 및 프록시 서비스를 제공한다
  • Galera - 클러스터에 patform 데이터베이스를 복제한다.
  • Memcached - 데이터베이스 캐싱을 제공한다.

Ceph Storage

OpenStack을 사용하는 대규모 조직에서는 일반적으로 수많은 클라이언트를 지원한다. 각 openstack 클라이언트에는 블록 스토리지 리소스를 사용할 때 고유한 요구 사항이 있을 수 있다. glance(이미지), cinder(볼륨) 및 또는 nova(Compute)를 단일 노드에 배포하면 수많은 클라이언트가 있는 대규모 배포인 경우 관리가 불가능해질 수 있다. 이러한 문제는 OpenStack을 외부적으로 확장하여 해결할 수 있다.