Application 가상화보다는 주로 Desktop 가상화에 초점이 맞춰저 있는것 같다는 느낌을 받는다. UC환경을 위한 서버 및 스토리지 가상화에 대한 기술을 주로 언급하고 있고, 이에 맞추어 블로그 포스팅을 해야 할것 같다는 느낌을 받는다.

 

이제 첫번째 시간으로 Windows Virtulization Architecture 부분에 대한 내용을 다루어 보겠다.

 

[Windows Virtualization Architecture]

 

image

 

이전 방식은 Paravirtulization, 즉 Guest OS와 Hypervisor(Virtulization Layer) 사이에 성능 및 효율성을 향상하기 위해서 별도로 통신할 수 있는 채널이 필요하게 되었다. 즉, Hypervisor내에 Hypercall을 내장하여, 메모리 관리, 인터럽트 핸들링등과 같은 OS/Kernel 동작을 제공한다 Paravirtulization 기술은 Guest OS를 최적화 해야 하는 단점이 있다.

 

이러한 맹점을 해결하기 위해서 H/W업체들은 가상화 OS 프로세스에서 Privilege 명령어 처리를 가능하게 해주는 CPU, 즉 Intel VT, AMD-V와 Direct로 통신할 수 있는 기능을 구현하게 되었다. binary  Translation이라고 하는 가상화 기술이며, Virtulization Layer가 OS에서 지원하는 것이 아닌 H/W에서 지원하는 구조로 되어 있기 때문에 Virtual Machine이 어느정도 Isolation으로 동작할 수 있는 모델을 제시하게 되었다. Windows 2008에서 제공하는 기술도 바로 이와 같은 형태의 Hypervisor의 형태로 서비스를 제공하게 된다.

 

여기까지 간단하게 Virtulization에 대해 알아보았다. 그럼 과연 어떠한 방식으로 Virtulization 방식으로 서로간의 통신을 시도하는 것일까?

 

image

 

Physical Device인 Disk를 예를 들면 Core영역에서 VSP라는 Virtual Storage Provider라는 가상화된 Module에서 처리를 받는다. VSP는 서버 Component로서 I/O 요청에 대한 처리를 담당하는 부분이다. 이는 Virtual Machine간에 정보교환을 담당하는 VMBus를 통해 입출력 요청을 처리하게 되는데 Guest OS가 실행되며, Application이 실제 동작하는 Child Partitiondml VSC에서 정보를 전달하게 된다 VSC는 Virtulization Service Consumer로서 Server Component가 아닌 Client Component로서 User Mode에서 받은 요청사항을 바로 VSP에 전달하게 되는 역활을 한다.

[참고] Hypervisor에 대한 Architecture

image

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by hotpoto

티스토리 툴바