WSFC2016 VM负载均衡

在2012时代中,智能放置功能得到了更新,当我们执行手动移动至最佳节点,故障转移,维护模式时,默认如果没有任何设置,例如首选所有者,可能所有者,反相关性等,群集先会根据内存智能放置功能,尽可能帮我们选择当前承载群集应用少的,可用内存多的节点上进行放置。

但是这只是项群集增强性的功能,只能说是作为一个最基本的放置策略来使用,帮我们选择相对轻松的节点,但是群集主要关注的点还是强调故障转移,维护后让应用尽可能快速的上线,它只是在放置初始根据群集应用数量和内存做下基本的判断,随后应用会被快速联机上线。

因此2012R2时代群集自带的放置功能,并不能够达到控制群集内各节点平衡的问题,例如,如果我们希望在群集运行过程中,保持各节点CPU 内存负载始终在百分之80以下,当有节点超过这个阀值,就重新平衡资源到其它节点上,那么我们就需要使用SCVMM和群集作为整合,发生故障后群集根据内存智能放置策略评估,快速让应用上线,应用上线后,SCVMM再根据动态优化功能查看各节点CPU,内存,网络,磁盘等综合指标,最终做一个彻底的节点负载平衡

这在一个动态数据中心,或是一个私有云的场景下是很正常的需求,因为对于私有云来说,我们要想构建出底层的资源池,对于计算资源池而言,在一定范围下,对于云管理来说,我是应该只需要放在池里面资源,而不需要考虑资源到底会被放置在哪台机器上的,因为对于资源池而言所有服务器都应该是一样的,假设这时如果没有负载均衡功能,那么很可能多次用户在门户上面申请的虚拟机会被重复放在一个宿主机上,最终导致有的主机,特别忙,有的主机特别闲,挤压到一定程度就很可能发生本来要放置在特别忙的主机,但是没资源了,不能放,再尝试放空闲主机,因而延迟虚拟机申请时间,资源利用也特别不均衡

因此资源池需要实现这种负载均衡的架构,确保用户在门户提交的申请直接提交资源池,随后资源池会再根据VIM管理中心的策略,如果检测到某个节点负载过高,自动实时迁移上面的虚拟机到其它空闲节点,这样合理利用服务器资源,也保证用户申请请求在资源级别可以正常交付。

默认情况下,在绝大部分云计算架构中,这种负载均衡架构,都是由VMM,或者cloudstack控制去做策略配置,大多数都是直接在这种VIM系统上面改

除了云计算的这种资源池架构,当企业内部大量使用虚拟化的动态数据中心场景也可以利用这样的功能合理平衡各服务器上负载。

在WSFC 2016中,微软做了一次新的尝试,把这种资源负载均衡功能,也可以通过群集级别进行配置,这样即使客户环境没有VMM这种VIM管理系统也可以实现主机节点间的负载均衡

WSFC 2016的负载均衡技术仅限用于VM环境,因此建议如果您要使用该功能,最好是一个干净的虚拟化群集,我们定义VM负载均衡的启用模式和阀值,一旦阀值达到,即触发虚拟机做实时迁移平衡。

WSFC 2016中的VM负载均衡技术,主要依据两个指标来评估节点的负载阀值

  1. 节点已用内存
  2. 节点五分钟内CPU平均利用率

两者之间为or关系,只要达到其中一个指标阀值,即会启发VM负载均衡操作

这项功能在控制上并不会很麻烦,我们主要关注于两项设置

  1. 控制VM负载均衡功能启动模式
  2. 控制VM负载均衡阀值

GUI界面操作  打开故障转移群集管理器,点击群集名称,属性

可以看到新的选项卡,平衡器,点开之后可以看到相关设置

在上面的模式设置中可以看到当前有三种选项

  1. 不启用,关闭群集的VM负载均衡功能
  2. 当节点从故障或维护后加入群集,状态变为加入后,开始执行负载均衡操作
  3. 默认设置,每隔三十分钟,按照下面入侵阀值设置自动平衡各节点资源

目前暂时不支持修改扫描时间,只能是每隔30分钟进行负载均衡扫描

下面的入侵,即对于负载均衡操作的阀值设置,只有使用内存或5分钟内CPU利用率达到这个阀值,我们才执行负载均衡操作,GUI界面看到是高中低三个选项

背后对应的

