이달의 IT용어 - 가상화 용어

2014-03-21     PC사랑
남는 시스템 자원을 효과적으로 활용하자!
 
가상화 용어
 
보통 우리는 군 계급이 올라갈수록, 특히 사병 중에서 정점인 병장이 일을 잘 한다고 알고 있다. 그러나 보상심리 때문에 병장이 일하는 경우는 보기 힘들다. 하지만 행정보급관은 그런 걸 봐주지 않는다. 내무반에 몰래 숨어 있는 병장을 귀신같이(?) 잡아내어 일을 시키려는 행보관처럼, PC에서도 일 잘하는 잉여자원을 효과적으로 사용하면 어떨까? 가상화 기술의 핵심은 여기에 있다.
김희철 기자
 
 
 
가상화

가상화란 하나의 컴퓨터에서 남는 시스템 자원으로 다수의 운영 체제를 돌리는 것을 말한다. 좀 더 자세하게 표현하면, 컴퓨팅 리소스의 추상화를 통해 다수의 운영 체제가 하나의 물리적 서버를 공유하는 것을 말한다. 추가적인 설명을 붙이자면, ‘컴퓨팅 리소스의 추상화’란 말은 시스템 자원에서 핵심적인 부분(남는 부분)을 간추려낸다고 보면 되겠다. 가상화를 이용하는 목적은 서버 유지비용 절감과 관리부분을 개선하는 것이다. 또한 가상화를 개인적인 용도로 사용할 경우에는, 평범한 방법으로는 이용하기 힘든 운영체제를 써 볼 수 있다. 한편 우리가 흔히 즐기는 고전 게임 에뮬레이터도 가상화에 속한다.
 
하드웨어 가상화(하이퍼바이저)

하이퍼바이저는 이용중인 실제 컴퓨터와 가상으로 사용하려는 운영체제를 연결해 주는 가상화 소프트웨어이다. 드라이버가 내장되어 있고 부팅이 된다는 점만 보면 꼭 OS 같지만, 프로그램 실행이 되지 않기때문에 OS라고 할 수는 없고, 바이오스 쪽에 더 가깝다고 할 수 있다. 가상화 머신 시스템(Virtual Machine Monitor, 줄여서 Vmm)이라고 불린다.
 
Type 1
네이티브(베어메탈)
하이퍼바이저 (Native Hypervisor or Bare-Metal Hypervisor)
 
하이퍼바이저가 하드웨어에서 바로 실행된다. 호스트 OS(컴퓨터를 사용할 때 기본이 되는 OS)로 먼저 부팅할 필요가 없고 하이퍼바이저로 부팅이 가능하다. 호스트 OS에 할당할 리소스가 필요 없기 때문에 CPU나 메모리 용량에 대한 요구가 적어 성능이 좋다.
 

Type 2
호스트형 하이퍼바이져 (Hosted Hypervisor)
 
호스트 OS밑에서 가상으로 실행되는 OS를 게스트 OS라고 부른다. 하드웨어에서 먼저 호스트 OS가 시작되고, 그 OS 상에서 하이퍼바이저가 실행되어 게스트 OS를 구동시키기 때문에 호스트형 하이퍼바이저라고 불린다. 윈도우로 컴퓨터를 부팅시키고 윈도우 상에서 Vmware와 같은 프로그램으로 리눅스 우분투를 부팅하는 방식을 생각하면 된다. 하이퍼바이저가 OS에서 실행되기 때문에 CPU나 메모리 용량에 대한 요구가 크다.
 

 
전가상화

전가상화는 하드웨어를 완전히 에뮬레이션해서 가상화하는 방식이다. OS는 하드웨어를 직접 인식하지만 사실 이건 하이퍼바이저가 가상으로 만든 하드웨어다. 매트릭스 안에서 아무것도 모르고 살아가던 네오처럼 안정적이고 ‘바깥’의 존재를 전혀 모른다. 하이퍼바이저는 OS와 하드웨어 사이에서 미들웨어 역할을 하면서 OS가 멋모르고 하드웨어를 독점하려는 곤란한 명령이 발생하면 중재해준다. OS가 상황을 잘 모르기 때문에 성능 저하가 크다. 게스트OS는 수정할 필요 없이 그대로 돌아간다.(제한 없이 다양한 OS를 이용할 수있다.)
 
 
반가상화

반가상화는 하드웨어의 에뮬레이션 없이 하이퍼바이저가 제공하는 API(운영체제와 응용프로그램 사이의 통신에 사용되는 언어)를 통해 OS를 실행하는 가상화 방식이다. 하드웨어는 하이퍼바이저가 제공하는 API를 통해 인식할 수 있다. 여기서 OS는 매트릭스를 벗어나 오프라인 세상으로 나온 네오처럼 자기가 하드웨어를 가지고 있지 않다는 걸 알고 있다. 그 때문에 하드웨어를 독점하려는 명령은 하지 않고 하이퍼바이저의 통제에 얌전히 따른다. 이제 OS는 주어진 상황을 이해하고 말을 잘 들어서 리소스 절약과 함께 높은 성능을 유지할 수 있다. 게스트 OS는 하이퍼바이저의 API를 이용하게 수정되어야 한다(오픈 소스가 아닌 OS, 즉 수정할 수 없는 OS는 사용할 수 없다).
 

전가상화와 반가상화의 차이는 매트릭스 안의 네오와 오프라인 세계의 네오로 생각하면 된다.
 
 
하드웨어 에뮬레이션

하나의 하드웨어 시스템이 다른 시스템을 모방하는 것에서 한술 더 떠 똑같이 따라하려는 것을 뜻한다. CPU를 포함해 모든 하드웨어를 가상으로 구현해 실행시킨다. 모든 명령어가 가상화된 하드웨어에 맞춰져야 하기 때문에 느려질 수 있다는 게 단점이다. 고전 게임을 구동하는 ‘Mame’, 도스 환경을 구현해 주는 ‘도스박스’ 등은 에뮬레이터에 속한다.
 

고전 게임을 실행시켜 주는 Mame는 대표적인 에뮬레이터다.
 
가상 메모리

‘메모리가 부족합니다. 다른 프로그램을 종료한 다음 다시 시도하십시오.’ 저사양 컴퓨터로 윈도우를 사용할 때 친숙하게 보였던 가슴 아픈 메시지였다. 그렇지만 하늘이 무너져도 솟아날 구멍은 있는 법이다. 가상 메모리는 주어진 램 이상이 필요한 프로그램을 사용하기 위해 컴퓨터에서 사용하는 임시 저장소다. 컴퓨터에서 프로그램을 실행하는 데 필요한 램이 부족한 경우, 윈도우에서는 가상메모리를 사용해 보충한다. 가상 메모리는 컴퓨터의 램을 하드디스크의 임시 공간과 결합하여 램이 부족하면 데이터를 페이징 파일이라는 공간으로 이동시킨다. 그러면 램이 확보되어 컴퓨터에서 작업을 완료할 수 있다. 단점은 하드디스크는 램보다 훨씬 느리기 때문에 가상 메모리는 어디까지나 임시방편이라는 것이다.
 
메모리가 부족할 때 가상 메모리가 대안이 될 수 있다.