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

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

by 현실남자 2023. 9. 30.

지난 포스팅에서는 클라우드 인프라 기술의 정의와 효과에 대해 공부했고, 이번 글에서는
클라우드 인프라 기술들 중에서도 가장 기반이 되는 서버 가상화 기술 중 CPU 가상화에 대해
자세히 알아보고자 하며, 그중 하이퍼바이저의 정의 및 기능 그리고 분류 방법에 대해 알아보고자 합니다.

 

CPU 가상화, 하이퍼바이저 정의 및 기능  

하이퍼바이저(Hypervisor)는 가상화 기술에서 중요한 역할을 하는 소프트웨어 또는 하드웨어 컴포넌트로,

하나의 물리적 컴퓨터 시스템에서 여러 개의 가상 머신(VM, 가상 서버)을 동시에 실행할 수 있게 해주는 소프트웨어

계층이나 컴퓨터 하드웨어의 일부입니다.

 

하이퍼바이저(Hypervisor)는 물리적 서버 위에 존재하는 가상화 레이어를 통해 운영체제가 수행하는데 필요한

하드웨어 환경을 가상으로 만들어 주며, 일반적으로 가상머신(Virtual machine)을 하이퍼바이저라고 할 수 있습니다.

하이퍼바이저가 서버 가상화 기술의 핵심으로 x86계열 서버 가상화에서는 소프트웨어 기반으로 하이퍼바이저를

구성합니다. 하이퍼바이저를 통해 사용자는 추가 하드웨어 구입 없이 새로운 운영체제의 설치, 애플리케이션의

테스팅 및 업그레이드를 동일한 물리적 서버에서 동시에 수행할 수 있습니다.

 

하이퍼바이저는 VMM(Virtual Machine Monitor)라고도 하며,
다음과 같은 기능들을 수행한다고 나오며,

- 하드웨어 환경 에뮬레이션(Emulates a complete hardware environment)

- 실행환경 격리(Isolate execution in each VM)

- 시스템 자원 할당(Allocates platform resources-processing, memory, I/O, storage)

- 소프트웨어 스택 보존(Encapsulates software stacks including the OS and state information)

아래와 같이 해당 기능에 대해 보다 자세하게 알아보았습니다.


ADP
시험 과목에서는 위에 4가지가 명시되어 있지만 위에 4가지 기능들에 대해 보다 자세히 이해하기 위해,

아래와 같이 추가 정리했습니다.

 

1) 가상화(Virtualization):

하이퍼바이저의 주요 기능 중 하나는 물리적 하드웨어를 여러 개의 가상 머신으로 분할하는 것입니다.

이렇게 분할된 가상 머신은 독립적으로 운영되며 서로에게 영향을 미치지 않습니다.

 

2) 리소스 관리(Resource Management):

하이퍼바이저는 물리적 리소스(프로세서, 메모리, 스토리지, 네트워크 등)를 가상 머신에게 동적으로 할당하거나 회수할 수 있습니다. 이를 통해 리소스의 효율적인 활용이 가능하며, 각 가상 머신이 필요한 만큼의 자원을 사용할 수 있습니다.

 

3) 실행 환경 격리(Isolate execution in each VM):

각 가상 머신은 독립된 환경에서 실행되므로 하나의 가상 머신에서 발생하는 문제가 다른 가상 머신에 영향을 미치지 않습니다. 이는 안정성과 보안을 향상시키며, 각 가상 머신은 격리된 파일 시스템 및 레지스트리를 가질 수 있습니다.

 

4) 스냅숏(Snapshot):

하이퍼바이저는 가상 머신의 현재 상태를 스냅숏으로 캡처하고 나중에 해당 스냅숏으로 가상 머신을 복원할 수 있는 기능을 제공합니다. 이를 통해 가상 머신 관리, 테스트, 복구가 간편하게 수행됩니다.

 

5) 하드웨어 가상화(Hardware Virtualization):

하드웨어 가상화 기능을 활용하여 하이퍼바이저는 가상 머신에게 물리 하드웨어와 동일한 환경을 제공합니다. 이는 가상 머신이 원활하게 실행되고 하드웨어와 호환성이 확보되도록 합니다.

 

6) 동적 리소스 할당(Dynamic Resource Allocation):

하이퍼바이저는 가상 머신의 요구에 따라 리소스를 동적으로 조절할 수 있습니다. 이는 높은 가용성과 성능 최적화를 지원합니다.

 

7) 가상 머신 모니터링 및 관리(Virtual Machine Monitoring and Management):

하이퍼바이저는 가상 머신의 상태를 모니터링하고, 필요한 경우 자동으로 가상 머신을 관리합니다. 이는 장애 조치 및 자동 복구에 도움이 됩니다.

 

8) 하드웨어 리소스 공유(Hardware Resource Sharing):

여러 가상 머신 간에 하드웨어 리소스를 효율적으로 공유하므로 시스템 전체의 성능을 극대화할 수 있습니다.

 

하이퍼바이저 분류

하이퍼바이저를 플랫폼 별로 분류하면,

