728x90

원문출처 : https://www.servethehome.com/how-to-pass-through-pcie-nics-with-proxmox-ve-on-intel-and-amd/

 

How to Pass-through PCIe NICs with Proxmox VE on Intel and AMD

We have a quick how-to guide for pass-through PCIe NICs with Proxmox VE on Intel and AMD. This is often used for pfSense and OPNsense

www.servethehome.com

 

Proxmox VE 웹 GUI 통과할 NIC 선택

오늘 빠른 것은 NIC를 Promxox VE의 가상 머신으로 전달하기 위한 매우 간단한 자습서입니다. 통과 NIC는 하이퍼바이저 오버헤드를 방지하고 가상 NIC와 pfSense 및 OPNsense와 같은 일부 방화벽 어플라이언스를 사용하여 호환성 문제를 해결하는 데 도움이 될 수 있습니다. 단점은 NIC가 SR-IOV를 지원하지 않는 한 이 구성에서 공유 장치가 아닐 가능성이 높다는 것입니다.

1단계: BIOS 설정

가장 먼저 해야 할 일은 시스템에서 IOMMU 기능을 켜는 것입니다. 이를 위해서는 CPU와 플랫폼이 해당 기능을 지원해야 합니다. 오늘날 대부분의 플랫폼은 IOMMU를 지원하지만 일부 이전 플랫폼은 지원하지 않습니다. Intel 플랫폼에서는 이를 "VT-d"라고 합니다. Intel Virtualization Technology for Directed I/O(VT-d)의 약자입니다.

Intel VT D를 활성화하여 IOMMU 작동

 

AMD 플랫폼에서는 AMD-Vi를 옵션으로 볼 수 있습니다. 때로는 다른 시스템 펌웨어에서 IOMMU를 볼 수 있습니다. 활성화하려는 옵션입니다.

물론 이것은 Proxmox VE이므로 BIOS에 있는 동안에도 기본 가상화가 켜져 있는지 확인하고 싶을 것입니다. 또한 이 가이드를 사용하는 사람들에게 주요 초점이 될 것이므로 시스템에 방화벽/라우터를 만드는 경우 일반적으로 AC 전원 설정을 "항상 켜짐" 또는 "마지막 상태"로 설정하는 것이 좋습니다. 정전이 발생하면 네트워크가 즉시 복구됩니다.

다음으로 GRUB 또는 systemd를 부트로더로 사용하고 있는지 확인해야 합니다.

2단계: GRUB 또는 systemd를 사용 중인지 확인

이것은 새로운 단계이지만 최신 버전의 Proxmox VE를 설치하고 ZFS를 루트로 사용하는 경우(향후 확장될 수 있음) GRUB이 아닌 systemd를 사용하고 있을 가능성이 높습니다. 설치 후 이 명령을 사용하여 사용 중인 것을 확인합니다.

efibootmgr -v

"File(\EFI\SYSTEMD\SYSTEMD-BOOTX64.EFI)"와 같은 내용이 표시되면 GRUB이 아닌 systemd를 사용하고 있는 것입니다.

또 다른 이점은 부팅할 때 GRUB이 포함된 블루 스크린과 OS로 들어가기 직전에 여러 옵션이 표시되면 GRUB을 사용하고 있는 것입니다. 다음과 같은 내용이 표시되면 systemd를 사용하고 있는 것입니다.

Proxmox VE 시스템 부팅 메뉴

 

이는 많은 이전 가이드가 GRUB를 사용하고 있기 때문에 중요하지만 systemd를 사용하고 GRUB 지침을 따르는 경우 NIC 패스스루에 필요한 IOMMU를 활성화하지 않습니다.

3a단계: GRUB를 사용하여 IOMMU 활성화

GRUB가 있고 현재 대부분의 설치가 있는 경우 구성 파일을 편집해야 합니다.

nano /etc/default/grub

Intel CPU의 경우 quiet intel_iommu=on을 추가합니다.

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

AMD CPU의 경우 quiet amd_iommu=on을 추가합니다.

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"

다음은 배치할 위치를 보여 주는 인텔 라인이 있는 스크린샷입니다.

Proxmox VE Nano Grub Quiet Intel Iommu On

 

선택적으로 IOMMU PT 모드를 추가할 수도 있습니다. PT 모드는 패스스루가 사용될 때 시스템의 다른 PCIe 장치의 성능을 향상시킵니다. 이것은 Intel 및 AMD CPU에서 작동하며 iommu=pt입니다. 다음은 추가될 AMD 버전이며 인텔 스크린샷은 다음과 같습니다.

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"

