Prince Blub's Island

가상화는 매우 쓸모가 많은 기술이다. 이는 비단 개발자나 엔지니어에게만 해당되는 것이 아니고 일반 엔드 유저, 즉 대다수의 사용자들에게도 그렇다. 그래서 가상화를 어떻게 일반 사용자가 일상적인 컴퓨팅 환경에서 활용할 수 있는가를 알아보려 한다.

가상화 환경을 꾸미는 데 있어서 일반적인 사실은 가상화 시스템에서는 어느 정도의 성능 손실을 감안해야 한다는 것이다. 고사양일수록, 가상화 솔루션이 좋을수록 이 손실폭은 감소하겠지만, 그렇다고 해서 호스트 시스템[각주:1]에서와 완전히 똑같은 사양을 이용하기는 어렵다. 하지만 최근 컴퓨터의 사양들이 날로 좋아져서 일상적인 업무 처리는 가상화에서도 부족함이 없고, 메모리도 4GB 이상을 설치한 시스템이 늘고 있어 대다수의 사용자에게 가상화를 이용할 수 있는 기본 조건이 마련되고 있다.

최근의 CPU들은 CPU 자체에서 가상화를 지원하기 때문에 더욱 성능 손실이 감소하였다. 인텔 CPU들은 VT라는 가상화 기술을 내장하고 있고 AMD쪽에서는 AMD-V라는 가상화 기술을 탑재해서 출시되고 있기 때문에 가상화를 사용하고 싶다면 이에 해당하는 CPU를 사용하는 것이 좋다. 최근 출시된 제품들이라면 거의 대부분 가상화를 지원하고 있다고 보아도 되며, 잘 모르겠다면 다음의 유틸리티들을 이용해서 확인할 수 있다.

CPU-Z로 확인한다면 다음과 같은 화면에서 확인할 수 있다.

CPU-Z 실행화면. 필자의 CPU는 AMD의 제품이므로 AMD-V라는 명령어가 나타나게 된다. 인텔 CPU라면 이것 대신 VT가 나타나야 한다. 둘 다 없다면 가상화 기술을 지원하지 않는 CPU를 사용하고 있는 것이다.


본인의 CPU가 가상화를 지원하는 것을 확인하였으면 이제 본격적으로 가상화 솔루션을 선택할 차례이다. 가상화 솔루션도 여러가지가 있어서 선택이 쉽지 않으나 대표적으로 많이 사용되는 것이 VMWare와 Virtual Box, 그리고 Microsoft의 Virtual PC이다. 이외에 Parallels도 있으나 일반 PC보다는 맥OS 사용자들에게 인기가 높다. VMware는 유료 솔루션이며 189달러에 판매되고 있다. 유료인만큼 가장 성능이 좋고 원활하게 사용할 수 있으며 VMWare자체가 가상화 솔루션 분야에서는 가장 오래되었고 그만큼 안정적으로 작동한다.

VMWare에서 우분투 리눅스를 구동한 화면. 모든 기능이 정상적으로 작동하며 ISO설치도 편리하기 때문에 설치과정도 매우 신속히 진행된다.


윈도우7 시스템에서 VMWare로 윈도우XP를 구동한 화면. 이와 같은 시스템 내의 가상 시스템은 매우 다양한 목적으로 활용될 수 있다.


VMWare를 시스템에 설치하면 자동으로 네트워크 관련 드라이버가 설치되어 VMWare로 구동하려는 Guest OS에서도 쉽게 네트워크를 이용할 수 있으며 윈도우 계열이나 유명 리눅스 배포판의 경우 자동으로 설정된다.

그러면 왜 이처럼 컴퓨터 안의 컴퓨터, 혹은 OS위의 OS를 이용해야 하는가? 첫번째 이유는 시스템 전체의 안정성을 위해서이다. Guest OS에서 작동하는 모든 애플리케이션들은 Guest OS안에 격리되는 것이나 마찬가지이므로, 바이러스나 악성코드 등으로 Guest OS가 망가진다고 해도 본래 시스템인 Host OS에는 아무런 영향을 주지 않는다. 따라서 필자는 인터넷 뱅킹용으로 Guest OS를 돌리면서 각종 액티브X를 마음껏(?) 설치하고 있다. 이로 인해 시스템이 불안정해지거나 느려져도 본래 시스템의 안정성에는 전혀 문제가 없기 때문이다.

