我们在《如何在VDI中实现服务器负载均衡》中介绍了两大类VDI负载均衡中的一类,这里我们继续介绍如何在VDI中实现会话负载均衡。
会话负载均衡
相比于对基础设施服务器进行负载均衡,对桌面虚拟机或者服务器承载的会话本身进行负载均衡更加复杂,因为有很多种可能的配置组合。
VDI会话可能是持续性或者非持续性的。不论使用哪种持续性模型,会话最好建立在负载最少的hypervisor服务器或者承载桌面的服务器操作系统上。对虚拟机会话进行负载均衡意味着具有控制hypervisor的能力,可以将虚拟机在服务器间进行迁移,所以你需要一个机制来测试多个hypervisor上的资源使用情况。
对于基于VMware的虚拟机,分布式资源调度(DRS)特性允许你构建一个ESX主机集群,在主机上动态分配VDI虚拟机。存储DRS创建存储池集群,所以虚拟机磁盘可以基于定义的阈值进行动态移动。但需要记住,在主机和存储池之间进行迁移会占用大量I/O带宽。需要将阈值设定的足够高,以防止迁移过于频繁。
在基于Citrix XenServer的主机上,供应商的负载均衡提供了一些类似于DRS的功能,但是当公司发布了XenServer 6.2之后这个功能就被关闭了。Citrix推荐使用第三方工具来实现这种功能。比如,VMTurbo的操作管理器可以工作在XenServer、Hyper-V和vSphere平台上。这个工具可以评估并自动决定负载的位置以优化虚拟机的运行状态。
同样,使用Citrix XenDesktop,基于服务器操作系统的桌面和应用程序会话(之前被称为XenApp)可以使用Citrix自己的负载均衡策略实现。Citrix从最大会话数量、CPU和磁盘使用率等多方面计算负载系数。这个系数的取值范围是从0到10000(满负荷)之间的整数,会话被迁移到具有最低负载值的服务器上。满负荷的服务器不接受任何新会话。
但是,对于基于服务器操作系统会话的一个限制是它们不能是动态的。如果不经过注销和再登陆过程,这些会话类型就不能被转移到一个新的服务器上。