Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Contrail에서 vMX 설치 준비

DPDK 모드에서 vRouter를 실행하는 경우 OpenStack 환경을 준비할 때 다음 사항을 유념하십시오.

  • Contrail 3.0의 경우 DPDK를 사용하도록 Contrail 노드를 프로비저닝하기 위해 testbed.py 파일을 구성해야 합니다. DPDK를 사용한 Contrail 클러스터 노드 프로비저닝을 위한 testbed.py 파일 준비를 참조하십시오.

    Contrail 4.0의 경우 DPDK로 Contrail 노드를 프로비저닝해야 합니다. DPDK를 사용한 Contrail 4.0 클러스터 노드 프로비저닝을 위한 server.json 파일 준비를 참조하십시오.

  • 컴퓨팅 노드에서 /etc/default/grub을 활성화 iommu=pt 합니다.

  • Contrail-3.0.3.0-69 릴리스를 사용하는 경우 다음 명령으로 수동으로 libvirt 1.2.16 패키지로 컴퓨팅 노드를 업그레이드하고 nova-compute 및 libvirt-bin 서비스를 다시 시작합니다.

  • 모든 VM에 대해 대용량 페이지를 활성화하여 트래픽 전송을 허용합니다.

  • 명령어로 contrail-status 컴퓨팅 노드에서 DPDK가 활성화되는지 확인합니다. 상태는 contrail-vrouter-dpdk 활성화되어 있습니다.

  • Contrail-vhost 네트워크에 사용되는 NIC 카드(컴퓨팅 및 컨트롤러 노드 연결)와 SR-IOV 네트워크(VFD 프로세스에 제공됨)가 서로 다른 네트워크 카드인지 확인합니다. ethtool -i 명령을 사용하여 버스 정보 필드가 서로 다른 카드에서 입력되었는지 확인합니다.

OpenStack 환경을 준비하여 vMX를 설치하려면 다음 작업을 수행합니다.

vMX용 컨트롤러 노드 준비

컨트롤러 노드를 준비하려면 다음을 수행합니다.

  1. 컨트롤러 노드를 구성하여 /etc/nova/nova.conf 파일의 scheduler_default_filters 매개 변수를 편집하여 거대한 페이지 및 CPU 선호도를 활성화합니다. 다음 필터가 있는지 확인합니다.
    참고:

    CPU 피닝이 설정 중인지 또는 꺼져 있는지에 관계없이 이 구성을 권장합니다. 거대한 페이지가 항상 켜져 있습니다.

    명령으로 스케줄러 서비스를 다시 시작합니다 service nova-scheduler restart .

  2. 기본 할당량을 업데이트합니다.
    참고:

    기본값을 권장하지만 환경에 적합한 경우 서로 다른 값을 사용할 수 있습니다. 기본 할당량에 충분한 할당된 리소스가 있는지 확인합니다.

    명령으로 nova quota-defaults 변경 사항을 확인합니다.

  3. (Contrail 3.0 전용) 컨트롤러 노드에서 SR-IOV 인터페이스를 사용하려면 vMX 다운로드 소프트웨어 페이지에서 vMX KVM 소프트웨어 패키지를 다운로드하여 패치를 적용합니다.

    패키지를 압축 해제하고 디렉토리를 루트로 변경하고 openstack/kilo/openstack_vfd_patches 디렉토리에서 패치를 적용합니다.

  4. (Contrail 4.0의 경우, Junos OS 릴리스 17.4R1부터 시작) 컨트롤러 노드에서 SR-IOV 인터페이스를 활성화하려면 https://bugs.launchpad.net/opencontrail/+bug/1709822 설명된 Contrail 패치가 적용되었는지 확인합니다. 그렇지 않으면 오류 메시지가 보일 Unknown Neutron Exception 수 있습니다.

컴퓨팅 노드 준비

vMX를 위한 컴퓨팅 노드 준비

