[클라우드] 가상화의 종류(호스트OS , 하이퍼바이저-가상화와 반가상화 , 컨테이너)
IT/클라우드

[클라우드] 가상화의 종류(호스트OS , 하이퍼바이저-가상화와 반가상화 , 컨테이너)

728x90
반응형

가상화의 종류

1) 호스트 OS 가상화

2) 하이퍼바이저 가상화

   2-1) 전가상화(Full-Virtualization)

   2-2) 반가상화(Para-Virtualization)

3) 컨테이너 가상화

 

 

1) 호스트 OS 가상화

 호스트OS형은 물리적 하드웨어위에 OS를 설치해, 그 위에 가상화 소프트웨어와 가상머신을 움직이는 방식이다.

  즉, 물리 머신위에 직접동작하는 OS를 “Host OS”라한다.(일반 PC) 또한, 이 Host OS위에서 동작하는 가상화 머신에 설치된 O/S를 “Guest OS”라 부른다.

 

- 장점 : 가상의 하드웨어를 에뮬레이팅하기 때문에 호스트 운영체제에 크게 제약사항이 없음

- 단점 : OS위에 OS가 얹히는 방식이기 때문에 오버헤드가 클 수 있음

 

  호스트OS가상화에 대한 소프트웨어는 이하와 같다.

  •   VMware Workstation
  •   Microsoft Virtual PC
  •   VirtualBox

 

 

2) 하이퍼바이저 가상화

하이퍼바이저형은 Host OS없이 하드웨어에 하이퍼바이저를 설치하여 사용하는 가상화방식이다.

  하이퍼바이저라는 소프트웨어를 물리 하드웨어위에 직접움직여, 하이퍼바이져 위에 개개의 가상머신을 움직이게한다.

  하이퍼바이저형의 특징은, 가상머신이 마치 독립한 호스트시스템과 같이 행동한다는 점 이다.

  이는, 복수의 가상화머신이 서로 간섭하지 않도록 하는 것 이 하이퍼바이저형의 역할이다.

  하이퍼바이저형은 호스트 OS와 별도로 개별 시스템처럼 행동하기때문에, 처리 오버헤드가 존재하지 않는다,

그로 인해 Host OS형 보다 더 퍼포먼스가 좋다는 메리트가 있다.

  현재 서버 가상화 기술에서는 주류 방식으로 사용되고있다.

 

- 장점 : 별도의 Host OS가 없기 때문에 오버헤드가 적고, 하드웨어를 직접 제어하기 때문에 효율적으로 리소스를 사용할 수 있음

- 단점 : 자체적으로 머신에 대한 관리 기능이 없기 때문에 관리를 위한 컴퓨터나 콘솔(CLI)이 필요함

 

  하이버파이저형의 가상화소프트웨어는 이하와 같다.

  • VMware ESX Server (전가상화)
  • MS Hyper-v (전가상화)
  • Citrix XenServer (반가상화)

 

  2-1) 전가상화(Full-Virtualization)

 

전가상화는 하드웨어를 완전히 가상화 하는 방식으로 Hardware Virtual Machine 이라고도 불린다.

게스트OS(가상화된OS) HW에 접근하면서 제어를 요구한다. 이 때 CPU는 가상화가 지원가능한지 아닌지를 확인하는데, 지원을 하지 않으면 게스트OS는 아예 운영할 수 없다. 지원 가능하면 HW제어를 요구하고, 이후 HW를 제어할 수 있게 된다. 하이퍼바이저를 구동하면 DOM0이라는 관리용 가상머신이 구동되는데, 모든 가상머신의 하드웨어 접근이 이 DOM0으로 이루어진다.

, 게스트OS가 각각의 언어로 요청하는 모든 명령들을 하이퍼바이저가 번역하여 하드웨어에게 전달한다. (DOM0이 개입한다.)