둘째 이유는 복원의 편의성이다. 이는 첫번째 이유의 연장선상에 있는 것이지만, 그 장점이 상당하기 때문에 또 다른 장점으로 꼽아도 전혀 손색이 없다. 시스템을 자주 초기화(포맷)하는 사용자들의 경우 고스트나 Acronis와 같은 솔루션으로 백업을 해두는 경우가 많다. 그런데 주로 가상 머신으로 작업을 한다면 이러한 일은 필요하지 않다. 가상 머신, 즉 Guest OS의 모든 내용이 고스란히 하나[각주:2]의 파일로 관리되기 때문에 그 파일만 잘 백업해 두면 Guest OS가 망가지더라도 이 파일로 덮어쓰면 바로 복구가 완성되기 때문이다. 게다가 VMWare의 경우에는 이 파일을 몇 개로 나누어 한 상태를 하나의 파일로 저장하고 사용자가 변경한 내용만을 따로 관리할 수 있는 Snapshot기능을 가지고 있어서 별도로 사용자가 백업을 할 필요없이 이 Snapshot을 이용한 복원 기능만 이용하면 된다.

셋째 이유는 효율성의 증진이다. 필자가 초등학생이었을 때 즐겨 읽었던 잡지 중 '월간 마이컴'이라는 컴퓨터 잡지가 있었다. 1996년 무렵의 일로 기억한다. 이 때 '컴퓨터 세상을 바꿀 기술들'이 제시된 적이 있었다. 그리고 이를 통해 10년 후의 컴퓨터의 모습을 상상하여 쓴 기사를 흥미롭게 읽은 기억이 나는데, 그때 제시된 기술 중 하나가 가상화[각주:3]였다. 지금도 기억나는 소제목 이름은 '가상화로 PC재부팅이 필요없어진다' 였다. 지금은 와닿지 않겠지만 응용프로그램을 설치할 경우에도 재부팅을 요구하는 당시의 환경으로서는 획기적인 내용이었다. 실제로 VMWare를 이용해서 테스트를 할 때 편리한 점 중 하나는 여러 소프트웨어을 시험삼아 설치해보고 리눅스용으로도 돌려볼 경우에 재부팅을 통해 운영체제를 전환할 필요가 없다는 점이다. 단순히 다른 운영체제를 시작해서 동시에 사용하면 되기 때문이다. 혹시 현재 사용하는 OS와 맞지 않는 구형 소프트웨어를 사용할 일이 있을 때도 이러한 점은 매우 편리하게 다가온다.

  1. 가상화에 있어서 많은 가상화 소프트웨어들은 시스템을 호스트와 게스트로 명명한다. 예를 들어 윈도우7을 컴퓨터에 깔고 윈도우7에서 가상화 솔루션으로 리눅스를 돌린다면 윈도우7은 호스트(주인)시스템이 되고 리눅스는 게스트(손님)시스템이 된다. [본문으로]
  2. 때로는 복수의 파일로 나뉘어 저장되는 경우도 있다. 그러나 기본적으로 한 상태의 시스템이 한 파일로 저장된다는 점에는 변함이 없다. [본문으로]
  3. 당시로부터 10년 뒤라면 2006년이나 2007년 즈음인데, 아직도 일반 사용자들이 가상화를 손쉽게 활용하는 수준까지 가상화가 일반화되지는 않았기 때문에 조금 섣부른 예언이었다고 할 수 있다. 그러나 지금도 가상화는 점점 그 용처가 확대되고 있으며 클라우드 서비스와 결합하여 컴퓨터 기술들 중 가장 중요한 기술 중 하나가 되었다는 점을 생각해 보면 조금 이른 감이 있었을 뿐, 정확한 통찰이 아니었나 하는 생각이 든다. [본문으로]