`
maosheng
  • 浏览: 565518 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CentOS 6.3 安装 Keepalived

阅读更多
Keepalived is a routing software written in C. The main goal of this project is to provide simple and robust facilities for loadbalancing and high-availability to Linux system and Linux based infrastructures. Loadbalancing framework relies on well-known and widely used Linux Virtual Server (IPVS) kernel module providing Layer4 loadbalancing. Keepalived implements a set of checkers to dynamically and adaptively maintain and manage loadbalanced server pool according their health. On the other hand high-availability is achieved by VRRP protocol. VRRP is a fundamental brick for router failover. In addition, Keepalived implements a set of hooks to the VRRP finite state machine providing low-level and high-speed protocol interactions. Keepalived frameworks can be used independently or all together to provide resilient infrastructures.

Keepalived is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

OSI七层模型与TCP/IP五层模型:

OSI七层模型:

OSI中的层    功能                                            TCP/IP协议族
应用层          文件传输,电子邮件,文件服务,虚拟终 端          TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet

表示层          数据格式化,代码转换,数据加密                   没有协议

会话层          解除或建立与别的接点的联系                       没有协议

传输层          提供端对端的接口                                 TCP,UDP

网络层          为数据包选择路由                                 IP,ICMP,RIP,OSPF,BGP,IGMP

数据链路层      传输有地址的帧以及错误检测功能                   SLIP,CSLIP,PPP,ARP,RARP,MTU

物理层          以二进制数据形式在物理媒体上传输数据             ISO2110,IEEE802,IEEE802.2

*******************************************************************************

TCP/IP五层模型:
应用层
传输层:四层交换机、也有工作在四层的路由器
网络层:路由器、三层交换机
数据链路层:网桥(现已很少使用)、以太网交换机(二层交换机)、网卡(其实网卡是一半工作在物理层、一半工作在数据链路层)
物理层:中继器、集线器、还有我们通常说的双绞线也工作在物理层

*******************************************************************************

如果将TCP/IP划分为5层,则Keepalived就是一个类似于3~5层交换机制的软件,具有3~5层交换功能,其主要作用是检测web服务器的状 态,如果某台web服务器故障,Keepalived将检测到并将其从系统中剔除,当该web服务器工作正常后Keepalived自动将其加入到服务器群中,这些工作全部自动完成,而不需要人工干预,只需要人工修复故障的web服务器即可。


Keepalived基于VRRP协议来实现高可用解决方案,利用其避免单点故障,通常这个解决方案中,至少有2台服务器运行Keepalived,即一 台为MASTER,另一台为BACKUP,但对外表现为一个虚拟IP,MASTER会发送特定消息给BACKUP,当BACKUP收不到该消息时,则认为 MASTER故障了,BACKUP会接管虚拟IP,继续提供服务,从而保证了高可用性。

3层机理是:发送ICMP数据包即PING给某台服务器,如果不通,则认为其故障,并从服务器群中剔除。

4层机理是:检测TCP端口号状态来判断某台服务器是否故障,如果故障,则从服务器群中剔除。

5层机理是:根据用户的设定检查某个服务器应用程序是否正常运行,如果不正常,则从服务器群中剔除。


VIP: Virtual IP
RIP: Real IP
CIP: Client IP
DIP: Director IP

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

keepalived工作原理:keepalived可提供vrrp以及health-check功能,可以只用它提供双机浮动的vip(vrrp虚拟路由功能),这样可以简单实现一个双机热备高可用功能。 keepalived是一个类似于layer3, 4,5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。Keepalived的作用是检测web 服务器的状态。 Layer3,4&5工作在IP/TCP协议栈的IP层,TCP层,及应用层,原理分别如下:

Layer3:Keepalived使用Layer3的方式工作式时,Keepalived会定期向服务器群中的服务器发送一个ICMP的数据包(既我们平时用的Ping程序),如果发现某台服务的IP地址没有激活,Keepalived便报告这台服务器失效,并将它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。Layer3的方式是以服务器的IP地址是否有效作为服务器工作正常与否的标准。在本文中将采用这种方式。

Layer4:如果您理解了Layer3的方式,Layer4就容易了。Layer4主要以TCP端口的状态来决定服务器工作正常与否。如web server的服务端口一般是80,如果Keepalived检测到80端口没有启动,则Keepalived将把这台服务器从服务器群中剔除。

Layer5:Layer5就是工作在具体的应用层了,比Layer3,Layer4要复杂一点,在网络上占用的带宽也要大一些。Keepalived将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则Keepalived将把服务器从服务器群中剔除。 vip即虚拟ip,是附在主机网卡上的,即对主机网卡进行虚拟,此IP仍然是占用了此网段的某个IP。

keepalived作用:随着网站业务量的增长,网站的服务器压力越来越大,需要负载均衡方案!商业的硬件如F5又太贵,创业型互联公司如何有效节约成本,节省不必要的浪费呢?同时实现商业硬件一样的高性能高可用的功能?有什么好的负载均衡可伸张可扩展的方案吗?答案是肯定的!有!可以利用Haproxy+Keepalived基于完整开源软件的架构可以为你提供一个负载均衡及高可用的服务器。 Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

Keepalived是一个基于VRRP协议来实现的WEB 服务高可用方案,可以利用其来避免单点故障。一个WEB服务至少会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。keepalived是VRRP的完美实现!

VRRP工作机制:在一个VRRP虚拟路由器中,有多台物理的VRRP路由器,但是这多台的物理的机器并不能同时工作,而是由一台称为MASTER的负责路由工作,其它的都是BACKUP,MASTER并非一成不变,VRRP让每个VRRP路由器参与竞选,最终获胜的就是MASTER。MASTER拥有一些特权,比如 拥有虚拟路由器的IP地址,我们的主机就是用这个IP地址作为静态路由的。拥有特权的MASTER要负责转发发送给网关地址的包和响应ARP请求。 VRRP通过竞选协议来实现虚拟路由器的功能,所有的协议报文都是通过IP多播(multicast)包(多播地址 224.0.0.18)形式发送的。虚拟路由器由VRID(范围0-255)和一组IP地址组成,对外表现为一个周知的MAC地址。所以,在一个虚拟路由 器中,不管谁是MASTER,对外都是相同的MAC和IP(称之为VIP)。客户端主机并不需要因为MASTER的改变而修改自己的路由配置,对他们来 说,这种主从的切换是透明的。 在一个虚拟路由器中,只有作为MASTER的VRRP路由器会一直发送VRRP广告包(VRRPAdvertisement message),BACKUP不会抢占MASTER,除非它的优先级(priority)更高。当MASTER不可用时(BACKUP收不到广告包), 多台BACKUP中优先级最高的这台会被抢占为MASTER。这种抢占是非常快速的(<1s),以保证服务的连续性。由于安全性考虑,VRRP包使用了加密协议进行加密。


1.下载 keepalived-1.2.12.tar.gz

2.解包

# tar -zvxf keepalived-1.2.12.tar.gz

3.切换目录

# cd keepalived-1.2.12

4.配置

# ./configure -prefix=/usr/local/keepalived

5.编译和安装

# make; make install

顺利的话就这些步骤了,如果出现错误提示,那么根据具体的错误具体处理,一般可能出现的错误: 
 
1)、OpenSSL,提示可能如下 
 
!!! OpenSSL is not properly installed on your system. !!! 
 
!!! Can not include OpenSSL headers files. 
 
解决方案:运行yum install -y openssl openssl-devel
 
2)、提示没有gcc编译器 
 
解决方案:运行yum install ncurses-devel gcc gcc-c++ make rpm-build 

3)、报错:/usr/include/netlink/netlink-kernel.h:193:2: error: unknown type name ‘__u32’
  __u32 group;
 
解决方案: yum install -y curl gcc openssl-devel libnl3-devel net-snmp-devel libnfnetlink-devel


6.运行

# mkdir /etc/keepalived/
# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ 
# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
# ln -s /usr/local/keepalived/sbin/keepalived /sbin/

# service keepalived start [stop|restart|status]
Starting keepalived: [  OK  ]

# service keepalived status
keepalived (pid  12092) is running...

# chkconfig keepalived on

7.验证

# tail -f /var/log/messages

# ip addr

# yum -y install ipvsadm

# ipvsadm -L -n







分享到:
评论

相关推荐

    CentOS 6.3 安装VMTools

    ### CentOS 6.3 中安装 VMTools 的详细步骤与注意事项 #### 一、VMTools简介 VMTools 是由 VMware 公司开发的一款增强工具包,主要用于改善 VMware 虚拟机内的性能,并加强宿主机与虚拟机之间的交互能力。通过安装 ...

    CentOS 6.3安装(超级详细图解教程

    CentOS 6.3安装(超级详细图解教程) 相当齐全

    CentOS6.3安装nginx操作指南

    **CentOS 6.3 安装 Nginx 操作指南** 在 CentOS 6.3 上安装 Nginx 是一项常见的任务,Nginx 是一个高性能的 Web 和反向代理服务器,以其轻量级、高效的特性深受开发者和系统管理员的喜爱。本指南将详细解释如何在 ...

    CentOS6.3安装(超级详细图解教程)

    CentOS6.3安装(超级详细图解教程)。具体软件安装步骤与方法。

    Centos6.3 yum安装lamp架构

    Centos6.3 yum安装lamp架构

    CentOS 6.3安装文档

    **CentOS 6.3 安装步骤详解** 在本文中,我们将深入探讨如何安装 CentOS 6.3,这是一个基于 Linux 的操作系统,尤其适合初学者和那些熟悉 6.x 系列版本的用户。虽然 CentOS 6.3 已经不再支持,但了解其安装过程对...

    centos6.3版本的安装于配置

    主要是针对配置centos6.3版本的安装、python26的安装、python26模块的安装、nginx服务的安装、hg安装、解决乱码问题及ftp问题,centos6.3版本的安装与配置,安装过程中的配置,安装包选择

    CentOS 6.3 安装详细教程

    ### CentOS 6.3 安装教程知识点解析 #### 一、CentOS 6.3 系统概述 - **CentOS**:一种基于Linux内核的开源操作系统,旨在提供一个稳定、高预测性且免费的企业级计算平台。CentOS 6.3作为其6.x系列的一个版本,在...

    远程安装CentOS6.3

    远程安装 CentOS 6.3 并进行硬 RAID 配置 本文将指导用户如何远程安装 CentOS 6.3 操作系统,并在不同服务商的服务器上进行硬 RAID 配置。同时,本文还将详细介绍 CentOS 6.3 的安装过程和需求。 远程安装 CentOS ...

    centos6.3安装图解,包含相关程序下载地址

    本文将详细介绍如何在VirtualBox中安装CentOS 6.3,这是一个适合初学者的图解教程,涵盖了从下载到安装的整个过程。首先,选择CentOS 6.3作为Linux发行版的原因是它免费且稳定,适合课程设计等入门级使用。X86-64...

    CentOS 6.3安装(超级详细图解教程)

    ### CentOS 6.3 安装超级详细图解教程知识点概览 #### 一、CentOS 6.3 概述 - **CentOS 6.3** 是一个基于 Red Hat Enterprise Linux (RHEL) 的开源操作系统版本。它提供了一个稳定、可靠且免费的企业级计算平台,...

    linux之centos6.3 安装 qq2012笔记

    还不错的,很实用。希望大家能够喜欢,以后多多交流。

    CentOS6.3 Linux操作系统安装教程

    【CentOS6.3 Linux操作系统安装教程】 CentOS是一款基于Red Hat Enterprise Linux(RHEL)源代码重新编译而成的免费Linux发行版,以其稳定性和兼容性受到广大用户的青睐,尤其适合构建LAMP(Linux、Apache、MySQL、...

    centos 6.3 64位下载

    标题中的“CentOS 6.3 64位下载”涉及到的是Linux操作系统的一个特定版本——CentOS 6.3的64位安装镜像。CentOS(Community ENTerprise Operating System)是基于Red Hat Enterprise Linux(RHEL)的开源免费操作...

    安装CentOS6.3系统

    ### 安装CentOS 6.3系统的详细指南 #### 一、准备工作 在开始安装CentOS 6.3之前,我们需要确保已经准备好了必要的工具和资源。首先,需要从官方镜像站点下载CentOS 6.3的ISO镜像文件。根据提供的链接: - **下载...

    CentOS6.3 32位安装oracle11gR2依赖包

    elfutils-libelf-devel-0.152-1.el6.i686.rpm

    Centos6.3安装

    在本文中,我们将深入探讨如何安装CentOS 6.3操作系统,这是一个历史悠久但仍然被一些用户使用的Linux发行版。在安装过程中,我们会遇到各种选择,包括安装类型、媒体验证、语言设置、分区策略以及安装类型等。让...

    CentOS 6.3下mysql的卸载与安装全过程.

    本文将详细介绍在CentOS 6.3上如何卸载旧版本的MySQL并安装新版本的过程。 首先,我们来了解一下卸载MySQL的步骤: 1. **检查已安装的MySQL组件**: 使用`rpm -qa | grep -i mysql`命令可以列出所有与MySQL相关的...

    centos6.3 yum安装软件包全集

    在CentOS 6.3上,`yum`(Yellowdog Updater, Modified)是默认的包管理器,用于安装、更新和管理软件包。`yum`简化了在RPM(Red Hat Package Manager)系统上的软件包处理,通过自动化依赖关系解决,使得用户可以...

Global site tag (gtag.js) - Google Analytics