OpenStack Components

오픈스택의 구성요소들을 Dalmatian 릴리즈를 기준으로 하나씩 카테고리 별로 정리해 보았습니다.

 

OpenStack Services

Compute

Nova

오픈스택 Compute 서비스 Nova는 오픈스택의 핵심 서비스로, 클라우드 컴퓨팅 환경에서 가상머신의 프로비저닝과 관리를 담당하고 있습니다. 대규모 클라우드 환경에서 수천 개의 가상 서버 인스턴스를 효율적으로 관리할 수 있도록 설계되었으며, KVM, VMware, Xen, Hyper-V, LXC와 같은 다양한 하이퍼바이저를 지원하고 같이 사용할 수 있습니다.

Nova의 가장 중요한 역할의 가상머신의 전체 라이프사이클 관리와 리소스 스케줄링입니다. 가용한 컴퓨트 노드에서 최적화된 방식으로 가상머신을 배치하며, 호스트 서버의 CPU와 메모리 사용량을 고려한 지능적인 스케줄링을 수행하고, 수평적 확장을 통해 대규모 클러스터를 지원합니다.

Nova는 RESTFul API, 웹 기반 대시보드, CLI 도구 등 다양한 인터페이스를 제공하여 사용자의 편의성을 높이고, 다른 오픈스택 서비스들과의 연동을 통해 서비스를 제공하고 있습니다.

 

Zun

Zun은 오픈스택의 컨테이너 관리 서비스로, 컨테이너를 오픈스택이 관리하는 리소스로 취급하고자 하는 사용자들을 위한 서비스입니다. Nova가 가상머신을 관리하는 것처럼, Zun은 컨테이너를 관리하는 역할을 담당합니다. 컨테이너의 생성, 실행, 중지, 재시작, 삭제 등의 기본적인 작업과 함께 컨테이너 이미지 관리, 네트워크 연결, 스토리지 연결 등의 작업도 처리할 수 있습니다. 도커(Docker)를 기본 컨테이너 런타임으로 사용하며, containerd와 같은 다른 컨테이너 런타임도 지원합니다.

Zun도 다른 오픈스택 서비스들과 통합되어 사용됩니다. Neutron을 통해 네트워크를 구성하고, Cinder를 통해 영구적인 스토리지를 제공받으며, Keystone을 통해 사용자 인증을 처리합니다.

 


Hardware Lifecycle

Ironic

오픈스택 베어 메탈 서비스 Ironic은 가상머신 대신에 베어메탈 서버를 관리하고 프로비저닝 하기 위한 서비스입니다. 물리적인 서버를 직접 프로비저닝 하고 관리할 수 있으며, 하이퍼바이저 없이 베어 메탈 하드웨어에 직접 운영체제를 설치할 수 있습니다. 이를 위해 Ironic은 PXE 부팅을 통한 자동화된 OS 설치와 IPMI 또는 다른 하드웨어 관리 프로토콜을 이용하여 원격 서버를 관리하고 있습니다.

 

Cyborg

Openstack Cyborg는 GPU, FPGA, ASIC-based devices 등과 같은 가속기 리소스를 관리하고 제공하기 위한 프레임워크입니다. Nova와 통합되어 가속기 리소스를 VM이나 베어메탈 서버에 연결할 수 있으며, Placement API와의 통합을 통해 리소스 인벤토리와 사용량을 추적합니다.

 


Storage

Swift

OpenStack Swift는 확장 가능한 분산 오브젝트 스토리지 시스템입니다. AWS의 S3와 유사한 기능을 제공하며, 대용량 비정형 데이터의 안전한 저장과 검색을 지원합니다. 주요 기능으로는 데이터 복제를 통한 고가용성 보장, 대규모 확장성, 데이터 무결성 검증, 버전 관리, 객체 만료 정책 설정 등이 있습니다. 일반적으로 클라우드 백업, 아카이빙, 웹 콘텐츠 호스팅, 빅데이터 저장소 등의 용도로 활용됩니다.

 

Cinder

