一,环境配置
VIP:192.168.222.222
RIP:192.168.222.134
RIP:192.168.222.135
DR_MASTER:eth0 192.168.222.128 eth1 172.16.0.1 (单网卡也行)
DR_SLAVE:eth0 192.168.222.129 eth1 172.16.0.2 (单网卡也行)
二,DR配置
1,安装软件
yum install epel-release -y
yum install ipvsadm -y
yum install heartbeat -y
wget ftp://ftp.pbone.net/mirror/rpms.arrfab.net/centos/testing/x86_64/heartbeat/heartbeat-ldirectord-2.99.2-8.1.el5.test.x86_64.rpm
yum localinstall heartbeat-ldirectord-2.99.2-8.1.el5.test.x86_64.rpm
2,主机名修改
1)192.168.222.128:
hostname DR_MASTER
vim /etc/hosts添加如下
192.168.222.128 DR_MASTER
192.168.222.129 DR_SLAVE
2)192.168.222.129
hostname DR_SLAVE
vim /etc/hosts添加如下
192.168.222.128 DR_MASTER
192.168.222.129 DR_SLAVE
3,编辑配置文件
cd /usr/share/doc/heartbeat-3.0.4/
cp ha.cf haresources authkeys /etc/ha.d/
cp /usr/share/doc/heartbeat-ldirectord-2.99.2/ldirectord.cf /etc/ha.d/
1)编辑配置文件ha.cf
bcast eth1#广播给网卡eth1
node DR_MASTER#指明DR_MASTER节点
node DR_SLAVE#指明DR_SLAVE节点
2)编辑认证密钥配置文件authkeys
auth 3
3 md5 Hello!
#chmod 600 authkeys
3)编辑配置文件haresources, 该文件列出集群主节点、集群IP、子网掩码以及启动的服务等集群资源
DR_MASTER 192.168.222.222/24/eth0 ldirectord::ldirectord.cf
4)编辑配置文件ldirectord.cf
checktimeout=3 //检测超时时间checkinterval=1 //检测间隔
autoreload=yes //该配置文件修改后能够自动重载
quiescent=no
# Sample for an http virtual service
virtual=192.168.222.222:80
real=192.168.222.134:80 gate
real=192.168.222.135:80 gate
#fallback=127.0.0.1:80 gate #realserver全死掉指向本机
service=http
request=".test.html" #通过访问含有”OK”内容的.web.html这个web页面来达到监测后方的real server
receive="OK"
#virtualhost=some.domain.com.au
scheduler=rr
#persistent=600
#netmask=255.255.255.255
protocol=tcp
checktype=negotiate
checkport=80
TIPS://
quiescent=no
#"no"表示:如果一个节点在checktimeout设置的时间周期内没有相应,ldirectord会从LVS的路由表中之间移除realserver,此时中断现有的客户端连接,并使LVS丢掉所有的连接跟踪记录和持续连接记录
#"yes"表示:当某个realserver失效时,ldirectord将失效节点的权值设置为0,新的连接将不能到达,但是并不从LVS路由表中清除此节点,同时,连接跟踪记录和程序连接模版仍然保留在Director上
ldirectord指出守护进程监视realserver方法,checktype有以下四种:
#negotiate:在checktimeout周期内真实服务器都没有返回你指定的应答字符串,这个节点就被认为死掉了
request=".test.html"
receive="OK"
#connect:在checkport指定的端口上连接真实服务器,需要到真实服务器的TCO/IP连接是通畅的,这个方法没有negotiate可靠
#A number:在这里指定一个数字代替,ldirectord先执行连接次数测试,再执行一次negotiate测试,减少真实服务器应答健康检查和集群网络通讯
#off:禁用ldirectord监视真实服务器的健康。
三,realserver配置
echo "ok"> /var/www/html/.test.html
#chattr +i .test.html #添加i隐藏属性后无法更改
#lsattr .test.html #查看属性
realsever.sh同上一篇《LVS+Keepalived高可用负载均衡》。