搭建简单的高可用负载均衡集群

一、搭建DR模式的lvs集群
环境:DS:192.168.4.53 VIP:192.168.4.100
RS:192.168.4.51 192.168.4.52
1、建立三台实验机器,配置好ip和yum仓库
2、在DR上配置VIP

[root@53 ~]#cp /etc/sysconfig/network-scripts/ifcfg-eth0 {,:0}
[root@53 ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0:0   ##配置eth0:0
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0:0                                                   ##此项必须修改成eth0:0
DEVICE=eth0:0                                                 ##此项必须修改成eth0:0 
ONBOOT=yes 
IPADDR=192.168.4.100                                          ##此项必须修改成eth0:0
PREFIX=24
:wq
[root@53 ~]#ifup eth0:0
[root@53 ~]#yum -y install  ipvsadm.x86_64                   ##安装集群布置软件
[root@53 ~]#ipvsadm  -A -t 192.168.4.100:80 -s rr            ##设置集群
[root@53 ~]#ipvsadm  -a -t 192.168.4.100:80 -r 192.168.4.51 -g ##添加服务器
[root@53 ~]#ipvsadm  -a -t 192.168.4.100:80 -r 192.168.4.52 -g
[root@53 ~]#ipvsadm -ln                                     ##查看集群信息
[root@53 ~]#ipvsadm  -save -n > /etc/sysconfig/ipvsadm      ##永久保存配置

3、在后段服务器上部署vip

[root@51 ~]#cp /etc/sysconfig/network-scripts/ifcfg-lo{,:0}
[root@51 ~]#vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.4.100
NETMASK=255.255.255.255
NETWORK=192.168.4.100
BROADCAST=192.168.4.100
ONBOOT=yes
NAME=lo:0
[root@51 ~]#ifup lo:0
[root@51 ~]#sysctl -a | grep arp_ignore                   ##查看与arpannounce有关的选项
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 0
net.ipv4.conf.eth0.arp_ignore = 0
net.ipv4.conf.eth1.arp_ignore = 0
net.ipv4.conf.eth2.arp_ignore = 0
net.ipv4.conf.eth3.arp_ignore = 0
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.virbr0.arp_ignore = 0
net.ipv4.conf.virbr0-nic.arp_ignore = 0
[root@51 ~]#echo "net.ipv4.conf.all.arp_ignore = 1" >> /etc/sysctl.conf
[root@51 ~]#echo "net.ipv4.conf.lo.arp_ignore = 1" >> /etc/sysctl.conf
[root@51 ~]#sysctl -a | grep arp_announce                    ##查看与arpannounce有关的选项
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 0
net.ipv4.conf.eth0.arp_announce = 0
net.ipv4.conf.eth1.arp_announce = 0
net.ipv4.conf.eth2.arp_announce = 0
net.ipv4.conf.eth3.arp_announce = 0
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.virbr0.arp_announce = 0
net.ipv4.conf.virbr0-nic.arp_announce = 0
[root@51 ~]#echo "net.ipv4.conf.all.arp_announce = 2" >> /etc/sysctl.conf 
[root@51 ~]#echo "net.ipv4.conf.lo.arp_ignore = 1" >> /etc/sysctl.conf
[root@51 ~]#sysctl -p                                     ##此命令可以让上面的写入的内容生效

**

在另一台后段服务器上做同样的操作,完成后即可完成DR模式的集群配置

**

二、keepalived与lvs实现高可用
环境:基于实验一的环境,布置以下操作:添加一台调度器,实现DS的高可用,在原先的DS上删除集群设置,命令为ipvsadm -D -t 192.168.4.100:80
1、添加一台DS,ip为192.168.4.54
以下操作在两台机器上都需要操作:
2、在两台调度器上都安装ipvsadm、keepalived.x86_64
3、修改配置文件

vim     /etc/keepalived/keepalived.conf 
! Configuration File for keepalived
global_defs {
   notification_email {               ##邮件配置( keealived可以实现邮件报警功能)
     root@localhost                   ##收件箱
   }
   notification_email_from [email protected]   ##发邮件箱
   smtp_server 127.0.0.1              ##后端邮件服务器(本机只能写127.0.0.1)
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   #vrrp_strict                     ##此项需要注释,否则会启动iptables,导致规则限制访问
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {               ##vrp实例
    state MASTER                   ##分为Master和Backup
    interface eth0                 ##使用的网卡
    virtual_router_id 51           ##虚拟id号
    priority 150                   ##优先级(活跃的优先级大)
    advert_int 1          
    authentication {               ##两台调度器的认证信息
        auth_type PASS         
        auth_pass 1111
    }
    virtual_ipaddress {            ##设置集群VIP
        192.168.4.100             
    }
}
若只要作网站的集群则只要做到以上即可,以下为配置lvs规则信息
virtual_server 192.168.4.100 80 {        ##集群配置,网站的话使用80端口,相当于ipvsadm  -A设置
    delay_loop 6                     
    lb_algo rr
    lb_kind DR
    persistence_timeout 50             ##50秒之内相同客户端访问相同服务器,有利于性能提升
protocol TCP

real_server 192.168.4.62 80 {       ##集群内服务器配置
        weight 1                 
         TCP_CHECK {                 ##TCP类型,TCP_CHECK与{之间必须要有空格,切记!!!!!!
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.4.63 80 {
        weight 1
         TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}
  :wq

4、启动测试

[root@54 ~]# systemctl restart keepalived.service   
[root@54 ~]#ip a s eth0
[root@54 ~]#ipvsadm 	

5、客户端访问测试,会发现只访问一台服务器,停掉一台服务器httpd后查看是否会收到邮件以及客户端访问会转移到另一个服务器上

猜你喜欢

转载自blog.csdn.net/sally_1027/article/details/83662503