진짜 개발자
본문 바로가기

Cloud/OpenStack

OpenStack - OpenStack 이란

728x90

OpenStack

- Open Source로 구성된 Private Cloud Platform

- Nasa와 Rackspace에서 초기 Code 제공

- 영문 알파벳 순으로 버전이름 생성

- 18.11.12 최신버젼 Rocky

- 설치과정 복잡하고 어렵기 때문에 Ubuntu에서는 스크립트를 이용하는 devstack 방식으로 설치 단, 이경우는 시스템을 재부팅하면 사용불가 (현재는 원인 불명)

   Redhat 계열은 자동화 프로그램인 Puppet을 이용하여 설치하는 PackStack 사용

- Compute, Network, BlockStorage, ObjectStorage, DashBoard등을 담당하는 각각의 모듈로 구성되어 있다.



OpenStack 구조

컴포넌트 - 오픈스택은 크게 아래 두가지 컴포넌트로 구성된다

1. 네트워크 컴포넌트 - 프라이빗 클라우드 서비스 보호를 위한 방화벽 등의 보안시스템

   - 네트워킹 및 부하분산을 위한 L3 , L4 스위치들로 구성


2. 오픈스택 컴포넌트 - 서비스 컴포넌트로 컴퓨터 노드 , 스토리지 노드, 컨트롤러 노드로 구성

   - 각 노드들은 서비스 컴포넌트들이 설치되는 Server PC를 의미한다.

1) 컴퓨터 노드 

2) 스토리지 노드 - 가상 머신에 파일시스템을 제공하는 Cinder와 오브젝트 스토리지를 제공하는 Swift로 구성

3) 컨트롤러 노드 - 이미지 서비스 , 컴퓨터 노드제어 , 네트워킹 제어 , 인증, 대시보드 , 데이터베이스, 메시지 큐

, NTP와 서버등과 같은 클라우드 제어와 운영을 위한 서비스를 제공

  - 컨트롤러 노드에 장애 발생시 전체 서비스에 대한 통제권을 잃기 때문에 가용성을 위해 최소 

    3대의 노드로 구성할 것을 권장한다.

4) 네트워크 노드 - DHCP, NAT등 기능을 사용하기 위해 네트워크 노드를 구성하지만 단일장애점 이슈로 

최근에는 Neutron이 제공하는 DVR을 이용하여 네트워킹 기능을 컴퓨터 노드로 분산시키는 구조로 설계

   - 네트워크 노드를 별도로 구성하기 보다는 컨트롤 노드와 통합하고 HA를 구성하는것이 좋다

컨트롤 노드 또한 HA구성이 필요하고 네트워크 노드와 별개로 구성할 경우 노드 수가 

많아지는 문제가 존재하기 때문이다.


오픈스택 서비스 컴포넌트 - 오픈스택의 서비스들은 모듈형태로 되어 있다

   - 서비스들간의 결합은 REST API나 메시지 큐형태의 약결합으로 이루어 지기 

  때문에 다양한 형태의 클라우드를 유연하게 구축 가능

1. 코어 서비스 컴포넌트 - 오픈스택의 주요 기능을 제공하는 서비스로 Cinder와 Swift를 제외한 4개의 

  서비스는 클라우드 구축을 위해 필수적이다.


2. 옵셔널 서비스 컴포넌트  - 부가적인 기능들을 제공하기 위해 선택적으로 설치하는 서비스를 말한다.

    

   



OpenStack Map

각 모듈 정리 블로그 - http://naleejang.tistory.com/105




OpenStack 설치법

1) Ubuntu - 스크립트를 사용하는 devstack 방식

2) Redhat - Puppet을 이용하여 설치하는 PackStack 방식

3) 직접설치방법 

- OpenStack Map을 보고 내가 필요한 모듈을 골라 설치하는것이 좋다 즉 자동화 툴들을 이용하여 설치하는 것도 좋지만 그때 그때 필요한 모듈만을 설치하여 유연한 클라우드를 구축하기 위해서는 직접 설치하는 방법을 아는 것이 좋다