본문 바로가기
클라우드

가상머신(VM)이란?

by oncerun 2021. 2. 5.
반응형

우선 가상화가 무엇인지 알아보자

 

  가상화의 정의를 내리면 소프트웨어로 하드웨어 기능을 시뮬레이션하여 가상 컴퓨터 시스템을 생성하여 하나의 서버에서 둘 이상의 가상 시스템과 다수의 운영체제 및 애플리케이션을 실행할 수 있게 하며, 이에 따라 규모의 경제성, 높은 효율성과 같은 이점을 누릴 수 있습니다. 여기서 소프트웨어는 하이퍼바이저라는 것인데 호스트 컴퓨터에서 다수의 운영 체제를 동시에 실행하기 위한 논리적인 플랫폼입니다.

 

 가상화에도 여러 가지 종류가 있습니다. 

  • 전 가상화(Full-Virtualization)
  • 반 가상화(Para-Virtaulization)
  • 하드웨어 지원 가상화(Hardware assisted Virtualization)

1) 전 가상화는 하드웨어를 완전히 가상화하는 방식으로 정해진 룰에 따라 생성하기 때문에 가상화 생성이 쉽습니다. 다만 Guest OS가 작동을 하기 위해서 하이퍼바이저가 Binary Translation이라는 작업을 하기 때문에 가상화 속도가 느립니다.

 

2) 반 가상화는 하드웨어를 완전히 가상화하지 않는 방식으로 각 게스트 OS에서 Binary Translation을 미리해서 하이퍼바이저에게 전달해주기 때문에 하이퍼바이저는 가상화 OS의 관리적인 문제들만 다루면 된다는 것이다. 이 것은 상당히 빠른 속도 작동합니다. 하지만 이 이야기는 게스트 OS의 커널을 수정해야 한다는 점이 존재한다. 

 

3) 하드웨어 지원 가상화는 CPU의 성능 발달로 CPU가 최적화 역할을 대신해줍니다. 반 가상화에서 게스트 OS의 커널을 수정했지만 이 방식에서는 게스트 OS의 커널을 수정하지 않고 Binary Translation을 CPU가 역할을 대신해 줍니다.

대부분은 HVM을 사용하는 추세입니다. 

 

 가상머신(Virtual Machine, VM)은 가상 머신(Virtual Machine, VM)은 물리적 하드웨어 시스템(오프 프레미스 또는 온프레미스에 위치)에 구축되어 자체 CPU, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고 가상 컴퓨터 시스템으로 작동하는 가상 환경입니다. 하이퍼바이저라 불리는 소프트웨어는 하드웨어에서 가상 머신의 리소스를 분리하고 적절히 프로비저닝하여 VM에서 사용할 수 있도록 합니다. 

 

단어에 대해서 조금 더 이해를 해봅시다.

 

 온프레미스 원격 환경이아닌 서버실, 컴퓨터를 갖추고 운영하는 형태이다. 전통적인 방식으로 클라우드 컴퓨팅이 활성화되기까지, 즉 아마존이 클라우드 서비스를 제공하기 전까지 대부분 회사 내의 특정 장소에 서버 구현에 필요한 장치들과 인력을 투입하여 자체적으로 운영하는 방법이다. 그렇기 때문에 서버의 유지보수면에서는 상당한 노력이 들어갔다.

 

 오프프레미스를 설명하기 전 클라우드 컴퓨팅을 설명하지 않을 수 없는데, 간단히 말해서 네트워크를 통해 물리적인 자원, 또는 소프트웨어를 제공받는 것이 클라우드 컴퓨팅이라고 한다. 이러한 클라우드 서비스에는 서버 또는 서버와 더불어 개발할 수 있는 환경 또는 필요한 서비스를 서버에 구현하거나, 설치하지 않아도 네트워크를 통해 제공받을 수 있다. 이를 각 각 IaaS, PaaS, SaaS라고 칭한다.  즉 온프레미스처럼 물리적인 장치나 사이트 운영시 필요한 서비를 직접 갖추지 않아도, 네트워크를 통해 제공받는 운영 형태를 오프 프레미스라고 한다.

 

또한 자주 사용되는 용어로는 하이퍼바이저, 프로비저닝이 있습니다.

 

하이퍼바이저란? 

 - 하이퍼바이저를 가장 간단히 이야기하면 다음과 같습니다. 가상머신을 생성하고 구동하는 소프트웨어입니다.

보통 VMM(Virtual Machine Monitor)라고도 불리는 하이퍼바이저는 운영체제와 가상 머신의 자원을 분리해 VM의 생성과 관리를 지원합니다. 

 한 운영체제에서 가상머신을 이용해 다른 운영체제를 설치한다는 말 많이 들어보셨을 겁니다. 이때 우리는 처음 설치된 운영체제를 호스트 OS라고하며 그 위에 게스트 OS를 설치한다고 합니다. 여기서도 동일하게 하이퍼바이저로 사용되는 물리 하드웨어를 호스트, 리소스를 사용하는 VM을 게스트라고 합니다. 

모든 하이퍼바이저에서 VM을 실행하려면 메모리 관리 프로그램, 프로세스 스케줄러, I/O(입력/출력) 스택, 기기 드라이버, 보안 관리 프로그램, 네트워크 스택과 같은 운영 체제 수준의 구성 요소가 필요합니다.

 

하이퍼바이저는 TYPE1 , TYPE2가 있습니다.  이 종류를 나누는 기준은 하이퍼바이저가 수행되는 위치에 있습니다.

 

 TYPE1은 호스트의 하드웨어에서 직접 구동되어 게스트 운영 체제를 관리합니다. 호스트 운영 체제 대신 VM 리소스는 하이퍼바이저에 의해 하드웨어에 직접 예약됩니다. 이러한 유형의 하이퍼바이저는 엔터프라이즈 데이터 센터와 서버 기반 환경에서 가장 일반적으로 사용됩니다.

 

 TYPE2는 호스트 하이퍼바이저로 불리며 기존의 운영 체제에서 소프트웨어 레이어 또는 애플리케이션으로서 구동됩니다.

호스트 운영 체제에서 게스트 운영 체제를 추상화하는 방식으로 작동합니다. VM 리소스는 호스트 운영 체제에 따라 예약된 후 하드웨어에 대해 실행됩니다. 

유형 2 하이퍼바이저는 개인 컴퓨터에서 여러 개의 운영 체제를 구동하려는 개인 사용자에게 이상적입니다. 

 

 

가상화 기술과 컨테이너 기술 

 

가상화 기술은 하이퍼바이저를 통해서 별도의 OS를 가지고 각각 애플리케이션을 실행하는 것이며 OS환경 자체를 통째로 가상화합니다.

컨테이너 기술은 호스트OS위에 컨테이너 관리 소프트웨어(EX :쿠버네 이티스) 올리고 각 컨테이너마다 실행환경과 애플리케이션을 독립적으로 구성해 실행하는 것을 이야기합니다. 즉 하나의 호스트 OS에서 멀티 OS환경을 구성합니다.

반응형

'클라우드' 카테고리의 다른 글

멀티테넌시  (0) 2021.10.31
클라우드 서비스 이해  (0) 2021.10.30
클라우드 아키텍처  (0) 2021.10.30
클라우드  (0) 2021.10.24
클라우드 서비스란 뭐지?  (0) 2021.02.02

댓글