Virtual Machine은 우리의 미래(3)

출처 : http://euiseong.net/entry/Virtual-Machine은-우리의-미래-3

 

목차

1. Virtual Machine은 무엇인가
2. Virtual Machine의 필요성 및 활용 범위
3. 왜 지금이 Virtual Machine의 Renaissance인가
4. 연구 및 비즈니스의 기회로서의 Virtual Machine
------------------------------------------------

3. 왜 지금이 Virtual Machine의 Renaissance인가


Virtual Machine 기술은 일이년 사이에 유행하였던 기술이 아닙니다. 1장에서 언급하였듯이 1970년대 말에 등장하여 80년대에 꽃을 피운 기술로서 이미 기술 사이클에서는 소멸기를 넘어선 테마라고 생각되었던 것입니다. 조금 과장하자면 불과 7-8년전만 하더라도 VM 기술을 연구한다고 하면 아마 Usenet을 이용한 홈쇼핑 네트워크를 구축하겠다고 하는 것과 비슷한 삽질로 들렸을지도 모릅니다. 이러한 VM 기술이 왜 다시 각광을 받기 시작했고 급기야는 커다란 비즈니스 마켓을 형성하게 된 것일까요? 20년전에 연구가 끝났을 법한 주제가 왜 컨퍼런스나 저널마다 주요 토픽으로 다루게 된 것일까요?

2장에서 설명한 바와 같이 새로운 기술이 붐을 이룰 때에는 많은 요소를 필요로 합니다. 불과 20년 전만해도 비닐하우스가 있었던 xx동이 어떻게 지금은 노른자 땅이 되었는지를 설명하려면 주변 요소와 시대 상황을 설명하지 않고는 불가능하듯이 이번 장에서는 3-4년전부터 불기 시작했던 VM의 열풍이 도대체 어떻게 해서 생겨났는지를 주변 요소와 시대적 요구를 중심으로 설명하도록 하겠습니다.

a. 주변 기술들의 발전

뛰어난 하드웨어와 사용자 인터페이스 그리고 네트워킹 기술. VM이 2000년대 중반 운영체계 시장의 핫이슈가 된 주된 이유는 바로 이러한 기술적인 진보라 생각합니다. 과거 90년대 중반 썬(Sun)에서 제안하였던 NC(Network Computing)라는 개념이 있었습니다. 요즘 유행하는 유비쿼터스 비슷한 미래를 가정하여 모든 책상 위에 컴퓨터가, 모든 전자 제품에 컴퓨터가. 그리고 모든 곳에 컴퓨터가 있는 미래를 가정하고 이 모든 컴퓨팅 리소스를 제공하기 위한 가장 경제적인 수단은 대형 서버에 스토리지가 집약되어있고 나머지 컴퓨터들은 단순히 씬클라이언트 또는 디스크리스(diskless)의 저렴한 컴퓨터로 구성하는 방법을 말합니다. 하지만 실패했지요? NC의 예를 드는 이유는 NC가 현재 제가 보는 VM의 미래와 유사한 목적을 갖고 있다고 생각하기 때문입니다.

NC는 시대를 앞서가는 개념이었고 이를 뒷받침하기 위한 배경이 없었습니다. 인터넷으로 변변히 할 것도 없었던 시대에 누가 냉장고에까지 이더넷선을 연결하고 비싼 LCD 스크린을 장착해서 웹서핑 또는 문서 작업을 하겠습니까? 그렇다고 서버가 매우 강력해서 씬클라이언트를 몇십대나 연결해서 사용할 수 있는 성능도 아니었습니다. 그렇게 강력한 서버를 둘려면 차라리 PC를 몇십대 사는 것이 더 싸게 먹혔던 시절입니다. 즉, NC가 정착되기에는 사용자들의 요구가 강력하지 못했고 이를 뒷받침하기 위한 기술의 가격 경쟁력 역시 약했다는 것입니다.

