条件:五台虚拟机:

wKioL1lJC0fyi1FoAACvszD_mmI828.png

wKiom1lJC0mwfrkgAACTds0yKgc684.png

wKioL1lJC0nxek6BAACpZDpa_L8461.png

wKiom1lJC0qj0cvTAAC2w4V2QP4304.png

wKiom1lJC0zxX3VCAAC6vk1LtUo895.png


(主)负载调度器:

创建映射端口(VIP)

wKioL1lJC0yirkjtAABmqA07qOs394.png

优化环境:(/etc/sysctl.conf)

wKioL1lJC03Rwvb7AAAR8UNFzz4227.png

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.eth0.send_redirects = 0

sysctl -p

加载ip_vs模块

modprobe ip_vs

查看ipvs

cat /proc/net/ip_vs

安装IPVS

yum install -y ipvsadm

查看版本:

ipvsadm -v

设置负载调度器设置模式

ipvsadm -A -t 192.168.115.100:80 -s rr

ipvsadm -a -t 192.168.115.100:80 -r 192.168.115.173:80 -g(173和176分别指向两个RS)

ipvsadm -a -t 192.168.115.100:80 -r 192.168.115.176:80 -g

查看:

ipvsadm -Ln


安装keepalived

yum install -y gcc*  kernel-devel openssl-devel popt-devel ipvsadm

tar -xvf keepalived-1.2.7.tar.gz

./configure --prefix=/  --with-kernel-dir=/usr/src/kernels/2.6.32-131.0.15.el6.i686

make && make install

chkconfig --add keepalived

chkconfig keepalived on

wKiom1lJC06zK-5eAAC6Tn3e6F8591.png

配置keepalived文件:

wKiom1lJC0-xZTLnAAClwHWLUe4643.png

启动服务:

service keepalived start

chkconfig keepalived on


共享资源服务器:

搭建NFS给RS挂在使用

wKioL1lJC0_in68ZAAAPceMnG7g930.png

wKiom1lJC1DwHC58AAAS4OPS2Vw022.png


RS1:

安装Apache服务

配置本地回环端口映射:

wKioL1lJC1CwpGz4AACUEvQjZgk842.png

设置一条路由:

route add -host 192.168.115.100 dev lo:0

优化环境:

wKiom1lJC1HQRdvqAAAf9_l8KAQ900.png

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.default.arp_ignore = 1

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2


RS2:

安装Apache服务,将内容从NFS服务器上面挂在过来:

mount -t nfs 192.168.115.177:/share /var/www/html

设置映射网卡:

wKioL1lJC1Ggc8WaAAB9mZhqeGw019.png

优化环境:

wKioL1lJC1KAGKD8AAAf6iGq3HQ092.png

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.default.arp_ignore = 1

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

设置路由:

设置一条路由:

route add -host 192.168.115.100 dev lo:0


测试机访问:

每刷新一次,内容一次轮询:

wKiom1lJC1KgUuk2AAAs6TuCBeA836.png

wKiom1lJC1OzCaCnAAAvIa9U1CY252.png


下面搭建基于keepalived的LVS-DR

增加一个虚拟机作为从负载调度器:

wKioL1lJC1TgRP8xAAD_VkvsqFw812.png

wKiom1lJC1XDCTO3AAG9vlMaVlQ829.png

wKioL1lJC1aRctIQAAC_YbFGw3g201.png

wKiom1lJC1fDjNrGAAB5d7LvCbc618.png

加载ip_vs模块

modprobe ip_vs

查看ipvs

cat /proc/net/ip_vs

安装IPVS

yum install -y ipvsadm

查看版本:

ipvsadm -v

设置负载调度器设置模式

ipvsadm -A -t 192.168.115.100:80 -s rr

ipvsadm -a -t 192.168.115.100:80 -r 192.168.115.173:80 -g(173和176分别指向两个RS)

ipvsadm -a -t 192.168.115.100:80 -r 192.168.115.176:80 -g

查看:

ipvsadm -Ln

wKioL1lJC1ehQuJOAAAugHDjJTU176.png

优化环境:

wKiom1lJC1iA-Vm3AAAU08mcdiI875.png

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.eth0.send_redirects = 0


安装keepalived

yum install -y gcc*  kernel-devel openssl-devel popt-devel ipvsadm

tar -xvf keepalived-1.2.7.tar.gz

./configure --prefix=/  --with-kernel-dir=/usr/src/kernels/2.6.32-131.0.15.el6.i686

make && make install

chkconfig --add keepalived

chkconfig keepalived on

wKioL1lJC2CCUcQyAAC6Tn3e6F8625.png

wKioL1lJC2GAP7OWAACHvqf5l4I050.png

service keepalived start

chkconfig keepalived on

测试机测试:

wKiom1lJC2Gy2DkwAAApQanFYFo504.png

wKiom1lJC2LDEYXnAAA3601vQSo560.png

wKioL1lJC2KgnkMpAAAtMBMSqog291.png

wKioL1lJC2KSmZucAAA2CqyntAA372.png

从服务器成功接替工作:实验成功:

配置文件模板:

! Configuration File for keepalived

global_defs {

  router_id LVS_R1

}

vrrp_instance VI_1 {

   state MASTER

   interface eth0

   virtual_router_id 51

   priority 100

   advert_int 1

   authentication {

       auth_type PASS

       auth_pass 1111

   }

   virtual_ipaddress {

       192.168.115.100

   }

}

virtual_server 192.168.115.100 80 {

   delay_loop 6

   lb_algo rr

   lb_kind DR

   protocol TCP

   real_server 192.168.115.173 80 {

       weight 1

               TCP_CHECK {

                       connect_port 80

                       connect_timeout 3

                       nb_get_retry 3

                       delay_before_retry 3

       }

       }

  real_server 192.168.115.176 80 {

       weight 1

               TCP_CHECK {

                       connect_port 80

                       connect_timeout 3

                       nb_get_retry 3

                       delay_before_retry 3

       }

       }

   }

在做从负载调度器的时候,因为有两个网卡公用一个地址,这样启动网卡的时候会报错

解决办法:

vim /etc/sysconfig/network-scripts/ifup-eth

wKiom1lJC2TyvHYoAABjK8uN0Ss287.png

将图示内容注释即可

然后再重启网卡