Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

1장. 소개

Red Hat OpenStack Platform director는 전체 OpenStack 환경을 설치하고 관리하는 툴셋으로, 주로 OpenStack 프로젝트 TripleO ("OpenStack-On-OpenStack"의 약어)를 기반으로 합니다. 이 프로젝트는 OpenStack 구성 요소를 이용하여 완전하게 기능하는 OpenStack 환경을 설치합니다. 여기에는 OpenStack 노드로 사용할 베어 메탈 시스템을 프로비저닝하고 제어하는 새로운 OpenStack 구성 요소가 포함되며, 이를 통해 간단하면서도 강력한 전체 Red Hat OpenStack Platform 환경을 간편하게 설치할 수 있습니다.

Red Hat OpenStack Platform director는 언더클라우드(undercloud)와 오버클라우드(overcloud)의 두 가지 주요 개념을 사용합니다. 언더클라우드에서 오버클라우드를 설치 및 구성합니다. 다음 부분에서는 각각의 개념에 대해 간략하게 설명합니다.

언더클라우드와 오버클라우드의 기본 레이아웃

1.1. 언더클라우드

언더클라우드는 주요 director 노드로 OpenStack 환경(오버클라우드)을 구성하는 OpenStack 노드를 프로비저닝하고 관리하는 구성 요소가 포함된 단일 시스템 OpenStack 설치 노드입니다. 언더클라우드의 구성 요소는 다음과 같은 여러 기능을 제공합니다.

환경 플래닝
언더클라우드는 사용자가 특정 노드 역할을 생성하고 할당할 수 있는 플래닝 기능을 제공합니다. 언더클라우드에는 Compute, Controller 및 여러 스토리지 역할과 같은 기본 노드 세트가 포함되어 있을 뿐만 아니라 사용자 정의 역할을 사용하는 기능도 제공합니다. 또한 각 노드 역할에 포함할 OpenStack Platform 서비스를 선택하여 새로운 노드 유형을 모델링하거나 해당 호스트의 특정 구성 요소를 분리하는 방법을 제공합니다.
베어 메탈 시스템 컨트롤
언더클라우드는 전원 관리 컨트롤 및 PXE 기반 서비스에서 하드웨어 속성을 검색하고 OpenStack을 각 노드에 설치하는 데 각 노드의 대역 외 관리 인터페이스(일반적으로 IPMI: Intelligent Platform Management Interface)를 사용합니다. 따라서 베어 메탈 시스템을 OpenStack 노드로 프로비저닝할 수 있습니다. 전원 관리 드라이버에 대한 전체 목록은 부록 B. 전원 관리 드라이버를 참조하십시오.
오케스트레이션
언더클라우드는 환경에 플랜 역할을 하는 YAML 템플릿 세트를 제공합니다. 언더클라우드는 이러한 플랜을 가져와서 해당 지침에 따라 원하는 OpenStack 환경을 생성합니다. 플랜에는 환경 생성 프로세스 중 특정 시점으로 사용자 정의를 통합할 수 있는 후크도 포함되어 있습니다.
명령줄 툴 및 웹 UI
Red Hat OpenStack Platform director는 터미널 기반 명령줄 인터페이스 또는 웹 기반 사용자 인터페이스를 통해 이러한 언더클라우드 기능을 수행합니다.
언더클라우드 구성 요소

언더클라우드는 OpenStack 구성 요소를 해당 기본 툴셋으로 사용합니다. 여기에는 다음과 같은 구성 요소가 포함되어 있습니다.

  • OpenStack Identity(keystone) - director의 구성 요소에 인증 및 권한 부여를 제공합니다.
  • OpenStack Bare Metal(ironic) 및 OpenStack Compute(nova) - 베어 메탈 노드를 관리합니다.
  • OpenStack Networking(neutron) 및 Open vSwitch - 베어 메탈 노드에 대한 네트워킹을 제어합니다.
  • OpenStack Image Service(glance) - 베어 메탈 머신에 기록된 이미지를 저장합니다.
  • OpenStack Orchestration(heat) 및 Puppet - director에서 오버클라우드 이미지를 디스크에 기록한 후 노드의 오케스트레이션 및 노드 설정을 제공합니다.
  • OpenStack Telemetry(ceilometer) - 모니터링 및 데이터 수집을 수행합니다. 여기에는 다음이 포함됩니다.

    • OpenStack Telemetry Metrics(Gnocchi) - 메트릭에 시계열 데이터베이스를 제공
    • OpenStack Telemetry Alarming(aodh) - 모니터링을 위한 알람 구성 요소를 제공
    • OpenStack Telemetry Event Storage(panko) - 모니터링을 위한 이벤트 스토리지를 제공
  • OpenStack Workflow Service(mistral) - 플랜 가져오기 및 배포하기와 같은 특정 director 관련 작업에 대한 워크플로우를 제공합니다.
  • OpenStack Messaging Service(zaqar) - OpenStack Workflow Service에 메시징 서비스를 제공합니다.
  • OpenStack Object Storage(swift) - 다음을 포함한 여러 OpenStack Platform 구성 요소에 오브젝트 스토리지를 제공합니다.

    • OpenStack Image Service용 이미지 스토리지
    • OpenStack Bare Metal에 대한 내부 검사 데이터
    • OpenStack Workflow Service에 대한 배포 플랜

1.2. 오버클라우드

