-II. 소프트웨어 기반 가상화 모델과 그 한계-

비로소 지난 90년대에 들어 VM웨어를 필두로하는 SW 기업들이 가상화 기술을 x86 서버 환경에 도입하기 시작했다.

이들은 가상화 머신 모니터(virtual machine monitor, VMM) 소프트웨어 솔루션을 적용해 PC 서버 플랫폼에서도 가상화가 가능하게 해냈다.

하이퍼바이저라고도 불리는 VMM은 미들웨어로 물리적 서버와 OS를 연계해 두 개 이상의 OS와 애플리케이션이 하드웨어를 공유할 수 있게한다.

 

그림2. VMM은 물리적 서버와 OS 및 애플리케이션을 연계하는 미들웨어다. 물론 가상화 머신(VM)은 이 애플리케이션 중 하나. VMM은 각 OS에게 하드웨어 인터페이스를 부여하고 또 각각의 OS가 물리적 서버를 혼자 컨트롤하고 있다고 ‘착각’하게하는 역할을 한다. VMM은 또 물리적 서버의 모든 기능을 수행한다.

이러한 ‘소프트웨어 기반(software-only) 완전 가상화’ 모델에서 VMM은 주요 플랫폼 자원 제어를 계속하는 한편 각각의 게스트 OS는 제어하지 않는 방식으로 충돌을 피한다. 그러나 이 방식은 게스트 OS의 바이너리 코드를 변환하는 복잡한 과정을 수반하는 단점이 있다.

가상화 성능을 높이는 일반적인 기술은 ‘상(常)가상화(paravirtualization)’로, 게스트 OS를 소스 레벨에서 조정(modification)해 가상화하기 더 용이한 인터페이스를 만드는 방법이다.

그러나 이러한 게스트 OS 조정 역시 시간이 오래 걸린다는 단점이 있다. 소프트웨어 개발자, 통합부서, IT 관리자 모두가 시스템을 최적화하는데 달라붙어야하기 때문이다. 더구나 VMM은 조정 과정을 거치지 않은 레거시나 지적재산권 문제가 관련된 게스트 OS는 호스트하지 못한다.

인텔은 가상화 기술을 개발하면서 CPU 상가상화 및 바이너리 코드 변환 과정을 아예 없애 버리는 중점을 뒀다. 이렇게 하면 VMM으로 다양한 종류의, 조정되지 않은 게스트 OS를 컨트롤하는 과정이 단순해지고 동시에 가상화 성능도 높아진다. 결국, 소프트웨어 개발에 들어가는 수고를 덜자는 것이다.

노벨은 SUSE 리눅스 엔터프라이즈 서버 10의 코드에 젠 오픈소스 VMM을 넣어 인텔의 제온(Xeon) 플랫폼에서 상가상화됐거나 조정되지 않은 OS를 지원하게 했다.


 

한편 가상화 플랫폼 환경에서는 하나 혹은 둘 이상의 게스트 OS가 VMM 소프트웨어 위에서 운용된다.

마이크로프로세서 역사상 가장 성공적인 것으로 평가되는 아키텍쳐 중 하나인 인텔의 IA-32(32-bit extension of the original Intel x86 processor Architecture)는 통상적인 인스트럭션 셋 아키텍쳐(ISA) 기반이며 4개의 특별 수준(privilege level)을 규정한다. 이 특별 수준은 보통 링(ring)이라 불리며(Ring-0, Ring-1, Ring-2, Ring-3) 이 링 위에서 OS와 애플리케이션이 운용된다.

OS는 보통 Ring-0에서 운용되는데 Ring-0은 가장 넓은 범위에서 프로세서와 플랫폼 자원에 접근할 수 있는 ‘특별’ 권한을 부여한다. 각각의 애플리케이션은 보통 Ring-3에서 돌아가며 다른 애플리케이션 작동을 손상할 수 있는 메모리 매핑 등의 주요 기능은 제한된다.

가상화 환경에서는 VMM이 플랫폼 자원을 특별 관리해야하기 때문에 VMM은 Ring-0에서 운용돼야 하며 상대적으로 권한이 제한되는 게스트 OS들은 Ring-1이나 3에서 돌아간다.

그러나 IA-32에서 보았듯 현대의 OS들은 Ring-0에서 운용될 수 있게 설계되기 때문에 VMM과 충돌할 가능성이 크다.

인텔은 따라서 이러한 문제를 관리하는 하드웨어 가상화 기술을 개발했다. 즉, VMX 루트(root)라 불리는 새로운 특별 수준을 첨가해 이 위에서 VMM이 돌아가게 한 것이다. 인텔 가상화 기술의 핵심은 게스트 OS가 조정되지 않은 채로 Ring-0에서 운용되면서도 하드웨어 자원을 공유하게하는 것이다. 따라서 인텔에 의하면 링 제한으로 인해 OS와 VMM이 제어 권한을 두고 충돌할 일은 없다. (계속)


그림3. 소프트웨어 기반(software-only) 구성을 설명하는 좌측 그림에서 게스트 OS들은 특권이 없으며 Ring-1에서만 운용된다. OS는 Ring-0에서만 돌아가도록 설계됐으며 따라서 반드시 조정되거나(modified) 바이너리 코드 변환해야만 한다.

대조적으로 표준 4-링 구조에 한 단계 높은 특별 수준을 부여한 VMX 루트를 집어 넣고, 이 위에 VMM을 심어 놓은 인텔 가상화 기술(IVT)이 우측에 묘사돼 있다. 따라서 게스트 OS는 조정과정을 거치지 않고도 Ring-0에서 운용될 수 있으며 전과 같이 하단의 하드웨어를 공유한다.

 

저작권자 © 데일리그리드 무단전재 및 재배포 금지