keepalived双机热备
Keepalived 的热备方式
Keepalived采用VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)热备份协议,以
软件的方式实现Linux服务器的多机热备功能。VRRP是针对路由器的一种备份解决方案——由多台
路由器组成一个热备组,通过共用的虚拟Р地址对外提供服务,每个热备组内同一时刻只有一台主
路由器提供服务,其他路由器处于冗余状态,若当前在线的路由器失效,则其他路由器会自动接替
(优先级决定接替顺序)虚拟IP地址,以继续提供服务。
热备组内的每台路由器都可能成为主路由器,虚拟路由器的P地址(VIP)可以在热备组内的路由器之间进行转移,所以也称为漂移Р地址。使用Keepalived 时,漂移地址的实现不需要手动建立虚接口配置文件(如ens33:0),而是由Keepalived根据配置文件自动管理。
1、准备工作
6台Linux虚拟机
centos01 centos02 WEB服务器
centos03 centos04 主备调度器
centos05 共享服务器
centos06 网关服务器
1台windows 用于测试访问WEB
2、安装httpd服务
1、centos01安装httpd
[root@centos01 ~]# yum -y install httpd
修改centos01访问内容 启动服务设置开机自启
[root@centos01 ~]# echo “www.benet.com” > /var/www/html/index.html
[root@centos01 ~]# systemctl start httpd
[root@centos01 ~]# systemctl enable httpd
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7dFQprQm-1606218572516)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1606205824901.png)]
2、centos02安装httpd
[root@centos02 ~]# yum -y install httpd
修改centos02访问内容 启动服务设置开机自启
[root@centos02 ~]# echo “www.accp.com” > /var/www/html/index.html
[root@centos02 ~]# systemctl start httpd
[root@centos02 ~]# systemctl enable httpd
3、配置主备调度器
1、配置主调度器
[root@centos03 ~]# yum -y install ipvsadm keepalived
[root@centos03 ~]# vim /etc/keepalived/keepalived.conf
主配置文件内容
! Configuration File for keepalived
global_defs {
router_id LVS_HA_MASTER
}
vrrp_instance VI_1 {
state MASTER
interface ens32
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.100.254
}
}
virtual_server 192.168.100.254 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.100.10 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 192.168.100.254 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.100.20 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
2、配置备用调度器
[root@centos04 ~]# yum -y install ipvsadm keepalived
[root@centos04 ~]# scp root@192.168.100.30:/etc/keepalived/keepalived.conf /etc/keepalived/
备用配置文件内容
! Configuration File for keepalived
global_defs {
router_id LVS_HA_BACKUP
}
vrrp_instance VI_1 {
state BACKUP
interface ens32
virtual_router_id 51
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.100.254
}
}
virtual_server 192.168.100.254 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.100.10 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 192.168.100.254 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.100.20 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
3、启动主备调度器
[root@centos03 ~]# systemctl start keepalived
[root@centos04 ~]# systemctl start keepalived
4、修改LVS服务器内核参数
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens32.send_redirects = 0
[root@centos03 ~]# vim /etc/sysctl.conf
[root@centos04 ~]# scp root@192.168.100.30:/etc/sysctl.conf /etc/
5、配置WEB内核参数
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
[root@centos01 ~]# vim /etc/sysctl.conf
[root@centos02 ~]# scp root@192.168.100.10:/etc/sysctl.conf /etc/
6、配置虚拟VIP
1、配置centos01
[root@centos01 ~]# cp /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/ifcfg-lo:0
[root@centos01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
2、配置centos02
[root@centos02 ~]# cp /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/ifcfg-lo:0
[root@centos02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
记得重启网卡
7、测试内网访问
更换ip即可更换访问的WEB
8、配置网关服务器
1、添加网卡
2、修改网卡内容
[root@centos06 ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens32 /etc/sysconfig/network-scripts/ifcfg-ens34
[root@centos06 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens34
重启网卡服务
[root@centos06 ~]# systemctl restart network
3、安装DNS
[root@centos06 ~]# mount /dev/sr0 /mnt/
[root@centos06 ~]# yum -y install bind bind-utils bind-chroot
[root@centos06 ~]# vim /etc/named.conf
[root@centos06 ~]# vim /var/named/benet.com.zone
4、配置firewalld防火墙
[root@centos06 ~]# firewall-cmd --add-interface=ens32 --zone=trusted
[root@centos06 ~]# firewall-cmd --add-interface=ens34 --zone=external
[root@centos06 ~]# firewall-cmd --set-default-zone=trusted
[root@centos06 ~]# firewall-cmd --zone=external --add-service=http
[root@centos06 ~]# firewall-cmd --zone=external --add-service=dns
[root@centos06 ~]# firewall-cmd --zone=external --add-port=80/tcp
[root@centos06 ~]# firewall-cmd --zone=external --remove-masquerade
[root@centos06 ~]# firewall-cmd --zone=external --add-rich-rule='rule family=ipv4 source address=192.168.100.0/24 masquerade'
[root@centos06 ~]# firewall-cmd --zone=external --add-rich-rule='rule family=ipv4 destination address=192.168.200.10/32 forward-port port=80 protocol=tcp to-addr=192.168.100.254'
9、为cenos01到centos05添加网卡
10、测试外网访问
先清除浏览器缓存
更换ip访问测试能否切换WEB
11、配置存储服务器
1、安装服务器
[root@centos05 ~]# yum -y install nfs-utils rpcbind
2、配置服务器存储目录
[root@centos05 ~]# mkdir /www
[root@centos05 ~]# echo “www.nfs.com” > /www/index.html
3、修改存储目录配置
[root@centos05 ~]# vim /etc/exports
4、启动服务
[root@centos05 ~]# systemctl start nfs
[root@centos05 ~]# systemctl start rpcbind
5、查看共享存储
[root@centos05 ~]# showmount -e 192.168.100.50
6、为WEB服务器挂载共享存储
[root@centos01 ~]# mount 192.168.100.50:/www /var/www/html/
[root@centos02 ~]# mount 192.168.100.50:/www /var/www/html/
12、测试访问
更换ip测试,查看内容是否改变