가상 머신
- 컴퓨팅 환경을 소프트웨어로 구현한 것
- 가상 머신은 실제 컴퓨터의 가상 표현 또는 에뮬레이션, 이를 종종 게스트라고 하며 이를 실행하는 실제 시스템을 호스트라고 함, 이를 이용하며 하나의 물리적 시스템에서 각각 자체 운영 체제 (OS)와 애플리케이션을 지닌 다수의 가상 머신을 만들 수 있음
즉, 가상적인 환경 안에서 독립적으로 동작하는 SW라고 생각하면 되는데 두 가지 유형이 있음
시스템 가상 머신
시스템 가상 머신은 하드웨어 가상 머신이라고 하며 각 OS를 실행하는 가상 머신 사이의 기초가 되는 물리 컴퓨터를 다중화함, 가상화를 제공하는 소프트웨어 계층은 하이퍼바이저라고 함
각각의 VM은 서로 독립되어 있어 서로에게 영향을 미치지 않고 독립적으로 관리할 수 있음
또한 VM들은 자신만의 하드웨어를 하이퍼바이저에게 할당받고 자신만의 OS를 가질 수 있음
정리, 시스템 가상 머신은 하이퍼바이저 위에서 독립적인 하드웨어 + OS + 네트워크 등을 가지는 소프트웨어 집합
프로세스 가상 머신
Java JVM , Docker 등 어떠한 플랫폼에서도 동작하는 플랫폼 독립성을 가지는 기술
즉 독립적인 프로세스 공간을 제공하여 OS + 라이브러리 등 독립적인 시스템을 제공하는 기술
정리, 프로세스 가상 머신은 Host OS위에서 독립적인 공간을 갖는 프로세스임
왜 VM을 사용?
VM을 사용하는 주요 이유는 서버 통합 때문임. 대부분의 운영 체제와 애플리케이션 배포는 베어메탈에 배포되는 경우 소량의 가용 물리적 리소스만을 사용한다. 서버를 가상화하면 각 물리 서버에 수많은 가상 서버를 배치하여 하드웨어 활용률을 개선할 수 있음
참고
- https://www.redhat.com/ko/topics/virtualization/what-is-a-virtual-machine
- https://www.ibm.com/kr-ko/topics/virtual-machines
'Virtualization' 카테고리의 다른 글
Virtual Machine(VM) VS Docker (1) | 2024.02.04 |
---|---|
가상화와 하이퍼바이저 (Hypervisor) (1) | 2024.02.04 |