LVS可实现real server负载均衡。即使后端服务器有一台挂掉服务也可正常提供。在这种状况下,万一负载均衡器挂掉呢? 不仅是负载均衡器,网络中有不少的关键设备同一时刻只能由单台计算机提供。就像CPU,同一时刻只能处理同一个问题。解决方式是CUP分片,这样CUP切换多任务,看起来就像计算机同步处理了很多进程。(多核暂且不论) 如果网络中的关键节点失效,替代节点能够马上接管其职责,这样服务的可用性就会大大提高。在用户看起,这样的服务并没有中断。 这便是高可用集群。高可用集群软件的主要作用就是实现故障检查和业务切换的自动化。 这里阿拉就来介绍基于LVS集群,使用Keepalived实现高可用。
Keepalived是用配置文件实现高可用。安装keepalived后修改主配置文件/etc/keepalived/keepalived.conf然后启动服务即可。因为操作简单,出现错误也只因配置文件设置不合理。另外错误信息能在日志中清晰看到,排错可以参考。 keepalived只要real server OK。ipvsadm的规则无需添加,负载均衡器绑定VIP也用配置文件实现。可以说是非常方便的呢。为了试验效果,要把ipvsadm清空,VIP也解除绑定哦。两个命令而已: systemctl restart network || service network restart ipvsadm -C 下面我们以这么几个实验入手,将配置文件呈现于你。
0.实现keepalived的DR模式 1.脚本实现LVS后端real server宕机时,切换keepalived服务器的VIP
2.实现keepalived的NAT模式 3.实现keepalived的双主模型,要求,实现Nginx和php-fpm两台服务器中的服务互为主从。
0.实现keepalived的DR模式 负载均衡IP:172.17.7.17 VIP:172.17.7.77 real server1:172.17.6.6 real server2:172.17.6.16 MASTER配置如下: 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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
| [iyunv@centos7 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from root@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id KEEPALIVED_LVS
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 79
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass magedu
}
virtual_ipaddress {
172.17.7.77
}
}
virtual_server 172.17.7.77 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.255
persistence_timeout 600
protocol TCP
real_server 172.17.6.6 80 {
weight 2
HTTP_GET {
url {
path /
}
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 172.17.6.16 80 {
weight 1
HTTP_GET {
url {
path /
}
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
|
BACKUP的不同之处只在两处:
快用systemctl reatsrt keepalived试试效果吧。
1.脚本实现LVS后端real server宕机时,切换keepalived服务器的VIP
编译安装数据库mariadb 阿拉的实验历史如下:
|