X86계열에는 VMware, MS Virtual Server, Xen 등이 있으며,
유닉스 계열로는 IBM POWER Hypervisor 등이 있고,
메인프레임 계열로는 z/VM과 하드웨어 펌웨어로 분류되는 PR/SM 등이 있습니다.

 

ADP에서는 일반적으로 많이 통용되는 방식인 가상화를 제공하는 하이퍼바이저의 위치와 기능에 따른

분류 방법이 자세하게 나와 있습니다.

가상화를 제공하는 하이퍼바이저가 물리적인 하드웨어 또는 호스트 운영체제와의 관계에서 어디에서 위치하는지에

따라 베어메탈(Bare-metal)과 호스트 기반(Hosted)으로 나뉠 수 있으며,

베어메탈 하이퍼바이저는 하드웨어와 호스트 운영체제 사이에 위치하며, 호스트 기반 하이퍼바이저는

호스트 운영체제와 게스트 운영체제 사이에 위치합니다.

또한 베어메탈 하이퍼바이저는 다시 반가상화(Para Virtualization)와 완전가상화(Full Virtualization)로 구분할 수 있습니다.

 

하이퍼바이저 가상화 분류도

 

그러나, 최근 다양한 가상화 기법이 도입되고, CPU 제조업체에서도 하드웨어에서 가상화 기술을 지원하는 등

새로운 가상화 방법이 나오고 있기 때문에 정확한 분류는 어렵습니다.

 

X86 운영체제 특권 아키텍처

x86 아키텍처에서 운영체제의 특권(Privilege) 아키텍처는 CPU의 실행 모드와 권한 수준을 관리하는 중요한 개념입니다. 이 아키텍처는 프로세서가 실행 중인 코드의 권한 수준을 제어하고 시스템 리소스에 대한 접근을 관리하여 운영체제와

응용 프로그램 간에 격리와 보안을 확보합니다.

 

x86 계열 운영체제는 자신의 모든 하드웨어에 대한 제어 소유권을 갖고 있다는 가정 아래 하드웨어에 직접 명령을

수행하는 방식으로 디자인돼 있으며, 아래 그림처럼 하드웨어에 대한 접근 권한을 관리하기 위해 Ring0,1,2,3

4개의 레벨로 구성돼 있습니다.

 

x86 아키텍처에서는 4개 레벨 중에서 주로 두 가지 특권 레벨(Privilege Level)이 사용됩니다.

 

Ring 0 (Kernel Mode, Supervisory Mode):

가장 낮은 권한 수준으로, 운영체제의 커널(Kernel)이 이 모드에서 실행됩니다.
커널은 모든 하드웨어 리소스에 대한 완전한 액세스 권한을 가집니다.
특권 명령어와 기능을 실행할 수 있으며, 운영체제 서비스 및 시스템 호출을 처리합니다.

 

Ring 3 (User Mode, User Space):

높은 권한 수준으로, 응용 프로그램이 이 모드에서 실행됩니다.
응용 프로그램은 기본적으로 하드웨어 리소스에 직접 액세스 할 수 없으며, 운영체제의 도움을 필요로 합니다. 특권 명령어 실행이 제한되며, 응용 프로그램이 운영체제 기능에 대한 호출을 통해 시스템 서비스를 사용할 수 있습니다.

 

X86 특권 레벨 아키텍처

 

가상 머신 내에서도 운영체제가 필요하며 이 운영체제는 Ring 0 권한을 필요로 하게 됩니다.
가상머신의 운영체제가 응용 애플리케이션 권한(Ring 3)으로 수행될 경우, Ring3에서 수행된 가상머신 운영체제에서

Ring 0 수준의 명령을 호출하면 가상화를 지원하는 계층에서 이를 Ring 0 수준의 명령어로 다시 변환해 실행해야 하며,

이를 위해 가상화 지원 계층은 반드시 Ring 0 레벨로 수행되어야 하기 때문에 x86 아키텍처에서는

복잡한 문제가 발생합니다.

 

따라서 x86 아키텍처에서 가상화 기술의 핵심은 가상머신이 요청하는 특권 명령어를 어떻게, 어떤 계층에서

처리하느냐 이며, 가상화의 분류 중 완전가상화와 반가상화도 특권 명령어를 어떻게 처리하는지를 기준으로

분류하게 됩니다.

 

다음 포스팅에서는 하이퍼바이저 기반 서버 가상화의 분류 방법에 따라 나눈 완전가상화, 반가상화, 호스트 기반

하이퍼바이저, 컨테이너 기반 하이퍼바이저에 대해 자세히 알아보겠습니다.

이전 포스팅을 통해 클라우드 인프라 기술에 대해서도 참고 부탁드립니다.

 

 

2023.09.28 - [분류 전체 보기] - [ADP] 클라우드 인프라 기술

 

[ADP]클라우드 인프라 기술

오늘은 ADP 데이터처리기술 과목 중 클라우드 인프라 기술에 대해 공부한 내용을 포스팅하겠습니다. 클라우드 인프라 기술은 최근 현대 기업과 조직에게 혁신적인 방식으로 IT인프라를 구축하고

realisticguy.com