OpenStack TripleO 소개

OpenStack TripleO와 RHOSP Director 개념 가이드입니다. undercloud/overcloud, baremetal introspection, deploy command, 장애 지점과 신규 학습 도구 선택 기준을 정리했습니다.

TripleO는 “OpenStack On OpenStack”의 줄임말로, OpenStack의 구성요소를 이용해 또 다른 OpenStack 클라우드를 배포하고 운영하려는 프로젝트입니다. 전통적으로 undercloud와 overcloud 개념을 사용하며, Red Hat OpenStack Platform에서는 Director 기반 배포 흐름과 연결되어 많이 언급됩니다.

새 글에서는 TripleO를 단순 설치 링크로 소개하지 않습니다. 현재 신규 커뮤니티 OpenStack 학습용으로는 Kolla Ansible, DevStack, Packstack 같은 선택지도 같이 봐야 하고, TripleO는 이미 존재하는 RHOSP/Director 환경을 이해하거나 운영 이력을 읽는 목적으로 접근하는 것이 현실적입니다.

undercloud와 overcloud

  • undercloud: 배포와 관리를 담당하는 관리자용 OpenStack 환경입니다.
  • overcloud: 실제 tenant workload가 올라가는 운영 OpenStack 환경입니다.
  • baremetal node: Ironic을 통해 provisioning되는 control, compute, storage 후보 노드입니다.
  • Heat template: overcloud 구성과 role, parameter를 선언하는 템플릿입니다.

개념 흐름

  1. undercloud를 설치합니다.
  2. baremetal node 정보를 등록하고 introspection으로 하드웨어 정보를 수집합니다.
  3. role, network, environment file을 준비합니다.
  4. overcloud deploy 명령으로 control plane과 compute node를 배포합니다.
  5. 배포 후 Keystone, Nova, Neutron, Cinder, Ceph 연동 상태를 점검합니다.

기본 확인 명령

source ~/stackrc
openstack baremetal node list
openstack baremetal introspection list
openstack overcloud status
openstack stack list
openstack stack failures list overcloud

stackrc는 undercloud API에 접근하기 위한 환경 파일이고, overcloud tenant API 접근은 보통 별도 rc 파일을 사용합니다. 어떤 rc를 source 했는지 혼동하면 전혀 다른 API에 명령을 실행하게 됩니다.

배포 명령의 성격

openstack overcloud deploy \
  --templates \
  -r roles_data.yaml \
  -n network_data.yaml \
  -e environments/network-environment.yaml \
  -e environments/storage-environment.yaml

위 명령은 예시입니다. 실제 운영에서는 RHOSP 버전, network isolation, Ceph 구성, TLS, container image registry, custom role, NIC template에 따라 옵션이 크게 달라집니다. 기존 환경의 deploy command와 environment file을 먼저 백업하고 읽어야 합니다.

자주 보는 장애 지점

  • introspection 실패: IPMI/BMC 접속, PXE, provisioning network, node power state를 확인합니다.
  • overcloud deploy 실패: Heat stack failure, Ansible task log, container image pull, network template 오류를 확인합니다.
  • compute join 실패: hostname, DNS, time sync, libvirt, nova-compute, neutron agent 상태를 확인합니다.
  • network isolation 문제: ctlplane, internal_api, tenant, storage, external network VLAN과 NIC mapping을 확인합니다.

로그와 상태 확인

openstack stack failures list overcloud --long
openstack baremetal node show NODE_UUID
openstack server list
sudo journalctl -u openstack-* -n 200 --no-pager
podman ps --format "table {{.Names}}\t{{.Status}}"

RHOSP 버전에 따라 서비스 실행 방식이 baremetal systemd, containerized service, podman container 등으로 달라질 수 있습니다. 같은 TripleO라는 이름이어도 버전별 운영 방식이 다르므로 릴리스 문서를 기준으로 확인합니다.

새 학습 환경 선택 기준

  • OpenStack API와 컴포넌트 흐름을 배우려면 DevStack이 빠릅니다.
  • 단일 노드 proof-of-concept에는 Packstack이 단순합니다.
  • 컨테이너 기반 운영형 배포를 익히려면 Kolla Ansible을 검토합니다.
  • 기존 RHOSP Director 환경을 맡았다면 TripleO/Director undercloud-overcloud 개념을 먼저 이해합니다.

운영 기준

  • undercloud 백업 없이 major/minor update나 overcloud redeploy를 진행하지 않습니다.
  • environment file, roles_data, network_data, deploy command를 변경 이력으로 관리합니다.
  • 노드 등록 정보에는 BMC 주소와 credential이 포함될 수 있으므로 외부 공유 전 마스킹합니다.
  • 새 구축은 현재 지원되는 배포 도구와 릴리스 생명주기를 먼저 확인합니다.

공식 문서

BGM EVER