강좌
클라우드/리눅스에 관한 강좌입니다.
클라우드 분류

리눅스 기반 가상화 서비스 종류 및 특징

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스 기반 가상화 서비스 종류 및 특징



 

현재 리눅스에 대부분의 가상화 솔루션을 설치하여 운영할 수 있다.

 

 

 

 

Xen, KVM, VMWare, VirtualBox등이 많이 사용된다.

 

 

 

 

수많은 리눅스 배포판이 Xen을 기본 패키지로 제공하였고 최근 레드햇 6버전 이상부터는 KVM을 기본 패키지로 선택하였다.

 

 

 

 

여기서는 리눅스에서 가장 많이 사용되는 KVM Xen에 대해 알아 보도록 하자.

 

 

 

1) KVM

79900661b465dca46740a74888d378eb_1679362846_1277.png
 

 

국내 리눅스 사용자는 대부분 레드햇 기반의 리눅스배포판을 사용한다.

 

 

 

 

레드햇 제품인 Redhat Enterprise Linux 뿐만 아니라 Fedora, CentOS를 많이 사용한다.

 

 

 

 

몇 년 전만 하더라도 가상화는 Xen을 사용했다.

 

 

 

 

이는 레드햇 5버전까지 기본 가상화 패키지가 Xen이였기 때문이다.

 

 

 

 

그리고 레드햇 6부터는 KVM 패키지가 포함되고 있으며, 최근 KVM을 가상화 하이퍼바이저로 많이 사용되고 있다.

 

 

 

KVM(Kernel-based Virtual Machine)은 레드햇 2008년에 인수한 Qumranet에서 2006년에 전가상화 방식을 사용하여 개발한 하이퍼바이저이다.

 

 

 

 

KVMCPU에서 가상화(Intel-VT, AMD-V)를 지원해야 하며 초기에는 x86기반의 리눅스에서 구동되었지만, 최근에는 FreeBSD에도 포팅되어 사용되고 S/390, PowerPC, IA-64, ARM등에 포팅되어 사용되고 있다.

 

 

 

 

KVM20072월에 릴리즈 된 Kernel 2.6.20부터 커널 메인라인에 들어간 커널 모듈형태이다.

 

 

 

 

호스트 서버에서 보면 게스트 서버는 하나의 프로세스로 간주되기 때문에 오버헤더가 거의 없어 전가상화와 반가상화의 장점만 모아놓은 하이퍼바이저로 평가된다.

 

 

 

 

KVMLinux, BSD, Solaris, Windows, Haiku, ReactOS, Plan 9, AROS Research Operating System등 당양한 게스트 OS를 지원하며, QEMU-KVM을 이용하면 Mac OS X 또한 게스트 OS로 지원한다.

 

 

 

 

KVM은 특정 장치에 대해 반가상화(Paravirtualization)를 제공한다.

 

 

 

 

VirIO 프레임 워크를 사용하여 반가상화 이더넷 카드, 반가상화 Disk I/O 컨트롤러, 메모리 사용량 조정을 위한 풍선(balloon) 장치를 제공한다.

 

 

 

 

SPICE 또는 VMware 드라이버를 사용하여 VGA 그래픽 인터페이스 반가상화를 지원한다.

 

 

 

 

 

 

리눅스 커널은 커널 모드와 사용자 모드로 구분된다.

 

 

 

 

KVM은 리눅스에서 사용하는 모드를 가상화를 위해 하나 더 추가 하였다.

 

 

 

 

그것이 게스트 운영체제 실행에 사용되는 게스트 모드이다.

 

 

 

 

이 모드에서는 가상머신이 자체 커널 모드와 사용자 모드를 가질 수 있다.

 

 

 

 

KVM은 에뮬레이션을 수행하지 않는 대신 단순히 /dev/kvm 인터페이스를 노출한다.

 

 

 

 

가상머신 프로세스는 게스트 모드에서 실행되어 /dev/kvm 인터페이스를 통해서만 메모리 주소공간을 가진다.

 

 

 

 

그리고 /dev/kvm 인터페이스를 통해 펌웨어 이미지를 공급받고, 시뮬레이션된 I/O를 제공하며, 비디오 데이터를 호스트 머신에 표시한다.

 

 

 

 

사용자 모드

(응용프로그램)

 

 

게스트 운영체제

 

 

사용자 모드

(응용프로그램)

(가상머신)

QEMU

/dev/kvm

 

 

하이퍼바이저

하드웨어





2) XEN

Xen은 오픈소스 type-1(bare metal) 하이퍼바이저이다.

 

 

 

 

하이퍼바이저는 type-1type-2로 구분된다.

 

 

 

 

다음 그림과 같이 type-1의 경우는 하드웨어 위에 바로 하이퍼 바이저가 있는 방식이다.

 

 

 

 

