- 유튜브 영상링크를 통해 공부!
- 과학기술정보통신부와 정보통신기획평가원이 지원한 'SW중심대학'의 결과물
OpenStack 소개
- 클라우드 시스템(IaaS)을 구축하는 소프트웨어
- https://www.openstack.org/use-cases/
Use Cases - Applications of the Technology - OpenStack
Thousands of users around the world run on OpenStack. Discover why organizations adopt OpenStack, what workloads they are running and the impact it has.
www.openstack.org
- 오픈소스 소프트웨어(OSS)
- 6개월마다 릴리즈 되고 있음
OpenStack 구조
- 클러스터를 클라우드 인프라로 구축, 관리하는 소프트웨어 집합
- 클러스터(Cluster)
- 컴퓨팅 시스템에서 여러 개의 독립적인 컴퓨터(노드)를 하나의 시스템처럼 동작하도록 구성한 집합
- 클러스터에 있는 물리 자원들을 논리 자원으로 변환 역할
- (클러스터 자원의 pooling) 컴퓨팅, 네트워크, 스토리지
- (공유 자원의 제공, IaaS) Bare metal, Virtual Machines, Container 등의 형태
- openstack-components
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
- 오픈스택은 가장 성공적인 Micro Service Architecture 소프트웨어
- MSA vs Monolithic


- (Controller) 전체 서비스를 관리 역할
- (Compute) 가상화된 자원들을 사용자에게 제공
- (Flavor) 인스턴스의 컴퓨트, 메모리 및 스토리지 용량에 대한 크기를 관리

- 오픈스택에서 사용하는 최소한의 컴포넌트
- Horizon, OpenStackClient, Nova, Cinder, Neutron, Keystone, Placement, Glance, Barbican
노드의 역할
- Controller
- 전체 서비스의 관리, 웹 인터페이스 제공하는 서버
- 높은 CPU 클럭, 적은 코어, 적당한 메모리
- Compute
- 실제 VM을 생성, 제공하는 서버
- 많은 코어, 많은 메모리, 많은 스토리지
- 기타
- Block storage, Object storage
- 노드 구성 방식
- 일반적인 구조
- 컨트롤러 1 + 컴퓨트 N (+ 스토리지 M)
- 이중화(HA) 구조
- 컨트롤러 3 + 컴퓨트 N (+ 스토리지 M)
- 일반적인 구조
컨트롤러와 컴퓨트 양쪽에 서비스가 있는 경우
- Nova, Neutron의 경우, 컨트롤러, 컴퓨트 양쪽에 서비스가 동작
- Master-Worker 구조
- (컨트롤러 측 서비스) 전체를 관리하는 역할
- (컴퓨트 측 서비스) 각 노드에서 실제 어떤 동작을 수행하는 역할
- Nova
- 컨트롤러: API, Scheduler, Conductor, Novncproxy
- 컴퓨트: Compute
- Neutron
- 컨트롤러: Server, DHCP-agent, Metadata-agent, L3-agent, Openvswitch-agent, ovs-cleantup
- 컴퓨트: Openvswitch-agent
Nova
- 가상 머신(VM) 인스턴스를 생성, 관리, 배포하는 컴퓨팅 자원 관리 서비스
- 주요 기능
- VM 인스턴스 생성, 삭제, 스케일링
- 하이퍼바이저와의 연동을 통해 무리적 자원을 가상화
- 스케줄러를 통해 적절한 호스트에 인스턴스 배치
- 연계
- Keystone을 통해 인증 및 권한 관리
- Neutron을 통해 네트워크 설정
- Cinder를 통해 블록 스트리지 연결
- Glance를 통해 VM 이미지 관리
Neutron
- 네트워크 연결을 관리하고, 가상 네트워크, 서브넷, 라우터 등을 구성하는 서비스
- 주요 기능
- VM 간 네트워크 연결 설정
- Floating IP, 보안 그룹, 네트워크 정책 관리
- 외부 네트워크와의 연결을 위한 라우터 및 네트워크 주소 변환(NAT) 기능
- 연계
- Nova와 통합되어 VM의 네트워크 설정 제공
- Keystone을 통해 인증 및 권한 관리
Keystone
- 사용자 인증, 권한 부여, API 접근 제어 등을 관리하는 서비스
- 주요 기능
- 인증 토큰 발급 및 관리
- 역할 기반 접근 제어(RBAC) 구현
- 서비스 카탈로그 제공
- 연계
- OpenStack의 모든 서비스에 대해 인증 및 권한 관리 기능 제공
Placement
- 클라우드 자원의 효율적 할당 및 관리 최적화를 위한 서비스
- 주요 기능
- CPU, 메모리, 디스크, 가속기 등의 물리적 자원에 대한 추적 및 할당 관리
- Nova와 연계하여 VM 인스턴스에 적절한 리소스를 할당하는 과정 최적화
- 리소스 가용성 및 할당에 대한 정보 제공
- 연계
- Nova와 밀접하게 연동되어 VM 인스턴스 배치 최적화
- Keystone을 통해 인증 및 권한 관리
Horizon
- OpenStack의 모든 서비스를 웹 기반 GUI로 관리할 수 있게 해주는 대시보드 서비스
- 주요 기능
- 사용자에게 직관적인 UI 제공
- VM 생성, 네트워크 구성, 스토리지 관리 등 다양한 서비스의 시각적 관리
- 멀티테넌트 환경에서의 리소스 모니터링 및 관리
- 연계
- OpenStack의 대부분 서비스에 대한 GUI 제공
Cinder
- VM에 블록 스토리지(디스크)를 제공하고 관리하는 서비스
- 주요 기능
- 블록 스토리지 볼륨 생성, 연결, 스냅샷 관리
- VM에 대한 영구 저장소 제공
- 스토리지 백엔드와의 통합 관리
- 연계
- Nova와 연동되어 VM에 블록 스토리지 연결
- Keystone을 통해 인증 및 권한 관리
Glance
- VM 이미지를 저장하고 관리하는 서비스
- 주요 기능
- VM 이미지(디스크 이미지) 저장, 검색, 배포
- 다양한 이미지 포맷(QCOW2, RAW 등) 지원
- 이미지 메타데이터 관리
- 연계
- Nova와 연동되어 VM 인스턴스 생성 시 필요한 이미지 제공
- Keystone을 통해 인증 및 권한 관리
- Horizon을 통해 이미지 관리 가능