我是靠谱客的博主 自然柚子,这篇文章主要介绍LVS-学习总结(ldirectord)官方网站ldirectord介绍ldirectord运行方式ldirectord使用练习,现在分享给大家,希望可以做个参考。
文章目录
- 官方网站
- ldirectord介绍
- ldirectord运行方式
- ldirectord使用练习
- 测试环境
- 软件
- ldirectord安装使用
- 测试效果
官方网站
- Ldirectord主页面:https://projects.horms.net/projects/ldirectord/
- Ldirectord下载页面:https://projects.horms.net/projects/ldirectord/download.shtml
ldirectord介绍
- 我在服务器集群概念总结中提到过,由于负载均衡集群特性,需要布置节点监控系统位于前端负载调度机上,负责监控下面的服务节点。当某个节点出现故障后,节点监控系统会自动将故障节点从集群中剔除;当此节点恢复正常后,节点监控系统又会自动将其加入集群中
- ldirectord:是一个守护进程,用来在LVS集群中用于监视和管理集群节点的健康;这个守护进程会在启动时自动建立IPVS表,然后监视集群节点的健康情况,在发现失效节点时将其自动从IPVS表中移除
ldirectord运行方式
- ldirectord有一个配置文件,用于指定虚拟服务及其关联的真实服务器。
- 初始化ldirectord时,它将为集群创建虚拟服务。
- ldirectord通过定期请求已知URL并检查响应是否包含预期的响应来监视实际服务器的运行状况。
- 如果真实服务器发生故障,则该服务器将被删除,并且一旦恢复联机将被重新激活。
- 如果所有真实服务器都发生故障关闭,则将备用服务器加入集群池中,作为零时服务器进行服务提供,等待真实服务器修复上线。通常情况,后备服务器是本地主机。如果集群是提供HTTP服务的,则运行Apache HTTP服务器返回一个页面,该页面提示服务暂时不可访问。
ldirectord使用练习
测试环境
ldirectord监控对所有类型的LVS集群都是成立的:VS/DR,VS/NAT和VS/TUN
(由于之前学习LVS,机器中剩余的LVS集群是VS/TUN,就用直接使用VS/TUN)
主机名 | 系统 | IP地址 | 作用 |
---|---|---|---|
vmhost | rhel7.5 | 192.168.12.7/24 | 真机,提供虚拟机node1-3进行实践练习环境,同时进行测试 添加192.168.12.1(临时地址,作为通信网关使用) |
node1 | rhel7.5 | 192.168.12.11/24 192.168.27.11/24 | 虚拟机node1,安装ipvadm软件,模拟LVS调度服务器 同时node1是双网卡:一个IP地址(外网地址)用来模拟VIP与真机在同一网段,方便测试;一个IP地址(内网地址)是与后端服务器在同一网段进行通信的 |
node2 | rhel7.5 | 192.168.27.12/24 | 虚拟机node2,安装httpd服务,模拟后端服务器 |
node3 | rhel7.5 | 192.168.27.13/24 | 虚拟机ndoe3,安装httpd服务,模拟后端服务器 |
软件
- ldirectord-3.9.5-3.1.x86_64.rpm
- 高可用yum源
ldirectord安装使用
- 将ldirectord安装在node1节点上,由于ldirectord安装需要使用高可用yum源,所以需要配置yum配置文件、
[root@node1 ~]# vim /etc/yum.repos.d/rhel.repo
[rhel7.5]
name=rhel7.5
baseurl=http://192.168.27.7/rhel7.5
gpgcheck=0
#高可用yum源
[HighAvailability]
name=HighAvailability
baseurl=http://192.168.27.7/rhel7.5/addons/HighAvailability
gpgcheck=0
[root@node1 opt]# ls
ldirectord-3.9.5-3.1.x86_64.rpm
[root@node1 opt]# yum install -y ldirectord-3.9.5-3.1.x86_64.rpm
- 查看ldirectord安装文件
[root@node1 opt]# rpm -ql ldirectord
/etc/ha.d
/etc/ha.d/resource.d
/etc/ha.d/resource.d/ldirectord
/etc/init.d/ldirectord
#ldirectird 进程
/etc/logrotate.d/ldirectord
/usr/lib/ocf/resource.d/heartbeat/ldirectord
/usr/sbin/ldirectord
/usr/share/doc/ldirectord-3.9.5
/usr/share/doc/ldirectord-3.9.5/COPYING
/usr/share/doc/ldirectord-3.9.5/ldirectord.cf
#配置文件博模板,拷贝一份到/etc/ha.d/下
/usr/share/man/man8/ldirectord.8.gz
- 配置ldirectord配置文件
[root@node1 opt]# cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/ldirectord.cf
#拷贝配置文件
[root@node1 opt]# vim /etc/ha.d/ldirectord.cf
......
# Global Directives
checktimeout=3 #检测真实服务器出错的时间间隔
checkinterval=1 #指定ldirectord在两次检查之间的间隔时间
#fallback=127.0.0.1:80
#fallback6=[::1]:80
autoreload=yes #是否自动重载配置文件,选yes时,配置文件发生变化,自动载入配置信息
#logfile="/var/log/ldirectord.log"
#logfile="local0"
#emailalert="admin@x.y.z"
#emailalertfreq=3600
#emailalertstatus=all
quiescent=no #当选择no时,如果一个节点在checktimeout设置的时间周期内没有响应,ldirectord将会从IPVS表中直接移除real server,此时,将中断现有的客户端连接,并使IPVS丢掉所有的连接跟踪记录和持续连接模板,如果选择为yes,当某个real server失效时,ldirectord将失效节点的权值设置为0,新的连接将不能到达,但是并不从IPVS表中清除此节点,同时,连接跟踪记录和程序连接模板仍然保留在Director上。
# Sample for an http virtual service
virtual=192.168.12.11:80 #vip地址
real=192.168.27.12:80 ipip 2 #真实主机地址,ipip是TUN模式,gate是DR模式,masq是NAT模式,后接数字为权重
real=192.168.27.13:80 ipip 1
fallback=127.0.0.1:80 #备用地址,这里为本机
service=http #检测的服务类型
scheduler=wrr #调度模式
#persistent=600
#netmask=255.255.255.255
protocol=tcp #检测服务使用的协议
checktype=negotiate #检测类型,默认为negotiate
checkport=80 #检测端口
request="index.html" #检测对应服务下需要反馈的内容
# receive="Test Page" ##指定请求和应答字串;本次练习注释掉
# virtualhost=www.x.y.z #虚拟服务器的名称,随便指定;本次练习注释掉
......
#修改配置文件内容
- 清除ipvsadm记录,开启ldirectord服务,开启服务后自动添加IPVS规则
注意一定要做ipvsadm -C
[root@node1 opt]# ipvsadm -C
[root@node1 opt]# systemctl start ldirectord
[root@node1 opt]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.12.11:80 wrr
-> 192.168.27.12:80 Tunnel 2 0 6
-> 192.168.27.13:80 Tunnel 1 0 2
- node1服务器上安装httpd服务,作为备份服务器
[root@node1 opt]# yum install -y httpd
[root@node1 opt]# echo backup_node1 > /var/www/html/index.html
[root@node1 opt]# systemctl start httpd
[root@node1 opt]# curl node1
backup_node1
测试效果
- 正常没有开启ldirectord服务,使用ipvsadm配置规则时,如果node3服务器httpd服务停止,一旦访问到node3节点,显示报错无法连接
[root@vmhost images]# curl 192.168.12.11
curl: (7) Failed connect to 192.168.12.11:80; Connection refused
[root@vmhost images]# curl 192.168.12.11
node2
[root@vmhost images]# curl 192.168.12.11
node2
[root@vmhost images]# curl 192.168.12.11
curl: (7) Failed connect to 192.168.12.11:80; Connection refused
[root@vmhost images]# curl 192.168.12.11
node2
- 开启ldirectord服务后,停止node3服务器httpd服务,node3节点被踢出集群,无法访问到
[root@vmhost images]# curl 192.168.12.11
node2
[root@vmhost images]# curl 192.168.12.11
node2
[root@vmhost images]# curl 192.168.12.11
node2
[root@vmhost images]# curl 192.168.12.11
node2
[root@vmhost images]# curl 192.168.12.11
node2
[root@vmhost images]# curl 192.168.12.11
node2
[root@vmhost images]# curl 192.168.12.11
node2
[root@vmhost images]# curl 192.168.12.11
- node3服务器httpd服务恢复后,node3节点上线
[root@vmhost images]# curl 192.168.12.11
node2
[root@vmhost images]# curl 192.168.12.11
node3
[root@vmhost images]# curl 192.168.12.11
node2
[root@vmhost images]# curl 192.168.12.11
node2
[root@vmhost images]# curl 192.168.12.11
node3
[root@vmhost images]# curl 192.168.12.11
node2
[root@vmhost images]# curl 192.168.12.11
node2
- node2与node3服务器httpd服务均停止,显示备份服务器node1的httpd服务
[root@vmhost images]# curl 192.168.12.11
backup_node1
[root@vmhost images]# curl 192.168.12.11
backup_node1
[root@vmhost images]# curl 192.168.12.11
backup_node1
最后
以上就是自然柚子最近收集整理的关于LVS-学习总结(ldirectord)官方网站ldirectord介绍ldirectord运行方式ldirectord使用练习的全部内容,更多相关LVS-学习总结(ldirectord)官方网站ldirectord介绍ldirectord运行方式ldirectord使用练习内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复