본문 바로가기
CS/네트워크

KVM과 QEMU

by Mecodata 2023. 12. 14.

Hypervisor(하이퍼바이저)

- 가상화 기술을 사용하여 여러 개의 OS를 단일한 호스트 시스템에서 동시에 실행할 수 있게 하는 소프트웨어 레이어

Emulation과 Simulation

- Emulation = 실제 하드웨어나 소프트웨어의 동작을 모방하여 시스템을 복제한 뒤 VM에서 해당 시스템의 동작을 재현하는 것

- Simulation = 호스트 머신에 존재하는 하드웨어 및 아키텍처를 이용하여 가상머신에 제공하는 것

 

QEMU(Quick-Emulator)

- 다양한 종류의 하드웨어를 소프트웨어로 구현해둔 Hypervisor

- Binary Translation을 수행함으로써 호환성 문제 해결 → 다양한 OS를 VM에서 실행할 수 있도록 함
Binary Translation(이진 변환) = 하나의 프로세서 아키텍처에서 생성된 기계어 코드를 다른 아키텍처의 기계어 코드로 변환하는 기술 (재컴파일하여 최적화)

- 호스트 머신과 독립적으로 가상화된 하드웨어 및 아키텍처를 동작 시킬 수 있음

- 폭넓은 가상화 옵션에 비해 성능이 떨어지며 KVM에 비하여 속도가 느림

 

KVM(Kernel-based Virtual Machine, 커널 기반 가상 머신)

같은 종류의 CPU 아키텍처만 가상화할 수 있는 Hypervisor → 하드웨어 가상화
(CPU 아키텍처는 하드웨어의 하위 개념)

- Binary Translation 수행 X -> VM이 생성한 명령어를 호스트 머신이 직접 처리하며 성능이 대폭 향상

- 커널 모듈로 동작하며 반 가상화 인터페이스를 다양한 OS에 대해 지원함으로써 장치 드라이버의 전 가상화로 인해 발생하는 성능 감소를 해결할 수 있음

- 전 가상화(Full Virtualization) = 물리 환경에서 동작하는 OS와 DD를 그대로 가상 머신에서 사용

- 반 가상화(Para-virtualization) = 수정된 Guest OS 혹은 DD를 사용하는 경우

'CS > 네트워크' 카테고리의 다른 글

CORS(Cross-Origin Resource Sharing, 교차 출처 자원 공유)  (0) 2024.10.23
SSE, Polling, Socket  (0) 2024.04.26
클러스터(Cluster)  (0) 2023.12.13
CLI vs REST 비교  (0) 2023.12.13
Ceph  (0) 2023.12.11

댓글