SlideShare a Scribd company logo
1 of 114
Download to read offline
セッション ID: T2-401




 Effective Hyper-V R2 SP1


 マイクロソフト株式会社
 コンサルティングサービス統括本部
 佐々木邦暢 (twitter: @ksasakims)
セッションの目的とゴール
    セッションの目的
     Hyper-V R2 SP1 の新機能である
     「Dynamic Memory」の設計思想と動作原理を解
     説します
     Dynamic Memory の実運用上の留意点を
     解説します
    セッションのゴール
     ハイパーバイザーのメモリ管理技法について、
     製品に依存しない普遍的な知識を身につける
     Dynamic Memory の仕組みとその特徴を
     説明できるようになる
2
ご注意




          本セッションでは、
      現在開発中の製品を取り扱っています。
    仕様および機能は変更される可能性があります。



3
アジェンダ
    イントロダクション

    いまさら聞けない「仮想メモリ」

    ハイパーバイザーのメモリ管理効率化技法

    Dynamic Memory 登場!


4
本日のテーマ

5
Hyper-V R2 SP1
       の新機能

6
Dynamic
    Memory
7
動的記憶

8
なぜ必要?

9
どんな仕組み?

10
どう使う?

11
詳しく解説

12
最後の
     セッション
13
#T2_401
     開始なう
14
ハイパーバイザーの
仕事とは
そもそも

16
ハイパーバイザーの
    仕事とは
     物理的なリソースを抽象化(= 仮想化)して
       複数の仮想マシンに効率よく配分




     CPU   ディスク   メモリ   NIC

17
Hyper-V の仕事を
     振り返ってみると

18
CPU の仮想化
       もし、CPU が仮想化されていなかったら

 ペアレント               VM 1   VM 2            VM 3
パーティション




                      ハイパーバイザー
     コア 0            コア 1   コア 0            コア 1
            ソケット 0                 ソケット 1


      これでは物理パーティショニング
19
そこで
     プロセッサの仮想化

       論理プロセッサ (LP) 上で
      複数の仮想プロセッサ (VP) が
       実行されるという仕組み


20
CPU の仮想化
 ペアレント                   VM 1                 VM 2                 VM 3
パーティション                  (2 VP)               (2 VP)               (4 VP)




 VP 0          VP 0   VP 1          VP 1   VP 0          VP 2   VP 1          VP 3
     Root VP 0         Root VP 1            Root VP 2            Root VP 3
        LP 0                 LP 1                 LP 2                 LP 3

                              ハイパーバイザー
      コア 0               コア 1                コア 0                  コア 1
                ソケット 0                                    ソケット 1
21
CPU の仮想化


22
ディスク の仮想化
      もし、ディスク が仮想化されていなかったら

 ペアレント          VM 1     VM 2     VM 3
パーティション




     ディスク 0    ディスク 1   ディスク 2   ディスク 3


         VM の台数分、ディスクが必要
23
Virtual Hard Disk
     という仕組みを導入
     ホスト OS 上の .vhd ファイル
      仮想マシンからはディスクドライブに見える
     動的拡張 VHD
      「実際に使った分だけ、ディスクを消費する」
      容積効率の良い方式

24
ディスクの仮想化
     .vhd ファイルで仮想的なディスクドライブ

 ペアレント       VM 1   VM 2   VM 3
パーティション

     .vhd

     .vhd

     .vhd



     一台のディスクを複数の VM で共有
25
ディスクの仮想化


26
ネットワークの仮想化
       ネットワークが仮想化されていなかったら

 ペアレント           VM 1   VM 2    VM 3
パーティション




     NIC 0      NIC 1   NIC 2   NIC 3


             NIC が何枚あっても足りない
27
そこで
      仮想ネットワーク
     仮想ネットワーク (= 仮想スイッチ)
      ホストに「仮想スイッチ」を作成
      VM は「仮想スイッチ」を介して通信
      複数の VM が一枚の物理 NIC を共有し、
      同時にネットワークにアクセスできる

28
ネットワークの仮想化
          仮想スイッチで NIC を多重化

 ペアレント       VM 1            VM 2   VM 3
パーティション




                    仮想スイッチ


     一枚の NIC を複数の VM で共有
29
ネットワークの
       仮想化


30
メモリは?

31
Hyper-V のメモリ管理
 ホストが管理するメモリを固定的に割り当てるのみ

  ペアレント       VM 1     VM 2   VM 3
 パーティション
       ホストの


                メモリを


                       固定的に


                              割り当て




32
わりと
     工夫がない
33
固定的な割り当ては無駄が出る
           空いているメモリを集めれば
         もっとたくさん VM を実行できるのでは
       VM 1      VM 2      VM 3    VM 4


                VM 2 の    VM 3 の
      VM 1 の    回収済み      回収済み
      回収済み     空きメモリ     空きメモリ
     空きメモリ


                使用中       使用中
      使用中



34
メモリの
     効率的な
     管理が急務
35
そこで Dynamic Memory
ひかえめに起動          不足したら     メモリを追加    余れば回収
     DM VM        DM VM     DM VM    DM VM
                            700 MB    550 MB

     512 MB       512 MB
                            追加        回収
                  空き        空き
                                      空き
     空き

                 使用中        使用中
     使用中                             使用中


     回収したメモリを他の VM に追加して有効活用
36
Dynamic Memory 基本動作
これって
     オーバー コミット?
     他のハイパーバイザーだと、
     「オーバーコミット」
     という言葉がよく出てきますが
     Hyper-V の Dynamic Memory は?
      オーバーコミットなの?

38
おおむね
      YES
39
でも尐し違う
     ところもある
40
Dynamic Memory の特徴
Hyper-V の Dynamic Memory
                               ゲスト OS から
                             「利用可能」に見える
               ゲスト OS から見た    メモリは常に実際の
               「実装メモリ量」が       物理メモリに
                動的に変化する        対応している



ESX や KVM のオーバーコミット
                               ゲスト OS から
                             「利用可能」に見える
               ゲスト OS から見た    メモリは必ずしも
               「実装メモリ量」は      実際の物理メモリの
                 常に一定          裏付けがない

41
この違い
     どこから?
42
There’s more than one way…
     オーバーコミットにはいろいろなやり方がある



        ページ共有          バルーニング



     ホスト ページング         Hot-Add メモリ
     (ハイパーバイザー スワップ)




43
なぜこんなに
      色々な方式が?
       CPU やディスク、NIC の仮想化は、
     どのハイパーバイザーも基本的には同じ方式


     メモリだけは、リソースの効率的な
     利用方式がイロイロあるのはなぜ?

44
それを
     理解するには

45
急がば回れで「仮想メモリ」
        各種オーバーコミット方式の
     特質と得失をより良く理解するには OS の
     仮想メモリ機構に関する基礎知識が有用

                去年は Live Migration の前に
               クラスターのおさらいをしましたが



        今年は Dynamic Memory の
        前に、仮想メモリを再確認

46
いまさら聞けない
「仮想メモリ」
メモリはすでに仮想化済
         メモリやディスクという記憶域リソースを仮想化し
         個々のプロセスに専用のアドレス空間を割り当てる


     プロセス A     プロセス B   プロセス C     プロセス D

     仮想メモリ      仮想メモリ    仮想メモリ      仮想メモリ




                メモリ マネージャー (MM)

                                  pagefile.sys

              物理メモリ          ページ ファイル

48
プロセスの仮想アドレス空間
 ポイントは「自分専用のメモリ空間が持てる」こと

     x86: プロセス毎に 4 GB        x 64: プロセス毎に 16 TB!

     FFFF FFFF                      FFFF FFFF FFFF FFFF
     (32 ビット)                カーネル空間 (64 ビット)
                 カーネル空間      (上位 8 TB)
                 (上位 2 GB)
                             それはそれは
                              広大な
                             未使用空間
                 ユーザー空間
                 (下位 2 GB)   ユーザー空間
                             (下位 8 TB)
           0                             0

49
例えば、エクスプローラー




              ほぼ 8 TB が
               フリー!



50
でも
     そんなにメモリ
      積んでない
51
仮想ページと物理フレーム
 プロセス A     仮想アドレス

仮想アドレス      1 バイト毎に割当
  空間                                 物理アドレス
 ページ       ページ                         空間
     ページ    メモリの割当・解放の単位              フレーム
     ページ    従来は 4 KB が主流              フレーム
     ページ                               フレーム
     ページ   ラージ ページ (large page)        フレーム
     ページ    x86: 2 MB / 4 MB          フレーム
     ページ    x64: 2 MB
                                フレーム (ページ フレー
     ページ                              ム)
     ページ
                      物理メモリの管理単位
     ページ
52
デマンド ページング
 プロセス A                     プロセス B
仮想アドレス          物理アドレス      仮想アドレス
  空間              空間          空間
 コミット             A          コミット
     空き           B          空き
     コミット         空き         空き
     空き           A          コミット
     空き           B          空き
     空き           空き         空き
     空き                      空き
     空き                      空き
                要求に応じて
     空き      必要な分だけを割り当てる    空き
     空き                      空き
53
ページの共有
 プロセス A                          プロセス B
仮想アドレス            物理アドレス         仮想アドレス
  空間                空間             空間
 ページ               フレーム           ページ
     ページ           フレーム           ページ
     ページ           shared.dll
                    フレーム          ページ
     ページ           フレーム           ページ
 shared.dll
   ページ             フレーム            ページ
                                 shared.dll
     ページ                          ページ
     ページ                          ページ
     ページ      同じフレームを複数のプロセス間で    ページ
              共有することでメモリを有効利用
     ページ                          ページ
     ページ                          ページ
54
ページ アウトとページ イン
 プロセス A
            空きがなければディスクに退避          プロセス B
仮想アドレス             物理アドレス           仮想アドレス
  空間                 空間               空間
 コミット                 A              コミット
     コミット             B              空き
     空き               A              空き
             空いて
     割当要求             B              コミット
             ない!
     空き                       空いて    空き
                      A
                              ない!
     コミット                            割当要求
              ページイン       ページアウト
     空き                              空き
     空き            ページ ファイル          空き
     空き                              空き
     空き                              空き
55
スラッシング
 プロセス A
            ページングにかかりっきり!           プロセス B
仮想アドレス             物理アドレス           仮想アドレス
  空間                 空間               空間
 コミット               フレーム             コミット
            空いて
     コミット   ない!     フレーム             空き
                              空いて
     割当要求           フレーム      ない!    割当要求
             空いて
     割当要求           フレーム             コミット
             ない!
     空き                       空いて    割当要求
                    フレーム
                              ない!
     コミット                            空き
            空いて
     割当要求   ない!                      割当要求
                              空いて
     空き     空いて    ページ ファイル   ない!    空き
            ない!
     割当要求                            空き
     空き                              空き