오픈스택 블록 스토리지 Cinder는 지속적으로 사용이 가능한 블록 스토리지를 관리하고 제공합니다. 볼륨의 생성, 삭제, 스냅샷, 복제, 백업과 같은 기존적인 스토리지 작업을 제공하며, Nova와의 통합을 통해 VM에 볼륨을 쉽게 연결하고 분리할 수 있습니다. 또한, 다양한 스토리지 백엔드를 지원하여 리눅스 서버가 제공하는 로컬 스토리지 이외에 Ceph, GlusterFS, EMC 등 여러 스토리지 솔루션과 통합이 가능합니다.

블록 스토리지는 스토리지의 성능이 매우 민감한 상황에서 사용하는 것이 좋은데 데이터베이스 스토리지, 확장 가능한 파일 시스템 또는 SAN에서 사용되는 블록 레이벨 스토리지에 대한 접속을 제공하는 서버 같은 경우에 사용되게 됩니다.

 

Manila

오픈스택 공유 파일 시스템인 Manila는 NFS, CIFS와 같은 분산 파일 시스템 프로토콜을 지원하여 여러 VM이나 컨테이너가 동시에 접근할 수 있는 공유 스토리지를 제공합니다.

다양한 스토리지 백엔드를 지원하며, Ceph, EMS와 같은솔루션과도 통합될 수 있습니다. 공유 파일 시스템의 생성, 삭제, 크기 조정, 스냅샷, 접근 제어와 같은 기본적인 관리 기능을 제공하며, 각 공유에 대한 세부적인 접근 규칙을 설정할 수 있습니다.

 


Networking

Neutron

오픈스택 네트워크 시스템인 Neutron은 클라우드 환경에서 네트워크 연결과 주소를 관리하는 네트워크 서비스입니다. Software-Defined Networking (SDN)을 기반으로 하여 가상 네트워크 인프라를 생성하고 관리합니다.

Neutron은 다음과 같은 네트워크 서비스를 제공하게 됩니다. 먼저, 가상 네트워크를 생성하여 VM들을 논리적으로 분리할 수 있습니다. 가상 라우터를 통해 서로 다른 네트워크 간의 통신을 가능하게 하며, 보안 그룹을 사용하여 방화벽 규칙을 설정할 수 있습니다. 또한, 로드 밸런서를 통해 트래픽을 여러 VM에 분산시키고, Floating IP를 사용하여 외부에서 VM에 접근할 수 있게 합니다.

플러그인 아키텍처를 채택하고 있어 필요한 프레임워크를 추가로 설치할 수 있고, Open vSwitch, Linux Bridge와 같은 다양한 네트워크 기술을 지원하며, Cisco, Juniper 등 밴더의 네트워크 솔루션과도 통합이 가능합니다. VLAN, VXLAN, GRE와 같은 네트워크 격리 기술을 지원하여 멀티테넌트 환경에서 네트워크 분리가 가능하며, DHCP, DNS와 같은 기본적인 네트워크 서비스도 제공합니다.

 

Octavia

OpenStack Octavia는 로드 밸런싱 서비스를 제공하는 프로젝트입니다. 기존 Neutron LBaaS(Load Balancer as a Service)를 대체하여 더 안정적이고 확장 가능한 로드 밸런싱 기능을 제공합니다.
Octavia는 가상 머신 기반의 로드 밸런서 인스턴스인 amphora를 사용합니다. 각 amphora는 HAProxy를 기반으로 하며, 고가용성을 위해 active-standby 구성으로 배포될 수 있습니다. 로드 밸런서의 생성, 수정, 삭제와 같은 기본적인 관리 기능을 제공하며, 헬스 체크를 통해 서비스의 상태를 모니터링합니다.
주요 기능으로는 Layer 4(TCP) 및 Layer 7(HTTP) 로드 밸런싱, SSL/TLS 종료, 세션 지속성, 그리고 다양한 로드 밸런싱 알고리즘(Round Robin, Least Connections, Source IP 등)을 지원합니다.

 

Designate

Designate는 DNS를 관리하기 위한 멀티 테넌트 REST API 서비스입니다. 클라우드 환경에서 DNS 관리를 자동화하고 통합된 DNS 서비스를 제공합니다. PowerDNS, BIND와 같은 여러 다양한 백엔드 기술과도 호환됩니다.

 


Shared Services

Keystone

Keystone은 오픈스택의 Identity 서비스로, 인증과 권한 부여를 담당하는 중앙 집중식 서비스입니다. 모든 오픈 스택 서비스들은 Keystone을 통해 사용자를 인증하고, 해당 사용자가 특정 작업을 수행할 권한이 있는지 확인합니다. 사용자가 인증을 성공적으로 마치면 Keystone은 토큰을 발급하고, 이 토큰은 다른 OpenStack 서비스들과의 상호작용에 사용됩니다.

