1.3. NFV 데이터 플레인 연결
NFV가 도입됨에 따라 더 많은 네트워킹 벤더가 VNF로 기존 장치를 구현하기 시작했습니다. 대부분의 네트워킹 벤더는 가상 머신을 고려하고 있지만 일부는 설계 선택으로 컨테이너 기반 접근 방식을 조사하고 있습니다. OpenStack 기반 솔루션은 다음과 같은 두 가지 주요 이유로 인해 풍부하고 유연해야 합니다.
- 애플리케이션 준비 - 네트워크 벤더가 현재 장치를 VNF로 변환하는 중입니다. 시장 내 VNF는 서로 다른 수준의 완성도를 가지고 있습니다. 이러한 준비에 대한 일반적인 장애로는 API에서 RESTful 인터페이스 활성화, 데이터 모델을 상태 비저장으로 발전시키고, 자동화된 관리 작업을 제공하는 것이 포함됩니다. OpenStack은 모두를 위한 공통 플랫폼을 제공해야 합니다.
광범위한 사용 사례 - NFV에는 다양한 사용 사례를 제공하는 다양한 애플리케이션이 포함되어 있습니다. 예를 들어, vCPE(Virtual Customer Premise Equipment)는 고객 환경에서 라우팅, 방화벽, VPN(Virtual Private Network) 및 NAT(Network Address Translation)와 같은 여러 네트워크 기능을 제공하는 것을 목표로 합니다. vEPC(Virtual Evolved Packet Core)는 LTE(Long-Term Evolution) 네트워크의 핵심 구성 요소에 비용 효율적인 플랫폼을 제공하는 클라우드 아키텍처로, 게이트웨이 및 모바일 끝점의 동적 프로비저닝을 통해 스마트 카드 및 기타 장치에서 데이터 트래픽의 양을 늘릴 수 있습니다.
이러한 사용 사례는 서로 다른 네트워크 애플리케이션 및 프로토콜을 사용하여 구현되며 인프라의 서로 다른 연결, 격리 및 성능 특성이 필요합니다. 컨트롤 플레인 인터페이스와 프로토콜과 실제 전달 플레인을 구분하는 것도 일반적입니다. OpenStack은 다양한 데이터 경로 연결 옵션을 제공할 수 있을 만큼 유연해야 합니다.
기본적으로 가상 머신에 데이터 플레인 연결을 제공하는 두 가지 일반적인 방법이 있습니다.
- 직접 하드웨어 액세스 는 linux 커널을 우회하고 가상 기능(VF) 및 PF(물리 기능) 패스스루 모두에 대해 PCI Passthrough 또는 SR-IOV(Single Root I/O Virtualization)와 같은 기술을 사용하여 물리적 NIC에 대한 안전한 직접 메모리 액세스(DMA)를 제공합니다.
- 하이퍼바이저의 소프트웨어 서비스로 구현된 가상 스위치(vswitch) 사용. 가상 머신은 가상 인터페이스(vNIC)를 사용하여 vSwitch에 연결되며 vSwitch는 가상 머신과 물리적 네트워크 간에 트래픽을 전달할 수 있습니다.
빠른 데이터 경로 옵션 중 일부는 다음과 같습니다.
- SR-IOV(Single Root I/O Virtualization) 는 단일 PCI 하드웨어 장치를 여러 가상 PCI 장치로 표시하는 표준입니다. 물리적 하드웨어 포트를 나타내는 완전한 기능을 갖춘 PCIe 함수인 물리적 기능(PF)과 가상 머신에 할당된 경량 함수인 VF(가상 기능)를 도입하여 작동합니다. VM에 대해 VF는 하드웨어와 직접 통신하는 일반 NIC와 유사합니다. NIC는 여러 VF를 지원합니다.
- OVS(Open vSwitch) 는 가상화된 서버 환경 내에서 가상 스위치로 사용하도록 설계된 오픈 소스 소프트웨어 스위치입니다. OVS는 일반 L2-L3 스위치의 기능을 지원하며, OpenFlow와 같은 SDN 프로토콜을 지원하여 사용자 정의 오버레이 네트워크(예: VXLAN)를 만듭니다. OVS는 Linux 커널 네트워킹을 사용하여 가상 머신과 물리적 NIC를 사용하는 호스트 간에 패킷을 전환합니다. OVS는 iptables/ebtables를 사용하는 Linux 브리지의 오버헤드를 피하기 위해 내장 방화벽 기능이 내장된 연결 추적(Conntrack)을 지원합니다. Red Hat OpenStack Platform 환경의 Open vSwitch는 OVS와의 기본 OpenStack Networking(neutron) 통합을 제공합니다.
- DPDK(Data Plane Development Kit) 는 라이브러리 세트와 빠른 패킷 처리를 위한 PMD( 폴링 모드 드라이버)로 구성됩니다. 대부분의 사용자 공간을 실행하도록 설계되었으므로 애플리케이션이 또는 NIC에서 직접 자체 패킷 처리를 수행할 수 있습니다. DPDK는 대기 시간을 줄이고 더 많은 패킷을 처리할 수 있습니다. DPDK PMD(Pll Mode Drivers)는 사용 중인 루프로 실행되어 패킷 도착을 위해 게스트의 호스트 및 vNIC 포트에서 NIC 포트를 지속적으로 스캔합니다.
- DPDK 가속화 Open vSwitch(OVS-DPDK) 는 Linux 커널 바이패스 및 DMA(직접 메모리 액세스)를 물리적 NIC로 사용하는 고성능 사용자 공간 솔루션을 위해 DPDK와 함께 제공되는 Open vSwitch입니다. 표준 OVS 커널 데이터 경로를 DPDK 기반 데이터 경로로 교체하여 패킷 전달을 위해 DPDK를 내부적으로 사용하는 호스트에서 사용자 공간 vSwitch를 생성하는 것입니다. 이 아키텍처의 장점은 사용자에게 가장 투명하다는 것입니다. OpenFlow, OVSDB와 같이 표시되는 인터페이스는 대부분 동일하게 유지됩니다.