오픈 소스 클라우드 분석

2012.08.20 14:05

가을의 곰을... 조회 수:3896

 

 

 

 

오픈 소스 클라우드 분석

IaaS(Infrastructure as a Service)를 위한 빌딩 블록

M. Tim Jones, Consultant Engineer, Emulex Corp.

요약: 이제 더 이상 신생 기술이 아닌 클라우드 컴퓨팅은 애플리케이션을 사용하고 개발하는 방법을 근본적으로 바꿔 놓은 유용하고 중요한 기술입니다. 예상대로 Linux®와 오픈 소스가 클라우드의 기반(공용 및 개인용 인프라를 위한)을 제공합니다. 이 기사에서는 클라우드, 클라우드의 아키텍처 및 이러한 동적이고 확장 가능한 컴퓨팅 및 저장소 플랫폼을 개발하는 데 사용된 오픈 소스 기술에 대해 자세히 설명합니다.

이 기사에 태그: 개요, 클라우드

원문 게재일: 2010 년 3 월 09 일
번역 게재일: 2010 년 4 월 13 일
난이도: 중급
영어로: 보기
페이지뷰: 8376 회
의견: 0 (보기 | 의견 추가 - 로그인)

평균 평가 등급 4 개 총 5표 평균 평가 등급 (5 투표수)
아티클 순위

분산 시스템 즉, 인터넷에서는 클라우드를 추상적 개념으로 사용하는 것이 매우 일반화되어 있다. 하지만 지난 몇 년 동안 이 추상적 개념은 로컬 또는 원격으로 손쉽게 서비스로 제공할 수 있는 높은 수준의 가상화된 확장 가능한 인프라로 확장되었다. 이 기사에서는 클라우드 아키텍처에 대한 자세한 정의와 장점에 대해서는 다루지 않는다. 대신 참고자료 섹션을 참조하기 바란다.

클라우드 컴퓨팅 분석

이 기사에서는 먼저 클라우드 아키텍처의 핵심 추상적 개념인 IaaS(Infrastructure as a Service)부터 시작하여 빌딩 블록을 거쳐서 높은 수준의 통합 솔루션까지 살펴본다.

자주 사용하는 약어

  • API: Application programming interface
  • I/O: Input/output
  • SLA: Service-level agreement
  • UI: User interface

요구사항은 아닐지라도 가상화는 동적으로 확장 가능한 아키텍처를 빌드하는 데 도움이 되는 고유한 장점을 제공한다. 확장성 외에도 가상화는 로드 밸런싱을 위해 실제 서버 간에 VM(virtual machine)을 마이그레이션하는 기능도 제공한다. 그림 1에서는 VMM(virtual machine monitor)이라고도 하는 하이퍼바이저라는 소프트웨어 계층에서 가상화 구성 요소를 제공하는 것을 볼 수 있다. 이 계층에서는 하나의 물리적 시스템에서 여러 운영 체제(및 해당 애플리케이션)를 동시에 실행할 수 있는 기능을 제공한다. 하이퍼바이저 위에는 가상 머신이라는 오브젝트가 있으며, 이 오브젝트에는 운영 체제, 애플리케이션 및 구성이 포함되어 있다. 선택적으로 장치 에뮬레이션을 하이퍼바이저에서 또는 VM으로서 제공할 수 있다. 마지막으로, 가상화의 새로운 동적 특성과 가상화의 새로운 기능을 관리하기 위한 새로운 관리 스키마가 필요하다. 이 관리는 서버에서의 로컬 관리를 통해 계층에서 가장 적합하며, 뿐만 아니라 상위 레벨 인프라 관리를 가상 환경에 대한 전체적인 조정 기능을 통해 상위 레벨 인프라 관리에도 적합하다.


그림 1. 클라우드에 있는 노드의 핵심 요소
 figure1.gif

