透明页共享的前世今生

日期: 2016-11-27 作者:Stuart Burns翻译:张冀川 来源:TechTarget中国 英文

透明页共享是VMware提供的一种功能,管理员借助该功能能够更高效地管理主机的内存。 透明页共享会扫描主机上的所有虚拟机,识别相同的内存页。例如,如果你正在主机上运行Windows Server 2012的很多副本,那么该主机上很可能有很多重复的内存页,比如重复代码。这种重复是一种浪费,为解决该问题,透明页共享使用hypervisor定位同一主机上不同虚拟机所使用的重复内存块,然后只保留一份。

剩下的重复内存块被指向该内存块的指针取代,然后释放出相应的内存资源。 虚拟机需要发现该内存块,并通过指针指向包含实际数据副本的内存块。底层的操作系统并不知道发生了什么,一切都借助VMware Tools实……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

透明页共享是VMware提供的一种功能,管理员借助该功能能够更高效地管理主机的内存。

透明页共享会扫描主机上的所有虚拟机,识别相同的内存页。例如,如果你正在主机上运行Windows Server 2012的很多副本,那么该主机上很可能有很多重复的内存页,比如重复代码。这种重复是一种浪费,为解决该问题,透明页共享使用hypervisor定位同一主机上不同虚拟机所使用的重复内存块,然后只保留一份。剩下的重复内存块被指向该内存块的指针取代,然后释放出相应的内存资源。

虚拟机需要发现该内存块,并通过指针指向包含实际数据副本的内存块。底层的操作系统并不知道发生了什么,一切都借助VMware Tools实现。假设拥有很大规模的虚拟桌面基础设施资产—节省的内存空间可能相当可观。为启用透明页共享,需要在虚拟机上安装VMware Tools。

透明页共享被禁用

这种管理内存的方式很不错,直到在vSphere 5.5 update 2中,VMware决定关闭透明页共享,原因是一些学者利用透明页共享获取了同一主机上其他虚拟机的加密密钥。在实际应用中,这应该不是问题。

VMware公司对此稍微有些谨慎,出于对安全第一的想法,VMware非常高效地采用技术手段关闭了透明页共享功能。

透明页共享功能仍旧存在,但加入了新的限制—透明页共享功能仅用于共享同样salting值的特定虚拟机。通过限制透明页共享仅用于共享同样salting值的特定虚拟机,VMware大大限制了透明页共享特性的应用。

恢复透明页共享

幸运的是,我们可以重新启用透明页共享。过程有些繁琐,因为你需要在高级设置中重新配置每台主机,但这一切都是值得的。

首先,如图1所示,在vSphere Client中打开虚拟主机,选择配置选项卡。

透明页共享的前世今生

图1.在VMware ESxi 6.0.0 选择配置选项卡

如图2所示,接下来,在高级菜单下通过选择菜单选项修改salting值。选择“Mem.ShareForceSalting”条目然后设置为0。新主机默认被设置为2,意味着启用了salting。

首先,如图1所示,在vSphere Client中打开虚拟主机,选择配置选项卡。

图2.修改salting值

修改salting值后,保存更改并重启主机。重启完成后,再次检查已经保留的设置。

为使恢复透明页共享功能变得更容易,我创建了一个非常简单的脚本,获取主机名以及整个vCenter的Mem.ShareForceSalting值。为使用该脚本,必须先登录到vCenter,并使用vCenter的IP或DNS替换vc_fqdn。

请注意Get-AdvancedSetting参数不能换行,否则会报错。

Connect-VIServer vc_fqdn

$hostlist = Get-vmHost

foreach ($hostserver in $hostlist) {

 Get-AdvancedSetting -Entity $hostserver -Name mem.shareForceSalting | select Entity, Value

 }

首先,如图1所示,在vSphere Client中打开虚拟主机,选择配置选项卡。

图3.获取主机名及其salting值的脚本

你可以通过修改图3中的脚本更新每台主机的salting值,但使用Get-AdvancedSetting命令获取salting值要比使用Set-AdvancedSetting命令更新参数要更容易,也更安全。

VMware禁用了透明页共享以确保这一非常模糊、小众的安全风险不会被暴露出来。然而,该安全风险并不会影响大多数用户。重新启用透明页共享的优势大于风险,尤其是在虚拟机密度非常高的VDI环境中更是如此。

翻译

张冀川
张冀川

TechTarget中国特约专家,任职于某国企信息中心,负责数据中心硬件基础设施及信息系统运维管理工作,对虚拟化及云计算技术有浓厚兴趣,并在工作中积极应用

相关推荐