Upgrade to Pro — share decks privately, control downloads, hide ads and more …

コンテナ型仮想化技術におけるネットワーク分離の研究事情/ Infra-study LT

コンテナ型仮想化技術におけるネットワーク分離の研究事情/ Infra-study LT

Yuki Nakata chikuwait

November 25, 2020
Tweet

More Decks by Yuki Nakata chikuwait

Other Decks in Research

Transcript

  1. わたしです
 2
 中田 裕貴 / chikuwait
 Twitter: chiku_wait GitHub: chikuwait
 


    • 公立はこだて未来大学大学院システム情報科学研究科
 高度ICT領域 M1
 • システムソフトウェア研究室
 • クラウド基盤技術に関する研究
 ◦ 主に仮想化技術(ハイパーバイザ,コンテナ)
 

  2. OSのブリッジ機能とNAT機能を利用した手法 
 e.g. Docker Bridgeモード
 4
 • 仮想ネットワークインタフェース(veth)を
 各コンテナに対して提供
 ◦

    vethを介する通信をブリッジとNATで制御 
 
 • ホスト環境(docker: net=host)と比べて,
 ネットワークI/O性能が低下[1][2]
 ◦ パケット送受信時にデータパスが長くなる [3]
 
 
 eth0
 コンテナ
 ブリッジ
 … eth0
 veth
 コンテナ
 eth0
 veth
 NAT(iptables) 
 [1]Anderson, J., Hu, H., Agarwal, U., Lowery, C., Li, H. and Apon, A.: Performance considerations of network functions virtualization using containers, 2016 International Conference on Computing, Networking and Communications (ICNC), p 1-7 (2016).
 [2]Zhao, Y., Xia, N., Tian, C., Li, B., Tang, Y., Wang,Y., Zhang, G., Li, R. and Liu, A. X.: Performance of Container Networking Technologies, Proceedings of the Workshop on Hot Topics in Container Networking and Networked Systems, HotConNet '17, Association for Computing Machinery, pp. 1-6 (2017). 
 [3]Nakamura, R., Sekiya, Y. and Tazaki, H.: Grafting Sockets for Fast Container Networking, Proceedings of the 2018 Symposium on Architectures for Networking and Communications Systems, Association for Computing Machinery, pp. 1 (2018).
 コンテナ
 ブリッジ
 NAT
 eth0
 veth
 eth0
 Ethernet
 Ethernet
 IP
 アプリ
 TCP
 IP
 Ethernet
 ソケット

  3. ネットワークI/O性能向上を目指した
 ネットワーク分離手法
 5
 
 1. 専用の制御コードをOSカーネル内で実行する手法(eBPF)
 e.g. cilium[4], Open vSwitch(AF_XDP)[5]


    
 2. I/O仮想化ハードウェアを使用した手法
 e.g. SR-IOV[6]
 
 3. OSカーネルをバイパスした手法
 
 4. 軽量なOS・OS機能の実装手法
 
 [4]Thomas, G.: KubeCon + CloudNativeCon Europe 2018,Cilium Accelerating Envoy with Linux Kernel, https://sched.co/EJAt ((Accessed on 08/26/2020)). 
 [5]William, T.: Open vSwitch 2018 Fall Conference, Fast Userspace OVS with AF XDP, https://www.openvswitch.org/support/ovscon2018/ ((Accessed on 08/26/2020)). 
 [6]Jun Nakajima,Building High-Performance NFV Solutions Using Containers,https://events.static.linuxfound.org/sites/events/files/slides/Jun_Nakajima_NFV_Container_final.pdf((Accessed on 11/23/2020)). 
 LTなのでこっちを一部だけ

  4. OSカーネルをバイパスした手法:FreeFlow[7]
 6
 既存のOS機能を使った手法と比較して,スループットが最大14倍向上
 • RDMA:別サーバのメモリに直接読み書き
 ◦ ネットワークスタックをバイパスして, 
 処理をNICにオフロードして高性能化 


    
 • アプリケーションが使用するバッファをFreeFlowが 
 複製し,物理NICが複製されたバッファに対して読み書き 
 ◦ 複数のコンテナがRDMAを使うことを実現 
 
 • https://github.com/microsoft/Freeflow 
 
 
 
 
 [7]Kim, D., Yu, T., Liu, H.H., Zhu, Y., Padhye, J., Raindel, S., Guo, C., Sekar, V. and Seshan, S.: FreeFlow: Software-based Virtual RDMA Networking for Containerized Clouds, In 16th USENIX Symposium on Networked Systems Design an Implementation (NSDI 19), pp. 113-126(2019). 
 RDMA NIC
 
 FreeFlow
 ルータ
 … コンテナ
 vNIC
 アプリ
 バッファ
 複製
 バッファ
 コンテナ
 vNIC
 アプリ
 バッファ
 複製
 バッファ
 データ バッファ
 Packet
 Processer
 コマンド Read/write
  5. データパスを短くし,スループット,レイテンシ共に
 ホストのネットワークスタックを使用した場合と同等の性能を実現
 
 • コンテナ内アプリケーションがソケットを開き, 
 ホストで開いたソケットに接ぎ木 
 ◦ AF_GRAFTという新しいアドレスファミリで実現

    
 
 • AF_INETなどを使う既存のアプリケーションが 
 AF_GRAFTを使用するために,
 socket()などをフックして変換
 
 • https://github.com/upa/af-graft
 軽量なOS・OS機能の実装手法:Socket-Grafting[8]
 7
 AF_GRAFTのデータパス[9] [8] Nakamura, R., Sekiya, Y. and Tazaki, H.: Grafting Sockets for Fast Container Networking, Proceedings of the2018 Symposium on Architectures for Networking and Communications Systems, Association for Computing Machinery, pp. 1 (2018).
 AF_GRAFTのデータパス(赤線) [8]
  6. おわりに
 8
 • コンテナ型仮想化技術におけるネットワーク分離手法は,
 OSSだけではなく,アカデミアでも活発
 ◦ コンテナがHPCやNFVで用いられているようになり,それらで用いられる 
 カーネルバイパスなどの高速化手法を用いる例が多い(気がする) 


    ◦ 実装や評価も結構面白いのでGoogle Scholarとかで色々探してみてください 
 ◦ ossとして公開されることも多い
 
 • インフラエンジニアの人でもシステムソフトウェア分野で
 読んでみたら面白そうな国際会議の一例(主観)
 ◦ USENIX OSDI,ATC,NSDI
 ◦ Unix User Groupが起源なのもあってか,著名システムや実装の面白い論文も多々ある 
 ▪ VMware ESX(OSDI ‘02),Firecracker(NSDI’20) などなど 
 
 おしまい