
Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能
Keepalived可实现多机热备,每个热备组可有多台服务器

keepalived热备份方式

| CentOS7.9 | 192.168.10.101/24 | web服务器 |
| CentOS7.9 | 192.168.10.102/24 | web服务器 |
- [root@localhost ~]# systemctl stop firewalld
- [root@localhost ~]# setenforce 0
- [root@localhost ~]# yum -y install keepalived ipvsadm
主服务器的配置,同步101、102配置,配置完成后,删除多余的内容,修改102配置文件的参数
- [root@localhost ~]# cd /etc/keepalived/
- [root@localhost keepalived]# ls
- [root@localhost keepalived]# cp keepalived.conf keepalived.bak
- [root@localhost keepalived]# vim keepalived.conf
- 101
- router_id LVS_01
- #vrrp_strict
- interface ens33
- virtual_ipaddress {
- 192.168.10.172
- }
- 删除以下多的行,123行,
- 102
- router_id LVS_02
- #vrrp_strict
- interface ens33
- priority 90
- #修改优先级
- state BACKUP #修改角色
- virtual_ipaddress {
- 192.168.10.172
- }
[root@localhost keepalived]# systemctl start keepalived
- 101主机没挂起前
- [root@localhost keepalived]# ifconfig
- [root@localhost keepalived]# ip a
- inet 192.168.10.172/32 scope global ens33
- valid_lft forever preferred_lft forever
- 102主机
- 101主机挂起后IP地址漂移到102主机上,101主机重写启动IP地址漂移不回去
- inet 192.168.10.172/32 scope global ens33
- valid_lft forever preferred_lft forever
- 101
- [root@localhost ~]# vim /etc/keepalived/keepalived.conf
- #vrrp_strict #注释该节点
- [root@localhost ~]# systemctl restart keepalived
- 102
- [root@localhost ~]# vim /etc/keepalived/keepalived.conf
- #vrrp_strict #注释该节点
- [root@localhost ~]# systemctl restart keepalived
- [root@localhost ~]# ping 192.168.10.172
- [root@localhost ~]# curl 192.168.10.172
- web01
- [root@localhost ~]# curl 192.168.10.172
- web02

| CentOS7.9 | 192.168.10.105/24 | 客户端 |
| CentOS7.9 | 192.168.10.101/24 | 主调度器 |
| CentOS7.9 | 192.168.10.102/24 | 从调度器 |
| CentOS7.9 | 192.168.10.103/24 | web服务器 |
| CentOS7.9 | 192.168.10.104/24 | web服务器 |
关闭防火墙、停止运行NetworkManager服务
- [root@localhost ~]# systemctl stop firewalld
- [root@localhost ~]# setenforce 0
- [root@localhost ~]# systemctl stop NetworkManager
- [root@localhost ~]# yum -y install keepalived ipvsadm
- [root@localhost ~]# cd /etc/keepalived/
- [root@localhost keepalived]# cp keepalived.conf keepalived.bak
主从服务器keepalived的配置
- [root@localhost keepalived]# vim keepalived.conf
- 101
- router_id LVS_01
- #vrrp_strict
- interface ens33
- virtual_ipaddress {
- 192.168.10.172 #修改虚拟IP地址
- }
- virtual_server 192.168.10.172 80 {
- delay_loop 6
- lb_algo rr
- lb_kind DR
- #persistence_timeout 50
- protocol TCP
-
- real_server 192.168.10.103 80 {
- weight 1
- TCP_CHECK {
- connect_port 80
- connect_timeout 3
- nb_get_retry 3
- delay_before_retry 3
- }
- }
- real_server 192.168.10.104 80 {
- weight 1
- TCP_CHECK {
- connect_port 80
- connect_timeout 3
- nb_get_retry 3
- delay_before_retry 3
- }
- }
-
- }
- 删除以下剩下的内容
-
-
- 直接复制101编辑好的内容
- 102
- virtual_server 192.168.10.172 80 {
- delay_loop 6
- lb_algo rr
- lb_kind DR
- #persistence_timeout 50
- protocol TCP
-
- real_server 192.168.10.103 80 {
- weight 1
- TCP_CHECK {
- connect_port 80
- connect_timeout 3
- nb_get_retry 3
- delay_before_retry 3
- }
- }
- real_server 192.168.10.104 80 {
- weight 1
- TCP_CHECK {
- connect_port 80
- connect_timeout 3
- nb_get_retry 3
- delay_before_retry 3
- }
- }
-
- }
- [root@localhost keepalived]# vim /etc/sysctl.conf
- net.ipv4.conf.all.send_redirects =0
- net.ipv4.conf.default.send_redirects= 0
- net.ipv4.conf.ens33.send_redirects= 0
- [root@localhost keepalived]# sysctl -p
- [root@localhost ~]# systemctl stop firewalld
- [root@localhost ~]# setenforce 0