18장. 하드웨어 네트워크
18.1. SR-IOV(Single Root I/O Virtualization) 하드웨어 네트워크 정보
SR-IOV(Single Root I/O Virtualization) 사양은 단일 장치를 여러 Pod와 공유할 수 있는 PCI 장치 할당 유형의 표준입니다.
SR-IOV Operator 를 사용하여 클러스터에서 SR-IOV(Single Root I/O Virtualization) 장치를 구성할 수 있습니다.
SR-IOV를 사용하면 호스트 노드에서 물리적 기능(PF)으로 인식되는 호환 네트워크 장치를 여러 VF(가상 기능)로 분할할 수 있습니다. VF는 다른 네트워크 장치와 같이 사용됩니다. 장치의 SR-IOV 네트워크 장치 드라이버는 컨테이너에서 VF가 노출되는 방식을 결정합니다.
-
netdevice
드라이버: 컨테이너의netns
에 있는 일반 커널 네트워크 장치 -
vfio-pci
드라이버: 컨테이너에 마운트된 문자 장치
높은 대역폭 또는 짧은 대기 시간이 필요한 애플리케이션을 위해 베어 메탈 또는 RHOSP(Red Hat OpenStack Platform) 인프라에 설치된 OpenShift Container Platform 클러스터에서 추가 네트워크와 함께 SR-IOV 네트워크 장치를 사용할 수 있습니다.
SR-IOV 네트워크에 대한 다중 네트워크 정책을 구성할 수 있습니다. 이에 대한 지원은 기술 프리뷰이며 SR-IOV 추가 네트워크는 커널 NIC에서만 지원됩니다. DPDK(Data Plane Development Kit) 애플리케이션에서는 지원되지 않습니다.
SR-IOV 네트워크에서 다중 네트워크 정책을 생성하면 다중 네트워크 정책이 구성되지 않은 SR-IOV 네트워크와 비교하여 애플리케이션에 동일한 성능을 제공하지 못할 수 있습니다.
SR-IOV 네트워크의 다중 네트워크 정책은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
다음 명령을 사용하여 노드에서 SR-IOV를 활성화할 수 있습니다.
$ oc label node <node_name> feature.node.kubernetes.io/network-sriov.capable="true"
추가 리소스
18.1.1. SR-IOV 네트워크 장치를 관리하는 구성 요소
SR-IOV 네트워크 Operator는 SR-IOV 스택의 구성 요소를 생성하고 관리합니다. Operator는 다음 기능을 수행합니다.
- SR-IOV 네트워크 장치 검색 및 관리 오케스트레이션
-
SR-IOV 컨테이너 네트워크 인터페이스(CNI)에 대한
NetworkAttachmentDefinition
사용자 정의 리소스 생성 - SR-IOV 네트워크 장치 플러그인의 구성 생성 및 업데이트
-
노드별
SriovNetworkNodeState
사용자 정의 리소스 생성 -
각
SriovNetworkNodeState
사용자 정의 리소스에서spec.interfaces
필드 업데이트
Operator는 다음 구성 요소를 프로비저닝합니다.
- SR-IOV 네트워크 구성 데몬
- SR-IOV 네트워크 Operator가 시작될 때 작업자 노드에 배포되는 데몬 세트입니다. 데몬은 클러스터에서 SR-IOV 네트워크 장치를 검색하고 초기화합니다.
- SR-IOV 네트워크 Operator webhook
- Operator 사용자 정의 리소스의 유효성을 검증하고 설정되지 않은 필드에 적절한 기본값을 설정하는 동적 승인 컨트롤러 webhook.
- SR-IOV 네트워크 리소스 인젝터
-
SR-IOV VF와 같은 사용자 정의 네트워크 리소스에 대한 요청 및 제한으로 Kubernetes pod 사양을 패치하는 기능을 제공하는 동적 승인 컨트롤러 webhook. SR-IOV 네트워크 리소스 인젝터는 Pod의 첫 번째 컨테이너에만
리소스
필드를 자동으로 추가합니다. - SR-IOV 네트워크 장치 플러그인
- SR-IOV 네트워크 VF(가상 기능) 리소스를 검색, 광고 및 할당하는 장치 플러그인입니다. 장치 플러그인은 Kubernetes에서 일반적으로 물리적 장치에서 제한된 리소스를 사용할 수 있도록 사용됩니다. 장치 플러그인은 Kubernetes 스케줄러에서 리소스 가용성을 인식하여 스케줄러가 충분한 리소스가 있는 노드에서 Pod를 예약할 수 있도록 합니다.
- SR-IOV CNI 플러그인
- SR-IOV 네트워크 장치 플러그인에서 할당된 VF 인터페이스를 pod에 직접 연결하는 CNI 플러그인입니다.
- SR-IOV InfiniBand CNI 플러그인
- SR-IOV 네트워크 장치 플러그인에서 할당된 IB(InfiniBand) VF 인터페이스를 pod에 직접 연결하는 CNI 플러그인입니다.
SR-IOV 네트워크 리소스 인젝터 및 SR-IOV 네트워크 Operator webhook는 기본적으로 활성화되어 있으며 기본
SriovOperatorConfig
CR을 편집하여 비활성화할 수 있습니다. SR-IOV 네트워크 Operator Admission Controller 웹 후크를 비활성화할 때 주의하십시오. 문제 해결 또는 지원되지 않는 장치를 사용하려는 경우 특정 상황에서 Webhook를 비활성화할 수 있습니다.
18.1.1.1. 지원되는 플랫폼
SR-IOV Network Operator는 다음 플랫폼에서 지원됩니다.
- 베어 메탈
- Red Hat OpenStack Platform (RHOSP)
18.1.1.2. 지원되는 장치
OpenShift Container Platform에서는 다음 네트워크 인터페이스 컨트롤러를 지원합니다.
제조업체 | 모델 | 벤더 ID | 장치 ID |
---|---|---|---|
Broadcom | BCM57414 | 14e4 | 16d7 |
Broadcom | BCM57508 | 14e4 | 1750 |
Broadcom | BCM57504 | 14e4 | 1751 |
Intel | X710 | 8086 | 1572 |
Intel | X710 Backplane | 8086 | 1581 |
Intel | X710 Base T | 8086 | 15ff |
Intel | XL710 | 8086 | 1583 |
Intel | XXV710 | 8086 | 158b |
Intel | E810-CQDA2 | 8086 | 1592 |
Intel | E810-2CQDA2 | 8086 | 1592 |
Intel | E810-XXVDA2 | 8086 | 159b |
Intel | E810-XXVDA4 | 8086 | 1593 |
Intel | E810-XXVDA4T | 8086 | 1593 |
Intel | E810-XXV Backplane | 8086 | 1599 |
Intel | Ice E823L Backplane | 8086 | 124c |
Intel | Ice E823L SFP | 8086 | 124d |
Marvell | OCTEON Fusion CNF105XX | 177d | ba00 |
Marvell | OCTEON10 CN10XXX | 1177d | b900 |
Mellanox | MT27700 제품군 [ConnectX-4] | 15b3 | 1013 |
Mellanox | MT27710 제품군 [ConnectX-4 Lx] | 15b3 | 1015 |
Mellanox | MT27800 제품군 [ConnectX-5] | 15b3 | 1017 |
Mellanox | MT28880 제품군 [ConnectX-5 Ex] | 15b3 | 1019 |
Mellanox | MT28908 제품군 [ConnectX-6] | 15b3 | 101b |
Mellanox | MT2892 제품군 [ConnectX-6 Dx] | 15b3 | 101d |
Mellanox | MT2894 제품군 [ConnectX-6 Lx] | 15b3 | 101f |
Mellanox | Mellanox MT2910 제품군 [ConnectX-7] | 15b3 | 1021 |
Mellanox | MT42822 BlueField-2 in ConnectX-6 NIC 모드 | 15b3 | a2d6 |
Pensando [1] | ionic 드라이버용 DSC-25 듀얼 포트 25G 분산 서비스 카드 | 0x1dd8 | 0x1002 |
Pensando [1] | ionic 드라이버용 DSC-100 듀얼 포트 100G 분산 서비스 카드 | 0x1dd8 | 0x1003 |
Silicom | STS 제품군 | 8086 | 1591 |
- OpenShift SR-IOV는 지원되지만 SR-IOV를 사용할 때 SR-IOV CNI 구성 파일을 사용하여 고정 VF(가상 기능) 미디어 액세스 제어(MAC) 주소를 설정해야 합니다.
지원되는 카드 및 호환 가능한 OpenShift Container Platform 버전의 최신 목록은 Openshift SR-IOV(Single Root I/O Virtualization) 및 PTP 하드웨어 네트워크 지원 매트릭스 를 참조하십시오.
18.1.2. 추가 리소스
18.1.3. 다음 단계
- SR-IOV Network Operator 구성
- SR-IOV 네트워크 장치 구성
- OpenShift Virtualization을 사용하는 경우: 가상 머신을 SR-IOV 네트워크에 연결
- SR-IOV 네트워크 연결 구성
- 이더넷 네트워크 연결: SR-IOV 추가 네트워크에 Pod 추가
- InfiniBand 네트워크 연결: SR-IOV 추가 네트워크에 Pod 추가