1. 개요
오픈스택이란 무엇인가?
우선 돌고래님의 오픈스택 소개를 읽어보시면 도움이 될 것입니다.
일단 오픈스택은 오픈 소스 소프트웨어입니다. 그런데 어떤 오픈 소스냐, 하면 클라우드 환경에서 서버, 네트워크, 스토리지 등의 자원을 컨트롤하는 오픈 소스입니다.
2. 버전
그동안에 버전에 대해서 다시 한 번 알아볼께요.
오픈스택은 6개월 주기로 새로운 버전이 발표됩니다. 2016년 4월에는 Mitaka, 2016년 10월에는 Newton, 2017년 4월에는 Ocata 버전이 발표되기도 했죠.
다음과 같은 요소로 구성되어 있지요.
- Nova : Compute
- Neutron : Network
- Cinder : Block Storage
- Swift : Object Storage
- keystone : Identity
- Glance : Image
- Ceilometer : Telemetry
- Heat : Orchestration
- 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
일단 오늘은 여기까지 하고 다음에 이 그룹간의 관계에 대해 또 진지하게 알아보도록 할께요.