【1】环境介绍
【1.1】基本架构描述
Keepalived,只需要在负载均衡机器上配置
而LVS需要在所有的4台机器上配置
OS:CentOS7.5
MySQL:5.7.26
Keepalived:1.4.5
描述
IP
主机名
LVS+Keepalived:主服务器1
192.168.1.201
db
LVS+Keepalived:从服务器2
192.168.1.202
db1
LVS+Keepalived的虚拟地址IP(VIP)
192.168.1.210
db/db1来回切换
Mysql:从服务器1
192.168.1.203
db2
Mysql:从服务器2
192.168.1.204
db3
【2】ipvsadm安装(LVS的两台服务器200,201)
【2.1】ipvsadm工具介绍
由于LVS本质上是一个内核模块,所以我们需要借助一些用户层工具去配置管理,主要有以下两个工具
(1)keepalived
(2)ipvsadm
以上两种工具都是用来配置LVS的,大致区别如下:
(1)ipvsadm是命令行工具,每次重启都需要重新配置(或者写入开机脚本中),但是配置参数十分灵活;
(2)Keepalived是一个服务(Deamon),通过编辑配置文件(/etc/keepalived/keepalived.conf)可以很方便的对LVS的参数做调整,且重启后不会丢失;
(3)keepalived还有多机热备的功能(VRRP协议),可以将多台服务器组成Master-Slave集群,通过虚拟IP的方式对外提供服务,使得LVS不会成为单点故障;
(4)Keepalived还可以配置后端Server检测,当发现服务不可用时,将该Server从转发列表中剔除,具有健康检查机制;
我们这里选择使用Keepalived对LVS进行配置。
从linux2.4版本开始,Linux内核默认支持LVS。要使用LVS的能力,只需要装一个LVS管理工具:ipvsadm
LVS的结构主要分为两部分:
(1)工作在内核空间的IPVS模块,LVS的能力实际上都是由IPVS模块实现。
(2)工作在用户空间的ipvsadm管理工具。其作用是想用户提供一个命令接口,用于将配置的虚拟服务、真是服务等传给IPVS模块。
【2.2】ipvsadm工具安装
备份在两台LVS服务器安装 ipvsadm
(1)加载本地源或Yum源
(2)查看ipvs、安装ipnv
#查看ipvs在Yum源中是否存在,以及是什么版本yum list|grep ipvs
#安装
yum install ipvsadm -y
#查看
lsmod|grep "^ip_vs"
ipvsadm
ipvsadm -v
【2.3】ipvsadm常用统计参数查看
#查看当前配置的虚拟服务和各个RS的权重
ipvsadm-Ln
#查看当前ipvs模块中记录的链接(可用于观察转发情况)
ipvsadm -lnc
#查看ipvs模块的转发情况统计
ipvsadm -Ln --stats
ipvsadm -Ln --rate
#--stats和--rate统计在分析问题时经常用到,其具体含义如下:
--stats 选项是统计自该条转发规则生效依赖的包
1.Conns (connections scheduled)已经转发过的连接数
2.InPkts (incoming packets) 入包个数
3.OutPkts (outgoing pachkets) 出包个数
4.InBytes (incoming bytes) 入流量(字节)
--rate 选项显示的是速率信息
1.CPS (current connection rate) 每秒连接数
2.InPPS (current in packet rate) 每秒的入包个数
3.OutPPs (current out packet rate) 每秒的出包个数
4.InBPS (current in byte rate) 每秒流入流量(字节)
5.OutBPS (current out byte rate) 每秒流出流量(字节)
【3】Keepalived安装(LVS的两台服务器200,201)
【3.1】前置环境配置(允许IP非本地绑定支持、防火墙、路由转发)
#(1)添加非本机IP绑定支持echo "net.ipv4.ip_nonlocal_bind=1" >> /etc/sysctl.conf
sysctl-p
#(2)配置iptables,添加VRRP通讯支持-A INPUT -d 224.0.0.18 -j ACCEPT #允许组播地址访问本机,组播地址用于keepalived互相检测心跳-A INPUT -s 192.168.1.0/24 -d 224.0.0.18 -j ACCEPT #允许组播地址通信-A INPUT -s 192.168.1.0/24 -p vrrp -j ACCEPT #允许VRRP(虚拟路由器冗余协议)通信-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCPET #开发mysql3306端口
#(3)开启路由转发功能
#临时echo "1">/proc/sys/net/ipv4/ip_forward
#永久echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl-p
【3.2】下载安装 Keepalived
#(1)下载
官网:https://www.keepalived.org/download.html
wget https://www.keepalived.org/software/keepalived-1.4.5.tar.gz
#(2)安装前置依赖包mount /dev/cdrom /mnt #加载本地源,有网络直接配置也可(参考:yum源配置、epel源配置)yum install kernel-devel openssl-devel popt-devel -y
#(3)安装
cd/soft/
tar -zxvf keepalived-1.3.3.tar.gz
cd keepalived-1.3.4./configure --prefix=/usr/local/keepalived/
make && make install#(4)设置keepalived开机自启
systemctl enable keepalived
#默认日志在 /var/log/messages
------------下面(5)(6)可以忽略------------------------
#(5)如果不设置自定义目录,默认目录如下
#cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/#cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/#mkdir /etc/keepalived
#cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/#cp /usr/local/sbin/keepalived /usr/sbin/#(5)构建keepalived 配置文件目录与文件mkdir /etc/keepalivedcp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/#(6)基本配置文件复制cp usr/local/keepalived/sbin/keepalived /usr/sbin/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
【3.3】修改默认日志位置
#默认错误日志位置:/var/log/messages
#(1)修改keepalived的文件
vim/usr/local/keepalived/etc/sysconfig/keepalived
#