Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器.

高可用集群(HA High Availability Cluster)

作用:最大限度的保证用户的应用程序持久,不间断的提供服务.(实现故障转移)

高可用性(HA High Availablity)是指通过尽量缩短系统停机时间(因日常的维护操作或突发的系统崩溃等),以提高系统和应用的可用性.

高可用集群最少是2个节点做出的HA集群,有很多通俗不科学的名称,比如 "双机热备","双机互备",这样做的好处是当服务启动的时候,两台服务器一个作主(mast),另外一个作从(ser),测试机每几秒会ping主机当发现主机没有回应,就证明主机拓机了,那么从机马上会启动相应的服务,继续进行服务,这样就可保证服务不间断.

负载均衡集群与高性能运算集群(HPC),的区别?

负载均衡集群:通过提高单位时间内的执行的任务数量来提高效率.

高性能运算集群:通过提高单位时间内的执行时间来提高效率.

VRRP(Virtual Router Redundancy Protocol 虚拟路由冗余协议)简介

虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议,1998年已推出正式的RFC2338协议标准。VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,允许主机使用单路由器,以及及时在实际第一跳路由器使用失败的情形下仍能够维护路由器间的连通性。

VRRP是一种容错协议,它通过把几台路由设备联合组成一台虚拟的路由设备,并通过一定的机制来保证当主机的下一跳设备出现故障时,可以及时将业务切换到其它设备,从而保持通讯的连续性和可靠性。

脑分裂:与解决方法

解释: 在一个网络或线缆故障时导致两个节点同时认为自已是唯一处于活动状态的服务器从而出现争用资源的情况,这种争用资源的场景即是所谓的"脑裂",会导致数据不完整或服务不可访问.

解决方法:

1.设置参考ip,在抢夺资源之前,都去ping参考ip(网关),ping不通时,不会去抢资源,而是释放资源,将控制权交出去.

2.设置冗余线路,设置两条心跳线,两个网卡,第一个测时不通,再拿第二个去测.

3.stonish(爆头),基于能够通过软件指令关闭某节点特殊的硬件设备掐电源.

附加知识点:

RS232串口线: 串行电缆被认为是比以太网连接安全性稍好些的连接方式,因为黑客无法通过串行连接运行诸如telnet、ssh或rsh类的程序,从而可以降低其通过已劫持的服务器再次侵入备份服务器的几率.但串行线缆受限于可用长度,一般是(5米以内)因此主、备服务器的距离必须非常短.

常用的双机热备软件: RoseHA KeepaLived Heartbear RHCS

一年内最大停机限度

99%:87.6h

99.9%:8.8h

99.99%:53m

99.999%:5m

编译安装

1.安装依赖

[root@localhost ~]# yum install -y gcc kernel kernel-devel openssl openssl-devel popt popt-devel

2.编译Keepalived

[root@localhost ~]# wget http://www.keepalived.org/software/keepalived-1.4.3.tar.gz
[root@localhost ~]# tar -xzvf keepalived-1.4.3.tar.gz
[root@localhost ~]# cd keepalived-1.4.3/ #RHEL6中的编译参数
[root@localhost ~]# ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-358.el6.x86_64 #RHEL7中的编译参数
[root@localhost ~]# ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/3.10.0-123.el7.x86_64/net/ [root@localhost ~]# make && make install

LVS高可用配置

[实验环境]

[类型]			[IP地址]				[VIP/IO]

LVS1_Master		IP:192.168.22.191		VIP:192.168.22.195
LVS2_Slaves IP:192.168.22.192 VIP:192.168.22.195 RealServer_1 IP:192.168.22.193
RealServer_2 IP:192.168.22.194 [配置说明] 1.首先我们需要配置一个LVS实现负载均衡
2.其次安装第二个LVS但不需要配置
3.在第一个LVS上配置轮询规则,并且安装开启Keepalived服务
4.在第二个LVS上安装Keepalived服务,启动后会自动同步数据

配置主节点

1.修改主配置文件,其他可删除,只写入以下内容,修改以下标★处

[root@localhost ~]# vim /etc/keepalived/keepalived.conf

 1 ! Configuration File for keepalived
