Jump to section

가상 머신(VM)이란?

URL 복사

가상 머신(Virtual Machine, VM)은 일종의  컴퓨팅 환경으로, 격리된 시스템으로 작동하며 하드웨어 리소스 풀에서 만들어진 자체 CPU, 메모리, 네트워크 인터페이스, 스토리지를 포함합니다. 하이퍼바이저라고 불리는 소프트웨어가 필수 컴퓨팅 리소스를 격리하고 VM의 생성과 관리를 지원합니다.

VM을 실행하는 물리 머신을 호스트 머신, 호스트 컴퓨터, 호스트 운영 체제 또는 간단히 호스트라고 부르며, 해당 리소스를 사용하는 여러 VM을 게스트 머신, 게스트 컴퓨터, 게스트 운영 체제 또는 간단히 게스트라고 부릅니다. 하이퍼바이저는 CPU, 메모리, 스토리지 등의 컴퓨팅 리소스를 처리하는 리소스 풀로, 기존 게스트 간 또는 새로운 가상 머신에 쉽게 재배치할 수 있습니다.

VM을 사용하면 하나의 컴퓨터에서 여러 운영 체제를 동시에 실행할 수 있습니다. 예를 들면 Linux® 배포판을 MacOS 또는 Windows 시스템에서 실행하는 경우입니다. 각 운영 체제는 호스트 하드웨어의 운영 체제나 애플리케이션과 동일한 방식으로 실행되므로 VM 내에서 에뮬레이션되는 최종 사용자 환경은 물리 머신에서 실행되는 실시간 운영 체제 환경과 거의 동일합니다. 

가상화는 하드웨어에 종속된 리소스를 사용하는 기술을 뜻합니다. 가상화를 사용하면 물리 머신의 기능을 여러 사용자 또는 환경에 배포해 최대한 활용할 수 있습니다.

가상화 유형에는 다음이 포함됩니다.

  • 데이터 가상화: 데이터 소스를 통합하여 단일한 방식으로 신속히 공급합니다.

  • 데스크톱 가상화: 시뮬레이션된 여러 데스크톱 환경을 중앙 관리자를 통해 배포하고 제어합니다.

  • 서버 가상화: 관리자가 특정 기능을 제공하는 구성으로 서버를 분할합니다.

  • 운영 체제 가상화: 단일 컴퓨터에서 여러 운영 체제를 실행할 수 있습니다.

  • 네트워크 기능 가상화: 디렉터리 서비스, 파일 공유, IP 구성과 같은 네트워크 기능을 분리하여 여러 환경에 배포합니다.

VM은 단일 데이터 파일에서 정의될 수 있습니다. 즉, 디지털 파일처럼 컴퓨터 간 이동이 가능하며 어느 컴퓨터에서 열든 동일하게 작동합니다. 하이퍼바이저는 하드웨어를 관리하며 물리적 리소스를 가상 환경과 분리합니다. 리소스는 필요에 따라 물리 환경에서 VM으로 파티셔닝됩니다. 예를 들어 하이퍼바이저가 스케줄을 관리하는 동안에도 물리적 하드웨어는 여전히 실행되므로 CPU는 VM의 요청에 따라 CPU 명령을 실행합니다.

VM이 실행 중이고 사용자나 프로그램이 물리 환경에서 추가 리소스를 요구하는 명령을 내리면, 하이퍼바이저가 물리 시스템의 리소스에 대해 해당 요청을 예약합니다. 따라서 VM의 운영 체제와 애플리케이션이 물리적 리소스의 공유 풀에 액세스할 수 있습니다.

Linux® 환경에서 기본 제공되는 하이퍼바이저는 커널 기반 가상 머신(Kernel-based Virtual Machine, KVM)이라고 합니다. 다른 옵션으로는 오픈소스인 Xen과 Microsoft Hyper-V 등이 있습니다.

가상화에 사용할 수 있는 하이퍼바이저에는 2가지 유형이 있습니다.

