서버의 가상화는 많은 회사들이 안고 있는 하드웨어의 관리, 재난에 의한 시스템의 신속한 복구등 여러가지 문제를 해결해줄 수 있는 방법으로 각광을 받고 있습니다. 이런 서버의 가상화는 크기 두가지로 분류할 수 있습니다. 하나는 하이퍼바이저(Hypervisor)형과 또 하나는 호스트(Hosted)형 가상화로 나눌 수 있습니다.
① 하이퍼바이저(Hypervisior)형
하이퍼바이저형 가상화는 VMM(Virtual Machine Monitor)을 물리 컴퓨터의 하드웨어상에 직접 동작을 시키는 방법으로 호스트 OS가 필요없습니다. 호스트 OS에 할당할 리소스가 필요없기에 호스트형 가상화에 비해 오버헤드가 적고 물리 컴퓨터 리소스의 관리가 유연한게 특징입니다만, 자체적으로 관리기능을 갖고 있지 않기에 별도의 관리콘솔이 필요합니다. 이런 하이퍼바이저형 가상화 소프트웨어에는VMware의 ESX/ESX i Server, itrix의 XenServer, Oracle의 VM Server, 썬의 xVM Server, 마이크로 소프트의 Hyper-V, Virtual Iron의 Virtual Iron, Parallels의 Parallels Server등이 있습니다. 하이퍼바이저(Hypervisor)형 가상화에는 전가상화와 반가상화로 나뉩니다.
(a) 전가상화(Full-Virtualization)
전가상화는 게스트 OS(Guest OS)와 네이티브 하드웨어(Native Hardware) 사이를 중재하는 가상 머신을 사용합니다. VMM(Virtual Machine Monitor)이 게스트 OS와 기반 하드웨어 사이를 중재하기 때문에 보호를 받고 있는 특정 명령어들은 기반 하드웨어를 OS가 소유한 것이 아니라 하이퍼바이저를 통해서 공유되기 때문에 하이퍼바이저 내에서 트랩핑과 핸들링이 되어야합니다. 전체 가상화는 하드웨어 에뮬레이션보다는 빠르지만 하이퍼바이저 중재 때문에 실제 하드웨어 보다 성능이 낮아집니다.
일반적인 응용 프로그램에서는 하이퍼바이저를 거치지 않고 바로 실행이 되지만, OS 레벨의 명령은 Binary Translation을 거쳐 하이퍼바이저를 통해서 하드웨어로 전달이 됩니다. Gust OS는 커널을 수정하지 않아도 되며, 하이퍼바이저의 존재 또한 모릅니다. OS 레벨의 명령은 하이퍼바이저에서 담당하며, 이를 변환(Binary Translation)하여 하드웨어로 전달하게 됩니다.
[ 전가상화 개념도 ]
전가상화는 하드웨어를 완전히 가상화하는 방식으로 게스트 OS에 대한 수정이 필요없고, Windows에서 Linux까지 다양한 OS를 이용할 수 있다는 장점이 있습니다. 단점은 OS 레벨의 명령 수행시에는 Binary Translation이 발생하는데, 이 과정에서 상당한 오버헤드가 발생합니다. 이러한 이유로 가상화 되지 않은 시스템에 비해서 성능저하가 발생합니다.
(b) 반가상화(Para-Virtualization)
전가상화와 유사한 부분이 많습니다. 차이점은 Guest OS의 커널이 하이퍼바이저에 맞게 수정을 해야 합니다. 반가상화는 전가상화와 마찬가지로 일반적인 명령어는 하이퍼바이저를 거치지 않고 바로 실행이 되며, OS 명령어의 경우에는 하이퍼바이저에 전달이 되지만 바이너리 전환(Binary Translation)이 발생하지 않으며, 이로 인하여 재컴파일이나 트래핑(trapping)을 할 필요가 없습니다.
반가상화의 장점은 바이너리 전환(Binary Translation)이 발생하지 않으며, 가상화 되지 않은 시스템과 동일한 성능을 낸다는것입니다. 반가상화 단점으로는 반가상화를 실현하기 위해서는 게스트 OS의 커널 일부분을 수정해야 한다는 점입니다. 따라서 윈도우와 같이 소스 공개가 되어있지 않은 OS의 경우에는 Guest OS로 사용할 수 없습니다.
[ 반가상화 개념도 ]
'빅데이터 > 클라우드' 카테고리의 다른 글
하이퍼바이저(Hypervisor) (0) | 2017.08.04 |
---|---|
서버 가상화 종류: ② 호스트(Hosted)형 (0) | 2017.08.04 |
서버 가상화 (Server Virtualization) (0) | 2017.08.04 |
데스크톱 가상화(Desktop Virtualization) (0) | 2017.08.04 |
애플리케이션 가상화(Application Virtualization) (0) | 2017.08.04 |