searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Keepalived(高可用)和LVS(负载均衡)试用

2024-03-07 06:27:05
123
0

前言

内部FTP/REST服务数据上报服务均为单节点,会存在单节点故障和性能瓶颈。先急迫需提供清晰简单明了的高可用+负载均衡(keepalived+lvs+DR)方案,业内的slb解决方案,核心实现思想也是keepalived+lvs。现这里简单演示记录下手动做高可用和负载均衡的说明和步骤。

技术思路

当前高可用+负载均衡方案主要使用使用keepalived+lvs+DR实现,lvs组件实现负载均衡,keepalived组件实现高可用。

Keepalived是啥?

Keepalived就是VRRP的实现,该协议是虚拟冗余路由协议,顾名思义为服务保活,通过故障转移对外保证服务的高可用。详情可以查看官方文档。

软件架构图

一些说明

0,VRRP(虚拟冗余路由协议)提供VIP和VMAC地址,设定那个路由器是活动节点,客户端使用VIP和VMAC寻址。

1,Master会不停的向Backup节点基于VRRP协议上报心跳,一旦心跳超时,Backup节点立马变化为Master。整个故障转移流程是全自动。

2,VRRP Stack为一个子进程负责VRRP(也就是VRRP协议的实现)。

3,Checkers为一个子进程负责IPVS的后端的应用服务器的定时健康检查。比如下游的nginx挂了,则可以通过Checkers做相应的操作,比如告警和重启服务。

4,Control Plane为主进程,控制VRRP Stack和Checkers两个子进程。且复杂一些配置文件的处理。

5,WatchDog为linux内核监控进程,监控两个子进程的状态。

LVS是啥?

LVS是Linux Virtual Server的简写,也就是Linux 虚拟服务器,基于IP地址的虚拟化应用,主要为负载均衡提出了高效的解决方法,解决DNS中的TTL缓存导致动态不均衡和F5等硬件设备昂贵的痛点。详情可以查看官方文档。LVS有三种负载均衡工作方式,地址转换(NAT)、IP 隧道(TUN)和直接路由(DR)由于DR模式响应数据不经过LVS节点,是性能最好的,下文所有的说明均基于DR模式,其他模式可以参考官方说明。

软件架构

一些说明

1,LVS主要由两个部分组成,ipvs和ipvsadm。ipvs工作在内核空间,基于内核态的netfilter框架实现,真正实现数据链路调度的部分。ipvsadm工作在用户空间,主要为内核的ipvs编写规则,实现 VIP 和 RS 的增删改查功能。

2,LVS为使用IP+端口形式做四层负载均衡。不同于nginx等使用应用层信息比如HTTP头,URL,cookie等做七层负载均衡。如果不使用应用层信息做定制化的负载均衡则推荐使用LVS。

3,LVS的一些专业术语,DS(Director Server负载均衡节点服务器),RS(Real Server后端真实服务器),VIP(对外提供访问的虚拟IP),RIP(真实后端服务器的IP),CIP(访问客户端的IP),DIP(负载均衡节点服务器IP),VMAC(VIP对应的MAC地址)。

4,LVS工作原理,LVS基于内核的netfilter,IPVS工作在INPUT链上。客户端请求通过交换机进 LVS服务器网卡进入内核空间层,在PREROUTING查找路由,判断VIP是否为本机IP,如果是则将数据包传入INPUT。IPVS在INPUT链中判断访问的VIP和端口判断请求是否为IPVS服务,如果是则进行IPVS相关流程,并修改数据包中的相关信息(主要是RIP-MAC,这里会通过响应的负载均衡算法,比如轮询配置中的RS节点)发送到POSTROUTING链。POSTROUTING链收到数据包后,将根据目标IP地址服务器,将数据包最终发送至后端真实RS服务器中。RS处理并返回响应数据包返回到交换机。

5,LVS+DR模式的一些限制,DR模式虽然响应数据不用过LVS节点,性能高和数据完整性强,但是LVS与RS必须在同一个物理网络,且RS上配置了lo网卡和arp内核参数。