공유 스토리지를 사용하는 실제 네트워크에 그림 1과 같은 노드를 여러 개 배치하고, 전체 인프라에 대한 관리를 조정하고, 캐싱 및 필터링을 통해 수신 연결(개인용 또는 공용 설정에 상관 없이)에 대한 프론트엔드 로드 밸런싱을 제공하면 클라우드라는 가상 환경이 완성된다. 그림 2에서는 이 새로운 구조를 보여 준다. 이 구조에서 유휴 시스템은 추가 계산 성능이 필요할 때까지 유휴 상태로 유지될 수 있으며(전력 효율 향상) VM을 통해 각 노드의 개별 로드에 따라 노드간 밸런스가 조정되며, 심지어는 동적으로도 조정된다.


그림 2. 클라우드 컴퓨팅 인프라
 figure2.gif

클라우드의 기본 아키텍처를 정의했으므로 이제 동적 클라우드 인프라를 구축할 때 오픈 소스가 적용되는 부분을 살펴보자.


핵심 오픈 소스 기술

Linux 환경에서는 클라우드 소프트웨어 패키지의 가상화, 관리 및 대규모 통합을 위한 가상화된 인프라에 중점을 둔 개발의 물결이 나타나고 있다. 먼저 개별 노드 레벨에서의 오픈 소스를 살펴본 다음 인프라 레벨에서 어떤 변화가 나타나고 있는지 살펴보자.

하이퍼바이저

노드 레벨에서의 클라우드의 기본은 하이퍼바이저이다. 가상화는 요구사항이 아니다. 그렇다고 하더라도 가상화가 확장 가능하고 전력 효율이 높은 아키텍처에 필요한 기능을 제공한다는 데는 논쟁의 여지가 없다. 수많은 오픈 소스 가상화 솔루션이 있기는 하지만 Linux 운영 체제를 하이퍼바이저로 변환하는 두 가지 주요 솔루션으로는 Linux KVM(Kernel VirtualMachine)과 Lguest가 있다. KVM은 프로덕션 환경에 전개된 공식 하이퍼바이저 솔루션이며, Lguest는 Linux VM만을 실행하는 Linux 중심적 솔루션이지만 커널에 통합되어 있으며 더 많이 사용되고 있다.

Linux를 하이퍼바이저로 변환하는 솔루션 외에 게스트 VM 중심적 방법을 사용하는 다른 솔루션도 있다. UML(User-Mode Linux)은 게스트 Linux 커널을 수정하여 하이퍼바이저 확장 없이 다른 Linux 운영 체제에서 실행되도록 수정하는 또 다른 접근법이다. 대부분의 사용자가 수정되지 않은 커널을 실행하기를 원하기 때문에 전체 가상화 솔루션(예를 들어, KVM)이 주로 사용된다.

이 UML 접근법도 많이 사용되고 있기는 하지만 가상화된 하드웨어(예를 들어, 콘솔, 가상 디스크 및 네트워크)가 필요하다.

장치 에뮬레이션

하이퍼바이저는 여러 운영 체제에서 CPU를 공유할 수 있는 방법을 제공한다(CPU 가상화). 하지만 전체 가상화를 제공하기 위해서는 VM에 대해 전체 환경이 가상화되어야 한다. 시스템 또는 플랫폼 에뮬레이션은 여러 가지 방법으로 수행될 수 있지만 수많은 하이퍼바이저를 지원하는 인기 있는 오픈 소스 패키지로는 QEMU가 있다. QEMU는 완전한 에뮬레이터이자 하이퍼바이저이다. 하지만 KVM에서는 장치 에뮬레이션을 위해 사용자 공간에 있는 별도의 프로세스로서 QEMU를 사용한다(그림 1 참조). QEMU의 한 가지 흥미로운 특징은 QEMU가 디스크 에뮬레이션을 제공하기(QCOW 형식을 통해) 때문에 스냅샷 및 라이브 VM 마이그레이션 등의 다른 고급 기능도 제공한다는 것이다.