低 —— 当主机CPU或内存负载达到80%以上时触发负载均衡

中 —— 当主机CPU或内存负载达到70%以上时触发负载均衡

高 —— 当主机CPU或内存负载达到60%以上时触发负载均衡

如果您希望环境不要经常发生移动,只有当节点负载达到80%再负载均衡,那么您就应该设置为低,如果您希望我要保持主机持续高效运行,始终应该保留一部分资源,那么您可以设置为高,设置为高后,maybe发生虚拟机实时迁移的操作会多一些

针对于内存负载是以使用内存百分比为评估,针对于CPU是以五分钟CPU平均利用率达到阀值为准

Powershell操作

#查看群集当前VM负载平衡阀值

#修改群集当前VM负载均衡阀值

(Get-Cluster).AutoBalancerLevel = <value>

参数说明

AutoBalancerLevel 均衡级别 行为
1(默认) 当主机负载80%以上时移动
2 当主机负载70%以上时移动
3 当主机负载60%以上时移动

#获取群集VM负载均衡模式

(Get-Cluster).AutoBalancerMode

#配置群集VM负载均衡模式

(Get-Cluster).AutoBalancerMode = 1

参数说明

AutoBalancerMode 行为
0 不启用功能
1 节点恢复加入后负载均衡
2(默认) 每隔30分钟自动平衡各节点负载

实验验证

当前所有负载都在HV01,HV01内存已使用65%,群集VM负载均衡阀值为低,即达到百分之80再负载均衡,负载均衡操作为当节点加入时生效

当前我们修改一台虚拟机内存大小,让服务器内存已使用超过80%

现在我们要模拟节点加入的状态,这里旳节点加入是什么意思呢,从暂停模式回复,节点冷启动,新添加节点,这些都算是节点加入,没错,我们认的是节点加入群集,宣告可以正常提供服务的这样一个NodeUp状态,所以这里老王先把HV02的群集服务停止,再启动,模拟节点加入

等待几分钟时间后,可以看到,HV01上面已经应用上了VM负载均衡功能,自动实时迁移虚拟机至HV02

查看clusterlog可以看到VM负载均衡工作过程

当前群集负载均衡模式为NodeUP

检测到NodeUP,且有节点内存使用达到80%以上,触发VM负载均衡操作,选择实时迁移SPDB虚拟机至其他节点。

实验2,设置群集VM负载均衡模式为默认始终负载均衡,每隔三十分钟进行扫描,负载均衡级别为低,即百分之80,所有应用当前都在HV01

经过一段时间后,当群集轮询的30分钟时间达到,这次自动选择实时迁移两台虚拟机至HV02节点

Cluster Log如下

通过以上介绍和实验,相信大家或多或少都对WSFC2016的VM负载均衡技术有一点了解,简单来说,就是Hyper-V群集可以不用VMM,自己做负载均衡了,可以基于CPU和内存负载做,在NodeUp或实时扫描负载来做平衡,没有VMM的情况下,这项功能可以很好的工作,当有了VMM后,一旦群集被添加到VMM,VMM开启动态优化功能,则群集的AutoBalancerMode将会被设置为0,自动关闭群集的VM负载均衡,改使用VMM的动态优化技术,在群集没有推出这项功能之前,之前5nine这家公司的5nine Manager可以实现通过负载均衡器 Optimizer 来负载平衡群集的资源,使用CPU利用率,可用内存,剩余磁盘空间来作为平衡指标,在没有WSFC 2016,也没有VMM,使用它可以工作的很好,但是WSFC 2016并不会和5nine协作的很好,检测到5nine开启了Optimizer功能,并不会自动关闭WSFC自身的负载均衡技术,需要管理员手动关闭,maybe日后的版本也会更新和WSFC2016协作,以上,希望看到的朋友都能有收获。

时间: 2024-10-13 06:43:08

WSFC2016 VM负载均衡的相关文章

Windows Azure 体验之VM 负载均衡

Microsoft Azure 为在其中托管的虚拟机 (IaaS) 和云服务 (PaaS) 提供负载平衡服务.负载平衡支持应用程序伸缩,并且提供应用程序故障恢复以及其他优势.通过 Microsoft Azure 门户或应用程序的服务模型指定服务上的输入端点.当在 Microsoft Azure 上部署一个具有一个或多个输入端点的托管服务后,它会自动配置 Microsoft Azure 平台提供的负载平衡服务.要充分利用服务的弹性/冗余性优势,您需要让至少两个虚拟机服务于同一端点. Microso

