개념/cloud

Virtualization ( 가상화 )

웅드 2023. 11. 22. 19:06

KVM, QEMU, Libvirt 는 클라우드 관련 오픈소스로 어떤 역할을 하는지 알아보자.

 

Virtualization

컴퓨터에서 물리적인 리소스를 추상화 한다.

-> 물리적인 리소스를 논리적인 리소스처럼 보이게 하는 기술

  • para Virtualization(반 가상화)
  • 하드웨어를 완전히 가상화 하지 않는다. - Guest OS에서 직접 하드웨어 제어가 안되고 hypervisor를 사용하여 제어한다.
  • Guest OS에서는 원래 OS로부터 일부 수정된 것들이 사용된다.
  • QEMU, KVM을 운영할 수 있다.
  •  Binary Patching : full Virtualization 한 것이 아니기 때문에 OS를 바로 돌릴 수 없기 때문에 가짜로 맞춘 환경에 적응을 시켜야 한다.
  • Full Virtualization(전 가상화)
  • 하드웨어 전체를 완전히 가상화한다. - Guest OS를 원 OS의 변경없이 사용 가능하다.

 

Hypervisor

하드웨어 자원을 여러개의 논리적인 자원으로 가상화해주는 소프트웨어

 

 

QEMU

 KVM만으로는 I/O 부분의 가상화 작업이 힘들기 때문에 QEMU를 사용하여 I/O 부분의 가상화를 도와준다.

 

KVM

host os 위 hypervisor가 여러개의 논리적인 하드웨어 자원으로 가상화 하여 동작한다.

물리적 Linux 시스템에 설치하여 가상 머신을 생성할 수 있는 소프트웨어 기능입니다.

KVM은 Linux에서 virtual machine 에 대한 native resource를 제공하는 Linux 운영 체제 구성 요소입니다. 

 

 

Guest User들의 명령들이 Kernel로 간다. Kernel은 리눅스 os 속에서 돌아가는 일들을 의미한다.

CPU명령어를 쓰는 명령어들은 KVM을 사용하여 빠르게 넘겨준다.

i/o hw, 메모리, 여러 장치를 이용한 것은 QEMU가 진짜 있는 것처럼 각각의 Guest한테 알려준 다음 실제 하드웨어에 연결해준다.

 

Libvirt

virtualization platforms을 관리하기 위한 도구로, RedHat에서 만든 open source 프로젝트다.

Qemu-KVM, VMware 등 다양한 hypervisor들 동작시키기 위한 통합 API라고 생각하면 된다.

이 API 하나만으로도 여러 hypervisors 및 생성된 virtual machine 들을 조작할 수 있다. 

 

Libvirt의 개념도

 

반응형