VM 1 - Center

Download Report

Transcript VM 1 - Center

セッション ID: T2-401
Effective Hyper-V R2 SP1
マイクロソフト株式会社
コンサルティングサービス統括本部
佐々木邦暢 ([email protected])
セッションの目的とゴール
セッションの目的
Hyper-V R2 SP1 の新機能である
「Dynamic Memory」の設計思想と動作原理を解説し
ます
Dynamic Memory の実運用上の留意点を
解説します
セッションのゴール
ハイパーバイザーのメモリ管理技法について、製品
に依存しない普遍的な知識を身につける
Dynamic Memory の仕組みとその特徴を
説明できるようになる
3
ご注意
本セッションでは、
現在開発中の製品を取り扱っています。
仕様および機能は変更される可能性があります。
4
アジェンダ
イントロダクション
いまさら聞けない「仮想メモリ」
ハイパーバイザーのメモリ管理効率化技法
Dynamic Memory 登場!
5
本日のテーマ
6
Hyper-V R2 SP1
の新機能
7
Dynamic
Memory
8
動的記憶
9
なぜ必要?
10
どんな仕組み?
11
どう使う?
12
詳しく解説
13
最後の
セッション
14
#T2_401
開始なう
15
ハイパーバイザーの
仕事とは
そもそも
17
ハイパーバイザーの
仕事とは
物理的なリソースを抽象化(= 仮想化)して
複数の仮想マシンに効率よく配分
CPU
18
ディスク
メモリ
NIC
Hyper-V の仕事を
振り返ってみると
19
CPU の仮想化
もし、CPU が仮想化されていなかったら
ペアレント
パーティション
VM 1
VM 2
VM 3
ハイパーバイザー
コア 0
コア 1
ソケット 0
コア 0
コア 1
ソケット 1
これでは物理パーティショニング
20
そこで
プロセッサの仮想化
論理プロセッサ (LP) 上で
複数の仮想プロセッサ (VP) が
実行されるという仕組み
21
CPU の仮想化
ペアレント
パーティション
VP 0
VP 0
VM 1
VM 2
VM 3
(2 VP)
(2 VP)
(4 VP)
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
22
コア 0
コア 1
ソケット 1
CPU の仮想化
23
ディスク の仮想化
もし、ディスク が仮想化されていなかったら
ペアレント
パーティション
VM 1
VM 2
VM 3
ディスク 0
ディスク 1
ディスク 2
ディスク 3
VM の台数分、ディスクが必要
24
Virtual Hard Disk
という仕組みを導入
ホスト OS 上の .vhd ファイル
仮想マシンからはディスクドライブに見える
動的拡張 VHD
「実際に使った分だけ、ディスクを消費する」
容積効率の良い方式
25
ディスクの仮想化
.vhd ファイルで仮想的なディスクドライブ
ペアレント
パーティション
VM 1
VM 2
.vhd
.vhd
.vhd
一台のディスクを複数の VM で共有
26
VM 3
ディスクの仮想化
27
ネットワークの仮想化
ネットワークが仮想化されていなかったら
ペアレント
パーティション
VM 1
VM 2
VM 3
NIC 0
NIC 1
NIC 2
NIC 3
NIC が何枚あっても足りない
28
そこで
仮想ネットワーク
仮想ネットワーク (= 仮想スイッチ)
ホストに「仮想スイッチ」を作成
VM は「仮想スイッチ」を介して通信
複数の VM が一枚の物理 NIC を共有し、
同時にネットワークにアクセスできる
29
ネットワークの仮想化
仮想スイッチで NIC を多重化
ペアレント
パーティション
VM 1
VM 2
仮想スイッチ
一枚のNICを複数のVMで共有
30
VM 3
ネットワークの
仮想化
31
メモリは?
32
Hyper-V のメモリ管理
ホストが管理するメモリを固定的に割り当てるのみ
ペアレント
パーティション
ホストの
VM 1
VM 2
VM 3
メモリを
固定的に
割り当て
33
わりと
工夫がない
34
固定的な割り当ては無駄が出る
空いているメモリを集めれば
もっとたくさん VM を実行できるのでは
VM 1
VM 1 の
回収済み
空きメモリ
使用中
35
VM 2
VM 3
VM 2 の
回収済み
空きメモリ
VM 3 の
回収済み
空きメモリ
使用中
使用中
VM 4
メモリの
効率的な
管理が急務
36
そこで Dynamic Memory
ひかえめに起動
不足したら
メモリを追加
余れば回収
DM VM
DM VM
DM VM
DM VM
700 MB
550 MB
512 MB
追加
回収
空き
空き
使用中
使用中
512 MB
空き
使用中
空き
使用中
回収したメモリを他の VM に追加して有効活用
37
Dynamic Memory 基本動作
これって
オーバー コミット?
他のハイパーバイザーだと、
「オーバーコミット」
という言葉がよく出てきますが
Hyper-V の Dynamic Memory は?
オーバーコミットなの?
39
おおむね
YES
40
でも少し違う
ところもある
41
Dynamic Memory の特徴
Hyper-V の Dynamic Memory
ゲスト OS から見た
「実装メモリ量」が
動的に変化する
ゲスト OS から
「利用可能」に見える
メモリは常に実際の
物理メモリに
対応している
ESX や KVM のオーバーコミット
ゲスト OS から見た
「実装メモリ量」は
常に一定
42
ゲスト OS から
「利用可能」に見える
メモリは必ずしも
実際の物理メモリの
裏付けがない
この違い
どこから?
43
There’s more than one way…
オーバーコミットにはいろいろなやり方がある
ページ共有
バルーニング
ホスト ページング
Hot-Add メモリ
(ハイパーバイザー スワップ)
44
なぜこんなに
色々な方式が?
CPU やディスク、NIC の仮想化は、
どのハイパーバイザーも基本的には同じ方式
メモリだけは、リソースの効率的な
利用方式がイロイロあるのはなぜ?
45
それを
理解するには
46
急がば回れで「仮想メモリ」
各種オーバーコミット方式の
特質と得失をより良く理解するには OS の
仮想メモリ機構に関する基礎知識が有用
去年は Live Migration の前に
クラスターのおさらいをしましたが
今年は Dynamic Memory の
前に、仮想メモリを再確認
47
いまさら聞けない
「仮想メモリ」
メモリはすでに仮想化済
メモリやディスクという記憶域リソースを仮想化し
個々のプロセスに専用のアドレス空間を割り当てる
プロセス A
プロセス B
プロセス C
プロセス D
仮想メモリ
仮想メモリ
仮想メモリ
仮想メモリ
メモリ マネージャー (MM)
pagefile.sys
物理メモリ
49
ページ ファイル
プロセスの仮想アドレス空間
ポイントは「自分専用のメモリ空間が持てる」こと
x86: プロセス毎に 4 GB
FFFF FFFF
(32 ビット)
カーネル空間
(上位 2 GB)
x 64: プロセス毎に 16 TB!
FFFF FFFF FFFF FFFF
カーネル空間 (64 ビット)
(上位 8 TB)
それはそれは
広大な
未使用空間
ユーザー空間
(下位 2 GB)
0
50
ユーザー空間
(下位 8 TB)
0
例えば、エクスプローラー
ほぼ 8 TB が
フリー!
51
でも
そんなにメモリ
積んでない
52
仮想ページと物理フレーム
プロセス A
仮想アドレス
空間
ページ
ページ
ページ
仮想アドレス
 1 バイト毎に割当