하이퍼바이저는 이러한 번역 역할 뿐 아니라 게스트OS(가상화된 OS)에게 자원을 할당하는 역할도 담당한다.

 

 

  • 장점 : 하드웨어를 완전히 가상화하기 때문에 Guest OS 운영체제의 별다른 수정이 필요 없음
  • 단점 : 하이퍼바이저가 모든 명령을 중재하기 때문에 성능이 비교적 느림(하이퍼바이저는 중재이외의 다른 문제들도 처리해야함)

  2-2) 반가상화(Para-Virtualization)

반가상화는 전가상화와 달리 하드웨어를 완전히 가상화 하지 않는다.

전가상화의 단점인 성능저하의 문제를 해결하기 위해 하이퍼콜(Hyper Call)이라는 인터페이스를 통해 하이퍼바이저에게 직접 요청을 날릴 수 있다.

 

반가상화는 게스트OS와 하드웨어 사이의 번역 역할을 하지 않고, 단지 게스트OS들에게 자원을 어떻게 분배할지 같은 관리적 문제만 다룬다. 그러면 기존에 하이퍼바이저가 하던 번역 일은 게스트OS 자체에서 해서 하드웨어로 보내야 하는 일이 된다.

그래서 게스트OS의 커널을 수정하여(=코드를 까서 수정을 하여) 이러한 역할이 가능하도록 만들어야 한다. 리눅스는 오픈소스라서 소스를 수정할 수 있다. 윈도우는 원래는 불가능했지만 Xen에서 제공하는 툴로 전부 다 가능해졌다.

그렇기 때문에 반가상화는 게스트OS를 수정해야 하며, 이것이 반가상화와 전가상화의 차이이다.

ex) Xen, KVM

 

 

  • 장점 : 모든 명령을 DOM0를 통해 하이퍼바이저에게 요청하는 전가상화에비해 성능이 빠름
  • 단점 : 하이퍼바이저에게 Hyper Call 요청을 할 수 있도록 각 OS의 커널을 수정해야함.

 

3) 컨테이너 가상화

호스트 OS위에 컨테이너관리 소프트웨어를 설치하여, 논리적으로 컨테이너를 나누어 사용한다.

컨테이너형의 컨테이너에는 게스트OS나 가상하드웨어를 포함하지 않고 어플리케이션 동작을 위한 라이브러리와 어플리케이션등으로 구성되기 때문에 이를 각각 개별 서버처럼 사용가능하다.

컨테이너형 에서는 일반적으로 가상화소프트웨어를 “컨테이너엔진” 혹은 “컨테이너관리 소프트웨어”라고도 부른다.

  • 장점 : 컨테이너 가상화는 오버헤드가 적어 가볍고 빠른 장점이 있음

  컨테이너형의 가상화소프트웨어는 이하와 같다.

  • OpenVZ
  • LXC
  • Linux VServer
  • Docker
  • Oracle Solaris Zones

[정리]

- 호스트OS형은 일반PC에서  VMWare WorkStation을 설치하여 게스트OS를 설치하는 가상화 방식이며 실제 PC의 리소스를 공유하는 방식이다.

 

- 하이퍼바이저형은 기존 OS위에 윈도우나 리눅스를 설치하는 방식이아닌 그냥 하드웨어에서 가상화를 위한 OS(VMWare ESXi와 같은 소프트웨어)를 설치후 속에 윈도우, 리눅스 등의 OS를 설치하는 가상화방식이다.

  그렇기 때문에, 하이퍼바이저 가상화의 경우 전용 소프트웨어를 이용하여 기존 OS의 리소스 경유하지않기에 처리오버헤드가 발생하지 않게 된다.

 

 - 컨테이너형의 경우는 OS가상화가 아닌 소프트웨어를 가상화하는것에 목적을 둔다.  컨테이너에는 어플리케이션으로만 구성되어있다. ( 컨테이너로 아파치,엔진엑스등을  띄울 수 있다. 개발에 용이  )

  OS를 설치하지 않기때문에 OS를 움직이는데 필요한 리소스를 사용하지않아 가상화 소프트웨어를 저 지연 고 퍼포먼스 이용이 가능하다.

 

728x90
728x90