이것이 진행되는 스크린 샷은 다음과 같습니다.

Proxmox VE Nano Grub Quiet Intel Iommu On Iommu Pt

 

저장하고 종료하는 것을 잊지 마십시오.

이제 GRUB을 업데이트해야 합니다.

update-grub

이제 4단계로 이동합니다.

3a단계: systemd를 사용하여 IOMMU 활성화

2단계에서 systemd를 사용하고 있는 것을 발견한 경우 GRUB에 비트를 추가해도 작동하지 않습니다. 대신 다음과 같이 하십시오.

nano /etc/kernel/cmdline

Intel CPU의 경우 다음을 추가하십시오.

quiet intel_iommu=on

AMD CPU의 경우 다음을 추가하십시오.

quiet amd_iommu=on

다음은 인텔 버전을 사용하여 추가할 위치에 대한 스크린샷입니다.

Proxmox VE Systemd Quiet Intel_iommu=on

 

선택적으로 IOMMU PT 모드를 추가할 수도 있습니다. 이것은 Intel 및 AMD CPU에서 작동하며 iommu=pt입니다. 다음은 추가될 AMD 버전이며 인텔 스크린샷은 다음과 같습니다.

quiet amd_iommu=on iommu=pt

인텔 스크린샷은 다음과 같습니다.

Proxmox VE Systemd Quiet Intel_iommu=on Iommu=pt

 

이제 부팅 도구를 새로 고쳐야 합니다.

proxmox-boot-tool refresh

이제 4단계로 이동합니다.

4단계: 모듈 추가

대부분은 위의 작업이 완료된 후 즉시 재부팅되며 이는 아마도 좋은 습관일 것입니다. 일반적으로 저는 시간을 절약하기 위해 모듈을 추가하는 것을 좋아합니다. 더 보수적이라면 재부팅한 다음 이 단계를 수행하십시오. 다음으로 편집하여 모듈을 추가할 수 있습니다.

nano /etc/modules

해당 파일에서 다음을 추가할 수 있습니다.

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

다음과 같이 표시됩니다.

Proxmox VE NIC 패스스루 기타 모듈 추가

 

다음으로 재부팅할 수 있습니다.

5단계: 재부팅

이것은 다음에 재부팅하고 싶을 만큼 충분히 큰 변경입니다. PVE에서 우리가 가진 팁은 기본 시스템을 설정할 때 자주 재부팅하는 것입니다. 구성을 구축하는 데 몇 시간을 소비하고 싶지 않은 경우 구성이 부팅되지 않고 이유를 알 수 없습니다.

우리는 보다 현대적인 시스템을 위해 위의 내용을 약간 요약했음을 곧 알게 될 것입니다. 아래 확인 단계에서 문제가 발생하면 대신 모듈을 추가하기 전에 재부팅하고 재부팅하기 전에 PT 모드를 켜지 않는 것이 좋습니다.

7단계: 모든 것이 작동하는지 확인

사용할 명령은 다음과 같습니다.

dmesg | grep -e DMAR -e IOMMU

시스템, 가지고 있는 옵션 등에 따라 여기에서 많은 출력이 변경됩니다. 찾고 있는 것은 스크린샷 DMAR: IOMMU 활성화:에서 강조 표시된 줄입니다.

Proxmox VE IOMMU 활성화됨

 

당신이 그것을 가지고 있다면, 당신은 좋은 상태 일 것입니다.

7단계: NIC를 사용하도록 Proxmox VE VM 구성

이를 위해 Inexpensive 4x 2.5GbE Fanless Router Firewall Box Review 와 매우 유사한 작은 상자를 사용하고 있습니다  . 본질적으로 동일하며 해당 상자의 다른 버전입니다. 좋은 기능 중 하나는 각 NIC가 자체 i225-V이며 각 개별 NIC를 통해 VM으로 전달할 수 있다는 것입니다. 다음은 예정된 동영상의 스크린샷입니다.

Proxmox VE 웹 GUI 통과할 NIC 선택

 

이전에는 CLI 편집을 통해 통과 NIC를 VM에 추가했습니다. 이제 Proxmox는 PCIe 장치 ID와 장치 공급업체 및 이름을 가져옵니다. 이렇게 하면 시스템에서 NIC를 매우 쉽게 선택할 수 있습니다. 많은 온보드 NIC에 대한 한 가지 좋은 점은 NIC가 시스템에 레이블이 지정되어 있기 때문에 물리적 순서는 순차적인 MAC 주소와 PCIe ID가 있음을 의미해야 한다는 것입니다. 위의 0000:01:00.0에서 첫 번째 NIC(ETH0)입니다. 장치 0000:02:00.0은 두 번째 등입니다.

