본문 바로가기
Infra/OpenStack

OpenStack 기본 개념

by Rowan Jang 2025. 6. 7.

OpenStack은 오픈소스 기반의 클라우드 인프라 플랫폼으로, 가상머신(VM), 컨테이너, 네트워크, 스토리지 등의 자원을 통합 관리할 수 있는 프레임워크입니다.

Nova (컴퓨팅 서비스)

역할 : 가상 머신(VM) 인스턴스를 생성하고 관리

구성요소

nova-api : API 요청을 처리

nova-scheduler : VM 배치를 결정

nova-conductor : 데이터베이스와 컴퓨트 노드 간의 통신 중계

nova-compute : VM 실행과 관리를 담당

Neutron (네트워킹 서비스)

역할 : 네트워크 관리(가상 네트워크, 서브넷, 라우터, 방화벽 등)

구성요소

neutron-server : 네트워크 요청을 처리

neutron-plugin : 실제 네트워크 장치를 관리

neutron-agents : 네트워크 노드에서 네트워크 설정 작업 수행

Cinder (블록 스토리지 서비스)

역할 : VM에서 블록 스토리지(예 : 볼륨)를 제공

구성요소

cinder-api : API 요청 처리.

cinder-scheduler : 볼륨 배치 결정.

cinder-volume : 실제 스토리지 관리를 담당.

Swift (오브젝트 스토리지 서비스)

역할 : 대규모 오브젝트 데이터 저장(비정형 데이터)

특징

데이터를 여러 노드에 복제하여 고가용성 제공

주로 백업, 로그, 미디어 파일 저장에 사용

Glance (이미지 서비스)

역할 : VM 이미지를 저장하고 관리

특징

QCOW2, RAW, VHD 등 다양한 포맷 지원

Nova와 통합되어 인스턴스 생성 시 이미지를 사용

Keystone (인증 서비스)

역할 : 인증, 권한 부여, 사용자 관리, 서비스 디스커버리

특징

토큰 기반 인증 제공

다중 테넌트(프로젝트) 환경 지원

Horizon (대시보드 서비스)

역할 : 웹 기반 관리 인터페이스

특징

OpenStack 자원의 생성, 관리, 삭제

사용자 친화적인 환경 제공

Heat (오케스트레이션 서비스)

역할 : 인프라를 코드로 관리(IaC, Infrastructure as Code)

특징

템플릿을 통해 VM, 네트워크, 스토리지 등의 자원 배포

Celiometer (모니터링 및 메트릭 서비스)

역할 : 자원 사용량 모니터링 및 청구 관리

특징

자원 소비량 수집

대시보드나 외부 시스템으로 데이터 전송

Barbican (시크릿 관리 서비스)

역할 : 암호화 키, 인증서, 비밀 데이터 관리

특징

보안 강화된 데이터 관리 제공

 

OpenStack 노드의 주요 구성

컨트롤러 노드 (Controller Node)

OpenStack 클러스터의 중심 역할을 담당.

인증, API 처리, 네트워크 설정, 스케줄링, 데이터베이스 등을 포함한 핵심 서비스를 실행.

고가용성을 위해 여러 개의 컨트롤러 노드를 구성할 수도 있음.

[ 주요 서비스 ]

Keystone: 인증 및 권한 관리

Glance: 이미지 서비스

Nova: 컴퓨트 스케줄러

Neutron: 네트워크 서비스

Cinder: 블록 스토리지 관리 (제어)

Horizon: 대시보드(UI)

MariaDB: 데이터베이스

RabbitMQ: 메시지 브로커

컴퓨트 노드 (Compute Node)

가상 머신(VM)을 실행하는 노드.

Nova Compute 서비스와 하이퍼바이저(KVM, QEMU 등)가 설치됨.

네트워크 트래픽을 처리하기 위해 Neutron의 에이전트도 실행.

[ 주요 서비스 ]

