본문 바로가기
카테고리 없음

[ADP]서버 가상화 기술, 완전 가상화(Full Virtualization)

by 현실남자 2023. 10. 2.

지난 포스팅에서는 CPU가상화, 하이버파이저의 정의 및 기능과 분류 방법에 대해서 알아보았고,
이번 포스팅에서는 하이퍼바이저의 각 분류 방법인 중 완전 가상화의 정의와 주요 특징/작동방식에 대해 공부하고

하드웨어 지원 완전가상화에 대해 알아보겠습니다.

 

완전가상화(Full Virtualization)

완전가상화는 CPU뿐만 아니라 메모리, 네트워크 장치 등 모든 자원을 하이퍼바이저가 직접 제어, 관리하기 하는

기술이며, 가상 머신이 호스트 시스템과 완전히 독립적으로 동작하도록 설계되어 있고 가상 머신은 자체적인

게스트 운영 체제(OS)를 실행할 수 있습니다.

 

따라서 어떤 운영체제라도 수정하지 않고 설치가 가능한 장점이 있지만 자원을 직접 제어하기 때문에 성능에 영향을 주며, 자원들이 하이퍼바이저에 너무 밀접하게 연관돼 있어 운영 중인 게스트 운영체제에 할당된 CPU나 메모리 등의 자원에

대한 동적 변경 작업이 단일 서버 내에서는 어렵습니다.

 

주요 특징 및 작동방식

1) 게스트 운영 체제 가상화:

하이퍼바이저 완전 가상화에서는 각 가상 머신이 자체 게스트 운영 체제를 실행합니다.

이것은 게스트 운영 체제가 호스트 시스템과 완전히 독립적으로 작동할 수 있음을 의미합니다.

게스트 운영 체제는 실제 하드웨어가 아닌 하이퍼바이저 위에서 실행되며, 하이퍼바이저는 가상 머신의 요구에 따라

하드웨어 자원을 할당합니다.

 

2) 가상화된 하드웨어:

하이퍼바이저 완전 가상화에서 가상 머신은 하드웨어에 대한 가상화된 접근 권한을 가집니다.

이것은 게스트 운영 체제가 실제 하드웨어와 상호 작용할 때 하이퍼바이저가 중간에 위치하여 하드웨어 요청을

가상화하는 것을 의미합니다. 게스트 운영 체제는 실제 하드웨어에 대한 정보를 수정하거나 수정할 필요 없이 실행됩니다.

 

3) 완전한 격리 및 독립성:

각 가상 머신은 완전한 격리를 제공하므로, 하나의 가상 머신에서 발생하는 문제가 다른 가상 머신에 영향을 미치지

않습니다. 게스트 운영 체제는 자체 파일 시스템, 레지스트리 및 네트워크 설정을 가질 수 있으며, 자체 커널을 실행합니다.

 

 4) 유연성:

하이퍼바이저 완전 가상화는 다양한 게스트 운영 체제를 호스팅할 수 있으므로, 서로 다른 운영 체제(: Windows, Linux)를 실행하려는 경우에 유용합니다. 게스트 운영 체제 간에는 호환성 문제가 발생하지 않으며, 각 게스트 운영 체제는

자체 환경을 독립적으로 관리합니다.

 

5) 성능 오버헤드:

하이퍼바이저 완전 가상화는 하드웨어 가상화와 관련된 오버헤드가 발생할 수 있습니다.

하이퍼바이저는 게스트 운영 체제의 하드웨어 요청을 가로채고 해석하기 때문입니다.

최신 하드웨어 지원 기술(VT-x, AMD-V)을 사용하면 오버헤드를 최소화하고 성능을 향상시킬 수 있습니다.

 

Privileged 명령어 실행 방식

완전가상화는 하이퍼바이저보다 우선순위가 낮은 가상머신에서는 실행되지 않는 특권(Privileged) 명령어에 대해서

trap을 발생시켜 하이퍼바이저에서 실행하는 방식으로 보다 자세한 실행 방식은 아래와 같습니다.

VMware 의 완정가상화 그림

 

1)게스트 운영 체제의 명령어 실행:

게스트 운영 체제는 자체적으로 실행 중인 프로세스나 커널 내에서 특권 명령어를 실행하려고 시도합니다.

이러한 명령어는 일반적으로 CPU와 하드웨어 관리를 위한 명령어로, 예를 들어 I/O 작업, 메모리 매핑, 인터럽트 처리와

같은 기능을 수행합니다.

 

2) 특권 명령어 감지:

하이퍼바이저(Hypervisor)는 게스트 운영 체제가 특권 명령어를 실행하려는 것을 감지합니다.