6,LVS+keepalived至少需要4台机器,DR和RS不能再同一个节点上,否则会出现死循环。

7,LVS+DR无法像nginx会作为一个代理服务去重试错误请求,如果在DR模式下,如果RS节点没有配置VIP则这部分请求就会丢失。

简单操作

部署资源

 

部署图

简单操作

Real Server节点操作

1,交付上报服务

在两个RS节点192.168.100.34和192.168.100.35成功完成数据上报服务的实例交付。

2,启动上报服务

在两个RS节点192.168.100.34和192.168.100.35上启动FTP/REST内核服务。

systemctl status ftp
systemctl restart ftp
 
systemctl status rest
systemctl restart rest

3,创建LVS节点

在RS节点上创建lo:0虚拟网卡并修改内核参数,需要在两个RS节点192.168.100.34和192.168.100.35执行如下操作,切记只能在两个RS节点上执行!!!否则会导致其他节点服务访问

创建install_vip.sh脚本文件,内容如下:

CT_VIP=192.168.100.111
source /etc/rc.d/init.d/functions
case "$1" in
start)
       ifconfig lo:0 $CT_VIP netmask 255.255.255.255 broadcast $CT_VIP
       /sbin/route add -host $CT_VIP dev lo:0
       echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
       echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
       echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
       sysctl -p >/dev/null 2>&1
       echo "RealServer Start OK"
       ;;
stop)
       ifconfig lo:0 down
       route del $CT_VIP >/dev/null 2>&1
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
       echo "RealServer Stoped"
       ;;
*)
       echo "Usage: $0 {start|stop}"
       exit 1
esac
exit 0

执行命令创建和销毁lo:0虚拟网卡和设置内核参数以及重置内核参数。

# 1,上传脚本
rz -bye
 
# 2,创建
sh install_vip.sh start
 
# 3,需要注意机器重启后lo:0网卡就会丢失,需要配置开机启动
chmod +x /etc/rc.d/rc.local
echo '# for lvs lo:0' >> /etc/rc.local
echo '/root/install_vip.sh start' >> /etc/rc.local

创建成功后可以看到下图则表示成功。

Director Server节点操作

1,创建keepalived配置文件

创建keepalived.conf配置文件。参考模板如下。

! Configuration File for keepalived
 
global_defs {
    router_id T_LVS
}
 
vrrp_instance VI_1 {                                # 定义VRRP实例名(VT_1),建议默认配置
    state MASTER                                   # 当前节点的主备初始状态,可以为MASTER和BACKUP
    interface enp1s0                                # 机器的具体网卡
    virtual_router_id 100                          # 虚拟路由id,唯一标识,主备节点该值相同
    mcast_src_ip 192.168.100.244                    # 发送多播包的地址,一般问本机ip
    priority 100                                   # 节点初始优先级
    advert_int 1                                   # vrrp通告优先级时间间隔
     
    authentication {                              # 认证机制
        auth_type PASS
        auth_pass xxxx                             # 密钥,和其他keepalived节点必须一致
    }
 
    virtual_ipaddress {
       192.168.100.111                    # 虚拟IP
    }
}
 
virtual_server fwmark 300 {                 # virtual server(虚拟服务器),FTP使用ipvs的防火墙打标方式
    delay_loop 6                        # 健康检查的时间间隔
    lb_algo wrr                                     # 负载调度算法
    lb_kind DR                                      # lvs的模式
    protocol TCP                                    # ip包转发协议,有TCP和UDP两种
    persistence_timeout 900
     
    real_server 192.168.100.34 9814 {              # ftp real server 的ip+port
        weight 1                                   # 权重
        TCP_CHECK {                                # 健康检查
            connect_timeout 3                      # 无响应超时时间,单位是秒
            nb_get_retry 3                         # 重连次数
            delay_before_retry 3                   # 重试间隔
            connect_port 9814                      # real_server指定的端口
        }
    }
     
    real_server 192.168.100.35 9814 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 9814
        }
    }
}
 
