카테고리 없음

가상화 기술과 하이퍼바이저

16비트 2023. 4. 6. 20:50

가상화란

  • 장비의 발전으로 CPU, 메모리 등 자원이 남게 되었고 가상화 기술을 이용해 하나의 운영체제에 여러개의 다른 운영체제를 설치할 수 있게 되었다
  • 기업은 가상화를 사용해 하드웨어 리소스를 효율적으로 사용하여 투자 대비 이익을 더 많이 얻을 수 있게 되었다
  • 클라우드 컴퓨팅 서비스를 지원하여 조직의 인프라를 더욱 효율적으로 관리할 수 있다.
  • 가상화의 종류로 서버, 스토리지, 네트워크, 데이터, 애플리케이션 가상화 등이 있다

 

  • 만들 수 있는 가상머신의 개수는 호스트 OS의 CPU 논리 프로세서 수(성능)에 따라 달라진다

 

※ 가상화와 클라우드 컴퓨팅의 차이

  • 가상화 기술은 클라우드 컴퓨팅을 가능하게 만드는 기술
  • 클라우드 컴퓨팅은 사용량에 따른 요금으로 인터넷을 통해 온디맨드로 컴퓨팅 리소스를 제공하는 것

 

중첩된 가상화

  • 가상 머신(VM)으로 가상 하이퍼바이저(타입1)를 실행하는 것
  • 호스트에서 더 많은 프로세스가 실행될수록 컨텍스트 전환 및 물리적 프로세서 스케줄링에 더 많은 시간이 필요

 

가상화 기술의 종류

전가상화 (Full Virtualizaion)

  • 다양한 OS들의 명령을 해석하고 번역해서 하드웨어에 전달해 자원을 사용한다
  • 게스트 OS명령이 Binary Translation 과정을 거쳐 하이퍼바이저의 중재를 통해서 하드웨어로 전달된다.
  • Binary Translation 과정에서 부하가 발생하고 레이턴시(지연)가 발생한다.
  • Ring 0~3은 하드웨어에 접근할 수 있는 권한을 나타낸다. Ring 0가 권한이 가장 높다
  • 장점 : 사용자가 편리하게 사용할 수 있다
  • 단점 : 성능이 떨어짐

반가상화

  • 하이퍼바이저의 부담을 줄여 성능을 높이기 위해 게스트 OS의 커널을 수정하여 최적화시킨 기술
  • 전가상화와 달리 Binary Translation 과정 없이 하이퍼콜(Hyper Call)이라는 인터페이스를 통해 게스트 OS명령이 하이퍼바이저를 거처서 하드웨어로 전달 된다.
  • Binaiy Translation 과정에서 발생하는 오버헤드(지연요소)가 없어서 전가상화보다 빠르다
  • 단점 : OS의 커널 수정이 상당히 어렵다. (특히 윈도우OS는 오픈소스가 아니기 때문에 리눅스보다 전문성이 요구)
    - 너무 어렵기 때문에 현재는 많이 사용되지 않는 기술이 되었다

 

 

하드웨어 지원 가상화 (HVM, Hardware-assisted Virtualization)

  • HVM이란 전가상화에서 성능 하락을 일으켰던 Binary Translation(이진 변환)을 하이퍼바이저가 아닌 CPU에서 대신 처리하게 됨으로써 큰 폭의 성능이 향상되었다
  • 현재 대부분 사용되는 기술

 

하이퍼바이저란

  • 가상 머신 모니터(Virtual Machine Monitor, VMM)라고도 불린다
  • 하이퍼바이저 운영 체제와 가상 머신의 리소스를 분리해 VM의 생성과 관리를 지원한다
  • 호스트 컴퓨터에서 다수의 운영 체제를 동시에 실행하기 위한 논리적 플랫폼 
  • CPU, 메모리, 스토리지 등의 리소스를 에뮬레이션 → 한대의 서버에 독립된 여러  머신  환경을  구성  가능
  • 물리머신  대비  동일한  자원을  더  효율적으로  사용하고 빠른  서버  프로비저닝

 

하이퍼바이저 타입

타입 1 (native 또는 bare-metal)

  • bare-metal 이란 날것의 컴퓨터라는 뜻으로 아무 것도 설치되어 있지 않은 컴퓨터를 의미한다
  • 호스트 운영체제가 설치되어 있지 않은 상태에서 운영 체제가 프로그램을 제어하듯이 하이퍼바이저가 해당 하드웨어에서 직접 실행되며 게스트 운영 체제는 하드웨어 위에서 2번째 수준으로 실행된다.
  • 대표적인 타입 1 하이퍼바이저로는 Citrix의 Citrix Hypervisor (구 XenServer), VMware의 vSphere Hypervisor (구 ESXi Server), Microsoft의 Hyper-V, Linux의 KVM (Kernel Based Virtual Machine)이 있다.
  • AWS가 XenServer, KVM으로 서버를 만들어서 이용자들에게 제공하고 있다 
  • 타입2에 비해 성능이 좋아서 실제 프로덕션(최종 운영) 환경에서 사용하는 하이퍼바이저 타입이다

타입 2 (hosted)

  • host OS가 반드시 있어야 해서 지연이 발생하게 되고 성능이 낮아진다
  • 하이퍼바이저는 일반 프로그램과 같이 호스트 운영 체제에서 실행되며 VM 내부에서 동작되는 게스트 운영 체제는 하드웨어에서 3번째 수준으로 실행된다.
  • VM의 대표적인 종류는 VMware Workstation Pro, VMware Workstation Player, VMware Fusion, 리눅스 QEMU, 마이크로소프트의 버추얼 PC와 버추얼 서버, Oracle(SUN)의 버추얼박스가 있다
  • 개발(테스트) 환경에서 사용한다

 


[참고]

https://aws.amazon.com/ko/what-is/virtualization/

https://www.nakivo.com/blog/vmware-nested-virtualization-explained-use-cases-and-tutorial/