가상머신(Virtual Machine)

가상머신은 베어 메탈 환경과 달리 하이퍼바이저 위에서 독립적으로 동작하는 가상의 컴퓨터를 의미하며, Virtual Machine이나 VM이라고 불립니다. 일반적으로 하드웨어 위에서 직접 운영체제를 설치하고 동작하는 시스템을 베어 메탈이라고 부릅니다. 반면에 가상 머신은 에뮬레이션된 가상의 하드웨어에서 운영체제를 설치해서 가상의 컴퓨터로 사용할 수 있습니다. 가상 머신은 베어메탈과 달리 시스템 자원이 허용하는 선에서 자유롭게 다수의 독립된 컴퓨팅 환경을 만들고 사용할 수 있다는 장점이 있습니다. 가상 머신은 시스템 테스트 환경 구축, 애플리케이션 호환성 확인, 보안 및 정량화된 자원 제공, 임시 개발 환경 구축 등 다양한 용도로 사용됩니다.

하이퍼바이저와 가상머신의 동작 원리#

하이퍼바이저는 하드웨어를 에뮬레이션하고 가상 머신과 관련된 다양한 기능들을 제공하는 소프트웨어를 의미합니다. 하이퍼바이저는 가상머신의 이름에서 알 수 있듯이 가상의 하드웨어를 에뮬레이션해서 CPU, 메모리, 디스크, 네트워크 등 가상 자원을 제공합니다. 사용자는 에뮬레이션된 하드웨어에 운영체제를 설치하고 가상의 컴퓨터로 활용할 수 있습니다. 특히 윈도우나 macOS 같은 사용자 운영체제 위에서 동작하는 하이���파이저를 타입2 호스트 하이퍼바이저라고 부르며, VirtualBox, VMWare, Parallels 등을 사용해 비교적 쉽게 사용해볼 수 있습니다.

하이퍼바이저는 시스템 자원이나 하이퍼바이저 소프트웨어의 라이센스에서 허용하는만큼 다수의 시스템을 생성하는 것이 가능합니다. 좀 더 본격적으로 가상머신을 사용하는 경우에는, [베어 메탈 환경에 직접 설치해서 사용할 수 있는 타입1 네이티브 하이퍼바이저를 사용합니다. 타입1 하이퍼바이저로는 VMware ESXi, Microsoft Hyper-V, Xen, KVM 등이 있습니다. 타입1 하이퍼바이저의 경우 일반 사용자보다는 대규모 서버 구축이나 테스트 환경에서 주로 사용됩니다.

이 글에서는 타입1보다는 타입2의 가상머신을 중심으로 소개하고 있습니다. 타입2 하이퍼바이저에서는 베어 메탈에 설치된 OS를 호스트OS라고 부르며, 이 위에서 생성한 가상머신을 게스트OS라고 부릅니다. 특히 타입1 하이퍼바이저의 경우 단순히 하드웨어 에뮬레이션뿐만 아니라, 호스트OS에서 게스트OS를 편리하게 사용하기 위해 심리스 UI 통합, 디스크 공유, 네트워크 설정 등 다양한 편의 기능들을 제공하고 있습니다.

다음으로 대표적인 가상머신 애플리케이션들을 알아보겠습니다.

대표적인 가상머신 애플리케이션들#

가장 유명한 가상머신 애플리메이션으로는 Oracle 사의 VirtualBox가 있습니다. 가상머신에 관심이 있다면 누구나 들어봤을 정도로 유명한 VirtualBox는 AMD64와 Intel64로 대표되는 x86 아키텍처를 에뮬레이션할 수 있는 가상머신 애플리케이션입니다 윈도우, 맥, 리눅스 등을 지원하고 있습니다. VirtualBox는 GPL 라이센스로 개발되고 있습니다.

2023년 초 현재 아직은 불안정하지만 애플 실리콘 M1/M2에서 x86 머신을 에뮬레이션할 수 있는 버전도 릴리스 되고 있습니다.

애플 실리콘에서 x86 가상 머신을 사용하고 싶다면 UTM을 추천합니다. UTM은 qemu 기반으로 동작하는 가상머신 소프트웨어로 공식 웹사이트(무료)나 앱스토어(유료)에서 다운로드 받아 사용할 수 있습니다. 앱스토어 버전은 유료지만, 후원의 성격이 강하며 기능적인 차이는 없습니다.

또 다른 맥의 가상머신 애플리케이션으로는 Parallels가 유명합니다. Parallels는 유료 애플리케이션으로 사용자 친화적인 GUI 환경을 제공하고, 다양한 편의 기능들을 제공합니다.

NAS로 유명한 시놀로지 DSM에서도 Virtual Machine Manager(VMM)을 사용해 가상머신을 생성하고 사용할 수 있습니다. NAS는 서버로도 활용될 수 있기 때문에 가상머신 기능도 유용하게 사용될 수 있습니다만, 개인용 NAS의 경우 CPU나 메모리 사양이 낮은 편이라 가상 머신을 사용하기에는 부적합할 수 있습니다.

윈도우 10이나 윈도우 11 에서는 Microsoft Hyper-V 기능을 활성화해서 가상 머신을 생성하고 사용해볼 수 있습니다. 단, 홈 버전에서는 지원하지 않으며, 프로, 엔터프라이즈, 에듀케이션 64비트 버전에서만 사용할 수 있습니다.

또 다른 대표적인 가상머신 소프트웨어로는 VMWare Workstation이 있습니다. VMWare Workstation은 무료로 사용할 수 있는 Player 버전과 유료로만 제공되는 Pro 버전으로 나뉘어있습니다. 엄밀히 말하자면 Player의 경우 개인용과 비상업 용도의 경우에만 무료로 제공되며, 상업적인 용도로 사용하는 경우 라이센스를 구매해야하니 주의하시기 바랍니다.

개발 환경에서 가상머신 관리를 위한 Vagrant#

가상머신은 프로그래머들이 개발 환경을 관리하는 용도로도 많이 사용됩니다. 하지만 가상 머신 자체가 하나의 컴퓨터이기 때문에 이를 관리하는 건 번거로운 작업이 될 수 있습니다. 커맨드라인 상에서 가상머신을 미리 정의한대로 생성하고 개발 환경으로 사용할 수 있도록 도와주는 도구가 Hashicorp 사의 Vagrant입니다.

Vagrant는 자체적인 하드웨어 에뮬레이션 기능은 없으며, VirtualBox와 같은 다른 가상머신 애플리케이션을 백엔드로 사용해서 가상 머신을 커맨드라인에서 관리할 수 있게 도와주십니다. Vagrant 사용법은 아래 블로그에서도 상세하게 소개하고 있으니 참고해주세요.

LainyZine Profile;
LainyZine
이 컨텐츠는 CC BY-NC-ND 라이센스를 따릅니다. 반드시 링크 형태로 출처를 남겨주세요.