物理アドレス
空間
ページ
 メモリの割当・解放の単位
 従来は 4 KB が主流
ページ
ページ
ページ
ページ
ページ
53
フレーム
フレーム
ページ
ページ
フレーム
ラージ ページ (large page)
フレーム
フレーム
 x86: 2 MB / 4 MB
 x64: 2 MB
フレーム (ページ フレーム)
 物理メモリの管理単位
デマンド ページング
プロセス A
プロセス B
仮想アドレス
空間
コミット
物理アドレス
空間
A
仮想アドレス
空間
コミット
空き
B
空き
コミット
空き
空き
空き
A
コミット
空き
B
空き
空き
空き
空き
空き
空き
空き
空き
54
空き
要求に応じて
必要な分だけを割り当てる
空き
空き
空き
ページの共有
プロセス A
プロセス B
仮想アドレス
空間
ページ
物理アドレス
空間
フレーム
仮想アドレス
空間
ページ
ページ
フレーム
ページ
ページ
shared.dll
フレーム
ページ
ページ
フレーム
ページ
shared.dll
ページ
フレーム
shared.dll
ページ
ページ
ページ
ページ
ページ
ページ
ページ
ページ
55
同じフレームを複数のプロセス間で
共有することでメモリを有効利用
ページ
ページ
ページ
ページ アウトとページ イン
プロセス A
空きがなければディスクに退避
プロセス B
仮想アドレス
空間
コミット
物理アドレス
空間
A
仮想アドレス
空間
コミット
コミット
B
空き
空き
A
空き
B
コミット
割当要求
空いて
ない!
空き
空いて
ない!
A
コミット
空き
空き
56
ページイン
ページアウト
ページ ファイル
空き
割当要求
空き
空き
空き
空き
空き
空き
スラッシング
プロセス A
仮想アドレス
空間
コミット
コミット
ページングにかかりっきり!
割当要求
割当要求
空いて
ない!
空き
コミット
割当要求
空き
割当要求
空き
57
フレーム
仮想アドレス
空間
コミット
フレーム
空き
物理アドレス
空間
空いて
ない!
フレーム
空いて
ない!
空いて
ない!
ページ ファイル
割当要求
コミット
フレーム
フレーム
空いて
ない!
プロセス B
空いて
ない!
空いて
ない!
割当要求
空き
割当要求
空き
空き
空き
仮想環境ではもう一段
二段アドレス変換: GVA → GPA → SPA
プロセス
プロセス
ゲスト仮想
アドレス (GVA)
ゲスト仮想
アドレス (GVA)
ページ
テーブル
ゲスト OS
仮想
マシン
ゲスト物理
アドレス (GPA)
ハイパーバイザー
物理マシン
58
シャドウ ページ テーブルは
二段アドレス変換を統合し、
GVA を直接 SPA に変換する
SPT を更新し続けることは
軽い処理ではなく、仮想化の
オーバーヘッドの主要部分
SLAT 機能を持つプロセッサでは、こ
の処理をハードウェアで行える
シャドウ ページ テーブル (SPT)
システム物理アドレス (SPA)
仮想記憶の
おさらい終了
59
ハイパーバイザーの
メモリ管理効率化技法
オーバーコミットの技法 (再掲)
いくつかの技術の組み合わせで実現されています
ページ共有
バルーニング
ホスト ページング
Hot-Add メモリ
(ハイパーバイザー スワップ)
61
ページ共有
仮想マシン間で内容が同じページを共有
ページを定期的にスキャンしてハッシュ値を計算
ハッシュ値が一致した場合、ページ内容を
ビット単位で改めて比較して、同一性を判定
62
バルーニング
VM 1
空き
確保
VM 2
VM 1 から
回収した
メモリ
回収
使用中
回収
確保
「バルーン ドライバー」が確保したメモリを
他の VM に「横流し」することで有効活用
63
空き
増強
増強
使用中
ホスト ページング
デマンド ページング方式による仮想記憶を
ハイパーバイザー レベルで実装したもの
ゲスト仮想アドレス (GVA)
ゲスト OS
通常のページング
仮想マシン
ゲスト物理メモリ
ハイパーバイザー
物理マシン
64
ページ ファイル
ここでもページング (ホスト ページング)
実際の物理メモリ
ページ ファイル
二段階の
ページング
あえて星取り表を作ってみます
Hyper-V
ページ共有
バルーニング
ホスト ページング
Hot-Add
65
VMware
ESX
Xen
KVM
Hyper-V は
が少ない
じゃないか
66
Hyper-V のオーバーコミット
ページ共有もホスト ページングもしません
ページ共有
バルーニング
ホスト ページング
Hot-Add メモリ
(ハイパーバイザー スワップ)
67
ページ共有について
ラージ ページは共有しづらい!
4
4 KB のページ
2,097,152 / 4,096 = 512
2 MB のページ
1 ページの
大きさが 512 倍
68
ページ共有について
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
69
ページ共有について
Windows とラージ ページ
 Windows Vista, Windows 7 はラージ ページを利用します
 Windows Server 2008 / 2008 R2 もラージ ページを利用します
 Hyper-V R2 自身も、ラージページを使用します
