웹사이트 검색

Ubuntu 16.04에서 openDataplane 및 Open Fast Path로 네트워크 성능 향상


이 페이지에서

  1. 환경 설정 구축\n
    1. 전제 조건

    개방형 데이터 플레인(ODP)

    Linux 기반 네트워크 솔루션의 성능은 과거에 가장 큰 문제 중 하나였으며 Intel이 DPDK(Data Plane Development Kit) 프로젝트를 시작한 이유입니다. ODP 환경의 목표는 데이터 플레인 애플리케이션을 위한 교차 플랫폼 프레임워크를 제공하는 것입니다. ODP는 데이터 플레인 애플리케이션을 위한 환경을 제공하는 오픈 소스 프로젝트입니다. 사용하기 쉽고 고성능을 제공하며 ARM 및 Intel과 같은 다양한 네트워킹 시스템 온 칩(SoC)과 명령어 세트 및 아키텍처 간에 이식 가능합니다. OPD 환경은 다양한 기본 하드웨어 벤더에 최적화된 다양한 아키텍처 및 유틸리티를 위한 구성 파일, 서비스, API로 구성됩니다. ODP 환경의 목적은 기본 아키텍처에서 API를 분리하는 것이며 최신 SoC에 있는 가속 기능을 심도 있게 활용하기 위해 소프트웨어 및 하드웨어 구현을 모두 지원하는 방식으로 설계되었습니다.

    개방형 빠른 경로(OFP)

    아시다시피, 네트워크에서 빠른 패킷 처리 장치 또는 기계를 요구하는 기하급수적으로 증가하는 데이터 트래픽에는 고성능 장치가 필요합니다. OpenFastPath는 기존 Linux 스택을 사용하는 네트워크 애플리케이션에 유용한 고성능 TCP/IP 스택의 또 다른 오픈 소스 구현입니다. OFP의 주요 기능은 완성, 실행 모델 및 프레임워크를 위해 ODP를 사용하는 다양한 애플리케이션을 위한 라이브러리로 제공됩니다. OFP는 고성능 네트워크 솔루션을 위해 DPDK와 ODP를 모두 지원합니다.

    환경 설정 구축

    OFP 프로젝트 웹사이트에 따라 일반 32/64비트 x86 Linux 시스템에서 테스트되었습니다. 이 튜토리얼에서 OFP는 Ubuntu 16.04 VM에 설치됩니다.

    전제 조건

    다음 단계는 루트 사용자로 실행됩니다. 달리다:

    sudo -s

    서버에서 루트가 되기 위해.

    Ubuntu에서 OFP 및 ODP 코드를 컴파일하려면 다음 패키지가 필요합니다.

    다음은 ODP 및 OFP 액세스 및 구축에 필수입니다.

    apt-get install git libtool automake build-essential pkg-config

    그러나 다음 패키지는 옵션입니다.

     apt-get install libssl-dev valgrind libcunit1 libcunit1-doc libcunit1-dev

    OFP 경로는 ODP 및 DPDK(인텔)와 함께 사용할 수 있습니다. 그러나 이 자습서에서는 ODP가 OFP 프로젝트와 함께 사용됩니다. 아래와 같이 git 유틸리티를 사용하여 ODP 코드를 다운로드합니다.

     git clone https://git.linaro.org/lng/odp.git

    ODP 소스 코드의 루트 디렉터리로 이동하여 다음 명령을 실행합니다.

     ./bootstrap

    이 튜토리얼에서 ODP의 설치 디렉토리는 \/usr/local/odp\입니다.

    mkdir /usr/local/odp

    다음 스크린샷과 같이 접두사 옵션으로 구성 스크립트를 실행합니다.

     ./configure --prefix=/usr/local/odp/

    configure 스크립트의 출력은 다음과 같습니다.

    Ubuntu 플랫폼에서 ODP의 컴파일 및 설치를 위해 make 및 make install을 실행합니다.

    make
    make install

    아래와 같이 git 명령을 사용하여 OFP 코드를 다운로드합니다.

    git clone https://github.com/OpenFastPath/ofp

    OFP 소스 코드의 루트 디렉토리에 들어가 ./bootstrap 명령을 실행합니다.

    cd ofp/
    ./bootstrap

    OFP 프로젝트의 설치 디렉토리는 "/usr/local/ofp"입니다. 다음 구성 스크립트를 실행하여 프로젝트의 종속성을 확인합니다.

     ./configure --prefix=/usr/local/ofp/ --with-odp=/usr/local/odp/ --enable-cunit

    구성 스크립트의 출력은 다음 스냅샷에 표시됩니다.

    "make" 명령을 실행하여 OFP 프로젝트 코드를 빌드합니다. OFP 애플리케이션을 구축하는 데 시간이 걸립니다.

     make

    다음 명령은 접두사 경로 내에 OFP 프로젝트 바이너리 및 라이브러리를 배치합니다.

     make install

    설치 후 바이너리와 라이브러리는 "/usr/local/ofp" 경로 아래에 배치됩니다. OFP 프로젝트와 관련된 모든 테스트 애플리케이션은 "bin" 디렉토리 아래에 있습니다.

    OFP 애플리케이션 실행

    OFP 애플리케이션(fpm)을 실행하려면 OFP 소스 코드의 루트 디렉토리 아래에 있는 scripts 디렉토리로 이동하십시오.

    기본적으로 fpm 애플리케이션은 eth0 인터페이스에서 실행됩니다. 그러나 ubuntu 16.04 LTS에서 인터페이스 이름은 \enp0s3\입니다. 다음 스크린샷은 "start_device.sh" 스크립트를 사용하여 fpm 애플리케이션을 실행하는 방법을 보여줍니다.

    "fpm" 응용 프로그램을 실행하면 아래와 같이 새 인터페이스 "fp0"이 생성됩니다.

    "fpm" 애플리케이션의 CLI에 액세스하려면 다음 명령을 실행하십시오.

    telnet localhost 2345

    애플리케이션의 CLI는 몇 가지 기본 명령을 지원합니다. 다음 스크린샷은 "stat" 명령을 사용한 인터페이스 통계를 보여줍니다. 빠른 경로 애플리케이션을 실행한 후 이더넷 인터페이스(enp0s3)가 Linux에서 연결 해제되고 "NoARP"가 설정됩니다. 새로 생성된 가상 인터페이스(fp0)는 이제 Linux OS에서 통신용으로 사용됩니다.

    참조

    1. http://www.opendataplane.org/wp-content/uploads/2014/01/ODPIntroductionandOverview-2014Jan29.pdf
    2. http://www.openfastpath.org/index.php/service/technicaloverview/