virtualization:proxmox_ve_6_3_how_to_use_connectx3_sr_iov

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

次のリビジョン
前のリビジョン
virtualization:proxmox_ve_6_3_how_to_use_connectx3_sr_iov [2021-01-14 21:28]
Decomo 作成
virtualization:proxmox_ve_6_3_how_to_use_connectx3_sr_iov [2021-01-18 13:33] (現在)
Decomo [参考サイト]
行 18: 行 18:
  
 <code> <code>
-options mlx4_core port_type_array=2,2 num_vfs=4,0,0 probe_vf=4,0,0+options mlx4_core port_type_array=2,2 num_vfs=4,0,0 probe_vf=0,0,0
 </code> </code>
 +
 +パラメータの意味は下表のとおり。
 +
 +{|
 +! パラメータ
 +! 引数
 +! 説明
 +|-
 +|port_type_array
 +|p1, p2
 +|カードの物理ポートの通信プロトコルを指定する。 \\
 +p1がポート1, p2がポート2を表し、値は1=InfiniBand、2=Ethernetを表す。
 +|-
 +|num_vfs
 +|p1, p2, p1+2
 +|物理ポートごとに生成されるVF数を指定する。 \\
 +p1がポート1, p2がポート2, p1+2が両ポートに属するVFの数を表す。各値の合計はファームウェアのNUM_OF_VFS以下でなければならない。
 +|-
 +|probe_vfs
 +|p1, p2, p1+2
 +|ホストでネットワークデバイスとして検出するVF数を指定する。 \\
 +0以上を指定すると、VFがホスト側にネットワークデバイスとして認識されるようになる。
 +引数の意味と制約条件はnum_vfsと同様。加えて合計値はnum_vfs以下でなければならない。
 +|}
  
 ==== initramfsの更新と確認 ==== ==== initramfsの更新と確認 ====
行 30: 行 54:
 </code> </code>
  
-上手く設定できてればPCIデバイスとしてVFが生えてくる。+上手く設定できてれば、指定数のVFがPCIデバイスとして生えてくる。
  
 {{ :virtualization:pve_connectx3_sriov_vfs.png |}} {{ :virtualization:pve_connectx3_sriov_vfs.png |}}
  
-prove_vfを設定すると、ホスト側でネットワークデバイスとして認識される。物理ポート1に4つのVFを指定してるハズなのに、ens1とens1d1の両方にVFが出来てるのは何故…+prove_vfを設定すると、ホスト側でネットワークデバイスとして認識される。下図はprobe_vf=4,0,0とした時のip linkの結果だが、物理ポート1に4つのVFを指定してるハズなのに、ens1とens1d1の両方にVFが出来てるのは何故…
  
 {{ :virtualization:pve_connectx3_sriov_vf_probes.png |}} {{ :virtualization:pve_connectx3_sriov_vf_probes.png |}}
行 43: 行 67:
 上記の設定でVFが出てこない場合、カードのファームウェアのSR-IOVとVF数の設定を確認する。 上記の設定でVFが出てこない場合、カードのファームウェアのSR-IOVとVF数の設定を確認する。
  
-PVEのホスト側にコンパイラやmst (Mellanoxのツール)を入れる事になるので、環境を汚したくなければ別マシンで確認&設定を行ってもよい。+PVEのホスト側にコンパイラやMFT (Mellanox Firmware Tools)を入れる事になるので、環境を汚したくなければ別マシンで確認&設定を行ってもよい。
  
- +==== ツールチェインのインストール ====
-==== MFTのインストール ====+
  
 MFTのインストールに必要なツールチェイン類を入れる。 MFTのインストールに必要なツールチェイン類を入れる。
