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部分

posted @ 2023-11-25 16:41  suyanhj  阅读(19)  评论(0)    收藏  举报