하지만 최근들어 NC와 유사한 형태의 컴퓨팅 모델들이 다시 주섬주섬 고개를 들고 있습니다. 노매드 컴퓨팅(nomad computing)이라고 불리는 이러한 기술군들을 구성하는 것은 역시 고속의 네트워크와 값싸고 질좋은 디지털 디스플레이의 개발 그리고 많은 사람들이 노트북 또는 최소한 핸드폰 하나라도 들고 다니는 시대가 왔습니다. 즉, 이동성(mobility)과 편재성(pervasive)을 갖는 디바이스들이 실제 생활에 파고들게 됨으로서 기존의 컴퓨팅 모델에 따른 장비의 구입이 아닌 이미 널리 퍼진 장비로 인한 컴퓨팅 모델의 변화가 이루어지게 됩니다. 새로운 컴퓨팅의 패러다임이 VM이 아닐 수도 있습니다. 하지만 Connected Everywhere의 세상에서 그리고 Display Everywhere의 세상에서 기존과는 다른 컴퓨팅의 개념이 필요하고 필요하다면, 그것이 만들어질 것이라는 것은 자명한 사실입니다.

아무리 뛰어난 기술이라도 비용이 많이 든다면 정착하는데 어려움을 겪습니다. 예컨데, 촬상CCD와 핸드폰 단말기는 모두 10년 전에 이미 어느 정도 수준에 도달해 있었지만 카메라폰이 등장한 것은 최근의 일입니다. 당연한 말이지만 이것은 저렴한 가격에 CCD가 생산될 수 있었기 때문이며 물고 물리는 이야기지만 저렴한 가격에 CCD가 생산되는데 널리 퍼진 핸드폰에 탑재된다는 사실이 한 몫을 하였기 때문입니다.

그렇다면 VM을 도입하는데 필요한 비용은 얼마나 될까요? 결론부터 말씀드린다면 설치나 관리 등의 기술 인력 사용료를 제외한 비용은 거의 0에 가깝다는 것입니다. VM의 컴퓨팅 환경은 컴퓨팅의 역할을 맡는 프로세서가 탑재된 시스템과 디스플레이로 구성되어 있거나 디스플레이가 없는 형태를 갖습니다. 이 중 컴퓨팅을 맡는 시스템에서 VM 매니져를 사용하여 게스트 OS를 설치한다고 했을 때, 추가되는 하드웨어 비용은 없습니다. 결국 외부 보조 장치 (peripherals)와 메모리 그리고 스토리지를 제외하고 추가적인 비용 없이 새로운 시스템을 구축할 수 있는 환경이 이미 시장에 나와있으며 여러분의 책상위에 있는 것입니다.

그렇다면 이제 새로운 시스템을 구성하려면 컴퓨터 본체의 추가가 아닌 인터페이스를 어떻게 추가하는가가 더 큰 문제가 될 것입니다. 서버 역할을 위한 시스템의 추가가 필요하다면 디스플레이는 고려할 필요가 없습니다. 어차피 디스플레이가 없는 시스템이기 때문이지요. PC의 경우는 어떨까요? 전술한 바와 같이 LCD를 포함하여 디지털 디스플레이가 경량화 초박화되면서 책상 하나에 모니터가 두세개 올라가있는 것은 보편적인 현상입니다. (실제)컴퓨터와 직접 연결되어 있는 디스플레이는 추가되는 가상의 컴퓨터의 디스플레이로 바로 사용할 수 있습니다. 이미 이러한 목적의 간단한 소프트웨어들을 많은 사람들이 사용하고 있습니다. 엔터테인먼트 또는 간단한 이동형 컴퓨터가 필요하다면? 방방마다 집집마다 심지어 거리 곳곳 복도 곳곳에 LCD 디스플레이가 넘쳐나지요. 결국 디스플레이 장치는 차고 넘칩니다. 즉, 디스플레이의 경우도 LCD 티비가 보편화된다면 역시 시스템을 한 대 더 추가할 때 디스플레이 비용을 고려할 이유가 없다는 것이 됩니다. 너무 먼 미래인가요? 2년전 입주한 본가집에 보니 관리용 LCD가 거실과 주방에 하나씩 임베드 되어 있더군요. 거의 대부분 아무 일 없이 꺼져있습니다만... VM을 사용한다면 PC 모니터가 되는 것이지요.

이제는 입력 인터페이스를 생각해보겠습니다. 이미 많은 분들이 IrDA 키보드를 넘어서 블루투스(Blue Tooth) 키보드를 사용하고 있습니다. 또한, 블루투스 헤드셋과 마우스 등 최근 PC를 구입하신 분들이라면 많은 경우 이러한 무선 인터페이스를 사용하고 있을 것입니다. 이러한 무선 인터페이스는 시스템의 추가로 인한 비용지출을 막을 수 있습니다. 사용자가 이동을 하면 이러한 인터페이스를 들고 이동을 하면 되기 때문입니다. 입력 인터페이스는 기계마다 필요한 것이 아니라 사용자마다 필요한 것인데 블루투수 등의 무선디지털 기술로 인해 이것이 가능해진 것입니다.

