[가상화] 하이퍼바이저와 가상화
IT/Cloud

[가상화] 하이퍼바이저와 가상화

728x90
반응형

가상화 (Virtualization)

가상화란?

우리가 일반적으로 사용하는 PC는 cpu와 memory를 적게 사용하는 경우 전력도 적게 공급되도록 설계되어 있다. 반면, 서버의 경우 항상 최상의 성능을 유지해야 하기 때문에 전력을 최대로 공급해야 할뿐더러 서버를 조금 사용하든 많이 사용하든 IDC 임대료는 동일하다. 그렇다면 서버의 남는 cpu와 memory를 놀리지 말고 활용할 수 있는 방법을 찾아야 했다.

 

가장 간단한 방법은 동시에 여러 개의 Application을 동시에 올리는 방법이다. 웹서버, DB서버, DNS 등등... 그러나 이런 경우 서로 간의 영향이 생길뿐더러 서버가 다운되었을 때 모든 서비스가 중단되는 위험이 있다. 보안 문제도 필연적으로 발생하게 된다.

 

여기서 가상화의 개념이 시작된다.

 

가상화를 처음 접하는 경우 너무나도 추상적인 단어에 감을 잡기 어려울 수 있다. 사실 가상화라는 단어는 일종의 마케팅 용어라고 필자는 생각한다. 그래서 조금 쉽게 설명하자면, 가상화라는 것은 물리적인 하드웨어를 논리적으로 구분하는 것을 의미한다.

 

VM과 컨테이너

가상화의 핵심은 Isolation이다. 논리적으로 격리가 제대로 이루어지면, 격리된 각각의 가상 시스템에서 문제가 생겨도, 다른 영역에 영향을 미치지 않는다.

 

오늘날 가상화는 크게 2가지 유형이 존재하는데, 가상머신(vm)컨테이너(container)이다. 이 두 개는 개발자라면 혹은 IT에 발을 들였다면 이미 사용 중이거나 익숙한 단어일 것이다. 불과 몇 년 만에 얼마나 클라우드 transformation이 진행되었는지 실감이 난다. 앞으로는 더더욱 클라우드 기반 환경 위에서 모든 서비스가 운영되고, 개발이 진행될 것이다.

 

잠깐 옆으로 샜는데, 오늘은 활용적인 측면에서가 아니라 가상화 관점에서 이들을 바라볼 것이다. 두 개의 차이점을 간단하게 설명하자면, vm은 하이퍼바이저를 이용하여 리소스 전체를 가상화하는 방법이고, 컨테이너는 OS수준에서 프로세스를 컨테이너 형태로 격리하는 방법이다.

 

두 개의 차이점이 극명하며 그에 따른 장단점도 분명하기에, 각각의 기술에 대한 배경과 철학을 이해하면 큰 도움이 될 것이다. 이 글에서는 하이퍼바이저 가상화에 대해서 다룰 예정이다. (컨테이너도 원해요? 그럼 500원)

 

하이퍼바이저 (Hypervisor)

하이퍼바이저란?

위에서 계속 하이퍼바이저라는 단어를 언급했는데, 그렇다면 이 하이퍼바이저는 머 하는 친구일까?

 

vm을 만들기 위해서는 위 그림에서 보는 것처럼 물리적인 하드웨어를 논리적으로 가상화해야 한다. 이때 이를 담당하는 애가 바로 하이퍼바이저이다.

 

아직 이해가 안 된다면 Hypervisor라는 이름이 왜 붙었는지 뜯어보면 조금 더 명확하게 알 수 있다.

In general, operating systems are referred as supervisors.
As a hypervisor software is a supervisor of a “supervisor”, it is called hypervisor.

vm은 각각 독립적인 OS를 가지며, Application을 띄우고 Process를 올리는 것을 OS가 수행하고 관리한다. 따라서 일반적으로 운영체제를 supervisor라고 부른다. 위 그림에서 Guest OS가 supervisor 라면, 하이퍼바이저는 supervisor의 supervisor인 셈인 것이다.

 

TYPE 1 vs TYPE 2

하이퍼바이저는 크게 Type1 하이퍼바이저Type2 하이퍼바이저로 분류된다.

 

Type1 방식은 Native 혹은 베어메탈 형 하이퍼바이저라고도 불린다. 위 그림에서 볼 수 있듯이 Type1 하이퍼바이저는 베어메탈 하드웨어 위에 직접 설치되어 구동된다. 대표적인 Type1 하이퍼바이저에는 Xen, KVM, XenServer(Citrix), Hyper-V(Microsoft), ESX-i(vmware) 등이 있다.

 

Type2 방식은 Hosted 하이퍼바이저라고 불린다. Type2 하이퍼바이저는 다른 Application과 마찬가지로 Host OS 위에 설치된다. 베어메탈 하드웨어 위에 Host OS가 설치되고, 그 위에 하이퍼바이저가 실행되는 형태인 것이다. 테스트환경을 구성할 때 자주 사용하는 Oracle VirtualBox나 vmware Workstation이 여기에 해당된다.

 

당연히 Type2 방식이 Host OS라는 하나의 Layer가 더 존재하므로, 성능면에서 Type1이 Type2보다 유리하다. 실제 IDC를 클라우드화 시키는데 사용되는 하이퍼바이저도 모두 Type1 방식이다.

 

 

하이퍼바이저는 다시 가상화 방식에 따라 Full Virtualization과 Para Virtualization으로 분류된다. 다음 글에서 계속...

 

Reference

 

 

728x90
반응형