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

[ADP]반가상화(Para Virtualization) 서버 가상화 기술

by 현실남자 2023. 10. 3.

이번 포스팅에서는 지난 포스팅에서 공부한 완전가상화 기술에 이어 반가상화 기술이란 무엇인지 반가상화 기술의 특징과 완전가상화와의 차이점 그리고 반가상화 아키텍처에 대해 작성하겠습니다.

또한 반가상화 아키텍처에 따른 Monolithic 커널 방식과 Microkernel 커널 방식에 대해서도 작성하겠습니다.

 

반가상화(Para Virtualization)

반가상화(Paravirtualization)는 가상화 기술의 한 형태로, 하이퍼바이저(Hypervisor)와 게스트 운영 체제(Guest OS)

사이에서 협력적으로 동작하는 방식을 사용하여 가상화를 달성하는 기술입니다. 완전 가상화와 달리,

반가상화는 게스트 운영 체제를 직접 수정하여 가상 환경을 관리하고 성능을 향상시킵니다.

반가상화 환경에서 게스트 운영 체제가 하이퍼바이저와 상호 작용하기 위해 사용하는 핵심 메커니즘 중 하나는

"하이퍼콜(Hypercall)"입니다. 하이퍼콜은 하이퍼바이저에게 특정 서비스를 요청하거나 하드웨어 자원을 관리하기 위한

메커니즘으로, 게스트 운영 체제가 하이퍼바이저에게 명령을 보내는 방법입니다.
반가상화는 privileged 명령어를 게스트 운영체제에서 하이퍼콜로 하이퍼바이저에 전달하고 하이퍼바이저는

hypercall에 대해서는 privilege 레벨에 상관없이 하드웨어로 명령을 수행시킵니다.
, Hypercall은 게스트 운영체제에서 요청을 하면 하이퍼바이저에서 바로 하드웨어 명령을 실행하는 call을 말합니다.

 

게스트 운영체제가 하이퍼콜을 요청하기 위해서는 게스트 운영체제의 일부분이 수정되어야 하며,
Xen
기반의 리눅스 운영체제의 경우 20% 정도 커널이 수정되었다고 합니다.

수정된 게스트 운영체제는 CPU나 메모리와 같은 자원에 대해 직접적인 제어권을 가짐으로써

자원의 변화와 같은 동적 가상화 환경에 유연하게 적응할 수 있습니다.
따라서, 반가상화 기반에서는 CPU나 메모리 자원의 동적 변경이 서비스의 중단 없이 이루어질 수 있으며,

완전가상화에 비해 성능이 뛰어납니다.

반가상화는 privileged 명령어를 직접 호출(하이퍼콜)하므로 속도는 빠르나 커널을 변경해야 하고,

완정가상화는 dynamic binary translation(Xen은 emulation) 모듈과의 통신을 통해 처리하므로 속도는 느리나

커널 변경이 없습니다.

 

반가상화와 완전가상화의 장단점 정리  

지난 포스팅에서 공부한 완전가상화와 반가상화의 장단점을 각각 정리하면 아래와 같습니다.

 

완전 가상화의 장점:

1) 운영 체제 독립성: 완전 가상화는 게스트 운영 체제를 수정할 필요가 없으므로 거의 모든 운영 체제를 호스트 할 수 있습니다.
2)
게스트 운영 체제 보안: 완전 가상화는 게스트 운영 체제를 완전히 격리시켜 하이퍼바이저와

다른 게스트 운영 체제로부터 보호합니다.
3)
완전한 하드웨어 가상화: 게스트 운영 체제는 실제 하드웨어와 동일한 환경에서 실행됩니다.
4)
호환성: 다양한 게스트 운영 체제를 실행할 수 있으며, 각 게스트 운영 체제는 호스트와 독립적으로 실행됩니다.

 

완전 가상화의 단점:

1) 성능 오버헤드: 하이퍼바이저가 하드웨어 가상화 및 시뮬레이션을 수행하므로 성능이 상대적으로 저하될 수 있습니다.
2)
리소스 낭비: 완전 가상화는 여러 게스트 운영 체제 간에 리소스를 분리하므로 일부 리소스 낭비가 발생할 수 있습니다.
3)
설정 및 관리 복잡성: 완전 가상화 환경을 설정하고 관리하는 것이 비교적 복잡할 수 있습니다.

 

반가상화의 장점:

1) 낮은 성능 오버헤드: 반가상화는 하이퍼바이저 오버헤드를 줄이므로 성능이 향상됩니다.
2)
리소스 공유: 게스트 운영 체제 간에 리소스를 효율적으로 공유하여 하이퍼바이저를 효율적으로 활용합니다.
3)
설정 및 관리 간편성: 반가상화는 보다 쉬운 설정과 관리를 제공합니다.

 

반가상화의 단점:

1) 운영 체제 수정 필요: 반가상화에서는 게스트 운영 체제를 수정해야 하므로,

호스트할 수 있는 운영 체제에 제한이 있습니다.
2)
게스트 운영 체제 보안: 완전 가상화보다 게스트 운영 체제가 하이퍼바이저와 관련된 보안 문제에 노출될 수 있습니다.
3)
가상 환경 호환성: 반가상화는 게스트 운영 체제와 하이퍼바이저 간의 호환성이 필요합니다.

특히 게스트 운영 체제가 하이퍼바이저와 협력적으로 동작해야 합니다.

 

, 완전 가상화는 게스트 운영 체제 독립성과 보안을 강조하지만 성능 오버헤드와 리소스 낭비를 가져올 수 있고,

