Hyper-V 구조론 1

Posted on

가상화 기술은 여러 유형이 존재하는데요. 제공하는 서비스에 따라 어플리케이션 가상화, 머신 가상화 등으로 구분됩니다. 우리가 관심을 두고 있는 Hyper-V는 머신 가상화로, 흔히 말하는 가상 머신을 돌리는 소프트웨어입니다.

가상 머신을 쓰는 이유는 다양한데 아래와 같습니다.

  • 서버에서 놀려두는 자원을 최대한 활용한다 – 이 말의 의미는 현재 쓰이고 있는 서버들의 사양이 높아서 CPU 코어 활용이나 램 등의 자원이 90% 안쓰이는 경우가 많습니다. 이 경우 남은 90%의 자원을 가상 머신을 돌리면서 활용하면 자원이 선용되고 기타 물리적 서버를 더 들이지 않아도 되므로 비용도 절약됩니다
  • 파워 유저의 경우 윈도우 이외의 운영체제를 돌릴 수 있게 됩니다. 멀티부팅을 하면 운영체제 간에 동시 작동이 어려운데 가상 머신을 쓰면 호스트 OS와 게스트 OS가 동시에 작동되어 편리합니다.

Hyper-V는 마이크로소프트에서 제공하는 머신 가상화 기술의 일종으로 가상 머신을 여러개 생성해서 쓸 수 있게 해줍니다. 윈도우 홈 에디션을 제외한 모든 데스크탑용 윈도우 최신 버전과 서버 버전에 포함되어 있습니다. 윈도우 데스크탑용 버전에서는 윈도우 기능 추가 기능을 써서 Hyper-V를 설치하고 쓸 수 있으며 설치와 운용을 하려면 CPU에서 제공하는 가상화 기술을 UEFI에서 활성화 시켜야 합니다.

  • SLAT 지원 64비트 CPU
  • VT-x나 AMD-V 지원 CPU
  • 최소 4GB 메모리

Hyper-V는 서버를 위한 서비스였으므로 사운드나 GPU 가속 기능이 지원이 안되었다가 지원이 일부 되게 바뀌었습니다. 그러나 라이브 뮤직 믹싱 프로그램, 고정밀 시간 (10밀리초 미만의 타이머를 이용하는 프로그램) 을 이용하는 프로그램은 문제가 있을 수 있다고 합니다.

대부분의 경우 윈도우 운영체제, 리눅스, BSD 등이 돌아가며 너무 오래된 운영체제는 안돌아갈 수 있습니다. 그러나 2023년 현재 구동에 필요한 운영체제들이 많아져서 큰 제한점은 없으며 실무에서 서버를 돌리는 용도로는 너무 오래된 운영체제는 필요없기에 서버 운용측면에서 활용도가 높습니다.

Hyper-V는 타입 1 하이퍼바이저입니다. 타입 1 하이퍼바이저는 CPU에서 제공하는 가상화 기술에 직접 접근해서 작동됩니다. 운영체제에 종속적인 작동을 하는 타입 2 하이퍼바이저에 비해 빠릅니다. 그러나 가상화 기술이 CPU에서 제공되어야 하기에 오래된 컴퓨터에서는 작동하지 않습니다.

링(ring) 개념의 이해가 필요한데요. 링 0은 하드웨어 계층에 가장 가까운 동작 모드로 CPU에 접근하는 권한이 제일 강한 모드입니다. 링 0에서 작동하는 경우 링 3에서보다 CPU에 직접 접근이 가능합니다. (링 1이나 링 2는 디바이스 드라이버가 작동한다고 알려져 있습니다) Hyper-V도 CPU 할당에 관여하는 하드웨어에 직접 접근이 필요한 타입 1 하이퍼바이저이기에 링 0에서 작동해야 하지만, OS 커널과 커널 모드 충돌이 발생할 수 있기에 링 -1 (ring minus one) 모드를 추가하여 작동하게 하였습니다.

타입 1 하이퍼바이저는 모노리딕 모드와 마이크로커널 모드라는 두가지 다른 모드를 지원하기도 합니다. 모노리딕의 경우 하이퍼바이저에 드라이버가 더해진 방식이고 마이크로커널의 경우 가상 머신에서 드라이버가 더해진 방식으로 후자가 레이턴시가 적습니다.

Hyper-V는 마이크로커널 방식의 타입 1 하이퍼바이저입니다.

일단 이 글에서는 이 정도로 정리해두겠습니다. 2편에서는 Hyper-V를 구성하는 각 계층의 해설과 간략한 기능을 정리해두겠습니다. 읽어주셔서 감사합니다.

1 thought on “Hyper-V 구조론 1

  • 제가 안낸 오타가 글 포스팅시 추가가 되어 파일시스템 관련 원리로 오타를 제가 낸듯 복귀하는 현상이 발견되었는데 혹시 내용상으로 오류나 오타 등이 발견되면 양해 부탁드립니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다