포스트

(클라우드) 오픈스택이란 - 오픈스택 인 액션

1.1 오픈스택이란?

오픈스택은 사설 및 공용 클라우드를 만들기 위한 오픈 소스 소프트웨어 로 규정한다. 계속해서 오픈스택 소프트웨어는 대규모로 확장 가능한 클라우드 운영체제를 제공한다 라고 정의한다.

  • 물리 및 가상 서버, 네트워크, 스토리지 시스템의 자원을 엮어서 이용할 수 있다.
  • 테넌트, 할당량, 사용자 역할을 통해 자원의 클라우드를 효과적으로 관리할 수 있다.
  • 공통 인터페이스를 제공하여 하부 제조사 서브시스템과 관계없이 자원을 제어할 수 있다.

인프라와 애플리케이션의 사설 및 공용 클라우드를 관리, 모니터링, 배포하기 위한 공통 프레임워크를 사용하는 방향으로 진화가 계속 일어나면서 오픈스택이 등장했다.

1.2 클라우드 컴퓨팅과 오픈스택 이해하기

오픈스택을 사설 클라우드용으로 사용하는 데 중점을 두고 있지만, 내용 중 많은 부분이 오픈스택 API를 기반으로 하는 공용 클라우드 서비스에도 해당한다.

1.2.1. 추상화와 오픈스택 API

기본적으로 오픈스택은 광범위한 제조사의 하드웨어와 소프트웨어 자원을 제어하기 위한 공통 API를 추상화하여 제공한다.

하드웨어와 소프트웨어 자원의 추상화
  • 이를 통해 특정 구성요소가 제조사에 종속되는 것을 피할 수 있다. 이는 제조사의 제품을 직접 사용하지 않고 오픈스택을 통해 자원을 관리하기 때문에 가능하다. 오픈스택이 제조사의 모든 기능을 지원하지 못하는 점이 단점이지만 공통적으로 필요한 기능은 충분히 지원하고 있다.
자원들 간의 공통 API
  • 이를 통해 연결된 구성요소들의 완전한 오케스트레이션이 가능하다.

1.3 오픈스택과 오픈스택이 제어하는 컴퓨터 자원과의 관계

1.3.1 오픈스택과 하이퍼바이저

하이퍼바이저 또는 가상 머신 모니터는 가상 머신을 위해 물리 하드웨어를 에뮬레이션 하는 소프트웨어다. 오픈스택 자체는 하이퍼바이저가 아니며 단지 하이퍼바이저의 동작을 제어할 뿐이다. 오픈 스택은 다양한 하이퍼바이저를 지원한다. 현재 VMware ESX, WMware ESXi, 마이크로소프트 Hyper-V가 기업 가상화 시장을 주도하고 있다.

가상화 환경의 규모와 관계없이 대부분의 사람이나 조직은 광범위한 기능을 지원하는 젠서버 또는 KVM(Kernal-based Virtual Machine) 하이퍼바이저 둘 중 하나를 사용한다. 시트릭스(Citrix)의 제품인 젠서버는 오픈 소스 하이퍼바이저지만 시트릭스가 상용(유료) 지원 서비스를 지원한다. KVM은 리눅스 커널에 포함되어 있어서 리눅스 배포판에서 KVM에 대한 상용 지원을 제공하고 있다.

1.3.2 오픈스택과 네트워크 서비스

오픈스택 자체는 가상 스위치가 아니지만 여러 물리 및 가상 네트워크 장치와 가상 오버레이 네트워크를 관리할 수 있다. 하이퍼바이저의 경우에는 하이퍼바이저 자체적으로 제공하는 서비스만 제한적으로 오픈스택이 제어할 수 있지만, DHCP(Dynamic Host Configuration Protocaol)나 라우팅 등의 네트워크 서비스는 오픈스택이 직접 제공한다.

오픈스택은 상용이든 오픈 소스든 어떠한 하부 기술에도 종속되지 않는다. 더 중요한 것은 네트워크 유형이나 제조사가 변경되더라도 구성 설정을 변경할 필요가 없다는 점이다. 오픈스택은 이러한 인터페이스를 오픈스택 API로 추상화하고 있다.

1.3.3. 오픈스택과 스토리지

파일 공유(NFS, CIFS 등)를 사용해본 적이 있다면 이미 ‘파일 기반’ 스토리지를 사용해본 것이다. 이 유형의 스토리지는 사람이 찾아보기도 쉽고 컴퓨터가 접속하기도 편리하지만, 이것은 일반적으로 블록 스토리지라는 또 다른 유형의 스토리지를 추상화한 것이다. 블록 스토리지는 운영체제나 파일 시스템이 주로 사용한다고 볼 수 있다.

