NSX Advanced Load Balancer バージョン 22.1.1 以降では、ホストで使用可能な物理インターフェイスから作成された virtio-net データ NIC と macvtap インターフェイス(ブリッジ モード)の DPDK サポートを備えた Linux KVM のインストールがサポートされています。この macvtap インターフェイスは、ゲスト仮想マシン内のインターフェイスとして使用されます。

macvtp インターフェイスの詳細については、MacVTapを参照してください。

前提条件

  1. ハードウェア

    CPU が KVM を実行するためのハードウェア仮想化をサポートしていることを確認します。ハードウェア仮想化をサポートするプロセッサが必要です。Intel と AMD の両方がプロセッサ用の拡張機能を開発しており、それぞれ Intel VT-x および AMD-V と見なされています。プロセッサがこれらのいずれかをサポートしているかどうかを確認するには、次のコマンドを使用して出力を確認します。egrep -c '(vmx|svm)' /proc/cpuinfo

    1. 値が 0 の場合は、CPU がハードウェア仮想化をサポートしていないことを意味します。

    2. 値が 1 以上の場合は、CPU がハードウェア仮想化をサポートしていることを意味します。ただし、BIOS で仮想化が有効になっていることを確認する必要があります。

  2. ソフトウェアのインストール

    1. Ubuntu ディストリビューション

      KVM のインストールと必要なパッケージのインストールの詳細については、KVM/Installationを参照してください。

    2. RHEL/CentOS ディストリビューション

      既存の Red Hat Enterprise Linux システムへの KVM パッケージのインストールおよび必要なパッケージのインストールの詳細については、Installing KVM with a new Red Hat Enterprise Linux installationを参照してください。

  3. ソフトウェア [テスト済みおよび認定済み]

    1. Ubuntu ディストリビューション

      Ubuntu ID

      バージョン

      DISTRIB_ID

      Ubuntu

      DISTRIB_RELEASE

      18.04

      DISTRIB_CODENAME

      Bionic

      DISTRIB_DESCRIPTION

      Ubuntu 18.04 LTS

      DISTRIB_ID

      Ubuntu

      OS カーネル バージョン

      4.15.0-20-generic

      libvirt-bin

      libvirtd (libvirt) 4.0.0

      qemu-kvm

      QEMU エミュレータ バージョン 2.11.1

      genisomage

      genisoimage 1.1.11 (Linux)

    2. RHEL/CentOS ディストリビューション

      RHEL/CentOS ID

      バージョン

      CentOS Linux リリース

      7.9 (Maipo)

      OS カーネル バージョン

      5.4.17-2136.305.5.4.el7uek.x86_64

      libvirt-bin

      libvirtd (libvirt) 4.5.0

      qemu-kvm

      QEMU エミュレータ バージョン 2.0.0

      genisomage

      genisoimage 1.1.11 (Linux)

サービス エンジンおよびコントローラ仮想マシンのインストール

  1. 前提条件:NSX Advanced Load Balancerse.qcow2 および controller.qcow2 イメージをホスト マシンの /var/lib/libvirt/images/ ディレクトリにコピーしていることを確認します。se.qcow2 イメージは、次の「サービス エンジンの展開」セクションで説明するように、起動するとコントローラ ユーザー インターフェイスから取得できます。

  2. スクリプトの実行:コントローラおよび SE 仮想マシンのインストール用に、ホスト マシン上の kvm-dpdk-virt-install.sh に記載されているインストール スクリプトを実行します。

    注:

    SE 仮想マシンを作成する前に、コントローラ仮想マシンを作成する必要があります。

コントローラの展開

コントローラ仮想マシンを展開するための Create AVI Controller VM オプションを選択し、上記のインストール スクリプトをホスト マシンで実行します。

コントローラ仮想マシンの作成時にスクリプトのインストールに使用される変数の推奨事項は次のとおりです。

  1. NSX Advanced Load Balancer Controller 管理 IP アドレス

  2. NSX Advanced Load Balancer Controller 管理 IP アドレス マスク

  3. NSX Advanced Load Balancer Controller デフォルト ゲートウェイ

これらの変数の値は、ホスト管理インターフェイスの構成から取得されます。

コントローラの初期設定

次に、初期設定を実行するためのコントローラ IP アドレスに移動するための手順を示します。

  • 管理者パスワードを構成します。

  • DNS 情報を設定します。

  • [Orchestrator なし] を選択します。

サービス エンジンの展開

コントローラ仮想マシンの起動後、サービス エンジンをインストールするための SE イメージをアップロードする手順は次のとおりです。

  1. コントローラで、[インフラストラクチャ] > [クラウド] の順に移動します。

  2. [デフォルト クラウド] 行のダウンロード アイコンをクリックし、Qcow2 を選択します。

  3. se.qcow2 をホスト マシンの /var/lib/libvirt/images/ ディレクトリにアップロードします。

