フロー処理やネットワーク機能の処理負荷を考慮したVS

フロー処理やネットワーク機能の処理負荷を
考慮したVSEリソース割当ての最適化
〇村松 真† 川島 龍太† 齋藤 彰一† 松尾 啓志†
中山 裕貴†† 林 經正††
† 名古屋工業大学大学院
†† 株式会社ボスコテクノロジーズ
2015/04/22
CQ研究会
研究背景
• クラウドコンピューティングサービスの普及
 データセンタの需要が増加
› 膨大な数の物理サーバとストレージを管理
• マルチテナント方式を採用
 物理サーバ上に様々なテナントの仮想マシン(VM)を集約
› 各テナントに独立した仮想環境を提供
› 物理サーバの台数を削減
 オーバレイプロトコルによる仮想ネットワークの構築
› 既存のデータセンタネットワーク上で構築可能
1
マルチテナント方式の構成
User A
Virtual
Router
User B
VM
Tunneling Header
Packet Format
Decapsulate
Virtual
Switch
Physical Server
User A
User B
User A
User B
VM
VM
VM
VM
仮想ネットワークの性能向上が重要
Virtual
Switch
Physical Server
Virtual
Switch
Encapsulate
Traditional
Datacenter Network
Physical Server
2
仮想ネットワーク性能向上のアプローチ
• トンネリングプロトコルの改善
• ハードウェアスイッチ
 CPU負荷の低減、通信の高速化
特定のハードウェア機能が必要となり
ベンダロックインに陥る可能性がある
• ホスト内処理の受信処理負荷に着目
特定のハードウェア機能を利用せず
ホスト内受信処理のCPUリソース割当て方法の最適化
3
シングルキューNICにおける問題点
• 特定のCPUコアに受信処理負荷が集中
VM1
vhost
net1
vhost
net2
VM2
VM3
Core
#5
Core
#6
vhost
net3
vSwitch
Tunnel
Protocol
SoftIRQ
Driver
Core
#1
Core
#2
Core
#3
Core
#4
HardIRQ
CPU
Single Queue NIC
4
Receive Side Scaling (RSS)
VM1
vhost
net1
vhost
net2
vSwitch
vSwitch
vSwitch
Tunnel
Tunnel
Tunnel
Protocol
Protocol
Protocol
Driver
Driver
Driver
Core
#1
Core
#2
Core
#3
VM2
VM3
Core
#5
Core
#6
vhost
net3
Core
#4
CPU
Q1
Q2
Q3
Q4
Q5
Q6
IP address/Port
hashing
Hash Function
RSS-NIC
5
Receive Side Scaling (RSS)
VM2
VM1
vhost
net2
vhost
net1
VM3
仮想ルータ
vhost
net3
vSwitch
仮想ネットワーク全体
の性能に影響を与える
Tunnel
Protocol
Driver
Core
#1
Core
#2
Core
#3
Core
#4
Core
#5
Core
#6
CPU
Q1
Q2
Q3
Q4
Q5
Q6
IP address/Port
hashing
Hash Function
RSS-NIC
6
提案手法:Virtual Switch Extension (VSE)†
VM1
vhost
net1
vhost
net2
VM2
VM3
vhost
net3
Flow Table
Match
Actions
vSwitch
vSwitch
vSwitch
VM1 flow
SoftIRQ : 1-
Tunnel
Tunnel
Tunnel
VM2 flow
SoftIRQ : 2-
Protocol
Protocol
Protocol
VM3 flow
SoftIRQ : 3-
...
...
VSE
Driver
Core
#1
Core
#2
Core
#3
Core
#4
.
.
.
Core
#5
Core
#6
CPU
† “VSE: Virtual Switch Extension for Adaptive CPU Core Assignment in Softirq” 2014 IEEE 6th International Conference on
Cloud Computing Technology and Science (CloudCom), Shin Muramatsu et al.
7
提案手法:Virtual Switch Extension (VSE)†
VM1
vhost
net1
vhost
net2
VM2
VM3
vhost
net3
Flow Table
Match
Actions
vSwitch
vSwitch
VM1 flow
SoftIRQ : 1
Tunnel
Tunnel
VM2 flow
SoftIRQ : 1
Protocol
Protocol
VM3 flow
SoftIRQ : 2
...
...
VSE
Driver
Core
#1
Core
#2
Core
#3
Core
#4
.
.
.
Core
#5
Core
#6
CPU
† “VSE: Virtual Switch Extension for Adaptive CPU Core Assignment in Softirq” 2014 IEEE 6th International Conference on
Cloud Computing Technology and Science (CloudCom), Shin Muramatsu et al.
8
従来評価との相違点
従来評価
• フロー処理負荷が非常に高い
環境における評価のみ
 VXLAN over IPsec
