IPVS-DR+heartbeat+ldirectord完成高可用负载均衡集群51CTO博客 - 威尼斯人

IPVS-DR+heartbeat+ldirectord完成高可用负载均衡集群51CTO博客

2019年03月31日12时25分42秒 | 作者: 运乾 | 标签: 负载,装备,发动 | 浏览: 2166

IPVS-DR+heartbeat+ldirectord高可用负载均衡集群计划前端的负载调度器选用双机热备方法,两台效劳器均装置双网卡,其间一个网卡用来衔接集群体系,另一个作为冗余心跳线路衔接双机。主负载调度器和备份负载调度器一起装置heartbeat及ldirectord,并一起运转heartbeat,彼此监督“健康”情况。一旦备份负载调度器监测到主负载调度器发作毛病,备份负载调度器上的heartbeat经过运转脚原本发动备份调度器上的LVS效劳和ldirectord效劳,完结虚拟IP毛病搬运。一旦主负载调度器康复正常作业,主负载调度器从头康复对集群的资源管理。heartbeat的中心功用包含两个部分:心跳监测和资源接收,作业原理是心跳监测经过网络链路或串口进行,主/备效劳器之间彼此发送报文通知自己当时的状况,假如在指定的时刻内未收到对方发送的报文,那么就以为对方失利,一起发动资源接收模块接收运转在对方上的资源。ldirectord作业原理是:ldirectord需求在实在效劳器内启用web效劳,然后ldirectord经过循环查看web效劳是否存活。假如实在效劳器不存活,则运用ipvsadm指令将其权重设为0,以保证客户的衔接不会导向失效的实在效劳器;假如实在效劳器修正上线,则又将其的权重设为1以使其能够为客户端衔接供给效劳。 体系渠道:Redhat 5.4 网络结构如下: IP地址规划如下: 需求装置的软件包: 1.heartbeat_2.1.4.tar.gz 2.libnet-1.1.2.1.tar.gz 3.MailTools-2.07.tar.gz 4.perl-libwww-perl-5.805-1.1.1.noarch.rpm 5.ipvsadm-1.24-10.i386.rpm 一.lvs-master上的装备 1.修正/etc/hosts文件,添加以下两行内容: [root@localhost~]# vi /etc/hosts 200.10.1.1 lvs-master 200.10.1.2 lvs-backup 2.修正主机名,修正/etc/sysconfig/network文件: HOSTNAME=lvs-master 3.装备eth0和eth1网卡IP(略) 4.设置VIP脚本: [root@lvs-master~] # vi vip.sh #!/bin/bash
VIP=200.10.1.10
/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev eth0:0 5.给vip脚本设置可执行权限: [root@lvs-master~] # chmod a+x vip.sh 运转vip脚本并设置为开机发动: [root@lvs-master~] # ./vip.sh [root@lvs-master~] # echo “/root/vip.sh”>> /etc/rc.local 6.装置perl-libwww-perl: [root@lvs-master~]# rpm-ivh perl-libwww-perl-5.805-1.1.1.noarch.rpm 7.装置ipvsadm: [root@lvs-master~]# rpm –ivh ipvsadm-1.24-10.i386.rpm 8.编译装置libnet: [root@lvs-master~]# tar zxf libnet-1.1.2.1.tar.gz [root@lvs-master~]# cd libnet [root@lvs-master libnet~]# ./configure [root@lvs-master libnet~]# make && make install 9.编译装置MailTools: [root@lvs-master~]# tar zxf MailTools-2.07.tar.gz [root@lvs-master~]# cd MailTools-2.07 [root@lvs-master MailTools-2.07~]# perl Makefile.PL [root@lvs-master MailTools-2.07~]# make && make install 10.编译装置Heartbeat: [root@lvs-master~]# groupadd haclient //添加heartbeat运转需求的haclient组 [root@lvs-master~]# useradd hacluster –g haclient –s /sbin/nologin //添加heartbeat运转需求的hacluster用户 [root@lvs-master~]# tar zxf heartbeat_2.1.4.tar.gz [root@lvs-master heartbeat-2.1.4~]# ./ConfigureMe [root@lvs-master heartbeat-2.1.4~]# ./ConfigureMe configure [root@lvs-master heartbeat-2.1.4~]# ./ConfigureMe make [root@lvs-master heartbeat-2.1.4~]# ./ConfigureMe install 将heartbeat设置成为开机自发动 [root@lvs-master heartbeat-2.1.4~]# chkconfig –add heartbeat [root@lvs-master heartbeat-2.1.4~]# chkconfig heartbeat on 11.装备ldirectord,仿制ldirectord的装备文件至/etc/ha.d目录下: [root@lvs-master heartbeat-2.1.4~]# cp ./ldirectord/ldirectord.cf /etc/ha.d/ 修正ldirectord.cf文件: checktimeout=3 checkinterval=1 autoreload=yes logfile=”/var/log/ldirectord.log” quiescent=no virtual=200.10.1.10:80               real=200.10.1.3:80 gate               real=200.10.1.4:80 gate               service=http               request=”index.html”               receive=”Test Page”               scheduler=rr               persistent=600               protocol=tcp               checktype=negotiate               checkport=80 12.装备heartbeat: heartbeat的装备文件有三个,分别是ha.cf、haresources、authkeys,需求仿制样本文件到/etc/ha.d目录下面: [root@lvs-master heartbeat-2.1.4~]# cp ./doc/ha.cf ./doc/haresources ./doc/authkeys /etc/ha.d/ 修正ha.cf文件,将下列装备项前面的“#”去掉和添加相应装备: [root@lvs-master heartbeat-2.1.4~]# vi /etc/ha.d/ha.cf debugfile /var/log/ha-debug //调试日志文件 logfile /var/log/ha-log //体系运转日志文件 logfacility local0 //日志等级 keepalive 2 //心跳频率 deadtime 30 //节点逝世时刻阀值 warntime 10 //宣布正告时刻阀值 initdead 120 //指定heartbeat看护进程发动后等候120秒再发动资源 udpport 694 //指定心跳信息传递运用的udp端口 bcast eth1 //在eth1上运用播送方法发送心跳 auto_failback on //答应主节点重启成功后拿回资源 node lvs-master //主节点称号,与uname -n保持共同 node lvs-backup //备份节点称号 respawn hacluster /usr/lib/heartbeat/ipfail apiauth ipfail gid=haclient uid=hacluster 修正haresources文件,界说heartbeat发动,设定VIP,发动ldirectord效劳: [root@lvs-master heartbeat-2.1.4~]# vi /etc/ha.d/haresources lvs-master 200.10.1.10/32/eth0/200.10.1.255 ldirectord::ldirectord.cf LVSSynsDaemonSwap::master [root@lvs-master heartbeat-2.1.4~]# service ldirectord start 修正authkeys文件,指定运用认证的方法: [root@lvs-master heartbeat-2.1.4~]# vi /etc/ha.d/authkeys auth 1 1 crc [root@lvs-master heartbeat-2.1.4~]# chmod 600 /etc/ha.d/authkeys //authkeys文件权限有必要为600 13.装备并发动ipvsadm: [root@lvs-master~] # ipvsadm –A –t 200.10.1.10:80 –s rr –p 600 [root@lvs-master~] # ipvsadm –a –t 200.10.1.10:80 –r 200.10.1.3:80 –g -w 1 [root@lvs-master~] # ipvsadm –a –t 200.10.1.10:80 –r 200.10.1.4:80 –g -w 1 [root@lvs-master~] # ipvsadm-save > /etc/sysconfig/ipvsadm [root@lvs-master~] # service ipvsadm start [root@lvs-master~] # service heartbeat start 二.lvs-backup上的装备 1.eth0和eth1网卡IP装备(略) 2.主机名和VIP脚本设定(同lvs-master共同) 3.需求装置的软件同lvs-master共同,ipvsadm装备共同。 4.heartbeat和ldirectord装备文件也同lvs-master共同,能够直从lvs-master上仿制曩昔,指令如下: [root@lvs-master ha.d~] # scp ./ldirectord.cf ha.cf authkeys haresources root@200.10.1.2:/etc/ha.d/ 三.Realserver1(Web)上的装备 添加以下脚本: [root@localhost~] # vi lvs.sh #!/bin/bash
VIP="200.10.1.10"
/sbin/ifconfig eth0 200.10.1.3/24
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce sysctl –p 给脚本添加可执行权限,然后发动并设置为开机发动: [root@localhost~] # chmod a+x lvs.sh [root@localhost~] # ./lvs.sh [root@localhost~] # echo “/root/lvs.sh”>> /etc/rc.local 创立测验页面并发动web效劳: [root@localhost~] # echo “This is Realserver1”> /var/www/html/index.html [root@localhost~] # service httpd start 四.Realserver2(Web)上的装备 添加以下脚本: [root@localhost~] # vi lvs.sh #!/bin/bash
VIP="200.10.1.10"
/sbin/ifconfig eth0 200.10.1.4/24
/sbin/ifconfig lo:0 $VIP braodcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce sysctl –p 给脚本添加可执行权限,然后发动并设置为开机发动: [root@localhost~] # chmod a+x lvs.sh [root@localhost~] # ./lvs.sh [root@localhost~] # echo “/root/lvs.sh”>> /etc/rc.local 创立测验页面并发动web效劳: [root@localhost~] # echo “This is Realserver2”> /var/www/html/index.html [root@localhost~] # service httpd start 五.测验及验证 分别在两台PC上翻开浏览器,输入“http://200.10.1.10”,假如看到的是不同的页面,阐明LVS装备成功!     IPVS-DR+heartbeat+ldirectord装备成功!
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表威尼斯人立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章