构建Keepalived高可用集群

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




高可用集群(HA High Availability Cluster)算法

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

高可用性(HA High Availablity)是指经过尽可能缩短系统停机时间(因平常的维护操做或突发的系统崩溃等),以提升系统和应用的可用性.后端

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

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

负载均衡集群:经过提升单位时间内的执行的任务数量来提升效率.
高性能运算集群:经过提升单位时间内的执行时间来提升效率.服务器

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

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

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

脑分裂:与解决方法

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

解决方法:
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
相关文章
相关标签/搜索