본문 바로가기

메가존 클라우드 2기 교육/실무 심화

가상화 (하이퍼바이저/오픈스택)

가상화란?

가상화는 단인할 물리 하드웨어 시스템에서 여러 시뮬레이션 환경이나 전용 리소스를 생성할 수 있는 기술이다.

하이퍼 바이저라 불리는 소프트웨어가 하드웨어에 직접 연결되며 1개의 시스템을 가상 머신(VM)이라는 별도의 고유하고 안전한 환경으로 분산할 수 있다. 이러한 VM은 하이퍼바이저의 기능을 사용하여 머신의 리소스를 하드웨어에서 분리한 후 적절하게 배포한다. 가상화는 기존 제품을 최대한 활용할 수 있도록 지원해준다.

이 하이퍼바이저가 없었으면, 저번에 실습용으로 사용한 CentOS를 윈도우에서 사용할 수 없었을 것이다. 하지만, 이 가상화를 통해 IOS파일을 통해 윈도우에서도 CentOS를 사용해볼 수 있었다.

 

하이퍼 바이저가 설치딘 물리 하드웨어를 '호스트'라 하며 그 리소스를 사용하는 여러 VM을 '게스트' 라 한다.

이러한 게스트는 CPU, 메모리, 스토리지 등의 컴퓨팅 리소스를 처리하는 리소스의 풀로, 쉽게 재배치할 수 있다.

 

운영자는 필요할 때 필요한 리소스가 게스트에 제공 될 수 있도록 CPU, 메모리, 스토리지, 기타 리소스의 가상 인스턴스(가상환경)를 제어할 수 있다.

 

단, 결국 하드웨어의 리소스를 파티션하여 가상머신을 만드는 것이므로, 가상머신의 성능의 한계는 존재한다.

 

하이퍼바이저가 하드웨어의 리소스들을 가상머신들에게 분배해주고 있다. 가상 머신들의 OS는 다양한 OS로 구성할 수 있다.

 


가상화 종류

 전가상화 (Full-Virtualization)

현재 우리가 사용했던 가상화 종류이다. 가상화에 대한 부분을 크게 몰라도 쉽게 접할 수 있는 가상화다.(자동차로 따지면 오토)

게스트 OS명령이 Binary Translation 과정을 거쳐 하이퍼바이저의 중재를 통해서 하드웨어로 전달된다.

Binary Translation 과정에서 지연이 발생한다.


반가상화 (Para-Virtualization)

전가상화와 달리 Binary Translation 과정 없이 '하이퍼콜(Hyper Call)'이라는 인터페이스를 통해 게스트 OS 명령이 하이퍼바이저를 거쳐서 하드웨어로 전달된다.

다시 말해, 각 OS 별로 '커널 수정'을 통해 하이퍼바이저의 오버헤드(지연요소)를 줄여줌. 이를 통해, 하드웨어의 자원을 빠르게 VM에 공급하기에 VM 성능 상승

 

단, 커널 수정은 간단한 작업이 아니며, 특히 Windows의 경우 오픈소스가 아니므로 사용하기 매우 어렵다.

그래서, 현재 널리 사용되진 않는다.

 


하드웨어 지원 가상화 (Hardware-assisted Virtualization)

가상화 기술의 발달로 인해 전가상화에서 성능 하락을 일으켰던 Binary Translation을 하이퍼바이저가 아닌 CPU에서 대신 처리하게 됨으로써 큰 폭의 성능이 향상되었다. (성능의 거의 반가상화급으로 올라감)

이를 이용한 가상 머신을 'HVM (Hardware-assisted Virtualization Machine)' 이라 한다

 

 


하이퍼바이저 타입

타입 1 (native 또는 bare-metal)

운영 체제가 프로그램을 제어하듯이 하이퍼바이저가 해당 하드웨어에서 직접 실행되며 게스트 운영 체제는 하드웨어 위에서 2번째 수준으로 실행된다.

즉, 운영체제가 개입되지 않고 순수하게 하이퍼바이저부터 시작한다.

 

타입 1은 실무(Production)에서 주로 사용되며, 대부분 Public Cloud에서 사용된다.

 

대표적인 타입1 하이퍼바이저들

  • Citrix의 Citrix Hypervisor (구 XenServer) // AWS에서 운영됨
  • VMware의 vSphere Hypervisor (구 ESXi Server)
  • Microsoft의 Hpyer-v
  • Linux의 KVM (Kernel Based Virtual Machine)

타입 2 (hosted)

HostOS가 반드시 존재해야한다.

전에 실습했던 환경이 타입 2이며, HostOS는 Windows 10 이었다.

 

하이퍼바이저는 일반 프로그램과 같이 호스트 운영 체제에서 실행되며 VM 내부에서 동작되는 게스트 운영 체제는 하드웨어에서 3번째 수준으로 실행된다

 

편리하지만, HostOS의 존재 떄문에 4계층 구조를 가지며, 타입1보다 느리다.

 

타입2 VM의 대표적인 종류

  • VMware Workstation Pro,
  • VMware Workstation Player
  • VMware Fusion
  • 리눅스 QEMU
  • 마이크로소포트의 버추얼 PC와 버추얼 서버
  • Oracle(SUN)의 버추얼박스

 


하이퍼바이저 타입 비교