Search

가상 머신과 가상화

태그
개념
생성 일시
2022/11/17 08:58

가상머신이란?

가상 머신(Virtual Machine, VM)은 물리적 하드웨어 시스템에 컴퓨팅 환경을 가상화 기술을 통해 소프트웨어로 구축한 물리적 컴퓨터의 디지털 버전이다. 애플리케이션과 운영체제를 포함하여 자체 CPU, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고, 컴퓨터와 거의 동일한 모든 기능을 수행할 수 있는 컴퓨터의 가상화 된 인스턴스이다. 가상 머신은 시스템의 나머지 부분과 격리 되며, 서버처럼 하나의 하드웨어에 여러 가상 머신이 존재할 수 있다.
하이퍼바이저라고 불리는 소프트웨어에서 컴퓨팅 리소스에 액세스해서, 하드웨어에서 가상 머신의 리소스를 분리하고 필요에 따라 적절히 프로비저닝 및 배포할 수 있는 풀로 추상화하여 여러 가상 머신이 단일 물리적 머신에서 실행되도록 한다. 하이퍼바이저가 탑재된 물리적 머신을 호스트 머신, 호스트 컴퓨터, 호스트 운영 체제 또는 간단히 호스트 라고 부르고, 리소스를 사용하는 여러 가상 머신을 게스트 머신, 게스트 컴퓨터, 게스트 운영 체제 또는 간단히 게스트 라고 부른다. 또한 가상 머신을 사용하면 macOS 노트북에 Linux 배포판을 설치한 경우처럼 단일 컴퓨터에서 다른 여러 운영 체제를 동시에 실행할 수 있다.
하이퍼바이저
가상 머신 모니터라고도 하는 하이퍼바이저는 가상 머신을 생성하고 실행하는 프로세스다. 하이퍼바이저는 메모리 및 처리와 같은 단일 호스트 컴퓨터의 리소스를 가상으로 공유하여 호스트 컴퓨터가 여러 게스트 가상 머신을 지원할 수 있도록 한다.
프로비저닝 프로비저닝(provisioning)은 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다.
추상화 추상화(abstraction)는 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것을 말한다.

가상 머신의 작동 방식

1.
Bare-metal Architecture : 하드웨어 위에 하이퍼바이저 → 가상머신
2.
Hosted Architecture : OS 위에 하이퍼바이저 → 가상머신

가상 머신의 장점과 사용하는 이유

하나의 컴퓨터로 동시에 서로 다른 2개 이상의 운영체제를 실행하고 싶은 경우
하나의 컴퓨터의 자원을 여러명에게 나누어주고 싶은데, 각 사용자간의 상호간섭을 없애고 싶을 때
컴퓨터의 다른 부분에는 영향을 주지 않는 독립환경을 만들고 싶을 때
악성코드 분석
개발 중인 서비스의 여러 테스트 환경 구축
각종 인증, 보안프로그램을 많이 깔아야 하는 경우
가상화는 전통적으로 하드웨어에 종속된 리소스를 사용해 유용한 IT 서비스를 만들 수 있는 기술이다. 가상화를 사용하면 물리적 머신의 기능을 여러 사용자 또는 환경에 배포해 물리적 머신을 최적화하여 최대한 활용할 수 있다.
예시를 통해 설명하자면, 하나는 메일 서버이고, 다른 하나는 웹 서버이고, 나머지 하나는 내부 레거시 애플리케이션을 실행하는 3개의 물리 서버가 용량의 30%만 사용하고 있다고 가정해보자.
일반적으로 1개의 서버와 1개의 운영 체제, 1개의 태스크와 같이 개별 서버에서 개별 태스크를 실행하는 것이 더 쉽고 안정적인 경우가 많다. 하지만 가상화를 사용하면 메일 서버를 2개의 고유한 서버로 분할해 독립적인 태스크를 처리하고 레거시 애플리케이션을 마이그레이션 할 수 있고 마찬가지로 하드웨어도 더 효율적으로 사용할 수 있다.
여기에 첫 번째 서버를 다시 분할해 사용률을 30%에서 60% 또는 90%까지도 높일 수 있다. 이렇게 하고 나면 빈 서버를 재사용 해 다른 태스크를 처리하거나 모든 서버를 사용 중지해 냉각 및 유지관리 비용을 줄일 수 있다.