운영체제 관리/윈도우(Windows)

기타 - 가상화(Virtualization)와 가상화 방식의 종류

본클라쓰 2010. 3. 26. 12:18

 

가상화

 

 가상화(Virtualization)란 하나의 하드웨어를 다수의 가상 하드웨어로 구분하여 각각의 가상 하드웨어에서 자신들에게 필요한 OS를 설치해 운영하는 방법을 말합니다. 가상화 환경을 통해 여러 대의 물리적인 서버에 사용되던 역할이 한 대의 물리적인 서버의 가상 머신(virtual machine)내에 설치되어 한 대의 물리적인 서버를 통해 여러 개의 서버 역할을 통합하고 관리할 수 있어 화드웨어 사용률을 최적화하게 됩니다.

 

 이 한 대의 물리적인 서버에 설치된 각각의 서버 역할은 철저히 고립된 가상 환경에서 동작하게 되고, 고립된 환경은 보안의 향상 및 쉬운 관리로 이어질 수 있습니다. 따라서 여러 대의 물리적인 서버가 하나의 서버로 통합되어 관리되어 관리 비용은 낮아지게 되고, 문제 발생에 더욱 빠르게 대응할 수 있습니다.

 

 

 

가상화의 장점

 

 가상화의 가장 큰 목적은 서버의 통합입니다. 현업 환경에서 서버의 CPU 사용률이 10% 미만인 경우가 상당히 많습니다. 대표적인 예로 사용자에게 컴퓨터 호스트 이름을 IP주소로 변환해주는 DNS서버는 엔터프라이즈 기업에서는 어디서나 한 대는 가지고 있을 만한 서버인데 이와 같은 서버는 사용률이 매우 낮습니다. 이렇게 사용률이 낮은 서버를 여러개 통합하여 하나의 서버로 관리할 수 있는 방법을 제공하는 것이 가상화입니다.

 

 대개의 비즈니스는 유연성, 안정성, 확장 가능성 또는 보안성 등 경쟁적인 이점들을 유지하고 강화하는 한편, 관리의 용이함과 비용 절감에 대한 압력 하에 있습니다. 이런 문제는 가상화를 통해 분리된 하드웨어에 대한 유지 보수 비용을 단일 시스템에서 다수의 서버를 통합하는 것으로 해결할 수 있습니다. 서버 통합의 주요 이점 중의 하나는 하드웨어 요구사항을 줄여줄 뿐 아니라, 전략 및 관리 비용을 절약함으로써, 결국 전체 소유비용(TCO) 절감을 가져옵니다.  예를 들어 DHCP 서버로 사용하는 하나의 머신에 추가적으로 DNS서버, 파일서버, 그리고 프린트 서버 등을 설치하여 사용한다는 의미입니다.

 

 

 

가상화로 발생할 수 있는 문제점

 

 이 경우 발생할 수 있는 문제점으로는 특정 서비스가 과도한 요청을 받아 시스템에 부하가 걸릴 경우 타 서비스에도 영향을 주어 병목 현상(bottle neck)을 유발한다는 것입니다. 게다가 다수의 서비스를 위한 많은 포트의 대기는 보안상으로도 좋지 않으며, 보안 패치를 업데이트 할 때마다 시스템을 다시 시작해야 할 확률도 높아지게 됩니다. 또한 여러 응용 프로그램과 서비스를 하나의 머신에 설치하여 사용할 경우에는 각 응용 프로그램 간에 충돌로 인한 예상치 못한 문제가 발생할 가능성도 있습니다. 이로 인해 개별 벤더에서는 자신의 솔루션만을 하나의 머신에 설치할 것을 권장하고 있고, 문제 발생의 원인이 타 벤더의 솔루션 충돌로 추정될 경우 문제 해결을 더욱 어럽게 만들 수 있습니다. 이 때문에 물리적 머신과 서비스와의 비율이 1:1 이라는 현상이 보편화 된 것입니다.

 

 

 

가상화 방식

 

1. 하드웨어 에뮬레이션(emulation)

 

 가장 복잡한 가상화는 하드웨어 에뮬레이션에 의해 제공됩니다. 이 방식은 하드웨어 VM에서 가상의 하드웨어를 생성하는 방식으로 생성된 가상의 하드웨어를 에뮬레이트라고 합니다.

 하드웨어 에뮬레이션의 가장 큰 문제는 극도로 느려질 수 있다는 점입니다. 모든 명령어들이 기반 하드웨어에 시뮬레이트 되어야 하기 때문에 100배 정도 느려지는 것은 다반사입니다. 사이클 정확성(cycle accuracy), 시뮬레이트 된 CPU 파이프라인, 캐싱 동작으로 포함하나 하이파이(high-fidelity) 에뮬레이션의 경우 실제 속도 차이는 100배나 더 느려질 수 있습니다.

 

 

2. 전체 가상화(Fullvirtualization)

 

 전체 가상화(네이트브 가상화)는 게스트 OS들과 네이티브 하드웨어 사이를 중재하는 가상 머신을 사용합니다.

 VMM이 게스트 OS와 기반 하드웨어 사이를 중재하기 때문에 보호를 받고 있는 특정 명령어들은 기반 하드웨어를 OS가 소유한 것이 아닌 하이퍼바이저를 통해 공유되기 때문에 하이퍼바이저 내에서 트랩핑 및 핸들되어야 합니다. 전체 가상화는 하드웨어 에뮬레이션보다는 빠르지만 하이퍼바이저 중재 때문에 실제 하드웨어 보다 성능이 낮아집니다.

 전체 가상화의 가장 큰 장점은 OS를 수정하지 않고 실행될 수 있다는 점입니다. 유일한 제한 사항은 OS가 기반 하드웨어를 지원해야 한다는 것입니다.

 

 

3. Para virtualization

 

 para virtualization은 전체 가상화와 약간 유사한 대중적인 기술입니다. 이 방식은 기반 하드웨어로의 공유 액세스에 하이퍼바이저(hypervisor)를 사용하지만, 가상화 인식 코드를 OS로 통합니다.  

 이 방식은 재컴파일이나 트래핑(trapping)을 할 필요가 없습니다. OS 그 자체로 가상화 프로세스에 협력하기 때문입니다. 따라서

게스트 OS들은 하이퍼바이저에 맞게 수정되어야 하는 단점이 있습니다. 하지만 para virtualization은 가상화되지 않은 시스템 성능에 가까운 성능을 보입니다. 전체 가상화와 마찬가지로, 여러 다른 OS들이 동지에 지원됩니다.

 

 

4. OS 레벨 가상화

 

 마지막 기술인 OS 레벨 가상화는 지금까지 다루어왔던 것과는 다른 기술을 사용합니다. 이 기술은 OS에서 서버들을 가상화합니다. 이 방식은 하나의 OS를 지원하고, 서버들을 분리시킵니다.

 OS 레벨 가상화는 OS커널을 수정해야 하지만, 성능이 매우 우수하다는 장점이 있습니다.

 

[참고] : http://rinapc.com/164