Nova Compute: VM 실행 및 관리

Neutron L2/L3 Agent: 네트워크 데이터 패킷 처리

하이퍼바이저: KVM/QEMU, VMware, Xen 등

네트워크 노드 (Network Node)

네트워크 연결을 처리하고, 가상 네트워크와 외부 네트워크를 연결.

가상 라우터, DHCP, 방화벽 등 네트워크 기능 제공.

[ 주요 서비스 ]

Neutron Server: 네트워크 설정 API

Neutron L3 Agent: 라우터 및 외부 네트워크 연결

Neutron DHCP Agent: 가상 네트워크에 IP 할당

Neutron Metadata Agent: 메타데이터 제공

Neutron OpenvSwitch/OVN: 네트워크 데이터 패킷 처리

스토리지 노드 (Storage Node)

데이터를 저장하고 관리하는 역할.

블록 스토리지(Cinder), 객체 스토리지(Swift), 파일 스토리지(Manila) 제공.

[ 주요 서비스 ]

Cinder Volume: 블록 스토리지 제공

Swift Object Store: 객체 스토리지 제공

Manila: 공유 파일 스토리지 제공

Triple O

TripleO는 "OpenStack-On-OpenStack"을 의미한다. O가 3개여서 TripleO입니다. RHOSP(Red Hat OpenStack Platform)에서 사용되는 배포 도구입니다. TripleO는 OpenStack 자체를 배포 도구로 활용하여 OpenStack 클라우드 배포를 단순화하고 자동화하도록 설계되었습니다. TripleO는 Heat, Ironic 및 Nova와 같은 다른 OpenStack 서비스와 통합되는 OpenStack 프로젝트입니다.

간단하게 말하면 오픈스택을 통해 오픈스택을 배포하는 것입니다.

TripleO 배포에는 언더클라우드와 오버클라우드라는 두 가지 주요 구성 요소가 있습니다.
언더클라우드는 오버클라우드의 배포 및 구성을 관리하는 데 사용되는 작은 OpenStack 클라우드입니다.
오버클라우드는 사용자에게 실제 클라우드 서비스를 제공하는 프로덕션 OpenStack 클라우드입니다.
위와 같은 얘기지만, TripleO는 언더클라우드를 배포 도구로 사용하여 오버클라우드 배포를 자동화합니다.

 

Cloud 배포 개념

언더클라우드(Undercloud)와 오버클라우드(Overcloud)는 OpenStack TripleO(Triple "O" stands for "OpenStack On OpenStack")를 통해 OpenStack 클라우드 인프라를 배포할 때 사용하는 개념입니다. 각각의 역할과 배포 과정은 다음과 같습니다.

UnderCloud(언더클라우드)

정의 : 언더클라우드는 OpenStack을 설치하고 관리하기 위한 컨트롤러 역할을 수행하는 관리 클라우드입니다.
용도 : 오버클라우드 배포를 위한 도구와 서비스를 제공하며, 하드웨어 리소스를 관리하고 프로비저닝합니다.
설치 위치 : 일반적으로 물리 서버 또는 가상 머신에 설치됩니다.

[ 구성요소 ]

Ironic : 베어메탈 프로비저닝
Heat : 템플릿 기반 오케스트레이션
Keystone : 인증 및 권한 부여
Glance : 이미지 관리
Mistral : 워크플로우 관리

[ 배포 과정 ]

  1. 준비작업
    서버(또는 VM)에 CentOS, RHEL, 또는 Ubuntu 설치
    네트워크 구성(프로비저닝 네트워크 설정)
    필요한 패키지 설치(OpenStack CLI, Python 환경 등)
  2. TripleO CLI 및 언더클라우드 설치
    TripleO Undercloud Installer를 실행하여 필요한 OpenStack 서비스를 설정
    언더클라우드 설정 파일(undercloud.conf)을 구성
  3. 검증 및 테스트
    언더클라우드 서비스가 정상적으로 작동하는지 확인

