服务器集中在虚拟化环境中可能是吸引人的,因为虚拟化提供了虚拟机之间的逻辑隔离,但是它为生产应用和测试及开发环境提供了足够的隔离吗?
一些专家主张测试和开发工作负载从不应该和生产应用运行在相同的虚拟主机和集群上,即使使用像VMware分布式资源调度(DRS)这样的资源共享软件。DRS帮助确保CPU资源,但是不保证网络或磁盘I/O资源,这可能危害生产虚拟机。一些专家同样表示了对服务器集中的安全关注。
其他人立场较为温和,他们说配置正确的话,被整合的服务器可能是一个安全和划算的虚拟基础设施。
在这场争论中,Edward Haletky反对服务器集中,而Rick Vanover强调了服务器集中的好处。
将生产环境和测试、开发分离以避免问题
Edward Haletky
正如俗话所说,测试的最好方法是完全复制。换句话说,从不要只因为你可以按比例缩减规模就这样做。测试和开发应该尽可能接近复制生产环境。对于虚拟化环境也是这样。
当和测试、开发虚拟机共享生产虚拟化主机集群时,你做了两件事:
将测试和开发环境的规模缩小到小于你全部的生产环境(请记住,测试的最好方法是完全复制)。
影响生产环境,因为测试和开发以CPU、内存、磁盘I/O以及可能的网络I/O等形式使用资源。
一些人可能说这些影响现在不起作用了:VMware ESX有资源池,而其他虚拟化平台,像Xen和Microsoft Hyper-V最终将跟着做。
然而,资源池总是被错误配置成允许从父资源池借用资源——也就是虚拟化集群本身。因此当开发流程不可避免地占用它能使用的所有资源,生产环境将受到不利的影响。对于测试和开发环境也存在这种可能,实际上是为生产环境创建一个“拒绝服务”。更进一步说,资源池现在还没有应用网络和磁盘,因此测试和开发虚拟机同样可能影响生产网络VLAN和虚拟机的磁盘I/O。
服务器集中同样有安全影响。测试、开发环境和生产环境不同,经常有不同的安全需求。在某些情况下,测试和开发环境被不同组的人管理。测试环境管理员可能是开发者,他想或需要比在生产环境中通常具有的权限更多的使用权,包括访问虚拟机主机。应该有一个单独的测试和开发环境,因为管理两个单独的认证和授权集合存在困难。
将测试和开发分离为一个单独的集群将导致一个更加容易管理和控制的虚拟机主机集合。生产环境将不会使用测试和开发环境的资源,反之亦然。
“测试和开发”通常与“实验性”的同义。不要让实验性的虚拟机影响你的生产环境。
服务器集中安全又省钱
Rick Vanover
在构建一个正确的、特定环境的解决方案的过程中,虚拟化架构面临很多决策。重要的选择之一与服务器集中有关:生产工作负载应该和非生产工作负载,比如测试和开发一样,运行在相同的虚拟基础设施上吗?
多数情况下,服务器集中是构建虚拟化环境的最正确方法。在很多情况下,你可能已经在共享基础设施上集中了生产和非生产工作负载。
最明显的例子是共享存储,尤其是光纤通道SAN存储。大多数共享存储安装没有根本改变他们要求分离生产和非生产物理、虚拟存储的部署实践。虽然分层存储可能正在使用,但在很多情况下存储基础设施为生产和非生产环境提供存储。
服务器集中的另一个明显的例子是大多数数据中心的网络架构。典型的数据中心交换机,不管是核心交换机还是接入交换机,通常被配置为提供truck或VLAN端口,访问多个不同的网络。
选定服务器集中时,成本是关键因素。如果在每个级别要求完全分离生产和非生产虚拟工作负载,那么当新的存储和网络基础设施投入使用后,虚拟化可能变得成本过高。更进一步说,当今的大多数虚拟化产品基于对象访问权限和粒状负载设计规则提供了资源分离。
甚至可以制定规则使生产和非生产虚拟机在虚拟化平台级别进行分离,避免了投资并部署另一个虚拟化基础设施用于测试和开发工作负载的需要。
每个环境和需求设置都是不同的,决定服务器集中是否是正确的执行方式的关键是参与并告知组织的决策者,包括安全指挥官和应用程序所有者。