오버클라우드는 언더클라우드를 사용하여 생성된 Red Hat OpenStack Platform 환경으로 OpenStack Platform 환경을 기반으로 다양한 노드 역할이 포함됩니다. 언더클라우드에는 다음과 같은 기본 오버클라우드 노드 역할이 포함됩니다.

Controller

OpenStack 환경에 관리, 네트워킹 및 고가용성 기능을 제공하는 노드입니다. 이상적인 OpenStack 환경은 고가용성 클러스터에 이러한 세 가지 노드를 함께 사용하는 것입니다.

기본 Controller 노드에는 다음 구성 요소가 포함됩니다.

  • OpenStack Dashboard(horizon)
  • OpenStack Identity(keystone)
  • OpenStack Compute(nova) API
  • OpenStack Networking(neutron)
  • OpenStack Image Service(glance)
  • OpenStack Block Storage(cinder)
  • OpenStack Object Storage(swift)
  • OpenStack Orchestration(heat)
  • OpenStack Telemetry(ceilometer)
  • OpenStack Telemetry Metrics(gnocchi)
  • OpenStack Telemetry Alarming(aodh)
  • OpenStack Clustering(sahara)
  • OpenStack Shared File Systems(manila)
  • OpenStack Bare Metal(ironic)
  • MariaDB
  • Open vSwitch
  • 고가용성 서비스를 위한 Pacemaker 및 Galera
Compute

이러한 노드는 OpenStack 환경에 컴퓨팅 리소스를 제공합니다. 더 많은 Compute 노드를 추가하여 시간 경과에 따라 환경을 확장할 수 있습니다. 기본 Compute 노드에는 다음 구성 요소가 포함됩니다.

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

OpenStack 환경에 스토리지를 제공하는 노드로 다음과 같은 노드가 포함됩니다.

  • Ceph Storage 노드 - 스토리지 클러스터를 만드는 데 사용됩니다. 각 노드에는 Ceph OSD(Object Storage Daemon)가 포함됩니다. 또한, director는 Ceph Storage 노드를 배포하는 Controller 노드에 Ceph Monitor를 설치합니다.
  • Block Storage(cinder) - HA Controller 노드에 대한 외부 블록 스토리지로 사용됩니다. 이 노드에는 다음 구성 요소가 포함됩니다.

    • OpenStack Block Storage(cinder) 볼륨
    • OpenStack Telemetry(ceilometer) 에이전트
    • Open vSwitch
  • Object Storage(swift) - 이러한 노드는 Openstack Swift에 외부 스토리지 계층을 제공합니다. Controller 노드는 Swift 프록시를 통해 이러한 노드에 액세스합니다. 이 노드에는 다음 구성 요소가 포함되어 있습니다.

    • OpenStack Object Storage(swift) 스토리지
    • OpenStack Telemetry(ceilometer) 에이전트
    • Open vSwitch

1.3. 고가용성

Red Hat OpenStack Platform director는 Controller 노드 클러스터를 사용하여 OpenStack Platform 환경에 고가용성 서비스를 제공합니다. director에서는 각 Controller 노드에 중복 구성 요소 세트를 설치하여 하나의 단일 서비스로 관리합니다. 이 유형의 클러스터 구성은 단일 Controller 노드에 작동 오류가 발생하는 경우 폴백 기능을 제공하므로 OpenStack 사용자에게 어느 정도의 중단없는 서비스가 제공됩니다.

OpenStack Platform director는 일부 주요 소프트웨어를 사용하여 Controller 노드에서 구성 요소를 관리합니다.

  • Pacemaker - Pacemaker는 클러스터 리소스 관리자입니다. Pacemaker는 클러스터에 있는 모든 노드에서 OpenStack 구성 요소의 가용성을 관리하고 모니터링합니다.
  • HAProxy - 클러스터에 부하 분산 및 프록시 서비스를 제공합니다.
  • Galera - 클러스터에 Red Hat OpenStack Platform 데이터베이스를 복제합니다.
  • Memcached - 데이터베이스 캐싱을 제공합니다.
참고

Red Hat OpenStack Platform director는 Controller 노드에서 대부분의 고가용성 설정을 자동으로 구성합니다. 하지만 전원 관리 컨트롤을 사용하도록 설정하려면 노드에 몇 가지 수동 구성이 필요합니다. 본 가이드에서는 이러한 절차를 설명하고 있습니다.

1.4. Ceph Storage

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

하지만 실질적으로는 Red Hat OpenStack Platform 스토리지 계층을 수십 테라바이트에서 펩타바이트(또는 엑사바이트) 스토리지로 확장할 수 있도록 Red Hat Ceph Storage와 같은 솔루션을 사용하여 스토리지 계층을 가상화해야 하는 요구 사항도 존재합니다. Red Hat Ceph Storage는 상용 하드웨어에서 실행되는 동안 이 스토리지 가상화 계층에 고가용성 및 고성능 기능을 제공합니다. 가상화에는 성능 저하가 나타나는 것처럼 보일 수 있지만, Ceph 스트라이프는 클러스트에서 오브젝트로서의 장치 이미지를 차단합니다. 이는 큰 Ceph 블록 장치 이미지가 독립 실행형 디스크보다 성능이 뛰어나다는 것을 의미합니다. 또한 Ceph 블록 장치는 성능 향상을 위해 캐싱, copy-on-write 복제 및 copy-on-read 복제를 지원합니다.

Red Hat Ceph Storage에 대한 자세한 내용은 Red Hat Ceph Storage를 참조하십시오.