다른 이름으로 베어메탈(bare metal) 방식이라 한다.

 

 

 

 

type-2는 하드웨어 위에 OS가 있고 OS위에 하이퍼바이저 순으로 배열되며 이를 호스티드(hosted) 타입이라고 한다.

 

 

 

 

이러한 분류에 의한다면 Xentype-1으로 볼 수 있다.

 

79900661b465dca46740a74888d378eb_1679362881_7441.png
 

 

Xen은 각기 다른 많은 운영체제를 하나의 컴퓨터에 병렬로 실행시키는 가상화이다.

 

 

 

 

Xen은 서버가상화, Iaas(Infrastructure as a Service), 데스크탑 가상화등 다양한 곳에 사용되고 있다.

 

 

 

 

 

 

Xen은 다음과 같은 특징을 가진다.

 

 

 

 

가벼운 용량과 인터페이스

 

 

Xen은 마이크로커널 디자인과 작은 메모리 사용량, 제한적인 인터페이스를 사용하기 때문에 다른 하이퍼바이저보다 더 강력하고 안전하다.

 

 

 

 

운영체제에 독립적

 

 

대부분은 메인 컨트롤 스택(일명 "Domain 0“)은 리눅스에 설치되어 실행된다.

 

 

 

 

리눅스 대신에 NetBSD, 오픈 솔라리스를 사용할 수 도 있다.

 

 

 

 

드라이버 격리(isolation)

 

 

Xen은 가상머신 내에서 실행하는 주장치 드라이버를 허용하는 기능이 있다.

 

 

 

 

 

드라이버가 충돌하거나 손상된 경우, 드라이버를 포함하는 가상머신을 재부팅하고 드라이버가 시스템의 나머지 부분에 영향을 주지 않고 다시 시작할 수 있다.

 

 

 

 

반가상화(Paravirtualization)

 

 

 

Xen은 전가상화, 반가상화 모두 지원하며, 완전하게 반가상화된 게스트는 가상머신으로 실행하도록 최적화 되어 있다.

 

 

 

 

이 게스트는 하드웨어 확장(HVM) 보다 훨씬 빠르게 실행할 수 있다.

 

 

 

 

또한, Xen은 하드웨어 가상화 확장을 지원하지 않는 하드웨어 환경에서도 실행할 수 있다.

 

 

Xen 구조다음 그림은 Xen 위키에서 가져온 Xen 아키텍처 다이어그램이다.

 

 

 

 

Xen 하이퍼바이저는 하드웨어에서 직접 실행하고 CPU, 메모리, 인터럽트를 처리하는 역할을 한다.

 

 

 

 

이 하이퍼 바이저는 운영체제의 부트로더가 종료된 후 실행되는 첫 번째 프로그램이다.

 

 

 

 

Xen의 상단에 많은 가상머신들이 실행된다.

 

 

 

 

실행되는 가상머신 인스턴스를 Xen에서는 도메인 또는 게스트라고 부른다.

 

 

 

 

도메인 0은 가상 머신 생성, 삭제 및 구성을 관리할 수 있는 컨트롤 스택을 포함고하고 있으며 시스템의 모든 장치에 대한 드라이버가 포함되어 있는 특별한 도메인이다.

 

 

 

 

79900661b465dca46740a74888d378eb_1679362915_1339.png
 

[그림출처 : http://wiki.xen.org/wiki/Xen_Overview]

 

 

 

상세 구성 요소

 

 

Xen Hypervisor는 하드웨어 위에서 직접 실행되면서 CPU, 메모리, 인터럽트를 관리하는 역할을 하는 매우 가벼운(소스코드가 150,000라인 이하) 소프트웨어 계층이다.

 

 

 

 

하이퍼바이저는 운영체제의 부트로더가 종료된 후 실행되는 첫 번째 프로그램이다.

 

 

 

 

Xen 하이퍼바이저는 네트워킹 및 스토리지와 같은 I/O기능에 대해 관여하지 않는다.

 

 

 

 

게스트 도메인(가상머신)은 가상화 된 환경에서 자신의 운영 체제 및 응용 프로그램을 실행하는 것이다.

 

 

 

 

Xen은 두 개의 서로 다른 가상화 모드를 지원한다.

 

 

 

 

반 가상화(PV) 및 전가상화(HVM)가 그것이다.

 

 

 

 

두 개의 서로 다른 게스트 타입은 하나의 Xen 시스템에서 동시에 사용할 수 있다.

 

 

 

 

전가상화 게스트에서 반가상화 기술을 사용하는 것도 가능하다.

 

 

 

 

기본적으로 PVHVM 사이의 연속성을 만든다.

 

 

 

 

이것을 HVMPV라고 한다.

 

 

 

 

Xen 게스트는 하드웨어와 완전히 격리된다.

 

 

 

 

, 게스트는 하드웨어 또는 I/O기능을 액세스할 권한이 없다.

 

 

 

 

이것을 권한이 없는 도메인(DomU)라고 한다.

 

 

 

 

컨트롤 도메인(Domain 0)은 하드웨어를 직접 액세스할 수 있고, 시스템의 I/O 기능에 대한 모든 액세스를 처리하며 다른 가상 머신과 상호 작용을 하는 특별한 가상 머신이다.

 

 

 

 

또한 시스템이 제어되는 컨트롤 인터페이스를 외부에 제공한다.

 

 

 

 

Xen 하이퍼바이저는 Domain 0 없이는 사용할 수 없고 이는 시스템에 의해 시작되는 최초의 VM이다.

 

 

 

 

Toolstack과 콘솔 : Domain 0에는 사용자가 가상머신 생성, 삭제 및 구성을 관리 할 수 있는 컨트롤 스택(Toolstack)이 포함 되어 있다.

 

 

 

 

Toolstack은 명령행콘솔, 그래픽인터페이스, 오픈스택(OpenStack) 또는 클라우드스택(CloudStack) 같은 오케스트레이션(orchestration)을 위한 인터페이스를 제공한다.

 

 

 

 

Xen이 활성화된 운영체제 : Xen Domain0Xen이 활성화된 커널을 요구한다.

 

 

 

 

반가상화 게스트는 PV 활성화된 커널이 필요하다.

 

 

 

 

Xen을 포함하고 있는 리눅스 배포판은 Xen을 활성화한 커널, Xen 하이퍼바이저 및 도구를 포함한다.

 

 

 

 

 

 

게스트 종류

 

 

Xen 반가상화(PV)

반가상화는 Xen에 의해 소개된 효율적이고 가벼운 가상화 기술이다.

 

 

 

 

이 기술은 다른 가상화 플렛폼에도 채택이 되었다.

 

 

 

 

PV는 호스트 CPU에서 가상화 확장 기능을 필요로 하지 않는다.

 

 

 

 

그러나 반가상화 게스트는 Xen-PV 활성화 커널과 PV 드라이버가 필요하다.

 

 

 

 

그래서 게스트는 하이퍼바이저와 에뮬레이터 또는 가상 에뮬레이트된 하드웨어 없이도 효율적으로 실행될 수 있다.

 

 

 

 

Xen-PV활성화 커널은 리눅스, NetBSD, FreeBSDOpenSolaris에 존재한다.

 

 

 

 

리눅스 커널은 Xen-PV는 리눅스 pvops 프레임 워크를 사용하여 2.6.24부터 활성화 된다.

 

 

 

 

실제로 PV는 대부분의 리눅스 배포판과 함께 작동된다.

 

 

 

 

Xen 전가상화(Full Virtualization : HVM)

전가상화는 호스트 컴퓨터의 CPU 가상화 확장 기능을 사용한다.

 

 

 

 

HVMIntel VT 또는 AMD-V 확장기능을 요구하고 컴퓨터의 BIOS에서 가상화 확장기능이 활성화 되어 있어야 한다.

 

 

 

 

Xen은 게스트의 BIOS, IDE 디스크컨트롤러, VGA 그래픽 어답터, USB 컨트롤러, 네트워크 어답터등 PC 하드웨어를 에뮬레이트 하기 위해 QEMU를 사용한다.

 

 

 

 

가상화 하드웨어 확장은 에뮬레이션의 성능을 향상하는 데 사용된다.

 

 

 

 

완전가상화 게스트는 커널 지원이 필요하지 않다.

 

 

 

 

이것은 MS Windows 운영체제가 Xen HVM 게스트를 사용할 수 있다는 것이다.

 

 

 

 

완전 가상화 게스트는 일반적으로 에뮬레이션을 요구하기 때문에 반가상화 게스트에 비해 느리다.

 

 

 

 

전가상화에 반가상화

 

성능 향상을 위해 전 가상화된 HVM 게스트는 특별한 반 가상화 디바이스 드라이버들을 사용할 수 있다.

 

 

 

 

이 드라이버들은 전가상화 환경과 에뮬레이션을 우회하는 디스크 및 네트워크 IO에 최적화된 반가상화 드라이버들이다.

 

 

 

 

따라서 HVM에서 PV와 비슷하거나 더 좋은 성능을 사용할 수 있다.

 

 

 

 

이는 Windows 같은 게스트 OS에서 최상의 성능을 가질 수 있다는 것이다.

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,031 명
  • 현재 강좌수 :  35,772 개
  • 현재 접속자 :  158 명