11.3. SR-IOV 네트워크에서 LACP 상태 모니터링을 위한 PF Status Relay Operator 구성
SR-IOV 네트워크와 Pod 수준 본딩을 사용하여 워크로드에 대한 PF Status Relay Operator를 사용하여 LACP(Link Aggregation Control Protocol) 상태 모니터링을 활성화합니다. Operator는 물리적 기능(PF)에서 LACP 상태를 모니터링하고 업스트림 실패를 감지할 때 연결된 VF(가상 기능)의 링크 상태를 변경합니다. 이 방법을 사용하면 PF에 연결된 VF의 오류를 탐지하여 네트워크 경로를 적시에 백업하여 워크로드에 대한 고가용성을 보장할 수 있습니다.
다음 시나리오에서는 SR-IOV 네트워크에 대한 LACP 상태 모니터링을 구성하고 확인하는 방법을 보여줍니다.
- 작업자 노드에서 호스트 수준 NIC 본딩을 생성하고 LACP를 구성합니다.
- 결합된 인터페이스에서 VF(가상 기능)를 생성하도록 SR-IOV 네트워크 정책을 정의합니다.
- PF Status Relay Operator를 배포하여 PF를 모니터링하고 LACP 상태를 모니터링합니다.
- 이러한 VF를 사용하는 Pod가 업스트림 스위치에 실패하는 경우 백업 네트워크 경로로 자동으로 실패하는지 확인합니다.
다음 시나리오에서는 SR-IOV 네트워크에 대한 LACP 상태 모니터링을 구성하고 확인하는 방법을 보여줍니다. 이 시나리오는 각 노드에 두 개의 포트인 worker-0
및 worker-1
과 함께 SR-IOV 네트워크 카드를 사용하며 LACP 본딩을 지원하기 위해 두 개의 포트가 모두 연결되어 있습니다.
사전 요구 사항
- 노드에는 SR-IOV를 지원하는 NIC가 있어야 합니다.
- SR-IOV Network Operator가 설치되어 있습니다.
- PF Status Relay Operator가 설치되어 있습니다.
- 작업자 노드에 연결된 물리적 스위치 포트는 빠른 폴링 속도로 LACP용으로 구성됩니다.
-
linkState
는 모니터링할 SR-IOV VF의 경우auto
또는disable
로 설정됩니다. Operator는linkState
가활성화
되도록 설정된 VF를 무시합니다. SR-IOV VF의 기본값은linkState: auto
입니다.
프로세스
다음 예와 같은
namespace.yaml
파일을 생성하여 프로젝트 네임스페이스를 생성합니다.namespace.yaml
파일 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 고가용성 Pod를 배포하는 네임스페이스입니다.
다음 명령을 실행하여 네임스페이스를 적용합니다.
oc apply -f namespace.yaml
$ oc apply -f namespace.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트 수준 LACP 본딩을 구성합니다.
worker-0
노드의ens5f0
인터페이스에 대한NodeNetworkConfigurationPolicy
리소스를 정의하는 YAML 파일을 생성합니다.nncpBondF0Worker0.yaml
파일의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow worker-0
노드의ens5f1
인터페이스에 대한NodeNetworkConfigurationPolicy
리소스를 정의하는 YAML 파일을 생성합니다.nncpBondF1Worker0.yaml
파일의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 리소스를 적용합니다.
oc apply -f nncpBondF0Worker0.yaml oc apply -f nncpBondF1Worker0.yaml
$ oc apply -f nncpBondF0Worker0.yaml $ oc apply -f nncpBondF1Worker0.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
결합된 인터페이스에 대한 SR-IOV 네트워크 VF를 생성합니다.
worker-0
노드의ens5f0
인터페이스에 대한SriovNetworkNodePolicy
리소스를 정의하는 YAML 파일을 생성합니다.sriovnetworkpolicy-port1.yaml
파일의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow worker-0
노드의ens5f1
인터페이스에 대한SriovNetworkNodePolicy
리소스를 정의하는 YAML 파일을 생성합니다.sriovnetworkpolicy-port2.yaml
파일의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 리소스를 적용합니다.
oc apply -f sriovnetworkpolicy-port1.yaml oc apply -f sriovnetworkpolicy-port2.yaml
$ oc apply -f sriovnetworkpolicy-port1.yaml $ oc apply -f sriovnetworkpolicy-port2.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
PF Status Relay Operator를 구성합니다.
PFLACPMonitor
리소스를 정의하는 YAML 파일을 생성합니다. 이 예제 파일은작업자-0
노드에서ens5f0
및ens5f1
본딩 인터페이스의 LACP 상태를 모니터링하도록 Operator를 구성합니다.pflacpmonitor.yaml
파일 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요하나의
PFLACPMonitor
사용자 정의 리소스만 사용하여 노드의 각 네트워크 인터페이스를 모니터링합니다. 동일한 인터페이스를 대상으로 하는 여러 리소스를 생성하면 PF Status Relay Operator는 충돌하는 구성을 처리하지 않습니다.다음 명령을 실행하여
PFLACPMonitor
리소스를 적용합니다.oc apply -f pflacpmonitor.yaml
$ oc apply -f pflacpmonitor.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
PF Status Relay Operator의 로그를 확인하여 LACP 상태를 모니터링하고 있는지 확인합니다.
oc logs -n openshift-pf-status-relay-operator <pf_status_relay_operator_pod_name>
$ oc logs -n openshift-pf-status-relay-operator <pf_status_relay_operator_pod_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
{"time":"2025-07-24T13:35:54.653201692Z","level":"INFO","msg":"lacp is up","interface":"ens5f0"} {"time":"2025-07-24T13:35:54.65347273Z","level":"INFO","msg":"vf link state was set","id":0,"state":"auto","interface":"ens5f0"} ...
{"time":"2025-07-24T13:35:54.653201692Z","level":"INFO","msg":"lacp is up","interface":"ens5f0"} {"time":"2025-07-24T13:35:54.65347273Z","level":"INFO","msg":"vf link state was set","id":0,"state":"auto","interface":"ens5f0"} ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SriovNetwork
리소스를 적용하여sriov-operator-tests
네임스페이스 내에서 VF를 사용할 수 있도록 합니다.ens5f0
에서 생성된 VF의SriovNetwork
리소스를 정의하는 YAML 파일을 생성합니다.sriovnetwork-port1.yaml
파일의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow ens5f1
에서 생성된 VF의SriovNetwork
리소스를 정의하는 YAML 파일을 생성합니다.sriovnetwork-port2.yaml
파일의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 리소스를 적용합니다.
oc apply -f sriovnetwork-port1.yaml oc apply -f sriovnetwork-port2.yaml
$ oc apply -f sriovnetwork-port1.yaml $ oc apply -f sriovnetwork-port2.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
SR-IOV VF를 사용하는 고가용성 Pod를 정의합니다.
두 SR-IOV 네트워크를 사용하여
active-backup
본딩을 생성하려면NetworkAttachmentDefinition
리소스를 적용합니다.nad-bond.yaml
파일 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
linksInContainer: true
는 Pod의 네트워크 네임스페이스 내에 본딩을 생성합니다. -
mode: active-backup
은 active-backup 모드를 사용하도록 본딩을 구성합니다. links
는 본딩에 포함할 Pod 수준 인터페이스를 지정합니다.중요PF Status Relay Operator는
mode: active-backup
구성만 사용하여 Pod 수준 본딩에 대한 LACP 상태 모니터링을 제공합니다.
-
다음 명령을 실행하여
NetworkAttachmentDefinition
리소스를 적용합니다.oc apply -f nad-bond.yaml
$ oc apply -f nad-bond.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow active-backup 모드에서 결합된 인터페이스에서 VF를 사용하는
Pod
리소스를 정의하는 YAML 파일을 생성합니다.client-bond.yaml
파일 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 이 주석은 두 개의 SR-IOV VF,
net1
및net2
및 1개의 본딩,bond0
이라는 세 개의 네트워크를 요청합니다.
다음 명령을 실행하여
Pod
리소스를 적용합니다.oc apply -f client-bond.yaml
$ oc apply -f client-bond.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
장애 조치 메커니즘이 있는지 확인합니다.
다음 명령을 실행하여
client-bond
Pod에 로그인합니다.oc rsh -n sriov-operator-tests client-bond
$ oc rsh -n sriov-operator-tests client-bond
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Pod 수준 본딩의 초기 상태를 확인합니다.
cat /proc/net/bonding/bond0
sh-4.4# cat /proc/net/bonding/bond0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
net1
및net2
인터페이스가 모두 up입니다.
-
- 포드 쉘을 종료합니다.
- 업스트림 물리적 스위치에서 LACP 실패를 시뮬레이션합니다. 이 시나리오를 시뮬레이션하려면 오류를 테스트하려는 스위치 포트에서 LACP 트래픽을 필터링할 수 있습니다. 이렇게 하면 LACP 폴링이 실패하는 동안 물리적 링크가 유지됩니다. 이 작업을 수행하는 명령은 벤더에 따라 다릅니다.
client-bond
pod에 다시 로그인하고 본딩 상태를 다시 확인하여 Pod 내부의 페일오버를 확인합니다.cat /proc/net/bonding/bond0
sh-4.4# cat /proc/net/bonding/bond0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow net1
인터페이스가 down이고net2
인터페이스가 이제 활성 인터페이스입니다.client-bond Pod는 링크 상태 변경을 감지하고 백업 네트워크 경로로 전환합니다.