2021-08-CMP

상명대학교 / 서광규 교수


 

많은 기업들이 클라우드를 선택하는 것은 이제 더 이상 선택사항이 아닌 생존을 위한 필수요건이 되었다. 클라우드 활용의 급격한 증가와 함께, 클라우드 서비스를 활용하기 위한 클라우드 자원의 절대적인 양도 폭발적으로 증가하고 있다. 기존에는 서버와 네트워크 장비 중심으로만 관리했던 회사 내 IT 자원들이, 클라우드 상의서버리스 및 DB와 PaaS 그리고 보안설정에 이르기까지 폭넓게 확대대고 있기 때문이다. 이에 따라 클라우드 매니지먼트 플랫폼(Cloud Management Platform; 이하 CMP)의 필요성과 중요성이 증가하였고, 다양한 CMP가 등장하였다. CMP는 관리자에게 클라우드 인프라를 관리하는 데 필요한 도구를 제공하는 매우 정교한 서비스이다. 이를 위해 CMP는 프라이빗, 퍼블릭 및 하이브리드 클라우드 환경을 포함한 다양한 인프라를 관리할 수 ??있다. 본 고에서는 OpenNebula, Eucalyptus, Nimbus, OpenStack 및 CloudStack과 같은 오픈 소스 IaaS CMP를 소개하고, 이들간의 간략한 비교내용도 기술하기로 하는데, 본 고는 S. Ismaeel, A. Miri, D. Chourishi, S. M. R. Dibaj의 Open Source Cloud Management Platforms: A Review의 내용을 정리한 것임을 밝혀둔다.

 




 

 

OpenNebula


OpenNebula는 기업이 기존 IT 인프라에 간단하고 비용 효율적이며 신뢰할 수 있는 개방형 엔터프라이즈 클라우드를 구축 할 수 있도록 설계되었다. 서비스를 동적으로 배치할 수 있도록 스토리지, 네트워크 및 가상화 기술을 조정하는 유연한 도구를 제공한다. OpenNebula의 설계는 유연하고 모듈식으로 되어있어 다양한 스토리지 및 네트워크 인프라 (개인, 공용 및 하이브리드) 및 하이퍼바이저 기술 (예: KVM, Xen 및 VMware)과 통합할 수 있다. 벤더 중립적 일뿐만 아니라 플랫폼 및 애플리케이션 프로그래밍 인터페이스 (API)에 구애받지 않는다.

OpenNebula 구성 요소에는 [그림 1]에 표시된 것처럼 세 개의 계층이 포함된다.

(i) 드라이버 계층은 가상 머신 (VM)의 생성, 시작 및 종료, VM에 대한 스토리지 할당 및 모니터링을 담당한다. 기본 운영 체제와 직접 통신하고 기본 인프라를 추상 서비스로 캡슐화하여 물리적 시스템 (PM)의 운영 상태를 모니터링한다.

(ii) 코어 계층은 가상 네트워크를 동적으로 설정하여 VM에 동적 IP 주소를 할당하고 VM의 스토리지 할당을 관리하는 등 VM의 전체 수명주기를 관리한다.

(iii) 도구 계층은 사용자와 통신하기 위한 Command Line Interface (CLI)와 같은 인터페이스를 제공하며 사용자는 이러한 인터페이스를 통해 VM을 관리할 수 ??있다. 스케줄러는 코어 레이어에서 제공하는 기능을 관리한다. 외부 사용자는 도구 계층에서 제공하는 클라우드 인터페이스를 통해 이러한 기능을 공유할 수 있다.

 

image01

[그림1. OpenNebula]


 

 




 

Eucalyptus


