Clúster de alta disponibilidad con mantenimiento de LVS

Uno. Función de Keepalived

专为LVS和HA设计的一款健康检查工具
支持故障自动切换(Failover)
支持节点健康状态检查(Health Checking)

2. Principio de implementación

keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能

3. Explicación de VRRP

VRRP是针对路由器的一种备份解决方案
1.由多台路由器组成一个热备组,通过共用的虚拟IP地址对外提供服务
2.每个热备组内同时只有一台主路由器提供服务,其他路由器处于冗余状态
3.若当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提服务

Cuatro Explicación del caso mantenido

1.Keepalived可实现多机热备,每个热备组可有多台服务器
2.双机热备的故障切换是由虚拟IP地址的漂移来实现,适用于各种应用服务器
3.实现基于Web服务的双机热备

Configuración Five.keepalived

主配置文件位置:/etc/keepalived/keepalived.conf
keepalived.conf是主配置文件
global_defs{…}区段指定全局参数
vrrp_instance实例名称{…}区段指定VRRP热备参数
注释文字以“!”符号开头
目录samples,提供了许多配置样例作为参考

配置参数
router_id LVS_1:本服务器名称为 LVS_1
vrrp_instance v1 {}:定义热备实例组名为 v1
state MASTER:热备状态,MASTER表示主服务器
interface ens33:表示承载虚拟地址的物理接口为ens33
virtual_router_id 1:表示虚拟服务器的ID号为1,每个热备组保持一致
priority 100:优先级为100,数值越大优先级越高
advert_int 1:表示通告间隔秒数(心跳频率)
auth_type PASS:认证类型为密码
auth_pass 123456:密码为123456
virtual_ipaddress {虚拟地址,可以有多个}

6. Todo el proceso de LVS + keepalived

1. Entorno experimental

主调度器:192.168.100.11 虚拟IP:192.168.100.210
备调度器:192.168.100.12 虚拟IP:192.168.100.210
服务器1:192.168.100.110 虚拟IP:192.168.100.210
服务器2:192.168.100.120 虚拟IP:192.168.100.210
共享存储服务器:192.168.100.10
客户机

2. Configuración del servidor de almacenamiento compartido

[]yum -y install nfs-utils rpcbind
[] mkdir /opt/web1
[] mkdir /opt/web2
[] echo "this is kgc web" > /opt/web1/index.html
[]echo "this is accp web" > /opt/web2/index.html
[] vi /etc/exports
/opt/web1 192.168.100.110/32(ro)
/opt/web2 192.168.100.120/32(ro)
[] systemctl start nfs
[] systemctl start rpcbind
[]showmount -e	#查看本机共享存储发布情况

3. Servidor

web1

showmount -e 192.168.100.10
[root@localhost ~]# mount 192.168.100.10:/opt/kgc /var/www/html/

vi aa.sh
#!/bin/bash
 # DR
ifconfig lo:0 192.168.100.210 broadcast 192.168.100.210netmask       255.255.255.255 up		
#添加虚拟网口
route add -host 192.168.100.210dev lo:0		#给lo:0添加路由
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
 ##系统只响应目的IP为本地真实IP的ARP请求
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
##系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送真实 接口的IP地址
sysctl -p &> /dev/null

ifconfig	#查看虚拟网口配置情况

web2

[root@localhost ~]# showmount -e 192.168.100.10
[root@localhost ~]# mount 192.168.100.10:/opt/accp /var/www/html/

vi bb.sh
#!/bin/bash
# DR
ifconfig lo:0 192.168.100.210 broadcast 192.168.100.210 netmask 255.255.255.255   up		
#添加虚拟网口
route add -host 192.168.100.210 dev lo:0		#给lo:0添加路由
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore   #系统只响应目的IP为本地真实IP的ARP请求
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce   #系统不使用IP包的源地址来设置ARP请求的源地址
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p &> /dev/null

ifconfig	#查看虚拟网口配置情况

4. Programador

Programador maestro

modprobe ip_vs   //加载LVS内核模块
cat /proc/net/ip_vs //查看当前系统ip_vs模块版本信息
yum -y install ipvsadm
yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel    //配置keepalived软件依赖环境

vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id LVS_1
}

vrrp_instance v1 {
    state MASTER
    interface ens33
    virtual_router_id 1
    priority 105
    advert_int 1
    authentication {
    auth_type PASS
    auth_pass 1111
}
virtual_ipaddress {
    192.168.100.210
}
}

virtual_server 192.168.100.210 80 {	#虚拟服务器地址
delay_loop 6	#健康检查的间隔时间6s
lb_algo rr		#调度算法为rr
lb_kind DR		#群集工作模式为DR
persistence_timeout 6	#连接保持时间6s
protocol TCP		#应用服务器采用TCP协议

real_server 192.168.100.110 80 {	#第一个web服务器真实地址
    weight 1	#节点的权重
    TCP_CHECK {		#健康检查方式TCP
            connect_port 80		#检查的目标端口80
            connect_timeout 3	#连接超时3秒
            nb_get_retry 3		#重试次数3次
            delay_before_retry 3	#重试间隔3秒
            }
    }
real_server 192.168.100.120 80 {
    weight 1
    TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            }
    }
}

systemctl start keepalived    //开启服务

Programador en espera

modprobe ip_vs   //加载LVS内核模块
cat /proc/net/ip_vs //查看当前系统ip_vs模块版本信息
yum -y install ipvsadm
yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel    //配置keepalived软件依赖环境

vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id LVS_2
}

vrrp_instance v1 {
 state BACKUP
 interface ens33
 virtual_router_id 1
 priority 100
 advert_int 1
 authentication {
    auth_type PASS
    auth_pass 1111
}
virtual_ipaddress {
    192.168.100.210
 }
}

virtual_server 192.168.100.210 80 {
 delay_loop 6
 lb_algo rr
 lb_kind DR
 persistence_timeout 6
 protocol TCP

real_server 192.168.100.110 80 {
    weight 1
    TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            }
    }
real_server 192.168.100.120 80 {
    weight 1
    TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            }
    }

}

5. Prueba

Visite 192.168.100.210 por primera vez
Inserte la descripción de la imagen aquí

Visite 192.168.100.210 por segunda vez
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_45647891/article/details/110933881
Recomendado
Clasificación