-
가상화 기술의 유형개발/가상화 2016. 9. 6. 19:24
가상화 기술은 어떤 방식으로 구현하느냐에 따라 크게 Type 1& Type 2로 나뉜다. 직관적으로 이해하기 위해 먼저 그림으로 표현하면 다음과 같다.
위 두 그림의 가장 큰 차이점은 Hypervisor(가상머신)의 존재 형태이다, Type1에서는 Hypervisor가 하드웨어를 관리하는 운영체제의 일종으로 보이고, Type2에서는 Host OS의 application과 동등한 형태를 띄는 것으로 보인다.
가상화 기술은 "Hypervisor를 어떠한 형태로 개발할 것이냐"에 따라 두가지로 나눌 수 있다.
- Type1 : Hypervisor를 OS의 형태로 개발한다.
- Type2 : Hypervisor를 Application의 형태로 개발한다.
아마 대부분의 사람들에게 익숙한 형태는 Type2일 것이다. 가장 많이 알려진 VMware나 VirtualBox가 위와 같은 방식으로 구현된다. Type1은 서버 가상화를 경험해본 사람이나 혹은 임베디드에 깊게 빠져본 사람이 아니라면 거의 대부분의 사람들 경험해보지 못했을 것이다.
그럼 이제 근원적인 물음을 던질 때가 되었다. 왜 Type1의 형태로 개발하는가? Type1과 Type2는 각각이 무슨 장점이 있는가?
짧게만 설명하자면 Type1은 가상화로 실행되는 GuestOS의 하드웨어 접근성을 높일 수 있다는 장점이 있고 Type2에서는 이미 만들어진 OS의 변경 없이 구현이 가능하다는 장점이 있다.
(하지만 각각의 구현 방식과 세부적인 장점을 설명하기엔 위 포스팅만으로는 짧은것 같아 다음 포스팅에 남긴다.)
위는 Hypervisor의 구현 형태에 따른 분류 방식이고, Guest OS와 하드웨어사이의 관계에 따라 전가상화와 반가상화로 나눌 수 있다.
- 전가상화(Full Virtualization): Guest OS가 스스로가 Guest OS인 것을 알지 모르는 상태. 즉 자신이 Hardware에 대한 통제권을 쥐고 있다고 인식하는 상태이다. Guest OS가 생각하는 Hardware는 Hypervisor에서 에뮬레이션 해준 형태이며, 이때는 Guest OS에 대한 특별한 수정이 없어도 구현이 가능하다. Type2로 개발 할 때 위와 같이 구현 한다.
- 반가상화(Para-Virtualization): Guest OS가 자신이 Guest OS로 구현된 것을 아는 상태. 즉 Guest OS를 수정해 Hardware에 접근하는 부분들을 Hypervisor에서 제공하는 API의 형태로 수정한 형태이다. Type1에서 위와 같은 방식으로 구현한다. Guest OS의 소스코드를 알지 못하면 구현하기 어렵다.
하드웨어 접근에 대한 방식이기 때문에 어떤 방식을 채택하느냐에 따라 Guest OS의 성능이 다르다. 세부적인 내용은 Type1, Type2를 설명하는 포스팅에 추가하도록 하겠다.
'개발 > 가상화' 카테고리의 다른 글
2. Xen 기본 구조/Hypercall (0) 2016.11.05 1. Xen Project 소개 (0) 2016.11.05 가상화기술 Type1 (0) 2016.09.11 가상화기술 Type2 (1) 2016.09.11 가상화 기술이란? (2) 2016.07.31