ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 가상화 기술, 왜 필요하고 과연 나한테 필요한 기술인가?
    IT topics 2008. 9. 18. 17:31
    반응형

    저번주에 델에서 주최했던 DELL FUTURE OF COMPUTING 세미나를 참석하게 되었다. 뭐 델과 함께하는 미래의 컴퓨터에 대한 내용인데 컴퓨터의 미래라기 보다는 델의 미래에 대한 내용이 훨씬 많았다. 뭐 다들 아시겠지만 어떤 회사에서 주최하는 세미나에는 그 회사의 주장이 다 들어가는 것은 어쩔 수 없는가보다. 내용들 대부분은 그닥 들을 내용들은 없었다만 가상화에 대한 부분은 좀 생각을 해보게 되었다.

    최근들어 가상화(virtualization) 기술이 각광을 받고 있다. MS는 윈도 서버 2008에 하이퍼-V라는 가상화 기술을 선보여 출시를 했고 이에 질세라 가상화 기술의 선두주자라 불리는 VMWare에서도 업그레이드된 프로그램을 내놓고 있는 상황이다. 예전에는 소프트웨어로 가상화를 구현했다면 최근에는 CPU에서 가상화 기술을 지원하기 시작해서 소프트웨어에 하드웨어까지 가상화 기술을 겸비하게 된 세상이 되었다.

    그렇다면 왜 그렇게들 다들 가상화에 목매고 있을까? 뭐 목매고 있다는 표현이 뭐하지만 최근 나오는 OS나 CPU 등의 선전에 보면 가상화라는 말이 꼭 나와서 하는 얘기다. 그렇다면 가상화의 정의는 뭘까? 위키백과에 따르면 “물리적인 컴퓨터 자원의 특징을 다른 시스템, 응용 프로그램, 최종 사용자들이 자원과 상호 작용하는 방식으로부터 감추는 기술”이라고 정의하고 있다. 간단히 얘기하면 어떤 운영체제를 돌리고 있는데 그 위에 또 다른 운영체제를 기존에 돌리고 있던 운영체제와 별개로 돌릴 수 있다는 얘기다. VMWare나 VirturePC, VirtureBox와 같은 가상화 프로그램을 이용하면 윈도 XP를 돌리고 있는 상태에서 리눅스를 돌릴 수 있고, 혹은 또 다른 윈도를 돌릴 수도 있다는 것이다. 뭐 이렇듯 하나의 PC에서 여러 OS를 한꺼번에 돌릴 수 있는 기술이 가상화라고 정의해도 될 듯 싶다.

    그렇다면 가상화 기술을 어디에 사용하는가? 한정적인 예이겠지만 내 경우를 한번 살펴보자. 하는 일이 여러 플랫폼 위에서 솔루션을 만들고 테스트를 하는 것이라 다양한 OS에서 프로그램을 개발하고 테스트를 해야할 경우가 많다. 윈도의 경우도 가장 많이 사용한다는 윈도 XP도 있고 최근에는 윈도 비스타도 많이 사용하고 있으며 그 전에 사용하던 윈도 98이나 윈도 2000 프로페셔널도 있을 것이다. 또 솔루션인 개인용 윈도에만 사용된다는 보장은 없다. 서버급 윈도 시스템에서도 테스트를 해봐야하니 윈도 2000 서버, 윈도 2003 서버, 윈도 2008 서버 등 다양한 윈도 서버 OS에서도 테스트를 해봐야 한다. 게다가 OS가 윈도만 있느냐? 그것도 아니다 리눅스도 있고 유닉스 계열에 솔라리스, AIX, HP-UX 등 다양한 OS들이 즐비하다. 이러한 플랫폼 위에서 개발하고 테스트를 할려면 해당 플랫폼이 탑재되어있는 PC, 혹은 서버가 필요하다. 그것만 필요할까? 화면을 보기 위해서는 모니터도 있어야 하며 키보드와 마우스도 있어야 한다. 즉, 각 플랫폼마다 PC(서버), 모니터, 키보드, 마우스 등 최소한 필요로 하는 모듈이 다 있어야 하는데 구입하는데도 엄청난 비용이 들어가며 그 장비가 차지하는 공간도 만만치 않을 것이다. 이런 경우에 나는 VMWare를 이용하여 각 OS별로 이미지를 만들어서 매번 테스트 할때마다 해당 이미지를 올려서 테스트하고 있다. 이렇게 되면 내 PC 1대로 위의 OS들을 다 돌릴 수 있다는 장점이 있다. OS 구입에 들어가는 비용과 VMWare 솔루션 비용을 제외하고는 하드웨어 구입 비용 및 공간낭비는 없다는 얘기다. 게다가 이미지를 교체함으로 손쉽게 OS를 교체할 수 있으며 문제가 생기더라도 리셋 등의 조작이 손쉽기 때문에 빠른 대응을 할 수 있다. 즉, 내 경우에는 여러 플랫폼에서 어떤 프로그램, 혹은 솔루션을 개발하고 테스트할 때 유용하게 사용하고 있다는 것이다. 아마 많은 개발자들이 나와 비슷하게 가상화 기술을 활용하고 있지 않을까 싶다.

    그런데 왜 가상화 기술이 최근 각광을 받는 것일까? 하드웨어 자원을 최대한 활용할 수 있는 기술로 가상화가 꼽히고 있기 때문이 아닐까? 어떤 프로그램이라도 PC의 자원을 100% 다 활용하는 경우는 드물다. 어떤 띨띨한 개발자가 프로그램을 잘못짜서 CPU를 100% 만빵으로 채우게 만드는 경우를 제외하면 말이다(주로 잘못된 루프연산이나 에러상황에 이런 경우가 발생한다). 여하튼 대부분의 솔루션은 하드웨어의 자원을 100% 다 활용하지 못한다. 그렇다면 남는 자원을 가상화를 이용해 활용한다면 하드웨어 자원 낭비를 줄일 수 있다는 얘기가 된다. 앞서 개인적인 예를 들었지만 메인 OS로 윈도 서버 2003을 사용하고 있는데 윈도 XP로 뭔가를 해야할 일이 생겼을 때 VMWare를 이용하여 윈도 서버 2003 위에서 윈도 XP를 돌린다고 치자. 그렇게 하더라도 양쪽 OS를 돌리는데 약간의 버벅거림은 나타날 수 있지만 크게 차이가 나지는 않는다. VMWare에서 사용하고 있는 PC 자원 중 남는 자원을 활용하여 윈도 XP 이미지를 구동하기 때문이다. 그 덕분에 메인 윈도에서 자원 상태를 살펴보면 평소보다 더 많은 자원을 사용하고 있음을 보게 된다. 하지만 구동하는데는 별로 지장이 없다. 이유는 앞서 말한대로이기 때문이다. 이렇듯 남는 자원을 활용하는 가상화 기술은 현재 전세계적으로 트랜드화 되어가고 있는 Green 정책에 딱 맞춰지고 있는 것이다. 그래서 각광을 받는게 아닐까 싶다. 여러 플랫폼을 사용하기 위해 비싼 하드웨어를 구입하고 쓸모가 없어지면 버리는 그러한 낭비를 줄이는 차원에서도 말이다. 물론 하드웨어에 자원이 빵빵했을 때 유용적이다는 조건이 붙지만 최근 나오는 하드웨어의 자원은 빵빵하다못해 널널할 정도니 크게 문제는 없다고 본다.

    물론 가상화가 위에서 얘기한대로 플랫폼 가상화만 있는 것은 아니다. 자원 가상화라는 것도 있다. VMWare와 같은 플랫폼을 가상화 시킬 수 있는 솔루션이 있는가 하면 CD 이미지를 가상 드라이브로 만들어서 구동시켜주는 데몬툴(Daemon)이나 알콜과 같은 가상 CD 프로그램도 가상화의 일종으로 볼 수 있다. 없는 장치를 가상으로 만들어주는 것이다. 데몬툴을 이용한 가상 CD 프로그램은 주로 게임을 할때 많이 사용하곤 하지만 OS를 설치할 때도 종종 사용되며 가상 CD와는 별개로 어떤 장비를 테스트하기 위해 가상 장비를 만들어서 시뮬레이션할 때도 많이 사용한다. 직접 장비를 만들어서 붙여서 사용할 수도 있지만 그 전에 시뮬레이션으로 데이터를 뽑아내서 그 데이터를 바탕으로 실제 기기에 적용해서 오류가 적은 장비를 만들어낼 때 사용하는 방법으로 말이다. 이렇듯 가상화 기술은 다양하게 적용이 될 수 있다.

    앞서 VMWare, VirturePC, VirtureBox와 같은 가상화 프로그램을 플랫폼 가상화 솔루션이라고 소개했는데 여기에는 자원 가상화도 함께 포함되어 있다. 플랫폼을 가상화하면서 CPU나 메모리, CD-ROM과 같은 플랫폼 구동에 필요한 장비들까지 이들 프로그램들이 다 가상화 기술을 구현해서 가상 자원으로 만들어서 사용하기 때문이다. 즉, VMWare에서 돌아가는 윈도 XP의 경우 CPU는 원래 메인 PC에 있는 CPU를 이용하지만 VMWare는 이 CPU를 가상화하여 전혀 다른 CPU로 인식하도록 하게 만든다. 메모리 역시 마찬가지다. 같은 메모리를 사용하지만 서로 다르게 인식하게 만든다. CD-ROM이나 FDD, HDD와 같은 장비들도 마찬가지다. 이렇듯 이들 솔루션에는 플랫폼 가상화 이외에 자원 가상화 기술까지 고루고루 갖추고 있기에 단순한 기술의 집약체가 아니라는 얘기를 하며 미래지향적인 기술이라고 얘기하곤 하는 것이다.

    이렇듯 가상화 기술은 하드웨어 자원 낭비를 막을 수 있는 Green 정책에 가장 적절한 기술이며 하드웨어 성능을 효과적으로 활용할 수 있는 기술이기에 각광을 받기 시작한게 아닐까 싶다.

    하지만 과연 이러한 가상화 기술이 얼마나 필요할까? 일반 개인이 사용하는데 있어서 필요한 가상화 기술이라면 아마도 데몬툴 등을 이용한 가상 CD 기술정도가 아닐까 싶다. ISO 이미지를 받아서 CD나 DVD로 구워서 사용할 필요없이 바로 가상CD로 인식시켜서 사용할 수 있기에 게임 등을 구동할 때 많이 사용하므로 그 정도 선에서 필요한 기술이지 않을까 싶다. 아니면 내 경우에는 VMWare로 윈도 XP를 하나 더 구동시켜서 ActiveX를 많이 사용하는 사이트에 들어갈 때(예를 들어 인터넷 뱅킹 등) VMWare의 윈도 XP에 ActiveX를 잔뜩 설치하고 이용한다던지 하는 방법을 사용한다. 짜증나는 ActiveX를 내 메인 PC에 설치하지 않아도 되니 PC를 깔끔하게 운영할 수 있다. 이렇듯 개인이 사용하기에 가상화 기술은 한정적이다.

    하지만 기업 입장에서는 다를 것이다. 윈도 서버 2008도 개인보다는 기업이 더 많이 사용하는 OS고 VMWare와 같은 가상화 솔루션 역시 개인고객보다는 기업고객이 더 우선적으로 선택되는 이유도 가상화 기술이 개인보다는 기업에서 더 유용하게 사용될 수 있기 때문이다. 앞서 얘기한대로 어떤 기업에서 개발자가 다양한 플랫폼에서 테스트하기를 원한다면 해당 플랫폼마다 하드웨어를 다 구비시켜줄 수는 없다. 돈과 공간이 빵빵한 회사라면 모를까 그렇지 못한 회사들이 대부분이기 때문이다. 그렇다면 한정된 공간 및 돈으로 개발자의 요구를 충족시켜주기 위해서는 VMWare 등의 가상화 솔루션을 이용하는 것이 가장 현실적이다. 또 가상 장비를 사용하여 여러 IP를 동시에 사용한다던지 하는 작업을 할때도 LAN 카드를 IP마다 사는 것이 아닌 가상화 기술을 이용하여 가상 LAN 카드를 이용하는 방법을 사용하게 하면 비용적으로 공간적으로 낭비를 줄일 수 있기 때문에 기업 입장에서는 쓸데없는 IT 비용을 줄여 더 실용적인 IT 자원에 집중시킬 수 있다. 이렇듯 가상화 기술은 개인보다는 기업에 더 필요한 기술이라 생각이 든다.

    뭐 이렇게 가상화 기술에 대해서 쓸데없이 주저리 글을 쓰기는 했지만 이런 글을 쓰는 이유는 여러 IT 뉴스를 통해서 혹은 각 회사들의 보도자료를 통해서 가상화 이야기가 많이 나오고 있는데 그게 왜 중요한지, 어떤 면에서 중요한지, 활용의 폭은 어떤지, 과연 나한테는 쓸모가 있는지 한번 정리해보기 위해서 써 본 것이다. 개발자로서의 나에게 있어서 VMWare 등의 가상화 솔루션은 개발을 효과적으로 도와주는 최적의 파트너가 된다. 또한 개인의 나로서도 앞서 얘기한대로 ActiveX의 과남용을 방지하기 위한 방법으로 쓰이기 때문에 꽤 도움이 된다. 하지만 다른 사람의 입장은 어떨까? 가상 CD로서만 가상화 기술을 사용하고 있다면 가상화 기술은 크게 도움이 된다고 보기 어려울 것이다. 그렇다면 각종 블로그나 IT 전문 뉴스 사이트에서 떠들어대는 얘기는 어찌보면 혼란만 가져올 수도 있겠다는 생각이 들었다. 또 여러 보도자료들이 가상화 기술을 크게 부각하고 부풀려서 확대 선전하는 경우가 많은데 엄밀히 따지면 크게 부풀릴 껀덕지는 그리 많지 않다는 것을 알아두는 것도 좋겠다 싶어서 이렇게 장문의 글을 써본다.

    반응형

    댓글

Designed by Tistory.