Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

네스티드 vMX VM 설치

네스티드 가상 머신은 다른 VM 내에 포함된 가상 머신입니다. KVM에서 네스티드 vMX VM을 시작하는 방법을 알아보려면 이 주제를 읽어보십시오.

네스티드 VM 모델 개요

네스티드 vMX 가상 머신(VM) 모델은 VFP(가상 포워딩 플레인) VM 내에서 VM으로 실행되는 가상 컨트롤 플레인(VCP)을 가지고 있습니다. VFP VM은 가상 Trio 포워딩 플레인 소프트웨어를 실행하며 VCP VM은 Junos OS를 실행합니다. VCP VM 및 VFP VM은 서로 통신하기 위해 레이어 2 연결이 필요합니다. 각 vMX 인스턴스에 대해 서버에 로컬로 연결된 내부 브리지가 이러한 통신을 지원합니다. 또한 VCP VM 및 VFP VM은 서버의 이더넷 관리 포트와 통신하기 위해 Layer 2 연결을 필요로 합니다. vMX 인스턴스를 위한 외부 브리지를 설정하려면 VFP 및 VCP 모두에 고유한 IP 주소와 MAC 주소를 가진 가상 이더넷 인터페이스를 지정해야 합니다. 모든 vMX 인스턴스에 대한 이더넷 관리 트래픽은 이더넷 관리 포트를 통해 서버로 들어갑니다.

네스티드 vMX VM은 포워딩 포트를 위한 virtio 및 SR-IOV 인터페이스를 지원합니다. 첫 번째 인터페이스는 관리를 위해 사용되며 br-ext 브리지(외부 브리지)에 연결된 virtio 인터페이스여야 합니다. 후속 인터페이스는 WAN 인터페이스이며 virtio 또는 SR-IOV 인터페이스가 될 수 있습니다. 모든 virtio 인터페이스를 위한 브리지를 생성해야 합니다. 포워딩을 위한 WAN 인터페이스가 하나 이상 있어야 합니다.

Virtio 인터페이스가 포함된 네스티드 VM

virtio 모드에서는 서버 인터페이스를 VF로 구성해서는 안 됩니다. 명령을 사용하여 인터페이스(eth1)를 제거하거나 재설정하면 명령을 사용하여 rmmod ixgbe modprobe ixgbe 서버 인터페이스에 기본 인터페이스가 있는 IXGBE 드라이버를 추가할 수 있습니다.

그림 1 은 virtio 인터페이스가 있는 네스티드 vMX VM 모델을 보여주고 있습니다.

그림 1: virtio 인터페이스 Nested VM with virtio Interfaces 가 있는 네스티드 VM

SR-IOV 인터페이스가 포함된 네스티드 VM

SR-IOV 모드에서 vMX 인터페이스는 서버 인터페이스와 연결됩니다. 예를 들어, ge-0/0/0 인터페이스는 에 정의.conf file- interface: ge-0/0/0 ,nic: eth1되어 eth1 있습니다. eth1

VF는 VF와 연결된 서버 인터페이스 eth1 의 IXGBE 드라이버에 추가되며 SR-IOV 모드에서 실행되는 동안 명령을 사용하여 ip link show eth1 검사할 수 있습니다.

그림 2 는 SR-IOV 인터페이스가 있는 네스티드 vMX VM 모델을 보여줍니다.

그림 2: SR-IOV 인터페이스가 Nested VM with SR-IOV Interfaces 포함된 네스티드 VM

SR-IOV 인터페이스의 경우 내포된 vMX VM을 실행하기 전에 수정된 IXGBE 드라이버를 로드해야 합니다.

네트워크 트래픽이 물리적 NIC에서 가상 NIC로 전달되는 방식은 사용자가 구성한 가상화 기술에 따라 달라집니다.

네스티드 VM 모델에 대한 시스템 요구 사항

vMX는 사용 사례에 따라 두 가지 모드로 실행되도록 구성할 수 있습니다.

  • Lite 모드—낮은 대역폭에서 실행하려면 CPU와 메모리 측면에서 리소스가 줄어듭니다.

  • 성능 모드—더 높은 대역폭에서 실행하려면 CPU 및 메모리 측면에서 더 높은 리소스가 필요합니다.

    참고:

    성능 모드는 기본 모드입니다.

네스티드 VM 모델을 통한 vMX 제한 사항

vMX는 네스티드 VM 모델에서 다음과 같은 기능을 지원하지 않습니다.

  • vMX 인스턴스가 실행되는 동안 인터페이스의 첨부 파일 또는 분리

  • Junos OS 릴리스 업그레이드

네스티드 vMX VM을 위한 하드웨어 및 소프트웨어 요구 사항

표 1 에는 하드웨어 요구 사항이 나열됩니다.

표 1: 네스티드 vMX VM의 최소 하드웨어 요구 사항

설명

샘플 시스템 구성

virtio용: VT-d 기능을 갖춘 모든 x86 프로세서(인텔 또는 AMD)

