一、搭建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后查看是否会收到邮件以及客户端访问会转移到另一个服务器上