Compartilhar via


Hypervisor 속으로 - Windows Server virtualization의 핵심...

clip_image002

Hypervisor 방식의 가상화는 더 이상 호스트 OS와 게스트 OS라는 명칭을 사용하지 않습니다. 호스트 OS나 게스트 VM내 설치된 OS가 같은 레벨로 하드웨어를 사용할 수 있게 되었고, VM간 또는VM과 기본 OS간을 모두 “파티션(Partition)"이라고 부릅니다. 명명의 차이를 위해서라면 Parent OS, Child OS라고 부르면 되겠죠. Hybrid 방식에서 야기되었던 에뮬레이션의 성능상 이슈는 말끔히 해소된 방식의 가상화 구조인 Hypervisor 방식의 가상화에는 두가지 방식이 기술적으로 사용되고 있는데, 한가지는 Monolithic Hypervisor이며, 다른 하나는 Microkernelized Hypervisor입니다.

Monolithic Hypervisor
Monolithic 모델의 특징은 Hypervisor에서 하위에 존재하는 하드웨어에 대한 드라이버를 가지고 있고, 이를 통해 하드웨어를 제공합니다. VM에서 동작하는 모든 게스트 OS는 Hypervisor와 그 내부의 드라이버 모델을 이용하여 하드웨어를 접근하게 됩니다. 일반적으로 게스트 OS중 하나에서 관리자를 위한 관리 도구와, 가상 머신의 생성 및 관리, 모니터링을 위한 기능을 제공합니다.

clip_image004

이러한 방식은 성능적으로는 뛰어나지만, 보안 및 안정성적인 측면에서는 문제점의 가능성을 가지고 있습니다. 안정성적인 측면에서 매우 중요한 Hypervisor 레벨에 많은 양의 코드가 들어가게 되며, 무엇보다도 장치 드라이버에 대한 처리가 필요합니다. 이러한 드라이버에 대한 코드는 개별 하드웨어 벤더에서 제작해줘야 하며, 이는 드라이버에 대한 문제 발생 가능성을 내포하고 있다는 의미겠죠.

예를 들어볼까요? 악성 코드가 시스템에 다운로드되어, Hypervisor내 장치 드라이버로서, 특정 드라이버를 설치해놓는다고 생각해보죠. 이 경우, 시스템에서 동작하는 모든 게스트 OS는 이러한 영향을 받게 됩니다. 또한 Hypervisor 레벨이 두꺼워질수록, 코드의 버그나 보안상의 이슈로 보안 패치가 나올 확률은 높아지게 되고, 이러한 패치로 인해 시스템을 다시 시작해야 한다면, 서비스하고 있는 모든 VM이 종료되므로, 서비스적인 측면에서도 좋지 않은 영향을 끼칠 수 있습니다.

Microkernelized Hypervisor
Monolithic 방식과 대조적인 방식이 바로 Microkernelized 방식입니다.

clip_image006

매우 얇은 Hypervisor 레벨을 제공하며, 하드웨어에 대한 드라이버도 가지고 있지 않습니다. 대신 각각의 파티션에서 하드웨어에 대한 드라이버를 가지게 되고, 개별 VM에서 요구하는 하드웨어에 대한 요구는 당연히 Hypervisor를 통해 처리됩니다. 이러한 방식은 VM간 철저히 고립되며, 뛰어난 보안과 안정성을 자랑합니다. 또한 Hypervisor 레벨에 드라이버가 있지 않으므로, 가상화 기술을 제공하는 하드웨어에 대한 검증적인 이슈가 생기지 않습니다.

Microsoft의 Windows Server 2008의 가상화의 기술은 바로 “Microkernelized Hypervisor” 방식입니다. 이를 Windows Server virtualization(WSv)라고 부르고 있고, 기본적으로 설치되는 Parent OS의 Windows Server 2008과 WSv 구성요소도 다른 VM과 같은 하나의 파티션으로 처리되게 되므로, 모든 하드웨어에 대한 접근 및 사용은 Hypervisor 레벨을 이용하게 됩니다.

clip_image008

