一、什么是高可用
“高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。
在信息技术领域,高可靠性(high availability)指的是运行时间能够满足预计时间的一个系统或组件。可靠性可以用“100%可操作性”或者“从未失败”这两种标准来表示。一个被广泛应用但却难以达到的标准是著名的“5个9标准”,就是说工作的可靠性要达到99.999%。
二、如何保障系统的高可用
我们都知道,单点是系统高可用的大敌,单点往往是系统高可用最大的风险和敌人,应该尽量在系统设计的过程中避免单点。方法论上,高可用保证的原则是“集群化”,或者叫“冗余”:只有一个单点,挂了服务会受影响;如果有冗余备份,挂了还有其他backup能够顶上。
保证系统高可用,架构设计的核心准则是:冗余。
有了冗余之后,还不够,每次出现故障需要人工介入恢复势必会增加系统的不可服务实践。所以,又往往是通过“自动故障转移”来实现系统的高可用。
接下来我们看下典型互联网架构中,如何通过冗余+自动故障转移来保证系统的高可用特性。
三、高可用mysql一般架构
四、安装keepalived 并准备环境
1.安装keepalived并启动
命令:yum -y install keepalived
启动命令:service keepalived start / systemctl start keepalived
2.安装mysql并启动
命令:yum -y install mysqld-server / mariadb-server
启动命令:service mysqld start / systemctl start mariadb
五、配置
! 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 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER #主从身份 从上是BACKUP
interface eth0 #绑定网卡 (本机网卡名)
virtual_router_id 51 # vrrp广播路由id (一组高可用架构的id要一致)
priority 100 # 权值
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.189.250 #声明vip
}
}
virtual_server 192.168.189.250 3306 { #配置vip
delay_loop 6
nat_mask 255.255.255.0
protocol TCP
real_server 192.168.189.187 3306 { #真实IP地址
weight 1
notify_down /root/stop.sh #如果检测不到端口 则执行这行命令
TCP_CHECK {
connect_port 3306 #检测端口
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
启动服务就好了
ps:停止keepalived服务脚本
#!/bin/bash
service keepalived stop
#所在路径 /root/stop.sh 并添加权限755