가상머신




개요


가상머신의 개념에 대해 알아보고 구조, 종류에 대해 공부해보겠다.


가상머신


가상머신의 기본 개념은 단일 컴퓨터의 하드웨어를 여러 가지 실행 환경으로 추상화하여 개별 환경이 자신의 개인용 컴퓨터에서 실행되고 있다는 착각을 불러일으키는 것이다.

각 시스템들은 자신이 네이티브 운영체제이고 모든 권한이 있다고 생각한다.

간단하게 가상 머신은 실제 컴퓨터처럼 동작하는 컴퓨터 파일(이미지)이다.




가상머신의 구조




가상 머신의 구현은 여러 구성요소를 포함한다.

호스트 : 가상 머신을 실행하는 기본 하드웨어 시스템

가상 머신 관리자 : VMM 또는 하이퍼바이저라고 불리며 호스트와 동일한 인터페이스를 제공하여 가상 머신을 생성하고 실행한다. 가상화를 제공하는 소프트웨어이다.

커널: 운영 체제(OS)의 주요 구성 요소이며 컴퓨터 하드웨어와 프로세스를 잇는 핵심 인터페이스이다. 메모리 관리, 프로세스 관리, 장치 드라이버, 시스템 호출 및 보안의 역할을 한다.

게스트 : 호스트의 가상 복사본이 제공되는 대상(운영체제)




가상머신의 종류


가상 시스템을 생성할 때 생성자는 VMM에 특정 매개 변수를 제공한다.

이러한 매개 변수에는 일반적으로 VMM이 고려해야할 CPU의 수, 메모리 크기, 네트워크, 저장장치 세부 사항이 포함된다.

VMM은 이러한 매개 변수를 사용하여 가상 머신을 생성한다.

간단하게 가상 머신이 물리적 서버에서 필요한 리소스를 순서대로 가져오도록 할 수 있게 하는 역할을 하는게 하이퍼바이저(VMM)이다.

가상머신에는 크게 2가지가 있는데 시스템 가상머신, 프로세스 가상머신이 있다.

간단하게 시스템 가상머신은 vmware나 virtualbox같이 완전한 운영체제를 실행할 수 있는 환경을 말한다.

프로세스 가상 머신은 단일 프로그램만 실행하는 환경을 말한다. 프로그래밍 언어의 하드웨어 추상화에 사용되며 예시로 자바가상머신(JVM)이 있다.

시스템 가상머신의 소프트웨어인 하이퍼바이저는 3가지의 종류가 있다.


유형 0 하이퍼바이저


펌웨어를 통해 가상 머신 생성 및 관리를 지원하는 하드웨어 기반 VMM

이 유형은 실제의 하드웨어 실행에 매우 가까우며 각각의 게스트 운영체제는 하드웨어 부분집합을 가진 네이티브 운영체제라고 할 수 있다. 이 유형의 예시로는 IBM LPAR, Oracle LDOM이 있다.




유형 1 하이퍼바이저


가상화를 제공하기 위해 구축된 운영체제와 유사한 소프트웨어 간단하게 하드웨어에 직접 접근하여 실행하는 가상머신 종류 이 유형은 커널모드에서 실행되며 게스트 가상 머신을 생성, 실행 및 관리하는 데 필요한 환경과 기능을 제공한다. 각 게스트는 운영체제, 장치드라이버, 응용 프로그램등 완전한 네이티브 시스템과 같은 소프트웨어를 모두 포함한다. VMware ESX, Joyent SmartOS, Citrix XenServer이 유형 1 하이퍼바이저에 속한다.




유형 2 하이퍼바이저


표준 운영체제에서 실행되지만 게스트 운영체제에 VMM 기능을 제공하는 응용 프로그램 이 유형의 하이퍼바이저는 다른 운영체제에서 실행되는 응용 프로그램으로 가상화가 되고 있음을 모른다. 호스트의 지원이 없으므로 프로세스 단계에서 모든 가상화 활동을 수행한다. 이 유형의 예시로는 VMware Workstation, VirtualBox, Parallels 등이 있다.






가상머신의 사용이유


  • 호스트 환경에서 수행하기에 위험한 특정 작업을 수행하기 위해 사용.
  • 유연성과 이식성
  • 가상 머신은 유지 및 관리가 간편하며 범용성이 뛰어남
  • 하나의 물리적 컴퓨터에서 여러 운영 체제 환경을 실행할 수 있음