클라우드 구성도
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
OpenStack 환경에 컴퓨팅 리소스를 제공한다. 더 많은 Compute 노드를 추가하여 시간 경과에 따라 환경을 확장할 수 있다.
구성요소
- OpenStack Compute(nova)
- KVM/QEMU
- OpenStack Telemetry(ceilometer) 에이전트
- Open vSwitch
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
- Pacemaker - pacemaker는 클러스터 리소스 관리자 이다. Pacemaker는 클러스터에 있는 모든 노드에서 OpenStack 구성요소의 가용성을 관리하고 모니터링한다.
- HAProxy - 클러스터에 부하 분산 및 프록시 서비스를 제공한다
- Galera - 클러스터에 patform 데이터베이스를 복제한다.
- Memcached - 데이터베이스 캐싱을 제공한다.
OpenStack을 사용하는 대규모 조직에서는 일반적으로 수많은 클라이언트를 지원한다. 각 openstack 클라이언트에는 블록 스토리지 리소스를 사용할 때 고유한 요구 사항이 있을 수 있다. glance(이미지), cinder(볼륨) 및 또는 nova(Compute)를 단일 노드에 배포하면 수많은 클라이언트가 있는 대규모 배포인 경우 관리가 불가능해질 수 있다. 이러한 문제는 OpenStack을 외부적으로 확장하여 해결할 수 있다.