-
가상화기술 Type2개발/가상화 2016. 9. 11. 19:12
가상화 기술 Type2는 가상화 기술을 애플리케이션의 형태로 구현하는 방식이다.
대표적인 예로는 VMware, Virtual Box처럼 윈도우나 리눅스에 설치 할 수 있는 소프트웨어이다.
이러한 형태의 구현 방식은 기존 PC 시장에 쉽게 가상화 기술 소프트웨어를 도입 할 수 있다는 이점이 있다. 또한 Host OS가 제공하는 시스템콜과 하드웨어 제어권을 빌려오는 형태여서 여러가지 요소들을 신경쓰지 않고 구현(실제로는 생각을 많이 써야 하지만 처음부터 다 만들어 가는것은 아니기 때문에)할 수 있다. 애플리케이션 형태이기 때문에 안전성에 문제가 생겨도 Host OS 자체의 안정성은 침해하지 않는다는 장점이 있다.
하지만 위 방식은 느리다. 가상화 소프트웨어가 하드웨어를 직접 통제하는 것이 아니기 때문에 하드웨어에 명령을 전달하거나 받을 때 OS를 한 번은 거쳐야 하는 단점이 있다. 예를들어 가상화 소프트웨어에서 우분투를 실행하고 메모장에 특정 문장을 입력할 때를 생각해보자. Host OS에서 메모장에 글을 입력 할 때는 다음과 같은 플로우일 것이다.
타자 입력 -> Host OS interrupt handler -> 입력된 값을 메모장 process에 전달 -> 메모장에 출력.
하지만 우분투를 가상화 기술에서는 플로우가 추가된다.
타자 입력 -> Host OS interrupt handler -> 입력된 값을 가상화 소프트웨어에 전달 ->
우분투(가상 OS) interrupt handler -> 입력된 값을 메모장 process에 전달 -> 메모장 출력
가상 OS또한 스스로가 OS의 형태로 동작하는 것으로 인식해야하기 때문에 기존 Host OS가 하는 방식과 동일하게 작동해야하고 이 과정에서 오버헤드가 발생한다.
프로세스가 2-level 로 페이지 테이블을 관리 한다면, Guest OS에서는 Host OS의 페이지 테이블(2-level) + Guest OS의 페이지 테이블(2-level) 총 4-level의 페이지 테이블을 사용하는 것과 같다. translation 오버헤드도 많이 생기게 된다.
위 단점을 해결하기 위해 다양한 솔루션들이 제시되었다. ARM, Intel같은 하드웨어 회사들은 OS의 virtualization을 지원하는 기능(LPAE, VT-x)등등을 제공하고 리눅스 커널에서는 이러한 하드웨어 feature들을 쉽게 사용 할 수 있도록 kvm과 같은 것을 제공한다. 이러한 기능들을 응용해서 네트워크나 그래픽 가속화 결과 기존 OS대비 90%정도의 효과들을 보고 있다고 한다.
'개발 > 가상화' 카테고리의 다른 글
2. Xen 기본 구조/Hypercall (0) 2016.11.05 1. Xen Project 소개 (0) 2016.11.05 가상화기술 Type1 (0) 2016.09.11 가상화 기술의 유형 (0) 2016.09.06 가상화 기술이란? (2) 2016.07.31