NSX Advanced Load Balancer バージョン 22.1.1 以降では、ホストで使用可能な物理インターフェイスから作成された virtio-net データ NIC と macvtap インターフェイス(ブリッジ モード)の DPDK サポートを備えた Linux KVM のインストールがサポートされています。この macvtap インターフェイスは、ゲスト仮想マシン内のインターフェイスとして使用されます。
macvtp インターフェイスの詳細については、MacVTapを参照してください。
前提条件
ハードウェア
CPU が KVM を実行するためのハードウェア仮想化をサポートしていることを確認します。ハードウェア仮想化をサポートするプロセッサが必要です。Intel と AMD の両方がプロセッサ用の拡張機能を開発しており、それぞれ Intel VT-x および AMD-V と見なされています。プロセッサがこれらのいずれかをサポートしているかどうかを確認するには、次のコマンドを使用して出力を確認します。
egrep -c '(vmx|svm)' /proc/cpuinfo
値が 0 の場合は、CPU がハードウェア仮想化をサポートしていないことを意味します。
値が 1 以上の場合は、CPU がハードウェア仮想化をサポートしていることを意味します。ただし、BIOS で仮想化が有効になっていることを確認する必要があります。
ソフトウェアのインストール
Ubuntu ディストリビューション
KVM のインストールと必要なパッケージのインストールの詳細については、KVM/Installationを参照してください。
RHEL/CentOS ディストリビューション
既存の Red Hat Enterprise Linux システムへの KVM パッケージのインストールおよび必要なパッケージのインストールの詳細については、Installing KVM with a new Red Hat Enterprise Linux installationを参照してください。
ソフトウェア [テスト済みおよび認定済み]
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)
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)
サービス エンジンおよびコントローラ仮想マシンのインストール
前提条件:NSX Advanced Load Balancerse.qcow2 および controller.qcow2 イメージをホスト マシンの /var/lib/libvirt/images/ ディレクトリにコピーしていることを確認します。se.qcow2 イメージは、次の「サービス エンジンの展開」セクションで説明するように、起動するとコントローラ ユーザー インターフェイスから取得できます。
スクリプトの実行:コントローラおよび SE 仮想マシンのインストール用に、ホスト マシン上の kvm-dpdk-virt-install.sh に記載されているインストール スクリプトを実行します。
注:SE 仮想マシンを作成する前に、コントローラ仮想マシンを作成する必要があります。
コントローラの展開
コントローラ仮想マシンを展開するための Create AVI Controller VM
オプションを選択し、上記のインストール スクリプトをホスト マシンで実行します。
コントローラ仮想マシンの作成時にスクリプトのインストールに使用される変数の推奨事項は次のとおりです。
NSX Advanced Load Balancer Controller 管理 IP アドレス
NSX Advanced Load Balancer Controller 管理 IP アドレス マスク
NSX Advanced Load Balancer Controller デフォルト ゲートウェイ
これらの変数の値は、ホスト管理インターフェイスの構成から取得されます。
- コントローラの初期設定
-
次に、初期設定を実行するためのコントローラ IP アドレスに移動するための手順を示します。
管理者パスワードを構成します。
DNS 情報を設定します。
[Orchestrator なし] を選択します。
サービス エンジンの展開
コントローラ仮想マシンの起動後、サービス エンジンをインストールするための SE イメージをアップロードする手順は次のとおりです。
コントローラで、
の順に移動します。[デフォルト クラウド] 行のダウンロード アイコンをクリックし、Qcow2 を選択します。
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 仮想マシンのインストール出力例
ホスト上
ホスト管理インターフェイス(管理 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
ホストの物理インターフェイス(データ 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
ホストに表示される 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
インストール後スクリプトを実行する SE 仮想マシン上
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
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
ホストの再起動後
再起動のたびに実行する手順は次のとおりです。
再起動すると、すべての仮想マシンは自動的に STOP 状態になります。
すべての仮想マシン名は、virsh リスト出力を使用して確認できます。
virsh start <VM-name>
コマンドを使用して、すべての仮想マシンを起動します。
コントローラとサービス エンジンの破棄
仮想マシンとそれに対応するイメージは、上記のスクリプトを使用してクリアできます。
注:仮想マシンの作成の過程で、ホストのディスク容量が枯渇しそうに見える場合は、/var/lib/libvirt/images/ で N 個の qcow2s が使用されことが原因として考えられます。上記のセクションに従って、それぞれの仮想マシンを削除して、未使用の仮想マシンをすべてクリアします。
SE 仮想マシンを破棄した後は、必ず、コントローラの GUI に残っている古いサービス エンジン エントリを手動でクリーンアップ(強制削除)してください。