프로그램을 유용한 시스템에 연결하기 위한 탄력적 유틸리티 컴퓨팅 아키텍처 (Eucalyptus)는 산타 바바라에 있는 캘리포니아 대학교에서 개발되었다. 비공개 및 공개적으로 액세스할 수 있는 클라우드를 모두 만들고 관리하는 데 사용할 수 있으며 GPL 라이선스에 따라 릴리스 된다. Eucalyptus의 목표는 EC2 호환 클라우드 컴퓨팅 플랫폼과 S3 호환 클라우드 스토리지 플랫폼을 제공하여 EC2 인터페이스 및 기능 을 복제하는 것이다.

Eucalyptus는 KVM, VMware, Xen 및 여러 종류의 Linux와 같은 많은 가상화 기술에 통합되었으며 이 계층에 API를 제공한다. 웹 서비스에 기반한 인터페이스의 사용은 Amazon 서비스와의 기본 통합을 가능하게 하는 주요 특징 중 하나이다.

Eucalyptus의 주요 구성 요소는 [그림 2]와 같으며 다음과 같이 요약할 수 있다.

(i) CC (클러스터 컨트롤러)는 하나 이상의 노드 컨트롤러를 관리하고 여기에 인스턴스를 배포하고 관리하는 역할을 한다. 노드 컨트롤러 및 클라우드 컨트롤러와 동시에 통신한다. CC는 또한 Eucalyptus에서 사용할 수 있는 특정 유형의 네트워킹 모드에서 인스턴스를 실행하기 위한 네트워킹을 관리한다.

(ii) 클라우드 컨트롤러 (CLC)는 전체 에코 시스템의 프런트 엔드이다. CLC는 한쪽의 클라이언트 도구에 Amazon EC2 / S3 호환 웹 서비스 인터페이스를 제공하고 다른 쪽의 Eucalyptus 인프라의 나머지 구성 요소와 상호 작용한다.

(iii) 노드 컨트롤러 (NC)는 노드의 기본 구성 요소이다. OS, 하이퍼바이저 및 CC와 동시에 상호 작용하여 각 노드에서 실행되는 인스턴스의 수명주기를 유지한다.

(iv) Walrus 스토리지 컨트롤러 (WS3)는 단순한 파일 스토리지 시스템이다. WS3는 머신 이미지와 스냅 샷을 저장한다. 또한 S3 API를 사용하여 파일을 저장하고 제공한다.

(v) 스토리지 컨트롤러 (SC)는 볼륨의 스냅 샷 생성을 허용한다. AoE 또는 iSCSI를 통해 인스턴스에 영구 블록 스토리지를 제공한다.

 

image02

[그림2. Eucalyptus의 구성요소]







 

Nimbus


Nimbus는 과학 사용자에게 인프라 클라우드의 성능과 다양성을 제공하는 통합 도구 세트이다. 과학자를 위해 특별히 설계되어 Java 및 Python의 프로그래밍 프레임워크를 기반으로 하는 대규모 프로젝트 요구 사항을 충족하도록 구성 요소를 사용자가 지정할 수 있다. Nimbus 플랫폼을 사용하면 Nimbus, OpenStack, Amazon 및 기타 클라우드를 결합하여 XEN 및 KVM 하이퍼바이저를 통해 사설 및 퍼블릭 클라우드를 구축할 수 있다. [그림 3]은 Nimbus의 구조를 보여주는데 다음과 같이 구성된다.

(i) Workspace Service는 WSRF (Web Services Resource Framework) 기반 원격 프로토콜과 같은 다른 원격 프로토콜 프런트 엔드가 호출 할 수 있는 VM 관리자이다.

(ii) Cumulus는 Nimbus 리포지토리 솔루션으로 사용되며 Amazon S3 REST API의 구현을 나타낸다.

(iii) 클라우드 클라이언트는 사용자의 인스턴스 시작 및 원 클릭 클러스터를 신속하게 지원하는 것을 목표로 한다.

(iv) Workspace 클라이언트는 WSRF 프로토콜의 전체 기능 세트를 명령해 줄 클라이언트로 활성화한다.

(v) Workspace Pilot을 사용하면 작업을 관리하도록 이미 구성된 리소스와 VM을 통합 할 수 있다.

