가상 머신(Virtual Machine)
"하나의 컴퓨터 안에서, 또 다른 컴퓨터(운영체제)를 소프트웨어로 흉내 내는 것"
즉, 진짜 컴퓨터는 하나인데, 마치 여러 대의 컴퓨터가 있는 것처럼 만들어서 운영하는 기술이다.
ex)
- 윈도우에서 리눅스를 써야 하는 상황
*서버 운영, 도커, 개발 등..- 리눅스를 위해 다른 컴퓨터를 살 수는 없음.
→ 내 컴퓨터 안에, 가상의 컴퓨터를 하나 더 만들어서 그 안에 리눅스를 설치한다.
가상머신의 구조
[실제 컴퓨터 (호스트 OS: Windows)] ↓ [가상머신 소프트웨어 (예: VMware, VirtualBox, Hyper-V)] ↓ [가상의 컴퓨터 (가상 CPU, RAM, 디스크)] ↓ [게스트 OS (예: Ubuntu, CentOS, etc.)]
가상머신의 특징
항목 설명 독립성 가상머신은 실제 컴퓨터와 완전히 분리된 환경처럼 동작함. 다른 OS 설치 가능. 실험 용이 OS를 날려도 본체는 멀쩡함. 테스트 환경으로 아주 유용함. 여러 OS 실행 가능 한 대 컴퓨터에서 Windows, Linux, macOS를 동시에 실행할 수 있음. 느릴 수 있음 진짜 하드웨어를 100% 쓰는 게 아니기 때문에 성능은 다소 떨어짐.
가상머신을 만드는 소프트웨어 예시
- Windows 전용:
- Hyper-V (윈도우에 기본 내장됨)
- 모든 플랫폼 공용:
- VirtualBox (오라클 제품)
- VMware (유료/무료 둘 다 있음)
- Parallels (Mac 전용)
가상머신 vs 도커
항목 가상머신(VM) 도커(Docker) OS 격리 전체 OS 격리 (완전 분리) OS 공유 (리눅스 커널 공유) 속도 느림 빠름 자원 사용 무겁고 RAM/디스크 많이 필요 가벼움 사용 목적 실험, 멀티 OS 운영 등 배포, 마이크로서비스 등
정리
가상머신은 '소프트웨어로 만든 가짜 컴퓨터'이다.
내 컴퓨터 안에 또 다른 운영체제를 설치할 수 있게 해준다.
Docker보다 무겁지만, 완전히 분리된 환경을 원할 때 아주 유용하다.
가상머신이 가능한 이유
CPU와 메모리 같은 하드웨어 자원을 ‘가짜로 흉내 내는 기술’이 발전했기 때문이다.
이걸 **가상화 기술(Virtualization Technology)**이라고 한다.
하이퍼바이저(Hypervisor) - 가상화의 핵심
가상머신을 실행시키기 위해선 '하이퍼바이저'라는 소프트웨어가 필요하다.
하이퍼바이저란?
실컴퓨터(호스트)의 CPU, 메모리, 하드디스크, 네트워크 자원 등을 나눠서 가상 머신에게 배분해주는 소프트웨어이다.
*컴퓨터 자원(CPU, RAM, 저장소 등) 중 남는 공간이나 여유 자원을 가상머신에게 나눠준다.
🎯 하이퍼바이저의 두 종류
종류 설명 예시 Type 1 (Native) 운영체제 없이 하드웨어 위에서 직접 실행됨 Hyper-V, VMware ESXi Type 2 (Hosted) 운영체제 위에서 실행됨 VirtualBox, VMware Workstation
ex)
- 하이퍼바이저 설치
→ 내 컴퓨터가 "가짜 하드웨어 자원"을 만들 준비를 한다.- 가상 머신 생성
→ CPU 2개, RAM 4GB, 디스크 20GB짜리 가짜 컴퓨터 하나 생성한다.- 게스트 OS 설치
→ 이 가상 컴퓨터에 Ubuntu, CentOS 같은 운영체제를 설치한다.- 운영체제가 가짜를 진짜처럼 인식
→ 게스트 OS는 이걸 진짜 하드웨어라고 착각하고 그대로 동작한다.
하드웨어가 속는 이유
인텔, AMD 같은 CPU 제조사들이
"하드웨어 가상화 지원 기술(Intel VT, AMD-V)"을 CPU 안에 내장했기 때문이다.
그래서 소프트웨어만으로도
"가상 CPU", "가상 RAM", "가상 디스크"를 만들 수 있게 된 것이다.
정리
질문 답변 가상머신이 가능한 이유 하드웨어 자원을 가짜로 흉내 내는 가상화 기술 덕분에 가능함 자원을 흉내내는 주체 하이퍼바이저가 실제 자원을 쪼개서 가짜로 만듦 운영체제가 속는 이유 CPU 자체가 가상화를 지원해서, 진짜처럼 동작함