SlideShare a Scribd company logo
物理マシンをケチる技術
            Satoshi Kobayashi

CloudStack Developer Day LT (2012/11/10)
誰?


所属: 株式会社ストラトスフィア

名前: 小林 智史 (Satoshi Kobayashi)

Mail: satoshi-k at stratosphere.co.jp

Facebook: satoshi.kobayashi.ginmokusei
誰?


所属: 株式会社ストラトスフィア

名前: 小林 智史 (Satoshi Kobayashi)

Mail: satoshi-k at stratosphere.co.jp

Facebook: satoshi.kobayashi.ginmokusei
現場あるある
現場あるある

(`・ω・´)

「CloudStack の検証がしたい!」
現場あるある

(`・ω・´)

「CloudStack の検証がしたい!」

(´・ω・`)

「でも検証用のマシンがない... 」
現場あるある

(`・ω・´)

「CloudStack の検証がしたい!」

(´・ω・`)

「でも検証用のマシンがない... 」

(上司)

「こっちみんな!」
どう解決する?
どう解決する?


1. 駄々をこねてみる
      _, ,_
     (`Д́  < 買ってくれなきゃヤダヤダ
         (
       ヽ  つ  ジタバタ
         〃〃
どう解決する?


1. 駄々をこねてみる
      _, ,_
     (`Д́  < 買ってくれなきゃヤダヤダ
         (
       ヽ  つ  ジタバタ
         〃〃


→ (会社の) 予算は急に変えられない
となると...
となると...


2. 動かしたつもりになってみる
 +   +
    _  +
  (0゜ー ー)。o0○(おぉぉ... CloudStack すげえ!)
  (0゜   +        
  と__)__) +




            ※ Imaginary Driven Development (IDD)
となると...


2. 動かしたつもりになってみる
 +   +
    _  +
  (0゜ー ー)。o0○(おぉぉ... CloudStack すげえ!)
  (0゜   +        
  と__)__) +

→ 卓越した妄想力が必要


            ※ Imaginary Driven Development (IDD)
じゃあどうしよう?




 本題
こうしよう




Nested Virtualization

      ※ a.k.a: Nested VM, VM on VM
今ある資源を有効利用



仮想マシンの中で仮想マシンを動かす
今ある資源を有効利用



仮想マシンの中で仮想マシンを動かす
つまりこういうこと
つまりこういうこと




   ホストOS
  ハードウェア
つまりこういうこと




   ゲストOS
  ハイパーバイザ
   ホストOS
  ハードウェア
つまりこういうこと


   ゲストOS
  ハイパーバイザ
   ゲストOS
  ハイパーバイザ
   ホストOS
  ハードウェア
どんな環境でもできるの?
どんな環境でもできるの?




    NO
残念ながら




できるか否かはハイパーバイザ依存
こいつらがくせ者


   ゲストOS
  ハイパーバイザ
   ゲストOS
  ハイパーバイザ
   ホストOS
  ハードウェア
こいつらがくせ者


   ゲストOS
  ハイパーバイザ
   ゲストOS
  ハイパーバイザ
   ホストOS
  ハードウェア
なぜ?



   ハイパーバイザ様の都合

「朕は CPU の仮想化支援機能が欲しいぞよ」




 ※ 要求しない/しないようにできるものもある
なにそれ


   CPU の仮想化支援機能
要約: ハードウェアで仮想マシンを速くしよう


       (Intel) Intel-VT

       (AMD) AMD-V
ここで有効なら勝ち


   ゲストOS
  ハイパーバイザ
   ゲストOS
  ハイパーバイザ
   ホストOS
  ハードウェア
ここで有効なら勝ち


                  ゲストOS
                 ハイパーバイザ
                  ゲストOS
                 ハイパーバイザ
Intel-VT/AMD-V    ホストOS
                 ハードウェア
ここで有効なら勝ち


                  ゲストOS
                 ハイパーバイザ
Intel-VT/AMD-V    ゲストOS
                 ハイパーバイザ
Intel-VT/AMD-V    ホストOS
                 ハードウェア
つまり?


  下にいるハイパーバイザが大事

ゲスト OS に仮想化支援機能を提供する機能の有無




         ※ 機能の名称は不明 (教えて!)
どれでできるの?

    VMware

     KVM

   VirtualBox

 ParallelsDesktop

   Xen(Server)

    Hyper-V
どれでできるの?

    VMware

     KVM

   VirtualBox

 ParallelsDesktop

     ?
   Xen(Server)

     ?
    Hyper-V
VMware

Fusion                    Workstation
     *     +    巛 ヽ
                〒 !   +    。     +    。     *   
                                                
    。
          +    。  ¦  ¦
       *     +   / /   イヤッッホォォォオオォオウ!
           _ / /
          (́ ` / / +    。     +    。   *     。
          ,-     f
          / ュヘ    ¦ *     +    。     +   。 +
Player
         〈_} )   ¦
            /    ! +    。     +    +     *
           ./  ,ヘ  ¦
                       ESXi
     ガタン ¦¦¦ j  / ¦  ¦ ¦¦¦
    ――――――――――――
VMware

Fusion                    Workstation
     *     +    巛 ヽ
                〒 !   +    。     +    。     *   
                                                
    。
          +    。  ¦  ¦
       *     +   / /   イヤッッホォォォオオォオウ!
           _ / /
          (́ ` / / +    。     +    。   *     。
          ,-     f
          / ュヘ    ¦ *     +    。     +   。 +
Player
         〈_} )   ¦
            /    ! +    。     +    +     *
           ./  ,ヘ  ¦
                       ESXi
     ガタン ¦¦¦ j  / ¦  ¦ ¦¦¦
    ――――――――――――
KVM



         KVM
ただし Kernel version で制約あり
Intel-VT: 3.2 以降
AMD-V: 3.0 以降


               ※ バージョンはちょっと怪しい
KVM



         KVM
ただし Kernel version で制約あり
Intel-VT: 3.2 以降
AMD-V: 3.0 以降


               ※ バージョンはちょっと怪しい
その他

今後に期待したい

VirtualBox

ParallelsDesktop

試していない

Xen(Server)

Hyper-V       ※ XenServer は 6.1 からできるとのこと
注意点


ハードウェア (CPU) の機能にも依存するらしい

    Intel-VT/EPT (Extended Page Tables)

    AMD-V/RVI (Rapid Virtualization Indexing)



             ※ Intel は名前が Core i なら OK
デモ


Linux (Ubuntu 12.10)
       KVM
 Linux (CentOS 6.3)
  VMware Fusion 5
  Mac OS X 10.8.2
Intel Core i7 3667U
おまけ


                                  Linux
   CS4 Management     CS4 Agent   KVM
Linux (CentOS 6.3) Linux (CentOS 6.3)
            VMware Fusion 5
            Mac OS X 10.8.2
           Intel Core i7 3667U
別の選択肢




  清貧なハイパーバイザを使う

「朕は CPU の仮想化支援機能などいらんぞよ」
こいつ


 ゲストOS
ハイパーバイザ
 ゲストOS
ハイパーバイザ
 ホストOS
ハードウェア
たとえば...


                                           ゲストOS
                 CS4 Management             Xen
                     Linux (Ubuntu 12.04 LTS)
DevCloud の場合
                              VirtualBox
                        Mac, Windows, Linux
                           ハードウェア
まとめ

検証に必要な物理マシンは減らせる

Nested Virtualization を駆使する

できるかはハイパーバイザ次第

Intel-VT/AMD-V がゲスト OS で使えるか否か

Intel-VT/AMD-V をハイパーバイザが要求するか
物理マシンをケチる技術
Thank you!

More Related Content

物理マシンをケチる技術

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n