KVM에서는 커널 2.6.25 이후부터 I/O 가상화 성능을 최적화하는 방법으로 virtio를 사용하고 있다. Virtio는 게스트의 후크를 사용하여 의사 가상화된 드라이버를 하이퍼바이저에 도입하여 실제 장치에 가까운 수준의 성능을 제공하는 방식으로 최적화를 수행한다. 이 방법은 이 목적을 위해 운영 체제를 수정할 수 있는 경우에만 사용할 수 있지만 Linux 하이퍼바이저에서 실행되는 Linux 게스트 시나리오에서 사례를 찾아볼 수 있다.

오늘날에는 virtio와 QEMU가 함께 작동하므로 사용자 공간에 있는 Linux 게스트와 QEMU 에뮬레이터 간에 에뮬레이트된 장치 트랜잭션을 최적화할 수 있다.

가상 네트워킹

VM이 실제 서버에 통합됨에 따라 플랫폼에 대한 네트워킹 요구가 높아지고 있다. 하지만 VM의 모든 네트워킹을 플랫폼의 실제 계층에서 처리하는 대신 로컬 통신 자체를 가상화할 수 있다. VM 간의 네트워크 통신을 최적화하기 위해 가상 스위치가 도입되었다. vSwitch는 실제 스위치처럼 동작하지만 플랫폼 내에 가상화되어 있다(그림 3 참조). 이 그림에서는 VM에 연결된 가상화된 인터페이스(VIF)가 가상 스위치를 통해 실제 인터페이스(PIF)와 통신한다.


그림 3. Open vSwitch와 가상 및 실제 인터페이스 

figure3.gif

오픈 소스는 매우 흥미로운 솔루션인 Open vSwitch를 사용하여 이 문제를 효과적으로 해결하고 있다. vSwitch는 가상 환경을 위한 가상 스위치를 제공할 뿐만 아니라 실제 플랫폼을 통합하고 VLAN(virtual local area network), 우선순위 기반 QoS(Quality of Service), 트렁크 및 하드웨어 가속 지원(예를 들어, 단일 루트 IOV(I/O virtualization) 네트워크 어댑터) 등의 엔터프라이즈 레벨 기능도 제공할 수 있다. Open vSwitch는 현재 2.6.15 커널에서 사용할 수 있으며 다양한 Linux 기반 가상화 솔루션(Xen, KVM, VirtualBox) 및 관리 표준(RSPAN(Remote Switched Port Analyzer), NetFlow 등)을 지원한다.

VM 도구 및 기술

VM은 운영 체제, 루트 파일 시스템 및 구성의 집합체이므로 도구 개발을 위한 공간으로 충분히 사용할 수 있다. 하지만 VM 및 도구의 모든 가능성을 실현하려면 VM 및 도구를 조립할 수 있는 이식 가능한 방법이 필요하다. 최신 방법인 OVF(Open Virtualization Format)는 유연하고, 효율적이며, 이식 가능한 VM 구조이다. OVF는 VM의 구성을 정의하는 XML 랩퍼로 가상 디스크 이미지를 랩핑하며, 이 구성에는 네트워킹 구성과 프로세서 및 메모리 요구사항을 비롯하여 이미지 및 플랫폼 요구사항을 추가로 정의하기 위한 확장 가능한 다양한 메타데이터가 포함된다. OVF의 주요 기능은 하이퍼바이저에 관계 없이 VM을 분배할 수 있는 이식성이다.

VMI(VM image)를 관리하고 다른 형식으로 변환하는 기능을 제공하는 수많은 유틸리티가 있다. VMware의 ovftool은 VMI 변환을(예를 들어, VMDK(VMware Virtual Disk Development Kit) 형식을 OVF로 변환) 위해 사용할 수 있는 유용한 도구이다. 이 도구를 비롯한 여러 도구는 VMI가 있을 때만 유용하다. 하지만 실제 서버를 VMI로 변환하려는 경우에는 어떤 도구를 사용해야 할까? 이 목적에 적합한 Clonezilla라는 유용한 도구를 사용할 수 있다. 이 도구는 원래 재해 복구를 위한 디스크 복제 도구로 개발되었지만 실제 서버 인스턴스를 VM으로 변환하여 가상화된 인프라에 쉽게 전개할 때도 사용할 수 있다. OVF 형식이 채택되면서 변환 및 관리를 위한 여러 다른 도구(예를 들어, libvirt 기반의 유틸리티)가 개발되었거나 개발 중에 있다.

