第十八章 Linux集群架构
18.1 集群介绍
18.2 keepalived介绍
18.3 用keepalived配置高可用集群(上)
准备两台机器
一个为mater 另一个为backup
两台机器都关闭防火墙
两台机器都安装上nginx,为了下一步实验用
两台机器都安装keepalived
•yum install -y keepalived
设定vip为100
master上的配置文件
cat /etc/keepalived/keepalived.conf
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/usr/local/sbin/check_ng.sh"
interval 3
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass aminglinux>com
}
virtual_ipaddress {
192.168.93.100
}
track_script {
chk_nginx
}
}
master上监控脚本
/usr/local/sbin/check_ng.sh
#!/bin/bash
#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "0" ]; then
systemctl start nginx
n2=`ps -C nginx --no-heading|wc -l`
if [ $n2 -eq "0" ]; then
echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
systemctl stop keepalived
fi
fi
脚本赋755权限
systemctl start keepalived 启动服务
18.4 用keepalived配置高可用集群(中)
backup 配置文件
/etc/keepalived/keepalived.conf
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/usr/local/sbin/check_ng.sh"
interval 3
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass aminglinux>com
}
virtual_ipaddress {
192.168.93.100
}
track_script {
chk_nginx
}
}
监控脚本
/usr/local/sbin/check_ng.sh
#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "0" ]; then
/etc/init.d/nginx start
n2=`ps -C nginx --no-heading|wc -l`
if [ $n2 -eq "0" ]; then
echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
systemctl stop keepalived
fi
fi
脚本赋755权限
systemctl start keepalived 启动服务
18.5 用keepalived配置高可用集群(下)
18.6 负载均衡集群介绍
18.7 LVS介绍
18.8 LVS的调度算法
18.9 LVS NAT模式搭建(上)
centos1安装 ipvsdam
yum install -y ipvsdam
centos1 网卡配置
dir 编写配置脚本
/usr/local/sbin/lvs_nat.sh
#! /bin/bash
# director 服务器上开启路由转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
# 关闭icmp的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
# 注意区分网卡名字,阿铭的两个网卡分别为ens33和ens37
echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects
# director 设置nat防火墙
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.93.0/24 -j MASQUERADE
# director设置ipvsadm
IPVSADM='/usr/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 192.168.188.110:80 -s rr
$IPVSADM -a -t 192.168.188.110:80 -r 192.168.93.128:80 -m -w 1
$IPVSADM -a -t 192.168.188.110:80 -r 192.168.93.130:80 -m -w 1
18.10 LVS NAT模式搭建(下)
centos2的网关设为dir
centos3的网关设为dir
课堂串讲
18.1 集群介绍
18.2 keepalived介绍
18.3/18.4/18.5 用keepalived配置高可用集群
18.1 集群介绍
- 集群根据功能划分为两大类:
高可用
和负载均衡
-
高可用集群
通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务
实现高可用的开源软件有:heartbeat
、keepalived
-
负载均衡集群
,需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2。实现负载均衡的开源软件有LVS
、keepalived
、haproxy
、nginx
,商业的有F5
、Netscaler
-
18.2 keepalived介绍
在这里我们使用keepalived
来实现高可用集群,因为heartbeat
在centos6上有一些问题,不太稳定。建议以后使用高可用使用keepalived实现。keepalived
通过VRRP
(Virtual Router Redundancy Protocl)来实现高可用。其中文叫虚拟路由冗余协议。在这个协议里会将多台功能相同的路由器(机器)组成一个小组,这个小组里会有1个master角色和N(N>=1)个backup角色。master会通过组播的形式向各个backup发送VRRP协议的数据包,当backup收不到master发来的VRRP数据包时,就会认为master宕机了。此时就需要根据各个backup的优先级来决定谁成为新的mater。
Keepalived主要有三个模块,分别是core
、check
和vrrp
。其中core模块
为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析,check模块
负责健康检查,vrrp模块
是来实现VRRP协议的。
18.3/18.4/18.5 用keepalived配置高可用集群
先准备两台机器做高可用集群 一般使用高可用都是针对机器上的服务的 这里以Nginx服务为例子,就是针对Nginx来实现高可用 企业上一般会让Nginx
作为负载均衡
来使用,当他出现单点故障时,就会导致后端的web机器访问不了, Nginx使用高可用是很有必要的。
192.168.80.102为master 192.168.80.104为backup
步骤
1.两台机器上分别安装keepalived
1 |
[[email protected] ~]# yum install -y keepalived |
2.两台机器上分别安装好针对的服务,这里是Nginx
master上之前编译安装过Nginx
backup为了区别用master 这里使用yum安装
1 2 |
[[email protected] ~]# yum install -y epel-release [[email protected] ~]# yum install -y nginx |
3.master上编辑keepalived配置文件
我们可以先把自动的配置文件清空 才自定义编辑
1 2 |
[[email protected] ~]# > /etc/keepalived/keepalived.conf ##清空内容 [[email protected] ~]# vim /etc/keepalived/keepalived.conf |
输入下面内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
global_defs { notification_email { [email protected] } notification_email_from [email protected] smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script chk_nginx { script "/usr/local/sbin/check_ng.sh" interval 3 } vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 38003800 } virtual_ipaddress { 192.168.80.66 } track_script { chk_nginx } } |
内容在 https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/master_keepalived.conf
keepalived配置文件路径在/etc/keepalived/keepalived.conf
参数 | 含义 |
---|---|
global_defs | 全局定义 |
notification_email | 出现问题时给邮箱发邮件 |
notification_email_from | 又哪个邮箱发邮件 |
vrrp_script chk_nginx | 检查Nginx服务是否正常 指定检查脚本的路径 |
interval 3 | 检查间断为3秒 |
state MASTER | 定义master |
interface | 指定网卡发送VRRP包 |
virtual_router_id | 定义路由群的id |
priority | 定义权重 |
authentication | 定义认证 |
auth_type | 认证类型 |
auth_pass | 认证密码 |
virtual_ipaddress | 定义虚拟ip(vip)此IP用来访问此虚拟路由群的,就是把master和backup看作一台机器单个IP |
chk_nginx | 加载检查脚本 |
4.master上编写检查Nginx脚本
1 |
[[email protected] ~]# vim /usr/local/sbin/check_ng.sh |
输入下面内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/bash #时间变量,用于记录日志 d=`date --date today +%Y%m%d_%H:%M:%S` #计算nginx进程数量 n=`ps -C nginx --no-heading|wc -l` #如果进程为0,则启动nginx,并且再次检测nginx进程数量, #如果还为0,说明nginx无法启动,此时需要关闭keepalived if [ $n -eq "0" ]; then /etc/init.d/nginx start n2=`ps -C nginx --no-heading|wc -l` if [ $n2 -eq "0" ]; then echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log systemctl stop keepalived fi fi |
内容在 https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/master_check_ng.sh
脚本上systemctl stop keepalived
关闭keepalived服务是为了启动backup上的keepaliveed时候 不会出现“脑裂
”现象。即master和backup的keepaliveed各自抢占资源,如VIP,外部访问时候出现两台机器同个ip。
5.更改检查脚本的权限
1 |
[[email protected] ~]# chmod 755 /usr/local/sbin/check_ng.sh |
6.master上启动keepalived服务
1 |
[[email protected] ~]# systemctl start keepalived |
测试
master上停止Nginx服务看是否自动开启
1 2 3 4 5 |
[[email protected] ~]# service nginx start Starting nginx (via systemctl): [ 确定 ] [[email protected] ~]# ps aux |grep nginx root 2720 0.0 0.0 112720 964 pts/0 R+ 23:19 0:00 grep --color=auto nginx |
发现没有启动Nginx,这里是防火墙问题
1 2 |
[[email protected] ~]# setenforce 0 [[email protected] ~]# systemctl stop firewalld |
现在看到Nginx是自动开启的
1 2 3 4 5 |
[[email protected] ~]# ps aux |grep nginx root 3387 0.0 0.1 45888 1284 ? Ss 23:22 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf nobody 3391 0.0 0.4 48380 4168 ? S 23:22 0:00 nginx: worker process nobody 3392 0.0 0.3 48380 3916 ? S 23:22 0:00 nginx: worker process root 3394 0.0 0.0 112720 968 pts/0 R+ 23:22 0:00 grep --color=auto nginx |
ip add
查看VIP
keepalived日志在/var/log/messages
中看到
7.为了让实验成功 两台机器都关闭防火墙
1 2 |
[[email protected] ~]# setenforce 0 [[email protected] ~]# systemctl stop firewalld |
8.backup上编辑keepalived配置文件
1 2 |
[[email protected] ~]# > /etc/keepalived/keepalived.conf [[email protected] ~]# vim /etc/keepalived/keepalived.conf |
输入下面内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
global_defs { notification_email { [email protected] } notification_email_from [email protected] smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script chk_nginx { script "/usr/local/sbin/check_ng.sh" interval 3 } vrrp_instance VI_1 { state BACKUP interface ens33 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass aminglinux>com } virtual_ipaddress { 192.168.80.66 } track_script { chk_nginx } } |
内容在 https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/backup_keepalived.conf
这里和master上的不一样的地方是state BACKUP
和priority 90
backup的权重比主少
9.backup上编写检查Nginx脚本
1 |
[[email protected] ~]# vim /usr/local/sbin/check_ng.sh |
输入下面内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/bash #时间变量,用于记录日志 d=`date --date today +%Y%m%d_%H:%M:%S` #计算nginx进程数量 n=`ps -C nginx --no-heading|wc -l` #如果进程为0,则启动nginx,并且再次检测nginx进程数量, #如果还为0,说明nginx无法启动,此时需要关闭keepalived if [ $n -eq "0" ]; then systemctl start nginx n2=`ps -C nginx --no-heading|wc -l` if [ $n2 -eq "0" ]; then echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log systemctl stop keepalived fi fi |
内容在 https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/backup_check_ng.sh
和主上的区别在于 systemctl start nginx
是由于从机器上使用yum安装的
10.修改backup上的脚本权限并启动keepalived服务
1 2 |
[[email protected] ~]# chmod 755 /usr/local/sbin/check_ng.sh [[email protected] ~]# systemctl start keepalived |
测试
master上之前设置了默认虚拟主机 更改主页内容
backup主页的地址在/usr/share/nginx/html/index.html
并更改主页内容
同时查看vip是加载maser的主页的
模拟master机器宕机,直接把maser上的keepalied服务给停掉 早看看vip是否给了backup
1 |
[[email protected] ~]# systemctl stop keepalived |
留意backup
1 2 3 4 5 6 7 8 9 |
[[email protected] ~]# ip add 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:71:e1:ca brd ff:ff:ff:ff:ff:ff inet 192.168.80.104/24 brd 192.168.80.255 scope global ens33 valid_lft forever preferred_lft forever inet 192.168.80.66/32 scope global ens33 valid_lft forever preferred_lft forever inet6 fe80::7e09:37c4:bc0a:504a/64 scope link valid_lft forever preferred_lft forever |
看到vip已经来到了backup上,再用浏览器看看
再把maser上的keepalived启动 发现vip又回到了主上
1 2 3 4 5 6 7 8 9 10 |
[[email protected] ~]# systemctl start keepalived 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:06:17:0b brd ff:ff:ff:ff:ff:ff inet 192.168.80.102/24 brd 192.168.80.255 scope global ens33 valid_lft forever preferred_lft forever inet 192.168.80.66/32 scope global ens33 valid_lft forever preferred_lft forever inet6 fe80::c25c:7f22:5b19:4d48/64 scope link valid_lft forever preferred_lft forever |
18.6 负载均衡集群介绍
18.7 LVS介绍
18.8 LVS调度算法
18.9/18.10 LVS NAT模式搭建
18.6 负载均衡集群介绍
负载均衡主流开源软件LVS
、keepalived
、haproxy
、nginx
等。
其中LVS属于4层
(网络OSI 7层模型),nginx属于7层
,haproxy既可以认为是4层,也可以当做7层使用。
其实keepalived的负载均衡功能其实就是lvs,lvs这种4层的负载均衡是可以分发除80外的其他端口通信的,比如MySQL的,而nginx仅仅支持http,https,mail,haproxy也支持MySQL这种。但是nginx可以实现根据目录来区分后端的服务器等更为灵活的功能。
相比较来说,LVS这种4层的更稳定,能承受更多的请求,而nginx这种7层的更加灵活,能实现更多的个性化需求。
18.7 LVS介绍
LVS
是由国人章文嵩开发的。其流行度不亚于apache的httpd,是基于TCP/IP做的路由和转发,稳定性和效率很高。
LVS最新版本基于Linux内核2.6,有好多年不更新了。
LVS有三种常见的模式:NAT
、DR
、IP Tunnel
LVS架构中有一个核心角色叫做分发器
(Load balance),它用来分发用户的请求,还有诸多处理用户请求的服务器(Real Server,简称rs
)
NAT模式
这种模式借助iptables的nat表来实现
用户的请求到分发器后,通过预设的iptables规则,把请求的数据包转发到后端的rs上去
rs需要设定网关为分发器的内网ip
用户请求的数据包和返回给用户的数据包全部经过分发器,所以分发器成为瓶颈,一般请求量在10台以下。
在nat模式中,只需要分发器有公网ip即可,所以比较节省公网ip资源。
IP Tunnel模式
这种模式,需要有一个公共的IP配置在分发器和所有rs上,我们把它叫做vip
客户端请求的目标IP为vip,分发器接收到请求数据包后,会对数据包做一个加工,会把目标IP改为rs的IP,这样数据包就到了rs上
rs接收数据包后,会还原原始数据包,这样目标IP又变回为vip,因为所有rs上配置了这个vip,此时它会认为用户请求的就是它自己。
这个模式下的rs都会独立的公网IP来回复用户的请求,可以减少分发器的压力。
DR模式
这种模式,也需要有一个公共的IP配置在分发器和所有rs上,也就是vip
和IP Tunnel不同的是,它会把数据包的MAC地址修改为rs的MAC地址
rs接收数据包后,会还原原始数据包,这样目标IP为vip,因为所有rs上配置了这个vip,所以它会认为是它自己。
此模式下rs配置公网IP来返回用户请求。
总结
综上所述,nat模式
就是做iptables路由转发
IP Tunnel模式
实际上是更改目标IP
DR模式
是更改目标MAC地址
18.8 LVS调度算法
名称 | 缩写 | 含义 |
---|---|---|
轮询 Round-Robin | rr | 平均分发用户请求 |
加权轮询 Weight Round-Robin | wrr | 带权重的轮询 |
最小连接 Least-Connection | lc | 分发用户给连接数少的机器上 |
加权最小连接 Weight Least-Connection | wlc | 带权重的最小连接 |
基于局部性的最小连接 Locality-Based Least Connections | lblc | |
带复制的基于局部性最小连接 Locality-Based Least Connections with Replication | lblcr | |
目标地址散列调度 Destination Hashing | dh | |
源地址散列调度 Source Hashing | sh |
18.9/18.10 LVS NAT模式搭建
准备工作
准备三台机器 一台作分发器,两台作rs
分发器:kun03 内网:192.168.80.102 外网:192.168.218.128
rs1:kun05 内网:192.168.80.104 网关:192.168.80.102
rs2:kun06 内网:192.168.80.105 网关:192.168.80.102
kun03上添加外网网卡 选择仅主机模式
编辑外网网卡配置
1 2 3 4 |
[[email protected] ~]# cd /etc/sysconfig/network-scripts/ [[email protected] network-scripts]# cp ifcfg-ens33 ifcfg-ens37 [[email protected] network-scripts]# vim !$ vim ifcfg-ens37 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens37 #UUID=75aabb45-9fbe-45d6-800e-fa2d04f72e13 DEVICE=ens37 ONBOOT=yes IPADDR=192.168.218.128 #GATEWAY=192.168.80.2 NETMASK=255.255.255.0 DNS1=119.29.29.29 |
1 2 3 |
[[email protected] network-scripts]# ifdown ens37 && ifup ens37 成功断开设备 'ens37'。 连接已成功**(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3) |
可以ping通
kun05和kun06上设置网关为192.168.80.102
1 2 3 |
[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 GATEWAY=192.168.80.102 |
1 2 3 4 5 6 7 |
[[email protected] ~]# systemctl restart network [[email protected] ~]# route -n ##查看网关 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.80.102 0.0.0.0 UG 100 0 0 ens33 192.168.80.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33 |
三台机器上关闭firewalld
1 2 3 4 5 6 |
[[email protected] ~]# systemctl stop firewalld [[email protected] ~]# systemctl disable firewalld [[email protected] ~]# setenforce 0 [[email protected] ~]# vim /etc/selinux/config SELINUX=disbaled |
各自下载iptables 并清空规则和保存
1 2 3 4 |
[[email protected] network-scripts]# yum install -y iptables-services [[email protected] network-scripts]# systemctl start iptables ##启动iptables [[email protected] network-scripts]# iptables -F ##清空规则 [[email protected] network-scripts]# service iptables save ##保存空规则 |
步骤
1.在分发器上安装ipvsadm工具
在kun03上
1 |
[[email protected] ~]# yum install -y ipvsadm |
ipvsadm
工具实现lvs功能
2.在分发器上编辑脚本
1 |
[[email protected] ~]# vim /usr/local/sbin/lvs_nat.sh |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#! /bin/bash # director 服务器上开启路由转发功能 echo 1 > /proc/sys/net/ipv4/ip_forward # 关闭icmp的重定向 echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects # 注意区分网卡名字,阿铭的两个网卡分别为ens33和ens37 echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects # director 设置nat防火墙 iptables -t nat -F iptables -t nat -X iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -j MASQUERADE # director设置ipvsadm IPVSADM='/usr/sbin/ipvsadm' $IPVSADM -C $IPVSADM -A -t 192.168.218.128:80 -s rr -p 3 $IPVSADM -a -t 192.168.218.128:80 -r 192.168.80.104:80 -m -w 1 $IPVSADM -a -t 192.168.218.128:80 -r 192.168.80.105:80 -m -w 1 |
iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -j MASQUERADE
让同网段的网实现上网ipvsadm -C
清除lvs规则-A
增加规则-t
指定分发器外网IP-s
指定算法-p
指定rs上的超时时间-m
指NAT模式-w
指定权重
3.执行脚本
1 |
[[email protected] ~]# sh /usr/local/sbin/lvs_nat.sh |
测试
两台rs上安装Nginx
之前在kun05机器上yum了安装过Nginx 现在在kun06上安装
1 2 |
[[email protected] ~]# yum install -y epel-release [[email protected] ~]# yum install -y nginx |
设置两台rs的主页,做一个区分
1 2 3 |
[[email protected] ~]# vim /usr/share/nginx/html/index.html kun05 |
1 2 3 4 |
[[email protected] ~]# > /usr/share/nginx/html/index.html [[email protected] ~]# vim !$ kun06 |
1 |
[[email protected] ~]# service nginx start ##启动Nginx |
在分发器上使用curl命令访问公网ip
1 2 3 4 5 6 7 8 |
[[email protected] ~]# curl 192.168.218.128 kun06 [[email protected] ~]# curl 192.168.218.128 kun05 [[email protected] ~]# curl 192.168.218.128 kun06 [[email protected] ~]# curl 192.168.218.128 kun05 |
使用浏览器访问
ipvsadm -ln 可以查看ipvsadm分发数据的情况
[[email protected] ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.218.128:80 rr
-> 192.168.80.104:80 Masq 1 0 6
-> 192.168.80.105:80 Masq 1 1 4
扩展:
VRRP协议
https://blog.****.net/u013920085/article/details/21184143
keepalived邮件告警
http://blog.51cto.com/6764097/1954158
https://blog.****.net/HzSunshine/article/details/62052398
LVS 三种模式图解
http://blog.51cto.com/jiekeyang/1839583
LVS算法 DH
http://blog.51cto.com/lovvvve/1141713
arp_ignore和arp_announce
https://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html