시나리오

서버가 OS의 문제로 다운되었다. 최대한 빨리 OS를 복구해야 한다. 그런데 서버는 부팅시 BSOD만 출력하고 있다. 이러한 상황이라면 어떻게 해야 할까? 이 경우 일반적으로 사용할 수 있는 방법은 커널 디버거를 이용해서 문제의 원인을 분석할 수 밖에 없다. 만약 커널 디버거를 사용할 줄 모른다면 천상 외부에서 인력 지원을 요청하고, 그 사람이 OS의 문제를 해결할 때까지 대기하는 방법외에 다른 방법은 없다. 그러나 가상화를 이용한 경우라면 이러한 문제를 쉽게 해결할 수 있다.

가상 PC

오늘 QAOS.com에 올릴 WOL에 대한 글을 쓰다 보니 BIOS 화면을 잡을 필요가 생겼다. 예전에는 Virtual PC를 이용해서 잡았었다. 그러나 Virtual PC의 개발사인 Connectix를 MS에서 인수한 뒤 MS가 'Viruta PC'를 'Virtual Windows'로 만들었기 때문에 요즘은 사용하지 않는다. 가장 많은 게스트 운영체제를 지원하던 소프트웨어를 인수해서 오로지 Windows만 지원하는 소프트웨어로 바꾸어 놓았다. 심지 Linux도 설치되지 않는다. 물론 최신판의 Linux 지원 여부는 확인하지 못했다.

VIrtual PC 보다 강력한 성능을 가진 VMWare가 있지만 VMWare는 DOS 에뮬레이션이 완벽하지 않다. DOSBox와 같은 DOS용 에뮬레이터가 있지만 역시 DOS 에뮬레이션은 완벽하지 않다. 그래서 혹시나 하는 생각에 VirtualBox를 내려받아 봤다. VirtualBox는 이전 글, 작고 빠른 공개 가상 PC 프로그램, VirtualBox에서 알 수 있듯이 원래 twoOStwo를 개발하던 개발사들이 갈려서 하나는 Parallels로 다른 하나는 VirtualBox로 갈린 것이다.

Parallels는 원래 가장 다양한 호스트 운영체제를 지원했다. 따라서 맥에서도 사용할 수 있는 PC 가상화 소프트웨어이다. 다만 이 프로그램은 유료다. twoOStwo의 대른 개발사인 NetSys GmbH(현 Innotek)에서 개발한 VirtualBox는 작고 간다하며 twoOStwo처럼 빠르다. 아울러 개인 사용자에게는 무료이며 한글을 잘 지원하기 때문에 근래에 사용자층이 넓어진 소프트웨어 이기도 하다.

DOSBoxVMWare에서는 DOS 에뮬레이션이 완벽하지 않아서 이번에는 VirtualBox를 내려받아 시도해 보기로 했다. 그런데 VirtualBox를 내려받다 보니 조금 이상한 로고가 보였다. 바로 선사의 로고였다. 아울러 프로그램의 이름도 VirtualBox에서 Sun xVM VirtualBox로 바뀌어 있었다. 확인해 보니 지난 2월 SUN사에서 Innotek(VirtualBox)를 인수했다고 한다.

Microosft는 2004년 Virtual PC로 유명한 Connectix를 인수했고 Windows Server 2008을 발표하면서 다른 게스트 운영체제를 지원하는 Windows Server Virtualization(WSv)를 발표할 것이라고 한다. PC 가상화의 선두 주자인 VMWare는 이미 가상화 PC 시장에 뛰어든지 오래다. 아울러 여기에 Solaris라는 운영체제로 유명한 SUN사까지 가상화 PC 시장에 뛰어들고 있는 셈이다.

일반인들은 가상화 PC에 대한 관심이 그리 크지않다. 그러나 장기적으로 보면 가상화 PC 시장은 일반인의 예상을 뛰어넘는 가능성이 있는 시장이다. 그 이유는 간단하다. 우리가 사용하는 시스템의 성능이 너무 좋기 때문이다. MS는 Windows Server 2008을 통해 하나의 컴퓨터를 통해 여러 운영체제를 전환하는 것을 지원할 예정이다.

클라이언트쪽에서는 가상화에 대한 부분이 큰 매력이 없을지 모른다. 그러나 적어도 서버 시장에서 가상화에 대한 매력은 상당히 크다. 그래서 Microsoft, SUN처럼 운영체제 선두업체는 가상화에 대한 소리없는 전쟁을 시작하고 있다.

가상화 기술의 미래

서버 분야

시나리오 1

예전에 관리하고 있던 사이트에는 Windows NT 3.51이 설치된 시스템이 있었다. 시스템 업그레이드를 권고 했지만 회사 사정상 여러 가지 이유를 들어 업그레이드를 미루는 것이었다. 만약 이 시스템에 하드웨어적인 고장이 발생해서 시스템을 새로 구입해야하는 경우는 어떻게 될까?

