主从调度器上都要
modprobe ip_vs 加载lvs内核
rpm -ivh /mnt/Packages/ipvsadm-1.27-7.el7.x86_64.rpm 安装ipvsadm工具
yum -y install popt-devel kernel-devel openssl-devel gcc cc 安装keepalived必备插件
tar -xf keepalived-1.4.2.tar.gz 解压keepalived软件包
cd keepalived-1.4.2/
./configure --prefix=/ //配置
make && make install //编译及安装
cp keepalived/etc/init.d/keepalived /etc/init.d/ //配置管理启动项
systemctl enable keepalived //设置为开机自启
vi /etc/keepalived/keepalived.conf //编译配置文件
! Configuration File for keepalived
global_defs {
notification_email {
[email protected] //指定当keepalived出现问题时,发送邮件给哪些用户。
}
notification_email_from [email protected] //发送邮件时,邮件的来源地址。
smtp_server 192.168.80.181 smtp服务器的地址或域名。默认端口为25
smtp_connect_timeout 30
router_id LVS_01 #负载均衡标识,在局域网内应该是唯一的。
vrrp_skip_check_adv_addr //默认是不跳过检查。检查收到的VRRP通告中的所有地址可能会比较耗时,设置此命令的意思是,如果通告与接收的上一个通告来自相同的master路由器,则不执行检查(跳过检查)。
#vrrp_strict //注意,这条一定要注释掉,不然VIP是ping不通的#严格执行VRRP协议规范,此模式不支持节点单播
vrrp_garp_interval 0 在一个接口发送的两个免费ARP之间的延迟。可以精确到毫秒级。默认是0.
vrrp_gna_interval 0 //以上四行可以全都注释掉
}
vrrp_instance VI_1 {
state MASTER //表示身份是主调度器还是备用调度器,备用为BACKUP
interface ens33 //绑定虚拟网址的网卡
virtual_router_id 51 //指定VRRP实例ID,范围是0-255.
priority 110 //优先级
advert_int 1 //指定发送VRRP通告的间隔。单位是秒
authentication {
auth_type PASS 指定认证方式。PASS简单密码认证(推荐),AH:IPSEC认证(不推荐)。
auth_pass 1111
}
virtual_ipaddress {
192.168.80.188
}
}
virtual_server 192.168.80.188 80 {
delay_loop 6 健康检查的时间间隔。
lb_algo rr LVS调度算法。
lb_kind DR LVS模式
persistence_timeout 60 保持连接超时时间,单位是秒。默认是6分钟。
protocol TCP
real_server 192.168.80.181 80 {
weight 1 给服务器指定权重。默认是1.
TCP_CHECK {
connect_port 80 发起连接的源端口。
connect_timeout 3 连接超时时间。默认是5s。
nb_get_retry 3 重试次数。默认是1次。
delay_before_retry 3 默认是1秒。在重试之前延迟多少秒。
}
}
real_server 192.168.80.182 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
从调度器配置,只需要修改
router_id LVS_01 为02
state MASTER 为BACKUP
priority 110 为100即可
service keepalived start
ip addr show dev ens33 //验证绑定了虚拟地址 (从服务器不工作是没有虚拟地址的)
ipvsadm -Ln //查看lvs配置
注意,web服务器节点上必须要执行脚本
vi web.sh
#!/bin/bash
VIP=192.168.5.88
case "$1" in
start)
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
/sbin/route add -host $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 $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 Stopd"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
sh web.sh start
keepalived+LVS负载均衡入门
主调度器日志
keepalived+LVS负载均衡入门
从调度器日志
访问分配到BB,此时将BB服务器断开
keepalived+LVS负载均衡入门
切换到AA上了
keepalived+LVS负载均衡入门
将keepalived主调度器关闭看看从调度器是否切换为主调度器
tail -f /var/log/messages //开启从调度器日志监控
keepalived+LVS负载均衡入门
从服务器切换为主服务器了
当原主服务器再次启动,现在主服务再次切回从服务器