본문 바로가기
  • AI (Artificial Intelligence)
Fundamental/Technical

하이퍼바이저 - Hypervisor

by 로샤스 2014. 3. 11.

Hypervisor




1. 정의

 

Virtual Machine Manager(VMM)이라고도 불리며 하드웨어 가상화(Hardware Virtualization) 기술 중 하나로 여러 개의 OS들이 

     한 개의 호스트 머신(Host Computer)위에서 돌게 해 준다.

 Hypervisor의 예

   

 

 

 

2. 하드웨어 가상화의 장점(advantages of platform virtualization)


A. machine consolidation

  U.S. EPA 연구에 의하면 서버 용량의 약 5%만 실제로 사용된다고 한다.  단일 서버에서 여러 플랫폼을 가상화하면 서버 활용도를 

      높일 수 있고 활용도가 높아지므로 서버 수가 줄어든다.

 

B. reduce datacenter costs by reducing your physical infrastructure and improving your server to admin ratio

  서버 수가 줄어들면 유지비용 및 전력, 관리비용 절감을 가져온다.  서버당 관리자가 줄어들기 때문에 안정성 또한 향상을 

       가져올 수 있다..

 

☆ 이렇든 저렇든 해도 가장 큰 장접은 비용 절감이다.  조사에 의하면 하드웨어 가상화로 50~70% overall IT costs를 줄인      사례들이 많다.




3. 하드웨어 가상화 기법의 종류(types of hardware virtualization technologies)


A. Guest Operating System Virtualization

  a. steps

    하드웨어 장비(host hardware - 보통 서버)에서 Windows, Linux, Unix 또는 MacOS X와 같이 수정되지 않은 OS(a standard 

         unmodified operating system, 원본 OS 이미지)를 구동한다.

     이 구동된 OS위에서 MS Word나 Excel을 실행시키는 것처럼 가상화 어플(virtualization application)을 실행시킨다.

     가상화 어플위에서 각각의 Guest OS들이 구동된다.

  b. responsibilities of the virtualization application

    실행된 가상화 어플은 각각의 VM들의 시작, 종료, 관리(starting, stopping, managing)를 한다.

    → 실행된 가상화 어플은 각각의 VM들을 대신하여 물리적 하드웨어 자원(physical hardware resources)들에 대한 접근을 제어한다.

     실행된 가상화 어플은 "binary rewriting" 프로세스에 관여한다.

         - binary rewriting : scanning the instruction stream of the executing guest system and replacing any privileged instruction 

                                    with safe emulation.

         - binary rewriting 프로세스는 guest operating system이 마치 가상화 어플 위에서가 아닌 system hardware에서 직접 

           구동되는 것처럼 느끼게 해준다.

  c. an illustration of guest OS based virtualization


  d. known guest OS virtualixation technologies

    VMWare Server, Virtual Box


B. Shared Kernel Virtualization

  a. outline   

    Shared Kernel Virtualization은 Linux, Unix의 architectual design의 이점들을 취했다.  이 가상화 기법을 이해하기 위해서는                   Linux, Unix 두 개의 main components를 먼저 이해하는 것이 도움이 된다.

          ① Kernel : Linux, Unix의 core는 kernel이다.  Kernel은 OS와 physical hardware간의 모든 상호통신 및 관계를 핸들한다.

          ② Root File System : OS가 잘 기능할 수 있도록 libraries, files, utils들을 포함하고 있다.

     Shared Kernel Virtualization에서는 각각의 guest OS들은 자기 자신의 root file system을 가지며 host OS의 kernel을 공유한다.

  b. an illustration of shared kernel virtualization

  

    이런 방식의 가상화는 커널이 시스템 리부팅 없이 동적으로 현재 root file system을 변경할 수 있다는 것(chroot)에 기반한다.

     이런 방식의 가장 큰 단점은 Guest OS가 shared kernel의 버전과 compatible 해야 한다는 것이다.

          단적인 예로 Linux kernel에서 MS Windows Guest OS를 구동할 수 없다.

  c. known shared kernel virtualization technologies

    Linux Vserver, Solaris Zones and Containers, FreeVPS, OpenVZ

 

