构建Keepalived高可用集群
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高可用集群的更多相关文章
- Keepalived高可用集群应用
Keepalived高可用集群应用 1.keepalived服务说明 1.1.keepalived介绍 Keepalived是一个用C语言编写的路由软件.该项目的主要目标是为Linux系统和基于Lin ...
- Haproxy+keepalived高可用集群实战
1.1 Haproxy+keepalived高可用集群实战 随着互联网火热的发展,开源负载均衡器的大量的应用,企业主流软件负载均衡如LVS.Haproxy.Nginx等,各方面性能不亚于硬件负载均衡 ...
- Nginx+Keepalived高可用集群应用实践
Nginx+Keepalived高可用集群应用实践 1.Keepalived高可用软件 1.1 Keepalived服务的三个重要功能 1.1.1管理LVS负载均衡软件 早期的LVS软件,需要通过命令 ...
- Nginx + Keepalived 高可用集群部署
负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行.在使用 Nginx 做反向代理或者负载均衡 ...
- 使用Keepalived构建LVS高可用集群
LVS的DR模型配置+Keepalive部署 介绍 下图为DR模型的通信过程,图中的IP不要被扑结构中的IP迷惑,图里只是为了说明DR的通信原理,应用到本例中的拓扑上其工作原理不变. 拓扑结构 服务器 ...
- Keepalived高可用集群搭建(转载linuxIDC)
1.Keepalived简介 Keepalived是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障.使用多台节点安装keepalived.其 他的节点用来提供真实的服务,同 ...
- Corosync+Pacemaker+crmsh构建Web高可用集群
一.概述: 1.1 AIS和OpenAIS简介 AIS应用接口规范,是用来定义应用程序接口(API)的开放性规范的集合,这些应用程序作为中间件为应用服务提供一种开放.高移植性的程序接口.是在实现高可用 ...
- 基于Keepalived高可用集群的MariaDB读写分离机制实现
一 MariaDB读写分离机制 在实现读写分离机制之前先理解一下三种主从复制方式:1.异步复制:MariaDB默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库 ...
- Linux 笔记 - 第十八章 Linux 集群之(一)Keepalived 高可用集群
一.前言 Linux 集群从功能上可以分为两大类:高可用集群和负载均衡集群.此处只讲高可用集群,负载均衡放在下一篇博客讲解. 高可用集群(High Availability Cluster,简称 HA ...
- Keepalived高可用集群部署
KeepAlived 目录 KeepAlived KeepAlived安装 KeepAlived部署 准备工作 主备模式 节点配置 验证 正常状态 故障 故障恢复 1+N(一主多备)模式 节点配置 验 ...
随机推荐
- 100天搞定机器学习|Day59 主成分分析(PCA)原理及使用详解
数学概念 方差:用来衡量随机变量与其数学期望(均值)之间的偏离程度.统计中的方差(样本方差)是各个数据分别与其平均数之差的平方的和的平均数. $$Var(X)=\frac{1}{n}\sum(x_i- ...
- vmware中 centos 突然不能联网,ens33丢失,见了鬼了..........
本人笔记本上vmware中centos允许一直很稳定,今天启动centos准备docker打包,结果发现不能联网了!!! ifconfig一下,发现ens33没了,见鬼了吧! 于是一通vmware虚拟 ...
- #1016:Prime Ring Problem(经典DFS)
原题链接 题意:很容易理解,就是让你输出满足相邻的相加是素数的序列(注意不要重复) 思路就是深搜思想把每种情况遍历一次 代码实现: #include<iostream> #include& ...
- Codeforces Round #529 (Div. 3) 练习赛
Examples input 6 baabbb output bab input 10 ooopppssss output oops 思路: 模拟等差数列即可 #include<bits/std ...
- 【体验有奖】使用 Serverless 1 步搭建照片平台!
实验介绍 当前,Serverless 技术已经被广泛应用,Serverless = FaaS + BssS 的概念已经深入人心.本场景由函数计算和 RDS MySQL Serverless 联合打造, ...
- Linux复制安装 jdk 环境
转载请注明出处: 最近在弄服务器环境,发现可以通过复制已安装 jdk 的服务器配置到新的服务器,并配置服务器环境变量配置文件就可以完成. 操作步骤如下: 1. 查看以安装jdk服务器的环境配置,并复制 ...
- Git-基本命令-init-add-commit-status
- 【中介者模式(Mediator)】使用Java实现中介者模式
引言 中介者,何为中介者,顾名思义就是我们的在处理A和B之间的关系的时候,引入一个中间人,来处理这两者之间的关系,例如生活中我们需要去租房,买房,都会有中介,来处理房东和租客之间的协调关系,这个就是中 ...
- [转帖]TiDB 数据库统计表的大小方法
简介:TiDB统计表的大小,列出了一些方法: 1.第一种的统计方式: 基于统计表 METRICS_SCHEMA.store_size_amplification 要预估 TiDB 中一张表的大小,你可 ...
- [转帖]Jmeter接口测试:参数化
Jmeter接口请求中的参数经常需要通过参数进行赋值 引用形式:${} 变量时:${变量名} 函数时,${_函数名(参数1,参数2,参数3)} 值中"${n}"中,n为变量名:&q ...