第5章 SR-IOV 用の RDMA サブシステムの設定
Remote Direct Memory Access (RDMA) を使用すると、2 つのシステム間で、どちらのシステムのオペレーティングシステムも介さずに直接メモリーにアクセスできます。Single Root I/O Virtualization (SR-IOV) で RDMA Container Network Interface (CNI) を設定すると、コンテナー間の高性能で低遅延の通信が可能になります。RDMA と SR-IOV を組み合わせると、Data Plane Development Kit (DPDK) アプリケーション内で使用するために Mellanox Ethernet デバイスのハードウェアカウンターを公開するメカニズムが提供されます。
5.1. SR-IOV RDMA CNI の設定 リンクのコピーリンクがクリップボードにコピーされました!
SR-IOV 上で RDMA CNI を設定します。
この手順は Mellanox デバイスにのみ適用されます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。 - SR-IOV Network Operator がインストールされている。
手順
次の例に示すように、
SriovNetworkPoolConfig
CR を作成し、sriov-nw-pool.yaml
として保存します。SriovNetworkPoolConfig
CR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- RDMA ネットワーク namespace モードを
exclusive
に設定します。
次のコマンドを実行して、
SriovNetworkPoolConfig
リソースを作成します。oc create -f sriov-nw-pool.yaml
$ oc create -f sriov-nw-pool.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、
SriovNetworkNodePolicy
CR を作成し、sriov-node-policy.yaml
として保存します。SriovNetworkNodePolicy
CR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- RDMA モードをアクティブ化します。
次のコマンドを実行して、
SriovNetworkNodePolicy
リソースを作成します。oc create -f sriov-node-policy.yaml
$ oc create -f sriov-node-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、
SriovNetwork
CR を作成し、sriov-network.yaml
として保存します。SriovNetwork
CR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- RDMA プラグインを作成します。
次のコマンドを実行して、
SriovNetwork
リソースを作成します。oc create -f sriov-network.yaml
$ oc create -f sriov-network.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次の例に示すように、
Pod
CR を作成し、sriov-test-pod.yaml
として保存します。ランタイム設定の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してテスト Pod を作成します。
oc create -f sriov-test-pod.yaml
$ oc create -f sriov-test-pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してテスト Pod にログインします。
oc rsh testpod1 -n sriov-tests
$ oc rsh testpod1 -n sriov-tests
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
hw-counters
ディレクトリーへのパスが存在することを確認します。ls /sys/bus/pci/devices/${PCIDEVICE_OPENSHIFT_IO_SRIOV_NIC_PF1}/infiniband/*/ports/1/hw_counters/
$ ls /sys/bus/pci/devices/${PCIDEVICE_OPENSHIFT_IO_SRIOV_NIC_PF1}/infiniband/*/ports/1/hw_counters/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
duplicate_request out_of_buffer req_cqe_flush_error resp_cqe_flush_error roce_adp_retrans roce_slow_restart_trans implied_nak_seq_err out_of_sequence req_remote_access_errors resp_local_length_error roce_adp_retrans_to rx_atomic_requests lifespan packet_seq_err req_remote_invalid_request resp_remote_access_errors roce_slow_restart rx_read_requests local_ack_timeout_err req_cqe_error resp_cqe_error rnr_nak_retry_err roce_slow_restart_cnps rx_write_requests
duplicate_request out_of_buffer req_cqe_flush_error resp_cqe_flush_error roce_adp_retrans roce_slow_restart_trans implied_nak_seq_err out_of_sequence req_remote_access_errors resp_local_length_error roce_adp_retrans_to rx_atomic_requests lifespan packet_seq_err req_remote_invalid_request resp_remote_access_errors roce_slow_restart rx_read_requests local_ack_timeout_err req_cqe_error resp_cqe_error rnr_nak_retry_err roce_slow_restart_cnps rx_write_requests
Copy to Clipboard Copied! Toggle word wrap Toggle overflow