1. 公開
Copyright Cybertrust Japan Co., Ltd. All rights reserved.
1
2017/11/15
サイバートラスト株式会社 Linux/OSS事業部
佐藤 剛春
OpenStack環境における通信高速化
~超入門~
2. 公開
Copyright Cybertrust Japan Co., Ltd. All rights reserved.
2
この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。この発表は個人の見解であり、所
属する組織の公式見解ではありません。
サイバートラスト株式会社(以下、サイバートラスト)は本書の内容に関していかなる保証もいたしません。また、本書の内容に関連し
たいかなる損害についても責任を負いかねます。又、本資料の著作権は特に指定されている箇所を除いて、本書の作成者が有します。本
書の作成者が著作権を有するコンテンツにつきましては、本書の作成者に対して無断で複製、改変、頒布などをすることはできません。
このスライドに掲載された製品名、ロゴ、サービス名などは、サイバートラストが所有するか、使用権許諾を受けている商標もしくは登
録商標です。その他、本文書に掲載されている他社の製品名、ロゴなどは、それぞれ該当する各社が所有する商標もしくは登録商標です。
3. 公開
Copyright Cybertrust Japan Co., Ltd. All rights reserved.
3
国内電子認証局の運用
Linux/OSS の専門性電子認証の専門性
専用機器・組込み開発
ITインフラを支えるLinux提供
グローバル標準
組込みLinux
IoT 電子認証
IoT 事業開発・グローバル協業
サイバートラスト(株)の事業領域
認証・セキュリティ事業 IoT事業 Linux/OSS事業
サイバートラストの認証事業とミラクル・リナックスの組込みLinux 事業の組み合わせで
IoT 時代のデファクトスタンダードへ
4. 公開
Copyright Cybertrust Japan Co., Ltd. All rights reserved.
4
Who am I ?
• おしごと
– 旧ミラクル・リナックス側の社員
• 2017年10月に旧ミラクル・リナックスが旧サイバートラストを買収
• サイバートラストへ社名変更
– 2000年6月~
– 経験部署
• 開発・サポート
• マーケティング
• コンサルティング
• 社内情報システム
• 開発・サポート
• 開発
• プリセールスエンジニア (←いまここ)
– 元はRDBMSベンダのエンジニア
• 趣味
– モーターサイクル, エレキベース
– Xeon (MCC以上) 搭載のタワーサーバが欲しいデス。
5. 公開
Copyright Cybertrust Japan Co., Ltd. All rights reserved.
5
OpenStack Summit November 2017 - Sydney
• 2回目
• October 2015 - Tokyo以来、久々の参加
– Call For Paper出してません…
6. 公開
Copyright Cybertrust Japan Co., Ltd. All rights reserved.
6
きっと、この辺りの物凄い発表に出会えるはず!(心の声)
→…ぇぇぇ?
既に知っている内容が多かったので、簡単に纏めます。
(追加情報あり)
7. 公開
Copyright Cybertrust Japan Co., Ltd. All rights reserved.
7
よくある構成のOpenStack環境で通信が遅い理由
• カーネル空間↔ユーザ空間 のメモリコピーが発生する
– 仮想インスタンスで発生する通信全てに対して発生
カーネル空間
Bare Metal
物理NIC
ユーザ空間
qemu-kvm
virtio-net
OVS
※あくまで概念図です!
8. 公開
Copyright Cybertrust Japan Co., Ltd. All rights reserved.
8
解決策
• DPDK
– PMDがユーザ空間へメモリをコピー
– OVS, vRouter等、対応ソフトウェアと組み合わせて利用
• FD.io VPP
– VPP: Vector Packet Processing
– Ciscoが寄贈したコードが元
– Software Switchとして動作
– 複数パケットをチャンク処理して高速化
• SR-IOV NIC
– VF - Guest DMA転送
• Smart NIC
– OVS, vRouter等の機能そのものをNICにオフロード
9. 公開
Copyright Cybertrust Japan Co., Ltd. All rights reserved.
9
DPDKで速くなる理由
• カーネル空間をバイパス
– DPDKライブラリを使用するアプリケーションのメモリへ直接書込
– PMDが割り当てられたCPUは常に使用率100%
カーネル空間
Bare Metal
物理NIC
ユーザ空間
qemu-kvm
virtio-net
OVS + DPDK
PMD
※あくまで概念図です!
10. 公開
Copyright Cybertrust Japan Co., Ltd. All rights reserved.
10
もっと速くしたい!
• Hyper-Threading
– OFFに設定
• Huge Page
– サイズは2MBがスイートスポット (という発表があった)
• NUMA Nodeを考慮する必要がある
– 今回はココ中心
11. 公開
Copyright Cybertrust Japan Co., Ltd. All rights reserved.
11
太古のSMP
• Front Side Bus (FSB)
– 単一のBusを共用する
– Nehalem登場とともに消滅
Front Side Bus
CPU CPU CPU CPU
North
Bridge RAM
L1/L2
Cache
L1/L2
Cache
L1/L2
Cache
L1/L2
Cache
12. 公開
Copyright Cybertrust Japan Co., Ltd. All rights reserved.
12
NUMA
• Non-Uniform Memory Access
– FSBの問題点を解決
– プロセスが別NUMA Node上のCPUへ移動することはあり得るか?
• Yes! (という発表があった)
Core 1
CPU
4, 20
Core 0
CPU
0, 16
Core 3
CPU
12, 28
Core 2
CPU
8, 24
L3Cache
Mem
Controller
RAM
Core 1
CPU
7, 23
Core 0
CPU
3, 19
Core 3
CPU
15, 31
Core 2
CPU
11, 27
L3Cache
Mem
Controller
RAM
Core 1
CPU
5, 21
Core 0
CPU
1, 17
Core 3
CPU
13, 29
Core 2
CPU
9, 25
L3Cache
Mem
Controller
RAM
Core 1
CPU
6, 22
Core 0
CPU
2, 18
Core 3
CPU
14, 30
Core 2
CPU
10, 26
L3Cache
Mem
Controller
RAM
※あくまで概念図です!
# watch -d "ps ax -o pid,%cpu,%mem,psr,sgi_p,state,comm|egrep 'qemu-kvm|PID'|sort -n"
Local Access Remote Access
Memory
Channel
14. 公開
Copyright Cybertrust Japan Co., Ltd. All rights reserved.
14
NUMA NodesとMemory
• Memory
– Local AccessとRemote Access
• 当然、Local Accessの方が高速
• Localへの固定化を狙いたい
15. 公開
Copyright Cybertrust Japan Co., Ltd. All rights reserved.
15
NUMA NodesとPCI-Express [1/2]
• CPU Socket毎
– 利用対象デバイスの存在しているSocketのNUMA Nodeを使用する必要がある
– コマンド lstopo-no-graphics (または lstopo) で確認することは可能
# lstopo-no-graphics
...
NUMANode L#1 (P#1 64GB)
...
HostBridge L#7
PCIBridge
PCI 8086:1528
Net L#11 "enp130s0f0"
PCI 8086:1528
Net L#12 "enp130s0f1"
...
17. 公開
Copyright Cybertrust Japan Co., Ltd. All rights reserved.
17
Bare Metal
Node 0
qemu-kvm, DPDK PMD, 物理NICが
同一Node上に存在することが望ましい
CPU Pinning
• 使用するCPUを明確に割り当てる
– 以下を同一NUMA Nodeに配置する
• qemu-kvm
• DPDK PMD
• 物理NIC
– 複数NUMA Nodeを使用する場合
• 両NodeのCPUにPMDsを割り当てる必要が生じる
Node 1
qemu-kvm
物理NIC
virtio-net
DPDK PMD
18. 公開
Copyright Cybertrust Japan Co., Ltd. All rights reserved.
18
CPU Pinningの課題
• Automation
– 使用したい物理NICは、どのNUMA Nodeに繋がっている?
– 該当NUMA Nodeで、空いているCPU Coreは?
• High Availability
– インスタンスの別compute nodeへの移動
19. 公開
Copyright Cybertrust Japan Co., Ltd. All rights reserved.
19
参考文献, 他
• OpenStack Summit Sydney 2017 November
– All you need to know about CPU pinning and how to make it work? (by Nokia)
– Tuning packet and interrupt latency for 5G applications (by Wind River)
– Turbo charging OpenStack for NFV workloads (by RedHat, Cisco)
– NFV meets cloud, virtio, sr-iov, dpdk, cpu pinning, … (Forum, etherpad)
• OPNFV Summit Beijing 2017 June
– Putting OVS-DPDK into Massive Production, with 0.0% Frame Loss (by RedHat, Youtube)
• DPDK Summit India 2017 April資料
– VPP Overview (by Cisco)
• Special Thanks
– 日本仮想化技術株式会社: 伊藤さん, 遠山さん
– サイバートラスト株式会社: 田中隆久さん
20. 公開
Copyright Cybertrust Japan Co., Ltd. All rights reserved.
信頼とともに
ソフトバンク・テクノロジー グループ
ソフトバンク・テクノロジー エムソリューションズ フォントワークス 環 サイバートラスト モードツーアソラテック リデン