1. 개요

오픈스택이란 무엇인가?

 

 
우선 돌고래님의 오픈스택 소개를 읽어보시면 도움이 될 것입니다.
 
일단 오픈스택은 오픈 소스 소프트웨어입니다. 그런데 어떤 오픈 소스냐, 하면 클라우드 환경에서 서버, 네트워크, 스토리지 등의 자원을 컨트롤하는 오픈 소스입니다.

2. 버전

그동안에 버전에 대해서 다시 한 번 알아볼께요.
 
 
오픈스택은 6개월 주기로 새로운 버전이 발표됩니다. 2016년 4월에는 Mitaka, 2016년 10월에는 Newton, 2017년 4월에는 Ocata 버전이 발표되기도 했죠.
 
다음과 같은 요소로 구성되어 있지요.
 
  1. Nova : Compute
  2. Neutron : Network
  3. Cinder : Block Storage
  4. Swift : Object Storage
  5. keystone : Identity
  6. Glance : Image
  7. Ceilometer : Telemetry
  8. Heat : Orchestration
  9. Horizon : Dashboard

3. 세부 서비스

어렵죠? 하지만 하나하나 살펴보겠습니다!!

4. Nova

쉽게 말하면 호스트 관리입니다. 정확히는 컴퓨팅 자원을 할당합니다. CPU, Memory와 같은 핵심 자원을 할당하죠. 다수의 Hypervisor를 지원합니다. 즉, KVM, Hyper-V, VMWare 등을 쓸 수 있어요. 주로 libvirt/KVM을 주로 사용합니다.

5. Neutron

네트웍을 관장한다고 보면 됩니다. VLAN, Router 등을 생성하고 변경하고 삭제하죠. 또 Load Balacing, 방화벽(firewall), VPN 등을 제공하기도 합니다. 사용자는 사용자 소유의 가상 네트워크를 생성합니다.

6. Cinder

개별 VM이 사용하는 블럭 스토리지를 제공합니다. EMC, Netapp과 같은 레거시 스토리지 혹은 셰프(CEPH)를 지원합니다. 이 서비스는 다음과 같은 컴포넌트로 구성됩니다.

  • cinder-api : API 요청 수락/처리
  • cinder-volume : 블록 스토리지 서비스와 직접 상호 작용 및 MQ를 통해 타 프로세스와 상호 작용
  • cinder-scheduler : 볼륨 생성을 위한 최적의 스토리지 프로바이더 노드 선택
  • cinder-backup : 스토리지 프로바이더 백업에 대한 볼륨 백업 제공

7. Swift

Cinder가 블럭 스토리지라면 Swift는 오브젝트 스토리지입니다. 개별 파일은 각각의 URL을 가지고 있죠. 그래서 웹에서 접근할 수 있게 되죠. 오브젝트 스토리지가 궁금하다면 여기를 클릭! 아니면 또 여기를 클릭!!

8. Keystone

인증 서비스를 제공합니다. 여기서의 인증은 사용자 혹은 프로젝트 간의 인증입니다. 서비스 카탈로그 및 정책을 정의하게 되죠.

9. Glance

템플릿 형식의 이미지를 제공합니다. VM 생성 시에 활용할 수 있죠. 또한 백업 용도로도 Glance를 쓸 수 있고요.
 
  • glance-api : 이미지를 확인, 복구, 저장하는 API 처리
  • glance-registry : 메타데이터를 처리, 메타데이터에는 아이템 별 크기, 타입이 저장됨
  • 데이터베이스 : MySQL이나 SQLite 등을 주로 사용
  • 저장소 : 일반 파일 시스템, 오브젝트 스토리지, RADOS 블록 스토리지 등 다양한 저장소 유형 지원
  • 메타데이터 정의 서비스 : 메타데이터를 정의하기 위한 API

10. Ceilometer

미터링, 즉 과금을 위한 기능을 제공합니다. 자원 모니터링을 위해서도 쓸 수 있습니다.

11. Heat

조합하여 한 번에 프로비져닝할 수 있는 기능을 제공합니다. 관련된 서버, 네트워크, 스토리지 등의 자원을 정의해 놓은 것이죠.

12. Horizon

대시보드인데요, 즉 관리 페이지라고 생각하면 쉽죠. 

13. Trove

데이터베이스(DBMS)를 서비스로 제공합니다. 데이터베이스 생성, 백업, 복구, 리플리케이션 등을 API로 제어합니다.

14. 정리

이렇게 총 10가지 요소를 살펴 보았는데요 이들은 다시 세그룹으로 나눌 수 있어요.
 
  • 1그룹 : Compute Node -> Compute(Nova)에 해당하는 하이퍼바이저를 실행, 기본적으로는 KVM 사용
  • 2그룹 : Network Node -> Neuton
  • 3그룹 : Controller Node -> Cinder, Swift, keystrong, Glance, Ceilometer, Heat
일단 오늘은 여기까지 하고 다음에 이 그룹간의 관계에 대해 또 진지하게 알아보도록 할께요.