| 신동필 한국과학기술정보연구원 전문연구위원
미국 오클라호마대학교에서 컴퓨터 공학 박사를 취득하고 전 시스템 공학 연구소 소장을 역임했다. 현재는 한국과학기술정보연구원 전문연구위원으로 재직하고 있다. ‘IT 자원의 가상화 기술’, ‘차세대 컴퓨팅’ 등의 저서를 발간했다. |
가상화는 최근 IT업계에서 가장 많이 회자되는 말 중 하나다. 하지만 어떻게 가상화라는 말이 나왔는지, 어떤 원리로 동작하는지에 대해 아는 이는 드물 것이다. 다양한 IT자원의 가상화 기술 발전을 통해 가상화가 무엇인지, 어떻게 동작을 하는지, 어떤 효과가 있는지에 대해 알아보자.
인터넷에는 CPU와 운영체계가 서로 다른 수많은 컴퓨터들이 접속돼 있다. 그럼에도 불구하고 우리는 많은 자료를 편리하게 찾거나 다른 사람과 자료를 서로 주고받을 수 있다. 그리드 핵심, 가상 컴퓨터
두 장소의 컴퓨터가 같은 종류인 경우에는 유용한 소프트웨어를 다운받아 내 컴퓨터에서 수행시키기도 한다. 그러나 컴퓨터가 서로 다를 경우에는 상대방 컴퓨터에서 컴파일 한 소프트웨어를 내 컴퓨터로 다운받아 바로 수행시킬 수 없다. 이를 두고 우리는 ‘인터넷은 IT자원 간 매끄러운 2진수 호환성이 없다’고 말한다.
이런 문제를 해결하고자 인터넷이나 사설 고속통신망으로 구성된 특정 그룹이 여러 이기종 컴퓨터나 저장장치 간에 호환성을 부여해 대규모 협동 전산작업을 가능케 하는 구조를 ‘그리드(Grid)’라고 한다. 이런 그리드를 운영하는 미들웨어 ‘툴킷’의 핵심 기능이 바로 ‘가상컴퓨터’ 기술이다.
가상 컴퓨터란 ‘실제로는 존재하지 않는 컴퓨터를 존재하는 것처럼 사용하는 것’을 말한다. 이 기술은 과거 대형 컴퓨터에서 고가 자원인 CPU나 메모리를 타임쉐어링(Timesharing), 에뮬레이션(Emulation) 등의 소프트웨어 기법을 이용해서 여러 명이 동시에 사용하거나 없는 컴퓨터를 실제 컴퓨터로 대리 실행하는 기술이다. 그러나 1980년대 후반 PC의 범람으로 가상 컴퓨터 기술은 점차 필요 없게 돼 한 때 대부분 사라졌다.
그 후 전 세계의 이기종 PC나 IT자원들이 인터넷으로 연결되면서 큰 전산 요구를 충족시키기 위한 상호 호환성, 자원의 공동사용, 협업 등의 문제가 생겨났다. 또한 데이터센터나 서버 팜에서는 한 시스템으로 접근하는 다수의 이기종 사용자를 소화하기 위해 부하 분산과 작업이식 등 IT자원의 경영성 확보와 같은 고전적 문제와 함께 보안성 문제가 생겨났다.
이 문제는 연결된 모든 컴퓨터 자원을 단일 플랫폼으로 만들어 애플리케이션들이 수정 없이 자유로이 수행되고 이전될 수 있는 가상컴퓨터 미들웨어를 개발하면 해결될 수 있다. 이것이 바로 가상화 소프트웨어인 가상 머신 모니터(VMM; Virtual Machine Monitor)다. 결국 PC의 범람으로 사라졌던 가상화 기술이 PC의 범람으로 야기되는 문제를 해결하려고 부활한 셈이 됐다. 가상화 기술, VMM 중심으로 발전" 가상화 기술은 VMM을 중심으로 발전했다. 예를 들어 펜티엄(Pentium)과 윈도우 XP로 운영되는 호스트 컴퓨터 위에서 윈도우 NT나 매킨토시에서 운영되던 사용자 프로그램을 실행시키기 위해서는 그에 맞는 가상 컴퓨터(VM)를 제공해야 하는데, 이 일을 VMM이 한다. VMM은 한 호스트 위에서 수십 또는 수백 개의 VM을 생성, 통제, 소멸시키고 호스트 상황이 여의치 않으면 VM들을 분리 또는 포장해 멀리 떨어진 다른 장소의 서버로 이주시키기도 한다.
VMM 원리는 호스트의 CPU와 이를 사용하려는 수많은 VM들 사이에서 이들을 통제한다는 것이다. VM 운영체제의 모든 특권, 비 특권 코드는 호스트 CPU의 비 특권 모드로 가동하고 VMM은 CPU의 특권 모드로 가동된다. 만약 한 VM이 호스트 CPU에 인터럽트를 걸어 놓으면 VMM이 CPU를 다시는 통제할 수 없게 되므로, 이때는 VMM은 이 명령을 트랩을 걸어 기록하고 인터럽트가 풀릴 때까지 그 VM에 다음 인터럽트 교부하는 것을 지연시킨다.
다른 보통의 명령어들은 플랫폼 간 번역해 실행시킨다. 이와 같이 트랩 기능을 이용한 VMM 구현은 VM을 실행시킬 때 VMM이 안전하게 CPU를 사용 또는 통제하게 할 수 있게 하고, VM의 소프트웨어가 실제 컴퓨터에서 수행되는 것 같은 착각을 만드는 CPU 가상화 기법의 이상형이다. 인텔-AMD, 가상화 기술 지원
문제는 2004년까지 인텔이나 AMD의 CPU가 트랩 기능을 지원하지 않았다는 사실이다. x86 운영체제의 POPF(인터럽트) 명령과 코드 세그먼트 레지스터(CSR; Code Segment Register)의 특권 확인 명령어는 트랩을 지원하지 않았다.
그래서 트랩 기능을 활용한 완전한 VMM 구현이 불가능해지자, 2001년 워싱턴 대학의 데날리(Denali) 프로젝트는 이들 명령어들을 가상화 가능 명령어로 바꾸어 VMM에 빌트인시키는 ‘의사가상화’ 기법을 개발했다. 또 다른 의사가상화인 디스코(Disco) VMM도 이들 명령어를 다른 기능으로 대체하는 기법을 도입했다.
다른 현실적 CPU 가상화 기법으로 VM웨어는 x86 호환 가상화 기법인 ‘고속 2진수 번역 방법’을 개발했다. 이는 보통 명령어는 가상화(번역)해 수행시키고 가상화 불가능 명령은 고속 2진수로 런타임(run time)을 번역한다. 결과는 완전 호환 고성능 VM을 제공하게 된다.
한편 2005년과 2006년, 인텔과 AMD는 가상화를 지원하는 특수 ISA CPU를 설계해 상용화했다. 인텔의 VT-i, AMD의 퍼시피카(Pacifica) 기술은 x86 CPU VMM을 지원키 위한 새 처리모드를 프로세서에 추가해 안전하고 투명하게 직접 수행하는 VMM과 VM을 실현시키고 VMM으로 인한 성능 손실을 없앴다. 또 다른 CPU 가상화 기법으로 고급언어(HLL) VM이 있다. 예를 들면 응용개발환경으로 자바(Java)와 같은 공통 언어를 중심으로 VM이 설계되면 애플리케이션을 모든 플랫폼으로 이식할 수 있다.
IT자원의 가상화 기술은 CPU 이외에도, 메모리, I/O, 네트워크 등에도 효율적으로 적용되고 있다. VM웨어 VMM은 VM메모리가 실제 하드웨어 메모리를 초과할 수 있게 디스크에 VM페이지를 할당해 쉐도우 페이지 테이블(SPT; Shadow Page Table)로 관리한다.
VMM이 중복 사용하는 메모리를 추적 검사해 SPT의 포인터를 단일 내용으로만 가리키게 해 낭비를 방지했다. 한편 VM웨어 VMM은 VM 운영체제가 가상디스크를 읽고 쓰면 VMM이 호스트 운영체제의 파일 읽고 쓰기 시스템 콜 명령으로 번역해 I/O 가상화를 실현했다.
미래의 VMM은 VM웨어의 ACE, N모션(Motion)과 같은 VM 이주기능으로 부하균형, 고장발견, VM의 생성, 소멸 등을 자동으로 수행할 것이다. 또한 라이브웨어(Liveware), 리버트(ReVirt), 테라(Terra) 같은 VMM 기능으로 강력한 보안환경도 제공할 것이다. 가상화 기술 도입 효과 다양
가상화 기술은 경영상의 이득도 가져온다. 서버 구매 예측량은 2009년에는 1000만대를 상회한다. 한편 2000년부터는 관리비용이 서버비용을 상회해 2005년에는 2배, 2008년에는 2.5배에 달할 전망이다. 가트너 그룹은 가상화 기술을 사용하지 않는 기업은 x86 기반 서버 운영비를 매년 25% 이상 추가 지출할 것이라고 예측했다.
양키 그룹이 전 세계 1700개 기업을 대상으로 조사한 결과, 가상화 기술 도입의 주된 동기는 인프라 비용 절감이며 도입한 기업의 2분의 1은 비용이 절감됐다고 전했다. 내셔널세미컨덕터의 CIO인 울리치 세이프(Ulrich Seif)는 VM웨어를 도입해 서버 구입량의 33%를 절약했다고 했다.퀄컴의 경우 1200대의 서버로 동작하던 것을 가상화 기술 적용해 100대로 줄여 12:1의 통합효과를 거둔 것으로 알려졌다. 또 10% 남짓한 자원 활용률을 80%까지 끌어올렸다.
이와 함께 서버가 차지하던 공간을 기존의 20분의 1 수준으로 줄였다. 수주가 걸리던 프로비저닝 소요 시간도 몇 시간으로 단축해 탁월한 효과를 거뒀다. 또 가상화 기술은 보안 효과도 있다. 파티션을 실현해 스위치가 꺼지면 그 개인정보는 삭제돼 다른 파티션에 옮겨지지 않으며 파티션 내에 남은 거래정보는 스파이웨어를 무효화시키고 삭제하기 때문이다.
[IT TODAY 2007년 7월호 게재] |