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

下面讲解如何在linux安装keepalived并搭建高可用的web服务器。

首先是keepalived 的安装。keepalived是需要即时编译的,这里使用的是keepalived-1.2.2.tar.gz,这里假设把压缩文件上传到了/usr下。
首先登录到root用户下,并定位到/usr下。

#编译安装keepalived
unzip keepalived-1.2.2.tar.gz #或者使用“tar zxvf keepalived-1.2.2.tar.gz”命令来解压
cd keepalived-1.2.2
./configure --prefix=/usr/local/keepalived
make && make install #编译keepalived源码

#设定keepalived的配置文件并将keepalived注册为服务然后设定为开机启动(开机启动前面有讲)
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
chkconfig --level 2345 keepalived on #注册开机启动

说明一下,这里keepalived的本身安装在了/usr/local下,keepalived的配置文件keepalived.conf放在了/etc/keepalived下。

至此keepalived已经安装完成并添加到了开机启动下,先不要着急启动keepalived,我们还要配置一下它的配置文件。

先说一下我们要达到的要求:
1.当其中一台机器或者keepalived挂掉之后,虚拟ip自动飘移到另外一台机器上,从而实现高可用。当作为主的机器恢复后,虚拟ip会自动漂移回来。
2.当keepalived切换时,需要执行指定的脚本,在脚本中我们可以执行一些其他操作(例如启动或停止数据库)。

这里首先介绍一下虚拟ip(VIP)。
VIP是一个不与特定计算机或一个计算机中的网络接口卡(NIC)相连的IP地址。数据包被发送到这个VIP地址,但是所有的数据还是进过真实的网络接口。
它IP技术的一种,增强网络管理,发挥出VLAN的优势,改变了网络结构,合理分配网络资源,均衡网络负载,有效降低网上广播信息,方便对用户的分组管理。
用白话说VIP就是一个IP地址,但并不是分配给特定网卡的。这样的话,多个网卡之间可以轮流与这个VIP进行绑定,从而在不需要改变web服务地址的情况下,实现程序的高可用。

VIP简单介绍完了,下面讲解如何配置keepalived的,从而实现高可用。
这里我用一句话来概括keepalived实现高可用的原理:两台机器之间(也可以多台)之间轮流提供VIP,从而让web服务不间断。
当一台服务器挂掉之后,VIP进行漂移,而这个过程是自动由keepalived帮我们完成的,我们要做的就是维护出问题的web服务器。

这里假设有两台机器A和B,他们的ip地址分别为192.168.1.8和192.168.1.9,而VIP我们设定为192.168.1.10。
先来配置机器A,我的目的是尽可能直白简单的介绍配置,从而让大家更容易理解。。。。
先vi /etc/keepalived/keepalived.conf这个文件

! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 { #一个keepalived实例
state MASTER #表明这是主机
interface eth0 #绑定的网卡
virtual_router_id 51 #两台机器要一致,表明他们是同一组
mcast_src_ip 192.168.1.8 #发送多播包的地址,就是本机的ip地址(如果本机有多个ip地址的话,这个很有用)
priority 200 #本机的竞争优先级,一般主的比从的高
advert_int 1
authentication {
auth_type PASS #认证类型
auth_pass 1111 #认证密码
}
virtual_ipaddress {
192.168.1.10 #提供的虚拟ip地址
}

notify_master "/1.sh" #在keepalived切换到本机时会执行此脚本
notify_backup "/2.sh" #在keepalived从本机切换走时会执行此脚本
notify_fault "/2.sh" #在keepalived停止时会执行此脚本
#注意下notify_backup和notify_fault的区别,比如从机,当VIP从从机切换到主机时,从机上的notify_backup脚本会执行;当从机的keepalived服务停止时(不仅仅是VIP漂移走了,而是keepalived的进程停止了),notify_fault的脚本会执行。

}

机器B
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP #表明是从机
interface eth0
virtual_router_id 51
mcast_src_ip 192.168.1.9
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.10
}
}

ok,配置完成。在两台机器的root用户下分别执行:
service keepalived start

然后ping一下VIP:
ping 192.168.1.10
发现有返回。
然后我们关掉A机器或者停止A机器的keepalived(service keepalived stop),然后ping一下VIP,发现有返回,这是VIP已经票已到B机器了。

最后我们恢复A机器上的keepalived服务,然后ping一下VIP,也有返回,其实这时VIP已经漂移到机器A了。

大家可以在两台机器上安装一个web服务器或者直接使用linux的apache服务器,然后在浏览器里测试一下。
至于两个启动/停止脚本,大家有兴趣的可以自己测试下。