C. Kernel Level Virtualization

  a. outline

    kernel level virtualization에서는 host OS가 여러 개의 VM들을 제어, 관리하기 위해 설계된 확장 기능들을 가지고 있는 수정 

          kernel(specially modified kernel)위에서 구동한다.

     shared kernel virtualization과 달리 각각의 Guest OS들은 자기 자신의 kernel을 구동한다.  하지만 Guest OS들이 같은

          하드웨어로 compile되어야 한다는 제한이 있다는 것은 shared kernel virtualization과 비슷하다.

  b. an illustration of kernel level virtualization


  c. known kernel level virtualization technologies

    User Mode Linux(UML), Kernel-based Virtual Machine(KVM)

 

 

 

4. 하이퍼바이저 구분(hypervisor classification)


A. Type 1(native, bare metal)

  하드웨어 가상화 기법 중 C Type (Kernel Level Virtualization)

  VM Server for SPARC, the Citrix XenServer, KVM, VMWare ESX/ESXi, MS Hyper-v

 

B. Type 2(hosted)

  하드웨어 가상화 기법 중 A, B Type (Guest OS virtualization - MS Windows, Shared Kernel Virtualization - LInux, Unix)

  BHyVe, VMWare Workstation, Virtual Box

 

C. Illustration





5. 하이퍼바이저 가상화(hypervisor virtualization - hypervisor type 1)

 

A. Rings에 대한 이해 (understanding rings)

  x86 family CPU는 rings라 알려진 코드가 실행될 수 있는 보호레벨(protection level)들의 범위를 제공한다. Ring 0이 가장 높은 레벨          (the highest level privilege)이며 보통 OS system kernel이 ring 0에서 구동된다.

  Ring 0에서 코드가 실행된다 함은 system space, kernel mode, supervisor mode에서 실행된다고 말할 수 있다.

  OS위에서 구동되는 어플들은 일반적으로 ring 3에서 코드가 실행된다.

  Hypervisor는 ring 0에 위치하므로 Guest OS의 kernel들은 더 낮은 ring에서 구동되어야 한다.  하지만 불행하게도 대부분의 OS             system kernel들은 ring 0에서만 가능한 일들(CPU 특수 명령 실행, 직접적으로 메모리를 작동)을 수행하기 위해서 ring 0에서 

      구동되도록 쓰여졌다.  이러한 문제를 해결하기 위한 해결방안이 최근에 고안되었고 아래 B, C에 서술하였다.

 

B. Para-virtualization

 


  Paravirtualization에서는 Guest OS kernel system이 hypervisor 위에서 돌아가도록 수정된다.

       (modified guest operating system)

  Guest OS kernel system은 ring 0에서만 돌아가도록 설계된 동작들을 가지고 있는데 이 동작들을 hypervisor 위에서 돌아가도록 

      수정한다.

  Guest OS kernel system을 수정해야 하는 제한 사항때문에 이 기법은 Linux와 같이 오픈소스 OS에 주로 쓰인다.

 

C. Full virtualization


 

  Full virtualization은 수정하지 않은 Guest OS(Unmodified)들을 지원한다.

  Full virtualization에서는 Guest OS들이 수정되지 않았기 때문에 ring 0에서만 작동하는 동작들을 가지고 있으나 hypervisor에서는           CPU emulsation을 통하여 이런 동작들을 제어하고 보호한다.

  이런 emulation 프로세스가 para-virtualization에 비해 시간과 자원을 소모하므로 상대적으로 느리다.

 

D. para-virtualization vs full virtualization performance comparison

  → http://shortrecipes.blogspot.kr/2009/03/xen-performance-of-full-virtualization.html

 

E. Hypervisor based virtualization solutions : Xen, Vmware ESX Server, MS Hyper-V technology

 

 

 

 

 

 

 

 

Reference

http://www.virtuatopia.com/index.php/An_Overview_of_Virtualization_Techniques

http://www.ibm.com/developerworks/linux/library/l-hypervisor/

 

출처 :  http://chriskr7.blog.me/60203719830

 

 

 

 

 

 

 

 

 

 

'Fundamental > Technical ' 카테고리의 다른 글

In-Line mode  (1) 2014.04.01
가상화의 형태 - 하이퍼바이저[Hypervisor]  (0) 2014.03.11
GIT  (0) 2014.02.17
빌드와 빌드도구  (0) 2014.02.17
용어정리  (1) 2014.02.14

댓글