2
3 global_defs {
★ router_id kp_master #指定本机keepalaved名字(主从不能重复)
5 }
6
7 vrrp_instance VI_1 {
★ state MASTER #声明成主服务器(MASTER)/声明成从服务器(SLAVE)
★ interface eth0 #定义相应网卡接口名称
★ virtual_router_id 100 #虚拟路由ID(主从应同步)
★ priority 100 #Keepalaved主从服务器优先级(主服务器必须大于从服务器)
12 advert_int 1 #检查间隔,默认1秒
13 authentication { #定义主从验证
14 auth_type PASS #设置验证方式(PASS或HA)
15 auth_pass 1111 #验证密码
16 }
17 virtual_ipaddress { #指定负载调度器(指定VIP的地址)
★ 192.168.22.195
19 }
20 }
21
★ virtual_server 192.168.22.195 80 { #虚拟主机区域(指定VIP地址)
23 delay_loop 6 #服务器轮询间隔时间
24 lb_algo rr #指定rr轮询算法
★ lb_kind DR #指定DR模式
★ net_mask 255.255.255.0 #指定子网掩码
27 persistence_timeout 50 #会话保持时间
28 protocol TCP #指定数据转发协议
29
★ real_server 192.168.22.193 80 { #RealServer1池,如有多台复制此区域
31 weight 1 #设置服务器权重
★ TCP_CHECK { #对后端真实服务器TCP健康检查
33 connect_timeout 3 #链接超时时间
34 retry 3 #重试次数
35 delay_before_retry 3 #重试时间间隔
36 }
37 }
38
★ real_server 192.168.22.194 80 { #RealServer2池,如有多台复制此区域
40 weight 1 #设置服务器权重
★ TCP_CHECK { #对后端真实服务器TCP健康检查
42 connect_timeout 3 #连接超时时间
43 retry 3 #重试次数
44 delay_before_retry 3 #重试时间间隔
45 }
46 }
47 }

2.启动keepalived

[root@localhost ~]# chkconfig  --add  keepalived
[root@localhost ~]# chkconfig keepalived on
[root@localhost ~]# ./keepalived -f /usr/local/keepalived/etc/keepalived.conf
[root@localhost ~]# systemctl restart keepalived

配置备节点

1.修改主配置文件,其他可删除,只写入以下内容,修改以下标★处

[root@localhost ~]# vim /etc/keepalived/keepalived.conf

 1 ! Configuration File for keepalived
2
3 global_defs {
★ router_id kp_slave #指定本机keepalaved名字(主从不能重复)
5 }
6
7 vrrp_instance VI_1 {
★ state SLAVE #声明成主服务器(MASTER)/声明成从服务器(SLAVE)
★ interface eth0 #定义相应网卡接口名称
★ virtual_router_id 100 #虚拟路由ID(主从应同步)
★ priority 50 #Keepalaved主从服务器优先级(主服务器必须大于从服务器)
12 advert_int 1 #检查间隔,默认1秒
13 authentication { #定义主从验证
14 auth_type PASS #设置验证方式(PASS或HA)
15 auth_pass 1111 #验证密码
16 }
17 virtual_ipaddress { #指定负载调度器(指定VIP的地址)
★ 192.168.22.195
19 }
20 }
21
★ virtual_server 192.168.22.195 80 { #虚拟主机区域(指定VIP地址)
23 delay_loop 6 #服务器轮询间隔时间
24 lb_algo rr #指定rr轮询算法
★ lb_kind DR #指定DR模式
★ net_mask 255.255.255.0 #指定子网掩码
27 persistence_timeout 50 #会话保持时间
28 protocol TCP #指定数据转发协议
29
★ real_server 192.168.22.193 80 { #RealServer1池,如有多台复制此区域
31 weight 1 #设置服务器权重
★ TCP_CHECK { #对后端真实服务器TCP健康检查
33 connect_timeout 3 #链接超时时间
34 retry 3 #重试次数
35 delay_before_retry 3 #重试时间间隔
36 }
37 }
38
★ real_server 192.168.22.194 80 { #RealServer2池,如有多台复制此区域
40 weight 1 #设置服务器权重
★ TCP_CHECK { #对后端真实服务器TCP健康检查
42 connect_timeout 3 #连接超时时间
43 retry 3 #重试次数
44 delay_before_retry 3 #重试时间间隔
45 }
46 }
47 }

2.修改内核参数.防止相同网络地址广播冲突

[root@localhost ~]# vim /etc/sysctl.conf

net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0 [root@localhost ~]# sysctl -p

3.启动keepalived 添加自启动菜单以及设置开机自启

[root@localhost ~]# chkconfig  --add  keepalived
[root@localhost ~]# chkconfig keepalived on
[root@localhost ~]# ./keepalived -f /usr/local/keepalived/etc/keepalived.conf
[root@localhost ~]# systemctl restart keepalived