56
仮想環境ではもう一段
          二段アドレス変換: GVA → GPA → SPA
                                   シャドウ ページ テーブルは
      プロセス          プロセス
                                   二段アドレス変換を統合し、
      ゲスト仮想        ゲスト仮想           GVA を直接 SPA に変換する
     アドレス (GVA)   アドレス (GVA)
                                    SPT を更新し続けることは
                   ページ             軽い処理ではなく、仮想化の
ゲスト OS            テーブル              オーバーヘッドの主要部分

仮想             ゲスト物理             SLAT 機能を持つプロセッサでは、
マシン           アドレス (GPA)          この処理をハードウェアで行える

ハイパーバイザー                   シャドウ ページ テーブル   (SPT)


物理マシン                       システム物理アドレス (SPA)

57
仮想記憶の
     おさらい終了

58
ハイパーバイザーの
メモリ管理効率化技法
オーバーコミットの技法 (再掲)
     いくつかの技術の組み合わせで実現されています



        ページ共有          バルーニング


     ホスト ページン
         グ             Hot-Add メモリ
     (ハイパーバイザー スワップ)



60
ページ共有
      仮想マシン間で内容が同じページを共有


     ページを定期的にスキャンしてハッシュ値を計算

     ハッシュ値が一致した場合、ページ内容を
     ビット単位で改めて比較して、同一性を判定




61
バルーニング
     VM 1                  VM 2

     空き        VM 1 から     空き
               回収した
                メモリ        増強
     確保
                           増強
                回収
     使用中
                回収         使用中
     確保



       「バルーン ドライバー」が確保したメモリを
        他の VM に「横流し」することで有効活用
62
ホスト ページング
         デマンド ページング方式による仮想記憶を
          ハイパーバイザー レベルで実装したもの


             ゲスト仮想アドレス (GVA)
ゲスト OS
               通常のページング
                                 二段階の
仮想マシン
                                ページング
          ゲスト物理メモリ   ページ ファイル


ハイパーバイザー ここでもページング (ホスト ページング)


物理マシン     実際の物理メモリ   ページ ファイル

63
あえて星取り表を作ってみます

                       VMware
             Hyper-V            Xen   KVM
                        ESX

 ページ共有

 バルーニング

 ホスト ページング

 Hot-Add



64
Hyper-V は
       が尐ない
     じゃないか
65
Hyper-V のオーバーコミット
      ページ共有もホスト ページングもしません



        ページ共有          バルーニング


     ホスト ページン
         グ             Hot-Add メモリ
     (ハイパーバイザー スワップ)



66
ページ共有の概念図
      VM 1                     VM 2
 VMのメモリ          ホストの         VMのメモリ
                 物理メモリ
     ページ          フレーム         ページ
     ページ          フレーム         ページ
     ページ          ページ          ページ
                  フレーム
                  共有!
     ページ          フレーム         ページ
     共通部分
     ページ          フレーム        ページ
                              共通部分
     ページ                       ページ
     ページ                       ページ
     ページ                       ページ
     ページ      全VMのメモリを歩き回って    ページ
     ページ       「同じページ」を探す      ページ
67
同じ内容のページでも
               即座に共有されるわけではない
      VM 1                            VM 2
 VMのメモリ             ホストの             VMのメモリ
                    物理メモリ
     ページ             フレーム             ページ
     ページ             フレーム             ページ
     ページ              VM 1の           ページ
                     フレーム
                     メモリ
     ページ             フレーム            ページ
      VM2と                            VM1と
     ページ             フレーム            ページ
                                     共通部分
     同じ内容                            同じ内容
     ページ             フレーム            ページ
     ページ              VM 2の           ページ
                     フレーム
                     メモリ
     ページ             フレーム             ページ
     ページ             フレーム             ページ
     ページ                              ページ
             共通部分が「発見」されるまでは共有できない
68
一旦ページが共有されても

        例えば、片方のVMが再起動したら?




     あるいは、片方だけメモリの内容が変わったら?




           どうなるでしょう?



69
ページ共有の解除
     VM 1                       VM 2
 VMのメモリ       ホストの             VMのメモリ
              物理メモリ
     ページ       フレーム             ページ
     ページ       フレーム             ページ
                        コピーが
     ページ        VM 1の           ページ
               フレーム      必要
               メモリ
  ページ          フレーム             ページ
 共通だった           共有             内容
  ページ            解除
               フレーム             ページ
                               共通部分
   部分                          変わった!
  ページ          フレーム             ページ
     ページ        VM 2の           ページ
               フレーム
               メモリ
     ページ       フレーム             ページ
     ページ       フレーム             ページ
     ページ                        ページ
70
ページ共有について
      ラージ ページは共有しづらい!

                 4

                     4 KB のページ


                     2,097,152 / 4,096 = 512

     2 MB のページ
                      1 ページの
                     大きさが 512 倍

71
ページ共有について
     VMware さんのドキュメントより

 “hardware-assisted memory virtualization systems, ESX will automatically back guest
  physical pages with large host physical pages “

 「SLAT 機構を持つハードウェア上では、ESX は自動的にゲスト物理ページをホ
  ストのラージ ページに格納します」

 In such systems, ESX will not share those large pages because:
  1) the probability of finding two large pages having identical contents is low, and
  2) the overhead of doing a bit-by-bit comparison for a 2 MB page is much larger than for a
  4 KB page.


 ESX はこれらラージ ページを共有しないでしょう。なぜなら、
    二つのラージページの内容がぴったり一致する可能性は低いし、
    2 MB ページの全ビットを比較するオーバーヘッドが大きいから

         http://www.vmware.com/files/pdf/techpaper/vsp_41_perf_memory_mgmt.pdf

72
ページ共有について
     Windows とラージ ページ
  Windows Vista, Windows 7 はラージ ページを利用します
  Windows Server 2008 / 2008 R2 もラージ ページを利用します
  Hyper-V R2 自身も、ラージページを使用します




           ラージ ページが一般化すると
            現在行われているような
             ページ共有は有用性が
            低下するということです


73
ホスト ページングについて
    KVM の生みの親 Avi Kivity 氏のブログより
                                http://avikivity.blogspot.com/2008/04/memory-overcommit-with-kvm.html

        Swapping is used as a last resort in order to guarantee that services to not fail.

 「スワッピングはサービス停止を防ぐための最後の手段だ」




     VMware さんのドキュメントより
                                http://www.vmware.com/files/pdf/techpaper/vsp_41_perf_memory_mgmt.pdf

 “hypervisor swapping is used as a last resort to reclaim memory from the virtual machine”


 「スワッピングは仮想マシンからメモリを回収するための最後の手段だ」


    74
last resort
     最後の手段

75
なぜ、最後の手段なのか


       KY なページング



      「ダブル ページング」




76
KY なページング
     ゲスト OS に依存しないゆえ
      ハイパーバイザーは、仮想マシンの
      物理メモリが、ゲスト OS 上で持っている
      「意味」まで察することはできません
     容赦なくページアウト
      「ロックされたページ」や、「非ページ プール」の
      ような、「ページ アウトされては困るページ」も
      ハイパーバイザーからは「ただのページ」


 これは、ゲスト OS の性能に深刻な影響を与えます


77
ダブル ページング
     ハイパーバイザーとゲストが同じページに対して
     「噛み合わないページング」をしてしまうこと


            ゲスト仮想アドレス (GVA)
ゲスト OS
             ページ
              A
仮想マシン    ゲスト物理メモリ   ページ ファイル


ハイパーバイザー
             ページ
              A
物理マシン    実際の物理メモリ   ページ ファイル

78
ダブル ページング
          実は古くから知られていた問題




 “The double paging anomaly”
    著者の Goldberg 氏は
       仮想化界の大御所




            Year of Publication: 1974
79
Hyper-V ではロックしてます
 仮想マシン用のメモリは、
  ペアレント OS 内の winhv.sys
  というデバイス ドライバーが確保
 ページ アウトされないように
  がっちりとロックしています




80
何度か引用したこの文書




      http://www.vmware.com/files/pdf/techpaper/vsp_41_perf_memory_mgmt.pdf



     とても実用的で良い文書だと思います

81
例えばオーバーコミットに関して
 Host memory size should be larger than guest memory usage.

 ホストのメモリ サイズは、ゲストのメモリ使用量以上であるべきだ

               http://www.vmware.com/files/pdf/techpaper/vsp_41_perf_memory_mgmt.pdf

 For example, it is unwise to run a virtual machine with a 2 GB working set
  size in a host with only 1 GB host memory.

 ホストに 1 GB しかメモリがないのに、 2 GB のメモリを消費する仮想マシンを
  動かすというのは愚かなことだ

               http://www.vmware.com/files/pdf/techpaper/vsp_41_perf_memory_mgmt.pdf


               オーバーコミットできるとはいっても
                 「無い袖を振ってはいけない」

 82
仮想マシンのメモリサイズ設定
 Set an appropriate virtual machine memory size. The virtual
  machine memory size should be slightly larger than the average
  guest memory usage.

 「仮想マシンのメモリ サイズを適切に設定しましょう。
  平均的な使用量よりちょっとだけ多めのメモリを与えるべきです」
             http://www.vmware.com/files/pdf/techpaper/vsp_41_perf_memory_mgmt.pdf




         オーバー コミットできるからといって、
      ゲストに適当に多めのメモリを与えて良いわけではない



 83
同感です

84
つまり
     ページ共有は、ラージ ページの一般化という状況の
     変化に伴って有用性が失われつつあります

     ホスト ページングは、性能に悪影響があるため、
     「あくまで最後の手段」です
      「仮想マシンの集約率を上げる」主たる方法ではありません
      使わずにすめばそれに越したことはありません


     「無い袖は振らない」範囲で、適切な量のメモリを
     賢く仮想マシンに分配する仕組みが必要です



85
それが
     Dynamic Memory
        なのです

86
Dynamic Memory
登場!
まずは基本情報
     ペアレント側の要件
      Windows Server 2008 R2 SP1 が必要です
      無償の Hyper-V Server 2008 R2 SP1 でも OK!
     サポートされるゲスト OS
      Windows Server 2003, 2008 & 2008 R2
        対応エディション: Web, Standard, Enterprise, Datacenter
        32 / 64 ビット双方に対応
      Windows Vista と Windows 7
        Enterprise と Ultimate
        同じく、32 / 64 ビット双方に対応



