集群介绍、keepalived介绍、用keepalived配置高可用集群

集群介绍

Linux集群根据功能划分为两大类:高可用和负载均衡。

1、高可用集群通常为2台服务器,一台工作,另一台作为冗余,当提供服务的机器宕机时,冗余将接替继续提供服务。

实现高可用的开源软件有:heartbeat、Keepalived,其中heartbeat很多bug已无人维护(不推荐使用),所以今后使用Keepalived来搭建高可用集群。

2、负载均衡集群,需要有1台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外就是给用户提供服务的服务器了,这些服务器数量至少为2台,所以负载均衡集群至少要3台服务器。

实现负载均衡的开源软件有:LVS、Keepalived、haproxy、nginx;商业软件有:F5、Netscaler。


keepalived介绍

Keepalived通过VRRP(virtual router redundancy protocol)虚拟路由冗余协议来实现高可用。
在这个协议里会将多台功能相同的路由器组成一个小组,这个小组会有1个master角色和N(N≥1)个backup角色。

Keepalived有三个模块:core、check、vrrp。其中core模块为Keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析;check模块负责健康检查,vrrp负责实现vrrp协议。

用keepalived配置高可用集群

准备环境

master:192.168.3.74 安装编译nginx

backup:192.168.3.83 安装编译nginx

VIP:192.168.3.100 # 注: VIP(virtual IP)虚拟IP,由Keepalived设置,用于服务器对外提供服务。

准备工作:

master

[[email protected] ~]# yum install -y keepalived

[[email protected] ~]# /usr/local/nginx/sbin/nginx -v

nginx version: nginx/1.12.1

backup

[[email protected] ~]# yum install -y keepalived

[[email protected] ~]# /usr/local/nginx/sbin/nginx -v

nginx version: nginx/1.12.2

配置主服务器上:

1、[[email protected] ~]# vi  /etc/keepalived/keepalived.conf

