仮想ネットワークを考慮した SoftIRQ制御によるCPU割当ての手法 〇村松 真† 川島 龍太† 齋藤 彰一† 松尾 啓志† 2015/09/28 東海支部連合大会 † 名古屋工業大学大学院
研究背景 クラウドコンピューティングサービスの普及 マルチテナント方式を採用 データセンタの需要が増加 膨大な数の物理サーバとストレージを管理 マルチテナント方式を採用 物理サーバ上に様々なテナントの仮想マシン(VM)を集約 各テナントに独立した仮想環境を提供 物理サーバの台数を削減 トンネリングプロトコルによる仮想ネットワークの構築 既存のデータセンタネットワーク上で構築可能
Traditional Datacenter Network マルチテナント方式の構成 User A User B Virtual Router VM Tunneling Header Packet Format Decapsulate Virtual Switch Physical Server User A User B User A User B VM VM VM VM 仮想ネットワークの性能向上が重要 Virtual Switch Virtual Switch Encapsulate Traditional Datacenter Network Physical Server Physical Server
仮想ネットワーク性能向上のアプローチ トンネリングプロトコルの改善 ハードウェアスイッチ CPU負荷の低減、通信の高速化 特定のハードウェア機能が必要となり ベンダロックインに陥る可能性がある ホスト内処理の受信処理負荷に着目 特定のハードウェアオフロード機能を利用せず ホスト内受信処理のCPUリソース割当てを制御
シングルキューNICにおける問題点 特定のCPUコアに受信処理負荷が集中 Core #1 #2 #3 #4 #5 #6 SoftIRQ VM1 VM2 VM3 vhost net1 vhost net2 vhost net3 Protocol Tunnel vSwitch Protocol Tunnel vSwitch SoftIRQ Driver Core #1 HardIRQ CPU Single Queue NIC
Receive Side Scaling (RSS) Core #1 #2 #3 #4 #5 #6 VM1 VM2 VM3 vhost net1 vhost net2 vhost net3 Protocol Tunnel vSwitch Protocol Tunnel vSwitch Protocol Tunnel vSwitch Driver CPU Q1 Q2 Q3 Q4 Q5 Q6 IP address/Port hashing Hash Function RSS-NIC
Receive Side Scaling (RSS) VM自体の性能が低下 Core #1 #2 #3 #4 #5 #6 VM1 VM1 VM2 VM3 VM3 仮想ルータ vhost net1 vhost net2 vhost net3 Protocol Tunnel vSwitch 仮想ネットワーク全体の性能に影響を与える Driver Core #4 CPU Q1 Q2 Q3 Q4 Q4 Q5 Q6 IP address/Port hashing Hash Function RSS-NIC
提案手法:Virtual Switch Extension (VSE) Core #1 #2 #3 #4 #5 #6 VM1 VM2 VM3 vhost net1 vhost net2 vhost net3 Flow Table Protocol Tunnel vSwitch Protocol Tunnel vSwitch Protocol Tunnel vSwitch Match Actions VM1 flow SoftIRQ : - VM2 flow VM3 flow ... 1 2 3 VSE Driver CPU .
提案手法:Virtual Switch Extension (VSE) Core #1 #2 #3 #4 #5 #6 VM1 VM2 VM3 vhost net1 vhost net2 vhost net3 Flow Table Protocol Tunnel vSwitch Protocol Tunnel vSwitch Match Actions VM1 flow SoftIRQ : 1 VM2 flow VM3 flow SoftIRQ : 2 ... VSE Driver CPU .
MellanoxConnect-X(R)-3 優先フローの性能評価 評価環境 priority VXLAN VM1 VM3 VM5 VM7 VM2 VM4 VM6 VM8 Iperf client Iperf client Iperf client Iperf client TCP communication Iperf server Iperf server Iperf server Iperf server Virtual Switch Virtual Switch Physical Server 1 40 Gb Ethernet Physical Server 2 マシン性能 ベンチマーク : Iperf Physical Server 1 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 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 VSE 10 Core #1 #2 #3 #4 #5 #6 vhost net2 VM2 VM4 HardIRQ RSS Core #1 #2 #3 #4 #5 #6 vhost net2 VM2 VM4 VM6 net4 net6 VM8 net8 HardIRQ VSE SoftIRQ 2, 4, 6 Priority 8 10
評価結果 VMとフロー処理のCPUコアが衝突 フローのハッシュ値が衝突 常に高スループットかつ安定 Total Ave. 11934Mbps VMとフロー処理のCPUコアが衝突 フローのハッシュ値が衝突 Total Ave. 13181Mbps 常に高スループットかつ安定 非優先・優先フローのソフトウェア割り込み先を制御することで 常に高スループットかつ安定した通信性能を提供することが可能
まとめと今後の課題 まとめ 今後の課題 SoftIRQ制御によるCPUリソース割当て手法VSEを提案 各パケット処理における詳細なサービス時間の評価 送信処理を考慮した場合のモデルの検討