virtual_server 192.168.100.111 9826 {              # rest的 virtual_server
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    protocol TCP
 
    real_server 192.168.100.34 9826 {
        weight 1
        TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        }
    }
     
    real_server 192.168.100.35 9826 {
        weight 1
        TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        }
    }
}

在另一个节点按上同理操作,修改keepalived.conf配置文件中为state  BACKUP,priority 50;

2,安装keepalived+lvs

建议下载使用keepalived-2.0.13.tar.gz离线安装,使用yum install -y keepalived安装的版本可能会出现调度问题。

安装流程如下:

# 1,上传keepalived-2.0.13.tar.gz安装文件
rz -bye
 
# 2,解压
tar -zxvf keepalived-2.0.13.tar.gz
 
# 3,编译并安装
yum install -y gcc
yum install libnl3-devel
cd keepalived-2.0.13/
./configure --prefix=/usr/local/keepalived
make && make install
 
# 4,配置开机启动
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/
ln -s /usr/local/keepalived/sbin/keepalived  /usr/sbin/
systemctl enable   keepalived
 
# 5,上传配置文件keepalived.conf
cd /etc/keepalived
rz -bye 
 
# 6,启动keepalived
systemctl restart  keepalived
systemctl status   keepalived
 
# 7,安装ipvsadm
yum -y install ipvsadm

3,操作iptables

在两个DR节点192.168.100.145和192.168.100.244上执行如下操作。由于FTP在passive mode可能无法使用ip+端口的形式定义virtual_server,只能使用ipvs的防火墙打标方式。

# 1,给FTP的服务端口(9814)和数据传输端口(8000:10000)
iptables -t mangle -A PREROUTING -p tcp -d 192.168.100.111 --dport 9814 -j MARK --set-mark 300
iptables -t mangle -A PREROUTING -p tcp -d 192.168.100.111 --dport 8000:10000 -j MARK --set-mark 300
 
# 2,查看是否生效
iptables -t mangle -L
 
# 3,保存 iptables 避免重启机器后标签丢失
yum install -y iptables-services
systemctl enable iptables.service
service iptables save

4,测试负载均衡+高可用是否生效

FTP服务
# 测试ftp走vip是否ok
ftp -nvi 192.168.100.111 9814
user admin ***

 

REST服务
# 创建一个测试文件
touch test_rest_compoent_available.txt
 
# 执行rest 脚本
chmod +x rest-test.sh
sh rest-test.sh 192.168.100.111 'xxxx'

 

6,高可用测试

在一个RS节点执行脚本

while true; do sh rest-test.sh 192.168.100.111 'xxxxx'; sleep 1;done
ftp -nvi 192.168.100.111 9814
模拟LVS节点下线

在LVS MASTER节点执行systemctl stop  keepalived;ip a可以看到vip漂移走了。

在LVS BACKUP节点执行ip a可以看到VIP转移到了BACKUP上;

服务检查正常,VIP回到MASTER节点;

模拟RS节点下线
# 在其中一个RS(192.168.100.34)节点执行
systemctl stop ftp && systemctl stop rest
 
# 然后再LVS节点上执行
watch ipvsadm -Ln --stats

可以看到192.168.100.34节点已经不在路由中了。

然后访问服务,可以看到服务正常;

总结

1,为何负载均衡用LVS而不是nginx?

答:LVS+DR模式下,LVS节点只有请求包的流量,响应包的流量不过LVS节点,性能更高。且LVS为4层负载,nginx为7层负载,在小文件的场景下用不上7层负载。

 

2,FTP为何要用ipvs的防火墙打标方式?

答:如果FTP不用fwmark的方式,那么FTP只能访问9814服务端口,在passive mode的情况下可能无法访问数据传输端口。

 

3,LVS和keepalived分别起什么样的角色?

答:keepalived是LVS的一部分。keepalived顾名思义“保活”,LVS为负载均衡。

 

4,两节点下其中一个keepalived只是备用,一直空闲?

答:生产环境一般用2个VIP做双主相互热备,2个VIP绑定2个外网IP并绑定DNS域名对外服务。

0条评论
0 / 1000
wanghg11
13文章数
2粉丝数
wanghg11
13 文章 | 2 粉丝
原创

