linux ip地址漂移,Linux 实现高可用性(HA) —之ip 漂移方法(vrrp)

在日常的系统管理当中,某些应用对可用性要求比较高,简单的冷备是不能满足需求,所以才需要双机热备即HA.根据此应用要求,我们介绍一个软件实现高可用性.

keepalived是Linux下一个双机热备的软件,可提供vrrp以及health-check功能,目前仅用它提供双机漂移ip,通过vrrp协议实现。

1.安装

在官方网页下载keepalived的最新版(现为1.1.12版),URL: ,tar zxvf your-directory/keepalived-1.1.12.tar.gz ,然后是标准的Linux源码安装过程:configure→make→make install 。 需要注意的是,在RedHat AS4的系统上安装过程没有问题,但是在AS3的系统上configure编译过程会出错,出错提示如下:

checking openssl/ssl.h usability… no

checking openssl/ssl.h presence… no

checking for openssl/ssl.h… no

configure: error:

!!! OpenSSL is not properly installed on your system. !!!

!!! Can not include OpenSSL headers files.            !!!

其实系统安装了openssl,ssl.h文件也没问题,问题在于redhat AS3 把Kerberos includes 放在一个“奇怪”的地方,以致于keepalived的configure程序找不到,只好报openssl安装有问题。解决方法是设置编译环境的CPPFLAGS变量:export CPPFLAGS=-I/usr/kerberos/include ,再次编译就通过了。

安装完成后Service 控制文件/usr/local/etc/init.d/keepalived,拷贝到/etc/init.d/vrrpd,或者建立一个符号链接:ln -s /usr/local/etc/init.d/keepalived /etc/init.d/vrrpd 进行修改,用service vrrpd start|stop|restart进行控制。

配置模板在/usr/local/etc/keepalived目录,可执行文件在/usr/local/sbin/keepalived。

2.配置

控制文件配置:cp /usr/local/etc/init.d/keepalived /etc/init.d/vrrpd ,vi /etc/vrrpd ,修改文件为以下内容(其中PID_FILE要改为keepalived_vrrp.pid,因为系统实际产生的pid文件就是这个名字;–vrrp参数是控制仅使用vrrp功能;-f参数指定配置文件所在位置):

#!/bin/sh

#

# Startup script for the Keepalived daemon

#

# processname: keepalived

# pidfile: /var/run/keepalived_vrrp.pid

# config: /etc/vrrpd.conf

# chkconfig: 35 21 79

# description: Start and stop Keepalived

# Global definitions

PID_FILE=”/var/run/keepalived_vrrp.pid”

CMD=”/usr/local/sbin/keepalived”

# See how we were called.

case “$1″ in

start)

echo -n “Starting Keepalived for VRRP: ”

$CMD –vrrp -f /etc/vrrpd.conf

touch /var/lock/subsys/keepalived

echo

;;

stop)

echo -n “Shutting down Keepalived for VRRP: ”

PID=`cat $PID_FILE`

kill $PID

rm -rf /var/lock/subsys/keepalived

echo

;;

restart)

echo -n “Shutting down Keepalived for VRRP: ”

PID=`cat $PID_FILE`

kill $PID

echo

echo -n “Starting Keepalived for VRRP: ”

$CMD –vrrp -f /etc/vrrpd.conf

echo

;;

reload)

echo -n “Reloading Keepalived config: ”

killall -HUP keepalived

echo

;;

*)

echo “Usage: $0 {start|stop|restart|reload}”

exit 1

esac

exit 0

3. 配置文件:指定vrrp的虚拟ip地址、权重、角色等,参考文件如下

global_defs {

notification_email {

}

notification_email_from cfengine@alipay.com

smtp_server email.alipay.com

smtp_connect_timeout 30

router_id dns2

}

vrrp_instance VI_1 {

state MASTER

interface bond0

virtual_router_id 50

smtp_alert

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass alibaba

}

virtual_ipaddress {

192.168.188.254

}

}

其中auth_pass的值要一致,keepalived根据这个验证vip的成员。state的值有MASTER和BACKUP之分,priority是权重配置,数值越大权重越高越优先。有关email的设定是发生事件时会自动发email报告,请按照实际情况设置。

NOW,use ” service vrrpd start ” on both nodes to start vip !

4.注意事项

1、输出的日志信息: /var/log/messages ,更具体的日志信息输出需要在启动keepalived时加 -d 参数。

2、在都为MASTER且priority一样的情况下,后启的节点(service vrrp start)会取代正在运行的节点变成主用的。

3、一台为MASTER且priority较高的情况下,不受次节点down/up影响,并且其本身再从down变为up时,会抢夺控制权。

4、在都为MASTER且priority一样的情况下,正在运行的主节点down(断网),次节点会自动接管,主节点再起来时不会去抢夺控制权。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/368075.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go语言核心之美 1.5-作用域

变量的作用域是指程序代码中能够有效使用这个变量的范围。不要将作用域和生命期混在一起。作用域是代码中的一块区域,是一个编译期的属性;生命期是程序执行期间变量存活的时间段。在此时间段内,变量能够被程序的其他部分所引用,是…

BootStrap_01之全局样式

1、响应式网页: ①Responsive Web Page:一个可以根据浏览设备的不同,而自动更改布局、图片、文字效果的网页; ②构成:不能固定宽度,必须流式布局;文字和图片大小随容器大小而改变;CS…

Java安全教程–创建SSL连接和证书的分步指南

在有关应用JEE安全性的系列文章中,我们为您提供了另一个有关如何在Java EE应用程序中创建SSL连接和创建证书的详细教程。 如我们之前的文章中所述, 安全套接字层(SSL)/传输层安全性(TLS)将启用客户端和Web服…

