Products
오픈스택(OpenStack)이란?
오픈스택(OpenStack)은 IaaS(Infrastructure as a Service) 형태의 클라우드 컴퓨팅 오픈 소스 프로젝트이다. 2012년 창설된 비영리 단체인 OpenStack Foundation에서 유지, 보수하고 있으며 아파치 라이선스하에 배포됩니다.

출처 : http://www.openstack.org
Service Configuration
Config | Details |
NOVA | IaaS(Infrastructure as a Service) 구축에 필요한 컴퓨터 인스턴스들을 제어 및 관리하기 위한 서비스로 ALL share 기능을 담당하는 프로젝트 |
NEUTRON | SDN(Software Defined Networking)의 프레임을 제공 오픈스택에서의 인스턴스 네트워킹을 위한 서비스 |
SWIFT | 블록 스토리지가 아닌 오브젝트 스토리지 환경을 구축 및 관리하기 위한 서비스로 별도의 독립적인 구축이 가능한 스토리지 서비스 프로젝트 |
CINDER | 오픈스택 인스턴스에서 Persistent Block 단위의 디바이스를 제공합니다. AWS의 EBS와 유사한 서비스 입니다. |
KEYSTONE | 통합 인증 시스템으로 오픈스택 서비스들을 위한 ID 제공. SQL, PAM, LDAP 등에 대한 backends를 제공합니다. |
GLANCE | 가상 머신 이미지들을 저장, 등록, 관리, 전달하기 위한 이미지 서비스 이며 Nova와 스토리지 간 중계 역할을 담당함 |
오픈스택과 서버 컴퓨터 간 비교 분석표
OS 구성 요소 | 담당 역할 | 오픈스택 서비스 |
Scheduler | 서버의 자원 관리 | Nova |
Server Virtualization | 서버의 가상 머신(VM) 관리 | Glance |
File System | Object Filesystem으로 컨텐츠 저장 | Swift |
User API | 사용자 어플리케이션 접근 관리 | Nova, Glance, Swift |
오픈스택을 ‘클라우드 운영체제'로 불리는 이유
일반적으로 데이터센터 등에서 사용되는 서버를 활용하기 위해선 운영체제(OS)를 설치하여 사용하는데 그 운영체제(OS)에서 가장 중요한 부분이 바로 스케줄러와 사용자 API 라 할 수 있을 것 입니다. 운영체제는 기본적으로 해당 컴퓨터에서 실행되고 있는 모든 사용자 어플리케이션들이 자원 관리의 책임과 권한이 있는 스케줄러가 정의한 정책에 따라 공정하게 자원들을 접근할 수 있도록 관리하는 소프트웨어입니다.
클라우드 서비스를 구축하기 위한 실제 하드웨어 구성은 복잡하겠으나 클라우드 서비스를 사용하는 사용자(혹은 어플리케이션) 입장으로 보자면 하나의 커다란 서버 컴퓨터로 생각할 수 있고, 그러한 서버 컴퓨터를 동작시키기 위한 운영체제가 바로 오픈스택이라 보면 이해하는데 도움이 될 것 입니다.
먼저 운영체제(OS)의 가장 핵심인 스케줄러는 오픈스택에서 노바(Nova)가 담당하고 있습니다

노바(Nova) 동작 구성도 (* 출처: OpenStack.org)
오픈스택의 노바(Nova)는 그림과 같이 노바 볼륨(Volume)을 통해 스토리지 관리를, 노바 네트워크(Network)를 통해 네트워크 관리를, 노바 컴퓨트(Compute)를 통해 컴퓨트 인스턴스(Instance)들을 관리하고 있는 가장 핵심적인 프로젝트 입니다.
일반적으로 데이터센터에서 사용되는 서버 컴퓨터들은 하드웨어 자원을 100% 가까울 정도로 충분히 활용하기 위해서 VMWare 사의 vSphere 와 같은 서버 가상화 기술을 사용하고 있습니다. 이와 유사하게 오픈스택에서도 가상 머신 이미지들을 저장/등록/관리/전달하기 위한 서비스로 글랜스(Glance)가 사용되고 있습니다.
운영체제가 제공하는 아주 중요한 서비스 중 한 가지가 바로 사용자 API (User API)를 제공하는 일 입니다. 예를 들어 여러분들이 MS Windows 용 어플리케이션을 개발한다고 해서 MS Windows 운영체제 내부를 알 필요는 없습니다. 여러분들은 단지 MS Windows 가 제공해주는 MFC 나 WIN32 API 와 같은 User API 만 알고 있으면 MS Windows 기반의 어떠한 어플리케이션이라도 구현이 가능합니다. 이와 마찬가지로 오픈스택 역시 클라우드 운영체제(Cloud OS)라는 이름에 걸맞게 오픈스택이 제공하는 모든 서비스들(Nova, Glance, Swift, Keystone, Horizon 등)은 각 서비스 별로 제공되는 User API를 통해 접근이 가능합니다. 이 점이 오픈스택의 가장 큰 장점이라 할 수 있을 것 입니다. 오픈스택은 퍼블릭 클라우드와 프라이빗 클라우드 서비스를 구축하기 위해 필요한 모든 소프트웨어를 제공하는데 그 목적이 있는 오픈 소스 프로젝트 입니다.