|
|
|
|
移动端

多多非益善 多核处理器只会降低VDI高可用性

这项技术对于处理大量不同的工作负载而言很神奇,尤其是能够完全在内存中运行,而不是在非易失性存储设备中运行的数据库。然而,对于虚拟桌面基础架构(VDI)解决方案来说,多核芯片完全是浪费钱,而且高可用性被荒废了。

作者:编译/布加迪来源:来源:51CTO|2011-04-02 09:13

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享

【2011年4月2日51CTO外电头条】2010年9月在旧金山召开的英特尔开发者论坛(IDF)上,英特尔发布了其下一代服务器至强处理器,代号为Westmere-EX。性能不可谓不惊人:10核20线程的处理器对三通道内存的寻址能力达到了2TB,这相当于前一代处理器的内存寻址能力的整整两倍。

今年5月,英特尔又宣布推出一款新的32核服务器芯片,它基于一种新的高性能计算服务器架构,结合了普通的x86核心和专用核心,从而加快了处理大规模并行科研和商业应用的速度。该芯片已在去年下半年交付。

“英特尔Knights Ferry处理器在服务器处理器插座中包含32个主至强芯片核心,在PCI-Express插槽中有相应的512位向量处理单元。芯片每个核心运行四个线程,包括8MB的共享高速缓存以及高达2GB的快速GDDR5内存。”

这项技术对于处理大量不同的工作负载而言很神奇,尤其是能够完全在内存中运行,而不是在非易失性存储设备中运行的数据库。然而,对于虚拟桌面基础架构(VDI)解决方案来说,多核芯片完全是浪费钱,而且高可用性被荒废了。

我的客户经常问我有什么建议好提供,同时又告诉我,他们一直在考虑购买配备四核、六核甚至八核的Nehalem处理器。我的答复始终是反问一句:为什么需要多核?

事实上,尽管多核可能有助于几种类型的工作负载,但是对于VDI来说,只会降低高可用性,让这个解决方案显得成本更高昂。为了让大家明白我搬出的理由,不妨想想vSphere 4.1、vCenter 4.1、VMware View 4.5和View Composer 2.5方面的一些局限性。这些是组成View解决方案的最新一代的几个组件。

vCenter 4.1

经过验证的架构支持2000个虚拟桌面

vSphere 4.1

每个主机最多支持320个虚拟机

在Nehalem系统中,经过验证的架构每个核心支持16个虚拟桌面

View Composer 2.5

每个集群最大支持8个主机

每个数据存储区最多支持128个链接克隆虚拟桌面

在一个新部署的系统中,Windows7很可能是来宾操作系统(GuestOS),而该操作系统的最大推荐内存容量是2GB。为了本文的需要,我们还假设不用到处理器密集型的应用程序,单单一个虚拟处理器(vCPU)就足以满足大多数用户的需要。不过,由于Windows7的地址空间布局随机化功能(ASLR),透明页面共享(TPS)比率减小到了大约10%(如果使用Windows XP,TPS比率约为40%)。

鉴于我们已作好了假定和限制,现在运行几个模拟。完全出于好奇心,第一个模拟将使用发布不久的32核处理器。

64个核心(2个插座 x 32个核心)x每个主机16个虚拟机=每个主机1024个虚拟机(禁用超线程技术)

这种场景需要每个主机约2008GB内存。

约128个核心(2 × 32个超线程插座)x每个主机16个虚拟机=每个主机2048个虚拟机(启用超线程技术)

这种场景需要每个主机约4000GB内存。

闲话少说,vSphere每个主机最多支持320个虚拟机。就第一个例子而言,每个处理器/核心最多支持的虚拟机数量必须是5,那样虚拟机的数量才能保持在320个以下。在这种情况下,系统和处理器在很大程度上将得不到充分利用。

第二种场景使用128个超线程核心,它总共需要4000GB内存。该架构最多支持2TB内存,因而为了将内存控制在极限范围以内,每个处理器/核心支持的虚拟机数量最多是约8个。情况看起来比不用超线程技术要好一点,但是昂贵的硬件资源仍然基本上得不到充分利用。

