一、keepalived简介及作用

Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能

keepalived软件主要功能:

  1. 管理LVS负载均衡软件
  2. 实现对LVS集群节点健康检查功能
  3. 作为系统网络服务的高可用功能

二、keepalived工作原理

keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议,VRRP的出现是为了解决静态路由的单点故障。

虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。

工作时主节点发包,备节点接包,当备节点接收不到主节点发的数据包的时候,就启动接管程序接管主节点的资源。备节点可以有多个,通过优先级竞选,但一般Keepalived系统运维工作中都是一对。

keepalived主要有三个模块,分别是core、check和vrrp、core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的。

三、keepalived安装

1、环境说明

[root@lb01 ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@lb01 ~]# uname -r
2.6.-.el6.x86_64
[root@lb01 ~]# service iptables stop
[root@lb01 ~]# getenforce
Disabled

2、keepalived安装

yum -y install keepalived

#查看安装的相关目录及文件
rpm -ql keepalived

3、配置文件说明

keepalived只有一个配置文件keepalived.conf。配置文件由以下几个部分组成:

  1. GLOBAL CONFIGURATION    #全局定义(默认配置文件的01-13行)
  2. VRRPD CONFIGURATION      #虚拟ip的配置(默认配置文件15-30行)
  3. LVS CONFIGURATION     ###配置与管理lvs
[root@lb01 conf]# rpm -ql keepalived
/etc/keepalived
/etc/keepalived/keepalived.conf --- keepalived服务主配置文件
/etc/rc.d/init.d/keepalived --- keepalived服务启动脚本文件

配置文件详解:

! Configuration File for keepalived

global_defs {                     --- 全局配置标题
notification_email { --- 定义管理员邮箱信息,
@qq.com
@qq.com
}
notification_email_from zhang@.com --- 定义利用什么邮箱发送邮件
smtp_server smtp..com --- 定义邮件服务器信息
smtp_connect_timeout --- 定义邮件发送超时时间
router_id lb01 --- (重点参数)局域网keepalived主机身份标识信息 每一个keepalived主机身份标识信息唯一
} vrrp_instance VI_1 { --- vrrp协议相关配置(vip地址设置)
state MASTER --- keepalived角色描述(状态)信息,可以配置参数(MASTER BACKUP)
interface eth0 --- 表示将生成虚IP地址,设置在指定的网卡上
virtual_router_id --- 表示keepalived家族标识信息
priority --- keepalived服务竞选主备服务器优先级设置(越大越优先)
advert_int --- 主服务组播包发送间隔时间
authentication { --- 主备主机之间通讯认证机制,
auth_type PASS --- 采用明文认证机制
auth_pass --- 编写明文密码
}
virtual_ipaddress { --- 设置虚拟IP地址信息
10.0.0.3 --- 这里设置VIP为10.0.0.3
}
}

四、keepalived组合应用

keepalived解决单点故障,有以下模式选择:

  • 主从配置:主服务器出现故障后,从服务才能启用。
  • 主主配置:多台服务器都为主服务器,服务器资源可以得到充分利用。

keepalived与其他组合使用:

  • LVS+Keepalived配置
  • nginx+keepalived配置
  • HAproxy+keepalived配置
  • 等等

总结:keepalived属于轻量级高可用,重量级的高可用有heartbeat和corosync

官方站点:http://www.keepalived.org/

五、keepalived高用检测脚本示例

#!/bin/bash
#####################
#user:zhang #
#time:// #
#use:高可用监控脚本 #
##################### function check_web () {
if [ "$1" -ge "" ];then
export result="true"
else
export result="false"
fi
} ##close keepalived server
function stop_keepalived () {
if [ "$1" == "false" ];then
service keepalived stop
fi
} ####check nginx
exist_port=`netstat -lntup | grep -v grep | grep nginx |wc -l`
check_web $exist_port
if [ "$result" == "false" ];then
/application/nginx/sbin/nginx
fi
exist_port=`netstat -lntup | grep -v grep | grep nginx |wc -l`
check_web $exist_port
stop_keepalived $result

实战案例,需要移步本博客其他文章。