global_defs {                                      #全局定义

notification_email {

[email protected]

}                                               #定义故障提醒邮件接收地址

notification_email_from [email protected]

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_script chk_nginx {                            #定义nginx监控脚本

script "/usr/local/sbin/check_ng.sh"           #指定服务健康检测(check)脚本

interval 3                                     #检测时间间隔

}

vrrp_instance VI_1 {

state MASTER                                   #定义该服务的角色

interface eno16777736                                 #定义在本机中监听VIP的网卡

virtual_router_id 51                           #虚拟路由id(同组中的服务器保持该id一致)

priority 100                                   #指定本机权重(决定优先级)

advert_int 1

authentication {                               #定义认证相关信息

auth_type PASS                             #认证类型为密码形式

auth_pass 123456                           #定义认证密码

}

virtual_ipaddress {                            #定义VIP

192.168.3.100

}

track_script {                                 #加载监控服务(脚本)

chk_nginx                                  #注意此处服务名称要与上面监控脚本名称一致

}

}

2、[[email protected] ~]# cat  /usr/local/sbin/check_ng.sh

#!/bin/bash

#时间变量,用于记录日志

d=`date --date today +%Y%m%d_%H:%M:%S`

#计算nginx进程数量

n=`ps -C nginx --no-heading|wc -l`

#如果进程为0,则启动nginx,并且再次检测nginx进程数量,

#如果还为0,说明nginx无法启动,此时需要关闭keepalived

if [ $n -eq "0" ]; then

/etc/init.d/nginx start

n2=`ps -C nginx --no-heading|wc -l`

if [ $n2 -eq "0"  ]; then

echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log

systemctl stop keepalive      #在此停止Keepalived服务是为了避免发生脑裂

fi

fi

3、[[email protected] ~]# chmod 755  /usr/local/sbin/check_ng.sh

4、启动

[[email protected] ~]# systemctl start keepalived

[[email protected] ~]# ps -aux | grep keep

root      21327  0.0  0.0 120712  1400 ?        Ss   10:33   0:00 /usr/sbin/keepalived -D

root      21328  0.0  0.1 120712  2748 ?        S    10:33   0:00 /usr/sbin/keepalived -D

root      21329  0.4  0.1 120712  2440 ?        S    10:33   0:00 /usr/sbin/keepalived -D

root      21360  0.0  0.0 112664   968 pts/0    R+   10:33   0:00 grep --color=auto keep

验证nginx的监控脚本:

1、将nginx服务器停止

[[email protected] ~]# /etc/init.d/nginx stop

2、再看还是会有nginx服务的进程

[[email protected] ~]# netstat -nutlp| grep 80

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      23022/nginx: master

3、只有当keepalived服务停止,才会停止nginx

4、查看vip

[[email protected] ~]# ip addr

inet 192.168.3.100/32 scope global eno16777736

“脑裂”,即当master宕机后仍然未释放VIP,同时backup接替master提供服务要使用同一VIP,因而导致两台机器争占同一VIP导致服务紊乱,所以当master宕机后需要关闭其Keepalived服务来避免脑裂现象发生。Keepalived服务的日志位置:/var/log/messages。

配置从服务器上的:

1、

[[email protected] ~]# cat  /etc/keepalived/keepalived.conf

global_defs {

notification_email {

[email protected]

}

notification_email_from [email protected]

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_script chk_nginx {

script "/usr/local/sbin/check_ng.sh"

interval 3

}

vrrp_instance VI_1 {       #只有该部分与master有区别

state BACKUP           #角色

interface eth0

virtual_router_id 51

priority 90            #权重

advert_int 1

authentication {

auth_type PASS

auth_pass 123456

}

virtual_ipaddress {

192.168.3.100

}

track_script {

chk_nginx

}

}

2、[[email protected] ~]# vim /usr/local/sbin/check_ng.sh

#!/bin/bash

#时间变量,用于记录日志

d=`date --date today +%Y%m%d_%H:%M:%S`

#计算nginx进程数量

n=`ps -C nginx --no-heading|wc -l`

#如果进程为0,则启动nginx,并且再次检测nginx进程数量,

#如果还为0,说明nginx无法启动,此时需要关闭keepalived

if [ $n -eq "0" ]; then

/etc/init.d/nginx start

n2=`ps -C nginx --no-heading|wc -l`

if [ $n2 -eq "0"  ]; then

echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log

/etc/init.d/keepalived stop     #在此停止Keepalived服务是为了避免发生脑裂

fi

fi

3、[[email protected] ~]# chmod 755 /usr/local/sbin/check_ng.sh

4、[[email protected] ~]# /etc/init.d/keepalived start

5、[[email protected] ~]# ps -ef | grep keep

root      7473     1  0 10:47 ?        00:00:00 /usr/sbin/keepalived -D

root      7474  7473  0 10:47 ?        00:00:00 /usr/sbin/keepalived -D

root      7475  7473  0 10:47 ?        00:00:00 /usr/sbin/keepalived -D

root      7479  3017  0 10:47 pts/0    00:00:00 grep keep

验证:

宕机前的验证

1、访问master:

2、访问从服务器

3、访问vip

master宕机后:

关闭Keepalived服务:

[[email protected] ~]# systemctl stop keepalived

[[email protected] ~]# ps -ef | grep keep

root      25316  16637  0 10:58 pts/0    00:00:00 grep --color=auto keep

此时主机上已经没有vip了,vip已经转移到了从服务器上

[[email protected] ~]# ip addr

inet 192.168.3.83/24 brd 192.168.3.255 scope global eth0

inet 192.168.3.100/32

访问vip时已转移到备份上:

现将主服务器keepalived启动:

[[email protected] ~]# systemctl start keepalived

vip又转移到了主服务器上,从服务器上已经没有vip了

再次访问vip,又回到主服务器上了。

时间: 2024-10-14 07:40:02

集群介绍、keepalived介绍、用keepalived配置高可用集群的相关文章

18.1 集群介绍;18.2 keepalived介绍;18.3,18.4,18.5 用keepalived配置高可用集群(上,中,下);

18.1 集群介绍 1. 根据功能划分为两大类:高可用和负载均衡 2. 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 3. 实现高可用的开源软件有:heartbeat.keepalived 负载均衡集群,需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2 4. 实现负载均衡的开源软件有LVS.keepalived.haproxy.nginx,

18.1集群介绍 18.2 keepalived介绍18.3/18.4/18.5 用keepalived配置高可用集群

- 18.1 集群介绍 - 18.2 keepalived介绍 - 18.3/18.4/18.5 用keepalived配置高可用集群 - 扩展 - heartbeat和keepalived比较 http://blog.csdn.net/yunhua_lee/article/details/9788433  - DRBD工作原理和配置 http://502245466.blog.51cto.com/7559397/1298945 - mysql+keepalived http://lizhenl

Linux集群(keepalived介绍,Keepalived配置高可用集群,Keepa+mysql

一.Linux集群概述 根据功能划分为两大类:高可用和负载均衡 (1)高可用集群通常为两台服务器,台工作,另外一台作为准备,当提供服务的机器宕机,另外一台将接替继续提供服务. 实现高可用的开源软件有:heartbeat,keepalived (2)负载均衡集群:需要有一台服务器作为分发器,它负责吧用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量最少为2 实现负载均衡的开源软件有LVS,keepalived,haproxy,nginx,商业

18.1集群介绍18.2keepalived介绍18.3-5用keepalived配置高可用集群

18.1集群介绍18.2 keepalived介绍18.3 18.4 18.5 用keepalived配置高可用集群这里是用ngixn作为高可用的演示对象,因为有生产中很多企业用nginx作为负载均衡器使用编辑130上keepalived配置文件,内容从https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/master_keepalived.conf获取首先清空原来的配置文件内容再增加内容global_def

linux集群介绍、用Keepalived配置高可用集群

linux集群介绍 用Keepalived配置高可用集群 原文地址:http://blog.51cto.com/13515599/2096633

Linux集群架构(1)集群介绍、keepalived介绍、用keepalived配置高可用集群

集群介绍 这些实现高可用和负载均衡的都是软件,是为我们在服务器上的服务所作用的. keepalived介绍 用keepalived配置高可用集群 在nginx上实现高可用: 准备工作: 准备两台机器133和134,133作为master(主),134作为backup(备用) 两台机器都执行yum install -y keepalived 两台机器都安装nginx,其中133上已经编译安装过nginx,134上需要yum安装nginx: yum install -y nginx !!(133机器

18.1-18.5 集群介绍,用keepalived配置高可用集群

18.1 集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务大概意思是:高可用一般使用两台机器,功能,角色是一样的.当一台服务器宕机不能服务了,利用另外的服务器顶替. 实现高可用的开源软件有:heartbeat(不建议使用,切换通信速度慢,2010年停止更新,).keepalived(建议使用,有高可用和负载均衡的功能) 负载均衡集群,需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务

六十一、集群介绍、keepalived介绍、用keepaliver配置高可用集群

一.集群介绍 根据功能划分为两大类:高可用和负载均衡. 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heartbeat.keepalived.heartbeat有很多bug,所以不再使用. 负载均衡集群,需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2 实现负载均衡的开源软件有LVS.keepalived.hapr

集群介绍,keepalived介绍,keepalived配置高可用集群

Linux集群概述 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heartbeat.keepalived (推荐) 负载均衡集群,需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2 实现负载均衡的开源软件有LVS.keepalived.haproxy.nginx,商业的有F5.