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

Unikernels report

orumin
November 18, 2017

Unikernels report

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

orumin

November 18, 2017
Tweet

More Decks by orumin

Other Decks in Research

Transcript

  1. UNIKERNELS AT KERNEL/VM @syuu1228 「OSv」 (カーネル/VM 関西 ごかいめ) 1 @ntddk

    「跳ね橋を叩いて渡る An introduction to DrawBridge」 (第十 一回カーネル/VM 探検隊) 2 1syuu1228 2013. 2ntddk 2015. 3 / 19
  2. WHAT IS UNIKERNELS Micro-Kernel の発展形として ExoKernel3 が出現 Mach の言葉で言う「サーバー」をアプリごとにリンクする, 「library

    OS」という概念の導入 この ExoKernel をハイパーバイザに差し替えて libraryOS のアイディ アを再生できないだろうか……? 3Engler, Kaashoek, and O’Toole Jr 1995. 4 / 19
  3. 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
  4. 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
  5. 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
  6. RECENTLY UNIKERNEL - IncludeOS IncludeOS13 正直一発ネタだと思うけどちゃんと IEEE CloudCom に通しててす ごい

    libOS をフレームワークの一種と捉えて,#include<os> として IncludeOS の API を使ってネットワークのプログラムを書ける 今も熱心に開発されている C++ のゼロオーバーヘッド原則が上手く効いてる 13Bratterud, Walla, Haugerud, Engelstad, and Begnum 2015. 10 / 19
  7. RECENTLY UNIKERNEL - EbbRT Elastic Building Block RunTime の略 Unikernel

    は spcecialized OS として良い手段 しかし全てを Unikernel として動かそうとすると仮想化オーバーヘッ ドがある spcecialize したいところだけを libOS にするという発想 素の Linux の上を hosted,そうでない部分を native とする この両者で透過的に動作するためにツールチェインとフレームワーク を開発 C++14 で Future, Lambda を使っていい感じに動作するように 11 / 19
  8. 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
  9. 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
  10. 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
  11. 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
  12. CONCLUSION Unikernels,そして最新の Unikernels の研究について紀要をざっと説 明した コンテナ型仮想化と違ってあまり産業では注目されていないかもし れない しかし Unikernel を

    Docker が買収したり,Docker for Windows は実 際はコンテナではなく Hypervisor-based VM だったりする 可能性が色々あると思います 16 / 19
  13. DISCUSS メニーコアやクラウド,仮想化など様々な技術が揃った今は新しい OS の形としてアリな技術なのではないか ソフトウェアとして DPDK やら SPDK が出てきたり,ハードウェア としては

    NVME だとか FPGA・ASIC 積んだ NIC やアクセラレータ が出てきてる 忘れられかけてる OS そのものの研究必要だよね 何か面白いデモもしたかった 力足らず 17 / 19
  14. 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
  15. 参考文献 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
  16. 参考文献 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
  17. 参考文献 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
  18. 参考文献 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