SlideShare a Scribd company logo
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部 
メラノックス製品担当 
mellanox-support@altima.co.jp
目的 
 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 
 CPU : 12core Xeon 2.40GHz (Fujitsu RX200S8) 
VM CentOS7 
CentOS7 VM 
OVS 2.0.0 
40GE Driver 
 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 
環境に合わせて設定してください。 
OpenStack環境でもOK! 
 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作成
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 
eth0 
vnet0 
bridge 
ovs-vx 
eth0 
NIC 
VM2 
eth0 
vnet0 
bridge 
ovs-vx 
eth0 
NIC 
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 
本資料に含まれる測定データは一例であり、測定構成や条件によって変わることがあります。 
また、本資料はMellanox Technologies社の公式見解を表すものではありません。 
iperf Ver2.0.5 
実行例 : # iperf -c 10.0.0.101 -P 4 
MTU=1500
Performance 40GE 
19 
本資料に含まれる測定データは一例であり、測定構成や条件によって変わることがあります。 
また、本資料はMellanox Technologies社の公式見解を表すものではありません。 
iperf Ver2.0.5 
実行例 : # iperf -c 10.0.0.101 -P 4 
MTU=1500
まとめ 
 OVSのVXLAN通信時、通常時に比べ約1/7性能効率が落 
ちる 
 Mellanox ConnectX-3 ProのVXLAN offload機能を使用す 
るとオフロード無しに比べ約5.6倍の性能向上が見られ 
る 
 その他、VXLAN通信のOffloadによりCPU負荷の低減に 
も効果がある 
20
問い合わせ先 
21 
ご不明点、ご質問ありましたらご連絡ください。 
株式会社アルティマ 
プロダクトセールス2部 
SE担当 北島佑樹 
MAIL : mellanox-support@altima.co.jp

More Related Content

Mellanox Vxlan offload Performance on linux

  • 1. 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. アルティマ社のご紹介 2  Mellanox社の国内一次代理店  サーバ、ストレージ、ネット ワーク等、システム商材を扱う ディストリビューター  保守/構築/技術サポートをご提供  マクニカのグループカンパニー  本資料に関するお問い合わせは こちらまで 株式会社アルティマ プロダクトセールス2部 メラノックス製品担当 mellanox-support@altima.co.jp
  • 3. 目的  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
  • 4. 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. 評価環境 5  CPU : 12core Xeon 2.40GHz (Fujitsu RX200S8) VM CentOS7 CentOS7 VM OVS 2.0.0 40GE Driver  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. 6 設定手順 参考URL : http://community.mellanox.com/docs/DOC-1446
  • 7. KVM環境構築  Install packages 環境に合わせて設定してください。 OpenStack環境でもOK!  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作成
  • 8. 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
  • 9. 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
  • 10. 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. ネットワーク設定 11 VM1 eth0 vnet0 bridge ovs-vx eth0 NIC VM2 eth0 vnet0 bridge ovs-vx eth0 NIC Point ・ Bridge “ovs-vx”作成 ・ VM1と物理NICのポート接続
  • 12. ネットワーク設定  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>
  • 13. ネットワーク設定  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
  • 14. 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)
  • 15. 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
  • 16. 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
  • 18. Performance 10GE 18 本資料に含まれる測定データは一例であり、測定構成や条件によって変わることがあります。 また、本資料はMellanox Technologies社の公式見解を表すものではありません。 iperf Ver2.0.5 実行例 : # iperf -c 10.0.0.101 -P 4 MTU=1500
  • 19. Performance 40GE 19 本資料に含まれる測定データは一例であり、測定構成や条件によって変わることがあります。 また、本資料はMellanox Technologies社の公式見解を表すものではありません。 iperf Ver2.0.5 実行例 : # iperf -c 10.0.0.101 -P 4 MTU=1500
  • 20. まとめ  OVSのVXLAN通信時、通常時に比べ約1/7性能効率が落 ちる  Mellanox ConnectX-3 ProのVXLAN offload機能を使用す るとオフロード無しに比べ約5.6倍の性能向上が見られ る  その他、VXLAN通信のOffloadによりCPU負荷の低減に も効果がある 20
  • 21. 問い合わせ先 21 ご不明点、ご質問ありましたらご連絡ください。 株式会社アルティマ プロダクトセールス2部 SE担当 北島佑樹 MAIL : mellanox-support@altima.co.jp