OverCloud(오버클라우드)

정의 : 오버클라우드는 실제로 사용자가 사용하는 OpenStack 클라우드입니다. 컴퓨팅, 네트워크, 스토리지 등의 서비스를 제공합니다.
용도 : 언더클라우드에서 정의된 템플릿 및 설정을 사용하여 배포됩니다.
구성 요소 : 컴퓨트 노드, 컨트롤러 노드, 네트워크 노드 등으로 구성됩니다.

[ 배포 과정 ]

  1. 오버클라우드 설정 준비
    언더클라우드에서 오버클라우드에 필요한 템플릿 파일(heat templates) 작성
    프로비저닝 할 하드웨어 정보 준비(각 노드의 MAC 주소, IP 등)
  2. 오버클라우드 배포 명령 실행
    언더클라우드의 openstack overcloud deploy 명령어를 사용하여 배포
    Heat 템플릿을 기반으로 오버클라우드의 노드가 프로비저닝되고 구성됩니다.
  3. 오버클라우드 검증
    배포된 오버클라우드 서비스가 제대로 작동하는지 테스트.
    클라이언트 인터페이스를 통해 컴퓨트, 네트워크, 스토리지 등의 기능 확인

 

추가로 알면 좋은 것(SAN / NAS)

SAN (Storage Area Network)

SAN은 고속 네트워크를 통해 서버와 스토리지를 연결하는 블록 스토리지 방식입니다. 일반적으로 대규모 환경에서 사용되며, 높은 성능과 확장성을 제공합니다.

[ 특징 ]
블록 단위 데이터 접근 : 서버는 SAN 스토리지를 로컬 디스크처럼 인식합니다. 이는 고성능 애플리케이션(예 : 데이터베이스, ERP 등)에 적합합니다.
고속 전용 네트워크 사용 : 주로 Fibre Channel(FC) 또는 iSCSI 프로토콜을 사용하여 빠른 속도를 지원합니다.
확장성 : 많은 서버와 스토리지를 추가로 연결할 수 있어 대규모 환경에서 유리합니다.
비용 : 초기 구축 비용이 높지만, 대규모 데이터센터에서는 비용 대비 효율적일 수 있습니다.
[ 장점 ]
낮은 지연 시간(Latency)과 높은 처리량(Throughput) 제공.
스토리지의 고가용성(HA) 및 클러스터링 기능 지원.
데이터 집중 관리로 보안 및 백업이 용이.
[ 단점 ]
고비용(전용 네트워크와 스토리지 하드웨어 필요).
설정 및 관리의 복잡성.

NAS (Network Attached Storage)

NAS는 네트워크를 통해 파일 기반 스토리지를 제공하는 파일 스토리지 방식입니다. 주로 파일 공유와 협업 환경에 적합합니다.

[ 특징 ]
파일 단위 데이터 접근: 서버는 NAS를 네트워크 드라이브나 공유 폴더로 인식하며, SMB, NFS, FTP와 같은 프로토콜을 사용합니다.
이더넷 네트워크 기반: 일반적으로 표준 TCP/IP 네트워크를 통해 연결되며, 설정이 간단합니다.
소규모 및 중간 규모 환경에 적합: 구축과 관리가 쉬워 중소기업이나 파일 공유 환경에서 널리 사용됩니다.
[ 장점 ]
설정 및 사용이 간편.
상대적으로 저렴한 비용.
파일 기반으로 협업 및 백업 환경에 최적화.
[ 단점 ]
블록 스토리지만큼 고성능을 제공하지 않음.
대규모 데이터 처리에는 적합하지 않을 수 있음.

'Infra > OpenStack' 카테고리의 다른 글

OpenStack DevStack 설치  (0) 2025.06.07
Kolla-Ansible을 이용한 OpenStack(BobCat) 설치  (3) 2025.06.07