88
Dynamic Memory (DM) 概念図
        ペアレント                         VM 1           VM 2
       パーティション                       DM VSC         DM VSC
         vmms.exe
                                  VMBus         VMBus
           メモリ
          バランサー
                                     Windows       Windows
                                  メモリ マネージャー    メモリ マネージャー

     DM VSP            DM VSP
  GMO メモリ              GMO メモリ    ゲスト  ページ       ゲスト   ページ
 マネージャー               マネージャー     物理メモリ ファイル     物理メモリ ファイル

                                  Dynamic Memory は、ホストとゲストが
 vmwp.exe             vmwp.exe     緊密に連携して、メモリの効率的な
              VMBus
                                   割り当てを実現する
                                  ホスト側モジュールは、SP1 を適用すること
       システム物理メモリ                   でインストールされる
                                  ゲスト側は SP1 の統合サービスをインス
                                   トールすることで有効になる

89
DM 構成要素 - VSP と VSC
        ペアレント                         VM 1           VM 2
       パーティション                       DM VSC         DM VSC
         vmms.exe
                                  VMBus         VMBus
           メモリ
          バランサー
                                     Windows       Windows
                                  メモリ マネージャー    メモリ マネージャー

     DM VSP            DM VSP
  GMO メモリ              GMO メモリ    ゲスト  ページ      ゲスト   ページ
 マネージャー               マネージャー     物理メモリ ファイル    物理メモリ ファイル

                                  DM VSC
 vmwp.exe             vmwp.exe       ゲスト OS のカーネル モードで動作
                                     メモリの使用状況をペアレントへ通知
              VMBus
                                     Hot-Add とバルーニングを実行
       システム物理メモリ                  DM VSP
                                     ペアレント OS の ユーザー モード プ
                                       ロセスである vmwp.exe 内で動作
                                     VSC から受け取ったメモリ使用状況を
90                                     バランサーへ伝える
DM 構成要素 - メモリ バランサー
        ペアレント                         VM 1           VM 2
       パーティション                       DM VSC         DM VSC
         vmms.exe
                                  VMBus         VMBus
           メモリ
          バランサー
                                     Windows       Windows
                                  メモリ マネージャー    メモリ マネージャー

     DM VSP            DM VSP
  GMO メモリ              GMO メモリ    ゲスト  ページ       ゲスト   ページ
 マネージャー               マネージャー     物理メモリ ファイル     物理メモリ ファイル

                                  メモリ バランサー
 vmwp.exe             vmwp.exe       VM のメモリ使用状況を収集
              VMBus
                                     いずれかの VM がメモリを必要として
                                      いたら、VSP と連携し、他の VM から
       システム物理メモリ                      バルーニングでメモリを回収
                                     十分なメモリが回収できたら、
                                      それをメモリが足りていない
                                      VM へ Hot-Add する
91
DM 構成要素 - GMO MM
        ペアレント                         VM 1          VM 2
       パーティション                       DM VSC        DM VSC
         vmms.exe
                                  VMBus        VMBus
           メモリ
          バランサー
                                     Windows      Windows
                                  メモリ マネージャー   メモリ マネージャー

     DM VSP            DM VSP
  GMO メモリ              GMO メモリ    ゲスト  ページ      ゲスト   ページ
 マネージャー               マネージャー     物理メモリ ファイル    物理メモリ ファイル

                                  GMO メモリ マネージャー
 vmwp.exe             vmwp.exe       VM のメモリ マップを管理
              VMBus
                                     どの部分がバルーニングされているかを
                                       常に把握
       システム物理メモリ




92
Dynamic Memory のポリシー
                   ホスト ページングしな
     無い袖は振らない           い




          キーとなるテクノロジ二つ

     Hot-Add メモリ    バルーニング
 VM へ動的にメモリを追加     VM から余剰メモリを回収



93
Hot-Add メモリ
      元々は大規模・高信頼システム向けの機能

     メモリ・CPU の動的な追加および交換

       Hot-Add   Hot-Replace
        メモリ         メモリ


       Hot-Add   Hot-Replace
         CPU         CPU
                               ※ 写真はイメージで
                                    す

 まさか仮想マシン環境で活用されようとは!
94
なぜ Hot-Add メモリ?
     Hyper-V はホスト ページングをしないからです

ホスト ページングをしない場合

                      仮想マシンを起動した
           仮想マシンに     瞬間から物理メモリを
           2 GB メモリ   本当に 2 GB 割り当てる
               定義


ホスト ページングをする場合
                      ゲスト OS には 2 GB
           仮想マシンに     あるように見せつつ、
           2 GB メモリ    実際には尐しずつ
               定義      割り当てている

95
小さく産んで大きく育てる
              ホスト ページングしたほうが良いのか?

                 いやしかし、そのデメリットは前述の通り

     ならば、最小限のメモリで起動して
       必要に応じて増やしていこう
                                      1536 MB
                      1024 MB
     512 MB
                メモリ             メモリ
                追加!             追加!



96
メモリの
      追加は
     Hot-Add
97
増える一方では
      困ります

98
バルーニングでメモリを回収
      ペアレント
     パーティション
                                  バルーニング
       vmms.exe      VM 1       DM VSC が物理メモリを
        メモリ                      「確保」
       バランサー        DM VSC
                                ページ アウトされない
                     Windows     ようにロックする
        DM VSP    メモリ マネージャー    「確保」されたゲスト
                                 物理メモリに対応する
        GMO メモリ   ゲスト物理メモリ       システム物理メモリは、
       マネージャー
                    使用中          ペアレントに「回収」
                                 されたことになる
                     回収         「回収」されたメモリ
       vmwp.exe
                     回収          は他の仮想マシンで
                    使用中          利用できる
     システム物理メモリ      使用中
                    使用中

99
Dynamic Memory の設定
仮想マシン 起動時の
  初期メモリ量



      Hot-Add の上限




 バッファー (割合)



         優先度



100
スクリプトでの設定
      WMI のクラスにプロパティが追加されています
      rootvirtualization
         Msvm_VirtualSystemSettingData クラス

プロパティ名                 GUI での対応する項目           取り得る値
DynamicMemoryEnabled   「動的」のラジオボタン            True, False
VirtualQuantity        スタートアップ RAM
Reservation            無し                     8 - 65536
                       (Startup RAM と同じになる)
Limit                  最大 RAM                 8 – 65536
Weight                 優先度                    1 – 1000
TargetMemoryBuffer     バッファー                  5 - 95


101
スクリプトでだけ可能な設定
     起動時              最大           予約
(VirtualQuantity)   (Limit)   (Reservation)
      DM VM         DM VM        DM VM




                    1024 MB

      512 MB
                                 256 MB


 起動時メモリとは別に、最低予約メモリを設定可能
102
メモリの監視は要注意
           ゲストの空きメモリを監視しても
            状況を正しく判断できません

 空きが        一定割合に    なるように    増減する!
  DM VM      DM VM    DM VM    DM VM

                               空き

             空き
                      空き
      空き
                              使用中
             使用中
  使用中                使用中


103
パフォーマンス カウンター
Hyper-V Dynamic Memory Balancer
       ペアレント パーティションのメモリ バランサーの情報
         Available Memory
         Average Pressure
         Added Memory
         Removed Memory


Hyper-V Dynamic Memory VM
       仮想マシン毎のメモリ割当状況の情報
         Guest Visible Physical Memory
         Physical Memory
         Added Memory
         Removed Memory

104
パフォーマンス カウンターの例




       Hypre-V Dynamic Memory VMPhysical Memory
      バルーニングによる「中抜き」を考慮した実質的な
                  実装メモリ量を表示

105
親の分、残しておいて!
              小さな空きメモリのかけらも
           無駄なくゲストに割り当ててしまうので
         ペアレント (ホスト) OS 用のメモリが残らない


       MemoryReserve の設定をしてください

      HKLMSOFTWAREMicrosoftWindows NTCurrentVersionVirtualization


                  値: MemoryReserve
                  型: DWORD
                  データ: ゲストに渡さないメモリ量 (MB)


106
最後に

      Dynamic Memory は Hyper-V R2 SP1 の重要な追加機能です


          Live Migration のような「派手な面白さ」はありませんが、
                   「Hyper-V 生活」のすべての瞬間おいて
                   効果を発揮し続ける、実用的な機能です
                (毎日 Live Migration をするとは限りませんが
                   Dynamic Memory は「常に」役立ちます)



                                 是非、実際にお試しください

         “Windows 7 および Windows Server 2008 R2 Service Pack 1 (KB976932)”
      http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=c3202ce6-4056-4059-8a1b-3a9b77cdfdda&displayLang=ja




107
 Dynamic Memory によって、仮想マシンに割り当てるメモリを動的に増減する
                               ことが可能になります。(ゲスト OS の稼働中に Hyper-V が自動的に調節します)
                                    これにより、各仮想マシンに割り当てるメモリ量を
                                      「その時点で必要な最低限のサイズ」に常に調整することができます。
                                    「仮想マシン内で使われずに余っているメモリ」を削減できます 。
                                      (どの程度の空きを残すかは調整可能です)
                              これによって、メモリ割り当ての無駄がなくなり、結果として集約率が向上します



            Dynamic Memroy 無効                                            Dynamic Memory 有効

  VM-1                VM-2             VM-3      VM-1             VM-2         VM-3             VM-4              VM-5

                   空きメモリ              空きメモリ
空きメモリ                                                                        最低限の空き
                                                                                                               最低限の空き
                                               最低限の空き       最低限の空き                             最低限の空き
                     使用中               使用中                                    使用中                                使用中
 使用中                                            使用中           使用中                               使用中



ホスト・ゲストのバージョン                                   Dynamic Memory の効果            弊社検証結果より


  Dynamic Memory はホスト/ゲストが
                                                        6コア Xeon 2基
                                                                                 85 VM                     120 VM
 連携してメモリを最適化する機能です                              CPU
                                                         (24スレッド)
  双方が対応している必要があります
                                                メモリ        96GB                                40%
ホスト      Windows Server 2008 R2 SP1
                                                                                               向上
                                               ゲストOS     Windows 7
         Windows Vista 以降 (クライアントOS)
ゲスト                                                                           Dynamic Memory            Dynamic Memory
         Windows Server 2003 SP2 以降 (サーバーOS)
                                                                              無効 (2008 R2)             有効 (2008 R2 SP1)   108
