高可用服务介绍
解决问题:解决架构单点故障
解决方式:
负载均衡服务器解决单点故障 keepalived
数据库服务解决单点故障: MHA
存储服务解决单点故障 : 利用分布式存储(复制卷)
keepalived软件介绍:
1)解决负载均衡单点问题,可以有主服务和备份服务器,主服务器出现问题,由备份服务器进行替代
2)可以有效管理配置LVS负载均衡服务
3)可以结合LVS对后端节点进行健康检查
keepalive高可用服务工作原理
lb01 : 部署高可用服务
第一个历程: 安装keepalived软件 (优化epel base 源)
yum install -y keepalived
第二个里程: 编写配置文件信息:
vi /etc/keepalived/keepalived.conf
keepalived配置文件由三个部分组成:
1) 配置文件核心区域配置
2) 配置文件vrrp协议信息配置
3) 配置文件LVS管理信息配置 临时删除
global_defs { --- 实现监控报警功能 主(问题)备切换
notification_email { --- 监控报警邮件发送通知人信息
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from 177780xxx@163.com --- 定义报警服务器信息
smtp_server smtp.163.com
smtp_connect_timeout 30
router_id lb01 --- 表示主机身份信息 lb01
}
vrrp_instance VI_1 {
state MASTER --- 定义主机身份信息(MASTER BACKUP); 描述信息
interface eth0 --- 在接口上生成VIP(虚拟地址)地址信息 出现在外网网卡
virtual_router_id 51 --- 标记集群编号信息
priority 150 --- 优先级决定主或者备身份 优先级越高越有可能成为主
advert_int 1 --- 设置组播包发送间隔 3s
authentication { --- 集群成员口令验证信息, 保证集群通讯安全性
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3 --- 定义虚拟IP地址信息
}
}
lb02 : 部署高可用服务
第一个里程: 安装keepalived软件 (优化epel base 源)
yum install -y keepalived
第二个历程: 编写配置文件信息:
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from 177780xxx@163.com
smtp_server smtp.163.com
smtp_connect_timeout 30
router_id lb02 --- 不一样
}
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 {
10.0.0.3
}
}
第三个历程: 启动程序服务
systemctl start keepalived
第四个历程:
[root@lb01 conf.d]# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:36:6b:fb brd ff:ff:ff:ff:ff:ff
inet 10.0.0.31/24 brd 10.0.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet 10.0.0.3/32 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::fb9:288a:5511:3d31/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: eth1: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:36:6b:05 brd ff:ff:ff:ff:ff:ff
inet 172.16.1.31/16 brd 172.16.255.255 scope global noprefixroute eth1
valid_lft forever preferred_lft forever
inet6 fe80::e3f5:3ab4:9d4b:c313/64 scope link noprefixroute
valid_lft forever preferred_lft forever
主服务器lb01上有10.0.0.3,说明成功
补充:主服务的配置文件:
[root@lb01 conf.d]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server smtp.162.com
smtp_connect_timeout 30
router_id lb01
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3
}
}
备份服务的配置文件:
[root@lb02 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server smtp.162.com
smtp_connect_timeout 30
router_id lb02
}
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 {
10.0.0.3
}
}
当主服务器down掉后,备份服务器上自动为主服务。
出现IP地址10.0.0.3
lb02
[root@lb02 ~]# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:42:4b:89 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.61/24 brd 10.0.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet 10.0.0.3/32 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::7e0e:3213:5eff:ca05/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: eth1: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:42:4b:93 brd ff:ff:ff:ff:ff:ff
inet 172.16.1.61/16 brd 172.16.255.255 scope global noprefixroute eth1
valid_lft forever preferred_lft forever
inet6 fe80::fe6b:e540:43ef:d1b5/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: docker0: mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:f3:bc:fe:8f brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 scope global docker0
valid_lft forever preferred_lft forever
[root@lb02 ~]#