쉽게 생각하면 새로운 서버를 구입해서 OS를 이전시키면 될 것 같지만 일이 그렇게 쉽지는 않다. 그 이유는 대부분의 하드웨어 제조사에서 더 이상 Windows NT용 장치 드라이버를 지원하지 않기 때문이다. 즉, 새로 구입한 시스템에 지원되는 장치 드라이버를 구할 수 없으므로 새로운 서버를 구입해도 OS를 설치해서 시스템을 운영하기 힘들어 진다. 그렇다고 해서 중고 서버를 구입할 수도 없다. 중고 컴퓨터라면 고장날 확률이 높기 때문이다.

이 경우 유용하게 사용할 수 있는 것이 바로 가상화이다. 가상화는 VMM에의해 지원되는 가상의 하드웨어 장치를 사용하기 때문에 설사 시스템에 최신의 장치가 장착되어 있다고 해도 호스트 OS를 서버 2003처럼 최신 장치를 지원하는 OS를 사용한다면 아무런 문제 없이 오래된 OS를 사용할 수 있다. 물론 오래된 OS의 경우 보안 패치를 지원하지 않기 때문에 오래된 OS를 운영하는 것보다는 가급적 최신 OS로 이전하는 것이 낫다.

시나리오 2

시나리오 1에서 언급한 사이트의 경우 서버를 업그레이드할 수 없는 가장 큰 이유로 운영중인 서버가 전사적으로 사용되고 있기 때문에 장시간 서버를 끌 수 없다는 것이었다. 아울러 새로운 OS로 이전한 경우 시스템의 안전적인 동작을 보장할 수 있어야 하는데 이를 위해 새로운 서버를 구입할 시간적 여유가 없다는 것이었다.

가상화는 이 경우에도 유용하게 사용할 수 있다. 오래된 OS를 하나의 가상 머신에 설치하고 이 OS를 다시 다른 가상 머신에 미러링 한 후 미러링된 OS를 업그레이드한 후 문제의 발생 여부를 검사해보면된다. 문제가 발생한 경우 기존의 OS는 그대로 유지되며, 문제가 없는 경우라면 기존의 OS를 다시 업그레이드하거나 기존 OS의 데이터는 업데이트된 OS로 이전하면 된다.

시나리오 3

서버가 OS의 문제로 다운되었다. 최대한 빨리 OS를 복구해야 한다. 그런데 서버는 부팅시 BSOD만 출력하고 있다. 이러한 상황이라면 어떻게 해야 할까? 이 경우 일반적으로 사용할 수 있는 방법은 커널 디버거를 이용해서 문제의 원인을 분석할 수 밖에 없다. 만약 커널 디버거를 사용할 줄 모른다면 천상 외부에서 인력 지원을 요청하고, 그 사람이 OS의 문제를 해결할 때까지 대기하는 방법외에 다른 방법은 없다.

그러나 가상화를 이용한 경우라면 이러한 문제를 쉽게 해결할 수 있다. 가상 머신에 설치된 OS는 호스트 머신에서는 몇 개의 이미지 파일로 존재한다. 따라서 평상시 이 이미지 파일을 백업하고 문제가 발생한 경우 이 이미지 파일을 복구하면된다.

시나리오 4

회사에내에 분산되어 있는 서버를 하나의 서버로 통합해야 한다. 이렇게하는 이유는 서버 하드웨어의 유지 비용을 크게 줄일 수 있기 때문이다.

이러한 경우에서도 가상화 기술을 이용해, 각 서버상의 환경을 게스트 OS로서 구축하면, 소프트웨어적으로는 여러 플랫폼을 사용하면서 하나의 물리적인 서버로 통합할 수 있다. 물론 가상 머신의 오버헤드 때문에 호스트 OS상에 통합 환경을 구축하는 것이 보다 성능이 떨어지는 것은 사실이다. 그러나 환경 이전에 드는 방대한 비용으로 보다 높은 성능의 서버를 도입하고 가상화 기술을 이용하는 것도 상당히 현실적인 선택이된다. 아울러 통합한 경우 관리해야하는 서버의 수가 줄기 때문에 통합 후 유지 관리 비용 역시 줄일 수 있다.

클라이언트 분야

개인 사용자에게는 가상화 기술이 얼마나 쓸모가 있을지 모르겠다. 이 부분에 있어서는 인텔도 별다른 비젼을 제시하지 못하고 있는 것 같다. 아마 개인 사용자의 경우 가장 적절한 사용처는 Intel CEO의 크레그 바렉씨의 얘기처럼 Mac OS와 롱혼을 함께 돌리는 정도가 아닐까 싶다. 즉, 사무용으로는 비스타를 사용하고 개인적인 용도로 Mac OS X를 사용할 수 있다는 점이다.

물론 개인 사용자의 경우에도 서버 분야에서 얘기한 것처럼 게스트 OS를 백업하고 복구하는 것과 같은 문제에 적용할 수 있으며, 특정 프로그램을 설치하기전에 문제가 있는지 여부를 가상 머신에서 시험할 수도 있다.

그러나 가상화 그 자체가 호스트 OS의 성능을 크게 향상 시키는 것이 아니라는 점을 생각하면 서버 분야처럼 매력이 큰 것은 아닌 것 같다.

관련 글타래