정보공간_1

[2기 수원 이동열] VMWare의 Virtualization 본문

IT 놀이터/Elite Member Tech & Talk

[2기 수원 이동열] VMWare의 Virtualization

알 수 없는 사용자 2012. 10. 15. 14:42

이번 포스팅에서는 이전에 컴퓨터 시스템에서 다루었던 포스팅에서 벗어나서, 클라우딩 시스템과 가상화에 대해서 한번 다뤄보고자 합니다. 그 중에서 중점적으로 다룰 부분은 가상화 시스템 중 상용 소프트웨어인 VMWare에 대해서 다뤄보고자 합니다. VMWare는 가상화를 지원하기 때문에, 여러 가지 용도로 사용되고 있는 소프트웨어입니다. 특히 윈도우환경에서 작업을 하다가 리눅스 환경에서 작업을 해야 하는 경우 많이 이용되고 있는데요.



일반적으로 윈도우와 리눅스를 사용하려고 하는 경우는 위와 같은 구조로 리눅스가 실행이 됩니다. 그림에서 보시다시피, host에서 동작을 하고 있는 컴퓨터의 입장에서는 VMWare를 하나의 프로그램으로 인식을 합니다. 그리고 VMWare는 가상으로 컴퓨터를 생성하여 그 컴퓨터에 리눅스를 설치를 하게 되는데, 이것이 일반적으로 말하는 VM(Virtual Machine)이 됩니다. 따라서 윈도우에 VMWare을 사용하여 설치한 리눅스는 GuestOS가 되는 것이고, 윈도우는 HostOS가 되게 됩니다. 이와 같이 User레벨에서 VM이 생성되어 돌아가는 방법을 Host based virtualization이라고 합니다. 이것의 큰 장점은 Host 운영체제가 있는 상태에서 Guest 운영체제가 동작을 하게 되기 때문에, 하드웨어 호환성 등을 Host OS의 지원을 받을 수 있는 장점이 있으며, 또한 다른 방식의 가상화 방식에 비해서 상대적으로 설치가 용이하기 때문에, 사용하기가 수월하다는 장점을 가지고 있습니다. 하지만 상대적으로 Guest 운영체제가 Host 운영체제에 영향을 받고 있기 때문에, 상대적으로 속도가 낮게 나오는 단점이 존재하며, Host OS의 커널 자원을 이용하는데 제약사항이 존재합니다.



Host based virtualization은 VM들이 User 레벨에 존재하기 때문에, 하드웨어를 사용하는데 제약사항이 존재할 수 있습니다. 따라서 이러한 문제를 극복하기 위해 사용하는 방법이 HostOS에 커널모듈을 삽입을 시킴으로써 VM들도 커널자원을 이용할 수 있도록 개선을 시키는 virtualization방법도 존재합니다. 그것의 대표적인 예가 리눅스의 KVM입니다. 이렇게 가상화하는 방식을 Hypervisor라고 하는데, Hypervisor의 역할은 가상의 하드웨어를 생성하여 VM들이 동작할 때 하드웨어를 인식할 수 있게 해주며, VM들의 요청을 실제 Hardware에 전달해주는 역할을 담당하게 됩니다.

Hypervisor virtualization Host based virtualization을 비교해보면, 비슷한 계층을 가지고 있는 것으로 보이지만, 실제 속도 면에서 많은 차이를 보이고 있습니다. 일단 2가지가 만들어진 목적 자체가 다릅니다. Host based virtualization은 Host OS기반으로 동작하고 있기 때문에 HostOS에 영향을 많이 받습니다. 이에 따라 HostOS의 상황에 따라 성능이 좌우가 됩니다. 하지만 Hypervisor는 HostOS 없이 동작을 하고 있기 때문에 상대적으로 속도가 빠르며, 가상화 관점에서 볼때 guestOS를 사용하는 실제 사용자에게 좋은 성능을 제공할 수 있게 됩니다.

Hypervisor의 가장 큰 특징은 가상화를 위해서 최적화가 잘되어 있다는 것입니다. 그런 최적화가 잘 이뤄진 이유는 바로 하드웨어에서 지원하는 여러 가지 가상화 기술들을 잘 활용하고 있기 때문입니다. 인텔VT는 최근에 나오는 x86계열에 탑재되어 있는 가상화를 위한 여러 기술들을 지칭합니다. Hypervisor들은 이렇게 실제 하드웨어에서 지원하는 여러 가상화 기술들을 잘 활용하고 있기 때문에, 단순 Host OS를 이용한 가상화에 비해서 더 좋은 성능을 낼 수 있게 됩니다.



VMWare에서도 Hypervisor Virtualization을 이용한 솔루션을 제공을 합니다. VMWare ESX시리즈가 이 기술을 활용하여 가상화를 하도록 도와주고 있습니다. 이러한 프로그램들은 대형서버들에 주로 설치를 하고 있습니다. 그리고 그 서버에 바로 리눅스와 같은 운영체제를 설치하는 대신 바로 VMWare를 설치하여 서버 안에 여러 개의 가상의 컴퓨터를 둬서 서버의 사용량에 따라서 자원을 사용할 수 있도록 제어를 하도록 할 수 있는데, 이런 방법도 클라우딩 컴퓨팅 환경을 구축하는 하나의 방법이 됩니다.

위 그림은 VMWare나 가상화 기술을 사용하여 Cloud computing 환경을 구축을 해본 사례입니다. 실제 머신내에 여러 개의 가상 머신을 둠으로써 실제 물리적 머신은 하나지만 가상화를 통해서 여러개의 서버가 동작하도록 구축한 사례가 됩니다. 이렇게 가상 머신에 Hadoop과 Mapreduce등을 설치하면, 가상머신의 개수에 따라서 자원의 분배나 작업량의 분배를 실시할 수 있게됩니다. 이렇게 VMWare을 활용하여 클라우딩 컴퓨팅 환경울 구축하는 것은 다음 포스팅에서 실시해보자 합니다.

본 포스팅 에서는 VMWare에 관한 가상화 기술에 대해 다뤄보았습니다. 본 포스팅에서 다루지 않은 가상화 기술들도 여러 존재하고 있습니다. 특히 리눅스의 여러 가상화 관련된 기술들이 활발히 개발이 되고 있습니다. 특히 Hypervisor를 이용한 KVM과 리눅스를 유저레벨로 동작시키는 User mode linux가 대표적인 리눅스 가상화 기술이라고 할수 있습니다. Virtualization 기술은 최근 클라우딩 컴퓨팅 기술로 인해 사람들에게 많은 관심을 받고 있는 기술 분야입니다. 따라서 Virtualization 기술에 대해서 활발히 연구가 진행되고 있는 만큼 좋은 기술들이 개발될 것으로 기대됩니다.