本研究
• フロー処理負荷が比較的低負荷
な環境における評価
 VXLAN
• 低負荷なフロー処理における評価項目
 VSE処理オーバヘッド
 フロー/VMのCPUコア衝突
より一般的なケースでの通信性能への影響を評価
9
VSEにおける処理
ソフト割り込み先変更
フローテーブルのルックアップ処理
ハードウェア割込先CPUコアと
別のCPUコアへソフトウェア割込
線型検索によるエントリ検索
Flow Table
VSE
Driver
Driver
Core
#1
Core
#2
Core
#3
Core
#4
Match
Actions
VM1 flow
SoftIRQ : -
VM2 flow
SoftIRQ : -
VM3 flow
SoftIRQ : -
...
...
Core
#5
Core
#6
CPU
10
評価環境
• ネットワーク環境
Physical Server
OpenvSwitch
VSE
40 Gb Ethernet
Port 1 Port 2
Optixia†
Ethernet
Generating
• UDP Flow
• 74 bytes
• 10 seconds
Packet Flow
in_port=1,
actions=output:2
• マシン仕様
Physical Server
OS
CentOS 6.6 (2.6.32)
CPU
Intel Core i7 (6 core)
Memory
16G bytes
Buffer
4M bytes
Network
40GBASE-SR4
Driver
MellanoxConnect-X(R)-3
vSwitch
OpenvSwitch 2.3.0
† Optixia XM2 “http://www.ixiacom.jp/sites/default/files/content/support/library/datasheets/ja_optixiaxm2.pdf”
11
評価結果:ソフトウェア割り込み先変更の影響
VSE
Driver
Core
#1
Core
#2
Default
35
パイプライン化
Driver
Core
#1
Core
#2
VSE
ソフトウェア割り込み先変更による
影響は無視可能
30
Packet Loss [%]
25
20
15
10
5
0
1000
1100
1200
1300
1400
1500
1600
1700
Transmission Rate [Kpps]
1800
1900
2000
12
評価結果:エントリ数の影響
• 送信レートを1700Kppsに固定
 マッチするエントリを末尾に設定
VM数は物理CPUコア数と同じ30~50台程度
100
90
設定可能なエントリ数は50程度でも問題ない
80
Packet Loss [%]
70
60
50
40
30
20
10
0
50
100
150
200
The Number of Entries
250
300
13
従来評価との相違点
従来評価
• フロー処理負荷が非常に高い
環境における評価のみ
 VXLAN over IPsec
本研究
• フロー処理負荷が比較的低負荷
な環境における評価
 VXLAN
• 低負荷なフロー処理における評価項目
 VSE処理オーバヘッド
 フロー/VMのCPUコア衝突