(vii) 리소스 관리자는 물리적 노드 풀에 사용된다.

(viii) 작업 공간 제어는 각 하이퍼바이저에서 VM 관리 및 네트워크 특정 작업을 구현한다.

(ix) Context Broker를 통해 클라이언트는 대규모 가상 클러스터 시작을 자동으로 반복적으로 조정할 수 있다.

(x) 컨텍스트 에이전트는 VM에 상주하며 VM 부팅시 컨텍스트 브로커와 상호 작용한다.

 

image03

[그림3. Nimbus 구조]


 




 

OpenStack


OpenStack 소프트웨어는 대시 보드 또는 OpenStack API를 통해 관리되는 데이터 센터 전체에서 대규모 컴퓨팅, 스토리지 및 네트워킹 리소스 풀을 제어하도록 설계되었다. 퍼블릭 및 프라이빗 IaaS 아키텍처의 확장 가능하고 유연한 오픈 소스 클라우드 컴퓨팅 플랫폼을 만드는 것을 목표로 한다.

OpenStack 이니셔티브의 목표는 클라우드 서비스 간의 상호 운용성을 지원하고 기업이 자체 데이터 센터에서 Amazon과 유사한 클라우드 서비스를 구축 할 수 있도록 하는 것이다. Apache 2.0 라이선스에 따라 무료로 제공되는 OpenStack은 미디어에서 Linux of the Cloud로 자주 언급되며 Eucalyptus 및 Apache CloudStack 프로젝트와 비교된다.

OpenStack은 클라우드 인프라 솔루션을 위한 다양한 구성 요소를 제공하는 일련의 상호 관련된 프로젝트로 구성된. OpenStack의 7 가지 핵심 구성 요소는 컴퓨팅, 객체 스토리지, ID, 대시 보드, 블록 스토리지, 네트워크 및 이미지 서비스이다. 이러한 구성 요소 간의 관계는 [그림 4]에 나와 있으며, 그 작동은 다음과 같이 요약할 수 있다

(i) Identity (Keystone)는 전체적으로 인증 및 권한 부여 서비스를 제공하는 공유 서비스이다.

(ii) Compute (Nova)는 대규모 프로비저닝 서비스 및 VM 인스턴스 관리를위한 프레임 워크를 제공한다. 사용자는 프로그래밍 가능한 API를 사용하여 VM을 생성, 관리 및 배포 할 수 있다.

(iii) 이미지 (Glance)는 가상 디스크 이미지 관리 서비스를 저장하고 쿼리하기 위한 서비스 카탈로그를 제공한다.

(iv) 네트워킹 (Neutron)은 IP 주소 관리, DNS, DHCP, 부하 분산 및 보안 그룹 (방화벽 정책과 같은 네트워크 액세스 규칙)과 같은 클라우드 사용자 (테넌트)에게 다양한 네트워킹 서비스를 제공한다.

(v) Object Storage (swift)는 네이티브 API 또는 Amazon Web Services S3 호환 API를 통해 클라우드에서 임의 데이터를 저장하고 검색 할 수 있도록 지원한다. 미디어 파일 (MP3, 이미지, 비디오), 가상 머신 이미지 및 백업 파일과 같은 정적 데이터에 가장 적합하다.

(vi) 블록 스토리지 (cinder)는 컴퓨팅 인스턴스를 위한 영구 블록 스토리지를 제공한다.

(vii) 오케스트레이션 (Heat)은 코드처럼 처리할 수 있는 텍스트 파일 형식의 템플릿을 기반으로 여러 복합 클라우드 애플리케이션을 시작하는 오케스트레이션 엔진을 구현한다.

OpenStack에는 다른 많은 지원 서비스가 있다. 이러한 서비스에는 클라우드 관리자와 클라우드 테넌트 모두에게 웹 기반 인터페이스를 제공하는 Dashboard (Horizon)가 포함된다. 배포된 클라우드를 포함하는 물리적 및 가상 리소스의 사용률 측정치를 안정적으로 수집하는 데 사용되는 원격 측정 (Ceilometer) 기능도 제공된다.

 