입출력과 처리장치에 대한 문제가 해결이 되었습니다. 가까운 미래에 성능에 의한 요구가 아닌 사용자의 이동이나 다른 작업 환경의 필요성, 그리고 업무나 여가 공간의 확장 등으로 인한 시스템 증설에 필요한 비용은 거의 없다는 것을 말씀드렸습니다. 하지만 여기에는 가장 중요한 핵심적인 인프라스트럭쳐(infra structure)가 필요합니다. 바로 인터페이스와 실제 컴퓨터(들) 사이를 잇는 네트워크입니다.

입력의 문제는 말씀드린 바와 같이 무선장치를 사용함으로서 해결이 가능합니다. 물론, 블루투스는 사용 거리가 매우 짧기 때문에 802.11과 같은 무선랜을 사용할 수도 있습니다. 하지만 출력장치의 경우 문제가 틀립니다. 동영상을 원활하게 볼 수 있으려면 적게는 몇Mbps 많게는 수십Mbps의 고속 전송이 필요할 뿐만 아니라 인터랙티브 작업에도 적합하려면 레이턴시(latency) 역시 고려대상입니다. 따라서, 무선랜으로서는 이것이 불가능한 상황이지만 UWB라 불리는 초고속 무선 계층을 사용한다면 이러한 문제는 해결될 것입니다. 실제로 2006년 Philips는 UWB를 기반으로 한 Wireless HDMI라는 제품을 공개한 바가 있습니다. 말 그대로 HDMI 수준의 화면 전송을 무선으로 가능하게 한 제품입니다.

이러한 무선 입출력 장치들 덕분에 실제 기계와 입출력 장치가 반드시 붙어 있을 필요가 없고, 이것은 결국 기계가 실제 기계일 필요가 없다는 이야기가 됩니다.

b. 프로세서 업자들의 돌파구

프로세서 업자들은 최근 고민에 처해있습니다. 1990년대 그리고 2000년대 초반에 신나게 클럭을 높여왔던 그들로는 과도한 전력 소비와 발열로 인해 더 이상 클럭을 높일 수 없는 지경에 처했습니다. 물리적인 수명이 굉장히 큰 프로세서와 같은 제품은 성능이 좋은 신상품을 내놓지 않는다면 곧 매출이 급감하는 현상이 발생합니다. 사용자들이 새 프로세서를 구입할 이유가 없다면 고장이 나지 않는 프로세서를 천년만년 사용할 것이기 때문입니다.

결국 프로세서 업자들은 성능을 높여야만 하는데 클럭을 높일 수 없다면 어떤 방법이 있을까요? 바로 병렬화입니다. 클럭 스피드는 더 이상 증가할 수 없지만, 집적도는 계속 증가하고 있는 상황입니다. 그렇다면 갖고 있는 기술을 활용해서 칩 하나에 여러개의 프로세서를 집적시키는 것은 어떨까요? 클럭 스피드는 증가하지 않기 때문에 파워 소비는 그다지 크게 증가하지 않을테고 그러면서도 성능이 2배 3배로 팍팍 늘어나기 때문에 프로세서 벤더로서는 효과만점의 방법입니다.

현재 인텔은 4개의 코어를 집적시킨 제품을 판매하지만 조만간 16개의 코어를 집적한 제품을 판매할 예정입니다. 아울러서, 향후 수백개의 코어를 갖는 프로세서도 등장할 것이라 전망합니다.

코어의 갯수가 증가하는 것은 명백히 스루풋의 증가를 의미합니다. 하지만, 과거 SMP(symmetric multiprocessor) 시절의 경험을 토대로 대부분의 사용자들은 MP가 일반적인 어플리케이션에 대해서 크게 성능 향상을 얻지 못한다는 것을 알고 있습니다. 멀티코어도 마찬가지입니다. 병렬화를 정말 잘해서 수백개의 스레드가 동시에 실행되지 않는한 코어의 집적은 오히려 더 많은 전력소비를 가져오면서 성능은 전혀 증가하지 않는 이상한 결과가 될 수 있습니다.

