本文共 4145 字,大约阅读时间需要 13 分钟。
在现在大规模网站中应用的集群技术中,能够提供负衡均载,高可用性的 web 服务,当然还有其他的方案同样也能提供负衡均载,高可用性,这里来实现一下 lvs+heartbeat+ldirectord 。 heartbeat-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-devel-2.1.4-9.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm heartbeat-gui-2.1.4-9.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm heartbeat-gui-2.1.4-9.el5.x86_64.rpm perl-MailTools-1.77-1.el5.noarch.rpm heartbeat-ldirectord-2.1.4-9.el5.i386.rpm 192.168.20.0 该网段是作为 heartbeat 的心跳网段 两台主机充当 heartbeat 服务器 , 且为其分配的 Ip 地址为 首先在真实服务器上安装 apache 并测试其能够运行 # 并用客户机访问该 web 服务 , 如果能够正常运行 , 2 在真实服务器上隐藏 arp 解析 , 并设置其能够宣布自己的 IP 地址 #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 #ifconfig lo:0 192.168.10.10 broadcast 192.168.10.10 netmask 255.255.255.255 up 并确认配置的浮动 IP, 能够正常 , 当然该中方法配置的 IP 地址在重启网卡的时候 , 该地址就会消失 当然 , 您可以在 /etc/sysconfig/network-scripts/ 下面创建 ifcfg-lo:0 文件 , 并把其中的 IP 地址修改为浮动的 ip 地址 #route add -host 192.168.10.10 dev lo:0 1 同样在主节点和辅助节点上同样需要安装 apache 服务 # 并在 web 的根目录下面创建 index.html 文件 , 文件中的内容为当真实服务器不能正常运行的时候 , 主辅节点 , 提供一些说明性信息 , 同样也要测试其 apache 能够正常运行 同样用客户端进行测试 , 测试完成后 , 并关闭其服务 #ipvsadm -A –t 192.168.10.10:80 –s wlc #ipvsadm -a –t 192.168.10.10:80 –r 192.168.10.3 -w 1 –g #ipvsadm -a -t 192.168.10.10:80 –r 192.168.10.4 –w 2 –g #yum –nogpgcheck localinstall *.rpm 注 : 在安装前先把光盘挂载 , 因为在安装 heartbeat 的时候 , 依赖一些软件包 5 从 /usr/share/doc/heartbeat-2.14/ authkeys ha.cf haresource 到目录 /etc/ha.d/ #cp /usr/share/doc/heartbeat-2.14/{authkeys,ha.cf,haresource} #echo –ne “ auth 1 \nl shal “ >>/etc/ha.d/authkeys #dd if=/dev/urandom bs=512 count=1 | openssl md5 >> /etc/ha.d/authkeys #vim /etc/ha.d/authkeys ( 查看密钥是否追加到该文件中,并把密钥要和 1 shal 同行 ) debugfile /var/log/ha-debug respawn hacluster /usr/lib/heartbeat/ipfail 8 从 目录下面 /usr/share/doc/heartbeat-ldirectord-2.1.4 中拷贝文件 ldirectord.cf 到目录 /etc/ha.d/ ,并修改其名为 heartbeat-ldirectord-lvs-httpd.cf, 并修改 virtual=192.168.10.10 : 80 real=192.168.10.3 : 80 gate 1 real=192.168.10.4 : 80 gate 2 fallback=127.0.0.1 : 80 gate 注: fallback 如果真是服务器的服务不能正常运行,则会把客户的请求转发到本节点的服务上 request= “ .ldirectord.html ” 注:该项是节点进行探测真是服务 apache 的根目录下面的文件,从而确认该真是服务器能够正常运行 注:该信息是返回给主节点的确认信息,当返回的的信息为上面的内容时,则服务运行正常,否则服务是 down 注: 该部和第三不中配置 ipvsadm 是重复的,当然第三步中的配置可以省略 #cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/ldirectord-lvs-httpd.cf #vim /etc/ha.d/harecource node1.example.com 192.168.10.10 ldirectord-lvs-httpd.cf 注: node1.example.com 为主节点的主机名 11 分别在真是服务器上的 apache 的根目录下面创建文件 并用 ifconfig 查看 eth0 : 0 是否出现,该 ip 地址为 15 注:不知在配置 heartbeat+lvs+ldirectord 中,真是服务器上的服务是否还需要手动启动,有人说在启动 heartbeat 的时,就已经把真是服务器上的服务器启动开了,但是我在配置的哦时候,是手动启动开真是服务器上的服务:如 apache 本文转自 freehat08 51CTO博客,原文链接:http://blog.51cto.com/freehat/341575,如需转载请自行联系原作者