image04
[그림4. OpenStack 주요 구성요소 간의 관계]







 

CloudStack


CloudStack은 퍼블릭 및 프라이빗 클라우드를 모두 구축하는 데 사용할 수 있는 소프트웨어 패키지이다. 가장 일반적인 하이퍼바이저 및 운영 체제를 지원하며 단일 인터페이스로 여러 물리적 노드를 관리할 수 ??있도록 인프라 구조가 계층적이다. GNUv3 라이선스에 따라 2010년 Cloud.com에서 처음 개발되었으며 2011년 Citrix에 인수되었으며 2012년에 Apache Software Foundation (ASF)에 출시되었다. Apache 2.0 라이선스로 코드를 사용할 수 있다. [그림 5]는 CloudStack의 주요 구성 요소이로 세부 내용은 다음과 같다.

(i) 계산 노드 (CN)는 VM 인스턴스가 인스턴스화되는 서버이다.

(ii) 클러스터는 동일한 하이퍼바이저 및 동일한 기본 스토리지 시스템을 공유하는 여러 CN으로 구성된다.

(iii) 포드는 레이어 2 스위치와 하나 이상의 클러스터를 포함하는 하드웨어 랙이다. 포드는 기본 저장소를 나타내는 VM 파일 저장을 담당한다. 이 기본 스토리지는 지정된 클러스터와 연결되어 있으며 게스트 VM의 루트 파일 시스템을 저장한다.

(iv) 가용 영역은 영역을 형성하는 보조 저장소가 있는 하나 이상의 포드이다. 이는 지리적 위치를 나타내는 단일 데이터 센터와 동일하다. 보조 스토리지는 VM 템플릿, ISO 이미지 및 디스크 볼륨 스냅 샷을 저장한다.

(v) 관리 서버는 웹 사용자 인터페이스 및 API를 제공하고, 특정 호스트에 대한 VM 인스턴스 할당, 특정 계정에 대한 공용 및 개인 IP 주소, 스토리지 할당을 관리하는 단일 구성 지점이다.

 

image05

[그림5. CloudStack 구조]


 




 

 

오픈소스 CMP의 비교


이 파트에서는 앞서 설명한 오픈소스 CMP에 대하여 비교하는데, 지면 관계상 간략한 비교 내용만을 기술하기로 한다.

먼저 이러한 플랫폼에서 사용되는 데이터베이스에 대하여 비교하면 다음과 같다. OpenNebula는 MySQL을 백엔드로 사용하는 반면 이전 버전에서는 SQLite를 사용했. 메타 데이터와 사용자 정보를 저장하려면 Eucalyptus는 PostgreSQL을 사용하는 반면 스토리지 프런트 엔드는 Walrus이다. Nimbus는 데이터베이스 구조에서 GridFTP와 SCP를 사용한다. OpenStack의 Nova 구성 요소는 SQLAlchemy에서 지원하는 모든 데이터베이스를 기술적으로 지원할 수 있다. 그러나 SQLite3, MySQL 및 PostgreSQL 만 사용한다. 또한 Trove는 OpenStack 환경에서 관계형 및 비관계형 데이터베이스 엔진을 제공하는 서비스형 데이터베이스이다. CloudStack은 MySQL을 기본 데이터베이스로 사용한다.

모니터링 도구의 맥락에서 Nagios의 확장은 가상 인스턴스와 스토리지 서비스 모두에 대한 모니터링 기능을 가지고 있다. 이 확장은 Eucalyptus 및 OpenStack 모니터링을 위해 채택되었다. OpenNebula는 클라우드 물리적 인프라를 모니터링하고 Information Manager라는 모듈을 통해 클라우드 공급자에게 정보를 제공한다. OpenNebula에서 모니터링되는 데이터는 노드에 설치된 프로브를 통해 수집되고 SSH 연결을 통해 쿼리되며 물리적 노드의 상태와 관련된 정보를 제공한다. Nimbus 모니터링은 클라우드 애플리케이션을 시작, 구성 및 모니터링하기 위한 구조 및 API를 제공하는 도구 세트에 의해 수행된다.