Keystone 서비스는 사용자 관리, 프로젝트 관리, 역할 기반 접근 제어를 제공하고 LDAP, Active Directory와 같은 외부 인증 시스템과의 통합이 가능합니다.

 

Placement

OpenStack Placement는 리소스 인벤토리와 사용량을 추적하고 관리하는 서비스입니다. Nova에서 분리되어 독립적인 서비스로 발전했으며, 클라우드의 다양한 리소스(CPU, RAM, 스토리지, 특별 하드웨어 등)를 효율적으로 추적하고 할당하는 역할을 담당합니다.

 

Glance

오픈스택 Glance는 오픈스택 클라우드 환경에서 가상 머신 이미지를 관리하는 서비스입니다. 이 서비스를 통해 사용자가 가상 머신을 생성하는데 필요한 운영체제 이미지들을 등록하고 관리할 수 있습니다.

 

Barbican

오픈스택 Barbican은 오픈 스택의 키 관리 서비스(Key Management Service)입니다. 여러 중요한 내용을 안전하게 보관, 제공 관리하는 역할을 합니다.

주요 기능으로는 암호화 키 생성, 저장, 폐기 관리, 키 교체 지원, SSL/TLS 인증서 관리, 하드웨어 보안 모듈 통합이 있습니다.

 


Orchestration

Heat

오픈스택 Heat는 오픈스택의 오케스트레이션 서비스입니다. 클라우드 애플리케이션을 구축하고 관리하는데 필요한 여러 자원들을 템플릿을 통해 자동으로 생성하고 관리하고 있습니다.

 

Mistral

오픈스택 Mistral은 복잡한 작업들을 순차적으로 또는 병렬로 실행할 수 있게 해주는 워크플로우 서비스입니다. YAML 형식으로 위크플로우를 정의하고, 각 작업의 실행 순서, 조건, 에러 처리등을 지정할 수 있습니다. 예를 들어 새로운 가상 머신 생성, 소프트웨어 설치, 네트워크 구성과 같은 일련의 작업들을 하나의 워크플로우로 자동화할 수 있습니다.

 

Zaqar

 

Blazar

오픈스택 Blazar는 사용자가 미래의 특정 시점에 필요한 클라우드 리소스를 미리 예약할 수 있게 해주는 리소스 예약 서비스입니다. 주로 물리적 호스트, 인스턴스, 스토리지, 네트워크와 같은 리소스의 예약을 관리합니다.

 

Aodh

오픈스택 AoDH는 클라우드 환경의 다양한 메트릭을 모니터링하고, 설정된 조건에 따라 알람을 발생시키는 오픈스택의 알람 서비스입니다. 다양한 텔레메트리 서비스로부터 수집된 데이터를 기반으로 작동하고, 리소스 메트릭이나 사용자 정의 메트릭을 모니터링하여 입계값을 초과할 경우 알람을 트리거합니다.

 


Workload Provisioning

Magnum

오픈스택 Magnum은 오픈스택의 컨테이너 오케스트레이션 엔진 서비스입니다. 컨테이너화된 애플리케이션을 위한 쿠버네티스, Docker Swarm, Apache Mesos와 같은 컨테이너 오케스트레이션 플랫폼을 쉽게 배포하고 관리할 수 있게 해줍니다.

 

Trove

오픈스택 Trove는 클라우드 환경에서 관계형 및 비관계형 데이터베이스를 자동으로 프로비저닝하고 관리할 수 있게 해주는 Database-as-a-Service(DBaaS) 플랫폼 서비스입니다. 다양한 데이터베이스 엔진을 지원하며, 데이터베이스 인스턴스의 생성, 구성, 백업, 복구, 확장과 같은 관리 작업을 자동화합니다. 또한 백업 스케줄링, 복제 설정, 모니터링 기능을 제공하여 데이터베이스의 가용성과 안전성을 보장합니다.

 


Application Lifecycle

Masakari

