Virtualization... It's Time to excite..

가상화(Virtualization)라는 단어가 2007년에 자주 들리게 될 것입니다.

컴퓨팅 환경에서 가상화라고 하는 것은 여러 의미를 가지고 있습니다. 가상 메모리(Virtual Memory), 자바 가상 머신(Java Virtual Machine)...

오늘 언급할 가상화는 한대의 컴퓨터에서 물리적인 하드웨어 자원 분리 없이 논리적인 여러 대의 컴퓨터가 동작하는 것을 의미합니다. 이 경우, Host OS(컴퓨터에 설치된 운영 체제), 나머지 가상화된 컴퓨터(Virtual Machine)내 OS - 이를 Guest OS라고 부릅니다. 결국 한대의 Host OS에서 여러대의 Guest OS를 사용하는 것이죠.

Microsoft도 가상화 기술을 가진 제품이 있습니다. 바로 Virtual PCVirtual Server 2005 R2가 이에 해당됩니다. 2007~2008년을 기점으로 이러한 가상화 기술이 다시 한번 비약적으로 발전할 것입니다.

왜 가상화가 시장의 화두가 될까요?
현재 운영 체제는 멀티 태스킹(MultiTasking) 운영체제입니다. 다수의 응용 프로그램과 여러 운영 체제 서비스를 동시에 제공할 수 있습니다. 이렇다면 왜 가상화가 필요하냐라는 질문이 나올 수 있죠. 현실은 조금 틀립니다. 대부분의 시스템 아키텍트는 한대의 시스템에 여러 응용 프로그램이나 서비스에 대한 설치를 꺼리고 있습니다. 당연한 처사입니다. 각각의 응용 프로그램간의 충돌이나 성능 문제.. 더더욱 유지 보수적인 이슈가 발생할 수 있습니다. 많은 벤더들은 자신의 솔루션과 함께, 타 벤더의 솔루션이 설치되어져 있는 경우, 이에 대한 책임 소재를 쌍방간에 핑퐁하는 모습을 많이들 경험해 보셨을 것입니다.

컴퓨터의 하드웨어는 점점 발전해 갑니다. 오늘 한 회사에서 128Core의 서버를 도입할 예정이라는 이야기를 지인을 통해 들었습니다. 서버의 하드웨어 스펙이 높아짐에 따라 서버의 사용 효율적 측면에서는 100%를 다 사용하긴 이제 버거워지고 있다는 것입니다. 하드웨어를 구입하게 되면 비용적 측면에서는 해당 하드웨어를 한계점 혹은 한계점에 약간의 여유점까지 사용하려는 것이 회사 경영진 또는 돈과 관련된 부서의 입장입니다. 이랬을 경우, 해당 하드웨어를 하나의 솔루션만으로 100% 사용하긴 사실상 불가능합니다. 이는 여러 웹 서버를 운영하고 서비스해주는 호스팅 업체에서는 이미 발생하고 있는 골칫거리중 하나입니다.

마지막으로 현재 시스템은 운영 체제의 설치, 응용 프로그램의 설치 등 최초의 구축 후, 해당 시스템의 재난 복구 계획을 세우게 됩니다. 재난 발생시 서버 하드웨어의 교체나 시스템의 교체를 단행하게 되는데, 타 머신으로 응용 프로그램이나 서비스를 이전하는 것은 쉽지 않은 일이라는 것입니다. 시스템을 백업해서 타 하드웨어 머신에 복구하는 작업을 해보신 분들이라면.. 어느정도 동감하실 거라 생각합니다 :)

이런 이유라면 일찍이 가상화는 사용되고 있었어야 합니다. VM은 동일한 하드웨어 스펙으로 Guest OS를 가상화합니다. 그리고 모든 VM에 대한 저장 및 데이터는 하나에서 많게는 몇개의 파일내(Microsoft Virtual 제품군에서는 VHD, VMC)에 다 저장이 됩니다. 문제 발생시나 서버 하드웨어에 대한 이전시, 단순하게 해당 파일만 복사해서 저장하면 OK입니다. 논리적으로 하드웨어가 분리된 VM간에 응용 프로그램 충돌 및 서비스 충돌은 당연히 발생하지 않습니다. 이뿐만 아니라, 이미 구성해 놓았던 솔루션에 대한 재구축도 상당히 편리하며, 기존 물리적 머신에서 1일이상이 걸리던 작업이 단순하게 몇시간 아니 몇분 이내에 끝날 수 있습니다. 

그렇지만 가상화가 실제 현업 환경에서 테스팅이나 개발 단계의 POC에서만 사용되었던 이유는 무엇일까요?

Host OS는 여전히 제한된 하드웨어를 VM에 배분하고, 이들을 멀티태스킹시켜야 합니다. Host OS에 대한 문제 발생시 모든 VM이 문제가 되는 점도 큰 요소중 하나입니다. 그리고 아직까지 VM레벨에서 작동하지 못하는 많은 응용 프로그램, 라이센스적인 측면도 한몫하고 있습니다. 

IT Pro(엔지니어)의 가장 큰 이유는 바로 성능적 이슈입니다. VM의 성능은 실제 물리적 머신에 비해 최대 70%정도의 성능을 보여준다고들 이야기합니다.

그러나..

IntelVT(Virtualization Technology), AMD-V(Virtualization) 기술의 등장으로 가상화를 프로세서(Processor)레벨에서 지원하고 이를 Microsoft 가상화 제품군에서 사용함으로서, 가상화 기술의 성능적 이슈는 상당 수 제거되었고, 훌륭한 성능을 보여주고 있습니다.

다음 포스팅에서는 가상화 기술의 아키텍쳐에 대해서 언급해 보겠습니다.