つまり、同じWindows Server 2012 R2を10台起動した場合、OS部分はどの仮想マシンも同じなのでそのメモリーは共有して、メモリーの空き容量を有効に使う機能です。
なぜTPSが無効になったかというと、研究機関からメモリーを共有された仮想マシン間で、相手の仮想マシンに侵入することができる(メモリー内容を見ることができる)可能性が論理的にある(かなり要約)という学術結果が発表されたそうで、その対処のようです。
ただ、これは机上の論理であり実際にはあり得ないとVMwareは考えているようです。
詳しくは
セキュリティの考慮事項および仮想マシン間透過的なページ共有の禁止 (2100628)
をご確認ください。
個人的にはいらんこと研究してと思わなくもないのですが、一応従来通りに動作をさせることは可能です。
ちなみに、この機能変更はvSPhere6というよりも、vSphere5系の最近のアップデートでも同じデフォルト値が変更となっています。
- ESXi 5.5 Patch – VMware ESXi 5.5, Patch ESXi550-201410401-BG: Updates esx-base (2087359).
- ESXi 5.1 Patch – VMware ESXi 5.1, Patch ESXi510-201410401-BG: Updates esx-base (2084608).
- ESXi 5.0 Patch – VMware ESXi 5.0, Patch ESXi500-201410401-BG: Updates esx-base (2088883).
Security considerations and disallowing inter-Virtual Machine Transparent Page Sharing (2080735)
ちなみに、ESXi (vSphere5.5 Build 2143817)では、
デフォルト0で、最大値が1となっています。
これが、vSphere6では、デフォルト2となります。
で、TPSを有効にする際のパターンが増えています。
値 | 動作 |
---|---|
0 | すべての仮想マシンでTPSが有効 |
1 | salt値が一致する仮想マシン間でTPSが有効 (なければ、原則TPSを共有) |
2 | salt値が一致する仮想マシン間でTPSが有効 (salt値がなければ、 仮想マシンのUUIDが一致する仮想マシン間でTPSが有効) ※仮想マシンのUUIDが一致することはないので事実上無効 |
さあ、ここで出てくる「salt値」なのですが、仮想マシンごとに
sched.mem.pshare.salt というパラメーターは、自動的に付与されません。
そのため、手動でこのパラメーターを作成する必要があります。
特にVDIにおいては、たくさんの仮想マシンを個別で設定することはできませんので
Horizon View Administratorのプールでsalt値の設定がデフォルトでできるようになっています。
そもそも オーバーコミットを前提としたサイジングはあまりお勧めではないと思いますが、
リソースの節約という意味では非常に大きな機能ですので、抑えておいたほうがよい変更点ですね。
0 件のコメント:
コメントを投稿