Eucalyptus, OpenNebula 및 Nimbus 사용은 다음과 같은 사용이 권장된다. Amazon 서비스 또는 API를 사용할 때 Eucalyptus를 사용하는 것이 비용 효율적인 솔루션으로 입증될 수 있다. 또한 Eucalyptus를 사용하면 네트워크 혼잡을 피하고 대규모 데이터 세트에 대해 많은 계산을 수행할 수 있다. OpenNebula는 과학 시뮬레이션 및 계산을 위한 개방적이고 유연하며 확장 가능한 클라우드 솔루션을 찾는 기업 및 연구 기관에 권장된다. 이 플랫폼은 필요한 리소스를 동적으로 조정하는 옵션을 제공한다. Nimbus의 사용은 과학 영역에서 매우 유용 할 수 있다. 이 영역에서 사용자는 시스템과의 집중적인 상호 작용 및 특수 도구 사용이 필요할 수 있다.

Nimbus는 사용자 정의가 가능하고 OpenStack은 동적 자원 할당 기능과 서비스 캡슐화를 고려할 때 기업용으로 권장된다. OpenStack의 즉시 사용 가능한 문서도 장점 중 하나로 나열되며, 많은 양의 데이터로 작업하는 사용자 또는 많은 수의 가상 머신을 빠르게 실행하려는 사용자에게 OpenNebula를 사용을 권장한다.

 




 

결론


오픈소스 CMP는 여러 가지 이유로 사용되며 각기 다른 아키텍처와 특성이 필요하다. 소프트웨어 구현에 대한 장벽이 낮고 지원 시스템 역할을 하는 소프트웨어 뒤에 활발한 커뮤니티가 있기 때문에 사용자 수가 더 많고 다양하다. 일반적으로 오픈 소스 프로젝트는 기술을 발전시키는 공격적인 릴리스 주기로 혁신적이다. 본 고에서는 가장 일반적으로 사용되는 IaaS 오픈소스 CMP를 소개하고 비교하였다. 지면의 제한으로 인해 XCP (Xen Cloud Platforms), GoGrid Cloud, OpenQRM, Convirture ConVirt 및 Red Hat의 DeltaCloud와 같이 조금은 덜 일반적으로 사용되는 플랫폼은 포함되지 않았다.

 




 

< 참 고 문 헌 >

  1. http://opennebula.org/
  2. OpenNebula 3 Cloud Computing
  3. http://www.nimbusproject.org/
  4. https://www.openstack.org/
  5. http://www.cloudstack.org
  6. http://www.appcore.com/
  7. T.-L. Wu, S. N. Baasha, and S. S. Karwa, A survey of open-source cloud infrastructure using futuregrid testbed, 2013.
  8. S. Ismaeel, A. Miri, D. Chourishi, and S. M. R. Dibaj, Open Source Cloud Management Platforms: A Review, 2015 IEEE 2nd International Conference on Cyber Security and Cloud Computing, 2015.





저작권정책

K-ICT 클라우드혁신센터의 저작물인 『오픈 소스 클라우드 매니지먼트 플랫폼(Cloud Management Platform; CMP) 소개 및 비교』은 K-ICT 클라우드혁신센터에서 상명대학교 서광규 교수에게 집필 자문을 받아 발행한 전문정보 브리프로, K-ICT 클라우드혁신센터의 저작권정책에 따라 이용할 수 있습니다.
다만 사진, 이미지, 인용자료 등 제3자에게 저작권이 있는 경우 원저작권자가 정한 바에 따릅니다.