13.2. 가상 장치 유형

RHEL 9의 가상화는 가상 머신 (VM)에 연결할 수 있는 여러 가지 유형의 가상 장치를 표시할 수 있습니다.

에뮬레이션된 장치

에뮬레이션된 장치는 널리 사용되는 물리적 장치의 소프트웨어 구현입니다. 물리적 장치를 위해 설계된 드라이버는 에뮬레이션된 장치와도 호환됩니다. 따라서 에뮬레이션된 장치는 매우 유연하게 사용할 수 있습니다.

그러나 특정 유형의 하드웨어를 견고하게 에뮬레이션해야 하므로 에뮬레이션된 장치는 해당 물리적 장치 또는 더 최적화된 가상 장치에 비해 상당한 성능 손실이 발생할 수 있습니다.

다음과 같은 유형의 에뮬레이션 장치가 지원됩니다.

  • 가상 CPU(vCPU) 및 다양한 CPU 모델을 선택할 수 있습니다. 에뮬레이션의 성능 영향은 호스트 CPU와 에뮬레이션된 vCPU의 차이점에 따라 크게 달라집니다.
  • PCI 버스 컨트롤러와 같은 에뮬레이션된 시스템 구성 요소입니다.
  • SATA, SCSI 또는 IDE와 같은 에뮬레이션된 스토리지 컨트롤러.
  • ICH9, ICH6 또는 AC97과 같은 에뮬레이션된 음향 장치.
  • VGA 카드와 같은 에뮬레이션된 그래픽 카드.
  • rtl8139와 같은 에뮬레이션된 네트워크 장치.
반가상화 장치

반가상화는 가상 장치를 VM에 노출할 수 있는 빠르고 효율적인 방법을 제공합니다. 반가상화 장치는 VM에서 사용하도록 특별히 설계된 인터페이스를 노출하므로 장치 성능이 크게 향상됩니다. RHEL 9는 virtio API를 하이퍼바이저와 VM 간의 계층으로 사용하는 VM에 반가상화 장치를 제공합니다. 이 접근 방식의 단점은 게스트 운영 체제에서 특정 장치 드라이버가 필요하다는 것입니다.

I/O 집약적 애플리케이션을 실행하는 경우 가능한 한 항상 VM에 에뮬레이션된 장치를 사용하지 않고 반가상화 장치를 사용하는 것이 좋습니다. 반가상화 장치는 I/O 대기 시간을 줄이고 I/O 처리량을 높이며 경우에 따라 베어 메탈 성능에 매우 근접합니다. 다른 반가상화 장치도 사용할 수 없는 VM에 기능을 추가합니다.

다음과 같은 유형의 반가상화 장치가 지원됩니다.

  • 반가상화 네트워크 장치(virtio-net).
  • 반가상화 스토리지 컨트롤러:

    • virtio-blk - 블록 장치 에뮬레이션을 제공합니다.
    • virtio-scsi - 더 완전한 SCSI 에뮬레이션을 제공합니다.
  • 반가상화된 시계입니다.
  • 반가상화 직렬 장치(virtio-serial).
  • balloon 장치(virtio-balloon)는 VM과 호스트 간에 메모리를 동적으로 배포하는 데 사용됩니다.
  • 반가상화 임의 번호 생성기(virtio-rng).
물리적으로 공유되는 장치

특정 하드웨어 플랫폼을 사용하면 VM이 다양한 하드웨어 장치 및 구성 요소에 직접 액세스할 수 있습니다. 이 프로세스를 장치 할당 또는 패스스루( passthrough )라고 합니다.

이러한 방식으로 연결된 경우 물리적 장치의 일부 측면을 물리적 시스템과 마찬가지로 VM에서 직접 사용할 수 있습니다. 이는 VM에서 사용할 때 장치에 대해 우수한 성능을 제공합니다. 그러나 VM에 물리적으로 연결된 장치를 호스트에서 사용할 수 없게 되므로 마이그레이션할 수도 없습니다.

그러나 일부 장치는 여러 VM에서 공유할 수 있습니다. 예를 들어, 단일 물리적 장치는 특정 상황에서 여러 개의 중재 장치를 제공할 수 있으며, 이를 개별 VM에 할당할 수 있습니다.

다음과 같은 유형의 패스스루 장치가 지원됩니다.

  • USB, PCI 및 SCSI 패스스루 - 게스트 소프트웨어에서 특정 기능을 사용할 수 있도록 일반 산업 표준 버스를 VM에 직접 노출합니다.
  • SR-IOV(Single-root I/O Virtualization) - PCI Express 리소스의 하드웨어 적용 가능 격리를 활성화하는 사양입니다. 이렇게 하면 단일 물리 PCI 리소스를 가상 PCI 함수로 분할하는 것이 안전하고 효율적입니다. NIC(네트워크 인터페이스 카드)에 일반적으로 사용됩니다.
  • N_Port ID 가상화(NPIV) - 단일 물리적 HBA(호스트 버스 어댑터)를 여러 가상 포트와 공유하는 Fibre Channel 기술입니다.
  • GPU 및 vGPUs - 특정 종류의 그래픽 또는 컴퓨팅 워크로드에 대한 가속기입니다. 일부 GPU는 VM에 직접 연결할 수 있지만 특정 유형은 기본 물리적 하드웨어를 공유하는 가상 GPU(vGPU)를 생성하는 기능도 제공합니다.