가상화란?
가상화란 단일 시스템에서 특정 환경을 위한 전용 리소스를 임시로 할당하는 기술 말한다.
가상화하는 대상에 따라 가상머신, 가상OS 등으로 불릴 수 있다.
가상머신은 하드웨어를 소프트웨어적으로 구현한 것을 말한다.
virtual box 같은 것들을 통해 만드는 것이 바로 가상머신이다.
우리는 virtual box 를 통해 원하는 CPU, 메모리, 디스크를 할당해서 간단하게 하드웨어를 구현할 수 있다.
이렇게 구현한 가상머신 위에 OS를 설치하면 가상OS가 되는 것이다.
그런데 하드웨어에는 기본적으로 OS가 따라오기 때문에 가상머신 == 가상OS 라고 생각해도 무방하다.
하이퍼바이저(hypervisor)
가상화를 구현하기 위한 기반기술이다.
가상화를 통해 여러 OS가 존재할 경우 각 OS에서는 하드웨어 자원을 사용하기 위해
여러가지 명령을 날리게 된다.
문제는 이러한 명령의 표현이 리눅스, 윈도우 같은 OS마다 모두 다르다는 것이다.
이를 중재해주는 것이 바로 하이퍼바이저이다.
하이퍼바이저의 적용은 아래와 같이 Type1, Type2 두 가지로 나뉜다.
하이퍼바이저 Type1
Type1 방식은 위에서 보다시피 하드웨어 위에 바로 하이퍼바이저가 설치되는 구조이다.
하이퍼바이저에서 바로 하드웨어를 제어할 수 있기 때문에 당연히 오버헤드가 적다.
하지만 하이퍼바이저 자체에는 별도의 관리기능이 없기 때문에
구동시 그 기능을 담당할 DOM0라는 관리머신이 함께 구동된다.
또한 DOM0에서 얼마나 많은 일을 처리하느냐에 따라 또 다시 아래와 같이 두 가지로 나뉜다.
전가상화 방식의 경우 OS마다 다른 명령의 표현을 DOM0 에서 해석하고 하이퍼바이저로 넘겨준다.
그리고 하이퍼바이저가 하드웨어에게 최종 명령을 전달한다.
모든 명령이 DOM0를 통하기 때문에 반가상화 방식에 비해 비교적 느리다.
반가상화 방식의 경우 OS 자체에서 명령을 번역해서 보낸다.
이를 통해 DOM0을 통할 필요없이 하이퍼바이저로 직접 명령을 넘겨준다.
이를 Hyper-Call 이라고 한다.
다만 OS에서는 Hyper-Call에 대한 지식이 없기 때문에 가상OS의 커널을 직접 수정해줘야 한다.
DOM0를 거치지 않기 때문에 당연히 전가상화 방식에 비해 성능이 좋다.
하이퍼바이저 Type2
Type2 방식은 그냥 virtual box 를 사용하는 걸 생각하면 된다.
OS가 설치된 하드웨어에 하이퍼바이저를 설치하고 그 위에 가상OS를 띄운다.
virtual box 가 곧 하이퍼바이저가 된다.
이때 하드웨어에 설치된 OS를 호스트OS라 하고
virtual box 에서 구동하는 OS를 게스트OS라 한다.
호스트 OS에서 하드웨어를 컨트롤하고 관리하기 때문에 DOM0 같은 관리툴이 따로 필요없다.
하지만 구조가 Type1에 비해 복잡하기 때문에 당연히 오버헤드가 크다.
'Base > 개념정리' 카테고리의 다른 글
동기/비동기, 블로킹/논블로킹, 동시성/병렬성 (0) | 2021.07.08 |
---|---|
SPOF(Single Point Of Failure) (0) | 2021.04.26 |
싱글쓰레드와 멀티쓰레드, 동기와 비동기 (0) | 2021.04.02 |
32비트, 64비트 차이점? (0) | 2021.04.02 |
TCP/UDP 그리고 IP (0) | 2021.04.02 |