가상화 (Virtualization)
가상화란?
쉽게 말하면, 물리적인 하드웨어를 논리적으로 구분하는 것
서버의 CPU와 메모리 등의 자원을 최대한 활용할 수 있는 방법을 생각했을 때, 간단하게 생각하면 동시에 여러 개의 서버를 한번에 올리면 되지 않을까 싶다. 하지만, 서로 영향을 받게 되고, 보안 문제나 서버가 다운되면 모든 서비스가 중단되는 위험이 있다. 그래서 가상화의 개념이 등장하였다.
VM과 컨테이너
가상화의 핵심은 Isolation이다. 논리적으로 격리가 제대로 이루어지면, 각각의 가상 환경에서 문제가 생겨도, 다른 영역에 영향을 미치지 않는다.
가상화는 크게 2가지 유형으로 나뉘는데, 가상머신(vm)과 컨테이너(container)이다. 클라우드 환경에서 서비스를 운영하고자 한다면 꼭 알아두어야 하는 개념이다.
가상화 관점에서 두 개의 차이점을 간단하게 설명하자면, 가상머신은 하이퍼바이저를 이용하여 리소스 전체를 가상화하는 방법이고, 컨테이너는 OS 수준에서 프로세스를 컨테이너 형태로 격리하는 방법이다.
두 방식은 차이점이 확실하여 그에 따른 장단점도 분명하기 때문에, 각각의 기술에 대한 배경과 철학을 이해하면 좋을 것이다. 이번에는 하이퍼바이저 가상화에 대해 다루어보겠다.
하이퍼바이저 (Hypervisor)
하이퍼바이저란?
가상화에서 계속 하이퍼바이저라는 단어를 언급했는데, 하이퍼바이저란 대체 무엇일까?
- 가상 머신(VM)을 생성하고 구동하는 소프트웨어
- 가상 머신 모니터(VMM)라고도 불림
- 하이퍼바이저 운영 체제와 가상 머신의 리소스를 분리해 VM의 생성과 관리를 지원함
- 서로 다른 여러 개의 운영 체제를 나란히 구동할 수 있음
아직 잘 이해가 안 된다면, Hypervisor라는 이름을 뜯어보자!
In general, operating systems are referred as supervisors.
As a hypervisor software is a supervisor of a “supervisor”, it is called hypervisor.
일반적으로 운영체제를 supervisor라고 부르는데, 하이퍼바이저는 supervisor의 supervisor라고 한다.
Type 1 vs Type 2
가상화는 크게 Type1와 Type2로 분류된다.
Type1 방식은 Native 혹은 베어메탈(Bare Metal)형 하이퍼바이저 가상화라고도 부른다. 베어메탈이란 하드웨어 상에 어떤 소프트웨어도 설치되어 있지 않은 상태이다. Type1은 베어메탈 하드웨어 위에 직접 설치되어 구동된다. ESX-i(vmware), Xen, KVM, XenServer(citrix), Hyper-V(Microsoft) 등이 있다. 하이퍼바이저는 전가상화와 반가상화로 나뉜다.
Type2 방식은 Host 가상화라고 부른다. 베어메탈 하드웨어 위에 Host OS가 설치되고, 그 위에 하이퍼바이저가 실행되는 형태이다. 테스트 환경을 구성할 때 자주 사용하는 Oracle VirtualBox나 VMware Workstation이 여기에 해당된다.
Type2 방식 Host OS라는 하나의 레이어가 더 존재하므로, 성능 면에서 Type1이 Type2보다 유리하다. 실제 IDC 클라우드화 시키는데 사용되는 하이퍼바이저도 모두 Type1 방식이다.
참고링크