본문 바로가기
cloud

[cloud 2편] 하이퍼바이저

by 무대포 개발자 2022. 12. 31.
728x90
반응형

목차는 cloud 목차 에 있습니다.

나중에 찾아볼려고 정리했습니다.

[cloud 2편] 하이퍼바이저

하이퍼바이저

  • 가상머신을 생성하고 실행하는 소프트웨어입니다.

하이퍼바이저 역할

  • 물리머신의 메모리, RAM, 저장소 등의 리소스를 가상머신에 할당하는 역할을 담당합니다.
  • 메모리 관리, 네트워크 관련 처리, 프로세스 스케줄러 등을 담당합니다.
  • 즉, 하이퍼바이저를 통해 가상머신에 물리리소스를 할당하고 실행을 제어하는 것입니다. (소프트웨어)

하이퍼바이저 Type

Type 1

  • 하드웨어 위에 하이퍼바이저가 설치됩니다.
  • 즉, 호스트의 하드웨어에 하이퍼바이저가 구동되면서 guest os 를 관리합니다. (리소스, 실행 등 제어)
  • 하드웨어 위에 하이퍼바이저가 설치되었기에, 하이퍼바이저 용도로만 사용 가능합니다.
  • 기업 데이터 센터에 사용됩니다.
  • VMware, KVM 등이 있습니다.

Type 2

  • Hardware 위에 Host os 가 있으며, 그 위에 하이퍼바이저가 설치됩니다.
  • host os 위에 하이퍼바이저가 있으며, 이 말은 하이퍼바이저 기능 외에 다른 프로그램들도 실행할 수 있다는 것입니다.
  • 하나의 pc 로 여러 운영체제를 사용하고자 할 때 유용합니다.
  • Virtualbox, Xen 등이 있습니다.

CPU 특권 레벨

  • 소프트웨어는 시스템 보안을 위해 Ring 등급이라는 것이있습니다. Ring 숫자가 낮을수록 권한을 많이 가집니다.
  • Intel x86 프로세서 기준으로 Ring 0(kernel), Ring 3(User) 사용하고 있습니다.
  • Ring 0 에서 system-call 운영체제를 실행하며, Ring 3 에서 응용프로그램을 실행시킵니다.

전 가상화, 반 가상화

  • Type 1 유형의 하이퍼바이저 환경에서 가상머신이 호스트서버 CPU 에 접근하는 방식에 따라 전가상화 반가상화로 나뉩니다.

전 가상화

  • cpu 가상화 기술을 이용하여 하드웨어를 전부 가상화하는 것입니다. 이 부분이 이해하기 어려웠습니다.
  • 가상머신에서는 하드웨어 자원 (디스크, 네트워크 등) 을 이용하기 위해 하드웨어에 요청을 할 것입니다. 이 때, 가상머신의 OS 가 뭔지에 따라 어떤 명령어를 통해 요쳥해야하는지 많은 경우의 수가 있을 것입니다.
    • mac, window, linux, unix 등에서 똑같은 하드웨어 자원을 위해 똑같은 명령어를 수행하지는 않을 것입니다.
  • 즉, 하드웨어를 전부 가상화한다는 것은 하드웨어에 요청이 들어온 모든 것에 대해 실제 가상머신에서 수행되는 것처럼 동작하는 것으로 이해했습니다.
    • 예를 들면, mac, window, linux 등에서 입출력을 제어하는 특권명령을 수행했을 때, 알아서 번역이 되서 실제 그 동작이 되도록 한다는 것입니다.

Trap & Emulate

  • 위에서 설명한 것처럼 Guest OS 에서 특권명령을 실행할려고 할 때, Trap & Emulate 에서 처리를 해줍니다.
  • 순서를 보면 다음과 같습니다.
    1. 특권명령 요청
    2. 제어권이 게스트 OS 에서 하이퍼바이저로 이동
    3. 하이퍼바이저에서 처리해줍니다.
  • 이 방식은 특권명령을 실행할 때, Guest OS 의 제어권이 넘어가면서 실행이 중지되므로 시스템 오버헤드가 있습니다.

Binary Translation

  • Tran & Emulate 방식은 제어권이 넘어갈 때 발생하는 시스템 오버헤드로 인해 성능 이슈가 있습니다.
  • 이를 해결하기 위해 이진 변환이 나왔으며, guest os 에서 특권 명령을 요청할 때, 하이퍼바이저가 바이너리 연산을 통해서 하드웨어가 인식할 수 있는 명령어로 변환하는 기술입니다.

반 가상화

  • 전가상화는 다르게 guest os 는 가상화된 환경임을 인지합니다. 즉, 하드웨어에 리소스를 요청할 때, 드라이버를 필요로 합니다.
  • 전가상화의 경우 guest os 에서 하드웨어에 명령을 내리면 Trap & Emulate, Binary Translation 에 위해 성능상 저하가 있었습니다.
  • 반 가상화는 수정된 커널과 장치 드라이버를 통해 HyperCall (하이퍼바이저를 호출하기 위한 메커니즘) 이 발생하도록 하며, HyperCall 을 통해 하이퍼바이저를 호출하게 됩니다. 즉, 하이퍼바이저가 제어하게 되는 것입니다.

Reference

'cloud' 카테고리의 다른 글

[cloud 4편] 네트워크 가상화  (0) 2023.01.08
[cloud 3편] xen, kvm  (0) 2023.01.08
[cloud 1편] 가상화, 컨테이너, VM 정리  (0) 2022.12.31

댓글