HA集群-keepalived+LVS\DR部署

栏目: 服务器 · 发布时间: 6年前

内容简介:一 . keepalived简介keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。

一 . keepalived简介

keepalived是什么?

keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。

keepalived工作原理

keepalived是以 VRRP协议为实现基础 的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。

虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,

这个组里面有一个master(主)和多个backup(备份),master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播(224.0.0.18), 当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级(priority)来选举一个backup当master 。这样的话就可以保证路由器的高可用了。

keepalived主要有三个模块,分别是core(核心)、check(检测)和vrrp(虚拟路由冗余协议)。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件(keepalived.conf)的加载和解析。check负责健康检查,包括常见的各种检查方式(TCP、脚本检测进程状态等)。vrrp模块是来实现VRRP协议的。

keepalived的常见组合

keepalived+LVS

keepalived+nginx

keepalived+mysql-proxy

keepalived+mycat

keepalived+LVS

Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以利用其来避免单点故障

。一个LVS服务会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候, 备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

二 . keepalived+LVS\DR的搭建

实验拓扑图

HA集群-keepalived+LVS\DR部署

实验准备

客户端/服务器
Client 192.168.11.1
Director master (node11) 192.168.11.11/24
Director Backup (node12) 192.168.11.12/24
Real  Server (node13) 192.168.11.13/24
Real  Server (node14) 192.168.11.14/24

四台服务器均关闭防火墙和selinux

systemctl  stop  firewalld                  #关闭防火墙

systemctl  status  firrewalld              #查看防火墙

setenforce  0                                   #关闭selinux

getenforce                                      #查看selinux是否关闭

服务部署流程

首先简单部署后端服务器(real  server) , 后端web服务器可以是apache , nginx 等服务

在node13和node14上部署apache服务 , 并设置主页

node13(192.168.11.13)上的操作

yum  install  -y  httpd                                                                     #用yum安装httpd软件

echo  ' www.node13.com' > /var/www/html/index.html                 #设置apache主页 , node13上做

systemctl  start  httpd                                                                   #重启服务

curl  192.168.11.13                                                                        #内测httpd服务

vim  lo.sh                                                                                     #编辑脚本,内容如下

#!/bin/bash

ifconfig lo:1 192.168.11.100  netmask 255.255.255.255

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

chmod  +x  lo.sh                                           #给脚本执行权限

bash  lo.sh                                                    #运行脚本 , 出现下图片中的IP则表示正确

scp  lo.sh  root@192.168.11.14:/root/            #把lo.sh上传到192.168.11.14的root家目录中

HA集群-keepalived+LVS\DR部署

HA集群-keepalived+LVS\DR部署

node14(192.168.11.14)上的操作

yum  install  -y  httpd                                                                     #用yum安装httpd软件

echo  ' www.node14.com' > /var/www/html/index.html                 #设置apache主页 , node13上做

systemctl  start  httpd                                                                   #重启服务

curl  192.168.11.13                                                                        #内测httpd服务

bash  lo.sh

HA集群-keepalived+LVS\DR部署

HA集群-keepalived+LVS\DR部署

部署Master  Director  Server 服务(192.168.11.11)

yum  install  -y  keepalived  ipvsadm                    #安装keepalived软件和ipvsadm命令

cd  /etc/keepalived

cp  -av  keepalived.conf{,.bak}                              #备份keepalived主配置文件

HA集群-keepalived+LVS\DR部署

vim  keepalived.conf       #编辑keepalived配置文件 , 如下图

配置文件详解:

HA集群-keepalived+LVS\DR部署

HA集群-keepalived+LVS\DR部署

配置好keepalived文件定义集群后 , 重启服务 , 查看IP和ipvsadm集群信息

systemctl  restart  keepalived              #重启服务

ip  a                         #此处查看ip信息 , 会多出一个vrrp的虚拟IP(VIP地址)

HA集群-keepalived+LVS\DR部署

ipvsadm  -Ln   #查看ipvsadm集群VIP所对应的后端web服务器IP信息

HA集群-keepalived+LVS\DR部署

把配置文件keepalived.conf配置文件传到192.168.11.12备服务器上

[root@node11 keepalived]# scp keepalived.conf   root@192.168.11.12:/etc/keepalived/

HA集群-keepalived+LVS\DR部署

部署Backup  Director  Server 服务(192.168.11.12)

yum  install  -y  keepalived  ipvsadm

vim  /etc/keepalived/keepalived.conf

HA集群-keepalived+LVS\DR部署

systemctl  restart  keepalived        #重启keepalived服务

修改好配置文件重启服务后 , 此时ip  a 查看ip地址信息 , 发现VIP地址并为出现 , 原因是主服务器未down掉

HA集群-keepalived+LVS\DR部署

配置好主备服务后 , 进行测试

HA集群-keepalived+LVS\DR部署

测试结果每访问3次192.168.11.14 , 再访问一次192.168.11.13 ,(LVS调度算法权重)成功负载均衡进行轮询

此时假装把主服务器192.168.11.11down掉 , 查看192.168.11.12的IP状态 ,并再次执行测试

关闭node11的keepalived服务

HA集群-keepalived+LVS\DR部署

查看192.168.11.12上的IP信息 , 发现成功继承VIP:192.168.11.100,并继续承当起负载均衡器 , 实现高可用

HA集群-keepalived+LVS\DR部署

再次测试:

HA集群-keepalived+LVS\DR部署

抓包分析:

keepalived通过vrrp协议进行组播的 作用 是为了竞选出由哪台keepalived主机接管业务(使用VIP的)。谁的priority优先级高(即票数多),谁就有VIP地址。

当master和backup都在运行keepalived服务时 :在备服务器node12抓取vrrp包 , 发现是192.168.11.11在不间断发送vrrp组播node11(master)发送的组播信息:

node12(backup)接收的组播信息

src:192.168.11.11

dest:224.0.0.18

keepalived集群中其他主机接收的组播信息

src:192.168.11.11

dest:224.0.0.18

HA集群-keepalived+LVS\DR部署

HA集群-keepalived+LVS\DR部署

当192.168.11.11down掉后 , 192.168.11.12竞选 ,开始由192.168.11.11不间断发送vrrp包变成192.168.11.12开始不间断发送vrrp组播

node12发送的组播信息

src:192.168.11.12

dest:224.0.0.18

keepalived集群中其他主机接收的组播信息:

src:192.168.11.12

dest:224.0.0.18

HA集群-keepalived+LVS\DR部署

HA集群-keepalived+LVS\DR部署


以上所述就是小编给大家介绍的《HA集群-keepalived+LVS\DR部署》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

构建之法(第三版)

构建之法(第三版)

邹欣 / 人民邮电出版社 / 2017-6 / 69.00元

软件工程牵涉的范围很广, 同时也是一般院校的同学反映比较空洞乏味的课程。 但是,软件工程 的技术对于投身 IT 产业的学生来说是非常重要的。作者有在世界一流软件企业 20 年的一线软件开 发经验,他在数所高校进行了多年的软件工程教学实践,总结出了在 16 周的时间内让同学们通过 “做 中学 (Learning By Doing)” 掌握实用的软件工程技术的教学计划,并得到高校师生的积极反馈。在此 ......一起来看看 《构建之法(第三版)》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试