keeplived工作原理及配置的更多相关文章

  1. [转帖]keepalived工作原理和配置、使用

    keepalived工作原理和配置.使用 https://www.iteye.com/blog/aoyouzi-2288124 keepalived是什么 keepalived是集群管理中保证集群高可 ...

  2. java复习要点(一)------- java语言的特点、java的工作原理、配置环境变量、java命令的使用

    一.java语言的特点: (1)简单并面向对象 (2)鲁棒并安全: java语言在编译及运行程序时,都要进行严格的检查,防止不匹配问题的发生.如果引用一个非法类型,或执行一个非法类型操作,java减肥 ...

  3. Oracle NET工作原理、配置及连接问题排查

    一.Oracle NET配置文件 Oracle NET是一个软件层,支持不同网络协议之间的转换.不同的物理机器可以借助这个软件层实现相互间的通信,具体而言就是实现对oracle的远程访问. oracl ...

  4. lvs持久性工作原理和配置

    作者: ISADBA|FH.CN 日期: // 转载请注明: 作者:ISADBA.COM|FH.CN BLOG:http://isadba.com 原文:http://isadba.com/?p=67 ...

  5. vmware三种网络模式的工作原理及配置详解

    vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式).NAT(网络地址转换模式).Host-Only(仅主机模式). 打开vmware虚拟机,我们可以在选项栏的“编辑”下的 ...

  6. UCENTER同步登录工作原理和配置要点

    ucenter的同步登录原理: 1)Ucenter是和uc_client同步的.每个PHP应用,加入了UCENTER后,都会在主目录下有个UC_CLIENT目录.这个目录里,都有一个client.PH ...

  7. symfony2 路由工作原理及配置

    1.路由是程序的方法和URL的一一映射.

  8. 理解GRUB2工作原理及配置选项与方法

    GRUB2是借鉴GRUB改写到更加安全强大到多系统引导程序,现在大部分较新的Linux发行版都是使用GRUB2作为引导程序的.GRUB2采用了模块化设计,使得GRUB2核心更加精炼,使用更加灵活,同时 ...

  9. nova network工作原理及配置

    1. nova network简介 网络管理和配置是云计算中一项非常重要的功能.nova自带的nova-network实现了一些基本的网络模型,允许虚拟机之间的相互通信及虚拟机对internet的访问 ...

随机推荐

  1. 2.4《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——小结

    下Table 3本章重要命令小结 命令 描述 示例 > 将输出内容重定向到指定文件中 $ echo foo > foo.txt >> 将输出内容添加到指定问价中 $ echo ...

  2. Java基础—面向对象

    一.什么叫面向对象 万物皆对象(待更正) 二.面向对象三大特征 抽象:把一类对象共同特征进行抽取构造类的过程,包括两种抽象:第一种是数据抽象,也就是对象的属性.第二种是过程抽象,也就是对象的行为 封装 ...

  3. python基础——类定义(转)

    一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性.如果直接使用类名修改其属性,那么将直接影响到已经实例 ...

  4. 调用聊天机器人 -小I机器人

    public static string sendMsg2(string msg) { try { msg = Uri.EscapeDataString( msg); string sUrl = &q ...

  5. 实验的方差分析(R语言)

    实验设计与数据处理(大数据分析B中也用到F分布,故总结一下,加深印象)第3课小结--实验的方差分析(one-way analysis of variance) 概述 实验结果\(S\)受多个因素\(A ...

  6. UWP-开发一个具有闹钟,天气预报,翻译,语音功能的Demo

    UWP即Windows 10中的Universal Windows Platform简称.即Windows通用应用平台,在Windows 10 Mobile/Surface(Windows平板电脑)/ ...

  7. 备忘:BLOCK CORRUPTION IN SYSTEM DATAFILE

    http://www.onlinedbasupport.com/2010/12/10/block-corruption-in-system-datafile/

  8. 开源软件License汇总

    用到的open source code越多,遇到的开源License协议就越多.License是软件的授权许可,里面详尽表述了你获得代码后拥有的权利,可以对别人的作品进行何种操作,何种操作又是被禁止的 ...

  9. 06-Git-Linux命令

    Git 命令 Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 一.新建代码库 # 新建一个目录,将其初始化为Git代 ...

  10. 为你的机器学习模型创建API服务

    1. 什么是API 当调包侠们训练好一个模型后,下一步要做的就是与业务开发组同学们进行代码对接,以便这些‘AI大脑’们可以顺利的被使用.然而往往要面临不同编程语言的挑战,例如很常见的是调包侠们用Pyt ...