ラージ ページが一般化すると
現在行われているような
ページ共有は有用性が
低下するということです
70
ホスト ページングについて
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”
 「スワッピングは仮想マシンからメモリを回収するための最後の手段だ」
71
last resort
最後の手段
72
なぜ、最後の手段なのか
KY なページング
「ダブル ページング」
ディスクは遅い余りにも
73
KY なページング
ゲスト OS に依存しないゆえ
ハイパーバイザーは、仮想マシンの
物理メモリが、ゲスト OS 上で持っている
「意味」まで察することはできません
容赦なくページアウト
「ロックされたページ」や、「非ページ プール」の
ような、「ページ アウトされては困るページ」も
ハイパーバイザーからは「ただのページ」
これは、ゲスト OS の性能に深刻な影響を与えます
74
ダブル ページング
ハイパーバイザーとゲストが同じページに対して
「噛み合わないページング」をしてしまうこと
ゲスト仮想アドレス (GVA)
ゲスト OS
ページ
A
仮想マシン
ゲスト物理メモリ
ハイパーバイザー
物理マシン
75
ページ ファイル
ページ
A
実際の物理メモリ
ページ ファイル
ダブル ページング
実は古くから知られていた問題
“The double paging anomaly”
著者の Goldberg 氏は
仮想化界の大御所
Year of Publication: 1974
76
ディスクは遅い余りにも
メモリ アクセスの速度
DDR3-1600 = 5 ナノ秒
DDR3-800 = 10 ナノ秒
ディスクのシーク時間
8 ミリ秒程度
速度差
DDR3-800 と較べると
.008/.000000010 = 800,000
ディスクは 80 万倍遅い!
DDR3-1600 と較べると
.008/.000000005 = 1,600,000
ディスクは 160 万倍も遅い!
いざ使おうとしたときに
ページが物理メモリ上になかったら・・・
77
Hyper-V ではロックしてます
 仮想マシン用のメモリは、
