摄影公司网站,开发公司合理化建议,网址大全免费下载,网站上传图片问题高可用集群
High Availability Cluster#xff0c;简称HA Cluste。以减少服务中断时间为目的的服务器集群技术。它通过保护用户的业务程序对外不间断提供的服务#xff0c;把因软件、硬件、人为造成的故障对业务的影响降低导最低
衡量可用性#xff1a;在线时间/#xff…高可用集群
High Availability Cluster简称HA Cluste。以减少服务中断时间为目的的服务器集群技术。它通过保护用户的业务程序对外不间断提供的服务把因软件、硬件、人为造成的故障对业务的影响降低导最低
衡量可用性在线时间/在线时间故障时间
1年 365天 8760小时
99% 即一年内有 8760 * 1% 87.6小时故障
99.9% 即一年内有 8760 * 0.1% 8.76小时故障
99.99% 即一年内有 8760 * 0.01% 52.6分钟故障
99.999% 即一年内有 8760 * 0.001% 5.26分钟故障
99.9999% 即一年内有 8760 * 0.0001% 31秒故障
自动侦测
主机上的软件通过“心跳线”连接工作机与备份机的网线经由复杂的监听程序逻辑判断来相互侦测对方运行的情况。
常用的方法是集群各节点间通过心跳信息判断节点是否出现故障。
故障转移
当活动的服务或应用意外终止时快速启用冗余或备用的服务器、系统、硬件或者网络接替它们工作。故障转移通常是自动完成的。
在服务器级别自动故障转移通常使用一个心跳线连接两台服务器。只要主服务器与备用服务器间“心跳”没有中断备用服务器就不会启用。
脑裂
在高可用HA系统中当联系两个节点的“心跳线”断开时本来为一整体、动作协调的HA系统就分裂成为2个独立的个体。由于相互失去了联系都以为是对方出了故障。两个节点上的HA软件像“裂脑人”一样争抢“共享资源”、争起“应用服务”就会发生严重后果——或者共享资源被瓜分、两边“服务”都起不来了或者两边“服务”都起来了但同时读写“共享存储”导致数据损坏常见如数据库轮询着的联机日志出错。
产生原因
因心跳线坏了包括断了老化。因网卡及相关驱动坏了ip配置及冲突问题网卡直连。因心跳线间连接的设备故障网卡及交换机。因仲裁的机器出问题采用仲裁的方案。高可用服务器上开启了 iptables防火墙阻挡了心跳消息传输。高可用服务器上心跳网卡地址等信息配置不正确导致发送心跳失败。其他服务配置不当等原因如心跳方式不同心跳广插冲突、软件Bug等。
解决方案
添加冗余“心跳线”
减少脑裂发生几率。
启用磁盘锁
正在服务一方锁住共享磁盘“裂脑”发生时让对方完全“抢不走”共享磁盘资源。但使用锁磁盘也会有一个不小的问题如果占用共享盘的一方不主动“解锁”另一方就永远得不到共享磁盘。现实中假如服务节点突然死机或崩溃就不可能执行解锁命令。后备节点也就接管不了共享资源和应用服务。于是有人在HA中设计了“智能”锁。即正在服务的一方只在发现心跳线全部断开察觉不到对端时才启用磁盘锁平时就不上锁了。
设置仲裁机制
例如设置参考IP如网关IP或某一个服务器当心跳线完全断开时2个节点都各自ping一下参考IP不通则表明断点就出在本端。不仅“心跳”、还兼对外“服务”的本端网络链路断了即使启动或继续应用服务也没有用了那就主动放弃竞争让能够ping通参考IP的一端去起服务。更保险一些ping不通参考IP的一方干脆就自我重启以彻底释放有可能还占用着的那些共享资源。
监控报警
邮箱、短信、值班在问题发生时第一时间人为介入降低损失
简介
keepalived是集群管理中保证集群高可用的一个服务软件用来防止单点故障。
keepalived的故障转移是基于VRRP虚拟路由器冗余协议协议实现的。
keepalived工作在TCP/IP参考模型的第三、四和第五层即网络层、传输层和应用层。
工作原理
将N台提供相同功能的服务器组成一个服务器组这个组里面有一个master和多个backupmaster上面有一个对外提供服务的vip该服务器所在局域网内其他机器的默认路由为该vipmaster会发组播当backup收不到vrrp包时就认为master宕机这时就需要根据VRRP的优先级来选举一个backup当master。
keepalived程序是vrrp协议在linux主机上以守护进程方式的实现能够根据配置文件生成IPVS规则 并对各real server的健康做检测以及Loadbalance主机和backup主机之间failover的实现。
模块
Keepalived采用是模块化设计不同模块实现不同的功能主要有三个模块
core负责主进程的启动维护和全局配置文件的加载check负责健康检查vrrp用来实现vrrp协议
配置文件
/etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs { #全局配置notification_email { #定义邮件发送目标acassenfirewall.locfailoverfirewall.locsysadminfirewall.loc}notification_email_from Alexandre.Cassenfirewall.loc #定义邮件发送者smtp_server 192.168.200.1 #指定smtp服务器地址smtp_connect_timeout 30 #指定smtp连接超时时间router_id LVS_DEVEL #标识keepalived唯一。数字、英文都可以vrrp_skip_check_adv_addr #对所有通告报文都检查会比较消耗性能启用此配置后如果收到的通告报文和上一个报文是同一个路由器则跳过检查默认值为全检查vrrp_strict #严格遵守VRRP协议,启用此项后以下状况将无法启动服务:1.无VIP地址 2.配置了单播邻居 3.在VRRP版本2中有IPv6地址开启动此项并且没有配置vrrp_iptables时会自动开启iptables防火墙规则默认导致VIP无法访问,建议不加此项配置vrrp_garp_interval 0 #在一个接口发送的两个arp之间的延迟可以是毫秒级。单位秒vrrp_gna_interval 0 #消息发送延迟时间可以是毫秒级
}#定义VRRP实例一个配置文件可以有多例不同主机之间互为主备实例名称应该一致
vrrp_instance VI_1 {state MASTER #定义Keepalived角色MASTER为主BACKUP为备interface eth0 #指定检测的网络接口virtual_router_id 51 #虚拟路由标识数字形式。在同一个vrrp实例中master和backup保持一致priority 100 #节点优先级数字越大优先级越高。在同一个vrrp实例中master优先级必须必backup高不然会切换角色advert_int 1 #心跳时间单位为秒。指定MASTER与BACKUP之间同步检查的时间间隔authentication { #认证方式同一个实例中keepalived主备必须一致通过此认证才能加入此群组auth_type PASSauth_pass 1111}virtual_ipaddress { #设置VIP主备相同可以使用dev选项来指定接口192.168.200.16192.168.200.17192.168.200.18}
}
#虚拟服务
virtual_server 192.168.200.100 443 { #虚拟服务器地址VIP和端口空格隔开delay_loop 6 #健康检查间隔lb_algo rr #定义负载均衡调度算法lb_kind NAT #定义lvs工作模式persistence_timeout 50 #持久会话保持时间protocol TCP #监控服务的协议类型#定义rs部分real_server 192.168.201.100 443 {weight 1 #lvs权重SSL_GET { #监控检查的方式常见的有HTTP_GET/SSL_GET/TCP_CHECK/MISC_CHECKurl {path / #指定ssl——get健康检查路径digest ff20ad2481f97b1754ef3e12ecd3a9cc}url {path /mrtg/digest 9b3a0c85a887a256d6939da88aabd8cd}connect_timeout 3 #real server若3s不响应就超时就判断为realserver不健康需要重新连接nb_get_retry 3 ##标识重试3次防误伤delay_before_retry 3 #重试间隔3s} ##总共12s才能判断故障节点可以改小点}
}