Hunsn 4포트 2.5GbE I225 인텔 J4125 방화벽 박스 NIC 포트

 

이 시점에서 이미 완료되었습니다. OPNsense와 pfSense 모두에서 이 작업이 수행되고 프로세스가 매우 유사하다는 것을 알 수 있습니다. 좋은 점은 이렇게 하면 pfSense/OPNsense가 가상화된 NIC 장치를 사용하는 대신 NIC에 직접 액세스할 수 있다는 것입니다.

pfSense 및 OPNsense를 사용하는 IOMMU에 대한 몇 가지 참고 사항

이러한 NIC가 할당된 후 염두에 두어야 할 몇 가지 주요 고려 사항이 있습니다.

  • 통과 NIC를 사용하면 VM이 라이브 마이그레이션되지 않습니다. VM이 PCIe 위치에서 물리적 NIC를 기대하는데 이를 얻지 못하면 문제가 됩니다.
  • 개념적으로 SR-IOV라는 고급 기능이 있어 NIC를 통해 여러 장치로 전달할 수 있습니다. pfSense 및 OPNsense 어플라이언스에서 일반적으로 볼 수 있는 저가형 i210 및 i225-V NIC의 경우 개념적으로 NIC를 VM 전용으로 지정합니다. 즉, 다른 VM은 NIC를 사용할 수 없습니다. 다음은 OPNsense NIC에도 할당된 NIC를 사용하는 pfSense VM(600)이 있는 예입니다. OPNsense를 시작하려고 하면 오류가 발생합니다. Proxmox VE GUI를 사용하면 두 VM이 꺼져 있는 경우 두 VM에서 패스스루를 구성할 수 있지만 한 번에 하나만 전용 NIC에서 켜고 활성화할 수 있습니다.

Proxmox VE 웹 GUI NIC가 이미 pfSense에 할당된 경우 OPNsense용 두 번째 VM에 할당됨

  • 이전 하드웨어에는 IOMMU 기능이 없을 수 있습니다. 최신 하드웨어에는 IOMMU와 ACS가 모두 있으므로 대부분의 최신 플랫폼에서는 PCIe 장치를 쉽게 분리하고 VM 전용으로 사용할 수 있습니다. 이전 하드웨어에서 때때로 PCIe 장치가 그룹화되는 방식은 이 예에서와 같이 NIC를 다른 VM에 개별적으로 통과시키려는 경우 문제를 일으킵니다.
  • 동일한 VM의 전용 통과 NIC와 함께 브리지에서 두 가상 NIC를 모두 활용할 수 있습니다.
  • 1GbE 속도에서 통과는 가상화된 NIC를 사용할 때와 큰 차이가 없습니다. 25GbE/100GbE 속도에서는 매우 큰 차이가 됩니다.
  • DPU에 대해 논의할 때 주요 차이점 중 하나는 DPU가 가상 네트워크 포트를 물리적 고속 포트에 브리징하는 것과 같은 기능을 처리할 수 있으며 호스트 CPU가 아닌 DPU에서 모두 발생한다는 것입니다.
  • 이것은 베어 메탈 설치보다 설정하는 데 시간이 오래 걸리고 pfSense 또는 OPNsense 설치에 복잡성을 추가하는 영역입니다. 이점은 재부팅과 같은 작업을 수행하는 것이 일반적으로 가상 머신에서 훨씬 빠르다는 것입니다. 주요 변경 사항이 있는 경우 pfSense 또는 OPNsense 이미지의 스냅샷을 찍을 수도 있습니다.
  • Proxmox VE 관리 및 기타 VM 기능을 위해 시스템에 하나 이상의 NIC를 추가하는 것이 좋습니다. 모든 NIC에 대한 패스스루를 사용하여 VM을 방화벽화하는 경우 시스템 NIC가 없습니다.

이것은 완전하지는 않지만 도움이 되기를 바랍니다.

마지막 말

이것은 pfSense, OPNsense 또는 다른 솔루션을 가상화할 때 Proxmox VE에서 PCIe 패스스루 NIC를 설정하는 빠른 가이드입니다. 2017년 또는 2020년 이후에 만들어진 최신 하드웨어에 더 적합하므로 이전 시스템을 사용하는 경우 더 많은 조정이 필요할 수 있습니다. 이것은 Intel과 같은 회사가 시장에서 자사 칩의 세분화에 사용했던 기능이었지만 요즘에는 대부분 VT-d를 지원할 것입니다.

+ Recent posts