OpenStack 소개
OpenStack 구성요소 소개입니다. Keystone, Nova, Neutron, Glance, Cinder, Horizon 역할, VM 생성 흐름, 기본 openstack CLI 확인과 학습용 설치 방식 차이를 정리했습니다.
OpenStack은 데이터센터의 compute, network, storage 자원을 API로 관리하는 오픈소스 cloud operating system입니다. 하나의 프로그램이 아니라 여러 서비스가 message queue, database, identity, API를 통해 연동되는 구조입니다.
주요 컴포넌트
Keystone은 identity와 token, project, role을 담당합니다. 대부분의 OpenStack API 호출은 Keystone token을 통해 인증됩니다.
Nova는 compute service입니다. 인스턴스 생성 요청을 받아 scheduler, conductor, compute node와 연동해 VM lifecycle을 관리합니다.
Neutron은 networking service입니다. tenant network, subnet, router, floating IP, security group, DHCP, L3 agent 또는 OVN 같은 backend와 연동됩니다.
Glance는 image service입니다. VM을 부팅할 base image를 저장하고 Nova가 이를 사용합니다.
Cinder는 block storage service입니다. VM에 attach할 volume을 만들고 backend storage와 연결합니다.
Horizon은 web dashboard입니다. 운영자는 CLI/API를 더 많이 쓰지만, 학습과 기본 확인에는 Horizon이 유용합니다.
VM 생성 흐름
- 사용자가 Keystone token을 받습니다.
- Nova에 instance 생성을 요청합니다.
- Nova scheduler가 compute node를 고릅니다.
- Glance image와 Cinder volume이 준비됩니다.
- Neutron이 port, security group, IP를 준비합니다.
- compute node의 hypervisor가 VM을 생성합니다.
기본 CLI 확인
source ~/keystonerc_admin
openstack token issue
openstack service list
openstack endpoint list
openstack compute service list
openstack network agent list
openstack volume service list
openstack image list
학습용 설치 방식
OpenStack을 처음 공부한다면 DevStack은 개발/학습용, Packstack은 RDO proof-of-concept용으로 볼 수 있습니다. 운영 수준의 HA 구성을 만들려면 Kolla Ansible, OpenStack-Ansible, TripleO 계열, vendor 배포판, Kubernetes 기반 배포 등 별도 설계가 필요합니다.
운영에서 중요한 포인트
- message queue, database, Keystone, Neutron이 흔한 장애 축입니다.
- 네트워크는 provider network, tenant network, floating IP, security group을 분리해 이해해야 합니다.
- Cinder backend와 Nova compute의 storage path가 VM 안정성에 직접 영향을 줍니다.
- 로그는 서비스별로 나뉘므로 request id를 기준으로 추적하는 습관이 필요합니다.