만쥬의 개발일기
article thumbnail

VM의 개념

가상 머신(Virtual Machine, VM)은 물리적 하드웨어 시스템에 구축되어 자체 CPU, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고 가상 컴퓨터 시스템으로 작동하는 가상 환경입니다. (출처: RedHat)

위 사진의 왼쪽이 가상화 이전의 서버 활용이고, 오른쪽이 가상화 활용 이후 서버 활용입니다.

가상화 기술 덕에 우리는 한 개의 물리 서버를 두 개 이상의 가상 서버로 동작시킬 수 있게 되었습니다.

 

VM 생성

VM의 생성을 위해서는 실제 하드웨어와의 조정을 위해 하이퍼바이저라고 하는 경량 소프트웨어 계층이 필요합니다. 하이퍼바이저는 일종의 매니저로서, 실제 컴퓨터나 호스트(베어메탈 서버) 리소스를  다양한 새로운 가상 머신에게 할당합니다.

 

하이퍼바이저

하이퍼바이저는 정확히 어떤 일을 할까?

하이퍼바이저는 가상화 계층(Virtualization Layer)을 구현해주는 소프트웨어입니다.

위 그림을 보면, 실물 하드웨어 자원들과 가상 머신들 사이의 ‘Virtualization Layer'이라는 가상화 계층을 볼 수 있습니다.

 

우리들이 VM을 생성하기 위해서는, 하드웨어 위에서 VM을 생성하고, 필요한 만큼 자원을 할당해주고, VM들의 요청을 처리해주는 등 가상화를 도와줄 '매니저'가 필요합니다. 그리고 그 매니저 역할을 하는 것이 하이퍼바이저 입니다.

 

하이퍼바이저는 다음 단 두 단계를 거쳐 VM을 생성합니다.

  1. 가상 서버 생성 요청을 받은 하이퍼바이저는 새로운 가상 서버를 생성하고, 물리 서버의 컴퓨팅 리소스를 각 가상 서버에 할당해준다. (CPU, 메모리, 스토리지, 네트워크 등)
  2. 리소스 할당 후에 각 서버에 필요한 OS를 설치해준다.

 

하이퍼바이저는 VM의 생성부터 삭제까지 VM이 동작하는 모든 환경을 관리하기 때문에, Virtual Machine Manager 또는 VMM이라고 불리기도 합니다.

 

그 밖에도 각 가상 머신의 리소스 사용을 스케쥴링하고, 가상 머신과 하드웨어 간의 I/O 명령을 처리하는 등의 역할을 하이퍼바이저가 담당합니다.

 

하이퍼바이저의 유형

유형 1 하이퍼바이저 (Bare-Metal Hypervisor)

유형 1 하이퍼바이저는 Native 혹은 Bare-Metal 하이퍼바이저라고도 불립니다.

유형 1은 하드웨어 위에서 직접 구동되어 게스트 OS를 관리합니다. 하드웨어에 OS를 설치하는 것처럼 하이퍼바이저를 설치하는 것이라고 생각하면 됩니다.

 

장점

  • 호스트 OS가 따로 존재하지 않으므로 게스트 OS는 하드웨어 위에 2번째 수준으로 실행되기 때문에 오버헤드가 적습니다.
  • 각 게스트 OS의 문제가 다른 게스트 OS에 영향을 주지 않습니다.

단점

  • VM들에 대한 자체적인 관리 기능이 없어, VM 관리를 위한 컴퓨터나 콘솔이 별개로 필요합니다.
  • VMware의 ESXi, Citrix의 Xen, Microsoft의 Hyper-V 등이 대표적인 유형 1 하이퍼바이저입니다.

 

유형 2 하이퍼바이저 (Hosted Hypervisor)

유형 2 하이퍼바이저는 Hosted 하이퍼바이저라고도 불리며, 그림처럼 Host OS를 가지는 하이퍼바이저입니다. 하드웨어에 호스트 OS 가 이미 설치되어 있고, 하이퍼바이저는 OS 위에서 소프트웨어로서 동작합니다.

 

장점

  • 기존 시스템 위에서 쉽게 사용할 수 있다는 것이 유형 2의 가장 큰 장점입니다.

단점

  • 게스트 OS가 하드웨어 위에 3번째 수준으로 실행되기 때문에 오버헤드가 큽니다.
  • 호스트 OS의 문제가 전체 게스트 OS에 영향을 줄 수 있습니다.
  • VMware의 Workstation, Oracle의 VirtualBox 등의 소프트웨어가 유형 2 하이퍼바이저에 해당됩니다.

 

우리가 Windows 환경에서 Ubuntu를 사용하고자 할때, Windows OS에 VirtualBox 소프트웨어를 다운로드해 VM을 생성하는 방식 등이 유형 2 하이퍼바이저를 사용하는 것입니다.

 

VM의 장점

이처럼 VM은 클라우드 컴퓨팅, 멀웨어 조사, 새로운 OS 테스트, 안전한 브라우징 등 여러 분야에서 활용됩니다. 다음 포스팅에서는 VM을 응용한 HCI(Hyper-Converged Infrastructure)에 대해 알아보겠습니다.

 

 

references

profile

만쥬의 개발일기

@KangManJoo

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!