컴퓨팅 노드를 준비하려면 다음을 수행합니다.

  1. 각 컴퓨팅 노드를 구성하여 IOMMU(intel_iommu=on)를 활성화하고 부팅 시간과 재부팅 시 거대한 페이지를 지원합니다. GRUB_CMDLINE_LINUX_DEFAULT 매개 변수에 /etc/default/grub 에 구성을 추가합니다.
    참고:

    DPDK 모드에서 vRouter를 실행하거나 virtio용 VLAN 프로바이더 OVS 네트워크를 사용하는 경우 포함해야 합니다 iommu=pt.

    명령 뒤에 update-grub 명령을 실행합니다 reboot .

  2. (옵션) 거대한 페이지가 활성화된 VM이 성공적으로 구축되었는지 확인합니다.

    컴퓨팅 노드에 unable to create backing store for hugepages: Permission denied 있는 /var/log/nova/nova-compute.log 파일에 메시지가 표시되면 다음 작업을 수행합니다.

    1. libvirt를 위한 새 디렉토리를 생성하여 거대한 페이지를 장착하거나 사용합니다.

      mkdir -p /run/hugepages/kvm/

    2. 이 디렉토리 위에 거대한 테이블 fs를 설치합니다.

      mount -t hugetlbfs hugetlbfs-kvm /run/hugepages/kvm/

    3. 이 디렉토리 입력을 큰 lbfs의 마운트 위치로 명시적으로 /etc/libvirt/qemu.conf 에 제공합니다.
    4. KVM_HUGEPAGES=1 in etc/default/qemu-kvm을 추가합니다.
    5. 컴퓨팅 노드를 재부팅합니다.

    재부팅 후, 거대한 페이지가 명령과 함께 할당되는지 확인합니다 cat /proc/meminfo | grep Huge .

Contrail 4.0용 SR-IOV 인터페이스용 컴퓨팅 노드 구성

Junos OS 릴리스 17.4R1부터 다음 절차는 Contrail 4.0에만 적용됩니다.

(Contrail 4.0용) SR-IOV 인터페이스를 구성하려면 다음을 수행합니다.

  1. BIOS에서 VT-d를 활성화합니다. (각기 다른 시스템들이 VT-d를 지원하는 서로 다른 방법을 가지고 있기 때문에 벤더와 함께 프로세스를 검증하는 것이 좋습니다.)
  2. BIOS에서 ASPM을 활성화합니다.

    ASPM이 활성화되었는지 확인하려면 해당 명령을 사용합니다 lspci -vv | grep ASPM | grep Enabled .

  3. (선택사항) Intel Ivy Bridge 프로세서를 사용하는 경우 파일을 추가하고 options kvm-intel enable_apicv=N /etc/modprobe.d/kvm-intel.conf 재부팅하십시오.
  4. 수정된 IXGBE 드라이버를 로드합니다.

    드라이버를 컴파일하기 전에 gcc 및 확인이 설치되어 있는지 확인합니다.

    기본 IXGBE 드라이버를 언로드하고, 수정된 주니퍼 네트웍스 드라이버를 컴파일한 다음, 수정된 IXGBE 드라이버를 로드합니다.

    물리적 디바이스에서 가상 기능(VF)을 생성합니다. vMX는 SR-IOV 트래픽에 단 하나의 VF만 필요합니다(예: eth4). 다음 줄은 eth2를 위한 VF(첫 번째 IXGBE NIC)와 eth4용 VF 1개(두 번째 IXGBE NIC)가 없음을 지정합니다.

    구성에 따라 값을 지정합니다.

    eth2 및 eth4 인터페이스에서 드라이버 버전(3.19.1)을 검증합니다.

  5. 인터페이스가 가동되고 SR-IOV 트래픽이 통과하도록 하려면 이러한 명령을 실행하여 구성을 완료하십시오.

    VF 0의 상태를 확인하려면:

    이 예는 VF 0만 표시합니다.

  6. /etc/nova/nova.conf 파일을 편집하여 SR-IOV NIC 카드에 대한 PCI 패스스루 허용 목록 엔트리를 추가합니다.

    예를 들어, 이 항목은 물리적 네트워크 physnet2에 대한 SR-IOV 인터페이스 카드(eth4)의 엔트리를 추가합니다.

    명령으로 컴퓨팅 노드 서비스를 다시 시작합니다 service nova-compute restart .