行 53: 行 76:
 # apt install gcc make dkms pve-headers-$(uname -r) # apt install gcc make dkms pve-headers-$(uname -r)
 </code> </code>
 +
 +もしかすると、非商用リポジトリを追加しとかないとダメかも?
 +<code>
 +# echo 'deb http://download.proxmox.com/debian/pve buster pve-no-subscription' >> /etc/apt/sources.list
 +</code>
 +
 +==== MFTのインストール ====
  
 [[https://www.mellanox.com/products/adapter-software/firmware-tools|公式サイト]]からMFTのDebian向けパッケージを取ってくる。本記事執筆時は4.16.0-105が最新だった。 [[https://www.mellanox.com/products/adapter-software/firmware-tools|公式サイト]]からMFTのDebian向けパッケージを取ってくる。本記事執筆時は4.16.0-105が最新だった。
行 70: 行 100:
 ==== カードの状態の確認 ==== ==== カードの状態の確認 ====
  
-MFTを使うにはmstを実行しておく必要がある。+MFTを使うにはmstを起動しておく必要がある。
  
 <code> <code>
行 115: 行 145:
  
 カードのSR-IOVが有効になっていなければ有効化する。 カードのSR-IOVが有効になっていなければ有効化する。
 +
 +NUM_OF_VFSには1~127を指定できるようだ。最大値はPCI BARサイズやシステムのリソース量に制限されるので、まぁほどほどに。
  
 <code> <code>
-# mlxconfig -d /dev/mst/mt4103_pciconf0 set SRIOV_EN=1 +# mlxconfig -d /dev/mst/mt4103_pciconf0 set SRIOV_EN=1 NUM_OF_VFS=16
  
 Device #1: Device #1:
行 126: 行 158:
  
 Configurations:                              Next Boot       New Configurations:                              Next Boot       New
-         SRIOV_EN                            False(0)         True(1)         +         SRIOV_EN                            False(0)        True(1) 
 +         NUM_OF_VFS                          8               16            
  
  Apply new Configuration? (y/n) [n] : y  Apply new Configuration? (y/n) [n] : y
行 132: 行 165:
 -I- Please reboot machine to load new configurations. -I- Please reboot machine to load new configurations.
 </code> </code>
- 
-同様にNUM_OF_VFSも適切な値を設定し、マシンを再起動する。 
  
 ===== 参考サイト ===== ===== 参考サイト =====
行 140: 行 171:
   * [[https://community.mellanox.com/s/article/howto-configure-sr-iov-vfs-on-different-connectx-3-ports|HowTo Configure SR-IOV VFs on Different ConnectX-3 Ports]]   * [[https://community.mellanox.com/s/article/howto-configure-sr-iov-vfs-on-different-connectx-3-ports|HowTo Configure SR-IOV VFs on Different ConnectX-3 Ports]]
   * [[https://community.mellanox.com/s/article/howto-set-virtual-network-attributes-on-a-virtual-function--sr-iov-x|HowTo Set Virtual Network Attributes on a Virtual Function (SR-IOV)]]   * [[https://community.mellanox.com/s/article/howto-set-virtual-network-attributes-on-a-virtual-function--sr-iov-x|HowTo Set Virtual Network Attributes on a Virtual Function (SR-IOV)]]
 +  * [[https://docs.mellanox.com/spaces/viewspace.action?key=MLNXOFEDv492240|MLNX_OFED Documentation Rev 4.9-2.2.4.0 LTS - MLNX_OFED v4.9-2.2.4.0 LTS - Mellanox Docs]]
   * [[https://ja-jp.facebook.com/notes/proxmox-ve-%E4%BC%BA%E6%9C%8D%E5%99%A8%E8%99%9B%E6%93%AC%E5%8C%96%E7%AE%A1%E7%90%86%E5%B9%B3%E5%8F%B0-%E4%BD%BF%E7%94%A8%E8%80%85%E7%A4%BE%E5%9C%98/%E6%9C%89%E9%97%9C%E6%96%BC-pve-5-%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%9D-mft-tools-%E4%BB%A5%E5%8F%8A%E9%96%8B%E5%95%9F-mellanox-sr-iov/858765690958660/|有關於 PVE 5 如何安裝 mft tools 以及開啟 Mellanox SR-IOV | Facebook]]   * [[https://ja-jp.facebook.com/notes/proxmox-ve-%E4%BC%BA%E6%9C%8D%E5%99%A8%E8%99%9B%E6%93%AC%E5%8C%96%E7%AE%A1%E7%90%86%E5%B9%B3%E5%8F%B0-%E4%BD%BF%E7%94%A8%E8%80%85%E7%A4%BE%E5%9C%98/%E6%9C%89%E9%97%9C%E6%96%BC-pve-5-%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%9D-mft-tools-%E4%BB%A5%E5%8F%8A%E9%96%8B%E5%95%9F-mellanox-sr-iov/858765690958660/|有關於 PVE 5 如何安裝 mft tools 以及開啟 Mellanox SR-IOV | Facebook]]
 +  * [[https://that.guru/blog/sriov-mellanox-connectx-3/|Configuring SR-IOV for a Mellanox ConnectX-3 NIC | that.guru]]
 +  * [[https://forums.servethehome.com/index.php?threads/how-to-enable-sr-iov-on-connectx-3.24321/|How to enable SR-IOV on Connectx-3 | ServeTheHome Forums]]
 +  * [[https://metonymical.hatenablog.com/entry/2018/04/11/193408|CentOS7でSR-IOV設定 - Metonymical Deflection]]
 +
  • virtualization/proxmox_ve_6_3_how_to_use_connectx3_sr_iov.1610627284.txt.gz
  • 最終更新: 2021-01-14 21:28
  • by Decomo