Keepalived(高可用)和LVS(负载均衡)试用

2024-03-07 06:27:05
123
0

前言

内部FTP/REST服务数据上报服务均为单节点,会存在单节点故障和性能瓶颈。先急迫需提供清晰简单明了的高可用+负载均衡(keepalived+lvs+DR)方案,业内的slb解决方案,核心实现思想也是keepalived+lvs。现这里简单演示记录下手动做高可用和负载均衡的说明和步骤。

技术思路

当前高可用+负载均衡方案主要使用使用keepalived+lvs+DR实现,lvs组件实现负载均衡,keepalived组件实现高可用。

Keepalived是啥?

Keepalived就是VRRP的实现,该协议是虚拟冗余路由协议,顾名思义为服务保活,通过故障转移对外保证服务的高可用。详情可以查看官方文档。

软件架构图

一些说明

0,VRRP(虚拟冗余路由协议)提供VIP和VMAC地址,设定那个路由器是活动节点,客户端使用VIP和VMAC寻址。

1,Master会不停的向Backup节点基于VRRP协议上报心跳,一旦心跳超时,Backup节点立马变化为Master。整个故障转移流程是全自动。

2,VRRP Stack为一个子进程负责VRRP(也就是VRRP协议的实现)。

3,Checkers为一个子进程负责IPVS的后端的应用服务器的定时健康检查。比如下游的nginx挂了,则可以通过Checkers做相应的操作,比如告警和重启服务。

4,Control Plane为主进程,控制VRRP Stack和Checkers两个子进程。且复杂一些配置文件的处理。

5,WatchDog为linux内核监控进程,监控两个子进程的状态。

LVS是啥?

LVS是Linux Virtual Server的简写,也就是Linux 虚拟服务器,基于IP地址的虚拟化应用,主要为负载均衡提出了高效的解决方法,解决DNS中的TTL缓存导致动态不均衡和F5等硬件设备昂贵的痛点。详情可以查看官方文档。LVS有三种负载均衡工作方式,地址转换(NAT)、IP 隧道(TUN)和直接路由(DR)由于DR模式响应数据不经过LVS节点,是性能最好的,下文所有的说明均基于DR模式,其他模式可以参考官方说明。

软件架构

一些说明

1,LVS主要由两个部分组成,ipvs和ipvsadm。ipvs工作在内核空间,基于内核态的netfilter框架实现,真正实现数据链路调度的部分。ipvsadm工作在用户空间,主要为内核的ipvs编写规则,实现 VIP 和 RS 的增删改查功能。

2,LVS为使用IP+端口形式做四层负载均衡。不同于nginx等使用应用层信息比如HTTP头,URL,cookie等做七层负载均衡。如果不使用应用层信息做定制化的负载均衡则推荐使用LVS。

3,LVS的一些专业术语,DS(Director Server负载均衡节点服务器),RS(Real Server后端真实服务器),VIP(对外提供访问的虚拟IP),RIP(真实后端服务器的IP),CIP(访问客户端的IP),DIP(负载均衡节点服务器IP),VMAC(VIP对应的MAC地址)。

4,LVS工作原理,LVS基于内核的netfilter,IPVS工作在INPUT链上。客户端请求通过交换机进 LVS服务器网卡进入内核空间层,在PREROUTING查找路由,判断VIP是否为本机IP,如果是则将数据包传入INPUT。IPVS在INPUT链中判断访问的VIP和端口判断请求是否为IPVS服务,如果是则进行IPVS相关流程,并修改数据包中的相关信息(主要是RIP-MAC,这里会通过响应的负载均衡算法,比如轮询配置中的RS节点)发送到POSTROUTING链。POSTROUTING链收到数据包后,将根据目标IP地址服务器,将数据包最终发送至后端真实RS服务器中。RS处理并返回响应数据包返回到交换机。

5,LVS+DR模式的一些限制,DR模式虽然响应数据不用过LVS节点,性能高和数据完整性强,但是LVS与RS必须在同一个物理网络,且RS上配置了lo网卡和arp内核参数。