物理CPUコア数に対してVM数とフロー数の合計が大きい
優先フローのためにどの処理を
別のCPUコア上で行うべきか検討
14
CPUリソース割当てモデル
VM
VM
vhostnet
vhostnet
Packet
Prc.
Packet
Prc.
Driver
Core
#1
Driver
Core
#2
Core
#3
Core
#4
Core
#1
Model A
Core
#2
Core
#3
Model B
VM
VM
vhostnet
vhostnet
Packet
Prc.
Packet
Prc.
Driver
Core
#1
Core
#4
Driver
Core
#2
Core
#3
Model C
Core
#4
Core
#1
Core
#2
Core
#3
Model D
Core
#4
15
評価環境
• ネットワーク環境
VM
• 65535 bytes
• 100s
VM
Iperf
client
Virtual
Switch
Virtual
Switch
VXLAN
Physical Server 1
• マシン仕様
Iperf
server
TCP communication
40 Gb Ethernet
Physical Server 1
Physical Server 2
Physical Server 2
VM
OS
CentOS 6.6 (2.6.32)
Ubuntu 14.04
CPU
Intel Core i7 (6 core)
1 core
Memory
16G bytes
2G bytes
Buffer
4M bytes
4M bytes
Network
40GBASE-SR4
-
Driver
MellanoxConnect-X(R)-3
virtio (MTU:1450)
vSwitch
OpenvSwitch 2.3.0
-
16
8000
1.0
7000
0.9
Context Switch [Normalized]
Throughput [Mbps]
評価結果
6000
5000
4000
3000
2000
1000
0
Model A
Model B
Model C
Model D
Packet
Prc.
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0.0
Model A
Model B
コンテキストスイッチ
が最小限に抑えられる
VM
vhostnet
0.8
Model C
Model D
VM
キューにパケットを
溜め込む
コンテキストスイッチが
頻発
Packet
vhostnet
Prc.
Driver
Driver
優先フローに対してモデルC及びDを適用することが望ましい
Core
#1
Core
#2
Core
#3
Model B
Core
#4
Core
#1
Core
#2
Core
#3
Model C
Core
#4
17
優先フローの性能評価
• 評価環境
VM1
VM3
VM5
VM7
Iperf
client
Iperf
client
Iperf
client
Iperf
client
TCP communication
Virtual
Switch
VM2
VM4
VM6
VM8
Iperf
server
Iperf
server
Iperf
server
Iperf
server
Virtual
Switch
VXLAN
Physical Server 1
40 Gb Ethernet
Physical Server 2
• ベンチマーク:Iperf
Protocol
TCP (Tunnel : VXLAN)
Packet Size
65535 bytes
Flow Duration Time
30 s
Flow Generation Time
15 times
Flow Generation Rules
Common for all patterns
18
優先フローの性能評価
• 評価パターン
RSS
VSE (SoftIRQ)
VM2
VM4
vhost
net2
Core
#1
VM6
vhost
net4
Core
#2
Core
#3
VM8
vhost
net6
Core
#4
Core
#5
VM2
vhost
net8
Core
#6
VM4
vhost
net2
Core
#1
vhost
net4
Core
#2
HardIRQ
VM6
Core
#3
HardIRQ
VM8
vhost
net6
Core
#4
vhost
net8
Core
#5
SoftIRQ
2, 4, 6
VSE (Model C)
VM2
vhost
net2
Core
#1
VM4
vhost
net4
Core
#2
HardIRQ
SoftIRQ
8
Model C
VM6
VM8
vhost
net6
Core
#3
SoftIRQ
2, 4, 6
Core
#6
vhost
net8
Core
#4
Core
#5
SoftIRQ
8
Core
#6
19
評価結果
RSS
VM2
8000
VM4
VM6
VSE (SoftIRQ)
VM8
8000
VM4
VM6
VM8
Throughput [Mbps]
7000
6000
5000
4000
3000
2000
6000
5000
4000
3000
OSのスケジューリングにより
コンテキストスイッチ発生
2000
1000
フロー/VM衝突
1000
0
0
30
60
90 120 150 180 210 240 270 300 330 360 390 420 450
30
60
90 120 150 180 210 240 270 300 330 360 390 420 450
time [s]
time [s]
VSE (Model C)
VMとの衝突により低下
8000
Throughput [Mbps]
Total Ave.
VM2
VM4
VM6
VM8
7000
VM8 Ave.
Throughput [Mbps]
Throughput [Mbps]
7000
VM2
6000
5000
RSS
11934
4873フロー処理が集中するコア5へ
VSE (SoftIRQ)
13515
VMがスケジューリングされなかった
6027
モデルCを適用したことにより
VSE (Model C)
13181
6055
4000
3000
安定
2000
フロー処理負荷が低い場合においてもモデルを適用することにより
1000
常に高スループットかつ安定した通信性能を提供することが可能
0
30
60
90 120 150 180 210 240 270 300 330 360 390 420 450
time [s]
20
まとめと今後の課題
• まとめ
 VSE処理オーバヘッドによる通信性能への影響を評価
› VSE処理オーバヘッドは無視可能
› VSEに設定可能なエントリ数は10~50
 CPUリソース割当てモデルを提案
› フロー処理負荷が低負荷である場合においてもVSEは優先フロー
に対しモデルを適用することで通信性能が向上かつ安定
• 今後の課題
 各パケット処理における詳細なサービス時間の評価
 送信処理を考慮した場合のモデルの検討
21