8.7. Mellanox NIC を使用した RDMA モードでの Virtual Function の使用
RoCE (RDMA over Converged Ethernet) はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
RoCE (RDMA over Converged Ethernet) は、OpenShift Container Platform で RDMA を使用する場合に唯一サポートされているモードです。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 - SR-IOV Network Operator がインストールされている。
-
cluster-admin
権限を持つユーザーとしてログインしている。
手順
以下の
SriovNetworkNodePolicy
オブジェクトを作成してから、YAML をmlx-rdma-node-policy.yaml
ファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記SriovNetworkNodePolicy
の各オプションに関する詳細は、Configuring SR-IOV network devices
セクションを参照してください。SriovNetworkNodePolicy
オブジェクトで指定された設定を適用する際に、SR-IOV Operator はノードをドレイン (解放) する可能性があり、場合によってはノードの再起動を行う場合があります。設定の変更が適用されるまでに数分の時間がかかる場合があります。エビクトされたワークロードを処理するために、クラスター内に利用可能なノードが十分にあることを前もって確認します。設定の更新が適用された後に、
openshift-sriov-network-operator
namespace のすべての Pod がRunning
ステータスに変更されます。以下のコマンドを実行して
SriovNetworkNodePolicy
オブジェクトを作成します。oc create -f mlx-rdma-node-policy.yaml
$ oc create -f mlx-rdma-node-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の
SriovNetwork
オブジェクトを作成してから、YAML をmlx-rdma-network.yaml
ファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- IPAM CNI プラグインの設定オブジェクトを YAML ブロックスケーラーとして指定します。プラグインは、アタッチメント定義への IP アドレスの割り当てを管理します。
注記SriovNetwork
の各オプションに関する詳細は、「SR-IOV の追加ネットワークの設定」セクションを参照してください。オプションのライブラリー app-netutil は、コンテナーの親 Pod に関するネットワーク情報を収集するための複数の API メソッドを提供します。
以下のコマンドを実行して
SriovNetworkNodePolicy
オブジェクトを作成します。oc create -f mlx-rdma-network.yaml
$ oc create -f mlx-rdma-network.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の
Pod
仕様を作成してから、YAML をmlx-rdma-pod.yaml
ファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
SriovNetwork
オブジェクトのmlx-rdma-network
が作成される同じtarget_namespace
を指定します。Pod を異なる namespace に作成する場合は、target_namespace
をPod
仕様およびSriovNetwork
オブジェクトの両方で変更します。- 2
- アプリケーションとアプリケーションが使用する RDMA ライブラリーが含まれる RDMA イメージを指定します。
- 3
- hugepage の割り当て、システムリソースの割り当て、およびネットワークインターフェイスアクセス用のコンテナー内のアプリケーションに必要な追加機能を指定します。
- 4
- hugepage ボリュームを
/mnt/huge
の下の RDMA Pod にマウントします。hugepage ボリュームは、メディアがHugepages
に指定されている emptyDir ボリュームタイプでサポートされます。 - 5
- CPU の数を指定します。RDMA Pod には通常、kubelet から排他的 CPU を割り当てる必要があります。これは、CPU マネージャーポリシーを
static
に設定し、Guaranteed
QoS を持つ Pod を作成して実行されます。 - 6
- hugepage サイズ
hugepages-1Gi
またはhugepages-2Mi
を指定し、RDMA Pod に割り当てられる hugepage の量を指定します。2Mi
および1Gi
hugepage を別々に設定します。1Gi
hugepage を設定するには、カーネル引数をノードに追加する必要があります。
以下のコマンドを実行して RDMA Pod を作成します。
oc create -f mlx-rdma-pod.yaml
$ oc create -f mlx-rdma-pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow