ldirectord:监控和控制LVS守护进程,可管理LVS规则
包名:ldirectord-3.9.6-0rc1.1.1.x86_64.rpm
下载:http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-7/x86_64/ldirectord-3.9.6-0rc1.1.2.x86_64.rpm
文件:
/etc/ha.d/ldirectord.cf 主配置文件
/usr/share/doc/ldirectord-3.9.6/ldirectord.cf 配置模版
/usr/lib/systemd/system/ldirectord.service 服务
/usr/sbin/ldirectord 主程序,Perl实现
/var/log/ldirectord.log 日志
/var/run/ldirectord.ldirectord.pid pid文件
一、安装ldirectord
yum install ldirectord-3.9.6-0rc1.1.2.x86_64.rpm -y
二、复制安装文件里带的主配置范例文件到/etc/ha.d/
cp /usr/share/doc/ldirectord-3.9.6/ldirectord.cf /etc/ha.d/
三、进入ha.d文件夹
cd /etc/ha.d/
四、修改刚刚拷贝过来的模板文件
vim ldirectord.cf
1、开启日志
logfile="/var/log/ldirectord.log"
logfile="local0"
2、修改LVS规则,什么类型的服务器,调度规则,定义了这个就不需要在手动添加ipvsadm 规则了
virtual=10.0.0.100:80
real=192.168.1.5:80 gate
real=192.168.1.6:80 gate
fallback=127.0.0.1:80 gate
service=http
scheduler=rr
3、关闭这两项,暂时没啥用,视情况而定,是否要开启
#receive="Test Page"
#virtualhost=www.x.y.z
模板文件解释
checktimeout=3 #三秒不回应,就当你有故障
checkinterval=1 #一秒查一次
#一秒查一次,三次不回应就将后端的RS服务器从LVS规则中剔除
fallback=127.0.0.1:80 #万一RS服务器都宕机了,这个机器对外声明
fallback6=[::1]:80
logfile="/var/log/ldirectord.log" #将日志写到指定的位置
logfile="local0" #将日志写到/var/log/messages
quiescent=no #down时yes权重为0,no为删除,权重为0,优先级是最低的,也不会调度
virtual=10.0.0.100:80 #调度服务器地址,如果是防火墙标签,就写防火墙标签的号就行
real=192.168.6.2:80 gate #后端的RS服务器,gate 就是DR模型
fallback=127.0.0.1:80 gate #道歉服务器
request="index.html" #请求访问的页面
receive="Test Page" #返回的数据,有什么东西
五、在LVS服务器上添加用于外部访问的IP地址(视情况而定)
ifconfig lo:1 10.0.0.100/24
六、开启ldirectord服务
systemctl start ldirectord
七、在LVS服务器上添加道歉页面,如果后端RS服务器都不能访问了,就让用户可以直接访问到LVS服务器上的道歉页面
1、安装httpd 服务
yum install httpd -y
2、启动服务,并设置为开机自启
systemctl start httpd
systemctl enable httpd
3、生成道歉页面
echo sorry > /var/www/html/index.html
4、添加路由,指定路由服务器的地址为网关
route add default gw 192.168.1.3
八、关闭后端一台服务器,测试访问,会在ipvsadm删除宕机的那台服务器
#while : ; do curl 10.0.0.100 ; sleep 0.5 ; done
192.168.1.5 _______RS1_________________________RS1
192.168.1.5 _______RS1_________________________RS1
192.168.1.5 _______RS1_________________________RS1
192.168.1.5 _______RS1_________________________RS1
192.168.1.5 _______RS1_________________________RS1
九、关闭所有的后端服务器,会自动调度到道歉服务器
while : ; do curl 10.0.0.100 ; sleep 0.5 ; done
sorry
sorry
sorry
sorry
sorry
十、当后端服务器可以正常访问时,会自动修改ipvsadm规则,自动调度到可以访问的服务器,不会立即调度到对应的服务器上的,有几秒钟的延迟