hypervisorとは

 

コンピュータを仮想化し、複数の異なるOSを並列に実行できるようにするソフトウェア

狭義には、OSに拠らずハードウェア上で直接動作し、実行されるOSがすべて仮想マシン上で動作するような制御プログラムのことを指し、XenVMware ESXHyper-VKVMなどがこれに含まれる

広義には、何らかのOS上でアプリケーションソフトとして動作し、その上で様々なOSを動作させられるようにする仮想化ソフトウェアが含まれる。VMware ServerやVirtual PC、Microsoft Virtual Server、Parallels Desktop、QEMUなどがこれに含まれる

 

Native (bare-metal)

 

Hosted

 

전가상화(Full-Virtualization)

하드웨어를 완전히 가상화하는 방식

하드웨어를 완전히 가상화하기 때문에 게스트 OS에 아무런 수정없이, 또한 Windows에서 Linux까지 다양한 OS를 이용할 수 있는 장점이 있음

물리적인 가상화 지원기능, 즉 CPU의 VT(Virtualization Technology)가필요

이 기능때문에 퍼포먼스의 저하가 발생한다는 단점이 있음.

하드웨어 전제조건중 CPU에 Intel-VTAMD-V의 기능이 필수

VMwareESX Server마이크로소프트Hyper-V등이 전가상화임

20140427190203

게스트OS와 하드웨어 사이에 중재하는 가상머신(VMM)을 사용

이 때문에 특정 명령어들이 하이퍼바이저 내에서 트래픽 및 핸드링 되어야한다.

왜냐면 하드웨어가 OS소유가 아닌 하이퍼바이저에 의해 공유되기 때문이다.

물론 에뮬레이션보다는 빠르지만, 하이퍼바이저 중재때문에 실제H/W의 성능보다 낮음.

 

20140427190221

특히 Xen에서는 각 VM의 리소스 컨트롤을  컨트롤 도메인 –> 하이퍼바이저 로 통신했기에 성능에 특히 많은영향을 끼쳤음. 그래서 Xen은 CPU,RAM을 사용할때  컨트롤 도메인을 거치지 않고 바로 하이퍼바이저만 거친다면 성능향상이 될거라 기대했다. 이러한 아이디어 Xen Paravitualization이다.

반가상화(Para-Virtualization)

전가상화와 달리 하드웨어를 완전히 가상화하지않음

그렇기 때문에 게스트 OS가 직접 하드웨어를 제어하는 것이 아니라, 하이퍼바이저에게 의뢰, 하이퍼바이저가 제어를 하기에 높은 퍼포먼스를 유지

반가상화를 실현하기 위해서는 게스트 OS의 커널의 일부분을 수정해야하는 단점이 있음.

렇기 때문에 이용할 수 있는 게스트 OS는 오픈소스에 한정되어있음.

반가상화는 XEN이 대표적

20140427190308

전가상화와 가장 큰 차이는 게스트OS가 컨트롤도메인(Mgmt)를 거치지 않고 바로 하이퍼바이저와 통신을 하는 것이다. (이떄 쓰는 명령이 hypercall)

이렇게 되서 더빠르게 리소스를 사용하게 된것.

단 모든 리소스를 하이퍼바이저와 통신하는게 아니고  CPU/RAM 의 사용이 빈번한 리소스만  사용됨.

왜 이렇게 부분적으로?? 기본적으로 하이퍼바이저는 컨트롤 도메인과 하드웨어간의 리소스를 전달하는 최소한의 역할만 수행한다.

만약 드라이버,네트워크 리소스도 하이퍼바이저가 직접악세스하게 된다면 하이퍼바이저의 사이즈는 늘어날 것이고 오히려 성능의 역효과가 나타날 수도 있다.

그외에도 반가상화는  게스트OS가 리소스를 구분할 수 있는 능력이 있어야한다.

리눅스경우는 커널이 반가상화를 거의다 제공해주는데 WINDOWS같은경우는 이하와 같은 조건이 있어야한다.

  1. 윈도우는 반가상확를 지원하지 않기에 XenTool을 설치해야한다. 없으면 전가상화로 동작
  2. 반가상화에느 동작하는 하드웨어 칩셋이 필요(intel VT/AMD-V)

 

 

 

 

http://naleejang.tistory.com/63

 

http://e-words.jp/w/E3838FE382A4E38391E383BCE38390E382A4E382B6E383BC.html

http://naleejang.tistory.com/91

 

 

http://blog.secmem.org/308

 

http://naleejang.tistory.com/77

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です