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. Mysql--编译安装5.7版本

    1 安装环境 1)清除以往mysql残留痕迹(新机不用) yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y userdel ...

  2. 【cJSON】轻量级的C语言JSON解析器

    C++ 进阶版:[CJsonObject]C++ JSON 解析器使用教程 1. JSON与cJSON JSON -- 轻量级的数据格式 JSON 全称 JavaScript Object Notat ...

  3. Educational Codeforces Round 94 (A - D题题解)

    https://codeforces.com/contest/1400/problem/A Example input 4 1 1 3 00000 4 1110000 2 101 output 1 0 ...

  4. Java内部类详解--成员内部类,局部内部类,匿名内部类,静态内部类

    一.内部类基础 在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类.广泛意义上的内部类一般来说包括这四种:成员内部类.局部内部类.匿名内部类和静态内部类.下面就先来了解一 ...

  5. 详解异步任务 | 看 Serverless Task 如何解决任务调度&可观测性中的问题

    在上篇文章<解密函数计算异步任务能力之「任务的状态及生命周期管理」>中,我们介绍了任务系统的状态管理,并介绍了用户应如何根据需求,对任务状态信息进行实时的查询等操作.在本篇中我们将会进一步 ...

  6. 一文读懂 Serverless 的起源、发展和落地实践

    讲师 | 洛浩(阿里云云原生高级架构师) ​ Serverless 的发展轨迹 **2012 年,Serverless 这个单词第一次出现,由 Iron 公司提出,字面意思就是不需要服务器.但是真正被 ...

  7. Python的excel文件读写(未完)

    写在前面: 因为每次用到都要查感觉太烦了,所以干脆写了一篇博客总结( •̥́ ˍ •̀ू ) 一.xlwt写入excel文件(.xls) import xlwt data1=[[1,2,3,4],[5 ...

  8. Asp .Net Core 系列:集成 Ocelot+Nacos+Swagger+Cors实现网关、服务注册、服务发现

    目录 简介 什么是 Ocelot ? 什么是 Nacos ? 什么是 Swagger ? 什么是 Cors ? Asp .Net Core 集成 Ocelot 网关集成 Nacos 下游配置 Naco ...

  9. python进阶(5)--函数

    文档目录: 一.函数体二.实参与形参三.返回值四.举例:函数+while循环五.举例:列表/元组/字典传递六.模块与函数的导入 ------------------------------------ ...

  10. 在Windows 版的Chrome中切换标签页

    按住Ctrl+tab键之后使用page up/ page down键左右移动!