OpenStack 개요와 구성
오픈스택은 범용 서버의 자원을 가상화해 API로 제공하는 오픈소스 IaaS 플랫폼이다. 핵심 키워드는 IaaS, 가상화, 멀티테넌시, REST API, 셀프서비스 등이다. IaaS는 제공 목적이고, 가상화와 REST API는 이를 실현하는 수단이다. 정의 답안에는 자…
주요 장면
대본
정의와 핵심 키워드
오픈스택은 범용 서버의 자원을 가상화해 API로 제공하는 오픈소스 IaaS 플랫폼이다.
핵심 키워드는 IaaS, 가상화, 멀티테넌시, REST API, 셀프서비스 등이다.
IaaS는 제공 목적이고, 가상화와 REST API는 이를 실현하는 수단이다.
정의 답안에는 자원 풀, API 요청, IaaS 계층 세 요소를 반드시 넣는다.
컨트롤러 노드와 컴퓨트 노드
오픈스택은 컨트롤러 노드와 컴퓨트 노드를 분리한 구조가 핵심이다.
컨트롤러 노드는 API 요청을 접수하고 스케줄링을 맡는다.
컴퓨트 노드는 실제 가상머신을 실행하며 에이전트와 가상 스위치를 갖춘다.
컨트롤러는 부하가 가장 낮은 컴퓨트 노드를 골라 배치한다. 이 판단을 맡는 기능이 스케줄러다.
핵심 서비스와 역할
오픈스택은 기능을 나눈 독립 서비스들이 모여 하나의 IaaS를 이룬다.
Keystone은 모든 요청의 신원을 먼저 확인하고, 나머지 서비스는 그 결과를 받는다.
Nova는 가상머신을, Neutron은 네트워크를, Glance는 이미지를 관리한다.
Cinder는 블록, Swift는 오브젝트 스토리지를, Horizon은 웹 대시보드를 맡는다.
VM 생성 요청 흐름
가상머신 생성 요청은 인증, 배치, 자원 준비, 기동 순서로 처리된다.
먼저 Keystone이 토큰을 검증하고, Nova가 컴퓨트 노드를 고른다.
Glance와 Neutron이 이미지와 네트워크 포트를 준비한다. 필요하면 Cinder가 볼륨을 붙인다.
선택된 노드의 에이전트가 하이퍼바이저로 가상머신을 띄운다.
기동에 실패하면 스케줄러로 돌아가 다른 노드를 고른다. 이것이 재시도다.
계산 예: 컴퓨트 노드 수
가상의 예로, 노드 1대당 가상머신 40대를 수용하는 사설 클라우드를 본다.
가상머신 1,000대에 필요한 노드 수는 V를 C로 나눈 값을 올림해 구한다.
1000을 40으로 나누면 25이므로 컴퓨트 노드는 25대면 된다.
여기에 장애 대비용 여유 노드를 더하면 실제 구축 규모가 된다.
헷갈리기 쉬운 점
시험에서 자주 틀리는 부분을 짚는다.
오픈스택을 제품 하나로만 설명하면 감점이다. 모듈형 구조임을 함께 쓴다.
Horizon은 가상화 엔진이 아니라 웹 기반 대시보드다. 가상화는 Nova가 담당한다.
오픈스택의 기본 분류는 PaaS가 아니라 IaaS다.
정리
지금까지 본 오픈스택 내용을 정리한다.
오픈스택은 IaaS 플랫폼이며 서비스 모듈이 REST API와 메시지 큐로 연동된다.
서비스별 역할을 함께 외우면 구성도 문제에 대응하기 쉽다.