오픈스택 Masakari는 클라우드 환경에서 발생할 수 있는 다양한 장애 상황을 감지하고 자동으로 복구하는 역할을 수행하는 오픈스택의 고가용성(High Availability) 서비스입니다. 이 서비스는 호스트 서버의 장애, 가상 머신의 프로세스 장애, 그리고 하이퍼바이저의 내부 장애와 같은 문제들을 모니터링하고, 장애 발생 시 자동으로 복구 작업을 수행합니다.

 


Web Frontends

Horizon

오픈스택 Horizon은 클라우드 자원을 웹 인터페이스를 통해 관리할 수 있게 해주는 오픈스택의 GUI 대시보드 서비스입니다.

 

Skyline

오픈스택 Skyline은 오픈스택 환경에서 사용자 인터페이스를 제공하는 차세대 웹 인터페이스입니다.

 

 

Operations Tool

Monitoring Services

Ceilometer

오픈스택 Ceilometer는 오픈스택의 텔레메트리 서비스로, 클라우드 환경의 다양한 메트릭을 수집, 정규화, 변환하는 역할을 담당합니다. CPU 사용량, 메모리 사용량, 네트워크 대역폭, 스토리지 사용량 등의 리소스 사용 데이터를 수집하며, 이 데이터는 과금, 벤치마킹, 통계, 리소스 최적화 등 다양한 목적으로 활용될 수 있습니다.

Ceilometer는 푸시와 풀 방식 모두를 지원하여 유연한 데이터 수집이 가능하며, 수집된 데이터는 다양한 백엔드 스토리지에 저장될 수 있습니다. 또한 알람 서비스인 Aodh와 연계하여 특정 조건에서 알람을 발생시킬 수 있습니다.

 


Resource Optimization

Watcher

오픈스택 Watcher는 클라우드 환경의 리소스 최적화를 위한 서비스입니다. 머신러닝과 데이터 분석을 활용하여 클라우드 리소스의 효율성을 향상시키고 운영 비용을 절감하는 것을 목표로 합니다. Watcher는 메트릭 데이터를 분석하여 리소스 사용의 비효율성을 식별하고, 최적화 전략을 제안하거나 자동으로 실행할 수 있습니다.

주요 기능으로는 워크로드 통합을 통한 서버 통합, 전력 소비 최적화, 유지보수를 위한 워크로드 마이그레이션, 서비스 품질(QoS) 최적화 등이 있습니다. 각 최적화 목표에 따라 다양한 최적화 알고리즘을 선택하여 적용할 수 있습니다.

 

Vitrage

오픈스택 Vitrage는 RCA(Root Cause Analysis, 근본 원인 분석) 서비스입니다. 클라우드 환경의 다양한 구성 요소들 간의 관계를 분석하여 토폴로지를 구성하고, 문제가 발생했을 때 그 근본 원인을 파악하는데 도움을 줍니다.

 


Billing/Buisness Logic

Adjutant

오픈스택 Adjutant는 클라우드 서비스의 관리 작업을 자동화하기 위한 워크플로우 서비스입니다. 사용자 등록, 리소스 할당 요청, 권한 변경과 같은 관리적 작업들을 자동화된 워크플로우로 처리할 수 있습니다. 특히 멀티테넌트 환경에서 테넌트 관리와 관련된 다양한 요청을 처리하는데 유용합니다.

 

Cloudkitty

오픈스택 Cloudkitty는 클라우드 리소스 사용량에 대한 과금 서비스입니다. 다양한 오픈스택 서비스의 사용량 데이터를 수

집하고, 이를 기반으로 과금 정책을 적용하여 비용을 계산합니다.

 


Testing/Benchmark

Rally

오픈스택 Rally는 오픈스택 클라우드의 성능을 테스트하고 벤치마크하기 위한 도구입니다. 다양한 시나리오에서 클라우드의 성능, 안정성, 확장성을 검증할 수 있습니다.

Tempest

오픈스택 Tempest는 오픈스택의 통합 테스트 도구입니다. API 테스트, 시나리오 테스트, 단위 테스트 등 다양한 수준의 테스트를 수행할 수 있으며, 오픈스택 환경이 예상대로 동작하는지 검증합니다.

 

참고

https://www.openstack.org/software/project-navigator/openstack-components#openstack-services

 

Open Source Cloud Computing Platform Software - OpenStack

OpenStack is a an open source cloud operating system managing compute, storage, and networking resources throughout a datacenter using APIs

www.openstack.org