web-dev-qa-db-ja.com

KVM仮想ネットワーク用のSR-IOV I350組み込みスイッチの使用-外部スイッチは必要ですか?

複数のKVM VMを1Gビットの物理ネットワークにルーティングされている仮想ネットワークに接続しています。ルーターはnetfilter/iptablesを使用して、実ネットワークと仮想ネットワーク間のトラフィックをフィルタリングします。仮想ネットワークスイッチの場合私はSR-IOVをPCIパススルーで使用しています。この設定では、Linuxブリッジを使用する場合と比較して、低いCPUオーバーヘッドでより高いスループット(PCIe帯域幅によって制限されます)が可能になります(参照:pp 22-23の Takiaki MakitaのプレゼンテーションLinuxCon Japan、2014

Intel I350の同じポートの1つのVFを割り当てましたNICそれぞれにVMおよびKVMホストに。(各I350ポートには最大7つのVFがあるため、6つのVM +ホストがこの仮想ネットワークの最大サイズです)このセットアップは、厄介な癖を除いて期待どおりに機能しています。物理ポートと、物理パッチスイッチを備えた物理外部スイッチ(他のすべてのポートが空になっている) CARRIER」と仮想ネットワークはパケットを渡しなくなりました。

I350の組み込みスイッチを機能させる方法を物理ポートのアクティブリンクなしで知っている人はいますか?

VMホストはDebian 10(バスター)を実行します(問題がある場合)。

あなたが当てることができる光をありがとう!

その他のメモ:

  • Smartronix SuperLooper のようなループバックプラグは、外部スイッチよりも扱いにくく、mightで動作します。ただし、製造元によると、「ニアエンドクロストーク(NEXT)機能を無効にできるシステムのテストのみを目的としている」とのことで、I350データシートにはそのような機能については記載されていません。

  • I350データシート のセクション3.7.6では、サポートされている4つの異なる内部ループバックモードについて説明しています。 (同じ内部ループバック機能が I21 にもあり、他のIntelチップも同様です)。ただし、Linuxツールを使用してI350/I210/etcを構成し、内部ループバック。また、内部ループバックモードの1つをアクティブにすると、I350の組み込みスイッチもアクティブになるかどうかも不明です...?

アップデート:

  • @Tomekのおかげで、私は試しました

    # ip link set dev eth1 vf 0 state enable
    RTNETLINK answers: Operation not supported
    

    ip link set dev eth1 vf 0 trust onは機能するため、構文は正しく、ドライバーは機能しています。 igbドライバーまたはI350ハードウェアがvfリンク状態をenableに設定できないかどうか知りました。 i40e_main.c (たとえば)を見ると、struct net_device_ops i40e_netdev_opsには

    .ndo_set_vf_link_state  = i40e_ndo_set_vf_link_state,
    .ndo_set_vf_spoofchk    = i40e_ndo_set_vf_spoofchk,
    .ndo_set_vf_trust       = i40e_ndo_set_vf_trust,
    

    一方 igb_main.cstruct net_device_ops igb_netdev_opでは

    .ndo_set_vf_spoofchk    = igb_ndo_set_vf_spoofchk,
    .ndo_set_vf_trust       = igb_ndo_set_vf_trust,
    

    .ndo_set_vf_link_stateがありません。したがって、igbはVFリンク状態を有効に設定することをサポートしていないようです。 I350ハードウェアがこの機能をサポートできるかどうかは、別の問題です。組み込みスイッチを有効にするこの標準的な方法は、I350では機能しないようです。多分別の方法がありますか?

  • I350データシート は、いくつかの落胆するステートメントを作成します。

    7.8.3.1パケット交換(VMDq)モデル:VMDqの想定

    1. リンクがダウンすると、Txフローが停止するため、ローカルスイッチングトラフィックも停止します。

    そして

    7.3.3.5 TXパケットスイッチング

    ループバックトラフィックには次のルールが適用されます。

    • ネットワークリンクが切断されると、ループバックは無効になります。

    ところが Intel 710データシート の読み取り方はまったく異なります。

    表1-7。内部スイッチング機能

    内部スイッチングは、LANポートの状態とは無関係に動作します(LANポートがダウンしている場合も同様)。

    それは私の質問への答えのようにますます見えています:はい、I350はVM-VMトラフィックを切り替えるために接続された外部スイッチを必要とします。私は誰かが私を間違っていることを証明してくれるのが大好きです!

7
fmyhr

これがI350で機能するかどうかはわかりませんが、NIC=答えはip-linkのmanページにあると思います。

vf NUM specify a Virtual Function device to be configured. The associated PF device
must be specified using the dev parameter.
[--cut--]
    state auto|enable|disable - set the virtual link state as seen by
    the specified VF. Setting to auto means a reflection of the PF link state,
    enable lets the VF to communicate with other VFs on this Host even
    if the PF link state is down, disable causes the HW to drop any packets
    sent by the VF.

VF stateenableに設定すると、リンク状態に関係なくすべてのVFが強制的に起動され、ケーブルがなくてもVFを切り替えることができます。

5
Tomek