构建Keepalived高可用集群的更多相关文章

  1. Keepalived高可用集群应用

    Keepalived高可用集群应用 1.keepalived服务说明 1.1.keepalived介绍 Keepalived是一个用C语言编写的路由软件.该项目的主要目标是为Linux系统和基于Lin ...

  2. Haproxy+keepalived高可用集群实战

    1.1  Haproxy+keepalived高可用集群实战 随着互联网火热的发展,开源负载均衡器的大量的应用,企业主流软件负载均衡如LVS.Haproxy.Nginx等,各方面性能不亚于硬件负载均衡 ...

  3. Nginx+Keepalived高可用集群应用实践

    Nginx+Keepalived高可用集群应用实践 1.Keepalived高可用软件 1.1 Keepalived服务的三个重要功能 1.1.1管理LVS负载均衡软件 早期的LVS软件,需要通过命令 ...

  4. Nginx + Keepalived 高可用集群部署

    负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行.在使用 Nginx 做反向代理或者负载均衡 ...

  5. 使用Keepalived构建LVS高可用集群

    LVS的DR模型配置+Keepalive部署 介绍 下图为DR模型的通信过程,图中的IP不要被扑结构中的IP迷惑,图里只是为了说明DR的通信原理,应用到本例中的拓扑上其工作原理不变. 拓扑结构 服务器 ...

  6. Keepalived高可用集群搭建(转载linuxIDC)

    1.Keepalived简介 Keepalived是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障.使用多台节点安装keepalived.其 他的节点用来提供真实的服务,同 ...

  7. Corosync+Pacemaker+crmsh构建Web高可用集群

    一.概述: 1.1 AIS和OpenAIS简介 AIS应用接口规范,是用来定义应用程序接口(API)的开放性规范的集合,这些应用程序作为中间件为应用服务提供一种开放.高移植性的程序接口.是在实现高可用 ...

  8. 基于Keepalived高可用集群的MariaDB读写分离机制实现

    一 MariaDB读写分离机制 在实现读写分离机制之前先理解一下三种主从复制方式:1.异步复制:MariaDB默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库 ...

  9. Linux 笔记 - 第十八章 Linux 集群之(一)Keepalived 高可用集群

    一.前言 Linux 集群从功能上可以分为两大类:高可用集群和负载均衡集群.此处只讲高可用集群,负载均衡放在下一篇博客讲解. 高可用集群(High Availability Cluster,简称 HA ...

  10. Keepalived高可用集群部署

    KeepAlived 目录 KeepAlived KeepAlived安装 KeepAlived部署 准备工作 主备模式 节点配置 验证 正常状态 故障 故障恢复 1+N(一主多备)模式 节点配置 验 ...

随机推荐

  1. Visual Studio 2022 激活,安装教程,内附Visual Studio激活码、密钥

    visual studio 2022(vs 2022)是由微软官方出品的最新版本的开发工具包系列产品.它是一个完整的开发工具集,囊括了整 visual studio 2022是一款由微软全新研发推出的 ...

  2. C# NLog 配置

    首先用NuGet安装NLog依赖DLL NLog NLog.Config NLog.Schema NLog配置文件NLog.config: <?xml version="1.0&quo ...

  3. Spring | 利用Maven搭建Spring的开发环境

    本节主要介绍如何利用Maven搭建 Spring 开发环境,使用 Spring 之前需要安装 JDK .Maven和 IDEA 建议一定要从 Maven 项目开始,而不是从空项目开始,空项目开始会出现 ...

  4. POJ 1742 Coins(多重背包的可行性问题)

    Description People in Silverland use coins.They have coins of value A1,A2,A3...An Silverland dollar. ...

  5. 素数算法补充之"筛法"

    国庆中秋双节,就不写太长的文章了. 补充和复习一下以前没写的素数区间筛法算法吧 部分证明过程来自OI wiki 素数筛法 如果我们想要知道小于等于 \(n\) 有多少个素数呢? 一个自然的想法是我们对 ...

  6. Codeforces Round #679 (Div. 2, based on Technocup 2021 Elimination Round 1) (个人题解)

    1434A. Finding Sasuke // Author : RioTian // Time : 20/10/25 #include <bits/stdc++.h> using na ...

  7. 三、springboot集成达梦

    1.数据库中创建表 1.数据库中创建表 CREATE TABLE TEST_BLOCK_T ( BLOCK_ID VARCHAR2(10 BYTE) PRIMARY KEY, --编码 BLOCK_N ...

  8. idea相关配置及插件安装

    对idea相关的配置及好用的插件进行总结下. 一.idea 破解码及配置:https://www.jb51.net/softs/672190.html 二.idea插件: 1.findBugs-ide ...

  9. 8. exporter

    一.已经实现的收集器 1.1 可收集的内存指标 1.2 可收集的jetty指标 二.自定义收集 2.1 summer 2.2 histogram 三.架构设计 exporter作为Prometheus ...

  10. MongoDB 部署副本集 + 代码中开启事务

    首先,指定副本名称: vim /etc/mongod.conf replication: replSetName: shard1 在replication里面加入副本名称,多个相同副本,应该使用同样的 ...