lvsDR方式

次实验的前提是前面的heartbeat-HA已经做好,在HA主机上,先停掉heartbeat服务

/etc/init.d/heartbeat  stop

/etc/init.d/ipvsadm    stop

/etc/init.d/heartbeat   stop

/etc/init.d/ipvsadm     stop

RS主机上

arptables  -L  查看arptables的设置

server17   ifconfig  eth0:0 192.168.0.92 netmask 255.255.255.255up

/etc/init.d/arptables_jf  start

arptables  -L

/etc/init.d/arptables_jf  stop

vi /etc/sysconfig/arptables

前面做heartbeat是设置拉arptables规则,现在是non-arp这是DR的要求

arptables -A IN -d 192.168.0.92  -j  DROP

arptables -A  OUT -s 192.168.0.92 -j mangle--mangle-ip-s 192.168.0.117

/etc/init.d/arptables_jf  save

/etc/init.d/arptables_jf  start

/etc/init.d/httpd  start 启动web服务,lvs不能自动启动RS上的服务

server41   ifconfig  eth0:0 192.168.0.92 netmask 255.255.255.255up 设置RS主机的vip

arptables -A IN -d 192.168.0.92  -j  DROP

arptables -A  OUT -s 192.168.0.92 -j mangle--mangle-ip-s 192.168.0.141

/etc/init.d/arptables_jf  save

/etc/init.d/arptables_jf  start

/etc/init.d/httpd  start

HA主机上

server51

ipvsadm  -L查看

ipvsadm -A -t 192.168.0.92:80 -s rr

ipvsadm -a -t 192.168.0.92:80 -r 192.168.0.117:80 -g

ipvsadm -a -t 192.168.0.92:80 -r 192.168.0.141:80 -g

/etc/init.d/ipvsadm  save

ipvsadm -C  清除调度链表

ipvsadm  -l 查看调度列表

cat /etc/sysconfig/ipvsadm

scp /etc/sysconfig/ipvsadm 192.168.0.194:/etc/sysconfig/

server94

cat /etc/sysconfig/ipvsadm

ipvsadm -l  查看调度列表

chkconfig ipvsadm --list

chkconfig ipvsadm  off

server51

vi haresources

server51.example.comIPaddr::192.168.0.92/24/eth0 ipvsadm (着后面加启动脚本)

scp /etc/ha.d/haresources 192.68.0.194:/etc/ha.d/

/etc/init.d/heartbeat  start

tail -f  /var/log/ha-log

server94

/etc/init.d/heartbeat  start

server51  ipvsadm  -l 此时它已经自动得到调度列表了

server51挂掉了以后,服务自动跳到server94上,server94自动得到调度列表

server51活过来以后,服务再次跳回来。

这样不要向上次实验那样,设置ipvsad的调度列表拉,自动启动调度列表。用/etc/init.d/ipvsadm脚本调度


2 DR 方式无法检测后台RS的健康状况,利用小插件ldirectord可以实现这个功能。

在安装heartbeat的时候已经安装了ldirectord

rpm -ql  ldirectord 查看ldirectord的详细信息和安装文件的信息

cp  /usr/share/doc/packages/ldirectord/ldirectord.cf   /etc/ha.d/

/etc/init.d/ldirectord   start 启动的时候提示错误Starting ldirectord ...Can't locate IO/Socket?INET6.pm 着是缺少perl的模块

yum  install -y perl-IO-Socket-INET6(server51)

yum  install  -y  perl-IO-Socket-INET6(server94)俩太HA主机都要安装

server51

cd /etc/ha.d/

vi ldirectord.cf

 virtual=192.168.0.92:80

      real=192.168.0.117:80  gate

      real=192.168.0.141:80  gate

      fallback=127.0.0.1:80    gate(当所有RS主机挂掉后,服务跑到HA当前使用的主机上)

      service=http

      scheduler=rr(调度算法)

      #persistent=600

      #netmask=255.255.255.255

      protocol=tcp

      checkport=80

      request="index.html"

      #receive="testpage"

      #virtualhost=www.x.y.z

scp ldirectord.cf 192.168.0.194:/etc/ha.d/

vi haresources

server51.example.com  IPaddr::192.168.0.92/24/eth0   ldirectord httpd(自动打开httpdapache服务,当所有RS主机挂掉以后,HA服务主机的web服务器打开),着后面更启动脚本,又HA主机自动打开,不许要手动开启

scp  haresources 192.168.0.194:/etc/ha.d/

/etc/init.d/ldirectord   start(server51)

/etc/init.d/ldirectord   start(server94)

/etc/init.d/heartbeat    start(server51)

tail  -f  /var/log/ha-log   如果没有错误,在启动另外一台HA主机的心跳

