21
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.

Mellanox Vxlan offload Performance on linux

Embed Size (px)

DESCRIPTION

Mellanox社製 10/40GENIC(ConnectX-3 Pro)を使ったVXLANオフロードの性能評価をLinux環境で実施しました。 VXLANプロトコルを使うとソフトウェア処理が大きくなるので、オフロードはMust!!

Citation preview

Page 1: 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.

Page 2: Mellanox Vxlan offload Performance on linux

アルティマ社のご紹介

2

Mellanox社の国内一次代理店

サーバ、ストレージ、ネットワーク等、システム商材を扱うディストリビューター

保守/構築/技術サポートをご提供

マクニカのグループカンパニー

本資料に関するお問い合わせはこちらまで

株式会社アルティマ

プロダクトセールス2部

メラノックス製品担当

[email protected]

Page 3: Mellanox Vxlan offload Performance on linux

目的

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

Page 4: Mellanox Vxlan offload Performance on linux

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

Page 5: Mellanox Vxlan offload Performance on linux

評価環境

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

Page 6: Mellanox Vxlan offload Performance on linux

6

設定手順

参考URL : http://community.mellanox.com/docs/DOC-1446

Page 7: Mellanox Vxlan offload Performance on linux

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!

Page 8: Mellanox Vxlan offload Performance on linux

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

Page 9: Mellanox Vxlan offload Performance on linux

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

Page 10: Mellanox Vxlan offload Performance on linux

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"

Page 11: Mellanox Vxlan offload Performance on linux

ネットワーク設定

11

VM1

bridge

ovs-vx

NIC

eth0

vnet0

eth0

VM2

bridge

ovs-vx

NIC

eth0

vnet0

eth0

Point

・ Bridge “ovs-vx”作成

・ VM1と物理NICのポート接続

Page 12: Mellanox Vxlan offload Performance on linux

ネットワーク設定

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>

Page 13: Mellanox Vxlan offload Performance on linux

ネットワーク設定

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

Page 14: Mellanox Vxlan offload Performance on linux

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)

Page 15: Mellanox Vxlan offload Performance on linux

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

Page 16: Mellanox Vxlan offload Performance on linux

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

Page 17: Mellanox Vxlan offload Performance on linux

パケットキャプチャ

17

Page 18: Mellanox Vxlan offload Performance on linux

Performance 10GE

18

iperf Ver2.0.5

実行例 : # iperf -c 10.0.0.101 -P 4

MTU=1500

本資料に含まれる測定データは一例であり、測定構成や条件によって変わることがあります。

また、本資料はMellanox Technologies社の公式見解を表すものではありません。

Page 19: Mellanox Vxlan offload Performance on linux

Performance 40GE

19

iperf Ver2.0.5

実行例 : # iperf -c 10.0.0.101 -P 4

MTU=1500

本資料に含まれる測定データは一例であり、測定構成や条件によって変わることがあります。

また、本資料はMellanox Technologies社の公式見解を表すものではありません。

Page 20: Mellanox Vxlan offload Performance on linux

まとめ

OVSのVXLAN通信時、通常時に比べ約1/7性能効率が落ちる

Mellanox ConnectX-3 ProのVXLAN offload機能を使用するとオフロード無しに比べ約5.6倍の性能向上が見られる

その他、VXLAN通信のOffloadによりCPU負荷の低減にも効果がある

20

Page 21: Mellanox Vxlan offload Performance on linux

問い合わせ先

21

ご不明点、ご質問ありましたらご連絡ください。

株式会社アルティマ

プロダクトセールス2部

SE担当 北島佑樹

MAIL : [email protected]