ペアレント OS 内の winhv.sys
というデバイス ドライバーが確保
 ページ アウトされないように
がっちりとロックしています
78
何度か引用したこの文書
http://www.vmware.com/files/pdf/techpaper/vsp_41_perf_memory_mgmt.pdf
とても実用的で良い文書だと思います
79
例えばオーバーコミットに関して
 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
オーバーコミットできるとはいっても
「無い袖を振ってはいけない」
80
仮想マシンのメモリサイズ設定
 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
オーバー コミットできるからといって、
ゲストに適当に多めのメモリを与えて良いわけではない
81
同感です
82
つまり
ページ共有は、ラージ ページの一般化という状況の
変化に伴って有用性が失われつつあります
ホスト ページングは、性能に悪影響があるため、
「あくまで最後の手段」です
「仮想マシンの集約率を上げる」主たる方法ではありません
使わずにすめばそれに越したことはありません
「無い袖は振らない」範囲で、適切な量のメモリを
賢く仮想マシンに分配する仕組みが必要です
83
それが
Dynamic Memory
なのです
84
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
※ ただし、ベータ版では Enterprise と Datacenter のみ対応
32 / 64 ビット双方に対応
Windows Vista と Windows 7
Enterprise と Ultimate
同じく、32 / 64 ビット双方に対応
86
Dynamic Memory (DM) 概念図
ペアレント
パーティション
vmms.exe
メモリ
バランサー
DM VSP
DM VSP
GMO メモリ
マネージャー
GMO メモリ
マネージャー
vmwp.exe
vmwp.exe
VMBus
システム物理メモリ
87
VM 1
DM VSC
VMBus
VMBus
Windows
メモリ マネージャー
ゲスト
物理メモリ
VM 2
DM VSC
ページ
ファイル
Windows
メモリ マネージャー
ゲスト
物理メモリ
ページ
ファイル
 Dynamic Memory は、ホストとゲストが
