通过keepalived实现LVS主备
前置要求:
按照《单机LVS实现请求分发(负载)DR模式》配置各台服务器。
安装keepalived
在node01和node02上面分别安装keepalived
yum install keepalived ipvsadm -y
配置主LVS
vim /etc/keepalived/keepalived.conf
删掉里面的内容并且写入下面配置:
! Configuration File for keepalived
global_defs {
notification_email {
#xxxx@itcast.com # 发生故障时发送的邮箱
}
#notification_email_from xxxx@itcast.com # 使用哪个邮箱发送
#smtp_server xxx.com # 发件服务器
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER # 标示为主lvs
interface enp0s3 # HA检测端口
virtual_router_id 51 # 主备的virtual_router_id 必须相同
priority 100 # 优先级,备lvs要比主lvs稍小
advert_int 1 # VRRP Multicast 广播周期秒数
authentication { # 定义认证
auth_type PASS # 认证方式为口令认证
auth_pass 1111 # 定义口令
}
virtual_ipaddress { # 定义vip
192.168.43.100 # 多个vip可换行添加
}
}
virtual_server 192.168.43.100 80 {
delay_loop 1 # 每隔6秒查看realserver状态
lb_algo wlc # 调度算法为加权最小连接数
lb_kind DR # lvs工作模式为DR(直接路由)模式
nat_mask 255.255.255.0
persistence_timeout 0 # 同一IP 的连接50秒内被分配到同一台realserver(测试时建议改为0)
protocol TCP # 用TCP监测realserver的状态
real_server 192.168.43.3 80 { # 定义realserver
weight 3 # 定义权重
TCP_CHECK { # 注意TCP_CHECK和大括号之间的空格,如果没有的话只会添加第一个realserver
connect_timeout 3 # 三秒无响应超时
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.43.4 80 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
配置备LVS
vim /etc/keepalived/keepalived.conf
删掉里面的内容并且写入下面配置:这里和主LVS配置的区别是state 改为BACKUP ,优先级priority改成比主LVS的小一些。
! Configuration File for keepalived
global_defs {
notification_email {
#xxxx@itcast.com # 发生故障时发送的邮箱
}
#notification_email_from xxxx@itcast.com # 使用哪个邮箱发送
#smtp_server xxx.com # 发件服务器
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP # 标示为主lvs
interface enp0s3 # HA检测端口
virtual_router_id 51 # 主备的virtual_router_id 必须相同
priority 20 # 优先级,备lvs要比主lvs稍小
advert_int 1 # VRRP Multicast 广播周期秒数
authentication { # 定义认证
auth_type PASS # 认证方式为口令认证
auth_pass 1111 # 定义口令
}
virtual_ipaddress { # 定义vip
192.168.43.101 # 多个vip可换行添加
}
}
virtual_server 192.168.43.101 80 {
delay_loop 1 # 每隔6秒查看realserver状态
lb_algo wlc # 调度算法为加权最小连接数
lb_kind DR # lvs工作模式为DR(直接路由)模式
nat_mask 255.255.255.0
persistence_timeout 0 # 同一IP 的连接50秒内被分配到同一台realserver(测试时建议改为0)
protocol TCP # 用TCP监测realserver的状态
real_server 192.168.43.128 80 { # 定义realserver
weight 3 # 定义权重
TCP_CHECK { # 注意TCP_CHECK和大括号之间的空格,如果没有的话只会添加第一个realserver
connect_timeout 3 # 三秒无响应超时
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.43.67 80 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
分别启动node01和node03的keepalived
service keepalived start
查看LVS负载情况
ipvsadm -ln

验证主备相互切换
停掉主LVS,在node01上执行
service keepalived stop
继续通过192.168.43.100访问,并通过ipvsadm -ln 查看node02上有正常负载数据
重启启动node01,继续通过192.168.43.100访问,并通过ipvsadm -ln 查看node01上有正常负载数据
本文介绍了如何通过keepalived在Linux服务器上实现LVS的主备切换。详细步骤包括前置条件、安装keepalived、配置主备LVS节点、启动服务以及验证切换功能。

519

被折叠的 条评论
为什么被折叠?