6,LVS+keepalived至少需要4台机器,DR和RS不能再同一个节点上,否则会出现死循环。

7,LVS+DR无法像nginx会作为一个代理服务去重试错误请求,如果在DR模式下,如果RS节点没有配置VIP则这部分请求就会丢失。

简单操作

部署资源

 

部署图

简单操作

Real Server节点操作

1,交付上报服务

在两个RS节点192.168.100.34和192.168.100.35成功完成数据上报服务的实例交付。

2,启动上报服务

在两个RS节点192.168.100.34和192.168.100.35上启动FTP/REST内核服务。

systemctl status ftp
systemctl restart ftp
 
systemctl status rest
systemctl restart rest

3,创建LVS节点

在RS节点上创建lo:0虚拟网卡并修改内核参数,需要在两个RS节点192.168.100.34和192.168.100.35执行如下操作,切记只能在两个RS节点上执行!!!否则会导致其他节点服务访问

创建install_vip.sh脚本文件,内容如下:

CT_VIP=192.168.100.111
source /etc/rc.d/init.d/functions
case "$1" in
start)
       ifconfig lo:0 $CT_VIP netmask 255.255.255.255 broadcast $CT_VIP
       /sbin/route add -host $CT_VIP dev lo:0
       echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
       echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
       echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
       sysctl -p >/dev/null 2>&1
       echo "RealServer Start OK"
       ;;
stop)
       ifconfig lo:0 down
       route del $CT_VIP >/dev/null 2>&1
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
       echo "RealServer Stoped"
       ;;
*)
       echo "Usage: $0 {start|stop}"
       exit 1
esac
exit 0

执行命令创建和销毁lo:0虚拟网卡和设置内核参数以及重置内核参数。

# 1,上传脚本
rz -bye
 
# 2,创建
sh install_vip.sh start
 
# 3,需要注意机器重启后lo:0网卡就会丢失,需要配置开机启动
chmod +x /etc/rc.d/rc.local
echo '# for lvs lo:0' >> /etc/rc.local
echo '/root/install_vip.sh start' >> /etc/rc.local

创建成功后可以看到下图则表示成功。

Director Server节点操作

1,创建keepalived配置文件

创建keepalived.conf配置文件。参考模板如下。

! Configuration File for keepalived
 
global_defs {
    router_id T_LVS
}
 
vrrp_instance VI_1 {                                # 定义VRRP实例名(VT_1),建议默认配置
    state MASTER                                   # 当前节点的主备初始状态,可以为MASTER和BACKUP
    interface enp1s0                                # 机器的具体网卡
    virtual_router_id 100                          # 虚拟路由id,唯一标识,主备节点该值相同
    mcast_src_ip 192.168.100.244                    # 发送多播包的地址,一般问本机ip
    priority 100                                   # 节点初始优先级
    advert_int 1                                   # vrrp通告优先级时间间隔
     
    authentication {                              # 认证机制
        auth_type PASS
        auth_pass xxxx                             # 密钥,和其他keepalived节点必须一致
    }
 
    virtual_ipaddress {
       192.168.100.111                    # 虚拟IP
    }
}
 
virtual_server fwmark 300 {                 # virtual server(虚拟服务器),FTP使用ipvs的防火墙打标方式
    delay_loop 6                        # 健康检查的时间间隔
    lb_algo wrr                                     # 负载调度算法
    lb_kind DR                                      # lvs的模式
    protocol TCP                                    # ip包转发协议,有TCP和UDP两种
    persistence_timeout 900
     
    real_server 192.168.100.34 9814 {              # ftp real server 的ip+port
        weight 1                                   # 权重
        TCP_CHECK {                                # 健康检查
            connect_timeout 3                      # 无响应超时时间,单位是秒
            nb_get_retry 3                         # 重连次数
            delay_before_retry 3                   # 重试间隔
            connect_port 9814                      # real_server指定的端口
        }
    }
     
    real_server 192.168.100.35 9814 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 9814
        }
    }
}
 
