虚拟桌面资源分配最佳实践
2013-05-08 TechTarget中国 编辑:王学强
我们通常认为虚拟资源是许多内存、存储和CPU的集合,但它们是基于物理组件的,相比于传统资源,你需要更加注意。
为虚拟机分配后台资源最简单的方式就是将内存和CPU负载关联到每个桌面系统上,再根据每个服务器运行的基本需求进行划分。这种方法在只几台桌面同时运行的情况下有效,如果你管理着几十台或几百台虚拟桌面,这种方法很容易错误计算实际可用的资源或者需求的资源,导致大量的浪费或者系统资源分配不足。
下面列举的一些方法可以帮助你使用最佳方案来为虚拟桌面环境分配硬件资源。
理解虚拟机系统原理
并非所有的虚拟机都是按照相同的方式进行创建的;每个虚拟机都使用不同的方式来聚合使用资源,了解每个虚拟机如何分配资源能够使你更加容易地决定如何使用最好的方式来满足用户对于虚拟桌面的需求。
比如VMware,它的资源池系统允许将资源的分配和底层的硬件系统隔离开来。还允许你将资源整合入池中,这样你就不必单独部署机器了。
微软Hyper-V能够动态分配内存,这使得突发式的内存分配变为可能:桌面端开始的时候使用很少的内存,然后按照需求增加内存分配,而不是一次性分配所有的硬件资源。对于VMware,动态内存分配是默认配置,所以如果你想要设置固定参数,应该手动进行配置。
需要注意的另外一件事情是虚拟机处理同一个操作系统中多个实例的方式,并且在它们之间如何整合内存使用。比如,已经有很多文章描述了Windows 7的随机化地址空间布局为VMware的透明页共享正常运行增加了很大难度。还有,必须让你的环境需求来决定。如果你想要在同样的硬件上添加更多的桌面,就需要调整每个虚拟机上分配的硬件资源。
根据用户负载进行分配
为虚拟桌面分配资源并不依赖正在使用的虚拟桌面系统,而是基于用户的负载情况。资源分配和用户以及需求越贴近,就越能够准确地为他们提供需要的资源。
你可以以个人或者部门为单位进行资源分配。理想的方式是创建涵盖各个部门的组织单元,为用户分别提供低、高使用率的profile。如果一个部门中只有少部分人使用占用大量内存的应用程序,你可以将这些虚拟桌面的默认值内存指定值调低,但是应该保证机器在突发的使用峰值时能够安全运行。
在这种情况下,你应该了解应用程序具体的负载是怎样的。如果某些用户的服务器需要使用尽可能多的内存资源,那么他们就不适用这种分配方式。
至于CPU,虚拟CPU和物理CPU的比率最好保持在2:1。一个虚拟机中使用的两个虚拟内核,你可以在服务器上为他们分配一个物理内核。这个比率是根据平均的处理器负载计算出来的。如果你知道一些用户需要占用大量的CPU资源,你可以将它们放置于一个单独的资源池,或者为其分配一个物理机,而不是虚拟桌面。
不要忽略网络
现有的连接到服务器(和客户端)的网络带宽是另外一种容易被忽视的硬件资源。
专家建议可以将虚拟机到虚拟机流量限制于自己的内部网络当中。如果你的虚拟桌面不仅是相互之间通讯,还和另外一个虚拟机中的服务器资源,比如数据库服务器或者内部业务逻辑web服务器通讯,这种方式是非常有效的。不论何时,从虚拟机本身到客户端的流量都应该使用专用的连接。
替代方案:发行桌面vs.虚拟桌面
如果你发现现有的服务器资源数量不能够满足共享的需要,可以考虑使用公共桌面模型(如果你的客户端支持的话)。这是一个基础的Citrix XenApp模型,服务器上运行应用程序,而不是整个操作系统,你也不必单方面使用。你可以使用像XenApp这样的应用程序部署工具来应用于只和其兼容最好的用户位置、服务器或负载。
当许多人运行同一类应用程序、同时这些应用程序平时不会占用太多系统资源时,这种方式通常可以发挥最好的作用,比如一些基本的业务范围应用程序。当许多用户运行需要耗费更多系统资源的应用程序时,全虚拟机通常是更好的方式。