유형 1

유형 1에 해당하는 하이퍼바이저는 베어 메탈 기반입니다. VM 리소스는 하이퍼바이저가 하드웨어에 직접 예약합니다. KVM은 유형 1 하이퍼바이저의 예시입니다.

유형 2

유형 2에 해당하는 하이퍼바이저는 호스팅됩니다. VM 리소스는 호스트 운영 체제에 대해 예약된 다음 하드웨어에 대해 실행됩니다. VMware Workstation과 Oracle VirtualBox는 유형 2 하이퍼바이저의 예시입니다. 

가상화를 통해 다양한 운영 체제가 동시에 실행되며 가상화된 동일한 하드웨어 리소스를 공유할 수 있습니다. 가상화가 없으면 하드웨어에서 하나의 운영 체제만 실행할 수 있습니다.

VM을 사용하는 주요 이유는 서버 통합 때문입니다. 대부분의 운영 체제와 애플리케이션 배포는 베어 메탈에 배포되는 경우 가용 물리적 리소스를 약간만 사용합니다. 서버를 가상화하면 물리 서버마다 수많은 가상 서버를 배치하여 하드웨어 활용률을 높일 수 있습니다.

이렇게 하면 하드 드라이브 또는 하드 디스크와 같은 물리적 리소스를 추가로 구매할 필요가 없어질 뿐만 아니라 데이터센터에 필요한 전력, 공간, 냉각 정도가 줄어듭니다. VM은 이전에는 하드웨어를 추가해야만 가능했던 페일오버와 이중화를 지원하여 추가적인 재해 복구 옵션을 제공합니다.

VM은 시스템의 나머지 부분으로부터 격리된 환경을 제공하므로 VM 내에서 어떤 대상이 실행되든 호스트 하드웨어에서 실행되는 다른 대상을 방해하지 않습니다.

VM이 격리되므로 새로운 애플리케이션을 테스트하거나 프로덕션 환경을 설정할 수 있다는 장점이 있습니다. 특정 프로세스를 지원하기 위해 단일 목적의 VM을 실행할 수도 있습니다.

가상화는 클라우드 컴퓨팅을 가능하게 하는 기술 중 하나입니다. 퍼블릭 클라우드와 프라이빗 클라우드는 리소스를 공유 풀로 가상화하고, 관리 제어 계층을 추가하고, 자동화된 셀프 서비스 기능을 통해 해당 리소스를 제공합니다.

클라우드를 구성하는 가상화, 관리, 자동화 소프트웨어는 모두 물리적 리소스, 가상 데이터 풀, 관리 소프트웨어, 자동화 스크립트, 고객을 서로 연결하는 운영 체제를 기반으로 합니다.

Red Hat은 오랫동안 오픈소스 가상화 소프트웨어 개발을 주도해왔습니다. IT 팀은 이제 Red Hat® OpenShift® VirtualizationRed Hat OpenShift의 기능)을 통해 가상 머신(VM)을 컨테이너화된 워크플로우로 가져올 수 있습니다. 컨테이너 내에서 VM을 실행하는 팀은 단일 플랫폼에서 컨테이너와 함께 VM을 나란히 배포하고 관리할 수 있습니다. 따라서 조직은 기존 가상화 제품의 혜택을 누리면서 현대적인 애플리케이션 플랫폼의 편의성과 속도를 함께 활용할 수 있습니다.

기존 가상 머신의 경우 직관적인 무료 마이그레이션 툴을 사용하여 다른 플랫폼에서 OpenShift 애플리케이션 플랫폼으로 마이그레이션할 수 있습니다. 그 결과로 얻는 VM은 동일한 Red Hat OpenShift 노드에서 컨테이너와 함께 실행됩니다.

추가 자료

문서

컨테이너와 VM 비교

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

문서

가상 머신(VM)이란?

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

문서

KVM이란 무엇일까요?

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

가상화에 대한 자세한 내용