오픈스택 구조 분석

컴퓨터공부/클라우드컴퓨팅 2017.03.07 23:12 Posted by 아는 개발자

오픈소스를 좀더 심도있게 분석하기 위해 설치도 하고 내부 소스 코드도 보려 했으나, 설치 가이드 글들을 전혀 이해를 할 수 없어서 논문 부터 차근차근 읽고 가기로 했다. 'OpenStack: Toward an Open-Source Solution for Cloud Computing'이란 논문을 읽었는데 한창 오픈스택이 뜨기 시작한 2012년도에 나온거라 그런지 별 다른 내용이 없었지만 그래도 오픈스택의 전체적인 구조는 이해하는데 도움이 된 것 같다.



논문에 따르면 오픈스택의 구조는 위 그림처럼 다섯가지로 나눌 수 있다고 하는데 여기서 주된 요소는 Compute, Image, Object라고 한다. 각각에 대한 설명은 다음과 같다.


  1. OpenStack Compute: IaaS 클라우드를 관리 담당하는 플랫폼이다. Amazon EC2나 Rackspace CloudServer랑 비슷한 역할을 하는데 주로 관리자 인터페이스 공간과 클라우드를 조율 할 수 있는 API를 제공하는 역할을 한다. 여기서 사용하는 기술을 Nova Compute라고 하는데 여러 Virtual Machine들의 네트워크와 구조 확정성을 관리한다. 그 뿐만 아니라 서버나 네트워크, 접근 권한을 관리하는 역할도 포함하는데 뭐 이정도면 사실상 오픈 스택의 핵심적인 기능들은 다하고 있다고 봐도 무방하다. Compute 내의 세부적인 구조는 다음과 같다.



    API Endpoints는 관리자가 호출한 함수가 Compute 구조와 통신하는 거의 끝 부분을 의미하는데 Queue는 사용자로부터 전달 받은 명령(API endpoint에 도착한 값)과 Compute, Nework, Volume Controller들한테서 주고 받은 메시지들을 전달해주는 역할을 한다. 가장 중요한 역할을 하는 것들은 오른쪽에 있는 세 요소들이다. 먼저 Compute Worker는 모든 instance들의 생명주기를 조절하고 Virtual Server를 생성하고 조작하는 역할을 한다. Virtual Machine의 생성 뿐만 아니라 관리까지 책임지는 역할을 한다. 나머지 두 요소는 Compute Worker의 역할을 돕는데, Network는 Virtual Machine이 사용할 Bridve, VLAN, DHCP 등등 네트워크 기능을 생성해주는 역할을 하고, Volume(Cloud에서 Volume은 스토리지를 의미한다)은 Volume의 조작 또는 할당 등등의 역할을 한다.

  2. OpenStack Imaging Service: Compute에서 Storage 서비스와 관련된 요청이 있을 때 이를 처리해주는 역할을 한다.직접 이미지를 갖고 있는 것은 아니고, Compute와 Object 사이에서 필요한 작업들을 전달하는 요소로 볼 수 있다. 주로 이미지를 Virtual Machine 디스크에 저장(recording)이나 분배(distributing)하는 역할을 한다.

  3. OpenStack Object Storage: 이름 그대로 스토리지의 역할을 한다. 공간을 생성하고 확장 가능한 형태로 만든다.


'컴퓨터공부 > 클라우드컴퓨팅' 카테고리의 다른 글

SDN과 NFV  (0) 2019.04.21
Kubernetes 소개  (0) 2018.06.23
오픈스택 구조 분석  (0) 2017.03.07
오픈스택이란?  (0) 2017.03.07
클라우드 가상화와 Docker  (0) 2017.03.05
클라우드 컴퓨팅(Cloud Computing)  (0) 2017.02.25