/etc/init.d/heartbeat   start

ipvsadm -l  (server51)查看调度列表

当后台服务挂掉以后,ldorectord  自动吧挂掉的主机从调度列表中删除,ldorectord还调度ipvsadm,不许要手动启动ipvsadm

当所有RS主机挂掉以后,服务到达跑服务的HA主机上,当在haresources 中最后一行的配置中要加上启动的脚本,要不无法自动启动(server51.example.com  IPaddr::192.168.0.92/24/eth0   ldirectord httpd


3 lvs上增添服务

RS上安装fpt服务

server41

yum install -y vsftpd

/etc/init.d/vsftpd  start

cd /var/ftp/

touch server41

touch welcome.msg

echo test > welcome.msg

server17

yum install -y vsftpd(RS主机)

/etc/init.d/vsftpd  start

cd /var/ftp/

touch server17

touch welcome.msg

echo test > welcome.msg

server94touch  welcome.msg

echo test > welcome.msg

yum install -y vsftpd

/etc/init.d/vsftpd   start

cd /var/ftp/

touch server94

touch welcome.msg

echo test > welcome.msg

server51

yum install -y vsftpd (HA主机)

/etc/init.d/vsftpd   start

cd /var/ftp/

touch server51

touch welcome.msg

echo test > welcome.msg

server51HAmaster主机上

vi ldirectord.cf  查找关于ftp的设置更改如下:

virtual=192.168.0.92:21

      real=192.168.0.117:21   gate

      real=192.168.0.141:21   gate

      fallback=127.0.0.1:21    

      service=ftp

      checkport=21

#     scheduler=wlc

      scheduler=rr

      persistent=300(300秒内访问的是同一台RS)持续链接时间

      netmask=255.255.255.255

      protocl=tcp

      checktype=negotiate

      login="ftp"

      passwd="ftp"

      request="welcome.msg"验证信息要在ftp的默认发布目录中有文件welcome.msg,这个文件包含test内容

      receive="test"

ipvsadm -l 查看是否有调度列表

在测试机上lftp192.168.0.92   ls 查看连接到那台主机上了

HA  master主机上ipvsadm  -l 查看调度列表的信息

用俩个VIP支持俩个服务VIP 92支持的服务为webVIP 71 支持的服务为 ftp

HA master主机上

server51

ifconfig eth0:1 192.168.0.71 netmask255.255.255.0 up

ifconfig

RS主机上

server17

ifconfig eth0:1 192.168.0.71 netmask255.255.255.255 up

ifconfig

/etc/init.d/arptables_jf start

arptables -A IN -d 192.168.0.71 -j DROP

arptables -A OUT -s 192.168.0.71 -j mangle--mangle-ip-s 192.168.0.117

/etc/init.d/arptables_jf save

/etc/init.d/arptables_jf restart

server41

ifconfig eth0:1 192.168.0.71 netmask255.255.255.255 up

ifconfig

/etc/init.d/arptables_jf start

arptables -A IN -d 192.168.0.71 -j DROP

arptables -A OUT -s 192.168.0.71 -j mangle--mangle-ip-s 192.168.0.141

/etc/init.d/arptables_jf save

/etc/init.d/arptables_jf restart

还可以更改arp的文件

server17

vi /etc/sysconfig/arptables

[0:0] -A IN -d 192.168.0.92 -j DROP

[0:0] -A IN -d 192.168.0.71 -j DROP

[0:0] -A OUT -s 192.168.0.92 -j mangle--mangle-ip-s 192.168.0.117

[0:0] -A OUT -s 192.168.0.71 -j mangle--mangle-ip-s 192.168.0.117

/etc/init.d/arptables_jf restart

server41

vi /etc/sysconfig/arptables

[0:0] -A IN -d 192.168.0.92 -j DROP

[0:0] -A IN -d 192.168.0.71 -j DROP

[0:0] -A OUT -s 192.168.0.92 -j mangle--mangle-ip-s 192.168.0.141

[0:0] -A OUT -s 192.168.0.71 -j mangle--mangle-ip-s 192.168.0.141

/etc/init.d/arptables_jf restart

HA master主机上

vi ldirectord.cf ftp服务的Virtual=192.168.0.71:21 改成

Virtual=192.168.0.71:21

vi haresources

server51.example.com 192.168.0.92192.168.0.71 ldirectord httpd vsftpd

/etc/init.d/heartbeat stop(server51)

/etc/init.d/heartbeat stop(server94)

scp haresources ldirectord.cf192.168.0.194:/etc/ha.d/

/etc/init.d/heartbeat   start(HA master server51)

tail -f /var/log/ha-log 没有错误的话启动backupheartbeat

/etc/init.d/heartbeat   start(HA backup server94)