Contrail 3.0용 SR-IOV 인터페이스용 컴퓨팅 노드 구성

참고:

다음 절차는 Contrail 3.0 및 VFD 에이전트에만 해당됩니다.

(Contrail 3.0에만 해당) SR-IOV 인터페이스를 구성하려면 다음을 수행합니다.

  1. BIOS에서 VT-d를 활성화합니다. (각기 다른 시스템들이 VT-d를 지원하는 서로 다른 방법을 가지고 있기 때문에 벤더와 함께 프로세스를 검증하는 것이 좋습니다.)
  2. BIOS에서 ASPM을 활성화합니다.

    ASPM이 활성화되었는지 확인하려면 해당 명령을 사용합니다 lspci -vv | grep ASPM | grep Enabled .

  3. (선택사항) Intel Ivy Bridge 프로세서를 사용하는 경우 파일을 추가하고 options kvm-intel enable_apicv=N /etc/modprobe.d/kvm-intel.conf 재부팅하십시오.
  4. vMX 다운로드 소프트웨어 페이지에서 vMX KVM 소프트웨어 패키지를 다운로드하여 패치를 적용합니다.

    패키지를 압축 해제하고 디렉토리를 루트로 변경하고 openstack/kilo/openstack_vfd_patches 디렉토리에서 패치를 적용합니다.

  5. IXGBEVF 드라이버를 언로드합니다.

    vfio-pci 모듈을 로드합니다.

    물리적 디바이스에서 가상 기능(VF)을 생성합니다. vMX는 SR-IOV 트래픽에 단 하나의 VF만 필요합니다(예: eth4). 32개의 VF를 생성하고 있지만 하나만 사용하고 있습니다.

    VF가 생성되었는지 확인하려면 명령의 출력이 lspci -nn | grep Ether |grep Virtual | wc -l 을 표시합니다 32.

  6. 인터페이스가 가동되고 SR-IOV 트래픽이 통과하도록 하려면 이러한 명령을 실행하여 구성을 완료하십시오.

    VF 0의 상태를 확인하려면:

    이 예제에서는 VF 0만 표시하지만 모든 32개의 VF가 출력에 나타납니다.

  7. /etc/nova/nova.conf 파일을 편집하여 SR-IOV NIC 카드에 대한 PCI 패스스루 허용 목록 엔트리를 추가합니다.

    예를 들어, 이 항목은 물리적 네트워크 physnet2에 대한 SR-IOV 인터페이스 카드(eth4)의 엔트리를 추가합니다.

    nova.conf에 VF-Agent 엔트리를 추가합니다.

    명령으로 컴퓨팅 노드 서비스를 다시 시작합니다 service nova-compute restart .

  8. VFD 에이전트를 설치합니다. VFD 1.14 데비안 패키지 버전을 사용합니다.

    샘플 파일에서 vfd.cfg 를 복사합니다.

    default_mtu vfd.cfg 파일의 값과 pciids id 값을 편집합니다.

    예를 들어 편집된 값은 물리적 기능 ID(PF)와 유사할 수 있습니다.

    명령으로 VFD 프로세스를 시작합니다 service vfd start .

    프로세스가 명령으로 성공적으로 시작되었는지 확인합니다 service vfd status .

    참고:

    VFD 프로세스가 실행되는 동안 VFD에 연결된 인터페이스는 명령이나 ip link 함께 ifconfig 표시되지 않습니다. iplex show all 명령을 사용하여 PF에 대한 링크가 설정되었는지 확인합니다.

  9. VFIO에 대한 올바른 사용 권한이 제공되는지 확인합니다. "/dev/vfio/vfio" 매개 변수 아래에 /etc/libvirt/qemu.conf 에 엔트리를 cgroup_device_acl 추가합니다.

    명령으로 libvirtd를 다시 시작합니다 service libvirt-bin restart .

릴리스 히스토리 테이블
릴리스
설명
17.4R1
Junos OS 릴리스 17.4R1부터 다음 절차는 Contrail 4.0에만 적용됩니다.