很多人经常问如何实现2台或多台相同业务的服务器的主备功能,也就是说对外使用同一个VIP,后端对应2台或多台真实服务器,但正常情况下只有1台或某几台作为主服务器,只有当主服务器出现问题后剩余的服务器以备服务器的身份接管业务。
从技术角度讲,这种需求属于不明智的,但只要是存在的就是合理的,你无法完全左右客户的想法。既然有需求,作为功能强大的Netscaler自然有解决办法,只不过这种需求是违背负载均衡设计的,所以大家不太明白如何配置。接下来写个博客,免得经常回答类似问题。

在Netscaler上要实现上述需求有三种做法(貌似某信服内置就相关算法,真是服了),具体使用何种方法请根据具体的业务情况去选择
1、通过backup vserver来实现
逻辑图
Netscaler实现主备service的控制

配置:
新建两个vserver,两个vserver添加各自的service
Netscaler实现主备service的控制
两个vserver对应的service(这里用一台web的不同端口代替两台web服务器)
Netscaler实现主备service的控制
在primary的vs上设置备用vs
Netscaler实现主备service的控制
正常情况下访问primary
Netscaler实现主备service的控制
正常情况下访问backup
Netscaler实现主备service的控制
禁用80端口模拟主服务器故障
Netscaler实现主备service的控制
此时primary变为down,但实际效果的状态依旧是UP
Netscaler实现主备service的控制
用户访问192.168.0.57(primary的IP)依旧没问题,同时hostname也没变
Netscaler实现主备service的控制
2、通过listen policy来实现
逻辑图
Netscaler实现主备service的控制
配置
新建两个vs,端口全为80
Netscaler实现主备service的控制
primary绑定80口的service,primary2绑定81口的service来模拟两台服务器
截图略
配置primary2的listen policy
Netscaler实现主备service的控制
正常情况下访问,命中primary的vs
Netscaler实现主备service的控制
禁用80口的service,模拟主服务器故障,vs变为如下状态
Netscaler实现主备service的控制
再次访问业务,命中primary2的vs
Netscaler实现主备service的控制
业务正常
3、通过monitor来实现
逻辑图
Netscaler实现主备service的控制
配置
Netscaler实现主备service的控制
勾选reverse
Netscaler实现主备service的控制
正常情况下service的状态,backup为down
Netscaler实现主备service的控制
新建vserver,绑定两个service
Netscaler实现主备service的控制
禁用80端口模拟故障,service状态
Netscaler实现主备service的控制
访问业务正常
Netscaler实现主备service的控制
通过深度理解Netscaler的各个参数可以提供多种解决问题的思路。