$30 off During Our Annual Pro Sale. View Details »

Unikernels report

orumin
November 18, 2017

Unikernels report

カーネル/VM 関西 第八回の発表資料です

orumin

November 18, 2017
Tweet

More Decks by orumin

Other Decks in Research

Transcript

  1. Kernel/VM@関西 8
    「Unikernels report」
    orumin(@kotatsu_mi)
    Nov 18th, 2017
    1 / 19

    View Slide

  2. WHO AM I
    orumin,学生
    @kotatsu_mi
    UEFI やったり古いマシンで遊んだり
    専門はクラウドとか仮想化とか分散とかそこらへんっぽい
    古いバズワードですね……
    2 / 19

    View Slide

  3. UNIKERNELS AT KERNEL/VM
    @syuu1228
    「OSv」
    (カーネル/VM 関西 ごかいめ)
    1
    @ntddk
    「跳ね橋を叩いて渡る An introduction to DrawBridge」
    (第十
    一回カーネル/VM 探検隊)
    2
    1syuu1228 2013.
    2ntddk 2015.
    3 / 19

    View Slide

  4. WHAT IS UNIKERNELS
    Micro-Kernel の発展形として ExoKernel3 が出現
    Mach の言葉で言う「サーバー」をアプリごとにリンクする,
    「library
    OS」という概念の導入
    この ExoKernel をハイパーバイザに差し替えて libraryOS のアイディ
    アを再生できないだろうか……?
    3Engler, Kaashoek, and O’Toole Jr 1995.
    4 / 19

    View Slide

  5. WHAT IS UNIKERNELS
    2013 年,Unikernel4 の出現
    2014 年,OSv5
    4Madhavapeddy, Mortier, Rotsos, Scott, Singh, Gazagnaire, Smith, Hand, and Crowcroft 2013.
    5Kivity, Laor, Costa, Enberg, Har’El, Marti, and Zolotarov 2014.
    5 / 19

    View Slide

  6. WHY INTRODUCE UNIKERNELS
    Unikernels の発表年と前後して重要なターム「クラウド」
    2006 年,Eric Schmidt の発言6 が元
    2011 年,NIST による定義付け7
    OSvは IaaS に直接デプロイできるよりセキュアなコンテナという方
    向性だった
    VMM を H/W expose と isolation 目的に使用するという意味では
    Dune8 に近い?
    6E. Schmidt 2006.
    7Mell and Grance 2011.
    8Belay, Bittau, Mashtizadeh, Terei, Mazières, and Kozyrakis 2012.
    6 / 19

    View Slide

  7. RECENTLY UNIKERNEL - RumpRun
    Rump Kernel9
    NetBSD のコードをそのまま利用して既存の OS の上にマイクロカー
    ネル風の仕組みを構築するプロジェクト (since 2007)
    BSDCan ではユーザー空間でのデバイスドライバ開発を可能にするも
    のとして報告されている10
    RumpRun は Rump Kernel を Unikernel に応用したもの
    Rust とか Node.js とかも動く
    RumpRun11 インスタンスをデプロイできる PaaS 風? IaaS 環境の
    ベンチャーも出現した
    DeferPanic12
    9Kantee 2012.
    10Kantee 2009.
    11Kantee and Cormack 2014.
    12DeferPanic 2015.
    7 / 19

    View Slide

  8. RECENTLY UNIKERNEL - RumpRun
    8 / 19

    View Slide

  9. RECENTLY UNIKERNEL - RumpRun
    choose component
    9 / 19

    View Slide

  10. RECENTLY UNIKERNEL - IncludeOS
    IncludeOS13
    正直一発ネタだと思うけどちゃんと IEEE CloudCom に通しててす
    ごい
    libOS をフレームワークの一種と捉えて,#include として
    IncludeOS の API を使ってネットワークのプログラムを書ける
    今も熱心に開発されている
    C++ のゼロオーバーヘッド原則が上手く効いてる
    13Bratterud, Walla, Haugerud, Engelstad, and Begnum 2015.
    10 / 19

    View Slide

  11. RECENTLY UNIKERNEL - EbbRT
    Elastic Building Block RunTime の略
    Unikernel は spcecialized OS として良い手段
    しかし全てを Unikernel として動かそうとすると仮想化オーバーヘッ
    ドがある
    spcecialize したいところだけを libOS にするという発想
    素の Linux の上を hosted,そうでない部分を native とする
    この両者で透過的に動作するためにツールチェインとフレームワーク
    を開発
    C++14 で Future, Lambda を使っていい感じに動作するように
    11 / 19

    View Slide

  12. RECENTLY UNIKERNEL - LightVM
    “My VM is Lighter (and Safer) than your Container” という論文題の
    煽りの秀逸さ14
    先月末の SOSP で報告された論文
    Xen の起動処理を調べたり起動にかかる時間をプロファイリング・
    ブレイクダウンした結果,XenStore と xl コマンドが起動に時間が
    かかると判明
    XenStore を使わない仕組み,NOXS と xl の代わりの chaos を開発
    起動処理の前半部分をデーモンにして豫め処理を終わらせて待機さ
    せ,コマンド実行に応じてイメージビルド・ブートを行なう
    vif の追加や削除を bash script + udevd でやるのをやめて独自デーモ
    ン xendevd を使うことに
    14Manco, Lupu, F. Schmidt, Mendes, Kuenzer, Sati, Yasukata, Raiciu, and Huici 2017.
    12 / 19

    View Slide

  13. RECENTLY UNIKERNEL - LightVM
    Root mode
    Non-root mode
    Hardware
    Xen Kernel
    User
    process
    Guest OS
    Kernel
    User
    process
    Linux
    Kernel
    Domain 0 Domain U (Guest OS)
    Xenbus Xenbus
    Xen
    Store
    Linux
    Device Driver
    13 / 19

    View Slide

  14. RECENTLY UNIKERNEL - LightVM
    結果として,Docker に勝る起動
    速度を論文では示している
    プロセス生成ともいい勝負を
    している
    14 / 19

    View Slide

  15. RECENTLY UNIKERNEL - LightVM
    NFV の Click を Unikernel 型にした研究 ClickOS15 の続き
    NEC Euro
    コードも公開されている!!
    http://cnp.neclab.eu/projects/lightvm/
    追試するしかないのでは……?
    15Martins, Ahmed, Raiciu, Olteanu, Honda, Bifulco, and Huici 2014.
    15 / 19

    View Slide

  16. RECENTLY UNIKERNEL - LightVM
    NFV の Click を Unikernel 型にした研究 ClickOS15 の続き
    NEC Euro
    コードも公開されている!!
    http://cnp.neclab.eu/projects/lightvm/
    追試するしかないのでは……?
    Linux カーネルの彼らの fork したブランチがコンパイル通りません
    でした……
    たぶんカーネルコンフィグをミスったのでちょっとコンフィグ確認し
    なおします……
    15Martins, Ahmed, Raiciu, Olteanu, Honda, Bifulco, and Huici 2014.
    15 / 19

    View Slide

  17. CONCLUSION
    Unikernels,そして最新の Unikernels の研究について紀要をざっと説
    明した
    コンテナ型仮想化と違ってあまり産業では注目されていないかもし
    れない
    しかし Unikernel を Docker が買収したり,Docker for Windows は実
    際はコンテナではなく Hypervisor-based VM だったりする
    可能性が色々あると思います
    16 / 19

    View Slide

  18. DISCUSS
    メニーコアやクラウド,仮想化など様々な技術が揃った今は新しい
    OS の形としてアリな技術なのではないか
    ソフトウェアとして DPDK やら SPDK が出てきたり,ハードウェア
    としては NVME だとか FPGA・ASIC 積んだ NIC やアクセラレータ
    が出てきてる
    忘れられかけてる OS そのものの研究必要だよね
    何か面白いデモもしたかった
    力足らず
    17 / 19

    View Slide

  19. APPENDIX
    システム研究以外での Unikernels
    HermitCore16 … MPI 前提の HPC での OS ノイズを減らす方策のひと
    つとしての Unikernels
    Unikernels と違う方向に進化した libOS
    DrawBridge17
    Graphene18
    もしかして Noah19も libOS に入るんですかね?(というよりはただの
    OS 仮想化ぽいから微妙? 教えてぬるぽへせんせー @nullpo_head)
    16Lankes, Pickartz, and Breitbart 2016.
    17Porter, Boyd-Wickizer, Howell, Olinsky, and Hunt 2011.
    18Tsai, Arora, Bandi, Jain, Jannen, John, Kalodner, Kulkarni, Oliveira, and Porter 2014.
    19Saeki, Nishiwaki, Shinagawa, and Honiden 2017.
    18 / 19

    View Slide

  20. 参考文献 I
    [1] syuu1228, OSv, Oct. 2013. (visited on 11/18/2017).
    [2] ntddk, 跳ね橋を叩いて渡る An introduction to DrawBridge, Jun. 2015. (visited on 11/18/2017).
    [3] D. R. Engler, M. F. Kaashoek, and J. O’Toole Jr, “Exokernel: An Operating System Architecture
    for Application-Level Resource Management,” 15th ACM SIGOPS Symposium on Operating
    Systems Principles, ser. SOSP ’95, vol. 1, Copper Mountain, CO, USA: ACM, Dec. 1995,
    pp. 251–266, isbn: 0-89791-715-4. doi: 10.1145/224056.224076.
    [4] A. Madhavapeddy, R. Mortier, C. Rotsos, D. Scott, B. Singh, T. Gazagnaire, S. Smith, S. Hand,
    and J. Crowcroft, “Unikernels: Library Operating Systems for the Cloud,” 18th ACM
    International Conference on Architectural Support for Programming Languages and Operating
    Systems, ser. ASPLOS ’13, Houston, TX, USA: ACM, Mar. 2013, pp. 461–472, isbn:
    9781450318709. doi: 10.1145/2451116.2451167.
    [5] A. Kivity, D. Laor, G. Costa, P. Enberg, N. Har’El, D. Marti, and V. Zolotarov, “OSv—Optimizing
    the Operating System for Virtual Machines,” 2014 USENIX Annual Technical Conference,
    ser. USENIX ATC ’14, Philadelphia, CA, USA: USENIX Assocation, Jun. 2014, pp. 61–72, isbn:
    9781931971102.
    [6] E. Schmidt, Search Engine Strategies Conference - Conversation with Eric Schmidt hosted by
    Danny Sullivan, Aug. 2006. (visited on 08/12/2016).
    19 / 19

    View Slide

  21. 参考文献 II
    [7] P. Mell and T. Grance, “SP 800-145. The NIST Definition of Cloud Computing,” Tech. Rep.,
    Sep. 2011. doi: 10.6028/NIST.SP.800-145.
    [8] A. Belay, A. Bittau, A. Mashtizadeh, D. Terei, D. Mazières, and C. Kozyrakis, “Dune: Safe
    User-level Access to Privileged CPU Features,” 10th USENIX Symposium on Operating
    Systems Design and Implementation, ser. OSDI ’12, Hollywood, CA, USA: USENIX Assocation,
    Oct. 2012, pp. 335–348, isbn: 978-1-931971-96-6.
    [9] A. Kantee, “Flexible Operating System Internals: The Design and Implementation of the
    Anykernel and Rump Kernels,” PhD, Aalto University, 2012, p. 358, isbn: 978-952-60-4916-8.
    [10] ——,“Kernel Development in Userspace - The Rump Approach,” BSDCan 2009, ser. BSDCan,
    Ottawa, ON, Canada, May 2009, pp. 1–12.
    [11] A. Kantee and J. Cormack, “Rump Kernels: No OS? No Problem!” ;login:, vol. 39, no. 5,
    pp. 11–17, Oct. 2014, issn: 0971-8044. doi: 10.1007/BF02896304.
    [12] DeferPanic, DeferPanic, 2015. (visited on 08/25/2016).
    [13] A. Bratterud, A.-A. Walla, H. Haugerud, P. E. Engelstad, and K. Begnum, “IncludeOS: A
    Minimal, Resource Efficient Unikernel for Cloud Services,” 2015 IEEE 7th International
    Conference on Cloud Computing Technology and Science, ser. CloudCom 2015, Vancouver,
    BC, Canada: IEEE, Nov. 2015, pp. 250–257, isbn: 978-1-4673-9560-1. doi:
    10.1109/CloudCom.2015.89.
    20 / 19

    View Slide

  22. 参考文献 III
    [14] F. Manco, C. Lupu, F. Schmidt, J. Mendes, S. Kuenzer, S. Sati, K. Yasukata, C. Raiciu, and
    F. Huici, “My VM is Lighter (and Safer) than your Container,” 26th ACM Symposium on
    Operating Systems Principles, ser. SOSP ’17, Shanghai, China: ACM, Oct. 2017, pp. 218–233,
    isbn: 978-1-4503-5085-3. doi: 10.1145/3132747.3132763.
    [15] J. Martins, M. Ahmed, C. Raiciu, V. Olteanu, M. Honda, R. Bifulco, and F. Huici, “ClickOS and
    the Art of Network Function Virtualization,” 11th USENIX Symposium on Networked Systems
    Design and Implementation, ser. NSDI ’14, Seattle, WA, USA: USENIX Assocation, Apr. 2014,
    pp. 459–473, isbn: 978-1-931971-09-6.
    [16] S. Lankes, S. Pickartz, and J. Breitbart, “HermitCore—A Unikernel for Extreme Scale
    Computing,” 6th International Workshop on Runtime and Operating Systems for
    Supercomputers, ser. ROSS ’16, Kyoto, Japan: ACM, Jun. 2016, 4:1–4:8, isbn:
    9781450343879. doi: 10.1145/2931088.2931093.
    [17] D. E. Porter, S. Boyd-Wickizer, J. Howell, R. Olinsky, and G. C. Hunt, “Rethinking the Library
    OS from the Top Down,” 16th ACM International Conference on Architectural Support for
    Programming Languages and Operating Systems, ser. ASPLOS ’11, Newport Beach, CA, USA:
    ACM, Mar. 2011, pp. 291–304.
    21 / 19

    View Slide

  23. 参考文献 IV
    [18] C.-C. Tsai, K. S. Arora, N. Bandi, B. Jain, W. Jannen, J. John, H. A. Kalodner, V. Kulkarni,
    D. Oliveira, and D. E. Porter, “Cooperation and Security Isolation of Library OSes for
    Multi-process Applications,” 9th ACM SIGOPS/EuroSys European Conference on Computer
    Systems, ser. EuroSys ’14, Amsterdam, The Netherlands: ACM, Apr. 2014, 9:1–9:14, isbn:
    978-1-4503-2704-6. doi: 10.1145/2592798.2592812.
    [19] T. Saeki, Y. Nishiwaki, T. Shinagawa, and S. Honiden, “Bash on Ubuntu on macOS,” 8th
    Asia-Pacific Workshop on Systems, ser. APSys ’17, Mumbai, India: ACM, Sep. 2017,
    17:1–17:8, isbn: 978-1-4503-5197-3. doi: 10.1145/3124680.3124733.
    22 / 19

    View Slide