例: KVM 上のリモート インスタンスvMX SR-IOV の有効化
KVM vMX インターフェイスは、SR-IOV(single-root I/O 仮想化 インターフェイス タイプ)をサポートしています。SR-IOV(仮想化 ルート I/O インターフェイス)により、物理機能を複数の個別の vNI として表示できます。SR-IOV を使用すると、ネットワーク アダプターなどのデバイスで、さまざまなハードウェア機能間でリソースに個別にアクセスできます。SR-IOV をサポートする物理インターフェイスNICを使用している場合、SR-IOV 対応 vNICs または VF(仮想機能)を vMX インスタンスに接続して、パフォーマンスを向上させることができます。
システム要件:
Junos OS 18.4 以降を参照してください。
KVM 用 VMX の SR-IOV では、Intel が提供する次NICドライバーのいずれかを必要とします。
10G ポートおよび ixgbe ドライバーを使用した Intel X520 または X540
10G ポートおよび i40e ドライバーを使用した Intel X710 または XL710
Junos OS リリース 19.1R1-S1 および Junos OS リリース 19.2R1 から、INTEL XL710-QDA2 NIC を使用した 40G ポートを VMX インスタンスでサポートできます。40G ポートを使用する場合vMX速度を自動検出し、2 個の I/O vCPU を割り当てる必要があります。
VMX インスタンスで SR-IOV を有効にするには、次のタスクを完了する必要があります。
システム(/sys NICで SR-IOV を使用するためのデバイスを準備します。
Intel からドライバーをインストールするには、ドライバーをコンパイルし、古いドライバーをアンインストールして、新しくコンパイルされたドライバーをインストールする必要があります。
注:このvMX、Intel-Driver も変更できます。Intel のネイティブ ドライバーを使用するか、または変更されたvMX使用できます。
vmx.confファイルの準備
ネイティブ Junos CLIを設定するには、この機能を使用します。
SR-IOV を有効にするための BIOS 要件- Intel VT-d または SR IOMMU がシステムの BIOS 設定で有効になっているか確認します。
PCI アドレスとカーネル名を識別するための手順NIC
Intel から最新のドライバー ソフトウェアをダウンロードしてインストールする
Intel から最新のドライバー ソフトウェアをダウンロードし、Ubuntu が提供する既存のドライバー ソフトウェアを交換できます。
この例では 、PCIe* Intel® ネットワーク アダプター ドライバーからソフトウェアをダウンロードします。 Intel® 10 ギガビット イーサネット ネットワーク接続 Linux の下で、任意のディレクトリに保存し、README の指示に従って次に進みます。
Intel からドライバー ソフトウェアをインストールするには、次の手順にアクセスします。
システム モードNIC SR-IOV を使用する準備
この値を設定することで、各専用サーバー NIC、特定のデバイスに SR-IOV を使用する VF の数を設定して、ホストに sriov_numvfs 通知するNIC。この vmx.sh スクリプトには、共有アプリケーションを使用する VF の数に関する情報NIC。したがって、必要に応じて設定する sriov_numvfs 必要があります。
この値は、再起動後に永続的にするブート オプションとして設定できます。また、再起動後も永続的ではない、その時点で変更できます。
この例で提供された手順は、/sys を使用して構成するための一時的なソリューションです。 sriov_numvfs /sys/class/net/ interface-name /device/ に対する Any 設定は永続的ではであるため、設定は再起動しても動作しません。 sriov_numvfs
SR-IOV NICする準備をするには、次の手順に従います。
# echo num_of_vf > /sys/class/net/interface-name/device/sriov_numvfs
下のコマンドでは、4 つの VFS で SR-IOV にNIC ens8f1 を使用できます。必要なオプションは、 オプションとしてsududを使用するか、rootユーザーとしてログインする必要があります。
As sudo user:
root@ubuntu2:~# echo 4 | sudo tee -a /sys/class/net/ens8f1/device/sriov_numvfs
As root user
root@ubuntu2:~# echo 4 > /sys/class/net/ens8f1/device/sriov_numvfs
この sriov_numvfs
オプションは値 0~n のみを受け入れ、n は SR-IOV によってサポートされる VF の最大数です。
起動時に SR-IOV を設定
次の手順は、設定がホストの再起動を継続する SR-IOV を設定するための代替方法を提供します。
以下のオプションを使用して、ホストのブート プロセス中に値を設定できます。
rc.local の使用
modprobe オプションの設定
grub を使用した kernel-parager の設定
次の例は、grub kernel コマンドを使用して値を設定 sriov_numvfs する方法を示しています。
hugebuntu の詳細については、「 Ubuntu ホストをインストールするためのUbuntu ホストの準備 」を参照vMX。
ファイルを編集 "/etc/default/grub":
lab@ubuntu2:~$ cat /etc/default/grub | grep -i cmd
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on"
GRUB_CMDLINE_LINUX="isolcpus=34-41,48-55 default_hugepagesz=1G
hugepagesz=1G hugepages=120 ixgbe.max_vfs=8"
編集後に、以下の情報を更新します。
sudo update-grub
次の再起動時にアクティブな変更を行う新しいブート ローダーを作成します。
sudo grub-install /dev/sda
設定をアクティブにするためにホストを再起動します。
sudo reboot
検証sriov_numvfs設定
目的
この機能を sriov_numvfs 使用して設定を検証CLI。この例では、SR-IOV NIC使用するために必要なインターフェイスは、PCI アドレス 85:00.0 で ens8f1 です。出力の「仮想機能」に注意してください。
アクション
lab@ubuntu2:~$ lspci | grep 85
85:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) 85:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) 85:10.0 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) 85:10.1 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) 85:10.2 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) 85:10.3 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) 85:10.4 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) 85:10.5 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) 85:10.6 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) 85:10.7 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) 85:11.0 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) 85:11.1 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) 85:11.2 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) 85:11.3 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) 85:11.4 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) 85:11.5 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) 85:11.6 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) 85:11.7 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01)
また /sys/class/net/ens8f1/device/sriov_numvfs
、 の各機能に必要なsriov_numvfs。
lab@ubuntu2:~$ cat /sys/class/net/ens8f1/device/sriov_numvfs
8
テストの場合、sriov_numvfsに直接書き込み、すぐに変更できます /sys/class/net/interface-name/device/sriov_numvfs
。
サービスの数のsriov_numvfs
事前に sriov_numvfs を作成することをお勧めします(例: 起動時に grub コマンドを使用)。SR-IOV で特定の NIC を使用する 1 つめの vMX インスタンスを導入した後、VF の番号を変更は許可されません。VFの番号を変更する必要がある場合は、実行を停止する必要vMX。後でサービス番号を変更sriov_numvfsするには、sriov_numvfsより高い値に設定sriov_numvfs推奨します。
VFの設定済み値を変更するには、まず値を0に変更してから、必要な整数値に変更する必要があります。
VF が割り当てられていない場合、VF の数を任意の有効な値(0 ~ n、n は SR-IOV によってサポートされる VF の最大数)に変更できます。
以下の手順を実行して、VF 数を変更する必要があります。
共有 SR-IOV デバイスの使用による VFS の実行をNIC。
仮想ファンクタ(VF)の数を 0 に設定して、SR-IOV ネットワーク アダプターを無効にします。
As root:
root@ubuntu2:~# echo 0 > /sys/class/net/ens8f1/device/sriov_numvfs
As sudo:
lab@ubuntu2:~$ echo 0 | sudo tee -a /sys/class/net/ens8f1/device/sriov_numvfs
必要な VF 数を変更します(この例では 6 個を使用しています)
root@ubuntu2:~# echo 6 > /sys/class/net/ens8f1/device/sriov_numvfs
注:次のエラー メッセージが表示された場合は、ステップ 3 を実行する前に、ステップ 2 の説明に従って値をゼロに設定します。
root@ubuntu2:~# echo 6 > /sys/class/net/ens8f1/device/sriov_numvfs bash: echo: write error: Device or resource busy
次のコマンドを使用して、設定を検証します。
root@ubuntu2:~# cat /sys/class/net/ens8f1/device/sriov_numvfs
デバイスを再起動する前vMX、SR-IOV を使用するために vmx.conf ファイルを導入してください。
VMX設定ファイル(vmx.conf)パラメーターの更新
設定ファイルの設定にvMXパラメーターは、起動時の設定ファイルで定義されています。設定ファイルは YAML 形式です。デフォルトのファイルは config/vmx.conf です。設定ファイルを異なるインスタンスの別の名前に保存できます。
SR-IOVデバイス タイプのインターフェイスを設定するには、インターフェイス、デバイス 名、インターフェイスNICを指定MAC アドレス。 表 1 は 、vmx.conf ファイルの変更に使用する設定パラメーターの詳細を示しています。
コンポーネント |
VM パラメータ |
説明 |
---|---|---|
vPFE |
|
SR-IOV を使用するすべてのインターフェイスに使用するか、SR-IOV ベースのインターフェイスと非 SR-IOV ベースのインターフェイスを混在可能に |
|
ホストの Intel ixgbe ドライバーの使用を許可する設定(ダウンロードされ、上記の手順 |
|
インターフェイス |
|
type が に設定 |
|
|
|
|
使用するインターフェイスのカーネル名。 |
|
|
この例 |
|
|
共有デバイスを使用する各 VF インスタンスNICまたは異なるデバイスを使用MAC アドレス。 |
vmx.confファイルの例:
lab@ubuntu2:~/vmx/config$ cat vmx.conf.sriov
############################################################## # # vmx.conf # Config file for vmx on the hypervisor. # Uses YAML syntax. # Leave a space after ":" to specify the parameter value. # ############################################################## --- #Configuration on the host side - management interface, VM images etc. HOST: identifier : vmx1 # Maximum 6 characters host-management-interface : ens4f0 routing-engine-image : "/home/lab/vmx/images/junos-vmx-x86-64-18.1R3-S2.5.qcow2" routing-engine-hdd : "/home/lab/vmx/images/vmxhdd.img" forwarding-engine-image : "/home/lab/vmx/images/vFPC-20181023.img" --- #External bridge configuration BRIDGES: - type : external name : br-ext # Max 10 characters --- #vRE VM parameters CONTROL_PLANE: vcpus : 1 memory-mb : 1024 console_port: 8601 interfaces : - type : static ipaddr : 10.102.144.94 macaddr : "0A:00:DD:C0:DE:0E" --- #vPFE VM parameters FORWARDING_PLANE: memory-mb : 8192 vcpus : 4 console_port: 8602 device-type : mixed <<<< sriov or mixed use_native_drivers : true <<<< use drivers as provided by the host interfaces : - type : static ipaddr : 10.102.144.98 macaddr : "0A:00:DD:C0:DE:10" --- #Interfaces JUNOS_DEVICES: - interface : ge-0/0/0 type : virtio <<< required mac-address : "02:06:0A:0E:FF:F0" description : "ge-0/0/0 interface" - interface : ge-0/0/1 type : sriov <<< required mtu : 9192 <<< required port-speed-mbps : 10000 <<< required nic : ens8f1 <<< required virtual-function : 0 <<< use consecutive / unique numbers for each vMX instance mac-address : "02:06:0A:0E:FF:F1" <<< make sure that each vNF is using a DIFFERENT MAC-address description : "ge-0/0/1 interface"
vmx インストールを開始
lab@ubuntu2:~/vmx$ sudo ./vmx.sh --install --cfg ./config/vmx.conf.sriov
Intel ixgbe Driverを使用するために必要な変更
既存の導入環境を変更済み IXGBE ドライバーから変更されていない IXGBE ドライバーに移動するには、Junos CLI で編集モードに切り替え、次のコマンドを使用して「ネイティブ」ドライバーを使用します。
user@host# set interfaces vlan-offload
詳細については、 変更および未変更 のIXGBEドライバー を参照してください。