linux带宽最小的远程桌面,【图片】linux下哪种远程桌面服务最快?_linux吧_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼I stumbled upon this while researching xrdp, which is the only one you mentioned that I havent used. Some observations:NX Server: not so speedy (v3, still awaiting v4), might pose performance issues depending on y…

CentOS Vi编辑器

vim:通过vim a.cfg进入文档 i:编辑状态 ESC:返回不可编辑状态 dd:在不可编辑状态下,dd可删除光标所在的行,2dd删除两行,以此类推 u:在不可编辑状态下,u可恢复删除的行 yy…

[转]CSS hack大全详解

转自:CSS hack大全&详解 1、什么是CSS hack? CSS hack是通过在CSS样式中加入一些特殊的符号,让不同的浏览器识别不同的符号(什么样的浏览器识别什么样的符号是有标准的,CSS hack就是让你记住这个标准)&#xff0c…

摆脱困境:将环境特定的Cron表达式与@Scheduled批注一起使用

Scheduled注释提供了一种在Spring驱动的应用程序中创建计划任务的简便方法。 我们可以使用它通过定期调度或cron表达式来调度我们的任务。 尽管时段调度也可能有用,但是cron表达式使我们对调度任务的调用有了更多的控制。 这就是为什么它们在现实生活中非常有用的原…

linux编译的so android闪退,android so库导致的闪退及tombstone分析

android中有3种crash情况:未捕获的异常、ANR和闪退。未捕获的异常一般用crash文件就可以记录异常信息,而ANR无响应表现就是界面卡着无法响应用户操作,而闪退则是整个app瞬间退出,个人感觉对用户造成的体验最差。闪退一般是由于调用…

产品经理应该具备的技能(2)如何做一个好的数据产品经理?

一、如何做一个好的数据产品经理? PD(指产品经理,下同)本身就是在做牛做马,关系圈异常复杂。数据PD也不例外。而且打交道的人更多。以下是我用PPT绘制的数据产品经理关系圈。如果你也做过 数据产品的产品经理&#xff…

C#取整函数Math.Round、Math.Ceiling和Math.Floor 【非原创,用来收藏,分享】

1.Math.Round:四舍六入五取偶 引用内容Math.Round(0.0) //0Math.Round(0.1) //0Math.Round(0.2) //0Math.Round(0.3) //0Math.Round(0.4) //0Math.Round(0.5) //0Math.Round(0.6) //1Math.Round(0.7) //1Math.Round(0.8) //1Math.Round(0.9) //1说明:对于…

谈谈一些有趣的CSS题目(十)-- 结构性伪类选择器

开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节。解题不考虑兼容性,题目天马行空,想到什么说什么&#x…

基于linux的netfilter处理数据包的过程分析,基于Netfilter的网络数据包分析

前面的几篇文章我已经对Netfilter的大概的机制作了比较详细的介绍,这篇文章我就说一下如何分析网络数据包。我刚刚写了一个程序,程序的功能很简单,就是提取出网络数据包的源地址和改包所使用的网络协议,大家可以看看源代码&#x…

Java EE CDI程序化依赖关系消歧示例–注入点检查

在本教程中,我们将看到在注入Java EE CDI bean时如何避免程序依赖消除歧义。 我们已经在Jave EE依赖关系消除歧义示例中展示了如何避免CDI Bean中的依赖关系歧义消除。 在这里,我们将向您展示如何以动态方式避免依赖消除歧义。 我们将通过检查注入另一个…

机器学习算法整理(四)集成算法—随机森林模型

随机:数据采样随机,特征选择随机 (数据采样,有放回) 转载于:https://www.cnblogs.com/douzujun/p/8386930.html

CSS 布局入门

概述 Web 兴起之后,关于CSS的介绍和学习资料已经铺天盖地。 本文不涉及具体的CSS语法之类的,而是希望从初学者的角度,让没有接触或很少接触CSS的人能快速的了解 CSS 到底是什么以及如何使用。 什么是 CSS 了解一个概念,首先看到…

迷你搜索引擎–使用Neo4j,Crawler4j,Graphstream和Encog的基础知识

继续执行正在实现搜索引擎的Programming Collection Intelligence (PCI)的第4章。 我可能比做一次运动所咬的东西要多。 我认为, 与其一直使用本书中使用的普通关系数据库结构,不如说我一直想看看Neo4J,所以现在是时候…

linux人脸识别视频推流,RTMP推流协议视频智能分析/人脸识别/直播点播平台EasyDSS接口调用注意事项介绍...

TSINGSEE青犀视频目前推出了前端支持不同协议设备接入的视频智能分析平台,包括RTSP协议的EasyNVR、GB28181协议的EasyGBS,RTMP推流协议的EasyDSS,还有能够进行人脸识别、车牌识别的EasyCVR,这些平台均提供了视频转码分发的能力&am…

js高级写法

名称 一般写法优化取整(不四舍五入) parseInt(a,10); //Before Math.floor(a); //Before a>>0; //Before ~~a; //After a|0; //After 取整(四舍五入) Math.round(a); //Beforenum.toFixed(0) a.5|0; //After未定义 undefined; //Before void 0; //After, 快…

IntersectionObserve API使用

why 之前图片懒加载的实现方法大多数为:给window添加scroll事件,滚动时获取元素的offset值,判断元素在viewport内的可见行。这样做的缺点是:频繁的计算dom节点的属性导致性能较差,对scroll绑定的回调函数进行节流能减少…

css小技巧(1)

1、-webkit-overflow-scrolling: touch; 解决ios滑动时无缓冲问题 2、::-webkit-scrollbar 设置ios滑动时是否显示滚动条 3、::selection 选中文字时文字颜色和选中色 <!doctype html> <html> <head> <meta charset"utf-8"> <meta cont…