본문 바로가기

데스크탑 가상화(VDI)/VDI란

VDI, 데스크탑 가상화와 서버 가상화

데스크탑 가상화데스크탑가상화


데스크탑 가상화 VDI란


한 시스템 안에서 서비스를 구현하기 위해 사용하는 자원은, 최대치를 기준으로 설계했을 때 최대로 사용하는 경우가 많지 않다. 이런 경우 평소에 남아도는 자원을 활용하여 다수 서비스를 동시에 수행하도록 한다.


동시에 수행하는 사례를 들어 보면


1. 하나의 컴퓨터에 웹브라우저, 엑셀, 파워포인트, 워드 등의 프로그램을 동시에 사용하는 경우,

2. 정해진 범위의 통신 채널을 다수의 사용자가 사용하는 CDMA 통신망의 경우,

3. 하나의 컴퓨터 하드웨어에 가상적으로 다수의 컴퓨터가 동작하도록 구현하는 가상화


등이 있다. 대부분 경우는 최대 사용 가능한 컴퓨터·회선의 성능보다 많은 서비스가 동작되도록 설계돼 있다. 여기서 성능보다 많이 설계돼 있다는 건, 최대한 사용할 때에는 하드웨어·회선을 사용 시 성능의 저하가 발생할 수밖에 없다는 말이다.


컴퓨터의 경우를 보면 너무 많은 프로그램을 동시에 사용하면 느려지거나, CDMA망의 경우에도 한 지역에 너무 많은 사용자가 동시에 사용하면 전체 사용자의 통화 품질이 떨어지고 통화 실패도 발생한다.


따라서 가상화 또는 동시에 다수 서비스를 수행하도록 구현하는 것은 효율성 재고를 위해서다. 최대 사용을 기준으로 설계하면 평소에는 대부분의 자원이 남는 경우가 발생하며 효율성 저하가 생긴다.


이렇게 가상화를 말할 때 다양한 종류와 목적의 가상화가 있다. 이번에 이야기할 내용은 데스크탑 가상화(PC 가상화)이다.


본격적으로 들어가기 전에 가상화 개념과 그 솔루션이 등장하면서 가장 먼저 그 솔루션을 이용할 수 있는 분야에 따라 최초의 가상화가 적용된다. 초기에는 주로 서버를 가상적으로 구현하여 서비스의 종류 및 부하가 발생되는 시간에 따라 적절히 구성하여, 비용을 절감하고 효율을 최대화할 수 있는 <서버 가상화>를 목표로 많은 제품이 출시되었다. 그래서 일반적인 경우에는 데스크탑 가상화와 서버 가상화에 대해서 정확한 구분을 못하는 경우가 많다.


공통점 : 하드웨어에 가상의 컴퓨터를 다수 구현하여 제공한다.

차이점 : 가상의 컴퓨터 용도가 다르므로 목적에 따라 다른 기능이 필요하다.


'PC'와 '서버'의 차이가 무엇인가? 라는 질문에는 아래와 같은 의문이 생긴다.


1. PC나 서버는 같은 하드웨어에 설치 가능하다, 그럼 같은 것인가?

2. 서버 버전과 PC(desktop) 버전은 어떤 차이가 있는가?

3. 왜? 다르게 만드나?


서버란 특정/불특정 다수를 대상으로 제공하는 서비스를 운용하는 시스템이다. 즉 웹서버, DB서버 등이 여기에 해당된다. 이때 서버의 부하는 사용자의 서비스 요청에 따라 때때로 예측불가능한 상태가 된다.


서버는 사업 목적으로 사용되므로, 서비스의 중단 등은 사업의 지속 및 결과에 심각한 영향을 끼친다. 따라서 이에 대한 대응책이 반드시 마련돼야 한다.


서버의 이러한 목적을 고려했을 때, 서버 가상화를 구현할 때 제공되는 서비스의 종류, 시간에 따른 부하의 패턴에 따라 중복되지 않는 서비스를 제공하는 다수의 서버를 하나의 하드웨어에 다수를 구현함으로써 효율성을 높이게 된다.


하나의 서버에서 하나의 웹서버를 구현하면 최대 성능을 초과하는 서비스를 제공하지 못한다. 하지만 같은 성능을 구현할 수 있게 다수의 가상 서버를 하나의 하드웨어에 구현하면 실제 투자되는 하드웨어는 서버의 대수만큼 될 수 있다. (위에서 예를 든 것처럼 실제로는 이보다는 낮은 성능으로 설계해야 최대의 효율화를 구현할 수 있다.) 하지만 최대 부하를 요구하는 시간에 다른 가상 서버들의 부하가 작다면, 그 가상 서버가 사용해야 할 자원을 가지고 와서 더 많은 서비스를 제공할 수 있도록 성능 개선이 생길 수 있다.


이렇게 구현하기 위해서는 하나의 하드웨어에 대부분 다른 종류의 서비스를 구현하기 위한 가상 서버들을 구축해야만 하고 동종의 가상 서버를 구축하면 오히려 비효율적인 상황이 발생된다.


그런데, 여기에서 문제가 생기는 부분이, 만약에 하나의 하드웨어에서 예측한 성능 이상을 요구하는 경우에, 즉 같은 시간대에 서비스 요구량이 늘어나는 경우에는 전체적인 성능 저하가 발생 할 수 있다는 것이다.


다수의 하드웨어를 이용해서 더 많은 수의 가상 서버를 구현했을 경우에 예측한 상황을 초과하는 서비스 요구가 생긴다. 이때 가상 서버를 부하가 작은 다른 물리적 서버로 서비스의 중단 없이 이동시켜 특정 서버에 부하가 몰리는 상황을 피하고 해당 서비스의 성능을 높이기 위한 요구가 생긴다. 이를 Online(Live) migration 기능이라고 하며 서버 가상화 제품은 대부분 이 기능을 지원한다.


또한, 가상 서버가 동작하는 하드웨어에 장애가 생길 때에도 서비스의 중단을 최소화하려면 다른 서버에서 즉시 서비스가 가능하도록 하는 fault-tolerent 기능도 필요하다. 단, 이 경우에도 외부에서 접속하는 사용자는 5~10분정도 서비스가 잠시 중단된 것처럼 보인다. 웹서버를 예를 들면 잠시 웹서버가 응답을 안 하는 상태이다.


안정적 운영을 위해서는 하드웨어간의 데이터 공유, 이동 등을 위해서 예비로 남겨둬야 하는 자원의 양이 늘어나 효율화를 위해서 서버 가상화했다. 하지만 안정성을 위한 기능을 켜 두면 오히려 자원의 사용이 한대의 서버를 사용하는 것 보다 효율성이 떨어질 수도 있는 일이 발생할 수 있어서 선택적으로 사용하게 된다.


이처럼 서버를 가상화하는 <서버 가상화>를 통해서 서비스를 구현하는 시장의 요구가 제품개발을 선도하여 대부분의 가상화 업체는 서버 가상화를 제공하기 위한 기능으로 설계 및 구축되고 시장을 확대할 수 있었다.


연재는 계속됩니다. 다음 편은 데스크탑가상화의 특성과 서버 가상화와의 비교입니다.


by 이종택 (온마고 부사장)