이런 감지는 하이퍼바이저의 가상화 기술에 의해 이루어집니다.

주로 하드웨어 지원 가상화 기술(VT-x, AMD-V)이 사용됩니다.

 

3) 하이퍼바이저로 전달:

게스트 운영 체제가 특권 명령어를 실행하면 하이퍼바이저는 해당 명령어를 가로채고 처리하기 위해

그 실행을 중단시킵니다.

 

4) 하이퍼바이저의 처리:

하이퍼바이저는 특권 명령어를 자체적으로 처리하거나, 필요한 경우 해당 명령어를 시뮬레이트하여

게스트 운영 체제에게 그 결과를 반환합니다.

시뮬레이션은 특권 명령어가 실제 하드웨어에서 실행되지 않고 하이퍼바이저 자체의 코드로 대체되는 것을 의미합니다. 이를 통해 게스트 운영 체제는 실제 하드웨어를 직접 액세스 하지 않고도 특권 명령어를 실행할 수 있습니다.

 

5) 게스트 운영 체제에 결과 반환:

하이퍼바이저가 특권 명령어를 처리하고 나면, 결과를 게스트 운영 체제에게 반환합니다.

이렇게 하이퍼바이저를 통해 특권 명령어가 처리되면, 게스트 운영 체제는 실제 하드웨어 리소스에 대한 액세스를

시뮬레이션된 인터페이스를 통해 얻게 됩니다. 이러한 가상화 레이어를 통해 다중 게스트 운영 체제가

하나의 물리적 시스템에서 안전하게 실행될 수 있습니다.

 

이러한 방식은 MS 윈도우와 같은 Guest OS가 하이퍼바이저 상에서 변경되지 않은 상태로 실행될 수 있는

장점이 있으나 Para Virtualization에 비해 속도가 느립니다.

완전가상화 기반 설루션으로는 VMware ESX Server, MS Virtual Server 등의 제품이 있습니다.

 

하드웨어 지원 완전가상화(Full Virtualization)

최근에는 완전가상화 방식에서 Intel VT-x, AMD-V CPU의 하드웨어에서 제공하는 가상화 기능을 이용하고 있습니다.

가상머신에서 메모리와 CPU 등의 하드웨어에 명령을 내릴 수 있는 반가상화 수준의 성능을 발휘하도록 개선하고

있는 것입니다.

 

아래 그림과 같이 CPURing -1 계층이 추가되며, 하이퍼바이저는 Ring -1에서 수행되고 가상머신의

운영체제(Guest OS)Ring 0에서 수행되어 Privileged 명령어에 대해 추가로 변환 과정이 필요 없습니다.

하이퍼바이저를 거쳐 바로 하드웨어로 명령이 전달돼 빠른 성능을 보장합니다.
윈도우 2009 서버의 Hyper-V는 반드시 가상화 지원 CPU만을 사용해야 합니다.

 

하드웨어 지원 가상화

 

인텔에서는 하드웨어 지원 가상화를 사용할 때, 다음과 같은 주의점을 말하고 있습니다.

하드웨어 지원 가상화를 사용하는 경우 CPU 사용률이 높아진다. 특히 I/O나 메모리를 많이 사용하는 경우

CPU 사용률이 높아진다. 따라서 서버 통합을 목적으로 하는 경우 비효율적일 수 있다

 

인텔에서는 반가상화와 하드웨어 지원 완전가상화를 모두 사용하는 하이브리드 가상화를 제시하고 있으며,

Xen을 이용한 하이브리드 가상화의 경우 반가상화용으로 수정된 운영체제에 하드웨어 지원 완전가상화 모듈을 탑재해

명령어의 주제에 따라 반가상화 또는 완전가상화를 선택, 사용하도록 합니다.

 

다음 포스팅에서는 이어서 반가상화, 호스트 기반 가상화, 컨테이너 기반 가상화 기술에 대해서 공부하겠습니다.

아래 링크를 통해 지난 포스팅에서 공부한 서버 가상화 기술과 하이퍼바이저의 정의 및 기능에 대해 확인하실 수 있습니다.

 

 

2023.09.30 - [분류 전체 보기] - [ADP] 서버 가상화 기술. CPU가상화, 하이퍼바이저 정의 및 기능과 분류 방법

 

[ADP]서버 가상화 기술. CPU가상화, 하이퍼바이저 정의 및 기능과 분류 방법

지난 포스팅에서는 클라우드 인프라 기술의 정의와 효과에 대해 공부했고, 이번 글에서는 클라우드 인프라 기술들 중에서도 가장 기반이 되는 서버 가상화 기술 중 CPU 가상화에 대해 자세히 알

realisticguy.com