개요
하이퍼바이저(Hypervisor)는 가상화를 위해서 사용되는 소프트웨어 또는 펌웨어를 말한다. 하이퍼바이저는 각 게스트에 가상화된 CPU, Memory, Storage, Network 등을 제공하며, Isolation과 Resource management를 제공한다. 이를 통해 하나의 물리적 하드웨어 위에서 다수의 운영체제가 동시에 독립적으로 실행될 수 있으며, 클라우드 컴퓨팅과 데이터센터 자원 통합의 핵심 기술로 사용된다.
분류
Type 1 하이퍼바이저
하드웨어 위에서 직접 실행되는 하이퍼바이저를 말한다. Operating system 자체가 하나의 하이퍼바이저처럼 작동하는 것으로 VMWare ESXi, Microsoft Hyper-V, KVM과 같은 하이퍼바이저를 예시로 들 수 있다. 하드웨어 위에 바로 하이퍼바이저가 동작하고 있기 때문에 성능적인 이점이 있지만, 설치와 사용이 Type 2에 비해 간단하지는 않다.
그러나 보통은 Type 1 하이퍼바이저 위에 새로운 Abstraction layer를 통해서 VM을 관리하기 때문에, 많은 상용 가상화 프로그램들은 Type 1을 이용하여 작동한다. 대규모 데이터센터나 클라우드 서비스 환경에서 주로 사용된다.
Type 2 하이퍼바이저
기존 운영체제 위에서 애플리케이션처럼 실행되는 하이퍼바이저를 말한다. VirtualBox, VMware Workstation과 같은 하이퍼바이저를 들 수 있다. 설치와 사용이 간편하여 개발·테스트 용도에 적합하다. 성능상의 단점이 있기 때문에, 실제로 Production을 Deploy하는 환경에서는 주로 Type 1을 채택한다.
동작 원리
하이퍼바이저는 다양한 방식을 통해서 구현될 수 있으며, Hardware의 기능을 사용하는 (예: Intel VT-x, AMD-V) 방식이나 아니면 Emulation과 같은 방식을 이용하는 것으로 크게 나눌 수 있다. Emulation은 Host hardware의 instruction set이 아닌 경우도 실행할 수 있지만, 성능적으로 하드웨어 기반 방식에 비해 매우 느리다.
하드웨어 가상화를 위해서 IOMMU와 같은 하드웨어의 도움을 받는 방식이나 Emulation도 있지만, 역시 Emulation 방식은 특정 하드웨어 없이도 다양한 주변장치를 가상화할 수는 있으나 성능적으로 VM Exit이 많이 발생하기 때문에 느리다.
장점
- 하나의 물리 서버에서 여러 운영체제를 동시에 실행할 수 있어 자원의 효율성을 극대화할 수 있다.
- 가상 머신 간의 격리를 통해 보안성을 강화할 수 있다.
- 스냅샷, 마이그레이션, 체크포인트 등 다양한 관리 기능을 제공한다.
- 테스트, 개발, 교육 환경에서 다양한 운영체제를 동시에 운용할 수 있다.
단점
- 하이퍼바이저 자체의 취약점은 전체 시스템에 영향을 미칠 수 있다.
- 성능은 네이티브 실행에 비해 오버헤드가 발생하며, 특히 에뮬레이션 방식의 경우 성능 저하가 심하다.
- 관리 복잡성이 증가하고 유지보수 비용이 발생할 수 있다.