一、Keepalived概述

本文主要了解开源高可用负载均衡集群利器keepalived,掌握keepalived的安装,运用keepalived配置高可用集群,并能够实现keepalived与负载均衡集群LVS的完美组合。

1、什么是keepalived?

keepalived是一个类似于三、四、五层交换机的软件,也是我们平时说的第三层、第四层、第五层交换。Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后keepalived自动将web服务器加入到服务器集群中,这些工作全部自动完成,不需要人工干涉,需要人工做的知识修复故障的web服务器。

 

2、Keepalived的工作原理

三层、四层、五层工作在TCP/IP协议栈的IP层、TCP层、应用层。原理如下:

三层:keepalived使用三层方式工作是,keepalived会定期向服务器集群中的服务器发送一个IMCP的数据包,也就是ping程序,如果发现某台服务器的IP地址没有激活,keepalived便报告这台服务器失效,并将它从集群中删除,这种情况的典型例子是某台服务器被非法关机。三层的方式是以服务器的IP地址是否有效作为服务器工作正常与否的标准。

四层:主要是以TCP端口的状态来决定服务器工作正常与否。如web服务器的端口一般是80,如果keepalived检测到80端口没有启动,则keepalived将这台服务器从集群中剔除。

五层:应用层,比三层和四层要复杂一点,在网上占用的带宽也大一些,keepalived将根据用户的设定检查服务器程序运行是否正常,如果与用户设定的不相符,则keepalived将把服务器从服务器集群中剔除。

3、keepalived的作用

负载均衡-横向扩展

高可用-可持续的服务器质量

实现对失效服务器的隔离-通过健康监测,保证服务的可用性

实现:vrrp协议实现。(冗余网关路由协议)

 

4、keepalived体系结构

1、watchdog 负责监控checkers和vrrp进程的状况。

2、Checkers 负责真实服务器的健康监测,是keepalived最主要的功能,换一句话说,可以没有vrrp statck,但是健康检查healthcheckping一定要有。

3、Vrrp statck 负责负载均衡器之间失败切换failover。如果只用一个负载均衡器,则vrrp不是必须的。

4、Ipvs warpper是用来发送设定的规则封装到内核ipvs代码。

5、Netlink reflector  用来设定vrrp的vip地址等。

Keepalived功能十分强大,但是配置工作十分简单,keepalived各种功能的实现是通过设定配置文件keepalived.conf来完成的。

二、Keepalived的安装

 

1、安装keepalived

二进制编译安装三步骤:./confgiure && make && make install

问题汇总:

1.无gcc等编译工具

Yum install  gcc gcc-c++

2.无openssl-devel支持

Yum  install openssl-devel

3.无ipvs framework、ipvs syncdeamon support

查看kernels文件:

ls /usr/src/kernels

安装ipvsadm

Yum install kernel-devel ipvsadm

做软连接:

ln -s /usr/src/kernels/2.6.****   /usr/src/linux

4.无make工具

Yum install  make

 

 编译安装后,默认安装目录为/usr/local/etc/,下面三个目录

Keepalived、rc.d、sysconfig

 

3.启动设置

[root@master etc]# cp /usr/local/etc/rc.d/init.d/keepalived  /etc/rc.d/init.d/

[root@master etc]# cp /usr/local/etc/sysconfig/keepalived  /etc/sysconfig/

[root@master etc]# mkdir /etc/keepalived

[root@master etc]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

[root@master etc]# cp /usr/local/sbin/keepalived /usr/sbin/

[root@master etc]# service keepalived start

env: /etc/init.d/keepalived: 权限不够

[root@master etc]# chmod 755 /etc/init.d/keepalived

[root@master etc]# service keepalived start

正在启动 keepalived:[确定]

[root@master etc]# ps xua|grep keep

root     29312  0.0  0.0   6852   748 ?        Ss   03:57   0:00 keepalived -D

root     29314  0.0  0.2   6908  2024 ?        S    03:57   0:00 keepalived -D

root     29315  0.7  0.1   6908  1244 ?        S    03:57   0:00 keepalived -D

 至此,keepalived安装完成。下一节开始实战。

 

 

 