로컬 관리

이 기사에서는 두 가지 관점에서 관리를 살펴본다. 이 섹션에서는 플랫폼 관리를 설명하며, 다음 섹션에서는 상위 레벨의 인프라 관리에 대해 설명한다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

Red Hat에서는 libvirt 라이브러리를 플랫폼 가상화(하이퍼바이저 및 VM)를 관리하기 위한 API로 도입했다. Libvirt가 흥미로운 이유는 수많은 하이퍼바이저 솔루션(KVM 및 Xen 등)을 지원하고 수많은 언어(예를 들어, C, Python 및 Ruby)에 대한 API 바인딩을 제공하기 때문이다. Libvirt는 플랫폼 하이퍼바이저와의 직접적인 인터페이스를 통해 API를 더 큰 인프라 관리 솔루션으로 확장하는 "최종 관리 단계"를 제공한다. Libvirt를 사용하면 VM을 쉽게 시작하고 중지할 수 있을 뿐만 아니라 API를 사용하여 플랫폼 간에 VM을 마이그레이트하는 등의 고급 작업도 수행할 수 있다. 또한 libvirt 기반의 쉘인 virsh도 사용할 수 있다.


인프라 오픈 소스 기술

지금까지 가상화된 노드 레벨의 오픈 소스 솔루션 중 일부를 살펴보았으며 이제부터는 이 인프라를 지원하는 다른 몇 가지 오픈 소스 애플리케이션을 살펴보자. 이 기사에서는 세 가지 범주를 살펴본다. 처음 두 범주는 앞에서 설명한 솔루션을 보완하는 인프라 레벨 기술이다. 세 번째 범주는 손쉽게 전개할 수 있도록 모든 기능을 모아 놓은 통합 솔루션으로 구성되어 있다.

I/O 기술

확장 가능하고 밸런스가 잘 잡힌 웹 아키텍처를 개발하기 위해서는 백엔드 기능을 구현한 서버 간의 웹 트래픽에 대한 밸런스를 조정하는 기능의 역할이 중요하다. 수많은 로드 밸런싱 솔루션이 있지만 최근에 Yahoo!에서 Traffic Server라는 솔루션의 소스를 공개했다. Traffic Server는 세션 관리, 인증, 필터링, 로드 밸런싱 및 라우팅을 비롯하여 클라우드 인프라에 필요한 수많은 기능을 하나의 패키지로 묶어 놓았다는 점이 흥미롭다. Yahoo!에서는 처음에 이 제품을 Inktomi로부터 인수한 이후 제품을 확장하여 오픈 소스로 공개했다.

인프라 관리

대규모 인프라 관리(많은 하이퍼바이저 및 추가 VM 관리)는 수많은 방법으로 수행할 수 있으며, 그 중에서 동일한 플랫폼(libvirt)을 기반으로 개발된 일반적인 두 가지 솔루션이 있다. oVirt 패키지는 소수의 VM에서부터 시작하여 수백 개의 호스트에서 실행되는 수천 개의 VM으로 확장할 수 있는 오픈 VM 관리 도구이다. Red Hat에서 개발한 oVirt 패키지는 일반적인 관리 기능과 함께 자동화된 클러스터링 및 로드 밸런싱 기능도 지원하는 웹 기반 관리 콘솔이다. oVirt 도구는 Python 언어로 작성되었다. 마찬가지로 Red Hat에서 libvirt를 기반으로 개발한 VirtManager는 웹 기반인 oVirt와는 달리 GTK+ UI를 사용하는 애플리케이션이다. VirtManager는 훨씬 더 많은 그래픽 기능을 제공하며(실시간 성능 및 자원 활용을 위해) 원격 VM에 대한 전체 그래픽 콘솔로 사용할 수 있는 VNC 클라이언트 뷰어를 포함하고 있다.

