2015年5月2日土曜日

vSphere6 アップデート情報(4) メモリーの重複排除(透過的ページ共有)はデフォルトでは有効ではありません

結構衝撃的な話なのですが、仮想化して集約率を上げるには、複数の仮想マシンの透過ページ共有(TPS)がデフォルトで無効になっています。
つまり、同じWindows Server 2012 R2を10台起動した場合、OS部分はどの仮想マシンも同じなのでそのメモリーは共有して、メモリーの空き容量を有効に使う機能です。

なぜTPSが無効になったかというと、研究機関からメモリーを共有された仮想マシン間で、相手の仮想マシンに侵入することができる(メモリー内容を見ることができる)可能性が論理的にある(かなり要約)という学術結果が発表されたそうで、その対処のようです。
ただ、これは机上の論理であり実際にはあり得ないとVMwareは考えているようです。

詳しくは 
セキュリティの考慮事項および仮想マシン間透過的なページ共有の禁止 (2100628) 
をご確認ください。

個人的にはいらんこと研究してと思わなくもないのですが、一応従来通りに動作をさせることは可能です。

ちなみに、この機能変更はvSPhere6というよりも、vSphere5系の最近のアップデートでも同じデフォルト値が変更となっています。


参考:

Security considerations and disallowing inter-Virtual Machine Transparent Page Sharing (2080735)



ちなみに、ESXi (vSphere5.5 Build 2143817)では、
デフォルト0で、最大値が1となっています。

これが、vSphere6では、デフォルト2となります。

で、TPSを有効にする際のパターンが増えています。
動作
0すべての仮想マシンでTPSが有効
1salt値が一致する仮想マシン間でTPSが有効
(なければ、原則TPSを共有)
2salt値が一致する仮想マシン間でTPSが有効
(salt値がなければ、
仮想マシンのUUIDが一致する仮想マシン間でTPSが有効)
※仮想マシンのUUIDが一致することはないので事実上無効


さあ、ここで出てくる「salt値」なのですが、仮想マシンごとに
sched.mem.pshare.salt というパラメーターは、自動的に付与されません。
そのため、手動でこのパラメーターを作成する必要があります。

特にVDIにおいては、たくさんの仮想マシンを個別で設定することはできませんので
Horizon View Administratorのプールでsalt値の設定がデフォルトでできるようになっています。


そもそも オーバーコミットを前提としたサイジングはあまりお勧めではないと思いますが、
リソースの節約という意味では非常に大きな機能ですので、抑えておいたほうがよい変更点ですね。





0 件のコメント:

コメントを投稿