Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

예: KVM의 vMX 인스턴스에서 SR-IOV 구현

KVM상의 vMX는 SR-IOV(Single-Root I/O Virtualization) 인터페이스 유형을 지원합니다. SR-IOV(단일 루트 I/O 가상화)를 통해 물리적 기능이 여러 개의 개별 vNIC으로 표시되도록 합니다. SR-IOV를 사용하면 네트워크 어댑터와 같은 디바이스가 다양한 하드웨어 기능 간에 리소스에 별도의 액세스 권한을 가질 수 있습니다. SR-IOV를 지원하는 물리적 NIC가 있는 경우, SR-IOV 지원 vNIC 또는 VF(가상 기능)를 vMX 인스턴스에 연결하여 성능을 개선할 수 있습니다.

시스템 요구 사항:

  • Junos OS 릴리스 18.4 이상.

  • VMX에서 KVM용 SR-IOV를 사용하려면 다음 Intel NIC 드라이버 중 하나가 필요합니다.

    • 10G 포트 및 ixgbe 드라이버를 사용하는 Intel X520 또는 X540

    • 10G 포트 및 i40e 드라이버를 사용하는 Intel X710 또는 XL710

    Junos OS 릴리스 19.1R1-S1 및 Junos OS 릴리스 19.2R1에서 시작하여 Intel XL710-QDA2 NIC를 사용하는 40G 포트에 대한 지원은 VMX 인스턴스에서 사용할 수 있습니다. 40G 포트를 사용할 때 vMX는 포트 속도를 자동 감지하고 2개의 I/O vCPU를 할당합니다.

VMX 인스턴스에서 SR-IOV를 사용하려면 다음 작업을 완료해야 합니다.

  • 시스템(/sys/) 모드에서 SR-IOV를 사용하도록 NIC를 준비합니다.

  • Intel에서 드라이버를 설치하려면 드라이버를 컴파일하고 기존 드라이버를 제거한 다음 새로운 컴파일된 드라이버를 설치해야 합니다.

    참고:

    vMX 설치 관리자가 수정된 intel-driver도 제공합니다. 인텔의 기본 드라이버를 사용하거나 vMX 수정 드라이버를 사용할 수 있습니다.

  • vmx.conf 파일 준비

  • Junos CLI를 사용하여 네이티브 드라이버 구성

  • SR-IOV를 활성화하기 위한 BIOS 요구 사항- 시스템의 BIOS 설정에서 Intel VT-d 또는 AMD IOMMU가 활성화되는지 확인합니다.

NIC에 대한 PCI-주소 및 커널 이름을 식별하는 절차

  1. PCI 주소를 찾으려면 다음 명령을 사용합니다.
  2. PCI를 사용하여 커널 이름을 찾으려면 다음 명령을 사용합니다.
  3. NIC를 사용하는 드라이버를 찾으려면 다음 명령을 사용합니다.

Intel에서 최신 드라이버 소프트웨어 다운로드 및 설치

Intel에서 최신 드라이버 소프트웨어를 다운로드하고 Ubuntu에서 제공하는 기존 드라이버 소프트웨어를 교체할 수 있습니다.

이 예에서는 INTEL® 네트워크 어댑터 드라이버 for PCIe* Intel® 10 Gigabit Ethernet Network Connections Under Linux 에서 소프트웨어를 다운로드하여 원하는 디렉토리에 저장한 다음 README 지침을 따릅니다.

인텔에서 드라이버 소프트웨어를 설치하려면 다음을 수행합니다.

  1. 드라이버 소프트웨어를 설치합니다.
  2. /modprobe 명령을 사용하여 rmmod이전 드라이버를 제거하고 업데이트된 드라이버를 로드합니다.
    경고:

    명령은 rmmod 10GE 드라이버를 제거합니다. 연결된 유일한 인터페이스인 경우 호스트에 대한 액세스가 손실됩니다.

  3. 새 드라이버가 올바르게 설치되었는지 확인합니다.

시스템 모드에서 SR-IOV를 사용하도록 NIC 준비

호스트는 값을 설정 sriov_numvfs 하여 각 전용 NIC에 대해 통보해야 하며, 해당 NIC에서 SR-IOV를 사용하는 VF의 수입니다. vmx.sh 스크립트에는 공유 NIC를 사용하는 VF 수에 대한 정보가 없습니다. 이 때문에 그에 따라 구성 sriov_numvfs 해야 합니다.

이 값은 재부팅 후에 영구적이도록 부트 옵션으로 설정될 수 있으며 재부팅 후에는 지속되지 않는 실시간 변경을 할 수 있습니다.

이 예제에서 제공된 절차는 /sys를 사용하여 구성 sriov_numvfs 하기 위한 임시 솔루션입니다. 모든 설정은 /sys/class/net/interface-namedevicesriov_numvfs/에 대한 설정이 비 영구이므로 재부팅 시에도 구성이 지속되지 않습니다.

NIC가 SR-IOV를 사용하도록 준비하려면 다음 단계를 완료하십시오.

다음 명령을 사용하여 가상 기능(VF)을 생성합니다.

아래 명령어에서 4개의 VNF가 SR-IOV에 공유 NIC ens8f1을 사용할 수 있도록 지원합니다. sudo를 사용하거나 루트 사용자로 로그인해야 합니다.

참고:

sriov_numvfs 옵션은 SR-IOV가 지원하는 최대 VF 개수인 값 0-n만 허용합니다.

부팅 시 SR-IOV 설정

다음 절차는 구성이 호스트의 재부팅을 지속하는 SR-IOV 구성을 위한 몇 가지 대체 방법을 제공합니다.