병렬성을 가장 효과적으로 높이는 방법은 무엇일까요? 바로 여러 컴퓨터를 동시에 한개의 프로세서에서 실행하는 것입니다. 각 컴퓨터가 하나의 스레드만 갖고 있어도 두개의 컴퓨터를 한 곳에서 실행한다면 멀티코어의 효과가 100% 이상 발휘되겠지요. 결국, 멀티코어와 버츄얼머신은 찰떡 궁합인 것입니다. 실제로 인텔의 VTX, AMD의 Pacifica와 같이 최근의 멀티코어 프로세서들은 버츄얼머신을 지원하기 위한 인스트럭션셋을 기본으로 내장하고 있습니다.

c. 통합된 하드웨어, 하지만 통합되지 못한 운영체계

2005년, 스티브잡스의 WWDC 키노트는 (컴퓨터) 세계를 뒤흔들었습니다. 바로 Macintosh가 Intel 프로세서를 쓴다는 선언 때문이었지요. 이것이 의미하는 바는 현존하는 데스크탑컴퓨터의 인스트럭션셋이 x86 아키텍쳐로 통합된다는 것에 있습니다. 같은 프로세서, 같은 메인보드, 같은 그래픽카드 표준, 같은 ... ... ...

모든 것이 같은 상황에서 사용자들이 선택할 수 있는 여지는 바로 하나 남았습니다. 바로 운영체계입니다. 오히려 Mac이 x86 아키텍쳐를 사용함으로써 운영체계에 대한 선택은 더욱 자유롭게 되었습니다. Mac사용자도 윈도우즈를 사용할 수 있고, PC 사용자들도 다소 어렵지만 Mac을 운영체계로 선택할 수 있습니다.

사용자들은 욕심이 많습니다. 만약, 큰 돈을 들이지 않고 모든 시스템을 다 갖을 수 있다면 다 갖으려들 것입니다. 특히나 일반적인 사용자들에게 소프트웨어는 공짜나 다름 없습니다(사이트 라이센스가 되었던 불법 복사가 되었던...). 최근 VMWare Fusion, Parallels Desktop 등 버츄얼라이징 소프트웨어들이 크게 환영 받는 이유가 되겠습니다. 바로 여러 운영체계들 동시에 "native"에 가까운 속도로 실행할 수 있다면 누가 그것을 마다하겠습니까?
결국 데스크탑 버츄얼라이즈 솔루션들의 급격한 발전은 통합된 하드웨어 환경에서 비롯되었다고 해도 과언이 아닐 것입니다.

d. 인터넷 서비스들의 발전

데스크탑 가상화 보다 현재 더욱 안정화되어있는 거대한 시장은 서버집약(server consolidation) 시장입니다. 수조원의 가치를 갖는 VMWare를 필두로 가치를 따질 수 없는 Xen Source 그리고 많은 솔루션 프로바이더들이 영역을 급격히 넓히며 심심치 않게 돈을 벌어들이고 있습니다.

Long-Tail이라는 책에도 나오지만 인터넷의 발달은 소수의 대형 힛트 시장과 함께 다수의 니치 마켓으로 구성되어 있다고 하는 것이 더욱 자연스러울 것입니다. 특히, 인터넷이 발달할수록 이러한 경향은 가속화 될 것입니다.
예를 들어 조중동의 3대 신문들은 여전히 존재하는 가운데, 많은 소규모 인터넷 언론사들이 나타났다 사라지는 것을 반복하고 있습니다. 블로그 역시 하나의 작은 인터넷 언론이라 말할 수 있겠지요?

아울러서 작은 인터넷 상점도 무수하게 생기고 있습니다. 디지털 카메라를 판매하는 영세한 용산 전자 상가의 상점부터 자신이 직접 만든 옷을 파는 인터넷 상점까지 소규모 상점은 크게 증가하고 있습니다. 이러한 상점들을 호스팅하기 위한 지금까지의 솔루션들은 어땠습니까?