반가상화는 낮은 성능 오버헤드와 리소스 공유를 제공하지만 게스트 운영 체제 수정과 호환성 문제에 직면할 수 있습니다.

 

반가상화 기술 아키텍처 예시  

아키텍처

위의 그림은 XenVMware의 반가상화 아키텍처입니다.
VMware
와 같은 상용 솔루션은 완전가상화와 반가상화의 장단점을 보완해 아키텍처,

기능 성능 등에서 뚜렷한 차이가 없습니다. 기존 VMware에서는 반가상화를 지원하지 않았지만
VMI(Virtual Machine Interface)
라는 표준 인터페이스를 제시하고, 이 인터페이스를 준수하는 모든 게스트 운영체제를

지원하는 방식으로 반가상화를 지원하고 있습니다. VMI는 아직 정식 표준으로 채택되진 않았습니다.

 

참고. Monolithic 커널 방식과 Microkernel 커널 방식

하드웨어에 대한 드라이버가 어느 계층에 있는지에 따라 Monolithic 방식과 Microkernel 방식으로 구분할 수 있습니다.

가상머신이 I/O를 위해 하드웨어에 접근할 때 사용하는 드라이버를 하이퍼바이저 계층에서 모두 가지고 있는 방식을 Monolithic이라고 하며, 각 가상머신에서 드라이버를 가지고 있는 방식을 Microkernel 방식이라고 합니다.

위 그림에서 VMware의 경우 하이퍼바이저가 드라이버를 갖고 있으며 모든 I/O요청은 하이퍼바이저가 수행함을 보여주며, Xen에서는 하이퍼바이저가 드라이버를 가지고 있지 않으며, 호스트 운영체제가 드라이버를 가지고 있고

각 게스트 운영체제는 가상 드라이버를 가지고 있어 I/O 요청을 위해서는 호스트 운영체제를 거쳐야 합니다.

게스트와 호스트 운영체제는 서로 격리되어 있기 때문에 하이퍼바이저를 이용해 요청을 주고받아야 합니다.

 

두 방식의 특징과 장점은 아래와 같습니다. 

 

Monolithic 커널:

1) 특징:

Monolithic 커널은 하나의 큰 실행 가능한 이미지로 구성되며, 모든 운영 체제 서비스와 기능을 커널 공간에서

직접 수행합니다. 시스템 콜, 파일 시스템, 디바이스 드라이버, 스케줄러, 네트워크 스택 등 모든 기능이 커널 내부에

통합되어 있습니다. Monolithic 커널은 커널 모듈을 동적으로 로드하거나 언로드 하는 확장 기능을 제공할 수 있습니다.

2) 장점:

단순한 설계와 높은 성능: 커널 내부에서 직접 기능을 수행하기 때문에 낮은 수준의 오버헤드와 빠른 성능을 제공합니다.
쉬운 커널 내부 통신: 커널 모듈들은 메모리 공유와 함수 호출을 통해 쉽게 통신할 수 있습니다.
효율적인 자원 공유: 커널 내부에서 모든 자원을 공유하기 때문에 효율적인 자원 관리가 가능합니다.

3) 단점:

결함과 보안 문제: 모든 기능이 커널 내에서 실행되므로 커널에 결함이 있을 경우 시스템 전체에 영향을 미칠 수 있습니다. 또한 보안 취약점이 노출될 가능성이 높습니다.
유연성 감소: 커널 업데이트 및 유지 관리가 어려울 수 있으며, 새로운 기능을 추가하거나 변경하기 어려울 수 있습니다.

 

Microkernel 커널:

1) 특징:

Microkernel 커널은 최소한의 기능만을 포함하고, 주요 서비스와 드라이버 등의 기능은 커널 외부에서 실행됩니다.

주요 기능은 서버라고 불리는 독립된 프로세스로 분리되며, 서버 간의 통신을 통해 서비스가 제공됩니다.

커널은 프로세스 관리, 메모리 관리 및 스케줄링과 같은 핵심 기능만을 수행합니다.

2) 장점:

안정성과 신뢰성: 커널 내의 핵심 기능만이 커널에서 실행되므로 결함이 시스템 전체에 영향을 미치는 경우가 적습니다.

확장성과 유연성: 새로운 서비스 및 드라이버를 추가하거나 기존 서비스를 업데이트하기가 더 쉽습니다.

보안 강화: 보안을 강화할 수 있으며, 서버 간 통신을 통해 공격 범위가 줄어듭니다.

3) 단점:

성능 저하: 서비스 간 통신 및 메시지 전달은 오버헤드를 유발할 수 있으며, Monolithic 커널보다 느릴 수 있습니다.

복잡성: 서비스 간의 통신 및 협력이 필요하기 때문에 커널과 서비스 간의 인터페이스 설계와 관리가 복잡할 수 있습니다.

 

, Monolithic 커널은 단순하고 빠른 성능을 제공하지만 결함과 보안 문제에 민감하며,  
Microkernel
커널은 안정성과 확장성을 강조하며, 보안을 강화할 수 있지만 약간의 성능 저하와 복잡성을 동반합니다. 선택은 사용 사례 및 운영 체제의 요구 사항에 따라 다를 것이며, 성능과 안정성 사이의 절충점을 찾는 것이 중요합니다.

 

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

지난 완전가상화 포스팅을 보지 못하신 분들은 아래 링크 참고 부탁드립니다.

 

2023.10.02 - [분류 전체 보기] - [ADP] 서버 가상화 기술, 완전 가상화(Full Virtualization)

 

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

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

realisticguy.com