lvs高可用
lvs高可用
lvs需考虑的问题:
1、 Director不可用,整个系统将不可用:SPoF
解决方案: 高可用,避免单点故障
- keepalived 高可用、健康检查功能
- heartbeat、corosync、
- ldirectord 帮助lvs健康检查,并RS增删
2、 某RS不可用时,Director依然会调度请求到该RS
解决方案: 对各RS做健康状态监测,失效是禁用,成功时启用
检测方式:
- 网络层检测
- 传输层检测,端口探测
- 应用层检测,请求某关键字资源
一般检查时有两种状态: 软状态、硬状态
探测RS主机状态:
-->OK-->problem-->problem-->problem
失败1次是软状态,失败3次是硬状态,会一直检查
-->problem-->problem-->ok-->ok
使用ldirector做健康检测
示例配置文件: /usr/share/doc/ldirectord/ldirectord.cf
system文件: /usr/lib/systemd/system/ldirectord.service
主配置文件: /etc/ha.d/
配置文件解读:/etc/ha.d/ldirectord.cf
全局:
checktimeout=3 超时时长
checkinterval=1s 每个多久一次检查
autoreload=yes ldirectord守护进程挂了,是否重载配置文件
fullback=127.0.0.1:80 全局定义。所有RS挂了,用本地80端口响应
logfile="local0" 把日志发向rsyslog记录
#emailalert="admin@x.y.z" 有故障时发给谁邮件
#emailalertfreq=3600 邮件发送不成功,多久重试
#emailalertstatus=all 通知什么状态:OK、problem
qui+escent=no 不工作在静默模式
VS主机:
virtual=192.168.6.240:80 VS主机是谁,监听此主机,可写ip,可写防火墙标记
servicename=Web Site
comment=Test load balanced web site
real=192.168.6.2:80 gate RS主机定义,gate是dr模型
fallback=127.0.0.1:80 gate 全部故障了谁接管
service=http 集群提供的服务是什么
scheduler=rr 算法
#persistent=600 是否持久连接
#netmask=255.255.255.255 网络掩码
protocol=tcp 用哪个协议检查
checktype=negotiate
checkport=80 检测RS的端口
request="index.html" 请求的页面
receive="Test Page" 请求的内容中,应该显示的内容
virtualhost=www.x.y.z 健康检测时向另外的 VS请求
keepalived
参考keepalived部分

浙公网安备 33010602011771号