狠狠撸

狠狠撸Share 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