Keepalived概述和安装(1)的更多相关文章

  1. lvs + keepalived 介绍及安装

    LVS介绍 lvs 核心ipvs      Ipvs(IP Virtual Server)是整个负载均衡的基础,如果没有这个基础,故障隔离与失败切换就毫无意义了.Ipvs 具体实现是由ipvsadm ...

  2. OpenVAS漏洞扫描基础教程之OpenVAS概述及安装及配置OpenVAS服务

    OpenVAS漏洞扫描基础教程之OpenVAS概述及安装及配置OpenVAS服务   1.  OpenVAS基础知识 OpenVAS(Open Vulnerability Assessment Sys ...

  3. C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节

    C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节 1.Qt概述 1.1 什么是Qt Qt是一个跨平台的C++图形用户界面应用程序框架.它为应用程序开发者提供建立艺术级图形界面 ...

  4. ElasticSearch入坑指南之概述及安装

    ---恢复内容开始--- ElasticSearch入坑指南之概述及安装 了解ElasticSearch ElasticSearch(简称ES)基于Lucene的分布式全文检索引擎.使用ES可以实现近 ...

  5. Flask 学习(一)概述及安装

    Flask 概述及安装 Flask 简介 Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 . 官方网址 ...

  6. Nginx概述、安装及配置详解

    nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外 ...

  7. 【转】Struts1.x系列教程(4):标签库概述与安装

    转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/0 ...

  8. MongoDB笔记(一)MongoDB概述和安装

    概述 关键词:关系数据库.非关系数据库 关系数据库: 关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据.目前主流的关系数据库有oracle.SQL.ac ...

  9. Nginx概述和安装(1)

    一.Nginx概述 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 I ...

随机推荐

  1. cocoapods管理以及常遇到的问题

    CocoaPods使用 安装成功啦,咱们来创建Podfile文件 //咱们先滚去项目的根目录,如果不会,你就先滚去看看shell命令教程吧 $ cd /Users/JamesGu/Desktop/Co ...

  2. nodejs+mongodb+vue前后台配置ueditor

    笔者在做一个个人博客项目的时候需要一个富文本框输入组件与后台进行交互,但是官方配置里面没有关于nodejs的,于是自己查阅资料研究了一下,最后终于应用到了系统中. 一.后台配置 首先是找到了这个项目: ...

  3. Visual Studio 2017 : client version 1.22 is too old

    使用Vs2017 编译 eShopOnContainers-ServicesAndWebApps 时,报了错误: Microsoft.DotNet.Docker.CommandLineClientEx ...

  4. Tableau Desktop 10.4.2 的安装和激活

    在安装之前,首先我们要弄清楚Tableau是个什么鬼东西,我们为什么需要安装这款软件? Tableau将数据运算与美观的图表完美地嫁接在一起.它的程序很容易上手,各公司可以用它将大量数据拖放到数字&q ...

  5. Mysql 锁基础

    本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/53 lock与latch 在数据库中,lock与latch都可以 ...

  6. js代码细嚼慢咽

    全局变量的梗 例1: 对于var 的理解:将该变量声明在当前的作用域中,或者说执行上下文中. function add() { result = 3; //result变量即是隐喻全局变量 } add ...

  7. 开发过程遇到的bug

    1.transition和display的冲突: 解决方法:1)使用visibility:2)使用js的setTimeout使动画延迟:3)可以改变高度: 2.form表单提交和js中的提交冲突 解决 ...

  8. BOOTPROTO=[none|static|bootp|dhcp](引导时不使用协议|静态分配|BOOTP协议|DHCP协议)

     BOOTPROTO=[none|static|bootp|dhcp](引导时不使用协议|静态分配|BOOTP协议|DHCP协议) 

  9. Fiddler扩展之脚本录制

    Jmeter的脚本来源有4个,此处重点说明第4个 1)手动编写 2)badboy录制 3)自带录制功能 4)Fiddler生成 本文的主要用途:将fiddler抓取的请求,导出为jmx格式,方便jme ...

  10. 在一个终端后台运行的进程在新的终端中使用job不会被发现

    我在一个终端后台运行了一个程序.之后由于工作需要又新开了一个新的终端.在新的终端中,我想查看后台程序的运行状态,输入jobs时,发现没有后台任务运行.难道我的程序死掉了?我接着top了下,发现我的后台 ...