Mellanox Vxlan offload Performance on linux
-
Upload
yuki-kitajima -
Category
Technology
-
view
868 -
download
10
description
Transcript of Mellanox Vxlan offload Performance on linux
Mellanox VXLAN offload
for RHEL7
株式会社アルティマ
Nov, 2014
本資料に含まれる測定データは一例であり、測定構成や条件によって変わることがあります。
また、本資料はMellanox Technologies社の公式見解を表すものではありません。
The results in this documents may differ for the configurations or/and conditions.
This documents does not reflect the official views of Mellanox Technologies.
アルティマ社のご紹介
2
Mellanox社の国内一次代理店
サーバ、ストレージ、ネットワーク等、システム商材を扱うディストリビューター
保守/構築/技術サポートをご提供
マクニカのグループカンパニー
本資料に関するお問い合わせはこちらまで
株式会社アルティマ
プロダクトセールス2部
メラノックス製品担当
目的
Linux OpenvSwitch(以下OVS)のスループット性能の確認
メラノックス社製 10/40/56GbE対応のNICカードでサポートしているVXLAN offload機能を使用した際のOVSの性能評価
確認項目
設定手順
Linux OVS(Open vSwitch)のVXLAN性能評価
Case1 : Performance VM to VM
Case2 : VM to VM VXLAN offload なし
Case3 : VM to VM VXLAN offload あり
3
ConnectX-3 Pro EN 10/40/56GbE adapter cards
詳細:http://www.mellanox.com/page/products_dyn?product_family=162
Requirement
Mellanox ConnectX-3 Pro
Operating system and kernel options:
upstream Linux 3.14 or later
RHEL7 beta snapshot 10 (kernel 3.10.0-105.el7) or later
Ubuntu 14.04 (kernel 3.13.0-24-generic) or later
openvswitch 2.0 or later
KVM Hypervisor using para-virtual NIC (e.g. virtio with
vhost backend on the hypervisor)
MLNX_OFED (2.2 or later) installation is optional, as
driver support is inbox (RHEL 7 or Ubuntu 14.04)
参考:http://community.mellanox.com/docs/DOC-1446
4
評価環境
5
VM CentOS7
40GE Driver
OVS 2.0.0
VM CentOS7
CPU : 12core Xeon 2.40GHz (Fujitsu RX200S8)
MEM : 18GB
OS : CentOS7 (Kernel : 3.10.0-123.el7.x86_64)
Driver : MLNX_OFED_LINUX-2.3-1.0.1-rhel7.0-x86_64.iso
OVS : ver 2.0
Mellanox 10/40GbE NIC : ConnectX-3 Pro (FW:2.32.5100)
OVS 2.0.0
40GE Driver
VM info
OS:CentOS6.5
vCPU : 4core
vMEM : 4GB
6
設定手順
参考URL : http://community.mellanox.com/docs/DOC-1446
KVM環境構築
Install packages
VM Manager起動
7
# yum install qemu-kvm
# yum install qemu-img
# yum install virt-manager
# yum install virt-install
# yum install libvirt-daemon-config-network
# virt-manager
VM作成
環境に合わせて設定してください。
OpenStack環境でもOK!
Mellanox OFEDドライバインストール
こちらからダウンロード
http://www.mellanox.com/page/products_dyn?product_family=2
6&mtag=linux_sw_drivers
ドライバインストール方法
8
# mount -o ro,loop MLNX_OFED_LINUX-2.3-1.0.1-rhel7.0-x86_64.iso /mnt
# ./mnt/mlnxofedinstall
# /etc/init.d/openibd restart
OVSインストール
OVS v2.0.0のインストール
今回はOpenstack icehouseパッケージかを使用
Linux Bridgeモジュールアンロード
9
# yum install -y https://repos.fedorapeople.org/repos/openstack/openstack-
icehouse/rdo-release-icehouse.rpm
# yum install –y openvswitch
# modprobe openvswitch
# lsmod | grep openv
openvswitch 70743 0
vxlan 37584 1 openvswitch
gre 13808 1 openvswitch
libcrc32c 12644 3 xfs,btrfs,openvswitch
# lsmod | grep bridge
bridge 110196 0
stp 12976 1 bridge
llc 14552 2 stp,bridge
# rmmod bridge
OVSインストール
Openvswitchサービススタート
10
# systemctl list-unit-files | grep openvswitch
openvswitch-nonetwork.service static
openvswitch.service disabled
# systemctl enable openvswitch
# systemctl start openvswitch
# systemctl status openvswitch
openvswitch.service - Open vSwitch
Loaded: loaded (/usr/lib/systemd/system/openvswitch.service; enabled)
Active: active (exited) since Thu 2014-09-18 19:14:42 JST; 2min 20s ago
Main PID: 12972 (code=exited, status=0/SUCCESS)
Sep 18 19:14:42 ALT1 systemd[1]: Started Open vSwitch.
# ovs-vsctl show
5c682e27-2498-4188-ac25-269cacedbe7f
ovs_version: "2.0.0"
ネットワーク設定
11
VM1
bridge
ovs-vx
NIC
eth0
vnet0
eth0
VM2
bridge
ovs-vx
NIC
eth0
vnet0
eth0
Point
・ Bridge “ovs-vx”作成
・ VM1と物理NICのポート接続
ネットワーク設定
Bridge作成 & ポート作成
仮想マシンを作成(この時点でNIC設定はデフォルトでOK)
仮想マシン インターフェース設定ファイル編集 (編集後VM起動)
12
# ovs-vsctl add-br ovs-vx
# ovs-vsctl add-port ovs-vx enp4s0
# virsh edit <vm名前>
例)変更前
<interface type='direct'>
<mac address='52:54:00:e7:26:ea'/>
<source dev='ovs-system' mode='vepa'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
変更後
<interface type='bridge'>
<mac address='52:54:00:e7:26:ea'/>
<source bridge='ovs-vx'/>
<virtualport type='openvswitch'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
ネットワーク設定
vnet0がovsにタッピングされている
13
[root@ALT1 ~]# ovs-vsctl show
daaecc1a-5344-4387-9204-399b101d8b8e
Bridge ovs-vx
Port "vnet0"
Interface "vnet0"
Port "enp4s0"
Interface "enp4s0"
Port ovs-vx
Interface ovs-vx
type: internal
ovs_version: "2.0.0"
[root@ALT1 ~]#
[root@ALT1 ~]# ovs-dpctl show
system@ovs-system:
lookups: hit:8320258 missed:41 lost:0
flows: 0
port 0: ovs-system (internal)
port 1: ovs-vx (internal)
port 2: enp4s0
port 3: vnet0
VXLAN offload設定
特になし!
MLNX OFED 2.3.1ではデフォルトでVXLAN offload = enableになっている
Disableにする場合
14
1. Open the /etc/modprobe.d/mlnx.conf file.
2. Set the options mlx4_core log_num_mgm_entry_size=10.
3. Restart the driver (/etc/init.d/openibd restart)
OVS VXLAN設定
OVSのポートは一度削除する
# ovs-vsctl del-port ovs-vx “port名”
ブリッジ作成
先ほどの手順と同様に仮想マシン作成
OVSでVXLANヘッダ50byteが付加されるので、IPフラグメントを防ぐため物理ホストのMTUを変更(MTU=1550)
Ex) # ip link set enp4s0 mtu 1550
15
# ovs-vsctl add-br ovs-vx
# ovs-vsctl add-port ovs-vx vxlan0 -- set interface vxlan0 type=vxlan
options:remote_ip=10.0.0.20 options:key=99 options:dst_port=4789
OVS VXLAN設定
設定確認
16
[root@ALT1 ~]# ovs-vsctl show
daaecc1a-5344-4387-9204-399b101d8b8e
Bridge ovs-vx
Port ovs-vx
Interface ovs-vx
type: internal
Port "vnet0"
Interface "vnet0"
Port "vxlan0"
Interface "vxlan0"
type: vxlan
options: {dst_port="4789", key="99", remote_ip="10.0.0.20"}
ovs_version: "2.0.0“
[root@ALT1 ~]# ovs-dpctl show
system@ovs-system:
lookups: hit:439298 missed:34 lost:0
flows: 2
port 0: ovs-system (internal)
port 1: vxlan_sys_4789 (vxlan: df_default=false, ttl=0)
port 2: ovs-vx (internal)
port 3: vnet0
パケットキャプチャ
17
Performance 10GE
18
iperf Ver2.0.5
実行例 : # iperf -c 10.0.0.101 -P 4
MTU=1500
本資料に含まれる測定データは一例であり、測定構成や条件によって変わることがあります。
また、本資料はMellanox Technologies社の公式見解を表すものではありません。
Performance 40GE
19
iperf Ver2.0.5
実行例 : # iperf -c 10.0.0.101 -P 4
MTU=1500
本資料に含まれる測定データは一例であり、測定構成や条件によって変わることがあります。
また、本資料はMellanox Technologies社の公式見解を表すものではありません。
まとめ
OVSのVXLAN通信時、通常時に比べ約1/7性能効率が落ちる
Mellanox ConnectX-3 ProのVXLAN offload機能を使用するとオフロード無しに比べ約5.6倍の性能向上が見られる
その他、VXLAN通信のOffloadによりCPU負荷の低減にも効果がある
20