緊密に連携して、メモリの効率的な
割り当てを実現する
 ホスト側モジュールは、SP1 を適用することでイ
ンストールされる
 ゲスト側は SP1 の統合サービスをインストール
することで有効になる
DM 構成要素 - VSP と VSC
ペアレント
パーティション
vmms.exe
メモリ
バランサー
DM VSP
DM VSP
GMO メモリ
マネージャー
GMO メモリ
マネージャー
vmwp.exe
vmwp.exe
VMBus
システム物理メモリ
88
VM 1
DM VSC
VMBus
VMBus
Windows
メモリ マネージャー
ゲスト
物理メモリ
 DM



 DM

VM 2
DM VSC
ページ
ファイル
Windows
メモリ マネージャー
ゲスト
物理メモリ
ページ
ファイル
VSC
ゲスト OS のカーネル モードで動作
メモリの使用状況をペアレントへ通知
Hot-Add とバルーニングを実行
VSP
ペアレント OS の ユーザー モード プロセス
である vmwp.exe 内で動作
 VSC から受け取ったメモリ使用状況を
バランサーへ伝える
DM 構成要素 - メモリ バランサー
ペアレント
パーティション
vmms.exe
メモリ
バランサー
DM VSP
DM VSP
GMO メモリ
マネージャー
GMO メモリ
マネージャー
vmwp.exe
vmwp.exe
VMBus
システム物理メモリ
89
VM 1
DM VSC
VMBus
VMBus
Windows
メモリ マネージャー
ゲスト
物理メモリ
VM 2
DM VSC
ページ
ファイル
Windows
メモリ マネージャー
ゲスト
物理メモリ
ページ
ファイル
 メモリ バランサー
 VM のメモリ使用状況を収集
 いずれかの VM がメモリを必要として
いたら、VSP と連携し、他の VM から
バルーニングでメモリを回収
 十分なメモリが回収できたら、
それをメモリが足りていない
VM へ Hot-Add する
DM 構成要素 - GMO MM
ペアレント
パーティション
vmms.exe
メモリ
バランサー
DM VSP
DM VSP
GMO メモリ
マネージャー
GMO メモリ
マネージャー
vmwp.exe
vmwp.exe
VMBus
システム物理メモリ
90
VM 1
DM VSC
VMBus
VMBus
Windows
メモリ マネージャー
ゲスト
物理メモリ
VM 2
DM VSC
ページ
ファイル
Windows
メモリ マネージャー
ゲスト
物理メモリ
ページ
ファイル
 GMO メモリ マネージャー
 VM のメモリ マップを管理
 どの部分がバルーニングされているかを常
に把握
Dynamic Memory のポリシー
無い袖は振らない
ホスト ページングしない
キーとなるテクノロジ二つ
91
Hot-Add メモリ
バルーニング
VM へ動的にメモリを追加
VM から余剰メモリを回収
Hot-Add メモリ
元々は大規模・高信頼システム向けの機能
メモリ・CPU の動的な追加および交換
Hot-Add
メモリ
Hot-Replace
メモリ
Hot-Add
CPU
Hot-Replace
CPU
※ 写真はイメージです
まさか仮想マシン環境で活用されようとは!
92
なぜ Hot-Add メモリ?
Hyper-V はホスト ページングをしないからです
ホスト ページングをしない場合
仮想マシンに 2
GB メモリ
定義
仮想マシンを起動した
瞬間から物理メモリを
本当に 2 GB 割り当てる
ホスト ページングをする場合
仮想マシンに 2
GB メモリ
定義
93
ゲスト OS には 2 GB
あるように見せつつ、
実際には少しずつ
割り当てている
小さく産んで大きく育てる
ホスト ページングしたほうが良いのか?
いやしかし、そのデメリットは前述の通り
ならば、最小限のメモリで起動して
必要に応じて増やしていこう
1536 MB
1024 MB
512 MB
メモリ
追加!
94
メモリ
追加!
メモリの
追加は
Hot-Add
95
増える一方では
困ります
96
バルーニングでメモリを回収
ペアレント
パーティション
vmms.exe
メモリ
バランサー
DM VSP
GMO メモリ
マネージャー
vmwp.exe
バルーニング
VM 1
DM VSC
Windows
メモリ マネージャー
ゲスト物理メモリ
使用中
回収
回収
使用中
システム物理メモリ
使用中
使用中
97
 DM VSC が物理メモリを
