【IT168 专稿】现在虚拟化容量规划工具俯拾皆是,但有时候,隐形因素会对性能带来重大影响。下面几位专家教你如何为多个虚拟机确定规模合适的物理服务器。
为某一台服务器选择数量刚刚好、而不是过多的虚拟机一向是个难题。乍一看,在单单运行一种操作系统的一台物理服务器上运行一组虚拟服务器及它们支持的应用程序似乎轻而易举。
但要确保硬件能够支持这额外的负载其实很棘手,这是由于几乎各种各样的软件在虚拟环境里面运行――每个应用程序对主机操作系统和硬件的一系列需求都略有不同,伯顿集团的分析师Chris Wolf如是说。
Computacenter(CCC)是一家总部设在伦敦的数据中心和IT服务公司,业务范围遍布欧洲大部分地区。该公司的信息系统运营经理Ian Scanlon表示,把物理服务器整合成虚拟机当然有望节省费用,但你无法做到既过于节省硬件资源、又不拖累应用程序性能――弄不好会激怒最终用户。
Scanlon说:"如果你在一台服务器上创建了五个虚拟机,运行六种操作系统和各种应用程序,那么你必须增加硬件资源,以便能够适应这个环境的需要,并且为应用程序确保较高的服务级别和性能。到头来,我们不得不大量添加内存,超过了起初在容量规划阶段估计的内存量。"
Illuminata公司的高性能计算分析师Gordon Haffner声称,由于不同芯片组支持虚拟工作负载和虚拟机管理程序的功能各不相同,这就进一步加大了详细而准确地估计一台服务器作为虚拟机主机其性能有多好的难度。
他表示,相对物理服务器而言,虚拟机对处理器高速缓存的要求更高;而处理器在满足应用程序和虚拟机管理程序各自要求之间进行切换的能力有所差异。
英特尔和AMD都研发出了专门支持虚拟化和虚拟服务器迁移的电路。一台服务器可能配备了2至8个处理器,每个处理器又有2至8个处理核心。企业管理协会(EMA)的分析师Andi Mann表示,要是不进行非常具体而又细致的分析,几乎不可能预测某种特定配置的服务器在面对不同工作负载的软件时会有怎样的性能表现。
要是不了解你准备给某台服务器施加的工作负载,即使你直接询问供应商的技术或销售代表,对方也无法给出一个明确的答案。IBM公司系统与技术部的资深IT架构师Massimo Re Ferre表示,尽管没有任何明确而严格的规则,但有几个经验法则还是可以帮你做出尽量准确的估计,以便能找到薄弱环节,知道在哪个方面或怎样加以弥补。
他表示,首先,可以为新的英特尔或AMD处理器上的每个核心添加3至5个虚拟机。
Scanlon的估计则显得比较乐观;他表示,自己在单单一台服务器上运行五六个虚拟机。要是应用是资源密集型的数据库或企业资源规划(ERP)应用程序,一台服务器上就只运行两个虚拟机。
Mann表示,结论就是,少就是多。一味关注整合服务器,势必会导致性能低下、用户不满意。Re Ferre给出的第二个经验法则是:可以为新处理器上的每个核心添加2GB至4GB内存。这与Scanlon的估计不谋而合,他在每台高端刀片服务器上安装了48GB内存。
他说:"一旦我们扩大了内存,就没有遇到任何性能问题。"
需要留意的其他隐藏问题:
第一:不要忘了基本管道。Haffner表示,服务器数量一多,对输入/输出的要求就会随之加大。要确保有足够数量的链路连接至后端存储和网络。
第二:清理无用虚拟机。虚拟机很容易创建,却不容易发现,所以服务器散乱的情况非常普遍:太多的虚拟机在运行,但实际上它们根本没在使用。Scanlon表示,清除所有没有使用的服务器、释放占用的磁盘空间,为Computacenter腾出了很多资源,从而得以将重大升级推迟到下一个预算周期。
第三:利用现有的工具,以便详细了解自己的架构环境,Wolf表示。
VMware公司提供了VMware vCenter CapacityIQ 1.0,微软提供了面向Hyper-V的评估和规划工具包(Assessment and Planning Toolkit),以指导客户。不过,这两款产品在评估同时含有VMware和Hyper-V的环境方面都不是特别擅长。
许多第三方工具确实同时涵盖这两个版本――惠普就有一款评估工具是专门针对VMware设计的,另一款评估工具是专门针对Hyper-V设计的。Mann表示,那些与VMware或微软关系不太密切的厂商也能提供比较独立客观的评估。
其中包括Novell公司的 PowerRecon、CiRBA公司的 Data Center Intelligence和Akorri公司的BalancePoint以及VKernel公司的Capacity Modeler。
最后,可以详细分析你对虚拟机主机的具体要求以及期望的性能表现。Re Ferre表示,但考虑到自己评估或者请专业公司评估要耗费大量的时间和资金,也许一种更划算的办法是,索性购买比实际需要高一点的硬件资源,让服务器在满负载70%的状态下运行,而不是在满负载95%的状态下超负运行。