这两种场景让人觉得像是在玩数字游戏。不妨看看在使用2个插座、每个插座有6个处理器/核心的实际部署环境下会发生什么情况。我在这种场景下没考虑超线程和睿频加速(Turbo Boost)技术,因为它们其实并不会让核心数量翻一番。

12个核心(2个插座 x 6个核心)x 每个主机16个虚拟机= 每个主机192个虚拟机

这种场景需要每个主机约312GB内存。

12个核心的场景对于每个主机支持的虚拟机数量来说很适合,不过要求每个主机约384GB内存。而现在外面的系统大多并不提供支持这么大内存容量的功能,只有少数几个例外,比如思科ASIC内存扩展架构。

如果你拥有的一个系统支持这么大的内存容量,那你需要开始考虑:如果高可用性事件被触发,你的企业或客户愿意为在另一个主机中启动虚拟桌面等待多久,或者迁移所有虚拟机以便主机维修需要多长时间。

如果你总共有约550个虚拟机,这代表停运时间接近33%。单单就存储需求而言,拥有192个虚拟机的每个主机在每个用户每秒10次输入输出操作(10 IOPS)的正常工作负载、读写比为20/80的情况下,大概需要6528次IOPS。另外别忘了考虑所有虚拟机的网络连接和吞吐量。

对于VDI解决方案而言,我的客户大多数目前采用配备2个插座、每个插座4个核心的Nehalem系统,也就是说每个主机总共有8个核心。对我来说,这种配置似乎在成本、性能与可用性之间提供了最佳组合。使用每个处理器/核心16个虚拟机的验证架构,就有可能让每个主机运行约128个虚拟机;而每个主机需要约256GB内存。

对于有些系统来说,256GB的内存仍然行不通。在这种情况下,每个处理器/核心12个虚拟机就允许每个主机可支持96个虚拟机和192GB内存。对于实际外面的所有系统来说,这听起来像是能实现的比较合理的数字。

值得一提的是,如果一个包括8个主机的集群其每个处理器/核心运行16个虚拟机,允许最多有1024个虚拟机,但没有高可用性事件所需的备用容量。这种情况下,如果某个主机关闭或丢失,就没有备用容量来启动额外主机上的虚拟机。运行8个主机的集群,每个处理器/核心又运行12个虚拟机,允许支持768个虚拟机,又拥有正好可以支持主机故障的容量。VMware的参考架构(又叫Block)建议每个集群1024个虚拟机,不过并没有将高可用性事件考虑在内。

我个人的建议是,在装满8个主机的集群中,每个处理器/核心最多只用12个虚拟机。如果你有不同的观点或看法,欢迎一起探讨。

另一个忠告是,如果你在规划设计一款View解决方案,就要想到上述数字,因为它们会影响项目的最终结果,另外不能忘了成本。

越来越多的核心……我们不需要!….至少对于VDI而言不需要。

原文名:Cores and more Cores… We don’t need them! 作者:Andre Leibovici(某咨询公司的高级VMware咨询顾问,有15年IT经验,MCSE,VCP 3/4,VCAP4-DCA,VTSP4,ITIL V3,也是VMware vExpert 2010)

【本文乃51CTO精选译文,转载请标明出处!】

【编辑推荐】

  1. 专题:主流桌面虚拟化挨个儿数
  2. 英国企业:灵活性是采用桌面虚拟化的推手
  3. 桌面虚拟化、虚拟机:应用与发展趋势
  4. 虚拟化入门——思杰桌面虚拟化XenDesktop
  5. 评估三个入门级VDI套件 ——VDI是昂贵又复杂的?错!




【责任编辑:王勇 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

精通Spring 2.0

本书是关于Spring 2.0的权威教程,是Java/Java EE开发者必备的参考书。本书详尽系统地介绍了Java EE的基础知识、Spring 2.0的各种功能,以...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