在最近一次的TechMentor会议上,我呈现了一个关于Hyper-V系统的话题。一位听众问我:“Hyper-V作为一种新的技术,我在选择相应的硬件时需要遵循一些什么样的条件来获得最佳实践效果?”这个问题的确发人深省,目前为止,我听过的答案只有:“在您的预算内采购最强大的服务器。” 但是,这并不是那位听众想要获得的答案。所以在那次会议上,我们从一些不同的角度去讨论了这个问题的答案。
我们发现“最大就是最佳”的逻辑在那些没有连接相对独立的Hyper-V主机环境下是有效的,但是在增加了高可用和Windows故障转移集群的的复杂环境中,这种模型需要重新定义。本文将讨论如何在Hyper-V高可用集群……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
在最近一次的TechMentor会议上,我呈现了一个关于Hyper-V系统的话题。一位听众问我:“Hyper-V作为一种新的技术,我在选择相应的硬件时需要遵循一些什么样的条件来获得最佳实践效果?”这个问题的确发人深省,目前为止,我听过的答案只有:“在您的预算内采购最强大的服务器。”
但是,这并不是那位听众想要获得的答案。所以在那次会议上,我们从一些不同的角度去讨论了这个问题的答案。我们发现“最大就是最佳”的逻辑在那些没有连接相对独立的Hyper-V主机环境下是有效的,但是在增加了高可用和Windows故障转移集群的的复杂环境中,这种模型需要重新定义。本文将讨论如何在Hyper-V高可用集群环境中选择购买合适的硬件并做到内存资源浪费最小化。
独立Hyper-V主机环境的配置
首先,提供一些采购Hyper-V主机的指导原则:一般来讲,在预算范围内购买最高硬件配置的方式,使我们可以在一台主机上尽可能多地部署虚拟机。但是,这并非总是最好的办法,因为Hyper-V虚拟机的扩展会受到硬件资源的限制。
相比VMware vSphere,现在倾向于使用内存页表共享技术和提供memory ballon驱动技术。通过结合这些特性,可以分配和运行超出物理内存配置的虚拟内存。举个简单的例子,通过这两项技术,可以在一个带有16GB物理内存的服务器上运行17个1GB虚拟内存的虚拟机。可能对于高性能需求为主的生产环境来说这并不是最佳的部署方式,但是在预防主机失效的应用环境中,这种做法是有实用价值的。
无论是最初随着Windows Server 2008 RTM(下发工厂的版本)发布的Hyper-V,还是后来发布第二版(R2),都不支持这种内存共享技术。所以,Hyper-V主机数受限于机箱内安装的物理内存大小,无法过量分配虚拟内存给虚拟机使用。还用之前的例子:如果您的物理内存是16GB,您绝对无法在这台主机上启动第17台1GB虚拟内存的虚拟机。这在管理界面中就已经直接禁止操作。
可见在高可用的Hyper-V主机环境中,相比其他物理资源,更多受限于内存资源的边界条件限制。带有16GB物理内存的主机一般都配备4路或8路CPU,可以很好地满足虚拟机工作负载的运算资源需求。当然,对于计算资源开销比较大的应用,如大型Exchange或SQL服务器,情况另当别论。这些应用都非常适合于部署在虚拟机内,因为在Hyper-V的虚拟机中最紧张的是内存资源。
总之,对于独立的Hyper-V主机,购买服务器硬件时尽可能配备更多的物理内存。或许现在人们提到内存的配置,通用观点是在额外的硬件配置和价格之间寻找平衡点。以32GB为分界线,超过这个界限后,配置更多物理内存,一般认为是不太经济划算的。但尽可能多的配置物理内存,您一定会对获得的结果感到满意。
集群复杂环境配置
当您在一个Windows 故障转移集群中部署多个Hyper-V主机时,采购什么样主机的选择变得非常的复杂。仍然,这个问题和Hyper-V不支持内存过量分配相关。
简单来讲,为了防止单节点故障的发生,我们需要部署集群Hyper-V实例。然而,在宿主机主板损坏的情况下,所有之上的虚拟机都会完全停止运行。如果一个集群中的一个主机宕机,那台主机上的所有虚拟机都需要迁移到新的主机上,并启动运行。由于Hyper-V的内存分配限制,目标主机必须保留足够的可用内存空间,用于重新启动受损主机上的虚拟机。
我们还是通过一个具体的例子来更好的解释这个问题。我们先假设三个集群系统环境,在每个环境中的每台主机都有相同的配置:四颗CPU和16GB的物理内存。集群一由2台主机构成,集群二由4台主机构成,集群三有6台主机。
在这个例子中,假设您需要计划部署一个完全支持故障转移体系的Hyper-V系统。在故障转移集群系统中,预留的主机需要支持:当原主机宕机后可以迅速启动原本在该主机上运行的所有虚拟机。在这三个模拟环境中,我做了如下一些假设:假设忽略主机用于保留给CPU的内存空间;假设忽略虚拟机一般配置都会多于1GB内存的情况。为了使计算起来更简单,可以更加清晰地说明我的观点,我采用了相关的一些整数参数。
在集群一中,只有2台可用主机。这表明在这个集群中可以部署的最大虚拟机个数是16个,每个虚拟机带有1GB的内存。这样的话,在这个集群环境中,我们存在50%的物理资源浪费。事实上集群系统中拥有的物理资源需要保留一半,用于预防在一个节点宕机后,迅速把所有虚拟机迁移到另外一个节点上并启用。无论是我们如何部署,把16台虚拟机放在一个台物理机上,或分散到两个节点上(每台8个虚拟机),我们都必须保留这么多,才能保证有足够的资源支持单节点失效后,其上运行虚拟机可以有效迁移和重新启动。这个资源浪费是相当大的。
在集群二中,有4台可用主机。在四台主机的情况下,我们拥有更多的物理选择来重新部署失效主机上的虚拟机。确切地讲,我可以支持最多48台1GB的虚拟机。在整个集群系统中,必须保留16GB的内存用于预防单节点的损坏。无论是我们把所有的48台虚拟机安装到其中三台主机,让一台主机专门做备份,还是把它们分装到整个集群的所有节点上,总体看都有25%的资源空闲。我们的资源浪费情况有所改善。
在集群三中,主机数增加到6台,进一步改善了物理资源的浪费情况。跨6台主机,我们可以支持81台1GB的虚拟机,仍旧保留16GB的内存预防单节点故障。这样,在这个集群中,我们将资源闲置比例降低到17%。虽然仍旧不够完美,不过相比之前的方式,已经把资源利用率做到最好。
因此,在进入Hyper-V集群环境后,主机数量跟主机配置都跟结果相关。确切讲,是集群中主机的数量对于降低内存闲置比率至关重要。因为Hyper-V不支持内存的过量分配,这些因素我们都必须仔细考虑。尽管作为独立的拟稿人,我们相信这个技术很快会被引入到Hyper-V中,但微软在Windows Server 2008 R2还不支持内存共享,微软也没有给出何时支持该技术的时间表。
这样,我的听众已经了解到在Hyper-V的集群系统中,不仅要尽可能采购更高配置的主机,而且要尽可能采购更多数量的主机。如果我们把高配置的单个主机环境转化为包含更多主机的环境,我们将有效降低资源闲置的比例,提高利用率。
作者
Greg Shields,MCSE(微软认证系统工程师),是Concentrated Technology(www.concentratedtechnology.com)共同创始人和IT技术专家。他拥有近十五年的IT架构和企业管理经验。同时,也是一名IT培训师,并对IT多个技术主题进行演讲,主要包括微软管理、系统管理及监控、虚拟化等。他最近的著作是由SAPIEN出版社出版的《Windows Server 2008: What's New/What's Changed》。
相关推荐
-
回顾年度9大虚拟化技术
虚拟化管理员从未放弃追寻更好虚拟化技术,以使他们的工作更快、更易于管理以及更好地优化。 我们看到,虚拟化工具在 […]
-
从Azure VM到Hyper-V:想想这些技巧
多年来,IT行业已经推动IT人员把工作负载转到云中。虽然在公有云中有一些好处,但有些工作负载更适合运行云本地数据中心中。
-
功能多样的Get-VM PowerShell cmdlet,你知道多少?
Hyper-V管理员能够使用Get-VM PowerShell cmdlet查看并调整一系列虚拟机配置信息。微软花费大量精力对PowerShell进行优化,以提升其对本地或者远程服务器的管理功能。
-
支持Linux虚拟机:新版Hyper-V来帮忙
大家都知道,Linux虚拟机无法利用Hyper-V针对Windows虚拟机提供的众多特性。幸运的是,情况已经发生变化,Hyper-V现在能够为Linux提供更多的支持。