바로 가기

KVM이란?

URL 복사

KVM(Kernel-based Virtual Machine: 커널 기반 가상 머신)은 Linux®에 구축되는 오픈소스가상화 기술입니다. 구체적으로, KVM을 사용하면 Linux를 하이퍼바이저로 전환하여 호스트 머신에서 게스트 또는 VM(가상 머신) 등 격리된 가상 환경 여러 개가 실행되도록 할 수 있습니다.

KVM은 Linux의 일부이며, Linux 2.6.20 이상 버전에는 KVM이 있습니다. KVM은 2006년에 처음 발표되었고 1년 후 메인라인 Linux 커널 버전으로 병합되었습니다. KVM은 기존 Linux 코드의 일부이므로 추가 엔지니어링 없이도 새로운 Linux 기능, 수정 및 확장된 기능을 바로 사용할 수 있습니다.

KVM은 Linux를 1유형(베어메탈) 하이퍼바이저로 변환합니다. 모든 하이퍼바이저에서 VM을 실행하려면 메모리 관리 프로그램, 프로세스 스케줄러, I/O(입력/출력) 스택, 기기 드라이버, 보안 관리 프로그램, 네트워크 스택과 같은 운영 체제 수준의 구성 요소가 필요합니다. KVM은 Linux 커널의 일부이기 때문에 이러한 구성 요소를 모두 가지고 있습니다. 모든 VM은 표준 Linux 스케줄러를 통해 일정이 예약되며 네트워크 카드, 그래픽 어댑터, 프로세서, 메모리, 디스크와 같은 전용 가상 하드웨어를 사용해 일반적인 Linux 프로세스로 구현됩니다.

간단히 말해 2007년 이후 릴리스된 Linux 버전을 실행해야 하며, 가상화 기능을 지원하는 X86 하드웨어에 해당 Linux 버전을 설치해야 합니다. 이 두 요건을 충족했다면 기존 모듈 2개(호스트 커널 모듈과 프로세스 관련 모듈), 에뮬레이터, 드라이버를 로드하여 추가 시스템을 실행할 수 있습니다.

그러나 Red Hat Enterprise Linux 등 지원되는 Linux 배포에서 KVM을 구현하면 KVM 기능이 확장되어 게스트 간에 리소스 교체, 공통 라이브러리 공유, 시스템 성능 최적화 등이 가능합니다.

계약에 의해 구속되는 플랫폼에 가상 인프라를 구축하는 경우 소스 코드에 대한 액세스가 제한될 수 있습니다. 이는 IT 개발이 혁신이 아닌 대안이 될 수 있으며 다음번 계약에서 클라우드, 컨테이너, 자동화에 대한 투자도 제한할 수 있음을 의미합니다. KVM 기반 가상화 플랫폼으로 마이그레이션하면 하이퍼바이저의 기반이 되는 소스 코드를 검사, 수정, 개선할 수 있습니다. 또한 보호할 소스 코드가 없어 엔터프라이즈 라이센스 계약도 존재하지 않으므로 자유롭게 사용할 수 있습니다.

KVM은 Linux의 일부이며 Linux는 KVM의 일부입니다. Linux에 제공되는 것은 모두 KVM에도 제공됩니다. 그러나 KVM은 다음과 같은 기능적인 장점으로 인해 엔터프라이즈에서 선호하는 하이퍼바이저가 되었습니다.

보안

KVM은 VM 보안 및 격리를 강화하기 위해 SELinux(Security-Enhanced Linux)와 sVirt(Secure Virtualization)의 조합을 사용합니다. SELinux는 VM 주위에 보안 경계를 구축하며 sVirt는 SELinux의 기능을 확장하여 게스트 VM에 MAC(필수 액세스 제어) 보안 메커니즘을 적용함으로써 수동 레이블링 오류를 방지합니다.

스토리지

KVM은 일부 로컬 디스크와 NAS(네트워크 연결 스토리지) 등 Linux가 지원하는 스토리지를 사용할 수 있으며 다중 경로 I/O를 사용해 스토리지를 개선하고 이중화를 제공할 수 있습니다. 또한 KVM은 공유 파일 시스템을 지원하므로 여러 호스트에서 VM 이미지를 공유할 수 있습니다. 디스크 이미지는 씬 프로비저닝을 지원하므로 스토리지 전체를 미리 할당하는 대신에 온디맨드 방식으로 할당할 수 있습니다.

