六、Keepalived+LVS

前提:准备5台服务器
– 两台用于Real Server
– 两台用于搭建高可用、负载平衡集群
– 一台作为路由器
• 在Real Server上配置VIP并调整内核参数
• 两台调度器节点均安装Keepalived和LVS
• 通过Keepalived配置DR模式的LVS
6.1 高可用调度器
6.1.1 Keepalived+LVS拓扑

 

 

• 使用Keepalived高可用解决调度器单点失败问题
• 主、备调度器上配置LVS
• 主调度器异常时,Keepalived启用备用调度器调度器
6.2 将web服务器配置
6.2.1 将web服务器的keepalived卸载
[root@web1 ~]# yum -y remove keepalived
[root@web2 ~]# yum -y remove keepalived
6.3.将原来的调度器的lvs规则清除
[root@host4 ~]# ipvsadm -D -t 192.168.4.100:80
6.4.清除原来调度器的eth0:0
[root@host4 ~]# rm -rf /etc/sysconfig/network-scripts/ifcfg-eth0:0
[root@host4 ~]# systemctl restart network
6.5 配置调度器
6.5.1 2.在vh04,vh05两台调度器上安装ipvsadm,keepalived
[root@host4 ~]# yum -y install ipvsadm keepalived
[root@host5 ~]# yum -y install ipvsadm keepalived
host4(192.168.4.14):
[root@host4 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
notification_email {
root@localhost
}
notification_email_from admin@tedu,cn
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id host04
}

vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.4.100
}
}
#给lvs配置规则
virtual_server 192.168.4.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50 #50秒内客户端访问我,让他访问相同的调度器
#web1服务器配置
real_server 192.168.4.12 80 {
TCP_CHECK {
connect_timeout 3 #超时时间3秒
nb_get_retry 3 #失败一共检查三次
delay_before_retry 3
}
}
virtual_server 192.168.4.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
real_server 192.168.4.13 80 {
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
[root@host4 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
UDP 192.168.4.100:80 rr persistent 50
-> 192.168.4.12:80 Route 1 0 0
-> 192.168.4.13:80 Route 1 0 0
host5(192.168.4.15):
[root@host5 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
notification_email {
root@localhost
}
notification_email_from admin@tedu,cn
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id host04
}

vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.4.100
}
}
virtual_server 192.168.4.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
real_server 192.168.4.12 80 {
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
virtual_server 192.168.4.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
real_server 192.168.4.13 80 {
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
[root@host4 ~]# mail 可以查到邮件
[root@host 5 ~]# mail
6.6 keepalived双主配置
在keepalived高可用配置文件里,再添加主从,跟原来的主从配置刚好相反,keepalived高可用 + mysql主从 配置,实现当一台数据库挂掉时,可以自动转换到另一台数据库上工作,需要三台虚拟机,mysql1做主,给用户授权,允许任何主机登录,mysql2做从,
mysql1的主配置文件
server_id=51
log-bin=db51
binlog-format="mixed"
主库授权:mysql> grant replication slave on *.* to yaya@"%" identified by "123456";
mysql> show master status;
配置虚拟vip lo:0 192.168.4.100
mysql2的主配置文件
server_id=52
配置从库:
mysql> change master to
-> master_host="192.168.4.51",
-> master_user="yaya",
-> master_password="123456",
-> master_log_file="db51.000001",
-> master_log_pos=154;
启动slave进程
mysql> start slave;
配置虚拟vip lo:0 192.168.4.100
keepalived高可用
配置虚拟vip eth0:0 192.168.4.100
修改配置文件
real_server mysql1的ip
real_server mysql2的ip
启动服务
访问mysql1
[root@host4 ~]# mysql -h192.168.4.1 -uadmin -p123456
当mysql1当掉时,访问
[root@host4 ~]# mysql -h192.168.4.2 -uadmin -p123456
依然可以访问,因为设的固定ip是一样的,都是通过虚拟ip 4.100访问的

posted @ 2021-07-13 17:45  落樰兂痕  阅读(63)  评论(0编辑  收藏  举报