SR-IOV: Intel 82599 기반 PCI-Express 카드(10Gbps) 및 아이비 브리지 프로세서.

코어 수

참고:

성능 모드는 기본 모드이며 최소값은 하나의 포트를 기반으로 합니다.

  • 라이트 모드: vCPU 최소 4개

    참고:

    VFP를 위해 4개 이상의 vCPU를 실행하는 경우 라이트 모드를 명시적으로 구성해야 합니다.

  • 성능 모드: vCPU 최소 8개

    참고:

    성능 모드를 위해 VFP에 필요한 권장 vCPU 수를 계산하려면 다음을 수행합니다.

    (3 * number-of-forwarding-ports) + 4

메모리

  • 라이트 모드: 최소 3GB

  • 성능 모드의 경우:

    • 최소 5GB

    • 권장 16GB

표 2 에는 소프트웨어 요구 사항이 나열됩니다.

표 2: Ubuntu를 위한 소프트웨어 요구 사항

설명

운영 체제

Ubuntu 14.04.1 LTS

Linux 3.19.0-80-generic

가상화

QEMU-KVM 2.0.0+dfsg-2ubuntu1.11

필수 패키지

참고:

모든 종속성을 충족하기 위해 기타 추가 패키지가 필요할 수 있습니다.

브리지 유틸스 qemu-kvm libvirt-bin virtinst

참고:

libvirt 1.2.19

KVM에서 네스티드 vMX VM 설치 및 실행

KVM에서 네스티드 vMX VM을 실행하려면 이러한 작업을 수행합니다.

내포된 vMX VM을 설치하기 위한 Ubuntu 호스트 준비

vMX 설치를 위한 Ubuntu 호스트 시스템을 준비하려면 다음을 수행합니다.

  1. Nested vMX VM을 위한 하드웨어 및 소프트웨어 요구 사항에 설명된 소프트웨어 및 OS 요구 사항을 충족합니다.
  2. BIOS에서 Intel VT-d를 활성화합니다. (각기 다른 시스템들이 VT-d를 지원하는 서로 다른 방법을 가지고 있기 때문에 벤더와 함께 프로세스를 검증하는 것이 좋습니다.)

    인텔 웹사이트에서 VT-d를 사용할 수 있도록 하는 절차를 참조하십시오.

  3. /etc/default/qemu-kvm에 설정 KSM_ENABLED=0 하여 KSM을 비활성화합니다.
  4. /etc/modprobe.d/qemu-system-x86.conf 파일을 편집하고 포함된 options kvm_intel라인에 추가하여 enable_apicv=0 APIC 가상화를 비활성화합니다.

    options kvm_intel nested=1 enable_apicv=0

  5. 호스트를 다시 시작하여 KSM 및 APIC 가상화를 비활성화합니다.
  6. SR-IOV를 사용하는 경우 이 단계를 수행해야 합니다.
    참고:

    / etc/network/interfaces 에 외부 브리지가 있는 이전 설치를 제거하고 원래 관리 인터페이스를 사용해 다시 돌아가야 합니다. 설치를 ifconfig -a 진행하기 전에 명령어에 외부 브리지가 표시되지 않도록 해야 합니다.

    외부 브리지가 표시되는지 여부를 확인하려면 명령을 사용하여 ifconfig 관리 인터페이스를 확인하십시오. 이 인터페이스가 외부 브리지 그룹에 사용되는지 확인하려면 명령을 사용하여 brctl show 관리 인터페이스가 외부 브리지로 나열되었는지 여부를 확인합니다.

    /etc/default/grub 디렉토리를 켜 intel_iommu=on 서 SR-IOV 기능을 활성화합니다.

    GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on"

    매개 변수에 intel_iommu=on 대해 기존 텍스트에 문자열을 GRUB_CMDLINE_LINUX_DEFAULT 추가합니다.

  7. 최적의 성능을 위해 호스트에서 1G로 대용량 페이지 크기를 구성하고 VFP용 NUMA 노드에 최소 16개 1G 대용량 페이지가 있는지 확인하는 것이 좋습니다. 거대한 페이지 크기를 구성하려면 다음 줄을 /etc/default/grub에 추가하십시오.

    GRUB_CMDLINE_LINUX="default_hugepagesz=1G hugepagesz=1G hugepages=number-of-huge-pages"

    대용량 페이지 수는 적어도 (16G * number-of-numa-sockets) 이어야 합니다.

  8. 명령 뒤에 update-grub 명령을 실행합니다 reboot .
  9. vMX를 modprobe kvm-intel 설치하기 전에 명령을 실행합니다.

수정된 IXGBE 드라이버 로드