linux下keepalived 安装配置的更多相关文章

  1. Linux下PHP安装配置MongoDB数据库连接扩展

    Web服务器: IP地址:192.168.21.127 PHP安装路径:/usr/local/php 实现目的: 安装PHP的MongoDB数据库扩展,通过PHP程序连接MongoDB数据库 具体操作 ...

  2. VMware Linux 下 Nginx 安装配置 - nginx.conf 配置 [负载两个 Tomcat] (三)

    首先启动Nginx 1. 相关浏览 两个 Tomcat 配置:  VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二) Nginx 安装配置启动: VMware Linu ...

  3. VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二)

    准备工作 相关浏览: VMware Linux 下 Nginx 安装配置 (一) 1. 选在 /usr/local/ 下创建 softs 文件夹,通过 ftp 命令 把 apache-tomcat-7 ...

  4. Linux下git安装配置

    一.Linux下git安装配置 2013-07-28 20:32:10|  分类: 默认分类 |  标签:linux  git  server  |举报|字号 订阅     http://abomby ...

  5. JDK1.6在LINUX下的安装配置[转]

    JDK1.6在LINUX下的安装是如何进行的呢,让我们开始我们的演示: Ubuntu Linux下jdk的安装与配置 1.JDK1.6安装准备 从sun公司网站www.sun.com下载linux版本 ...

  6. Linux下Keepalived 安装与配置

    Keepalived 安装与配置 一.环境说明 1.操作系统内核版本:2.6.9-78.ELsmp 2.Keepalived软件版本:keepalived-1.1.20.tar.gz 二.环境配置 1 ...

  7. (实用)Linux下Eclipse安装配置PyDev

    记录备忘. PyDev是Eclipse下支持Python开发的IDE插件,本文介绍安装和配置PyDev插件的过程. 一.安装PyDev插件两种安装方法: 1.在eclipse的Help->Ins ...

  8. Linux下Tomcat安装配置

    买了台阿里云服务器,因为配置比较低,所以用Linux系统,这里记录一下我在Linux系统中Tomcat的安装配置. 前提JDK已经安装好. 安装 首先在/usr/local/下建立一个tomcat的文 ...

  9. Linux下,安装配置Weblogic

    环境说明 系统 -- Linux RHEL5 32bit 环境 -- 局域网中在192.168.0.140(windows)通过xshell连接服务器 软件 -- 1.JDK:1.5.0_15  2. ...

随机推荐

  1. bzoj3571————2016——3——12(最小乘积匹配)

    bzoj3571 传送门http://www.lydsy.com/JudgeOnline/problem.php?id=3571 题解: ——————来自伟大的thy大神  http://blog.c ...

  2. windows批处理實例

    實例: 假設我們有個資料夾為d:\tmp和e:\tmp ,而我們只要將d:\tmp中有異動的檔案複製到e:\tmp下的話,用法如下 xcopy d:\tmp\. e:\tmp\ /D /S /Y 實例 ...

  3. iOS 之 NSString 去除前后空格和回车键

    NSString *string = @" spaces in front and at the end "; NSString *trimmedString = [string ...

  4. js架构设计模式——前端MVVM框架设计及实现(二)

    前端MVVM框架设计及实现(二) 在前端MVVM框架设计及实现(一)中有一个博友提出一个看法: “html中使用mvvm徒增开发成本” 我想这位朋友要表达的意思应该是HTML定义了大量的语法标记,HT ...

  5. Java 伪静态 Mapping

    1. 概念 伪静态,简单来说是指转换url地址,在这里用来替换掉urlMapping.因为urlMapping需要为每一个页面都进行配置,非常麻烦. 2. RequestMapping 3. Spri ...

  6. 支持Angular 2的表格控件

    前端框架一直这最近几年特别火的一个话题,尤其是Angular 2拥有众多的粉丝.在2016年9月份Angular 2正式发布之后,大量的粉丝的开始投入到了Angular 2的怀抱.当然这其中也包括我. ...

  7. pyspark 内容介绍(一)

    pyspark 包介绍 子包 pyspark.sql module pyspark.streaming module pyspark.ml package pyspark.mllib package ...

  8. 深圳尚学堂:JavaScript的常见面试题

    经常说编程是一门技术专业,在找工作时面试官肯定不止看你的面试能力,还要看你的专业知识掌握,他可能会让你做一个小的编程测试,或者说考察你的语法知识掌握,今天,总结了一些关于在JavaScript中常常会 ...

  9. Salesforce的Auto Number

    在Salesforce中新建Object的时候,可以对Name选择Auto Number,即自动编号.如果没有仔细阅读说明的话,会有一个很容易让人迷惑的地方. 在选择时候,Salesforce提供的示 ...

  10. 5种IE hasLayoutt的属性及其值

    hasLayout 是Windows  Internet  Explore 渲染引擎的一个内部组成部分.在 Internet Explore 中,一个元素要么自己对自身内容进行计算大小和组织,要么依赖 ...