가상 머신과 VMware
기존 자료 백업 2009. 8. 23. 14:07 |이곳은 백업 블로그 입니다. 현재 캐플이 활동 중인 블로그는 CAppleBlog.co.kr 입니다. 최신 정보들은 새로운 블로그에서 확인해 보세요. ^^
- 이곳은 기존 블로그들의 글을 한군데로 모아 놓은 백업 블로그입니다.
- 현재 링크는 대부분 올바르지 않으며 이러한 링크들은 모두 cappleblog.co.kr 로 이동합니다. (※ 링크 주의)
- 블로그와 커뮤니티는 서로 다른 공간입니다.(로그인을 따로 해야합니다.)
- 저는 윈티티(WinTT)이자 신비(ShinB)이며 캐플(CApple)입니다. 편한대로 불러주세요.
VMware 란 무엇인가?
지금 이 글을 읽고 있으신 분들 중 대다수의 분들이 VMware 란 것이 도대체 무엇인지 어디에 쓰는 것인지 조차 모르시는 분들이 많으실거라 생각합니다. 아무 것도 모르는 상태에서 VMware 를 접하기엔 다소 무리가 따르기 때문에 VMware 에 대해서 알아보는 시간을 가져보도록 하겠습니다. 이미 VMware 가 무엇인지 가상 머신이라는 개념이 무엇인지 알고 있다면 이 글은 읽지 않으셔도 좋습니다.가상의 머신 - Virtual Machine
가상 머신(Virtual Machine) 이라는 개념은 VMware 라는 프로그램을 이해하기 위해서 가장 중요한 내용입니다. Virtual 의 의미는 단어 그대로 가상 즉, 현실에 존재하지는 않지만 마치 존재하는 것과 같은 즉, 허상을 의미합니다. Machine 의 의미 또한 단어 그대로 기계, 기계적 장치를 의미합니다. 이를 조합하면 현실에 존재하지 않는 가상의 기계를 의미하게 됩니다.가상 머신이란 바로 존재하지는 않지만 마치 존재하는 듯이 우리가 사용할 수 있게끔 해주는 것들을 의미합니다. 또한 이러한 기술을 통틀어서 가상화 기술이라고 부르고 있습니다.
컴퓨터를 사용하다 보면 여러가지 이유로 다른 컴퓨터가 필요할 때가 있습니다. 과거에는 컴퓨터를 한 대 더 사거나 구해오는 방법 밖에는 없었습니다. 하지만 내가 사용하고 있는 컴퓨터 안에 컴퓨터를 한 대 더 만들 수 있다면? VMware 가 바로 그러한 것을 가능하게 해주는 프로그램입니다.
VMware 는 수 많은 컴퓨터 중에서 우리가 흔히 윈도우를 설치해 사용하는 컴퓨터인 x86/x64 아키텍쳐의 컴퓨터 즉, 가상의 PC 를 만들어 줍니다. 이 가상의 PC 는 실제 우리가 사용하는 PC 와 동일하게 작동하므로 가상의 PC 에 윈도우나 리눅스를 설치하여 사용하는 것이 가능합니다. 이는 실제 컴퓨터를 한 대 더 사용하는 것과 같은 효과를 가질 수 있습니다. 고로 컴퓨터 한 대로 여러 대의 효과를 내는 것 입니다. 이와 유사한 프로그램으로는 마이크로소프트사의 VirtualPC 와 썬 마이크로 시스템즈의 VirtualBOX 가 있습니다.
※ PC - 컴퓨터의 종류를 나눌 때에는 사용되는 CPU 가 무엇인지를 통해 나누게 됩니다.(정확히는 CPU 의 아키텍쳐) PC 란 Persnal Computer 의 약자로 IBM 이 제안한 규격의 개인용 컴퓨터를 의미합니다. 여기에 사용되는 CPU 가 바로 Intel 의 x86/x64 아키텍쳐 CPU 입니다. 우리가 흔히 사무실이나 집에서 사용하는 거의 모든 컴퓨터가 바로 이 PC 즉, x86/x64 아키텍쳐 CPU 를 사용하는 컴퓨터입니다. x86/x64 아키텍쳐를 사용하는 CPU 로는 비단 인텔 뿐만 아니라 AMD 나 VIA 와 같은 프로세서 제조사에서 만든 CPU 들도 있는데 이들은 모두 x86/x64 아키텍쳐를 사용하므로 통틀어 x86/x64 호환 CPU 라고 부릅니다.
이러한 x86 컴퓨터와 다른 종류의 컴퓨터로는 애플에 IBM 의 Power 아키텍쳐 CPU 를 사용하던 매킨토시(맥)이 있습니다.(현재는 맥도 x86 으로 전향했습니다.) 이렇듯 CPU 의 아키텍쳐가 다르다는 것은 그 둘이 전혀 별개의 컴퓨터라는 것을 의미하며 호환도 되지 않습니다. Power CPU 외에도 Alpha CPU, Itanium CPU 등 다양한 종류의 CPU 들이 있습니다.
VMware 는 이러한 다양한 종류의 컴퓨터 중 x86/x64 컴퓨터를 가상으로 만들어 줍니다. 이 후 글에서 특별한 분류없이 컴퓨터라 칭한다면 이는 x86/x64 아키텍쳐를 사용하는 PC 를 의미합니다.
가상의 컴퓨터 - VMware
VMware 의 근간인 가상 머신이란 것이 무엇인지 그 개념과 VMware 란 프로그램이 어떠한 프로그램인지 짧게나마 알아보았습니다. 본격적으로 VMware 를 설치하고 사용하기에 앞서 VMware 에 대해 좀 더 알아두어야 할 내용들에 대해서 이야기 해 보도록 하겠습니다. 여기에서 이야기하는 내용들은 어쩌면 VMware 를 이해하는데에 있어서 가장 중요한 내용들이 아닐까 생각합니다.주인과 손님 - Host 와 Guest
VMware 와 같은 가상 머신에서 가장 중요한 개념 중에 하나가 바로 Host(호스트) 와 Guest(게스트) 의 개념입니다. Host 는 단어 그대로 주체가 되는 주인을 의미하며 Guest 는 이러한 주인을 이용하는 손님의 개념이라는 것 입니다. 이를 가상 머신에 대입하여 보자면 우리가 실제로 사용하는 컴퓨터에 가상의 컴퓨터를 만들었으니 실제 컴퓨터는 Host 가 되고 가상 컴퓨터는 Guest 가 되는 것 입니다. 마찬가지로 실제 컴퓨터에서 돌아가는 운영체제는 Host 운영체제 가상 컴퓨터에서 돌아가는 운영체제는 Guest 운영체제가 되는 것 입니다. 굉장히 쉽고도 단순한 개념이지만 이 개념이 혼동되면 안 되기 때문에 잘 기억하시길 바랍니다. 다음은 실제로 제가 사용 중인 시스템을 호스트와 게스트의 개념으로 나누어 보도록 하겠습니다.'AMD 애슬론 64 X2 3600+ CPU 에 메모리 4GB, 하드 디스크 320GB 의 컴퓨터에 윈도우 비스타를 설치해 사용하고 있습니다. 여기에 VMware 를 통해 메모리가 512MB, 하드 디스크 40GB 인 가상의 컴퓨터를 만들고 윈도우 XP 를 설치하여 사용하고 있습니다'
- 호스트 컴퓨터 : AMD 애슬론 64 X2 3600+, RAM 4GB, HDD 320GB 의 컴퓨터
- 게스트 컴퓨터 : RAM 512MB, HDD 40GB 의 컴퓨터(VMware 최신 버전의 게스트 컴퓨터 CPU 는 호스트 컴퓨터를 따라감)
- 호스트 운영체제 : 윈도우 Vista
- 게스트 운영체제 : 윈도우 XP
VMware 의 작동 구조
VMware 가 작동되는 구조에 대해서 알아보도록 하겠습니다. 물론 그 기술적인 측면이야 굉장히 복잡하겠지만 그런 것 까지 알 필요도 없고 저도 모릅니다. -_- 하지만 어떠한 원리로 가상의 컴퓨터가 작동되는지 그 개념적인 부분은 사실 굉장히 단순합니다. 다음 그림은 컴퓨터에서 운영체제와 어플리케이션이 작동하는 구조입니다.그림과 같이 컴퓨터엔 하드웨어가 있습니다. 이 위에 Operating System - 운영체제 가 작동하며, 다시 이 위에 우리가 흔히 사용하는 다양한 오피스, 메신저, 게임 등의 어플리케이션들이 작동하게 됩니다. VMware 또한 어플리케이션 입니다. 하지만 가상의 컴퓨터를 생성할 수 있는 어플리케이션이죠. 다음 그림은 컴퓨터에서 VMware 의 가상 컴퓨터가 작동하는 구조입니다.
VMware 의 작동 구조
VMware 는 이와 같이 어플레케이션 부분에 위치하면서 가상 머신을 올릴 수 있는 기반을 제공합니다. 이렇게 제공된 기반 위에서 가상 머신들을 생성할 수 있으며 생성된 가상 머신에 운영체제와 어플리케이션을 설치함으로써 하나의 독립적인 시스템을 완성하는 것 입니다. 즉, 컴퓨터 안에 컴퓨터가 있고 윈도우 안에 또 다른 윈도우가 있는 것 입니다. 이것이 바로 VMware 의 가상 머신입니다.
정리하여 말하자면 호스트 컴퓨터에 운영체제가 작동하고 있고 여기에 VMware 를 설치하면 가상의 컴퓨터를 생성할 수 있는 기반을 제공해 주게 되고 이 위에 생성된 컴퓨터는 게스트 컴퓨터가 됩니다. 게스트 컴퓨터에 운영체제와 프로그램들을 설치할 수 있고 이는 호스트 컴퓨터와는 독립된 개별적인 새로운 하나의 컴퓨터가 작동한다고 볼 수 있는 것 입니다. 즉, 우리 앞에 있는 존재하는 물리적인 컴퓨터는 한 대이지만 실제로는 두 대 또는 그 이상을 작동하는 것과 동일한 효과를 가지는 것 입니다.
※ 위의 두 이미지는 VMware 공식 사이트에 올라온 이미지들을 내용에 맞게 짜르고 짜집기한 이미지들입니다. 저는 저런 깔끔한 이미지를 제작할 능력이 없습니다. ㅜ_ㅜ
가상 머신의 하드웨어
VMware 를 통해 생성한 가상의 컴퓨터는 어떠한 하드웨어를 사용하는 것 일까요? 컴퓨터에 있어 하드웨어는 근본적인 바탕이 됩니다. 그렇다면 VMware 는 어떤 식으로 이러한 하드웨어들을 처리할까요? 이 부분에 대해 이해하고 있다면 앞으로 VMware 를 다루고 성능을 끌어 올리는데에 있어 조금 더 수월해 질 것 입니다.기본적으로 VMware 의 모든 하드웨어는 하드웨어의 기능을 그대로 소프트웨어로 재현한 것 들입니다. 즉, 네트워크 카드는 하드웨어 네트워크 카드의 모든 기능을 소프트웨어 적으로 복제하여 실제 하드웨어 네트워크 카드와 동일한 기능을 가지는 가상의 네트워크 카드를 창조해 낸 것 입니다. 소프트웨어 적으로 복제된 네트워크 카드는 실제 네트워크 카드와 동일하게 작동합니다. 그렇기 때문에 가상 컴퓨터에 설치된 운영체제는 이러한 네트워크 카드가 실제한다고 인식하는 것 입니다. 비단 네트워크 카드 뿐만 아니라 VMware 상에서 작동하는 많은 장치들이(VGA 나 Sound 등) 바로 이러한 방식으로 소프트웨어 적으로 복제 처리된 장치들인 것 입니다.
익히 알다시피 소프트웨어 적으로 하드웨어의 기능을 구현한다는 것은 많은 제약이 따르게 됩니다. 소프트웨어 적으로 처리하였기 때문에 실제 하드웨어보다 성능이 떨어지는 것은 어쩌면 당연한 것일지 모르겠습니다. 또한 세상의 모든 하드웨어 장치들을 이렇게 소프트웨어 적으로 복제할 수 없기 때문에 가상 컴퓨터 안의 거의 모든 장치들은 기본적인 기능을 가지는 표준적이며 범용적인 장치들이 될 수 밖에 없습니다. (표준 VGA 또는 SVGAII 등의 표준적이며 범용적인 장치들이 사용됩니다.)
이렇게 소프트웨어 적으로 실제 장치를 흉내내는 것 외에 CPU 는 호스트 컴퓨터의 CPU 자원을 일정량 할당 받아 사용합니다. 메모리 또한 실제 메모리의 일정량을 할당 받아 사용하게 됩니다.(실제 메모리의 일정량을 할당 받기도 하며 가상으로 메모리를 생성하여 할당하기도 합니다. 이는 사용자가 조절할 수 있습니다.) 또한 ODD 나 HDD 장치의 경우 가상으로 생성할 수도 있으며 가상이 아닌 호스트 컴퓨터의 장치를 그대로 사용하기도 합니다. 이 또한 모두 사용자가 설정할 수 있는 부분입니다.
이처럼 VMware 의 모든 하드웨어는 소프트웨어 적으로 처리된 가상의 하드웨어이며 일부는 실제 호스트 컴퓨터의 하드웨어를 이용하기도 합니다. 이렇게 생성된 가상 컴퓨터 위의 운영체제는 가상으로 생성된 모든 하드웨어 장치를 가상이 아닌 실제하는 장치로 인식하며 이는 우리가 마치 실제로 개별적인 컴퓨터를 사용하고 있는 것과 같은 효과를 가지게 하는 것 입니다.
좀 더 쉽게 이야기 해 볼까요? 매트릭스란 영화가 적당하겠군요. 매트릭스에 대해서는 모두 들어보셨거나 실제로 보신 분들이 대부분일 겁니다. 운영체제를 '나'로 생각하고 하드웨어를 '세상'으로 생각해 보시길 바랍니다. 나는 매트릭스의 안에 있습니다. 나는 이 세상이 가상이란 것을 알아채실 수 있습니까? 나에게 있어 실제 세상 그리고 실제 세상과 동일한 매트릭스의 세상 무엇이 다릅니까? 마찬가지 입니다. 게스트 운영체제에게 있어 VMware 의 가상 컴퓨터는 매트릭스인 것 입니다. 우리는 이 가상의 세계에서 실제 세상과 동일한 거의 모든 작업을 할 수 있습니다.
진짜가 아닌가요? 진짜가 뭔데?
※ 가상 컴퓨터에서는 실제 컴퓨터에서 할 수 있는 거의 모든 작업을 할 수 있지만 하드웨어에 직접 접근해야만 하는 가장 저차원적인 작업들 예를 들어 로우 레벨 포맷과 같은 작업은 불가능한 경우가 있습니다. 그 외에 우리가 흔히 사용하는 거의 모든 고차원적인 기능들, 파티션을 나누고 포맷을 하고 운영체제를 설치하고 운영체제 위에서 프로그램을 구동시키는 등의 작업은 모두 실제 컴퓨터와 동일하게 작업이 가능합니다.
VMware 의 장단점
모든 프로그램 및 기술이 100% 의 장점만을 가질 수는 없습니다. VMware 도 마찬가지 입니다. VMware 는 분명 매력적인 프로그램이지만 매력적인 만큼 이러한 장단점을 정확히 파악하여 적재적소에 VMware 를 사용하는 것도 중요합니다.- VMware 의 장점
- 한 대의 컴퓨터에서 여러 운영체제를 동시에 구동시킬 수 있다.
- 게스트 컴퓨터는 호스트 컴퓨터에 영향을 주지 않는다.
- 호스트 컴퓨터와 게스트 컴퓨터 또는 게스트 컴퓨터끼리 서로 연결하여 통신할 수 있다.(네트워크)
- 게스트 컴퓨터들의 현재 상태를 원하는대로 저장할 수 있으며 복원할 수 있다.
- VMware 의 단점
- 거의 모든 장치들을 가상으로 생성하여 사용하므로 어쩔 수 없이 실제 컴퓨터보다 느리다.
- 호스트 컴퓨터의 자원을 빌려 사용하므로 호스트 컴퓨터의 성능에 영향을 미치며 또한 호스트 컴퓨터의 성능에 많은 영향을 받는다.
한 대의 컴퓨터에서 동시에 여러 운영체제를 구동할 수 있다는 것은 엄연히 멀티 부팅과는 다른 것 입니다. 멀티 부팅은 하나의 운영체제를 사용하기 위해선 반드시 다른 운영체제를 꺼야 하지만 VMware 는 비스타 안에서 XP 를 또는 리눅스를 비스타가 구동되고 있는 상태에서 함께 구동할 수 있음을 이야기 합니다.
게스트 컴퓨터는 호스트 컴퓨터와는 독립된 별개의 컴퓨터입니다. 즉, 게스트 컴퓨터에서 어떠한 작업을 하다가 잘못하여 게스트 컴퓨터에 문제가 생기더라도 호스트 컴퓨터에는 아무런 영향도 없다는 것 입니다. 즉, 어떠한 영향을 미칠지 모르는 미지의 프로그램을 게스트 컴퓨터에 설치하여 게스트 컴퓨터가 맛이 가더라도 우리는 게스트 컴퓨터만 꺼버리고 호스트 컴퓨터는 아무런 변화없이 그대로 사용할 수 있다는 것 입니다.
게스트 컴퓨터는 네트워크를 이용하여 호스트 컴퓨터와 통신할 수 있습니다. 또한 게스트 컴퓨터끼리도 통신 할 수 있습니다. 이는 네트워크를 이용하는 모든 기능을(웹, FTP 등) 게스트 컴퓨터에서도 사용할 수 있음을 의미합니다. 즉, 게스트 컴퓨터에 서버를 구축하면 호스트 컴퓨터 또는 물리적으로 다른 컴퓨터에서도 접속하여 마치 실제 서버를 한 대 준비하여 구동시키는 것과 동일하게 사용할 수 있다는 것 입니다.
게스트 컴퓨터의 현재 상태를 있는 그대로 저장할 수도 있습니다. 즉, 시스템에 어떠한 영향을 미칠지 모르는 작업을 하기 전 현재의 상태를 저장해 두고 언제든지 그 때 그 상태 그대로 100% 동일하게 되돌릴 수 있습니다. 이는 테스트나 관리적인 측면에서 굉장한 메리트가 있는 기능입니다.
하지만 VMware 에서 제공하는 가상 컴퓨터는 어디까지나 가상 컴퓨터입니다. 이는 실제 컴퓨터의 자원을 나눠 사용거나 가상으로 만들어서 사용한다는 것 입니다. 그렇기 때문에 실제 컴퓨터보다 느리며 이러한 가상 컴퓨터가 구동되는 실제 호스트 컴퓨터의 성능에 영향을 받으며 반대로 미칠 수 밖에 없다는 것은 어쩔 수 없는 단점입니다. 하지만 요즘의 컴퓨터 성능은 이러한 VMware 를 사용하는데에 있어 큰 불편함이 없을 정도로 급속히 발전한게 사실입니다. 엄청난 컴퓨팅 성능 및 그래픽 성능을 요구하는 작업이(3D 게임 등의 실제 컴퓨터에서도 많은 성능을 요구하는) 아니라면 VMware 는 여러분에게 충분한 성능을 제공할 것 입니다.
이상으로 가상 머신과 VMware 에 대해서 간략하게 알아보았습니다. 다음 글 부터는 VMware 를 본격적으로 사용하는 것에 대해서 알아보도록 하겠습니다.