Azure CLI创建ARM的VM和面向公网的负载均衡

新的Portal管理界面和ARM功能(即IaaS v2).本文将通过Azure CLI命令行的方式在ARM模式下,创建VM和负载均衡. 在ASM模式下,我们经常使用Endpoint和负载均衡SLB的功能.同样在ARM模式下,SLB也是一个非常重要的功能.但在ARM下和ASM的最重要的不同是:LoadBalancer不再是关联到VM上的属性了.就是说,VM可以没有公网IP,可以没有负载均衡对外提供服务. 这种部署模式更加符合企业应用的部署模式.在企业应用中,只有前端的展现层才会有与外部网络的连接,

在Global Azure上用Azure CLI创建ARM的VM和面向公网的负载均衡

在Global的Azure上,新的Portal和ARM已经正式发布.将来传统的portal和ASM将逐渐淡出. China Azure将在今年下半年推出新的Portal管理界面和ARM功能(即IaaS v2).本文将通过Azure CLI命令行的方式在ARM模式下,创建VM和负载均衡. 在ASM模式下,我们经常使用Endpoint和负载均衡SLB的功能.同样在ARM模式下,SLB也是一个非常重要的功能.但在ARM下和ASM的最重要的不同是:LoadBalancer不再是关联到VM上的属性了.就是

nginx tomcat做负载均衡

之前使用nginx做过web反向代理,没有做过负载均衡,今天有个同学需要做tomcat的负载均衡,我也研究下. 一共是2个机器,一个物理机(win7)上面部署2个tomcat,使用不同的端口启动.vm中的虚拟机放(centos)nginx,给tomcat做负载均衡. inux ip: 192.168.37.129 win ip: 192.168.37.1 首先保证两个主机可以互ping,响应的端口开放. nginx上使用80 tomcat1 使用8081 tomcat2使用8080 nginx,

[Linux]-部署Tomcat及其负载均衡

Tomcat 环境:VM CentOS1:192.168.1.1/24 CentOS2:192.168.1.2/24 REHL:192.168.1.3/24 CentOS 1 #yum开始 挂载镜像并连接 [[email protected] ~]# mount /dev/cdrom /mnt/ mount: block device /dev/sr0 is write-protected, mounting read-only 删除原有的yum配置文件,写入自己的 rm -rf /etc/yu

nginx反向代理及tomcat负载均衡

 tomcat服务器及负载均衡 1:tomcat主要用于web网页应用,它的静态处理能力低于nginx服务器, 但是可以当做容器主要用于JAVA程序编写的页面.jsp.用于测试. 2:可以实现负载均衡,反向代理,tomcat和其他的服务相比较,性价比高 另外tomcat是有apache基金会维护和支持 3:根据案例搭建tomcat服务器,以及实现负载均衡   一..实施准备 1.启动后关闭iptables防火墙 #service iptables stop 2.安装jdk.配置java环境 (1

Docker+nginx+tomcat7配置简单的负载均衡

本文介绍在Docker上配置简单的负载均衡,宿主机为Ubuntu 14.04.2 LTS,两个CentOS容器,宿主机安装Nginx,两台容器安装tomcat7.结构如下: 此方案的原理是将宿主机的端口和docker容器的端口做一个映射(即访问宿主机的某端口会映射到docker容器对应的端口),然后在宿主机通过配置Nginx,即可达到访问宿主机的某端口,按规则分配到指定的服务地址,即完成了负载均衡. 配置步骤 1.准备宿主机,宿主机是Ubuntu 14.04.2 LTS,安装在Vmware中,具

Linux下配置Nginx + Tomcat负载均衡

Nginx简介 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器 . Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了.Igor 将源代码以类BSD许可证的形式发布.自Nginx 发布四年来,Nginx 已经因为它的稳定性.丰富的功能集. 示例配置文件和低系统资源的消耗而闻名了.目前国内各大门户网站已经部署了Nginx,如

nginx+tomcat负载均衡

实验环境: nginx-server:192.168.20.194 tomcatweb01:192.168.20.150 tomcatweb02:192.168.20.163 ##################################################################### nginx-server: [[email protected] ~]# yum install  -y pcre-devel zlib-devel [[email protected