第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 がインストールされている。
手順
次の例に示すように、
SriovNetworkPoolConfigCR を作成し、sriov-nw-pool.yamlとして保存します。SriovNetworkPoolConfigCR の例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.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、
SriovNetworkNodePolicyCR を作成し、sriov-node-policy.yamlとして保存します。SriovNetworkNodePolicyCR の例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.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、
SriovNetworkCR を作成し、sriov-network.yamlとして保存します。SriovNetworkCR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- RDMA プラグインを作成します。
次のコマンドを実行して、
SriovNetworkリソースを作成します。oc create -f sriov-network.yaml
$ oc create -f sriov-network.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次の例に示すように、
PodCR を作成し、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.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してテスト Pod にログインします。
oc rsh testpod1 -n sriov-tests
$ oc rsh testpod1 -n sriov-testsCopy 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_requestsCopy to Clipboard Copied! Toggle word wrap Toggle overflow