먼저 이번 내용들을 적기전에 하나 이야기하자면,
그전까지는 경어체를 사용해서 블로그를 적었는데 뭔가 가식적이고 나답지않다는
생각이 들었다. 그래서 앞으로는 그냥 편하게 적으려고한다.
KVM
kvm은 Kernel-based Virtual Machine의 줄임말이다.
리눅스 커널이 가상화를 직접 담당하는 기술이다.
또한 리눅스 커널이 하이퍼바이저 역할을 수행하도록 만들어주는 모듈이다.
즉 kvm은 이러한 기능들을 수행하기 위해서 리눅스 커널에 들어가는 모듈이다.
그럼 여기서 커널이 무엇이냐.
커널은 일단 운영체제의 핵심이다. 주로 메모리관리, 디바이스제어, cpu 관리
즉 하드웨어를 다루는 가장 핵심이다. 컴퓨터 자원을 관리한다고 생각하면 된다.
또한 하드웨어와 응용프로그램 사이에서 인터페이스를 제공해준다.
방금 이야기 했듯이 커널은 프로세스, 메모리, 네트워크 등을 관리하는데
kvm은 vm용 가상 cpu를 실행, vm메모리 관리, 하드웨어 가상화 기능 사용 등 이러한 기능들을 수행하게 된다.
한마디로 커널은 운영체제의 핵심이지만 kvm에서는 이에 더불어 가상화의 핵심 역할도 맡아서 한다고 생각하면 된다.
하이퍼바이저는 무엇이냐.
실제 서버 위에서 vm을 할당해주는 관리자라고 생각하면 된다.
하이버바이저와 관련된 개념은 가상 데스크톱 인프라(VDI) 개념 을참고하면 좋을 것 같다.
나도 하이퍼바이저 개념을 까먹었었는데 제가 적은 블로그들을 다시 한 번 훑어보면서
다시 개념들을 상기시켰다.
하이버바이저는 2가지 타입이있는데
하드웨어 위에 올라가는 방식과 운영체게 위에 프로그램처럼 올라가는 방식이 있다.
하이퍼 바이저의 타입에 대해서 조사를 해보면서 kvm은 당연히 리눅스 위에서 동작을 하기에
운영체제에 올라가는 방식이라고 생각을 했는데
리눅스 커널 자체가 하이퍼바이저 역할을하기 때문에 하드웨어에 올라가는 방식이다.
쉽게 말하면 리눅스 커널이 가상화 기능을 제공하기 때문이다.
kvm의 자세한 역할은
- CPU 가상화: VT-x/AMD-V 같은 하드웨어 가상화 기능을 커널에서 활용
- 메모리 분리: VM마다 독립된 메모리 공간을 사용하도록 격리.
안정성과 보안때문에 메모리 분리는 중요하다. - 디스크 가상화: 가상 디스크 이미지/스토리지 장치를 VM에 제공.
여기서 디스크 가상화는 SSD를 통째로 주는것이 아닌
호스트 pc에 있는 파일을 vm이 디스크처럼 사용하는 것이다. - 네트워크 가상화: 브리지/가상 NIC 등을 통해 VM 네트워크 구성
NIC는 가상 랜카드를 말하는 것이다.
VT-x, AMD-V
CPU 제조사가 넣은 하드웨어 가상화 기능이다.
이 기능이 있으면 CPU가 알아서 VM용 코드인지, 호스트용 코드인지 구분을 해준다
kvm은 이러한 cpu가 제공하는 가상화 기능을 리눅스 커널에서 활용하는거다.
QEMU
가상 하드웨어 에뮬레이션 및 VM 실행을 보조해준다.
컴퓨터는 그래픽 카드, 키보드, 마우스 이러한 것들이 있어야한다.
이러한 가상 컴퓨터의 부품을 만들어주는 기술이라고 생각하면 될 것 같다.
CPU는 빠르게 가상화를 할 수 있지만
같은 I/O는 가상 장치를 거치기때문에 영향이 생길 수 있다.
따라서 passthrough같은 고급 설정이 중요하다.
또한 GPU는 VM 구성에서는 많이 제한적일 수 있다.
이러한 제한적인 문제를 해결하기 위해서는 GPU passthrough 같은 고급 설정이 필요하다
이 방식은 물리 GPU를 특정 VM에 거의 직접 할당하는 방식이다.
'리눅스 공부' 카테고리의 다른 글
| Rocky Linux 기반 KVM/libvirt 가상화 환경 구축 (2) | 2026.04.15 |
|---|---|
| 리눅스 프로그램 설치 방법과 빌드 개념 정리 (0) | 2026.04.09 |
| systemctl과 service의 차이, 그리고 systemd까지 한 번에 이해하기 (0) | 2026.04.02 |
| Vi 편집기 주요 명령어 정리 (0) | 2026.04.01 |
| Rocky Linux의 Mirror Server에 대하여 (0) | 2026.03.31 |