SR-IOV 인터페이스를 사용하는 경우 내포된 vMX VM을 실행하기 전에 수정된 IXGBE 드라이버를 로드해야 합니다. 수정된 IXGBE 드라이버를 로드하려면 다음을 수행합니다.

  1. vMX KVM 소프트웨어 패키지를 다운로드하고 패키지를 압축 해제합니다.
  2. 드라이버를 컴파일하기 전에 gcc 및 확인이 설치되어 있는지 확인합니다.
  3. 기본 IXGBE 드라이버를 언로드하고, 수정된 주니퍼 네트웍스 드라이버를 컴파일한 다음, 수정된 IXGBE 드라이버를 로드합니다.
  4. SR-IOV 인터페이스에서 드라이버 버전(3.19.1)을 확인합니다.

네스티드 vMX 인스턴스 실행

네스티드 vMX 인스턴스를 실행하려면 다음을 수행합니다.

  1. vMX 네스티드 소프트웨어 패키지를 다운로드하십시오.
  2. 이미지를 형식으로 vmdk 변환합니다 qcow2 .
  3. virtio 인터페이스를 위한 브리지를 만듭니다.
    참고:

    명령을 사용하여 brctl addbr <bridge-name> 브리지를 만들면 서버가 연결이 끊어질 수 있습니다. 또는, vMX를 검증되지 않은 모드(SRIOV 또는 virtio 모드에서)로 생성하고 해당 및 virsh destroy vfp vfp-name 명령을 사용하여 virsh destroy vcp vcp-name 브리지를 생성하고 유지할 수 있습니다.

    참고:

    네스티드 vMX 인스턴스를 실행하기 전에 virtio 인터페이스를 위한 브리지를 생성해야 합니다.

  4. 명령으로 내포된 vMX VM 인스턴스를 실행합니다 virt-install . 예를 들어:

    어디:

    • --vcpus—vCPU 수를 지정합니다.

      라이트 모드의 경우 최소 4개의 vCPU가 있습니다. 성능 모드의 경우, 최소 [(4 * number-of-forwarding-ports) + 4] vCPU.

    • -r—VM이 MB에서 사용하는 메모리 양을 지정합니다. 최소 16GB.

    • --serial—VFP에 대한 시리얼 포트를 지정합니다.

    • -w—virtio 인터페이스를 지정합니다. 첫 번째 인터페이스는 관리를 위해 사용되며 br-ext 브리지에 연결됩니다. 후속 인터페이스는 WAN 인터페이스이며 호스트의 브리지에 연결됩니다.

    • --host-device—가상 기능(VF0)의 PCI ID로 SR-IOV 인터페이스를 지정합니다.

      PCI ID를 확인하려면 다음을 수행합니다.

      1. ip link 명령을 사용하여 vMX 인스턴스에 바인딩된 VF를 생성하는 인터페이스 이름을 획득합니다.

      2. 유틸리티를 ethtool -i interface-name 사용하여 PCI 버스 정보를 확인합니다.

      3. virsh nodedev-list 명령을 사용하여 VF PCI ID를 얻습니다.

    • -n—vMX VM의 이름을 지정합니다.

    • --disk—파일 경로를 qcow2 지정합니다(vmx-nested-release.qcow2).

예를 들어, 이 명령은 vnet0 및 vnet1 브리지에 연결된 두 개의 virtio 인터페이스가 있는 성능 모드에서 vMX 인스턴스를 실행합니다.

예를 들어, 이 명령은 두 개의 SR-IOV 인터페이스가 있는 성능 모드에서 vMX 인스턴스를 실행합니다.

VFP 콘솔 포트 연결

명령으로 virt-install vMX 인스턴스를 실행한 후에 명령을 사용하여 호스트 telnet localhost serial-port 에서 VFP의 콘솔 포트에 연결할 수 있습니다. 여기서 serial-port 매개 변수로 host 지정한 포트를 -serial 사용할 수 있습니다.

예를 들어:

기본 사용자 이름 jnpr 및 암호 jnpr123로 로그인합니다. 명령을 사용하여 루트가 sudo -i 되십시오.

br-ext 인터페이스는 DHCP를 사용하여 IP 주소를 가져오려고 시도합니다. ifconfig br-ext 명령을 사용하여 할당된 IP 주소를 표시합니다. DHCP를 사용할 수 없거나 정적 IP 주소를 선호하는 경우 IP 주소를 에 할당합니다 br-ext. 이제 SSH 프로토콜과 할당된 IP 주소를 사용하여 VFP에 연결할 수 있습니다.

VCP 연결

VCP VM이 실행되면 다음 명령을 사용하여 VFP VM에서 TCP 포트 8601의 VCP 콘솔 포트에 연결할 수 있습니다.

콘솔 포트에서 사용자 이름과 root 암호 없이 로그인할 수 있습니다.

최소한 VCP에 로그인한 후 이러한 초기 Junos OS 구성 작업을 수행해야 합니다.

  1. CLI를 시작합니다.
  2. 구성 모드를 입력합니다.
  3. 루트 암호를 구성합니다.
  4. 라우터의 관리 이더넷 인터페이스에 대한 IP 주소 및 접두사 길이를 구성합니다.
  5. 구성을 커밋합니다.