1.2 호스트 아키텍처

엔진은 Oracle Linux 서버에서 실행되며 Oracle Linux Virtualization Manager 환경 관리용 관리 도구를 제공합니다. Oracle Linux KVM 호스트는 가상 머신 실행을 위한 컴퓨트 리소스를 제공합니다.

자세한 내용은 3.3절. “호스트”를 참조하십시오.

그림 1.2 기본 호스트 아키텍처

기본 호스트 아키텍처를 보여주는 이미지입니다.

KVM(커널 기반 가상 머신) 및 QEMU(Quick EMUlator)

로드 가능한 커널 모듈로 KVM의 기능은 다음과 같습니다.

  • 하드웨어 확장 사용을 통해 전체 가상화를 제공합니다.

  • 호스트가 물리적 하드웨어를 가상 머신에 제공할 수 있도록 허용합니다.

  • 커널 공간에서 실행되며, 여기서 실행되는 가상 머신은 사용자 공간에서 개별 QEMU 프로세스로 실행됩니다.

QEMU를 통해 KVM은 가상 머신에 대한 하드웨어(예: CPU, 메모리, 네트워크 및 디스크 장치)를 에뮬레이트하여 완전한 하이퍼바이저가 될 수 있습니다.

KVM을 통해 QEMU는 호스트 CPU에서 직접 가상 머신의 코드를 실행할 수 있습니다. 그러면 가상 머신의 운영체제는 수정 없이 호스트의 리소스에 직접 액세스할 수 있습니다.

호스트 에이전트 및 libvirt

VDSM(Virtual Desktop and Server Manager) 서비스는 엔진이 호스트, 가상 머신, 네트워크 및 저장소 관리에 사용하는 모든 기능을 다루는 호스트 에이전트입니다. 엔진과 KVM 호스트 간의 모든 통신은 KVM 호스트에서 실행되는 VDSM 서비스를 통해 처리됩니다.

libvirt 데몬은 Oracle Linux KVM 호스트에서 서비스(libvirtd)로 실행되며, Oracle Linux KVM을 비롯한 다양한 하이퍼바이저를 관리하는 데 사용 가능한 API(Application Programming Interface)를 제공합니다. VDSM은 libvirt를 사용하여 호스트의 가상 머신 및 관련 가상 장치에 대한 전체 수명 주기를 관리하고 이에 대한 통계를 수집합니다.

게스트 에이전트

게스트 에이전트는 가상 머신 내에서 실행되며, 리소스 사용량에 대한 정보를 엔진에 제공합니다. 게스트 에이전트와 엔진 간의 통신은 가상화된 직렬 연결을 통해 수행됩니다.

게스트 에이전트는 다음을 제공합니다.

  • 엔진과 게스트 간의 정보, 통지 및 작업을 제공합니다.

  • 연관된 IP 주소, 설치된 응용 프로그램, 네트워크 및 RAM 사용량을 비롯하여 게스트 머신 이름과 게스트 운영체제, 기타 세부정보를 엔진에 제공합니다.

  • 엔진에 대해 인증된 사용자가 가상 머신에 연결할 때 다시 인증하지 않아도 되도록 Single Sign-On 기능을 제공합니다.

그림 1.3 에이전트, QEMU 및 libvirt

에이전트, QEMU, libvirt와 엔진 및 호스트의 상호 작용을 보여주는 이미지입니다.