CPU의 인스트럭션 실행 (링(RIng) 구조)
- 전가상화와 반가상화를 이해하기 위해서는 링 구조에 대한 이해가 필요하다. 필요한 분량의 하드웨어 자원을 할당하기 위해 x86서버는 4개 (RIng 0-3)의 특권 명령을 운영체제와 어플리케이션 제공한다. 링 번호가 낮을수록 높은 권한을 가진 명령을 실행할 수 있다.
- 현재 가상화는 대부분 x86 서버에서 이루어지고 있다. x86 서버는 가상머신 hosted 방식과 다르게 하드웨어 위에서 곧바로 가상머신을 운영할 수 있게 디자인 되었기 때문에, 가상머신들은 그들 스스로가 컴퓨팅 하드웨어를 통제하고 있다고 여긴다.
- 응용프로그램은 Ring 3에서 실행되고, 운영체제는 Ring 0 에서 특권 명령 (privleged mode)을 사용하여 필요한 컴퓨팅 자원에 접근이 가능하다.
반가상화 (Paravitulization)
앞서 운영체제가 Ring 0에서 특권명령 (Privileged mode)을 사용하여 가상화에 필요한 컴퓨팅 자원을 할당한다고 했다. 그러나 반가상화에서는 운영체제가 RIng 1에 위치하여 특권명령을 실행할 수 없게 된다.
이 문제를 해결하기 위해 VMware는 Binary translation 이라는 기술을 이용한다. VMware는 운영체제어서 전달받은 특권명령을 전달하기 위해 binary translation 을 통해 대체명령으로 전환 후 호스트 서버에게 전달을 한다. 이 기술을 이용하면 Guest OS의 커널을 수정할 필요 없이 가상머신을 생성할 수 있다.
이와 다르게 Xen은 하이퍼콜(Hypercall)이라는 기능을 사용하여 특권 명령을 호출한다. 하지만 하이퍼콜을 사용하기 위해서는 Guest OS 커널을 수정해야 한다는 점이 있다. 하이퍼콜을 이용하면 성능과 속도가 우수하지만, Guest OS가 오픈소스 기반이 아니라면 적용하기 어려운 점이 있다.
전가상화 (Full Virtualization)
전가상화는 CPU 차원의 가상화를 지원한다.
가상화 기술을 지원하는 CPU는 대표적으로 Intel의 VT나 AMD-V와 같은 제품이 있다.
CPU에서 VT를 지원하기에 가상머신의 Guest OSㅇ에 관계없이 다양한 운영체제를 사용할 수 있다는 장점이 있다.
전가상화는 반가상화와 다르게 처리방식이 복잡하고 사실상 CPU가 다시한번 하이퍼바이저에게 하드웨어 제어를 요구하기에 이에 따른 오버헤드가 발생하여 반가상화보다 성능과 속도가 우수하지 않을 수 있다.
마무리
전가상화와 반가상화를 대표하는 대표 벤더들을 아래와 같다.
전가상화 Vendors : VMware, ESX Server, Hyper V, KVM
반가상화 Vendors: Xen
(성능 : native > 반가상화 > 전가상화)
가상머신에서 하드웨어에 제어 요청시 단계가 늘어갈 수록 명령 처리 속도가 저하되는것을 알 수 있다.
하지만 요즘에는Xenserver tool 에서 제공하는 반가상화를 위한 드라이버를 설치하여 Window를 반가상화하여 사용 가능하고, 또 CPU의 발전으로 전가상화를 이용해도 성능저학 폭이 크게 줄었다.
이처럼 가상화기술을 계속적으로 발전하고 있고, 사용자들은 데이터 센터를 좀 더 효율적, 통합적으로 운영할 수 있기 위해 새로운 기능을 지속적으로 배우고 적용해 보기를 권한다고 한다.
'DevOps > virtualization_가상화' 카테고리의 다른 글
[가상화] VMware vSphere 개요 (0) | 2023.10.11 |
---|---|
[가상화] x86 가상화 아키텍쳐 구현 방식 (0) | 2023.09.20 |
[가상화] 하이퍼바이저란 무엇인가? (0) | 2023.09.11 |
[가상화] x86 가상화를 이해하기 위한 기초 지식 (0) | 2023.09.09 |