본문 바로가기
kt cloud 온라인교육/Advanced 과정

오픈스택(OpenStack) 1편 주요 개념과 Triple O 아키텍처 소개

by Tech blog 2023. 1. 2.

오픈스택 개념과 Triple O 아키텍처

오픈스택 주요 개념과 Triple O 아키텍처 소개

 

목차

오픈스택(Openstack) 주요개념
오픈스택(Openstack) 구성방법 및 Triple o 아키텍쳐 소개

 

오픈스택(Openstack)이란?

오픈스택(Openstack)이란?

오픈스택(OpenStack)Private/public 클라우드구축하고 관리하는 오픈소스 플랫폼을 의미합니다. 컴퓨팅, 네트워크 등의 자원들을 모아 제어하고 운영하는 Cloud OS입니다. 인증, 컴퓨팅, 스토리지 등 기능 별로 구분된 여러 개의 컴포넌트들로 구성되어 있습니다.

오픈스택 릴리즈 버전


 *2010년 Austin 버전 릴리즈 된 것을 시작으로 현재는 3월 30일에 yoga 버전이 출시되었고 2022년 10월 Zed 버전이 출시되었습니다. 이름에서 알 수 있듯이 오픈스택(OpenStack) 버전명의 시작 글자는 A부터 Z까지 알파벳 순서대로 정해져서 오픈스택(OpenStack) 버전명을 알면 대략 언제쯤 출시된 버전인지 가늠이 가능합니다. Zed 버전이 알파벳의 끝이라 과연 그 다음 버전은 어떤 이름으로 출시 될 지 궁금하네요.

오픈스택(OpenStack)의 구성

오픈스택(OpenStack)의 구성

오픈스택(OpenStack)은 Compute, Storage, Image 등 Cloud OS의 코어 기능들이 독립된 프로젝트 단위로 구성되어있습니다. 새로운 버전이 Release되며 인증을 담당하는 Keystone, Cinder, Horizon등의 부가 서비스 프로젝트가 추가되었고 Kilo 버전 이후부터는 새로운 기능 추가보다 안정성 및 성능 개선에 주력하고 있습니다.

Triple O 아키텍처

Triple O 아키텍처

Triple O 아키텍처는 운영을 효율적으로 하기 위해 관리의 영역서비스 영역을 분리한 것으로 물리 장치를 제어하고 관리하기 위한 언더클라우드(UnderCloud)와 고객에게 Cloud 서비스를 제공하기 위한 오버클라우드(OverCloud)로 분리되어 있습니다.

 

오픈스택(OpenStack)을 활용한 Cloud구축 방법 소개

크게 자동화 Tool을 사용해서 설치하는 방법과 Manual대로 설치하는 방법이 있는데요.
오픈스택(OpenStack)을 설치할 때 사용할 수 있는 자동화 Tool은 ansible, chef 등이 있는데 보통 많은 서버에 설치를 할 경우 이러한 자동화 Tool 을 사용하여 설치하게 됩니다. 만약 오픈스택(OpenStack) 컴포넌트들을 단계 별로 설치하고자 한다면 오픈스택(OpenStack) 공식 문서에 나와있는 매뉴얼 설치법을 보고 컴포넌트 하나 하나 설치하는 방법도 있습니다.


kt cloud의 경우 오픈스택(OpenStack) 배포 시 자동화 툴을 사용하여 설치하는데요. 이때 사용하는 툴은 TripleO입니다.
Triple O는 OpenStack On OpenStack으로 O가 3개이기 때문에 Triple O 라고 이름 지어졌습니다. OpenStack On OpenStack을 한글로 풀어보면 OpenStack을 배포하기 위한 OpenStack인데요.
TripleO는 오픈스택을 배포하고 관리하는 환경을 언더클라우드(UnderCloud)로 정의하고 오픈스택이 설치되어 실제 서비스를 담당하는 환경을 오버클라우드(OverCloud)로 정의해서 언더클라우드(UnderCloud)의 OpenStack에서 오버클라우드(OverCloud)의 오픈스택(OpenStack)을 설치하는 방식입니다.

Triple O 장점
Triple O 아키텍처

오픈스택(OpenStack)을 2세트나 사용하면서 영역을 분리하는 것이 왜 좋은지 의문점을 가지실 수도 있을 것 같은데요. Triple O의 장점은 물리 인프라, 가상화 제어 관련 프로세스 영역과 가상 머신, 사용자 제어 영역을 분리할 수 있다는 것입니다. 한가지 예시를 말씀 드려보겠습니다. 오픈스택(OpenStack)은 6개월에 한 번씩 버전이 릴리즈된다고 말씀 드렸는데요. 이는 즉 업그레이드 주기가 빨라진다는 것을 의미합니다. 저희 같은 CSP사들은 언제 업그레이드를 할 지, 서비스 중단이 일어나는지 안나는지, 업그레이드 후에 제대로 설치가 되었는 지 등으로 많은 인력과 시간을 써야하는데요. 업그레이드가 빠른 만큼 개선도 빠르고 성능도 좋아지지만 그만큼 아키텍트들은 매일 밤샘을 하게 됩니다.  그렇다면 저희는 이런 고민을 하게 되겠죠, 이렇게 항상 뭔가 업그레이드 하고 시스템 작업을 할 떄 서비스 중단을 해야하는가, 우리가 실제 프로적트 환경에서 매번 오픈스택을 설치하고 업그레이드 할 떄마다 모든 시스템을 내려야하는가? 그래서 저희는 스택에서  순수하게 물리 인프라와 가상화 플랫폼을 제어하는 프로세스 영역과 고객에게 제공하는 서비스 영역이 분리되어야할 필요성이 있었던 것이죠.

 

언더클라우드(UnderCloud)를 조금 쉬운 단어로 표현해보자면 컨트롤러의 컨트롤러라고 표현할 수 있을 것 같습니다.
Cloud는 다수의 고객을 대상으로 하나의 물리적 자원을 가상화하여 공유하는 것이기 때문에 그 밑 단에 있는 관리자들은 언더클라우드(UnderCloud)의 오픈스택(openstack)에서 OS 배포나 서비스 별 물리 자원 배포 등을 수행해야하며 접근 권한도 관리자들만 쓰기 떄문에 일반 유저는 언더클라우드(UnderCloud)에 접속할 수 없도록 통제하고 있습니다.

 

오버클라우드(OverCloud)를 한마디로 표현하면 서비스를 위한 오픈스택입니다.
오버클라우드(OverCloud)는 사용자 영역에 들어가기 때문에 고객의 관점에서 VM을 생성하고 제어할 수 있도록 사용하는 오픈스택(OpenStack)입니다. 각 VM이 직접 사용하게되는 게스트 OS 배포 , 물리적 자원을 가상화 시켜서 배포하는 역햘 등을 수행합니다.

 

 

댓글0