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. コンテナ型仮想化技術におけるネットワーク分離の研究事情

    2020/11/25


    Infra Study Meetup #8「インフラの研究開発」 LT

    1

    chikuwait


    View full-size slide

  2. わたしです

    2

    中田 裕貴 / chikuwait

    Twitter: chiku_wait GitHub: chikuwait


    ● 公立はこだて未来大学大学院システム情報科学研究科

    高度ICT領域 M1

    ● システムソフトウェア研究室

    ● クラウド基盤技術に関する研究

    ○ 主に仮想化技術(ハイパーバイザ,コンテナ)


    View full-size slide

  3. コンテナ型仮想化技術のネットワーク分離では

    アカデミアではどんな研究がされているのか

    様々な論文を引用しながら

    手法について分類・紹介(したい)

    3

    View full-size slide

  4. 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

    ソケット


    View full-size slide

  5. ネットワーク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なのでこっちを一部だけ


    View full-size slide

  6. 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

    View full-size slide

  7. データパスを短くし,スループット,レイテンシ共に

    ホストのネットワークスタックを使用した場合と同等の性能を実現


    ● コンテナ内アプリケーションがソケットを開き,

    ホストで開いたソケットに接ぎ木

    ○ 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]

    View full-size slide

  8. おわりに

    8

    ● コンテナ型仮想化技術におけるネットワーク分離手法は,

    OSSだけではなく,アカデミアでも活発

    ○ コンテナがHPCやNFVで用いられているようになり,それらで用いられる

    カーネルバイパスなどの高速化手法を用いる例が多い(気がする)

    ○ 実装や評価も結構面白いのでGoogle Scholarとかで色々探してみてください

    ○ ossとして公開されることも多い


    ● インフラエンジニアの人でもシステムソフトウェア分野で

    読んでみたら面白そうな国際会議の一例(主観)

    ○ USENIX OSDI,ATC,NSDI

    ○ Unix User Groupが起源なのもあってか,著名システムや実装の面白い論文も多々ある

    ■ VMware ESX(OSDI ‘02),Firecracker(NSDI’20) などなど


    おしまい


    View full-size slide