오브젝트 기반 스토리지 라는 그다지 친숙하지 않은 또 다른 유형의 스토리지가 있다. 이 유형의 스토리지는 일반적으로 소프트웨어 API를 통해 접근할 수 있다. 오브젝트 기반 스토리지는 파일과 블록 스토리지를 한 단계 더 추상화한 것이지만 파일이나 블록 스토리지에서의 제한 사항이 없다.

VM이 빠르게 접근해야만 하는 블록 스토리지와는 다르게 오브젝트 스토리지에서는 더 긴 지연시간이 허용되기 때문에 VM의 볼륨(인스턴스에 항상 연결되어 있음) 으로는 사용하지 않는다. 오브젝트 스토리지는 볼륨과 이미지(운영체제 포함)의 백업을 저장하기 위해 일반적으로 사용한다.

1.3.4 오픈스택과 클라우드 용어

IaaS는 VM과 스토리지 자원을 확보하기 위한 아마존 형태의 서비스를 독자들의 회사에 제공하고자 할 때로 간주된다. 이떄 사용자에게는 개별 가상 머신을 프로비저닝하고 관리할 수 있는 접근 권한이 주어진다.

PaaS는 사용자에게 IaaS 기능에 대한 직접 접근 권한은 주지 않고 오픈 스택이 제공하고 지원하는 애플리케이션 오케스트레이션 기능에 대한 접근 권한만 부여할 때 로 간주할 수 있다. 사용자는 하부에 존재하는 물리 및 가상 인프라 구성요소를 볼 수 없다. 개발팀이 소프트웨어 테스트를 위한 서버와 네트워크 인프라(IaaS 위에 애플리케이션을 배포)를 요청하는 경우에 테스트용 플랫폼을 배포하기 위한 백엔드로 오픈스택을 사용하여 클라우드 오케스트레이션을 할 수 있다.

오픈스택이 재공하는 IaaS 또는 PaaS를 사용하는 고객에게 특정 서비스를 제공한다고 가정한다면 이 떄는 SaaS의 백엔드 구성요소로 역할을 한다.

1.4 오픈스택 구성요소 소개

다양한 오픈스택의 구성요소, 핵심 프로젝트를 보여준다.

프로젝트컴포넌트설명
컴퓨트노바 - Nova하이퍼바이저의 제어와 가상 서버 관리. CPU, 메모리, 디스크, 네트워크 인터페이스 등의 VM 자원 관리
오브젝트 스토리지스위프트 - Swift오프젝트 스토리지 기능
이미지 서비스글랜스 - Glance템플릿 이미지와 스냅샷의 보존 및 관리
아이덴티티키스톤 - Keystone오픈스택 구성요소를 위한 역할 기반 접근 제어 관리 및 인증 서비스 제공
대시보드호라이즌 - Horizon오픈스택에서 작업하기 위한 웹 기반 GUI 제공
블록 스토리지신더 - Cinder블록 스토리지 관리
네트워크뉴트론 - NeutronIP 주소, 라우팅, SDN(Software Defined Network) 등 가상 네트워크 인터페이스가 사용하는 자원 제공
텔레메트리실로미터 - Cellometer오픈스택 구성요소의 사용량 측정 및 모니터링을 위한 도구 모음 제공
오케스트레이션히트 - Heat오픈스택 환경을 위한 템플릿 기반의 클라우드 애플리케이션을 옼에스트레이션 하는 기능을 제공

1.5 오픈스택의 역사

미국 대통령 버락 오바마는 2009년 취임 첫 날, 집무실에서 모든 연방 기관에 보낸 메모를 통해 연방 정부와 국민 간의 투명성, 참여, 협력을 저해하는 장벽을 철폐하라고 지시했다. NASA는 NASA의 열린 정부 프레임워크를 발표했으며, 여기에는 네뷸라 라는 도구를 공유한다고 기술되어 있다. 네뷸라는 NASA 과학자와 연구원에게 IaaS 자원을 더 빠르게 제공하기 위해 개발되었다. 이와 동시에 클라우드 컴퓨팅 업체인 랙스페이스는 자사의 오브젝트 스토리지 플랫폼인 스위프트를 오픈 소스화한다고 발표했다.

2010년 7월 랙스페이스와 NASA는 다른 25개 회사와 협력하여 오픈 스택 프로젝트에 착수했다. 첫 발표 후 매해 거의 두 번씩 새버전을 발표했다.

1.6 요약

  • IaaS 클라우드는 관리 프레임워크를 통해 조율되는 범용 자원의 모음이다.
  • 오픈스택은 최종 사용자가 직접 IaaS를 조정하고 애플리케이션을 오케스트레이션(PaaS/SaaS)할 수 있도록 해주는 관리 프레임 워크이다.
  • 오픈스택은 하이퍼바이저, 스토리지 시스템, 네트워크 하드웨어와 소프트웨어 등 기존 상용 및 커뮤니티 기술을 제어한다.
  • 오픈스택은 각 특정 목적을 가진 프로젝트의 모음으로 구성된다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.