16.4.5. OpenNESS에서 애플리케이션 Pod 액세스 및 FPGA 사용 확인
개방성은 모든 유형의 네트워크에서 애플리케이션 및 네트워크 기능을 온보드하고 관리하는 데 사용할 수 있는 에지 컴퓨팅 소프트웨어 툴킷입니다.
SR-IOV 바인딩, 장치 플러그인,bbdev(bbdev) 구성, 루트가 아닌 Pod 내의 SR-IOV(FEC) VF 기능을 포함하여 모든 OpenNESS 기능이 함께 작동하는지 확인하기 위해 이미지를 빌드하고 장치에 대한 간단한 검증 애플리케이션을 실행할 수 있습니다.
자세한 내용은 openess.org 에서 확인하십시오.
사전 요구 사항
- 선택 사항: Intel FPGA PAC N3000 카드
- n3000-operator와 함께 설치된 노드 또는 노드
- SR-IOV-FEC Operator와 함께 설치된 노드 또는 노드
- Performance Addon Operator로 구성된 실시간 커널 및 대규모 페이지
-
cluster-admin
권한이 있는 사용자로 로그인합니다.
절차
다음 작업을 완료하여 테스트의 네임스페이스를 생성합니다.
다음 예와 같이
test-bbdev
-namespace.yaml 파일 파일을 생성하여 test-bbdev
네임스페이스를 정의합니다.apiVersion: v1 kind: Namespace metadata: name: test-bbdev labels: openshift.io/run-level: "1"
다음 명령을 실행하여 네임스페이스를 생성합니다.
$ oc create -f test-bbdev-namespace.yaml
다음
Pod
사양을 생성한 다음 YAML을pod-test.yaml
파일에 저장합니다.apiVersion: v1 kind: Pod metadata: name: pod-bbdev-sample-app namespace: test-bbdev 1 spec: containers: - securityContext: privileged: false capabilities: add: - IPC_LOCK - SYS_NICE name: bbdev-sample-app image: bbdev-sample-app:1.0 2 command: [ "sudo", "/bin/bash", "-c", "--" ] runAsUser: 0 3 resources: requests: hugepages-1Gi: 4Gi 4 memory: 1Gi cpu: "4" 5 intel.com/intel_fec_5g: '1' 6 #intel.com/intel_fec_acc100: '1' #intel.com/intel_fec_lte: '1' limits: memory: 4Gi cpu: "4" hugepages-1Gi: 4Gi intel.com/intel_fec_5g: '1' #intel.com/intel_fec_acc100: '1' #intel.com/intel_fec_lte: '1
참고ACC100 구성을 테스트하려면 # 기호를 제거하여
intel.com/intel_fec_acc100
의 주석을 제거합니다. N3000 4G/LTE 구성을 테스트하려면 # 기호를 제거하여intel.com/intel_fec_lte
의 주석을 제거합니다. 언제든지 하나의 리소스만 활성화할 수 있습니다.Pod를 생성합니다.
$ oc apply -f pod-test.yaml
Pod가 생성되었는지 확인합니다.
$ oc get pods -n test-bbdev
출력 예
NAME READY STATUS RESTARTS AGE pod-bbdev-sample-app 1/1 Running 0 80s
원격 쉘을 사용하여
pod-bbdev-sample-app
에 로그인합니다.$ oc rsh pod-bbdev-sample-app
출력 예
sh-4.4#
환경 변수 목록을 인쇄합니다.
sh-4.4# env
출력 예
N3000_CONTROLLER_MANAGER_METRICS_SERVICE_PORT_8443_TCP_ADDR=172.30.133.131 SRIOV_FEC_CONTROLLER_MANAGER_METRICS_SERVICE_PORT_8443_TCP_PROTO=tcp DPDK_VERSION=20.11 PCIDEVICE_INTEL_COM_INTEL_FEC_5G=0.0.0.0:1d.00.0 1 ~/usr/bin/env HOSTNAME=fec-pod
- 1
- 가상 기능의 PCI 주소입니다.
pod-test.yaml
파일에서 요청한 리소스에 따라 다음 세 개의 PCI 주소 중 하나일 수 있습니다.- PCIDEVICE_INTEL_COM_INTEL_FEC_ACC100
- PCIDEVICE_INTEL_COM_INTEL_FEC_5G
- PCIDEVICE_INTEL_COM_INTEL_FEC_LTE
test-bbdev
디렉터리로 변경합니다.sh-4.4# cd test/test-bbdev/
참고디렉터리는 로컬 컴퓨터가 아닌 포드에 있습니다.
Pod에 할당된 CPU를 확인합니다.
sh-4.4# export CPU=$(cat /sys/fs/cgroup/cpuset/cpuset.cpus) sh-4.4# echo ${CPU}
그러면 the
fec.pod
에 할당된 CPU가 출력됩니다.출력 예
24,25,64,65
test-bbdev
애플리케이션을 실행하여 장치를 테스트합니다.sh-4.4# ./test-bbdev.py -e="-l ${CPU} -a ${PCIDEVICE_INTEL_COM_INTEL_FEC_5G}" -c validation \ -n 64 -b 32 -l 1 -v ./test_vectors/*"
출력 예
Executing: ../../build/app/dpdk-test-bbdev -l 24-25,64-65 0000:1d.00.0 -- -n 64 -l 1 -c validation -v ./test_vectors/bbdev_null.data -b 32 EAL: Detected 80 lcore(s) EAL: Detected 2 NUMA nodes Option -w, --pci-whitelist is deprecated, use -a, --allow option instead EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Selected IOVA mode 'VA' EAL: Probing VFIO support... EAL: VFIO support initialized EAL: using IOMMU type 1 (Type 1) EAL: Probe PCI driver: intel_fpga_5ngr_fec_vf (8086:d90) device: 0000:1d.00.0 (socket 1) EAL: No legacy callbacks, legacy socket not created =========================================================== Starting Test Suite : BBdev Validation Tests Test vector file = ldpc_dec_v7813.data Device 0 queue 16 setup failed Allocated all queues (id=16) at prio0 on dev0 Device 0 queue 32 setup failed Allocated all queues (id=32) at prio1 on dev0 Device 0 queue 48 setup failed Allocated all queues (id=48) at prio2 on dev0 Device 0 queue 64 setup failed Allocated all queues (id=64) at prio3 on dev0 Device 0 queue 64 setup failed All queues on dev 0 allocated: 64 + ------------------------------------------------------- + == test: validation dev:0000:b0:00.0, burst size: 1, num ops: 1, op type: RTE_BBDEV_OP_LDPC_DEC Operation latency: avg: 23092 cycles, 10.0838 us min: 23092 cycles, 10.0838 us max: 23092 cycles, 10.0838 us TestCase [ 0] : validation_tc passed + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Test Suite Summary : BBdev Validation Tests + Tests Total : 1 + Tests Skipped : 0 + Tests Passed : 1 1 + Tests Failed : 0 + Tests Lasted : 177.67 ms + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +
- 1
- 일부 테스트를 건너뛸 수 있지만 벡터 테스트가 통과되는지 확인하십시오.