virtual_server 192.168.100.111 9826 {              # rest的 virtual_server
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    protocol TCP
 
    real_server 192.168.100.34 9826 {
        weight 1
        TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        }
    }
     
    real_server 192.168.100.35 9826 {
        weight 1
        TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        }
    }
}

在另一个节点按上同理操作,修改keepalived.conf配置文件中为state  BACKUP,priority 50;

2,安装keepalived+lvs

建议下载使用keepalived-2.0.13.tar.gz离线安装,使用yum install -y keepalived安装的版本可能会出现调度问题。

安装流程如下:

# 1,上传keepalived-2.0.13.tar.gz安装文件
rz -bye
 
# 2,解压
tar -zxvf keepalived-2.0.13.tar.gz
 
# 3,编译并安装
yum install -y gcc
yum install libnl3-devel
cd keepalived-2.0.13/
./configure --prefix=/usr/local/keepalived
make && make install
 
# 4,配置开机启动
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/
ln -s /usr/local/keepalived/sbin/keepalived  /usr/sbin/
systemctl enable   keepalived
 
# 5,上传配置文件keepalived.conf
cd /etc/keepalived
rz -bye 
 
# 6,启动keepalived
systemctl restart  keepalived
systemctl status   keepalived
 
# 7,安装ipvsadm
yum -y install ipvsadm

3,操作iptables

在两个DR节点192.168.100.145和192.168.100.244上执行如下操作。由于FTP在passive mode可能无法使用ip+端口的形式定义virtual_server,只能使用ipvs的防火墙打标方式。

# 1,给FTP的服务端口(9814)和数据传输端口(8000:10000)
iptables -t mangle -A PREROUTING -p tcp -d 192.168.100.111 --dport 9814 -j MARK --set-mark 300
iptables -t mangle -A PREROUTING -p tcp -d 192.168.100.111 --dport 8000:10000 -j MARK --set-mark 300
 
# 2,查看是否生效
iptables -t mangle -L
 
# 3,保存 iptables 避免重启机器后标签丢失
yum install -y iptables-services
systemctl enable iptables.service
service iptables save

4,测试负载均衡+高可用是否生效

FTP服务
# 测试ftp走vip是否ok
ftp -nvi 192.168.100.111 9814
user admin ***

 

REST服务
# 创建一个测试文件
touch test_rest_compoent_available.txt
 
# 执行rest 脚本
chmod +x rest-test.sh
sh rest-test.sh 192.168.100.111 'xxxx'

 

6,高可用测试

在一个RS节点执行脚本

while true; do sh rest-test.sh 192.168.100.111 'xxxxx'; sleep 1;done
ftp -nvi 192.168.100.111 9814
模拟LVS节点下线

在LVS MASTER节点执行systemctl stop  keepalived;ip a可以看到vip漂移走了。

在LVS BACKUP节点执行ip a可以看到VIP转移到了BACKUP上;

服务检查正常,VIP回到MASTER节点;

模拟RS节点下线
# 在其中一个RS(192.168.100.34)节点执行
systemctl stop ftp && systemctl stop rest
 
# 然后再LVS节点上执行
watch ipvsadm -Ln --stats

可以看到192.168.100.34节点已经不在路由中了。

然后访问服务,可以看到服务正常;

总结

1,为何负载均衡用LVS而不是nginx?

答:LVS+DR模式下,LVS节点只有请求包的流量,响应包的流量不过LVS节点,性能更高。且LVS为4层负载,nginx为7层负载,在小文件的场景下用不上7层负载。

 

2,FTP为何要用ipvs的防火墙打标方式?

答:如果FTP不用fwmark的方式,那么FTP只能访问9814服务端口,在passive mode的情况下可能无法访问数据传输端口。

 

3,LVS和keepalived分别起什么样的角色?

答:keepalived是LVS的一部分。keepalived顾名思义“保活”,LVS为负载均衡。

 

4,两节点下其中一个keepalived只是备用,一直空闲?

答:生产环境一般用2个VIP做双主相互热备,2个VIP绑定2个外网IP并绑定DNS域名对外服务。

文章来自个人专栏
日志服务
11 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
3
2