그리고 Puppet은 데이터 센터 인프라(클라우드)를 위해 설계된 또 하나의 오픈 소스 패키지이다. 가상화된 인프라만을 위해 설계된 것은 아니지만 이 제품을 사용하면 피어 운영 체제의 세부 사항을 추상화하여 대형 인프라 관리를 단순화할 수 있다. 이 작업은 Puppet 언어를 사용하여 수행된다. Puppet은 많은 수의 서버에 대한 관리 작업을 자동화하는 데 이상적이며 오늘날 널리 사용되고 있다.


통합 IaaS 솔루션

다음과 같은 오픈 소스 패키지에서는 모든 필수 기능(가상화, 관리, 인터페이스 및 보안 포함)을 단일 패키지로 통합하는 포괄적인 방법을 사용한다. 이러한 패키지를 서버 및 스토리지 네트워크에 추가하면 유연한 클라우드 컴퓨팅 및 스토리지 인프라(IaaS)를 구축할 수 있다. 이러한 플랫폼에 대한 자세한 정보는 참고자료를 참조하기 바란다.

Eucalyptus

Eucalyptus(Elastic Utility Computing Architecture for Linking Your Programs to Useful Systems)는 클라우드 컴퓨팅 인프라를 구축하는 데 사용되는 가장 인기 있는 오픈 소스 패키지 중 하나이다. 이 패키지의 독특한 점은 인터페이스가 Amazon의 클라우드 컴퓨팅 인터페이스인 Amazon EC2(Amazon Elastic Compute Cloud)와 호환된다는 점이다. 또한 Eucalyptus에는 Amazon의 클라우드 스토리지 인터페이스인 Amazon S3(Amazon Simple Storage Service)와 호환되는 Walrus가 포함되어 있다.

Eucalyptus는 하이퍼바이저를 위해 KVM/Linux 및 Xen을 지원하며 클러스터 관리를 위한 Rocks 클러스터 배포판을 포함하고 있다.

OpenNebula

OpenNebula는 Universidad Complutense de Madrid에서 개발한 또 하나의 흥미로운 오픈 소스 애플리케이션이다(Apache 라이센스를 따름). OpenNebula는 개인용 클라우드 구조를 지원할 뿐만 아니라 하이브리드 클라우드라는 아이디어도 지원한다. 하이브리드 클라우드는 개인용 클라우드 인프라와 공용 클라우드 인프라(예를 들어, Amazon)를 결합하여 확장 수준을 한층 더 높일 수 있다.

OpenNebula는 Xen, KVM/Linux 및 VMware를 지원하며 libvirt와 같은 요소를 사용하여 관리 및 검사 작업을 수행한다.

Nimbus

Nimbus는 과학적 컴퓨팅에 중점을 둔 또 하나의 IaaS 솔루션이다. Nimbus를 사용하면 Amazon EC2에서 제공하는 것과 같은 원격 자원을 임대한 후 로컬에서 이들 자원을 관리할 수 있다(구성, VM 전개, 모니터링 등). Nimbus는 Globus.org의 일부인 Workspace Service 프로젝트의 변형이며, Amazon EC2를 이용하여 Xen과 KVM/Linux를 지원한다.

Xen Cloud Platform

Citrix에서는 Xen을 IaaS 플랫폼에 통합했으며, 이때 Open vSwitch 등의 다른 오픈 소스 기능을 통합하는 동안 Xen을 하이퍼바이저로 사용했다. Xen 솔루션의 흥미로운 장점은 Kensho 프로젝트의 표준 기반 관리(OVF, DTMF(Distributed Management Task Force), CIM(Common Information Model) 및 VMAN(Virtualization Management Initiative) 포함)에 중점을 두고 있다는 점이다. Xen 관리 스택은 SLA 보증과 함께 비용 정산(charge-back)을 위한 세부 기준도 지원한다.

OpenQRM

