가상화

KVM이란 무엇일까요?

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

KVM은 Linux의 일부로서 Linux 2.6.20 이상을 사용한다면 KVM이 이미 제공되어 있는 것입니다. KVM은 2006년에 처음으로 발표되었으며 1년 후에 메인라인 Linux 커널 버전에 통합되었습니다. KVM은 기존 Linux 코드의 일부이므로 추가 엔지니어링 없이도 새로운 Linux 기능과 수정된 기능, 한 차원 높은 기능을 모두 바로 사용할 수 있습니다.


KVM은 어떻게 작동할까요?

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


KVM 구현

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

KVM 기능

간단히 말해서, KVM은 Linux입니다. 즉, 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는 NUMA(Non-Uniform Memory Access)와 KSM(Kernel Same-page Merging)을 포함한 Linux의 메모리 관리 기능을 그대로 제공합니다. VM 메모리는 스왑 기능과 대용량 지원으로 성능을 향상하며 디스크 파일에서 이를 공유하거나 지원할 수 있습니다.

라이브 마이그레이션

KVM은 실행 중인 VM을 물리적 호스트 사이에서 서비스 중단 없이 이동할 수 있는 라이브 마이그레이션을 지원합니다. VM이 가동 상태를 유지하고 있고 네트워크 연결이 활성화된 상태에서 애플리케이션이 계속 실행되며 VM이 재배치됩니다. 또한 KVM은 VM의 현재 상태를 저장하므로 나중에 이 상태에서 다시 시작할 수 있습니다.

성능 및 확장성

KVM은 게스트 머신과 요청이 증가할 경우 수요 로드에 맞춰 확장하는 등 Linux의 성능을 그대로 제공합니다. KVM은 매우 까다로운 애플리케이션 워크로드를 가상화할 수 있으며, OpenStack®을 통해 데이터센터와 프라이빗 클라우드 등의 여러 엔터프라이즈 가상화를 셋업합니다.

스케줄링과 리소스 제어

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

짧은 지연 시간과 향상된 우선 순위 지정

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

KVM 관리

단일 워크스테이션에서 실행되는 몇 개의 VM을 관리 툴 없이 수동으로 관리할 수 있습니다. 대기업은 가상 환경과 그 기반이 되는 물리 하드웨어와 연결되어 리소스 관리를 단순화하고, 데이터 분석을 강화하고, 운영을 간소화하는 가상화 관리 소프트웨어를 사용합니다. Red Hat은 바로 이를 위해 Red Hat Virtualization을 만들었습니다.


KVM과 Red Hat

KVM이 Red Hat의 모든 가상화 제품을 위한 유일한 하이퍼바이저이니만큼, Red Hat은 KVM 커뮤니티에 기여하여 커널 코드를 지속적으로 개선하고 있습니다. 그러나 KVM은 Linux의 일부이므로 Red Hat Enterprise Linux에 이미 포함되어 있습니다. 그런데도 Red Hat Virtualization을 사용해야 하는 이유는 무엇일까요?

Red Hat은 2가지 버전의 KVM을 제공합니다. Red Hat Enterprise Linux에 포함된 KVM은 기본 관리 기능과 함께 모든 하이퍼바이저 기능을 갖추고 있으므로 고객이 단일 호스트에서 최대 4개의 격리된 가상 머신을 실행할 수 있습니다. Red Hat Virtualization에는 개수 제한 없이 게스트 머신을 관리할 수 있는 고급 버전의 KVM이 포함되어 있습니다. 이 KVM은 데이터센터 가상화, 기술 워크스테이션, 프라이빗 클라우드, 개발 또는 프로덕션에 사용하기에 적합합니다.

레거시 애플리케이션을 실행하기 위해 오래된 운영 체제가 필요하신가요? 위험이 절감된 환경에서 새로운 애플리케이션의 파일럿 테스트를 수행할 수 있다면 어떨까요? Red Hat Enterprise Linux를 기본 하이퍼바이저로 설정하면 단일 호스트에서 최대 4개의 격리된 VM을 실행할 수 있습니다.

이 솔루션 하나면 충분합니다. 베어메탈 하드웨어에서 오픈소스 또는 독점 시스템에 이르기까지 어느 곳에나 가상 머신을 설치하고, 가상 머신의 처리와 관리를 위한 고급 하이퍼바이저 및 관리 플랫폼을 통해 수십 개 또는 수백 개의 가상 머신을 배포할 수 있습니다.

OpenStack 워드 마크 및 Square O Design은 미국 및 기타 국가에서 함께 또는 따로 쓰이는 OpenStack Foundation의 상표 또는 등록 상표이며, OpenStack Foundation의 허가하에 사용됩니다. Red Hat은 OpenStack Foundation 또는 OpenStack 커뮤니티와 아무런 제휴, 보증, 후원 관계에 있지 않습니다.

가상화의 더 큰 가능성을 살펴보세요