関連セッション
      T2-301:ついに登場!RemoteFX で実現する
                       強化された MS VDI のアーキテクチャ

      T2-402: あなたの Hyper-V 環境を最大限使い切る方法
                           ~ Hyper-V 設定にまつわる Tips ~

      T3-307: System Center Virtual Machine Manager 2008 R2 の
                                                      徹底活用方法

      T3-305: System Center Operations Manager 2007 R2
                                  アーキテクチャと実践的な活用手法

      T3-301: Data Protection Manager 2010 を活用した
                                       Hyper-V のバックアップ

      T3-306: System Center Service Manager 2010 による
                  ITIL の実践 ~ CMDB とサービス デスクを中心に~

109
リファレンス (1/1)
 RAM, Virtual Memory, Pagefile and all that stuff
 http://support.microsoft.com/kb/2267427/en-us

 Understanding Memory Resource Management in VMware ESX 4.1
 http://www.vmware.com/files/pdf/techpaper/vsp_41_perf_memory_mgmt.pdf


 Satori: Enlightened page sharing
 http://www.usenix.org/events/usenix 09/tech/full_papers/milos/milos_html/


 Memory overcommit with kvm
 http://avikivity.blogspot.com/2008/04/memory-overcommit-with-kvm.html


 KVM でオーバーコミット
 http://www.redhat.com/docs/ja-JP/Red_Hat_Enterprise_Linux/5.4/html/Virtualization_Guide/sect-Virtualization-
 Tips_and_tricks-Overcommitting_with_KVM.html




110
リファレンス (2/2)
 Pushing the Limits of Windows: Virtual Memory
 http://blogs.technet.com/b/markrussinovich/archive/2008/11/17/3155406.aspx


 Pushing the Limits of Windows: Physical Memory
 http://blogs.technet.com/b/markrussinovich/archive/2008/07/21/3092070.aspx


 Windows のメモリ管理の進歩
 http://www.microsoft.com/japan/whdc/system/sysinternals/memmgt.mspx


 Resizing Memory With Balloons and Hotplug
 http://www.kernel.org/doc/ols/2006/ols 2006v2-pages-313-320.pdf

 The double paging anomaly
 http://portal.acm.org/citation.cfm?id=1500215



111
Dynamic Memory 関連ブログ
 Dynamic Memory Coming To Hyper-V
 http://blogs.technet.com/b/virtualization/archive/2010/03/18/dynamic-memory-coming-to-hyper-v.aspx



 Dynamic Memory Coming to Hyper-V Part 2
 http://blogs.technet.com/b/virtualization/archive/2010/03/25/dynamic-memory-coming-to-hyper-v-part-2.aspx




 Dynamic Memory Coming to Hyper-V Part 3
 http://blogs.technet.com/b/virtualization/archive/2010/04/07/dynamic-memory-coming-to-hyper-v-part-3.aspx




 Dynamic Memory Coming to Hyper-V Part 4
 http://blogs.technet.com/b/virtualization/archive/2010/04/21/dynamic-memory-coming-to-hyper-v-part-4.aspx




 Dynamic Memory Coming to Hyper-V Part 5
 http://blogs.technet.com/b/virtualization/archive/2010/05/20/dynamic-memory-coming-to-hyper-v-part-5.aspx




112
ご清聴ありがとうございました。

   T2-401
アンケートにご協力ください。
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should
 not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,
                                                                           IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

More Related Content

What's hot

OSC2011 Tokyo/Fall 濃いバナ(virtio)
OSC2011 Tokyo/Fall 濃いバナ(virtio)OSC2011 Tokyo/Fall 濃いバナ(virtio)
OSC2011 Tokyo/Fall 濃いバナ(virtio)Takeshi HASEGAWA
 
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門VirtualTech Japan Inc.
 
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)Takeshi HASEGAWA
 
TechEd2009_T1-402_EffectiveHyper-V
TechEd2009_T1-402_EffectiveHyper-VTechEd2009_T1-402_EffectiveHyper-V
TechEd2009_T1-402_EffectiveHyper-VKuninobu SaSaki
 
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設Minoru Nakamura
 
20120609 cod ws2012概要
20120609 cod ws2012概要20120609 cod ws2012概要
20120609 cod ws2012概要Osamu Takazoe
 
20apr2012 kernelvm7-main
20apr2012 kernelvm7-main20apr2012 kernelvm7-main
20apr2012 kernelvm7-mainShotaro Uchida
 
【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」
【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」
【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」モノビット エンジン
 
仮想化技術の基本の基本
仮想化技術の基本の基本仮想化技術の基本の基本
仮想化技術の基本の基本terada
 
BHyVe: The BSD Hypervisor
BHyVe: The BSD HypervisorBHyVe: The BSD Hypervisor
BHyVe: The BSD HypervisorTakuya ASADA
 
OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)Satoshi Shimazaki
 
OSC2011 Tokyo/Spring 自宅SAN友の会(前半)
OSC2011 Tokyo/Spring 自宅SAN友の会(前半)OSC2011 Tokyo/Spring 自宅SAN友の会(前半)
OSC2011 Tokyo/Spring 自宅SAN友の会(前半)Satoshi Shimazaki
 
物理マシンをケチる技術
物理マシンをケチる技術物理マシンをケチる技術
物理マシンをケチる技術Satoshi KOBAYASHI
 
Bhyve code reading
Bhyve code readingBhyve code reading
Bhyve code readingTakuya ASADA
 
BHyVeってなんや
BHyVeってなんやBHyVeってなんや
BHyVeってなんやTakuya ASADA
 
Windows Azure の中でも動いている InfiniBand って何?
Windows Azure の中でも動いている InfiniBand って何?Windows Azure の中でも動いている InfiniBand って何?
Windows Azure の中でも動いている InfiniBand って何?Sunao Tomita
 
Raspberry pi で始める v sphere 7 超入門
Raspberry pi で始める v sphere 7 超入門Raspberry pi で始める v sphere 7 超入門
Raspberry pi で始める v sphere 7 超入門Satoshi Imai
 

What's hot (19)

OSC2011 Tokyo/Fall 濃いバナ(virtio)
OSC2011 Tokyo/Fall 濃いバナ(virtio)OSC2011 Tokyo/Fall 濃いバナ(virtio)
OSC2011 Tokyo/Fall 濃いバナ(virtio)
 
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門
 
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
 
KVM+cgroup
KVM+cgroupKVM+cgroup
KVM+cgroup
 
TechEd2009_T1-402_EffectiveHyper-V
TechEd2009_T1-402_EffectiveHyper-VTechEd2009_T1-402_EffectiveHyper-V
TechEd2009_T1-402_EffectiveHyper-V
 
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設
 
20120609 cod ws2012概要
20120609 cod ws2012概要20120609 cod ws2012概要
20120609 cod ws2012概要
 
20apr2012 kernelvm7-main
20apr2012 kernelvm7-main20apr2012 kernelvm7-main
20apr2012 kernelvm7-main
 
【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」
【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」
【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」
 
仮想化技術の基本の基本
仮想化技術の基本の基本仮想化技術の基本の基本
仮想化技術の基本の基本
 
BHyVe: The BSD Hypervisor
BHyVe: The BSD HypervisorBHyVe: The BSD Hypervisor
BHyVe: The BSD Hypervisor
 
OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)
 
OSC2011 Tokyo/Spring 自宅SAN友の会(前半)
OSC2011 Tokyo/Spring 自宅SAN友の会(前半)OSC2011 Tokyo/Spring 自宅SAN友の会(前半)
OSC2011 Tokyo/Spring 自宅SAN友の会(前半)
 
物理マシンをケチる技術
物理マシンをケチる技術物理マシンをケチる技術
物理マシンをケチる技術
 
Bhyve code reading
Bhyve code readingBhyve code reading
Bhyve code reading
 
BHyVeってなんや
BHyVeってなんやBHyVeってなんや
BHyVeってなんや
 
Windows Azure の中でも動いている InfiniBand って何?
Windows Azure の中でも動いている InfiniBand って何?Windows Azure の中でも動いている InfiniBand って何?
Windows Azure の中でも動いている InfiniBand って何?
 
Raspberry pi で始める v sphere 7 超入門
Raspberry pi で始める v sphere 7 超入門Raspberry pi で始める v sphere 7 超入門
Raspberry pi で始める v sphere 7 超入門
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
 

Similar to TechEd2010_T2-401_EffectiveHyper-V

N110 ws12概要 osamut_公開版
N110 ws12概要 osamut_公開版N110 ws12概要 osamut_公開版
N110 ws12概要 osamut_公開版Osamu Takazoe
 
コンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかコンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかえむ ばーど
 
Hyper vを理解する
Hyper vを理解するHyper vを理解する
Hyper vを理解するNaoki Abe
 
仮想マシンにおけるメモリ管理
仮想マシンにおけるメモリ管理仮想マシンにおけるメモリ管理
仮想マシンにおけるメモリ管理Akari Asai
 
Windows Azure で 2/29 に起こった問題のまとめ
Windows Azure で 2/29 に起こった問題のまとめWindows Azure で 2/29 に起こった問題のまとめ
Windows Azure で 2/29 に起こった問題のまとめSunao Tomita
 
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設Minoru Nakamura
 
コンテナ今昔物語_2021_12_22
コンテナ今昔物語_2021_12_22コンテナ今昔物語_2021_12_22
コンテナ今昔物語_2021_12_22勇 黒沢
 
仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点Kuniyasu Suzaki
 
Windows Server 2012 Essentials~ストレージに関する考察~
Windows Server 2012 Essentials~ストレージに関する考察~Windows Server 2012 Essentials~ストレージに関する考察~
Windows Server 2012 Essentials~ストレージに関する考察~Masahiko Sada
 
TechEd2008_T1-407_EffectiveHyper-V
TechEd2008_T1-407_EffectiveHyper-VTechEd2008_T1-407_EffectiveHyper-V
TechEd2008_T1-407_EffectiveHyper-VKuninobu SaSaki
 
Unsafe Nested Virtualization on Intel CPU
Unsafe Nested Virtualization on Intel CPUUnsafe Nested Virtualization on Intel CPU
Unsafe Nested Virtualization on Intel CPUTakaaki Fukai
 
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティSaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティKuniyasu Suzaki
 
Technology Used in Virtual Machine (Jan 2008)
Technology Used in Virtual Machine (Jan 2008)Technology Used in Virtual Machine (Jan 2008)
Technology Used in Virtual Machine (Jan 2008)Kuniyasu Suzaki
 
インフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 Nagoya
インフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 Nagoyaインフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 Nagoya
インフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 NagoyaSatoshi Shimazaki
 
Shared Nothing Live Migration で重要な「委任」について
Shared Nothing Live Migration で重要な「委任」についてShared Nothing Live Migration で重要な「委任」について
Shared Nothing Live Migration で重要な「委任」についてjunichi anno
 
Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
Windows Server 2019 の Hyper-Converged Infrastructure (HCI) Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
Windows Server 2019 の Hyper-Converged Infrastructure (HCI) Hiroshi Matsumoto
 