둘 중의 하나였습니다. 첫째는 독립적인 서버를 구축하여 IDC에 서버를 배치하고 관리 하는 방법입니다. 다른 방법은 하나의 서버에서 다수의 사이트들을 가상 웹서버 형태로 서비스하는 방법입니다. 후자의 경우를 먼저 살펴보지요. 호스팅 서비스를 이용한다면 가장 큰 장점은 역시 비용 절감일 것입니다. 또한 관리에 대한 책임을 지지 않을 수 있어서 편리합니다. 하지만, 단점도 많지요. 일단 서버에 대한 통제 권한이 없기 때문에 데이터베이스를 비롯하여 자신이 필요한 설정과 프로그램 설치가 어렵다는 점이 문제입니다. 또한, 네트워크 bandwidth 제한 등의 장치들을 통해 공평한 자원 분배를 보장하고 있긴 하지만 다른 가상 웹서버가 CPU 및 하드디스크 입출력이 많다면 필연적으로 성능의 피해를 입을 수 있습니다. 아울러서 보안 문제도 존재하지요. 다수의 웹서버가 존재하는 이상 보안상의 취약점은 더욱 많아질 수 있고, 관리 업체가 보안을 소흘히하면 호스팅을 이용하는 많은 웹서버의 주인들은 큰 피해를 보게 될 것입니다. 또한, 호스팅 업체가 마음만 먹으면 얼마든지 각 사용자들의 내부정보를 마구 볼 수 있는 문제도 존재하지요. 이러한 이유로 호스팅 서비스를 이용해서는 제대로 된 웹서비스를 할 수 없습니다. 하지만 그렇다고 독립적인 서버를 IDC에 두는 것은 기술적으로 능숙해야하며, 초기 시설에 비용이 많이 들고, CTO 역시 만만치 않을 것입니다.

이러한 문제들을 한 번에 해결할 수 있는 것이 바로 서버 컨설리데이션 솔루션입니다. 가상 머신을 사용한다면?
완벽하게 독립된 서버를 할당 받아 사용함으로써 사용자들은 완전히 개별화된(customized) 플랫폼을 구축하여 사용할 수 있게 됩니다. 그 누구도 내가 서버에 어떤 설정을 하고 어떤 프로그램을 쓰던 간섭하지 않습니다. 아울러서, 메모리 및 CPU 등 사용하는 자원에 대해 완벽하게 공정한 분배가 가능합니다. 제가 30%의 CPU 시간을 돈을 주고 사면 가상머신 모니터는 저의 가상머신에게 정확하게 그만큼의 성능을 제공할 수 있음으로 가능해지는 서비스입니다. 또한, 관리 역시 편해집니다. 직접 운영체계를 설치하고 웹서버를 설치하고 하는 것들이 어렵게 느껴진다면 이미 잘 만들어진 웹서버 프로토타입 중에 자신이 원하는 설정을 골라 해당 가상머신 이미지를 "카피"해서 사용하기만 하면 되는 것입니다. 만약, 가상머신 안에서 실행되는 운영체계가 침입을 당하거나 장애로 인해서 망가졌다면 간단하게 다시 백업해두었던, 또는 프로토타입 가상 머신 이미지를 하나 카피해서 실행하면 순식간에 복구가 되겠지요.

이러한 이우로 소규모의 다양한 서비스가 많아지는 미래의 인터넷 서버 시장에서 가상머신의 활용은 호스팅 업체들에게 강력한 경쟁력이 될 뿐만 아니라 호스팅 서비스의 사용자들에게도 적은 비용으로 서버를 장만하는 것과 같은 효과를 누리게 하는 잇점을 제공하게 됩니다.

e. 결론

수면아래로 가라앉아있던 버츄얼머신 기술이 최근 급속히 부상하여 서버시스템의 꽃같은 존재로 군림하게 된 것에는 여러 이유가 있을 것입니다. 본 글에서는 저 나름대로 여러 이유들을 정리하여 보았습니다. 이 외에도 많은 이유가 있겠지만 무엇보다 중요한 것은 지금 현재 버츄얼 머신은 많은 사람들이 필요로 하고 있는 존재라는 것입니다. 이미 연구실에서 사람들을 매료시키는 존재를 넘어서서 돈을 위해, 필요성에 의해 많은 지식 노동자들이 달라붙어 개발하고 있는 상품이 되버린 것입니다.

과연 이러한 르네상스 시대에 컴퓨터 엔지니어들은 이것을 어떻게 활용해야할지 다음 글에서 고민하도록 하겠습니다.

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by amplengine | 2008/08/31 00:40 | Virtual Machine | 트랙백 | 덧글(0)

트랙백 주소 : http://amplengin2.egloos.com/tb/768773
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지다음 페이지 ▶