마지막으로 소개하지만 중요한 솔루션인 OpenQRM은 데이터 센터 관리 플랫폼을 분류된다. OpenQRM은 가상화된 전체 데이터 센터를 관리하는 단일 콘솔로 써드파티 도구를 통합할 수 있는 플러그인 가능한 아키텍처로 구성되어 있다. OpenQRM은 고가용성을 위한 지원(중복성 활용)이 통합하고 KVM/Linux, Xen, VMware 및 Linux VServer를 포함한 다양한 하이퍼바이저를 지원한다.


추가 주제

클라우드 및 가상화 도메인에서 오픈 소스가 주도적인 역할을 담당하고 있는 분야에 대해 할 말은 많지만 이 기사에서는 오늘날 사용할 수 있고 인기가 높은 가시적인 일부 솔루션만을 간략히 소개했다. 자신의 고유한 요구사항에 따라 개별 구성 요소부터 클라우드를 구축하려거나 처음부터 작동하는 종합적인 솔루션을 원하든지 상관 없이 오픈 소스를 통해 모든 것을 구할 수 있다. 여기에서 설명한 솔루션을 포함한 여러 솔루션에 대한 자세한 정보를 보려면 참고자료를 참조하기 바란다.


참고자료

교육

제품 및 기술 얻기

토론

필자소개

M. Tim Jones는 임베디드 펌웨어 아키텍트이자 Artificial Intelligence: A Systems Approach, GNU/Linux Application Programming(현재 2판), AI Application Programming(현재 2판) 및 BSD Sockets Programming from a Multilanguage Perspective의 저자이다. 정지 위성을 위한 커널 개발에서 시작해 임베디드 시스템 아키텍처와 네트워크 프로토콜 개발에 이르기까지 다양한 분야에 대한 공학 지식을 가지고 있다. 콜로라도주 롱몬트 소재의 Emulex Corp.에서 컨설턴트 엔지니어로 활약하고 있다.

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
175 이통사 OpenAPI file 가을의 곰을... 2012.08.22 4175
174 포털 OpenAPI file 가을의 곰을... 2012.08.22 4099
173 공공기관 OpenAPI 가을의 곰을... 2012.08.22 3356
172 멀티부팅시 우분투 GRUB 복구하기.. file 가을의 곰을... 2012.08.21 6025
171 Hadoop HDFS BASIC Usage Over View : 하둡 사용 개요 가을의 곰을... 2012.08.20 5378
170 HDFS 테스트 file 가을의 곰을... 2012.08.20 4560
169 클라우드 기반의 재해복구 시스템 (DRS system) 구축 분석에 대한 논문 가을의 곰을... 2012.08.20 4576
» 오픈 소스 클라우드 분석 file 가을의 곰을... 2012.08.20 3896
167 Visual studio 2010 에서 소스파일을 UTF-8 로 자동변환 file 가을의 곰을... 2012.08.19 3622
166 HTML5로 자신만의 3D 엔진을 만들자 file 가을의 곰을... 2012.07.29 8303
165 SQL 쿼리를 NoSQL인 MongoDB 쿼리로 변경하기 가을의 곰을... 2012.07.29 4249
164 GitHub 소개글 - 류광님 가을의 곰을... 2012.07.29 3523
163 GIT Server 구축 : LINUX UBUNTU, MS WIN file 가을의 곰을... 2012.07.28 5786
162 git 서버 설치 요령 file 가을의 곰을... 2012.07.28 4020
161 mongoDB와 PHP 참고자료 가을의 곰을... 2012.07.15 4845
160 MongoDB와 PHP 연동 가을의 곰을... 2012.07.15 4767
159 phpmyadmin과 비슷하게 mongoDB를 php 서버로 관리하기 위한 phpMoAdmin file 가을의 곰을... 2012.07.15 10935
158 Hadoop을 이용한 분산 데이터 처리, Part 3: 애플리케이션 개발 file 가을의 곰을... 2012.07.15 3577
157 Hadoop을 이용한 분산 데이터 처리, Part 2: 추가 주제 file 가을의 곰을... 2012.07.15 3979
156 Hadoop을 이용한 분산 데이터 처리, Part 1: 시작 file 가을의 곰을... 2012.07.15 4444
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED