본문 바로가기

컴퓨터공학

[가상화] KVM 기본 구조

KVM 전가상화 개념도

이전에 그려둔 그림이 내 삭제된 도메인에 있어서 복구가 안되가지고.... 내 그림을 보고 그렸다는 동생의 것을 가져왔다.

가상화가 어떻게 돌아가는지 이보다 더 잘 그려놓을 순 없을듯. 이전에 가상화 보안 연구하면서 했던건데 생각해보니 참 오래됐네...

 

 

간단한 설명

1. 일단 가상화는 EMULATION이 필요한데 그걸 해주는게 QEMU.

2. QEMU로 OS 이미지를 실행하면 QEMU는 리눅스 커널에 있는 디바이스 드라이버 KVM에 요청한다. 이과정에서 vcpu 등등을 익명으로 만든다(파일 시스템에 노출 안됨)

3. KVM이 VM Entry 명령어를 실행하면 VMX root 모드(host os) -> VMX non-root 모드(guest os)로 모드가 변경된다.

4. guest os(VMX non-root 모드) 에서 실행되는 모든 system call은 인터럽트가 걸려서 VMX root 모드로 이동해서 처리한다음에 다시 non-root 모드로 리턴한다.

5. guest os를 off 하면 KVM 디바이스 드라이버를 통해서 요청했던 모든 리소스를 정리하고 끝. VMX root 모드로 유지.