[db tech showcase Tokyo 2017] D38: クラウドに「無停止」というイノベーションを ~HPE Virtualized Non...
[db tech showcase Tokyo 2017] D38: クラウドに「無停止」というイノベーションを ~HPE Virtualized Non...[db tech showcase Tokyo 2017] D38: クラウドに「無停止」というイノベーションを ~HPE Virtualized Non...
[db tech showcase Tokyo 2017] D38: クラウドに「無停止」というイノベーションを ~HPE Virtualized Non...Insight Technology, Inc.
 
インフラエンジニアなら知っておきたいストレージのはなし2012/Spring ストレージの基礎おさらい編
インフラエンジニアなら知っておきたいストレージのはなし2012/Spring ストレージの基礎おさらい編インフラエンジニアなら知っておきたいストレージのはなし2012/Spring ストレージの基礎おさらい編
インフラエンジニアなら知っておきたいストレージのはなし2012/Spring ストレージの基礎おさらい編Satoshi Shimazaki
 

Similar to TechEd2010_T2-401_EffectiveHyper-V (20)

N110 ws12概要 osamut_公開版
N110 ws12概要 osamut_公開版N110 ws12概要 osamut_公開版
N110 ws12概要 osamut_公開版
 
コンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかコンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのか
 
Hyper vを理解する
Hyper vを理解するHyper vを理解する
Hyper vを理解する
 
仮想マシンにおけるメモリ管理
仮想マシンにおけるメモリ管理仮想マシンにおけるメモリ管理
仮想マシンにおけるメモリ管理
 
Windows Azure で 2/29 に起こった問題のまとめ
Windows Azure で 2/29 に起こった問題のまとめWindows Azure で 2/29 に起こった問題のまとめ
Windows Azure で 2/29 に起こった問題のまとめ
 
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設
 
コンテナ今昔物語_2021_12_22
コンテナ今昔物語_2021_12_22コンテナ今昔物語_2021_12_22
コンテナ今昔物語_2021_12_22
 
Open VZ
Open VZOpen VZ
Open VZ
 
仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点
 
Windows Server 2012 Essentials~ストレージに関する考察~
Windows Server 2012 Essentials~ストレージに関する考察~Windows Server 2012 Essentials~ストレージに関する考察~
Windows Server 2012 Essentials~ストレージに関する考察~
 
TechEd2008_T1-407_EffectiveHyper-V
TechEd2008_T1-407_EffectiveHyper-VTechEd2008_T1-407_EffectiveHyper-V
TechEd2008_T1-407_EffectiveHyper-V
 
Bhyve Internals
Bhyve InternalsBhyve Internals
Bhyve Internals
 
Unsafe Nested Virtualization on Intel CPU
Unsafe Nested Virtualization on Intel CPUUnsafe Nested Virtualization on Intel CPU
Unsafe Nested Virtualization on Intel CPU
 
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティSaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
 
Technology Used in Virtual Machine (Jan 2008)
Technology Used in Virtual Machine (Jan 2008)Technology Used in Virtual Machine (Jan 2008)
Technology Used in Virtual Machine (Jan 2008)
 
インフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 Nagoya
インフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 Nagoyaインフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 Nagoya
インフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 Nagoya
 
Shared Nothing Live Migration で重要な「委任」について
Shared Nothing Live Migration で重要な「委任」についてShared Nothing Live Migration で重要な「委任」について
Shared Nothing Live Migration で重要な「委任」について
 
Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
Windows Server 2019 の Hyper-Converged Infrastructure (HCI) Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
 
[db tech showcase Tokyo 2017] D38: クラウドに「無停止」というイノベーションを ~HPE Virtualized Non...
[db tech showcase Tokyo 2017] D38: クラウドに「無停止」というイノベーションを ~HPE Virtualized Non...[db tech showcase Tokyo 2017] D38: クラウドに「無停止」というイノベーションを ~HPE Virtualized Non...
[db tech showcase Tokyo 2017] D38: クラウドに「無停止」というイノベーションを ~HPE Virtualized Non...
 
インフラエンジニアなら知っておきたいストレージのはなし2012/Spring ストレージの基礎おさらい編
インフラエンジニアなら知っておきたいストレージのはなし2012/Spring ストレージの基礎おさらい編インフラエンジニアなら知っておきたいストレージのはなし2012/Spring ストレージの基礎おさらい編
インフラエンジニアなら知っておきたいストレージのはなし2012/Spring ストレージの基礎おさらい編
 

More from Kuninobu SaSaki

A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
A100 GPU 搭載! P4d インスタンス使いこなしのコツA100 GPU 搭載! P4d インスタンス使いこなしのコツ
A100 GPU 搭載! P4d インスタンス 使いこなしのコツKuninobu SaSaki
 
EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活Kuninobu SaSaki
 
Automatic Mixed Precision の紹介
Automatic Mixed Precision の紹介Automatic Mixed Precision の紹介
Automatic Mixed Precision の紹介Kuninobu SaSaki
 
GTC Japan 2018 NVIDIA NEWS
GTC Japan 2018 NVIDIA NEWSGTC Japan 2018 NVIDIA NEWS
GTC Japan 2018 NVIDIA NEWSKuninobu SaSaki
 
ISC17 NVIDIA NEWS 日本版
ISC17 NVIDIA NEWS 日本版ISC17 NVIDIA NEWS 日本版
ISC17 NVIDIA NEWS 日本版Kuninobu SaSaki
 
20150821 Azure 仮想マシンと仮想ネットワーク
20150821 Azure 仮想マシンと仮想ネットワーク20150821 Azure 仮想マシンと仮想ネットワーク
20150821 Azure 仮想マシンと仮想ネットワークKuninobu SaSaki
 
Azure仮想マシンと仮想ネットワーク
Azure仮想マシンと仮想ネットワークAzure仮想マシンと仮想ネットワーク
Azure仮想マシンと仮想ネットワークKuninobu SaSaki
 
もっとわかる Microsoft Azure 最新技術アップデート編 - 20150123
もっとわかる Microsoft Azure最新技術アップデート編 - 20150123もっとわかる Microsoft Azure最新技術アップデート編 - 20150123
もっとわかる Microsoft Azure 最新技術アップデート編 - 20150123Kuninobu SaSaki
 
Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」
Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」
Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」Kuninobu SaSaki
 
20140818 オープン白熱塾 ksasakims
20140818 オープン白熱塾 ksasakims20140818 オープン白熱塾 ksasakims
20140818 オープン白熱塾 ksasakimsKuninobu SaSaki
 
YAPC::Asia Tokyo 2013 ランチセッション
YAPC::Asia Tokyo 2013 ランチセッションYAPC::Asia Tokyo 2013 ランチセッション
YAPC::Asia Tokyo 2013 ランチセッションKuninobu SaSaki
 
Windows Azure HDInsight サービスの紹介
Windows Azure HDInsight サービスの紹介Windows Azure HDInsight サービスの紹介
Windows Azure HDInsight サービスの紹介Kuninobu SaSaki
 
HPC Azure TOP500 2012-11
HPC Azure TOP500 2012-11HPC Azure TOP500 2012-11
HPC Azure TOP500 2012-11Kuninobu SaSaki
 

More from Kuninobu SaSaki (18)

A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
A100 GPU 搭載! P4d インスタンス使いこなしのコツA100 GPU 搭載! P4d インスタンス使いこなしのコツ
A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
 
EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活
 
Automatic Mixed Precision の紹介
Automatic Mixed Precision の紹介Automatic Mixed Precision の紹介
Automatic Mixed Precision の紹介
 
GTC 2019 NVIDIA NEWS
GTC 2019 NVIDIA NEWSGTC 2019 NVIDIA NEWS
GTC 2019 NVIDIA NEWS
 
SC18 NVIDIA NEWS
SC18 NVIDIA NEWSSC18 NVIDIA NEWS
SC18 NVIDIA NEWS
 
GTC Japan 2018 NVIDIA NEWS
GTC Japan 2018 NVIDIA NEWSGTC Japan 2018 NVIDIA NEWS
GTC Japan 2018 NVIDIA NEWS
 
ISC17 NVIDIA NEWS 日本版
ISC17 NVIDIA NEWS 日本版ISC17 NVIDIA NEWS 日本版
ISC17 NVIDIA NEWS 日本版
 
GTC17 NVIDIA News
GTC17 NVIDIA NewsGTC17 NVIDIA News
GTC17 NVIDIA News
 
SC16 NVIDIA NEWS
SC16 NVIDIA NEWSSC16 NVIDIA NEWS
SC16 NVIDIA NEWS
 
20150821 Azure 仮想マシンと仮想ネットワーク
20150821 Azure 仮想マシンと仮想ネットワーク20150821 Azure 仮想マシンと仮想ネットワーク
20150821 Azure 仮想マシンと仮想ネットワーク
 
Azure仮想マシンと仮想ネットワーク
Azure仮想マシンと仮想ネットワークAzure仮想マシンと仮想ネットワーク
Azure仮想マシンと仮想ネットワーク
 
もっとわかる Microsoft Azure 最新技術アップデート編 - 20150123
もっとわかる Microsoft Azure最新技術アップデート編 - 20150123もっとわかる Microsoft Azure最新技術アップデート編 - 20150123
もっとわかる Microsoft Azure 最新技術アップデート編 - 20150123
 
Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」
Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」
Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」
 
20140818 オープン白熱塾 ksasakims
20140818 オープン白熱塾 ksasakims20140818 オープン白熱塾 ksasakims
20140818 オープン白熱塾 ksasakims
 
YAPC::Asia Tokyo 2013 ランチセッション
YAPC::Asia Tokyo 2013 ランチセッションYAPC::Asia Tokyo 2013 ランチセッション
YAPC::Asia Tokyo 2013 ランチセッション
 
Windows Azure HDInsight サービスの紹介
Windows Azure HDInsight サービスの紹介Windows Azure HDInsight サービスの紹介
Windows Azure HDInsight サービスの紹介
 
HPC Azure TOP500 2012-11
HPC Azure TOP500 2012-11HPC Azure TOP500 2012-11
HPC Azure TOP500 2012-11
 
WDD2012_SC-004
WDD2012_SC-004WDD2012_SC-004
WDD2012_SC-004
 

Recently uploaded

情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法ssuser370dd7
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-LoopへTetsuya Nihonmatsu
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor arts yokohama
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)ssuser539845
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見Shumpei Kishi
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦Sadao Tokuyama
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~arts yokohama
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdfAyachika Kitazaki
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfMatsushita Laboratory
 