Comments

  • Anonymous
    September 27, 2007
    장치 하드웨어에가 VPC처럼 에뮬레이션되는게 아니라 실제 하드웨어가 하이퍼바이저에 의해 차일드 OS로 노출되는 건가요? 어떤 형태가 될 지 모르지만 WSv가 차기 윈도우즈에서 구현될(것으로 알고 있는..) sandboxing의 근간이 될지 관심이 갑니다. 좋은 글 감사합니다.

  • Anonymous
    September 27, 2007
    안녕하세요! 실제 하드웨어가 차일드 OS로 노출된다... 의미적으로는 그럴 수 있습니다. 정확하게는 http://blogs.technet.com/koalra/archive/2007/03/16/it-s-time-to-excite.aspx를 읽어보시면 아시겠지만.. 실제 하드웨어에 대한 드라이버는 Parent OS에서 제공하며.. 해당 드라이버에 VSP가 붙게되고.. 이 VSP는 쉽게는 멀티플렉서(스위치)와 같은 역할을 하게 됩니다. 가상 머신인 Child OS에는 VSC가 하드웨어 드라이버로 설치되게 됩니다. 만약 클라이언트가 특정 하드웨어에 대한 호출을 하게 되면.. 이를 VSC로 보내게되고, 이 VSC로 간 신호가 VMBUS를 통해 실제 하드웨어 드라이버에 있는 VSP로.. VSP가 하드웨어 드라이버를 통해 Hypervisor를 통과하여 하드웨어로 신호를 넘겨주게 됩니다. 결국 Parent OS나 Child OS가 하드웨어를 같이 공유해서 사용하는 모델이 되는 것이고요. VSP,VSC가 한 페어.. 이 둘사이에 연결은 VMBUS.. Hypervisor는 VSP에서 요청한 신호를 Hardware로 공정하게 전달해주는 역할을 하게 됩니다. 언제 한번 포스팅하도록 하겠습니다. 감사합니다.

  • Anonymous
    September 27, 2007
    그러니까 Xen에서 이야기하고 있는 방식이 윈도우에서 이제 기본으로 지원이 된다는 말씀이죠?

  • Anonymous
    September 27, 2007
    XEN, VMWARE 등 대부분의 가상화 서비스들은 Hypervisor 기반의 가상화를 제공하고 있습니다. 여러 가상화 패러다임중 현재로는 Hypervisor 기반이 가장 탁월하다고 업계에선 생각한다는 의미로 보시면 될 듯 합니다.

  • Anonymous
    September 28, 2007
    감사합니다. 제가 궁금했던 점은 Xen은 paravirtualization이라고 Xen이 먼저 올라가고 그 위에 Xen을 위해 직접 수정된 운영체제가 올라가는 형식입니다. 그래서 가장 오버헤드가 적고 우수한 성능을 보이죠. 윈도우는 공개 소스가 아니라서 직접적으로 지원되지는 않지만 CPU에서 지원하는 가상화 기능으로 돌아는 갈 수 있습니다. 반면, VMware는 아시다시피 Full virtualization으로서 전혀 손대지 않은 운영체에 위에서 VMware 프로그램이 돌고 그 안에서 여러 가상 머신을 만들 수가 있죠. 지금 올려주신 그림을 보면 Xen과 동일한 형식입니다. 그렇다면 이제 윈도우 운영체제 자체가 가상화를 직접 지원한다는 뜻으로 받아들여도 되는지요? 더 나아가 그렇다면 VMware도 이제 필요없다는 이야기인가요? 이 점이 궁금한데 어떻게 가능하시다면 알려주시면 고맙겠습니다. 늘 좋은 정보 잘 보고 있습니다.

  • Anonymous
    September 29, 2007
    Windows에서도 타 벤더처럼 가상화 모듈을 제공한다는 의미입니다. 당연히 Virtual Server나 VMWARE와 같은 가상화 모듈을 Windows Server 2008에서 제공한다는 거죠.. 추가적인 솔루션 도입없이 Hypervisor 기반의 가상화를 이용할 수 있습니다.

  • Anonymous
    February 28, 2008
    2008년 2월 14일 ZDNET의 한 블로그에 Review: Microsoft’s Hyper-V puts VMWare and Linux on notice 라는 제목의 글이 포스팅되었습니다.

  • Anonymous
    May 15, 2008
    오랜만에 기술적인 이야기를 한번 포스팅해볼까 합니다. :) 가상화에 대한 이야기를 나누다보면, 여러 용어들에 접하게 되는데요. 그중 많이 이야기가 나오는 것이 바로 Hypervisor의