仮想ネットワークを考慮した SoftIRQ制御によるCPU割当ての手法

仮想ネットワークを考慮した
SoftIRQ制御によるCPU割当ての手法
〇村松 真† 川島 龍太† 齋藤 彰一† 松尾 啓志†
† 名古屋工業大学大学院
2015/09/28
東海支部連合大会
研究背景
• クラウドコンピューティングサービスの普及
 データセンタの需要が増加
› 膨大な数の物理サーバとストレージを管理
• マルチテナント方式を採用
 物理サーバ上に様々なテナントの仮想マシン(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
VM2
VM3
Core
#5
Core
#6
vhost
net3
Driver
Core
#1
Core
#2
Core
#3
Core
#4
CPU
Q1
Q2
Q3
Q4
Q5
Q6
IP address/Port
hashing
Hash Function
RSS-NIC
5
Receive Side Scaling (RSS)
VM自体の性能が低下
VM1
vhost
net2
vhost
net1
VM2
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
vSwitch
vSwitch
vSwitch
Match
Actions
Tunnel
Tunnel
Tunnel
VM1 flow
SoftIRQ : 1-
Protocol
Protocol
Protocol
VM2 flow
SoftIRQ : 2-
VM3 flow
SoftIRQ : 3-
...
...
VSE
Driver
Core
#1
Core
#2
Core
#3
Core
#4
.
.
.
Core
#5
Core
#6
CPU
7
提案手法:Virtual Switch Extension (VSE)
VM1
vhost
net1
vhost
net2
VM2
VM3
vhost
net3
Flow Table
vSwitch
vSwitch
Match
Actions
Tunnel
Tunnel
VM1 flow
SoftIRQ : 1
Protocol
Protocol
VM2 flow
SoftIRQ : 1
VM3 flow
SoftIRQ : 2
...
...
VSE
Driver
Core
#1
Core
#2
Core
#3
Core
#4
.
.
.
Core
#5
Core
#6
CPU
8
優先フローの性能評価
• 評価環境
priority
VM1
VM3
VM5
VM7
Iperf
client
Iperf
client
Iperf
client
Iperf
client
Virtual
Switch
TCP communication
VM2
VM4
VM6
VM8
Iperf
server
Iperf
server
Iperf
server
Iperf
server
Virtual
Switch
VXLAN
Physical Server 1
40 Gb Ethernet
• マシン性能
Physical Server 1
Physical Server 2
• ベンチマーク : Iperf
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
-
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
優先フローの性能評価
• 評価パターン
RSS
VM2
VM4
vhost
net2
Core
#1
VM6
vhost
net4
Core
#2
Core
#3
VM8
vhost
net6
Core
#4
vhost
net8
Core
#5
Core
#6
HardIRQ
VSE
VM2
vhost
net2
Core
#1
Priority
VM4
vhost
net4
Core
#2
HardIRQ
VM6
VM8
vhost
net6
Core
#3
SoftIRQ
2, 4, 6
vhost
net8
Core
#4
Core
#5
SoftIRQ
8
Core
#6
10
評価結果
8000
Throughput [Mbps]
7000
6000
RSS
VM2
Total Ave. 11934Mbps
VM4
VM6
VM8
VMとフロー処理のCPUコアが衝突
5000
4000
3000
フローのハッシュ値が衝突
2000
1000
0
30
60
90
120
150
180
210
240
270
300
330
360
390
420
450
time [s]
8000
VM2
Total Ave. 13181Mbps
VSE
VM4
VM6
VM8
Throughput [Mbps]
7000
6000
5000
常に高スループットかつ安定
4000
3000
2000
1000
0
非優先・優先フローのソフトウェア割り込み先を制御することで
常に高スループットかつ安定した通信性能を提供することが可能
30
60
90
120
150
180
210
240
time [s]
270
300
330
360
390
420
450
11
まとめと今後の課題
• まとめ
 SoftIRQ制御によるCPUリソース割当て手法VSEを提案
› VSEは常に優先フローに対して高スループットかつ安定した通信
性能を提供
• 今後の課題
 各パケット処理における詳細なサービス時間の評価
 送信処理を考慮した場合のモデルの検討
12