11.3. SR-IOV ネットワークで LACP 状態モニタリング用の PF Status Relay Operator の設定
SR-IOV ネットワークとの Pod レベルのボンディングを使用して、PF Status Relay Operator を使用してワークロードのリンクアグリゲーション制御プロトコル(LACP)状態監視を有効にします。Operator は Physical Function (PF)の LACP 状態を監視し、アップストリームの障害の検出時に、接続されている仮想機能(VF)のリンク状態を変更します。このアプローチでは、PF に接続されている VF で障害を検出し、バックアップネットワークパスにタイムリーにフェイルオーバーし、ワークロードの高可用性を確保できます。
以下のシナリオは、SR-IOV ネットワークの LACP 状態監視を設定および検証する方法を示しています。
- ワーカーノードでホストレベルの NIC ボンディングを作成し、LACP を設定します。
- SR-IOV ネットワークポリシーを定義して、ボンディングされたインターフェイスに Virtual Function (VF)を作成します。
- PF Status Relay Operator をデプロイして PF を監視し、LACP の状態を監視します。
- これらの VF を使用する Pod がアップストリームスイッチに障害が発生した場合にバックアップネットワークパスに自動的にフェイルオーバーすることを確認します。
以下のシナリオは、SR-IOV ネットワークの LACP 状態監視を設定および検証する方法を示しています。このシナリオでは、各ノード(worker- 0 と
)に 2 つのポートを持つ SR-IOV ネットワークカードを使用し、両方のポートが共有スイッチに接続して LACP ボンディングをサポートします。
worker
-1
前提条件
- ノードには SR-IOV をサポートする NIC が必要です。
- SR-IOV Network Operator がインストールされている。
- PF Status Relay Operator がインストールされている。
- ワーカーノードに接続された物理スイッチポートが、高速ポーリングレートで LACP 用に設定されます。
-
監視する SR-IOV VF の
linkState
はauto
またはdisable
に設定されます。Operator は、を有効
化するようにlinkState
が設定された VF を無視します。SR-IOV VF のデフォルト値はlinkState: auto
です。
手順
次の例のような
namespace.yaml
ファイルを作成して、プロジェクト namespace を作成します。namespace.yaml
ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 高可用性 Pod をデプロイする namespace。
以下のコマンドを実行して namespace を適用します。
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 ファイルを作成します。このサンプルファイルは、worker-
0 ノード上のens5f0
およびens5f1
ボンディングインターフェイスの LACP ステータスを監視するように Operator を設定します。pflacpmonitor.yaml
ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要ノード上の各ネットワークインターフェイスを監視するには、1 つの
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
リソースを適用して、VF をsriov-operator-tests
namespace 内で使用できるようにします。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 を定義します。
NetworkAttachmentDefinition
リソースを適用し、2 つの SR-IOV ネットワークを使用してアクティブバックアップ
ボンディングを作成します。nad-bond.yaml
ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
linksInContainer: true
は、Pod のネットワーク namespace 内にボンディングを作成します。 -
モード:active-backup
は、active-backup モードを使用するようにボンディングを設定します。 リンク
は、ボンディングに追加する 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
- アノテーションは、3 つのネットワークを要求します。
net1
およびnet2
の 2 つの SR-IOV VF、およびそれらを使用する 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 になっています。
-
- Pod シェルを終了します。
- アップストリームの物理スイッチで 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
インターフェイスがダウンし、net2
インターフェイスがアクティブなインターフェイスになります。クライアントボンド Pod はリンク状態の変更を検出し、バックアップネットワークパスに切り替えます。