호스트 부팅 프로세스 중에 값을 설정하는 데 사용할 수 있는 옵션은 다음과 같습니다.

  • rc.local 사용

  • 모드프로비 옵션 설정

  • 그럽을 사용한 커널-파라마이커 설정

아래 예제에서는 그루브 커널 명령을 사용하여 값을 구성하는 sriov_numvfs 방법을 보여줍니다.

"intel_iommu=on"을 설정하고 ixgbe.max_vfs= value

거대한 페이지에 대한 자세한 내용은 vMX를 설치하기 위한 Ubuntu 호스트 준비(Preparing the Ubuntu Host to Install to Installing)를 참조하십시오.

파일 "/etc/default/grub"을 편집합니다.

편집 후 다음을 업데이트합니다.

새 부트 로더를 작성하여 다음 재부팅 시 변경을 활성화합니다.

호스트를 재부팅하여 설정을 활성화합니다.

sriov_numvfs 설정 검증

목적

CLI를 사용하여 구성을 sriov_numvfs 확인합니다. 이 예에서 SR-IOV와 함께 사용하는 데 필요한 NIC는 PCI-address 85:00.0에서 ens8f1입니다. 출력의 "가상 기능"에 유의하십시오.

작업

또한 sriov_numvfs /sys/class/net/ens8f1/device/sriov_numvfs 원하는 값을 포함합니다.

테스트를 위해 에 직접 기록 /sys/class/net/interface-name/device/sriov_numvfs하여 sriov_numvfs 빠르게 변경할 수 있습니다.

sriov_numvfs 수 변경

SR-IOV와 함께 주어진 NIC를 사용하는 첫 번째 vMX 인스턴스를 구축한 후에는 VF의 수를 변경할 수 없으므로(예: 부트 시간에 grub 명령어를 사용함으로써) 사전에 sriov_numvfs 만들 것을 권장합니다. VF 번호를 변경해야 하는 경우 실행 중인 vMX를 중단해야 합니다. sriov_numvfs 옵션을 더 높은 가치로 설정하여 나중에 sriov_numvfs 수를 변경하지 않는 것이 좋습니다.

이미 구성된 VF 값을 변경하려면 먼저 값을 0으로 변경한 다음 필요한 정수 값으로 변경해야 합니다.

할당된 VF가 없는 경우, VF 수를 유효한 값으로 변경할 수 있습니다(0 - n, 여기서 n은 SR-IOV에 의해 지원되는 최대 VF 개수입니다).

VF 수를 수정하려면 다음 단계를 수행해야 합니다.

  1. 공유 SR-IOV NIC를 사용하여 VNF의 작동을 중단하십시오.

  2. VF(Virtual Functor)의 수를 0으로 설정하여 SR-IOV 네트워크 어댑터를 비활성화합니다.

  3. 필요한 VF 개수 변경(이 예에서 6개를 사용하고 있는 경우)

    참고:

    다음 오류 메시지가 보이면 3단계를 수행하기 전에 먼저 2단계에서 설명한 대로 값을 0으로 설정합니다.

  4. 다음 명령을 사용하여 구성을 확인합니다.

vMX를 다시 시작하기 전에 SR-IOV 사용을 위해 vmx.conf 파일을 채택하십시오.

VMX 구성 파일 업데이트(vmx.conf) 매개 변수

vMX 구성에 필요한 매개 변수는 시작 구성 파일에서 정의됩니다. 구성 파일은 YAML 형식입니다. 기본 파일은 config/vmx.conf입니다. 여러 인스턴스에 대한 구성 파일을 다른 이름으로 저장할 수 있습니다.

SR-IOV 디바이스 유형에 대한 인터페이스를 구성하려면 인터페이스, NIC 및 MAC 주소를 지정해야 합니다. 표 1 은 vmx.conf 파일을 변경하는 데 사용하는 구성 매개변수의 세부 정보를 제공합니다.

표 1: VMX 구성 파일 매개변수

구성 요소

VM 매개 변수

설명

vPFE

device-type

SR-IOV를 사용하는 모든 인터페이스에 사용하거나 SR-IOV 및 비SR-IOV 기반 인터페이스의 혼합을 지원하는 데 사용합니다 sriov mixed .

use_native_drivers

true 호스트의 Intel ixgbe 드라이버를 사용할 수 있도록 설정(위의 단계에서 다운로드 및 준수됨)

인터페이스

type

유형이 로 설정 sriov되면 설정 port-speed-mbps nic 해야 합니다.

port-speed-mbps

10GE NIC로 10000 설정합니다.

nic

사용할 인터페이스의 커널 이름입니다.

virtual-function

이 NIC를 0 사용하는 첫 번째 vMX 인스턴스로 설정합니다. 공유 NIC(등)를 사용하여 두 번째 vMX로 설정 1 해야 합니다.

mac-address

공유 NIC를 사용하는 각 VF 인스턴스가 고유하거나 다른 MAC 주소를 사용하는지 확인합니다.

샘플 vmx.conf 파일:

vmx 설치 시작

Intel ixgbe 드라이버 사용 시 필요한 변경 사항

기존 구축을 수정된 IXGBE 드라이버에서 수정되지 않은 IXGBE 드라이버로 이동하려고 할 때 Junos CLI에서 Edit 모드를 입력하고 "기본" 드라이버를 사용할 때 다음 명령을 사용합니다.

자세한 내용은 수정된 IXGBE 드라이버 및 수정되지 않은 IXGBE 드라이버에서 확인하십시오.