하드웨어 지원

KVM은 다양한 인증된 Linux 지원 하드웨어 플랫폼을 사용할 수 있으며 하드웨어 벤더가 정기적으로 커널 개발에 기여하므로 최신 하드웨어 기능이 Linux 커널에 신속하게 도입됩니다.

메모리 관리

KVM은 비균일 메모리 액세스 및 커널 동일 페이지 병합 등 Linux의 메모리 관리 기능을 상속합니다. VM 메모리는 스왑 기능과 대용량 지원으로 성능이 향상되어 디스크 파일에서 이를 공유하거나 지원할 수 있습니다.

실시간 마이그레이션

KVM은 실행 중인 VM을 서비스 중단 없이 물리적 호스트 사이에서 이동할 수 있는 기능인 실시간 마이그레이션을 지원합니다. 재배치되는 과정에서 VM은 전원이 켜진 상태를 유지하고, 네트워크 연결도 활성화되어 있으며, 애플리케이션은 계속 실행됩니다. 또한 KVM은 VM의 현재 상태를 저장하므로 보관한 후 나중에 다시 시작할 수 있습니다.

성능 및 확장성

KVM은 Linux의 성능을 상속하므로 게스트 머신 및 요청의 수가 증가하면 필요한 부하에 맞춰 확장됩니다. KVM은 매우 까다로운 애플리케이션 워크로드를 가상화할 수 있으며, OpenStack®을 통해 데이터 센터와 프라이빗 클라우드 등 다양한 엔터프라이즈 가상화 설정의 기반을 제공합니다.

스케줄링과 리소스 제어

KVM 모델에서 VM은 커널이 예약하고 관리하는 Linux 프로세스입니다. Linux 스케줄러를 사용하면 Linux 프로세스에 할당된 리소스를 정교하게 제어할 수 있고 특정 프로세스의 서비스 품질이 보장됩니다. KVM의 경우 여기에 완전히 공평한 스케줄러, 제어 그룹, 네트워크 네임스페이스, 실시간 확장이 포함됩니다.

더 짧은 대기 시간과 더 높은 우선 순위 지정

Linux 커널은 실시간 확장 기능을 제공하므로 베어 메탈에 비해 더 짧은 대기 시간과 높은 우선 순위로 VM 기반 애플리케이션을 실행할 수 있습니다. 또한 커널은 컴퓨팅에 시간이 오래 걸리는 프로세스를 작은 구성 요소로 나눈 다음, 적절히 일정을 예약하여 처리합니다.

단일 워크스테이션에서 실행되는 여러 개의 VM을 관리 툴 없이 수동으로 관리할 수 있습니다. 규모가 큰 기업들은 가상 환경 및 그 기반이 되는 물리적 하드웨어와 연결되어 리소스 관리 단순화, 데이터 분석 강화, 운영 간소화하는 가상화 관리 소프트웨어를 사용할 수 있습니다. 

Red Hat은 모든 가상화 제품의 유일한 하이퍼바이저로 KVM을 사용하고 있으며, 커널 코드를 지속적으로 개선하여 KVM 커뮤니티에 기여하고 있습니다. 하지만 KVM은 Linux의 일부이므로 Red Hat Enterprise Linux에 이미 포함되어 있습니다.

추가 자료

문서

컨테이너와 VM 비교

Linux 컨테이너 및 VM(가상 머신)은 다양한 IT 요소를 결합해 시스템의 나머지 부분으로 부터 격리하는 패키징된 컴퓨팅 환경입니다.

문서

가상 머신(VM)이란?

가상 머신(VM)은 물리 머신의 리소스를 추상화하여 생성한 격리된 컴퓨팅 환경입니다.

문서

KVM이란 무엇일까요?

KVM(커널 기반 가상 시스템)은 Linux를 하이퍼바이저로 전환하는 오픈소스 가상화 기술입니다.

가상화에 대한 자세한 내용

  • OpenStack® 워드 마크 및 OpenStack 로고는 미국 및 기타 국가에 등록된 OpenStack Foundation의 등록 상표/서비스 마크 또는 상표/서비스 마크이며, OpenStack Foundation의 허가 하에 사용됩니다. Red Hat은 OpenStack Foundation 또는 OpenStack 커뮤니티와 제휴, 보증, 후원 관계에 있지 않습니다.