Recently uploaded (12)

情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
 
What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
 
2024 04 minnanoito
2024 04 minnanoito2024 04 minnanoito
2024 04 minnanoito
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
 
2024 03 CTEA
2024 03 CTEA2024 03 CTEA
2024 03 CTEA
 

TechEd2010_T2-401_EffectiveHyper-V

  • 1. セッション ID: T2-401 Effective Hyper-V R2 SP1 マイクロソフト株式会社 コンサルティングサービス統括本部 佐々木邦暢 (twitter: @ksasakims)
  • 2. セッションの目的とゴール セッションの目的 Hyper-V R2 SP1 の新機能である 「Dynamic Memory」の設計思想と動作原理を解 説します Dynamic Memory の実運用上の留意点を 解説します セッションのゴール ハイパーバイザーのメモリ管理技法について、 製品に依存しない普遍的な知識を身につける Dynamic Memory の仕組みとその特徴を 説明できるようになる 2
  • 3. ご注意 本セッションでは、 現在開発中の製品を取り扱っています。 仕様および機能は変更される可能性があります。 3
  • 4. アジェンダ イントロダクション いまさら聞けない「仮想メモリ」 ハイパーバイザーのメモリ管理効率化技法 Dynamic Memory 登場! 4
  • 6. Hyper-V R2 SP1 の新機能 6
  • 7. Dynamic Memory 7
  • 13. 最後の セッション 13
  • 14. #T2_401 開始なう 14
  • 17. ハイパーバイザーの 仕事とは 物理的なリソースを抽象化(= 仮想化)して 複数の仮想マシンに効率よく配分 CPU ディスク メモリ NIC 17
  • 18. Hyper-V の仕事を 振り返ってみると 18
  • 19. CPU の仮想化 もし、CPU が仮想化されていなかったら ペアレント VM 1 VM 2 VM 3 パーティション ハイパーバイザー コア 0 コア 1 コア 0 コア 1 ソケット 0 ソケット 1 これでは物理パーティショニング 19
  • 20. そこで プロセッサの仮想化 論理プロセッサ (LP) 上で 複数の仮想プロセッサ (VP) が 実行されるという仕組み 20
  • 21. CPU の仮想化 ペアレント VM 1 VM 2 VM 3 パーティション (2 VP) (2 VP) (4 VP) VP 0 VP 0 VP 1 VP 1 VP 0 VP 2 VP 1 VP 3 Root VP 0 Root VP 1 Root VP 2 Root VP 3 LP 0 LP 1 LP 2 LP 3 ハイパーバイザー コア 0 コア 1 コア 0 コア 1 ソケット 0 ソケット 1 21
  • 23. ディスク の仮想化 もし、ディスク が仮想化されていなかったら ペアレント VM 1 VM 2 VM 3 パーティション ディスク 0 ディスク 1 ディスク 2 ディスク 3 VM の台数分、ディスクが必要 23
  • 24. Virtual Hard Disk という仕組みを導入 ホスト OS 上の .vhd ファイル 仮想マシンからはディスクドライブに見える 動的拡張 VHD 「実際に使った分だけ、ディスクを消費する」 容積効率の良い方式 24
  • 25. ディスクの仮想化 .vhd ファイルで仮想的なディスクドライブ ペアレント VM 1 VM 2 VM 3 パーティション .vhd .vhd .vhd 一台のディスクを複数の VM で共有 25
  • 27. ネットワークの仮想化 ネットワークが仮想化されていなかったら ペアレント VM 1 VM 2 VM 3 パーティション NIC 0 NIC 1 NIC 2 NIC 3 NIC が何枚あっても足りない 27
  • 28. そこで 仮想ネットワーク 仮想ネットワーク (= 仮想スイッチ) ホストに「仮想スイッチ」を作成 VM は「仮想スイッチ」を介して通信 複数の VM が一枚の物理 NIC を共有し、 同時にネットワークにアクセスできる 28
  • 29. ネットワークの仮想化 仮想スイッチで NIC を多重化 ペアレント VM 1 VM 2 VM 3 パーティション 仮想スイッチ 一枚の NIC を複数の VM で共有 29
  • 30. ネットワークの 仮想化 30
  • 32. Hyper-V のメモリ管理 ホストが管理するメモリを固定的に割り当てるのみ ペアレント VM 1 VM 2 VM 3 パーティション ホストの メモリを 固定的に 割り当て 32
  • 33. わりと 工夫がない 33
  • 34. 固定的な割り当ては無駄が出る 空いているメモリを集めれば もっとたくさん VM を実行できるのでは VM 1 VM 2 VM 3 VM 4 VM 2 の VM 3 の VM 1 の 回収済み 回収済み 回収済み 空きメモリ 空きメモリ 空きメモリ 使用中 使用中 使用中 34
  • 35. メモリの 効率的な 管理が急務 35
  • 36. そこで Dynamic Memory ひかえめに起動 不足したら メモリを追加 余れば回収 DM VM DM VM DM VM DM VM 700 MB 550 MB 512 MB 512 MB 追加 回収 空き 空き 空き 空き 使用中 使用中 使用中 使用中 回収したメモリを他の VM に追加して有効活用 36
  • 38. これって オーバー コミット? 他のハイパーバイザーだと、 「オーバーコミット」 という言葉がよく出てきますが Hyper-V の Dynamic Memory は? オーバーコミットなの? 38
  • 39. おおむね YES 39
  • 40. でも尐し違う ところもある 40
  • 41. Dynamic Memory の特徴 Hyper-V の Dynamic Memory ゲスト OS から 「利用可能」に見える ゲスト OS から見た メモリは常に実際の 「実装メモリ量」が 物理メモリに 動的に変化する 対応している ESX や KVM のオーバーコミット ゲスト OS から 「利用可能」に見える ゲスト OS から見た メモリは必ずしも 「実装メモリ量」は 実際の物理メモリの 常に一定 裏付けがない 41
  • 42. この違い どこから? 42
  • 43. There’s more than one way… オーバーコミットにはいろいろなやり方がある ページ共有 バルーニング ホスト ページング Hot-Add メモリ (ハイパーバイザー スワップ) 43
  • 44. なぜこんなに 色々な方式が? CPU やディスク、NIC の仮想化は、 どのハイパーバイザーも基本的には同じ方式 メモリだけは、リソースの効率的な 利用方式がイロイロあるのはなぜ? 44
  • 45. それを 理解するには 45
  • 46. 急がば回れで「仮想メモリ」 各種オーバーコミット方式の 特質と得失をより良く理解するには OS の 仮想メモリ機構に関する基礎知識が有用 去年は Live Migration の前に クラスターのおさらいをしましたが 今年は Dynamic Memory の 前に、仮想メモリを再確認 46
  • 48. メモリはすでに仮想化済 メモリやディスクという記憶域リソースを仮想化し 個々のプロセスに専用のアドレス空間を割り当てる プロセス A プロセス B プロセス C プロセス D 仮想メモリ 仮想メモリ 仮想メモリ 仮想メモリ メモリ マネージャー (MM) pagefile.sys 物理メモリ ページ ファイル 48
  • 49. プロセスの仮想アドレス空間 ポイントは「自分専用のメモリ空間が持てる」こと x86: プロセス毎に 4 GB x 64: プロセス毎に 16 TB! FFFF FFFF FFFF FFFF FFFF FFFF (32 ビット) カーネル空間 (64 ビット) カーネル空間 (上位 8 TB) (上位 2 GB) それはそれは 広大な 未使用空間 ユーザー空間 (下位 2 GB) ユーザー空間 (下位 8 TB) 0 0 49
  • 50. 例えば、エクスプローラー ほぼ 8 TB が フリー! 50
  • 51. でも そんなにメモリ 積んでない 51
  • 52. 仮想ページと物理フレーム プロセス A 仮想アドレス 仮想アドレス  1 バイト毎に割当 空間 物理アドレス ページ ページ 空間 ページ  メモリの割当・解放の単位 フレーム ページ  従来は 4 KB が主流 フレーム ページ フレーム ページ ラージ ページ (large page) フレーム ページ  x86: 2 MB / 4 MB フレーム ページ  x64: 2 MB フレーム (ページ フレー ページ ム) ページ  物理メモリの管理単位 ページ 52
  • 53. デマンド ページング プロセス A プロセス B 仮想アドレス 物理アドレス 仮想アドレス 空間 空間 空間 コミット A コミット 空き B 空き コミット 空き 空き 空き A コミット 空き B 空き 空き 空き 空き 空き 空き 空き 空き 要求に応じて 空き 必要な分だけを割り当てる 空き 空き 空き 53
  • 54. ページの共有 プロセス A プロセス B 仮想アドレス 物理アドレス 仮想アドレス 空間 空間 空間 ページ フレーム ページ ページ フレーム ページ ページ shared.dll フレーム ページ ページ フレーム ページ shared.dll ページ フレーム ページ shared.dll ページ ページ ページ ページ ページ 同じフレームを複数のプロセス間で ページ 共有することでメモリを有効利用 ページ ページ ページ ページ 54
  • 55. ページ アウトとページ イン プロセス A 空きがなければディスクに退避 プロセス B 仮想アドレス 物理アドレス 仮想アドレス 空間 空間 空間 コミット A コミット コミット B 空き 空き A 空き 空いて 割当要求 B コミット ない! 空き 空いて 空き A ない! コミット 割当要求 ページイン ページアウト 空き 空き 空き ページ ファイル 空き 空き 空き 空き 空き 55
  • 56. スラッシング プロセス A ページングにかかりっきり! プロセス B 仮想アドレス 物理アドレス 仮想アドレス 空間 空間 空間 コミット フレーム コミット 空いて コミット ない! フレーム 空き 空いて 割当要求 フレーム ない! 割当要求 空いて 割当要求 フレーム コミット ない! 空き 空いて 割当要求 フレーム ない! コミット 空き 空いて 割当要求 ない! 割当要求 空いて 空き 空いて ページ ファイル ない! 空き ない! 割当要求 空き 空き 空き 56
  • 57. 仮想環境ではもう一段 二段アドレス変換: GVA → GPA → SPA シャドウ ページ テーブルは プロセス プロセス 二段アドレス変換を統合し、 ゲスト仮想 ゲスト仮想 GVA を直接 SPA に変換する アドレス (GVA) アドレス (GVA) SPT を更新し続けることは ページ 軽い処理ではなく、仮想化の ゲスト OS テーブル オーバーヘッドの主要部分 仮想 ゲスト物理 SLAT 機能を持つプロセッサでは、 マシン アドレス (GPA) この処理をハードウェアで行える ハイパーバイザー シャドウ ページ テーブル (SPT) 物理マシン システム物理アドレス (SPA) 57
  • 58. 仮想記憶の おさらい終了 58
  • 60. オーバーコミットの技法 (再掲) いくつかの技術の組み合わせで実現されています ページ共有 バルーニング ホスト ページン グ Hot-Add メモリ (ハイパーバイザー スワップ) 60
  • 61. ページ共有 仮想マシン間で内容が同じページを共有 ページを定期的にスキャンしてハッシュ値を計算 ハッシュ値が一致した場合、ページ内容を ビット単位で改めて比較して、同一性を判定 61
  • 62. バルーニング VM 1 VM 2 空き VM 1 から 空き 回収した メモリ 増強 確保 増強 回収 使用中 回収 使用中 確保 「バルーン ドライバー」が確保したメモリを 他の VM に「横流し」することで有効活用 62
  • 63. ホスト ページング デマンド ページング方式による仮想記憶を ハイパーバイザー レベルで実装したもの ゲスト仮想アドレス (GVA) ゲスト OS 通常のページング 二段階の 仮想マシン ページング ゲスト物理メモリ ページ ファイル ハイパーバイザー ここでもページング (ホスト ページング) 物理マシン 実際の物理メモリ ページ ファイル 63
  • 64. あえて星取り表を作ってみます VMware Hyper-V Xen KVM ESX ページ共有 バルーニング ホスト ページング Hot-Add 64
  • 65. Hyper-V は が尐ない じゃないか 65
  • 66. Hyper-V のオーバーコミット ページ共有もホスト ページングもしません ページ共有 バルーニング ホスト ページン グ Hot-Add メモリ (ハイパーバイザー スワップ) 66
  • 67. ページ共有の概念図 VM 1 VM 2 VMのメモリ ホストの VMのメモリ 物理メモリ ページ フレーム ページ ページ フレーム ページ ページ ページ ページ フレーム 共有! ページ フレーム ページ 共通部分 ページ フレーム ページ 共通部分 ページ ページ ページ ページ ページ ページ ページ 全VMのメモリを歩き回って ページ ページ 「同じページ」を探す ページ 67
  • 68. 同じ内容のページでも 即座に共有されるわけではない VM 1 VM 2 VMのメモリ ホストの VMのメモリ 物理メモリ ページ フレーム ページ ページ フレーム ページ ページ VM 1の ページ フレーム メモリ ページ フレーム ページ VM2と VM1と ページ フレーム ページ 共通部分 同じ内容 同じ内容 ページ フレーム ページ ページ VM 2の ページ フレーム メモリ ページ フレーム ページ ページ フレーム ページ ページ ページ 共通部分が「発見」されるまでは共有できない 68
  • 69. 一旦ページが共有されても 例えば、片方のVMが再起動したら? あるいは、片方だけメモリの内容が変わったら? どうなるでしょう? 69
  • 70. ページ共有の解除 VM 1 VM 2 VMのメモリ ホストの VMのメモリ 物理メモリ ページ フレーム ページ ページ フレーム ページ コピーが ページ VM 1の ページ フレーム 必要 メモリ ページ フレーム ページ 共通だった 共有 内容 ページ 解除 フレーム ページ 共通部分 部分 変わった! ページ フレーム ページ ページ VM 2の ページ フレーム メモリ ページ フレーム ページ ページ フレーム ページ ページ ページ 70
  • 71. ページ共有について ラージ ページは共有しづらい! 4 4 KB のページ 2,097,152 / 4,096 = 512 2 MB のページ 1 ページの 大きさが 512 倍 71
  • 72. ページ共有について VMware さんのドキュメントより  “hardware-assisted memory virtualization systems, ESX will automatically back guest physical pages with large host physical pages “  「SLAT 機構を持つハードウェア上では、ESX は自動的にゲスト物理ページをホ ストのラージ ページに格納します」  In such systems, ESX will not share those large pages because: 1) the probability of finding two large pages having identical contents is low, and 2) the overhead of doing a bit-by-bit comparison for a 2 MB page is much larger than for a 4 KB page.  ESX はこれらラージ ページを共有しないでしょう。なぜなら、  二つのラージページの内容がぴったり一致する可能性は低いし、  2 MB ページの全ビットを比較するオーバーヘッドが大きいから http://www.vmware.com/files/pdf/techpaper/vsp_41_perf_memory_mgmt.pdf 72
  • 73. ページ共有について Windows とラージ ページ  Windows Vista, Windows 7 はラージ ページを利用します  Windows Server 2008 / 2008 R2 もラージ ページを利用します  Hyper-V R2 自身も、ラージページを使用します ラージ ページが一般化すると 現在行われているような ページ共有は有用性が 低下するということです 73
  • 74. ホスト ページングについて KVM の生みの親 Avi Kivity 氏のブログより http://avikivity.blogspot.com/2008/04/memory-overcommit-with-kvm.html  Swapping is used as a last resort in order to guarantee that services to not fail.  「スワッピングはサービス停止を防ぐための最後の手段だ」 VMware さんのドキュメントより http://www.vmware.com/files/pdf/techpaper/vsp_41_perf_memory_mgmt.pdf  “hypervisor swapping is used as a last resort to reclaim memory from the virtual machine”  「スワッピングは仮想マシンからメモリを回収するための最後の手段だ」 74
  • 75. last resort 最後の手段 75
  • 76. なぜ、最後の手段なのか KY なページング 「ダブル ページング」 76
  • 77. KY なページング ゲスト OS に依存しないゆえ ハイパーバイザーは、仮想マシンの 物理メモリが、ゲスト OS 上で持っている 「意味」まで察することはできません 容赦なくページアウト 「ロックされたページ」や、「非ページ プール」の ような、「ページ アウトされては困るページ」も ハイパーバイザーからは「ただのページ」 これは、ゲスト OS の性能に深刻な影響を与えます 77
  • 78. ダブル ページング ハイパーバイザーとゲストが同じページに対して 「噛み合わないページング」をしてしまうこと ゲスト仮想アドレス (GVA) ゲスト OS ページ A 仮想マシン ゲスト物理メモリ ページ ファイル ハイパーバイザー ページ A 物理マシン 実際の物理メモリ ページ ファイル 78
  • 79. ダブル ページング 実は古くから知られていた問題 “The double paging anomaly” 著者の Goldberg 氏は 仮想化界の大御所 Year of Publication: 1974 79
  • 80. Hyper-V ではロックしてます  仮想マシン用のメモリは、 ペアレント OS 内の winhv.sys というデバイス ドライバーが確保  ページ アウトされないように がっちりとロックしています 80
  • 81. 何度か引用したこの文書 http://www.vmware.com/files/pdf/techpaper/vsp_41_perf_memory_mgmt.pdf とても実用的で良い文書だと思います 81
  • 82. 例えばオーバーコミットに関して  Host memory size should be larger than guest memory usage.  ホストのメモリ サイズは、ゲストのメモリ使用量以上であるべきだ http://www.vmware.com/files/pdf/techpaper/vsp_41_perf_memory_mgmt.pdf  For example, it is unwise to run a virtual machine with a 2 GB working set size in a host with only 1 GB host memory.  ホストに 1 GB しかメモリがないのに、 2 GB のメモリを消費する仮想マシンを 動かすというのは愚かなことだ http://www.vmware.com/files/pdf/techpaper/vsp_41_perf_memory_mgmt.pdf オーバーコミットできるとはいっても 「無い袖を振ってはいけない」 82
  • 83. 仮想マシンのメモリサイズ設定  Set an appropriate virtual machine memory size. The virtual machine memory size should be slightly larger than the average guest memory usage.  「仮想マシンのメモリ サイズを適切に設定しましょう。 平均的な使用量よりちょっとだけ多めのメモリを与えるべきです」 http://www.vmware.com/files/pdf/techpaper/vsp_41_perf_memory_mgmt.pdf オーバー コミットできるからといって、 ゲストに適当に多めのメモリを与えて良いわけではない 83
  • 85. つまり ページ共有は、ラージ ページの一般化という状況の 変化に伴って有用性が失われつつあります ホスト ページングは、性能に悪影響があるため、 「あくまで最後の手段」です 「仮想マシンの集約率を上げる」主たる方法ではありません 使わずにすめばそれに越したことはありません 「無い袖は振らない」範囲で、適切な量のメモリを 賢く仮想マシンに分配する仕組みが必要です 85
  • 86. それが Dynamic Memory なのです 86
  • 88. まずは基本情報 ペアレント側の要件 Windows Server 2008 R2 SP1 が必要です 無償の Hyper-V Server 2008 R2 SP1 でも OK! サポートされるゲスト OS Windows Server 2003, 2008 & 2008 R2 対応エディション: Web, Standard, Enterprise, Datacenter 32 / 64 ビット双方に対応 Windows Vista と Windows 7 Enterprise と Ultimate 同じく、32 / 64 ビット双方に対応 88
  • 89. Dynamic Memory (DM) 概念図 ペアレント VM 1 VM 2 パーティション DM VSC DM VSC vmms.exe VMBus VMBus メモリ バランサー Windows Windows メモリ マネージャー メモリ マネージャー DM VSP DM VSP GMO メモリ GMO メモリ ゲスト ページ ゲスト ページ マネージャー マネージャー 物理メモリ ファイル 物理メモリ ファイル  Dynamic Memory は、ホストとゲストが vmwp.exe vmwp.exe 緊密に連携して、メモリの効率的な VMBus 割り当てを実現する  ホスト側モジュールは、SP1 を適用すること システム物理メモリ でインストールされる  ゲスト側は SP1 の統合サービスをインス トールすることで有効になる 89
  • 90. DM 構成要素 - VSP と VSC ペアレント VM 1 VM 2 パーティション DM VSC DM VSC vmms.exe VMBus VMBus メモリ バランサー Windows Windows メモリ マネージャー メモリ マネージャー DM VSP DM VSP GMO メモリ GMO メモリ ゲスト ページ ゲスト ページ マネージャー マネージャー 物理メモリ ファイル 物理メモリ ファイル  DM VSC vmwp.exe vmwp.exe  ゲスト OS のカーネル モードで動作  メモリの使用状況をペアレントへ通知 VMBus  Hot-Add とバルーニングを実行 システム物理メモリ  DM VSP  ペアレント OS の ユーザー モード プ ロセスである vmwp.exe 内で動作  VSC から受け取ったメモリ使用状況を 90 バランサーへ伝える
  • 91. DM 構成要素 - メモリ バランサー ペアレント VM 1 VM 2 パーティション DM VSC DM VSC vmms.exe VMBus VMBus メモリ バランサー Windows Windows メモリ マネージャー メモリ マネージャー DM VSP DM VSP GMO メモリ GMO メモリ ゲスト ページ ゲスト ページ マネージャー マネージャー 物理メモリ ファイル 物理メモリ ファイル  メモリ バランサー vmwp.exe vmwp.exe  VM のメモリ使用状況を収集 VMBus  いずれかの VM がメモリを必要として いたら、VSP と連携し、他の VM から システム物理メモリ バルーニングでメモリを回収  十分なメモリが回収できたら、 それをメモリが足りていない VM へ Hot-Add する 91
  • 92. DM 構成要素 - GMO MM ペアレント VM 1 VM 2 パーティション DM VSC DM VSC vmms.exe VMBus VMBus メモリ バランサー Windows Windows メモリ マネージャー メモリ マネージャー DM VSP DM VSP GMO メモリ GMO メモリ ゲスト ページ ゲスト ページ マネージャー マネージャー 物理メモリ ファイル 物理メモリ ファイル  GMO メモリ マネージャー vmwp.exe vmwp.exe  VM のメモリ マップを管理 VMBus  どの部分がバルーニングされているかを 常に把握 システム物理メモリ 92
  • 93. Dynamic Memory のポリシー ホスト ページングしな 無い袖は振らない い キーとなるテクノロジ二つ Hot-Add メモリ バルーニング VM へ動的にメモリを追加 VM から余剰メモリを回収 93
  • 94. Hot-Add メモリ 元々は大規模・高信頼システム向けの機能 メモリ・CPU の動的な追加および交換 Hot-Add Hot-Replace メモリ メモリ Hot-Add Hot-Replace CPU CPU ※ 写真はイメージで す まさか仮想マシン環境で活用されようとは! 94
  • 95. なぜ Hot-Add メモリ? Hyper-V はホスト ページングをしないからです ホスト ページングをしない場合 仮想マシンを起動した 仮想マシンに 瞬間から物理メモリを 2 GB メモリ 本当に 2 GB 割り当てる 定義 ホスト ページングをする場合 ゲスト OS には 2 GB 仮想マシンに あるように見せつつ、 2 GB メモリ 実際には尐しずつ 定義 割り当てている 95
  • 96. 小さく産んで大きく育てる ホスト ページングしたほうが良いのか? いやしかし、そのデメリットは前述の通り ならば、最小限のメモリで起動して 必要に応じて増やしていこう 1536 MB 1024 MB 512 MB メモリ メモリ 追加! 追加! 96
  • 97. メモリの 追加は Hot-Add 97
  • 98. 増える一方では 困ります 98
  • 99. バルーニングでメモリを回収 ペアレント パーティション バルーニング vmms.exe VM 1  DM VSC が物理メモリを メモリ 「確保」 バランサー DM VSC  ページ アウトされない Windows ようにロックする DM VSP メモリ マネージャー  「確保」されたゲスト 物理メモリに対応する GMO メモリ ゲスト物理メモリ システム物理メモリは、 マネージャー 使用中 ペアレントに「回収」 されたことになる 回収  「回収」されたメモリ vmwp.exe 回収 は他の仮想マシンで 使用中 利用できる システム物理メモリ 使用中 使用中 99
  • 100. Dynamic Memory の設定 仮想マシン 起動時の 初期メモリ量 Hot-Add の上限 バッファー (割合) 優先度 100
  • 101. スクリプトでの設定 WMI のクラスにプロパティが追加されています rootvirtualization Msvm_VirtualSystemSettingData クラス プロパティ名 GUI での対応する項目 取り得る値 DynamicMemoryEnabled 「動的」のラジオボタン True, False VirtualQuantity スタートアップ RAM Reservation 無し 8 - 65536 (Startup RAM と同じになる) Limit 最大 RAM 8 – 65536 Weight 優先度 1 – 1000 TargetMemoryBuffer バッファー 5 - 95 101
  • 102. スクリプトでだけ可能な設定 起動時 最大 予約 (VirtualQuantity) (Limit) (Reservation) DM VM DM VM DM VM 1024 MB 512 MB 256 MB 起動時メモリとは別に、最低予約メモリを設定可能 102
  • 103. メモリの監視は要注意 ゲストの空きメモリを監視しても 状況を正しく判断できません 空きが 一定割合に なるように 増減する! DM VM DM VM DM VM DM VM 空き 空き 空き 空き 使用中 使用中 使用中 使用中 103
  • 104. パフォーマンス カウンター Hyper-V Dynamic Memory Balancer  ペアレント パーティションのメモリ バランサーの情報  Available Memory  Average Pressure  Added Memory  Removed Memory Hyper-V Dynamic Memory VM  仮想マシン毎のメモリ割当状況の情報  Guest Visible Physical Memory  Physical Memory  Added Memory  Removed Memory 104
  • 105. パフォーマンス カウンターの例 Hypre-V Dynamic Memory VMPhysical Memory バルーニングによる「中抜き」を考慮した実質的な 実装メモリ量を表示 105
  • 106. 親の分、残しておいて! 小さな空きメモリのかけらも 無駄なくゲストに割り当ててしまうので ペアレント (ホスト) OS 用のメモリが残らない MemoryReserve の設定をしてください HKLMSOFTWAREMicrosoftWindows NTCurrentVersionVirtualization 値: MemoryReserve 型: DWORD データ: ゲストに渡さないメモリ量 (MB) 106
  • 107. 最後に Dynamic Memory は Hyper-V R2 SP1 の重要な追加機能です Live Migration のような「派手な面白さ」はありませんが、 「Hyper-V 生活」のすべての瞬間おいて 効果を発揮し続ける、実用的な機能です (毎日 Live Migration をするとは限りませんが Dynamic Memory は「常に」役立ちます) 是非、実際にお試しください “Windows 7 および Windows Server 2008 R2 Service Pack 1 (KB976932)” http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=c3202ce6-4056-4059-8a1b-3a9b77cdfdda&displayLang=ja 107
  • 108.  Dynamic Memory によって、仮想マシンに割り当てるメモリを動的に増減する ことが可能になります。(ゲスト OS の稼働中に Hyper-V が自動的に調節します)  これにより、各仮想マシンに割り当てるメモリ量を 「その時点で必要な最低限のサイズ」に常に調整することができます。  「仮想マシン内で使われずに余っているメモリ」を削減できます 。 (どの程度の空きを残すかは調整可能です)  これによって、メモリ割り当ての無駄がなくなり、結果として集約率が向上します Dynamic Memroy 無効 Dynamic Memory 有効 VM-1 VM-2 VM-3 VM-1 VM-2 VM-3 VM-4 VM-5 空きメモリ 空きメモリ 空きメモリ 最低限の空き 最低限の空き 最低限の空き 最低限の空き 最低限の空き 使用中 使用中 使用中 使用中 使用中 使用中 使用中 使用中 ホスト・ゲストのバージョン Dynamic Memory の効果 弊社検証結果より Dynamic Memory はホスト/ゲストが 6コア Xeon 2基 85 VM 120 VM 連携してメモリを最適化する機能です CPU (24スレッド) 双方が対応している必要があります メモリ 96GB 40% ホスト Windows Server 2008 R2 SP1 向上 ゲストOS Windows 7 Windows Vista 以降 (クライアントOS) ゲスト Dynamic Memory Dynamic Memory Windows Server 2003 SP2 以降 (サーバーOS) 無効 (2008 R2) 有効 (2008 R2 SP1) 108
  • 109. 関連セッション T2-301:ついに登場!RemoteFX で実現する 強化された MS VDI のアーキテクチャ T2-402: あなたの Hyper-V 環境を最大限使い切る方法 ~ Hyper-V 設定にまつわる Tips ~ T3-307: System Center Virtual Machine Manager 2008 R2 の 徹底活用方法 T3-305: System Center Operations Manager 2007 R2 アーキテクチャと実践的な活用手法 T3-301: Data Protection Manager 2010 を活用した Hyper-V のバックアップ T3-306: System Center Service Manager 2010 による ITIL の実践 ~ CMDB とサービス デスクを中心に~ 109
  • 110. リファレンス (1/1) RAM, Virtual Memory, Pagefile and all that stuff http://support.microsoft.com/kb/2267427/en-us Understanding Memory Resource Management in VMware ESX 4.1 http://www.vmware.com/files/pdf/techpaper/vsp_41_perf_memory_mgmt.pdf Satori: Enlightened page sharing http://www.usenix.org/events/usenix 09/tech/full_papers/milos/milos_html/ Memory overcommit with kvm http://avikivity.blogspot.com/2008/04/memory-overcommit-with-kvm.html KVM でオーバーコミット http://www.redhat.com/docs/ja-JP/Red_Hat_Enterprise_Linux/5.4/html/Virtualization_Guide/sect-Virtualization- Tips_and_tricks-Overcommitting_with_KVM.html 110
  • 111. リファレンス (2/2) Pushing the Limits of Windows: Virtual Memory http://blogs.technet.com/b/markrussinovich/archive/2008/11/17/3155406.aspx Pushing the Limits of Windows: Physical Memory http://blogs.technet.com/b/markrussinovich/archive/2008/07/21/3092070.aspx Windows のメモリ管理の進歩 http://www.microsoft.com/japan/whdc/system/sysinternals/memmgt.mspx Resizing Memory With Balloons and Hotplug http://www.kernel.org/doc/ols/2006/ols 2006v2-pages-313-320.pdf The double paging anomaly http://portal.acm.org/citation.cfm?id=1500215 111
  • 112. Dynamic Memory 関連ブログ Dynamic Memory Coming To Hyper-V http://blogs.technet.com/b/virtualization/archive/2010/03/18/dynamic-memory-coming-to-hyper-v.aspx Dynamic Memory Coming to Hyper-V Part 2 http://blogs.technet.com/b/virtualization/archive/2010/03/25/dynamic-memory-coming-to-hyper-v-part-2.aspx Dynamic Memory Coming to Hyper-V Part 3 http://blogs.technet.com/b/virtualization/archive/2010/04/07/dynamic-memory-coming-to-hyper-v-part-3.aspx Dynamic Memory Coming to Hyper-V Part 4 http://blogs.technet.com/b/virtualization/archive/2010/04/21/dynamic-memory-coming-to-hyper-v-part-4.aspx Dynamic Memory Coming to Hyper-V Part 5 http://blogs.technet.com/b/virtualization/archive/2010/05/20/dynamic-memory-coming-to-hyper-v-part-5.aspx 112
  • 113. ご清聴ありがとうございました。 T2-401 アンケートにご協力ください。
  • 114. © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.