「確保」
 ページ アウトされないよう
にロックする
 「確保」されたゲスト物理メ
モリに対応するシステム
物理メモリは、ペアレント
に「回収」されたことになる
 「回収」されたメモリは他
の仮想マシンで
利用できる
Dynamic Memory 割当原則
ゲスト OS の空きメモリ (バッファー) を一定に保つように
必要に応じて追加 (Hot-Add) および削除 (バルーニング)
プレッシャー = メモリの逼迫具合
現時点でのコミット チャージ
仮想マシンの物理メモリ容量
= メモリ プレッシャー (%)
バッファー = メモリの空き具合
100 – プレッシャー = バッファー (%)
98
バッファーとターゲット
各仮想マシンは「ターゲット メモリ容量」を持ちます
メモリ バランサーと各仮想マシンの DM VSC が連携して
ターゲット メモリ容量に近づくように割当が調節されます
ターゲット メモリ サイズ (MB)
= 現時点のコミット チャージ (MB) / (100 - バッファー (%))
計算例
コミット チャージ: 1,543 MB
バッファー: 30%
1543 / 0.7 =2,204 (MB)
99
Dynamic Memory の設定
仮想マシン 起動時の
初期メモリ量
Hot-Add の上限
バッファー (割合)
優先度
100
スクリプトでの設定
WMI のクラスにプロパティが追加されています
root\virtualization
Msvm_VirtualSystemSettingData クラス
プロパティ名
GUI での対応する項目
取り得る値
DynamicMemoryEnabled
「動的」のラジオボタン
True, False
VirtualQuantity
スタートアップ RAM
Reservation
無し
(Startup RAM と同じになる)
8 - 65536
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 VM\Physical Memory
バルーニングによる「中抜き」を考慮した実質的な
実装メモリ量を表示
105
親の分、残しておいて!
小さな空きメモリのかけらも
無駄なくゲストに割り当ててしまうので
ペアレント (ホスト) OS 用のメモリが残らない
MemoryReserve の設定をしてください
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization
値: MemoryReserve
型: DWORD
データ: ゲストに渡さないメモリ量 (MB)
106
ゲストは動的ホストはどうする?
固定的に必要
 ペアレント OS だけが起動した状態で、 512 MB の空きメモリ
物理メモリ量に応じて増える
 PFN データベース: 物理メモリのページ数 * 48 バイト
 非ページ プール: (例) メモリ 32 GB で 1.4 GB
仮想マシンの数と大きさによる
 仮想マシン一台あたり 32 MB
 仮想マシンのメモリが 1 GB を超える場合、
増分 1 GB につき 8 MB
107
最後に
Dynamic Memory は Hyper-V R2 SP1 の重要な追加機能です
Live Migration のような「派手な面白さ」はありませんが、「Hyper-V
生活」のすべての瞬間おいて
効果を発揮し続ける、実用的な機能です
(毎日 Live Migration をするとは限りませんが
Dynamic Memory は「常に」役立ちます)
ぜひ、ベータ版をダウンロードして実際にお試しください
http://technet.microsoft.com/ja-jp/evalcenter/ff183870.aspx?ITPID=wtcfeed
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_tricksOvercommitting_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.