SE 仮想マシンを展開するための Create AVI SE VM オプションを選択し、上記のインストール スクリプトをホスト マシンで実行します。

サービス エンジン仮想マシンの作成時にスクリプトのインストールに使用される変数の推奨事項は次のとおりです。

  • NSX Advanced Load Balancer SE 管理 IP

  • NSX Advanced Load Balancer Controller 管理 IP アドレス マスク

  • NSX Advanced Load Balancer SE のデフォルト ゲートウェイ

これらの変数の値は、ホスト管理インターフェイスの構成から取得されます。

注:

SE 仮想の作成では、最高のスループット パフォーマンスを得るには、macvtap インターフェイスごとに 4 つのキュー構成、4 つ以上の仮想 CPU 構成が推奨されます。

ボンディング インターフェイス シーケンスは次のように指定できます。

Bond-ifs シーケンス

1,2 3,4.インターフェイス 1、2 が結合中で、インターフェイス 3、4 が結合中であることを意味します(1、2 と 3、4 の間のスペースに注意してください)。

Bond-if シーケンス

1,2,3,4.インターフェイス 1、2、3、4 が結合中であることを意味します。

コントローラ ユーザー インターフェイスで [インフラストラクチャ] > [ダッシュボード] に移動して、コントローラに接続する SE を確認します(数分かかることがあります)。

SE 仮想マシンのインストール出力例

  1. ホスト上

    1. ホスト管理インターフェイス(管理 macvtap インターフェイスの作成元)。

        eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 0c:c4:7a:b4:15:b4 brd ff:ff:ff:ff:ff:ff
        inet 10.217.144.19/22 brd 10.217.147.255 scope global eno1 
    2. ホストの物理インターフェイス(データ macvtap インターフェイスの作成元)。

      ens1f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
      link/ether 0c:c4:7a:bb:96:ea brd ff:ff:ff:ff:ff:ff
      inet 100.64.50.56/24 brd 100.64.50.255 scope global dynamic ens1f0
      ens1f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
      link/ether 0c:c4:7a:bb:96:eb brd ff:ff:ff:ff:ff:ff
      inet 100.64.67.55/24 brd 100.64.67.255 scope global dynamic ens1f1 
    3. ホストに表示される macvtap インターフェイス(インストール後のスクリプトの実行)。

        macvtap0@eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 500
        link/ether 52:54:00:f4:ed:9f brd ff:ff:ff:ff:ff:ff
        macvtap1@ens1f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 500
        link/ether 52:54:00:4f:3a:2d brd ff:ff:ff:ff:ff:ff
        macvtap2@ens1f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 500
        link/ether 52:54:00:68:38:ef brd ff:ff:ff:ff:ff:ff
  2. インストール後スクリプトを実行する SE 仮想マシン上

    1. SE 管理インターフェイス

        eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 52:54:00:f4:ed:9f brd ff:ff:ff:ff:ff:ff
        inet 10.217.144.251/22 brd 10.217.147.255 scope global eth0 
    2. SE データ NIC インターフェイス(IP アドレス割り当て後のネームスペースに表示)

      root@Avi-Service-Engine:/home/admin# ip netns exec avi_ns1 bash
      avi_eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
      link/ether 52:54:00:68:38:ef brd ff:ff:ff:ff:ff:ff
      inet 100.64.67.22/24 brd 100.64.67.255 scope global dynamic avi_eth2
      avi_eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
      link/ether 52:54:00:4f:3a:2d brd ff:ff:ff:ff:ff:ff
      inet 100.64.50.41/24 brd 100.64.50.255 scope global dynamic avi_eth0
  3. ホストの再起動後

    再起動のたびに実行する手順は次のとおりです。

    1. 再起動すると、すべての仮想マシンは自動的に STOP 状態になります。

    2. すべての仮想マシン名は、virsh リスト出力を使用して確認できます。

    3. virsh start <VM-name> コマンドを使用して、すべての仮想マシンを起動します。

  4. コントローラとサービス エンジンの破棄

    仮想マシンとそれに対応するイメージは、上記のスクリプトを使用してクリアできます。

    注:
    1. 仮想マシンの作成の過程で、ホストのディスク容量が枯渇しそうに見える場合は、/var/lib/libvirt/images/ で N 個の qcow2s が使用されことが原因として考えられます。上記のセクションに従って、それぞれの仮想マシンを削除して、未使用の仮想マシンをすべてクリアします。

    2. SE 仮想マシンを破棄した後は、必ず、コントローラの GUI に残っている古いサービス エンジン エントリを手動でクリーンアップ(強制削除)してください。